CPU流水线六大阶段完整同步电路
1. 取指阶段(Instruction Fetch)
| 核心部件 | 同步机制 | 物理实现细节 | 时钟约束 |
|---|
| 程序计数器(PC) | PC值在CLK上升沿更新 | 带多路选择器的D触发器链,传输门MOS管栅极接CLK和分支预测信号 | PC增量延迟 ≤ 0.1周期 |
| 指令预取缓冲 | 预取地址CLK同步更新 | 环形缓冲写指针MOS管栅极接CLK,SRAM地址解码同步 | 预取带宽=8指令/周期 |
| 分支目标缓冲(BTB) | 预测目标在CLK下降沿锁存 | 4-way组相联SRAM,比较器MOS管栅极接CLK_B(反相时钟) | 预测精度>98% |
| 指令缓存控制器 | 缓存行填充与CLK严格对齐 | 标签比较MOS管栅极接CLK_270°相位,数据总线驱动同步 | 命中延迟≤2周期 |
2. 译码阶段(Decode)
| 核心部件 | 同步机制 | 物理实现细节 | 关键参数 |
|---|
| 指令译码器 | 微操作在CLK上升沿生成 | 两级流水化: • 预译码(PLA组合逻辑) • 最终译码(D触发器锁存) | 译码延迟≤0.25周期 |
| 寄存器重命名 | 物理寄存器分配CLK同步 | CAM结构匹配MOS管栅极接CLK_RENAME,自由列表指针同步更新 | 重命名吞吐率=6指令/周期 |
| 宏指令融合单元 | 融合决策在CLK下降沿锁存 | 动态逻辑MOS管栅极接CLK_B,输出级锁存器接CLK | 融合率提升15% |
3. 发射阶段(Issue)
| 核心部件 | 同步机制 | 物理实现细节 | 特殊约束 |
|---|
| 发射队列(IQ) | 指令在CLK上升沿进入队列,CLK下降沿派遣 | 循环缓冲结构,写指针MOS管栅极接CLK,读指针MOS管栅极接CLK_B | 队列深度=32 |
| 保留站(RS) | 指令派遣CLK同步触发 | 状态机MOS管栅极接CLK_ISSUE,操作数可用性检测组合逻辑输出同步 | 派遣延迟≤0.5周期 |
| 乱序调度器 | 唤醒逻辑CLK边沿生效 | 优先级编码器MOS管栅极接CLK_WAKE,依赖矩阵状态同步更新 | 调度窗口=96条目 |
| 重排序缓冲(ROB) | 提交指针CLK严格更新 | 环形缓冲控制逻辑MOS管栅极接CLK_COMMIT,异常检测同步化 | ROB深度=128 |
4. 执行阶段(Execute)
| 核心部件 | 同步机制 | 物理实现细节 | 性能指标 |
|---|
| 整数ALU | 计算结果CLK下降沿锁存 | 并行前缀加法器+输出锁存器,传输门MOS管栅极接CLK | 延迟=0.3周期(3GHz) |
| 浮点运算单元 | 四级流水线严格同步 | 每级插入D触发器,时钟门控MOS管栅极接CLK_STAGE[0:3] | 吞吐率=1指令/周期 |
| 乘法累加器(MAC) | 部分积CLK上升沿锁存 | Booth编码+Wallace树压缩,最终锁存器MOS管栅极接CLK_MUL(2倍频) | 32×32乘法=4周期 |
5. 访存阶段(Memory Access)
| 核心部件 | 同步机制 | 物理实现细节 | 关键约束 |
|---|
| 加载/存储队列 | 地址冲突检测CLK同步 | CAM结构匹配MOS管栅极接CLK_MEM,数据总线驱动同步 | 队列深度=16 |
| 数据缓存控制器 | 缓存访问对齐CLK边界 | 6T-SRAM位线预充电MOS管栅极接CLK_270°相位,标签比较同步 | 命中率>95% |
| 原子操作控制器 | LL/SC状态CLK严格同步 | 定制锁存器PMOS栅极接CLK_ATOMIC,缓存线锁定信号同步化 | 锁定保持时间≥10周期 |
6. 写回阶段(Writeback)
| 核心部件 | 同步机制 | 物理实现细节 | 时序要求 |
|---|
| 寄存器文件 | 写端口CLK下降沿更新 | 8T-SRAM写驱动MOS管栅极接CLK_WR,读端口异步但写后读同步保证 | 写恢复时间>200ps |
| 旁路网络 | 结果转发CLK上升沿生效 | 多路选择器控制MOS管栅极接CLK_BYPASS,转发路径延迟优化 | 转发延迟≤0.15周期 |
| 退休队列 | 提交状态CLK严格同步 | 移位寄存器链MOS管栅极接CLK_RETIRE,顺序违例检测同步化 | 提交带宽=8指令/周期 |
结论
所有部件(含PC、发射队列等)100%为同步电路,严格遵循以下原则:
- 全局时钟驱动:每个操作由CLK上升/下降沿触发
- 存储单元同步:D触发器/锁存器在时钟边沿更新状态
- 组合逻辑受控:任何组合逻辑输出必须被同步元件捕获