“所有流水寄存器遵守同时更新;表中的级内容指周期开始时已存入该级的指令。EX与MEM结果在周期末可用。每级用valid说明是否有真实指令;valid=false是气泡,必须禁止架构写入。”
形式陈述
同步数字模型由状态位向量
物理实现还需满足时序约束。忽略时钟偏斜时,典型建立时间条件为
直觉
组合电路决定“若这些旧值保持稳定,下一值是什么”,寄存器决定“什么时候承认这个下一值”。反馈若经过寄存器,可以表达累加器;把输出直接接回组合输入则未必有稳定、唯一的布尔解释。
抽象的Mealy 机也从旧状态和输入产生输出。本页新增的是时钟边界和采样条件,而不是重新定义有限状态机。一个状态转移图正确,不代表实现它的门延迟已经满足时钟要求。
例子与边界
两个寄存器交换值
令 A=B 再执行 B=A,会得到
正确模拟方法是先由旧快照求两个 next 值,再一起更新。这个原则同样适用于流水级寄存器:一次边沿只能把本周期的旧 EX/MEM 送到 MEM/WB,不能在同一轮循环中让一条指令穿透所有级。
保持状态仍允许别人推进
令
增长周期与保持时间
假设
推论与应用
单周期数据通路把一条指令的组合工作放在两个架构状态边界之间;流水线插入中间状态元件,缩短每段组合路径,同时增加跨周期保存的数据和控制。
每个valid位、写使能和保持信号都是状态语义的一部分。绘图时只有数据箭头而没有这些控制条件,无法回答“错误路径值为什么不会写进内存”。
参考资料
- UC Berkeley CS61C,Finite State Machines 与 Pipelining for Performance,课程笔记,访问于 2026-10-08。
- David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture: RISC-V Edition, 2021,Ch. 3;同步状态与时序分析。本文明确省略偏斜和模拟电路效应。