跳到主要内容

欢迎来到「读懂香山」

这里不是自动生成的 API 索引,也不是把论文重新排版。目标是回答学习一颗复杂 CPU 时真正遇到的问题:

  • 一个模块为什么存在,它解决什么瓶颈?
  • 一条指令每个周期走到哪里,什么时候会停、重放或重定向?
  • 论文里的概念在 Chisel 源码中落在哪些类、Bundle 和寄存器?
  • 怎样用仿真与 Verdi 波形验证自己的理解?
版本锚点

本教程当前对应本地 XiangShan 源码提交 133d7dc4b。涉及源码位置时,以这一版本为准;升级源码后必须重新检查锚点。

推荐学习方式​

每个主题按同一套节奏组织:

  1. 心智模型:先用框图理解职责与边界。
  2. 逐拍数据流:观察请求、状态、响应与恢复。
  3. 源码定位:只读与当前问题有关的 Chisel。
  4. 波形验证:把推测变成可观察事实。
  5. 动手练习:修改一个小参数或构造一个场景。

如果你的目标是成为前端设计工程师或 CPU 架构师,先读工程师能力路线,再按课程顺序学习。第一次接触乱序处理器可先走基础学习路线。

每章的完成标准​

读完不等于学会。只有当你能回答以下问题,才算完成一个模块:

  • 它的上游与下游是谁?
  • 最重要的三组状态是什么?
  • 正常、阻塞和恢复路径分别怎样走?
  • 波形中哪几个信号能区分这些情况?
  • 修改一个参数后,面积、时序或性能可能怎样变化?