跳转至

第8章 综合案例

前七章分别研究了表示、逻辑、ISA、CPU、流水线、存储和 I/O。最后一章把这些局部模型合并:一组最小 load/add/store 指令从源程序出发,怎样穿过整台机器;当它慢时,又怎样定位真正瓶颈。

本章内容

为什么需要综合案例

孤立记忆容易制造错觉:知道 cache 定义,却不知它在 load 的哪一步介入;知道流水线转发,却不知 cache miss 会冻结哪些阶段;知道虚拟地址,却误以为 ALU 加法直接得到物理地址。

综合追踪要求每一步回答四件事:

  1. 当前输入是什么;
  2. 读取了哪些状态;
  3. 哪个部件产生结果;
  4. 何时才能安全提交。

本章自测

  1. load 的地址加法、地址翻译和 cache 查找分别处理什么?
  2. store 为什么可以先进入 store buffer,但异常模型仍要求按序可见?
  3. 若程序慢,应先改代码还是先换硬件?需要什么证据?