专题路线

计算机系统与操作系统

从指令执行与缓存学习进程、线程、虚拟内存和文件系统。

2 个阶段12 章预计 16 小时
学习进度0/12 章完成
0%
开始学习二进制与数值表示
先修内容

具备程序设计基础,希望理解程序运行过程的读者。

学习阶段

阶段自测

  1. 学完 C03 · 输入输出与性能分析

    沿取指、译码、执行和访存过程,说明一次数组读取经过哪些部件。

  2. 学完 C04 · 虚拟内存与分页

    区分缓存未命中、TLB 未命中与缺页,并分别说明后续处理过程。

综合练习

练习完成进度:0/2

难度 2/5

缓存地址划分

字节寻址的机器使用 32 位地址,直接映射缓存容量为 32 KiB,缓存行为 64 B。求块内偏移、索引和标记的位数。

查看提示

用缓存容量除以行大小得到行数,再分别取以 2 为底的对数。

展开分步解答

缓存有 32768/64=512 行。块内偏移占 6 位,索引占 9 位,标记占 32-6-9=17 位。

结果核验:512 行乘以每行 64 B 得到 32 KiB;三部分位数之和为 32。

难度 2/5

虚拟地址转换

页大小为 4 KiB,虚拟地址为 0x12345,页表将虚拟页 0x12 映射到物理页框 0x2A。求页内偏移与物理地址。

查看提示

页大小为 2 的 12 次方,低 12 位保持为页内偏移。

展开分步解答

页内偏移为 0x345,物理地址为 0x2A×0x1000+0x345=0x2A345。

结果核验:虚拟地址与物理地址的低 12 位均为 0x345,符合分页地址转换规则。

参考资料