跳到主要内容

后端总体结构

后端把按程序顺序到达的指令转换成可乱序执行、但仍按序提交的微操作流。

两条同时存在的秩序​

  • 执行秩序由操作数是否就绪和功能单元是否空闲决定。
  • 提交秩序由 ROB 保持,确保异常、中断和架构状态精确。

源码地图​

  • backend/decode/DecodeStage.scala
  • backend/rename/Rename.scala、RenameTable.scala
  • backend/dispatch/
  • backend/issue/Scheduler.scala
  • backend/exu/ 与 backend/fu/
  • backend/rob/Rob.scala

阅读抓手​

选一个整数加法微操作,记录它的逻辑源寄存器、重命名后的物理源、调度队列位置、执行端口、写回端口和 ROB 项。把这些身份串起来,比孤立阅读每个模块有效得多。