第8章 综合案例¶
前七章分别研究了表示、逻辑、ISA、CPU、流水线、存储和 I/O。最后一章把这些局部模型合并:一组最小 load/add/store 指令从源程序出发,怎样穿过整台机器;当它慢时,又怎样定位真正瓶颈。
本章内容¶
- 一条 load/add/store 如何贯穿机器:逐层、逐状态追踪取指、地址翻译、cache、流水线和写回。
- 跨层性能诊断与设计权衡:用测量排除猜测,把优化收益和代价放回全系统。
为什么需要综合案例¶
孤立记忆容易制造错觉:知道 cache 定义,却不知它在 load 的哪一步介入;知道流水线转发,却不知 cache miss 会冻结哪些阶段;知道虚拟地址,却误以为 ALU 加法直接得到物理地址。
综合追踪要求每一步回答四件事:
- 当前输入是什么;
- 读取了哪些状态;
- 哪个部件产生结果;
- 何时才能安全提交。
本章自测¶
- load 的地址加法、地址翻译和 cache 查找分别处理什么?
- store 为什么可以先进入 store buffer,但异常模型仍要求按序可见?
- 若程序慢,应先改代码还是先换硬件?需要什么证据?