8.4 指令时序与性能
第 8.3 节把工作安排到控制时间槽中。真实硬件还必须在下一个时钟边沿到来之前,为信号传播留出足够时间。时序分析把一个时间槽的物理延迟与完整工作负载的执行时间联系起来。
源寄存器发出数值后,数值会经过组合逻辑,最后由目的寄存器捕获。目的输入必须足够早地稳定,以满足寄存器的要求。
在一个简化的时序预算中:
Tclock≥tlaunch+tcombinational+tsetup+tmargin 是必须在一个时钟周期内完成的最长路径。它决定最短安全时钟周期,从而决定最高安全时钟频率:
fmax=Tmin1 正在绘制图表…
假设寄存器加法路径需要 1+4+1+1=7 ns,而存储器装入路径需要 1+5+1+1=8 ns。如果全机共用一个时钟,存储器装入路径就是关键路径,因此 8 ns 是最短安全周期。它的理论频率上限为:
fmax=8 ns1=125 MHz 表示周期中尚未使用的部分:
slack=Tclock−Trequired 在本模型中,正裕量表示安全,零裕量表示刚好满足预算,负裕量表示时序违例。周期为 7 ns 时,寄存器加法路径的裕量为零,但存储器装入路径的裕量为 −1 ns。不能根据平均路径延迟选择时钟;每条必需路径都必须满足时序要求。
仅凭时钟频率无法判断处理器性能。对于一个特定工作负载:
TCPU=instruction count×average CPI×Tclock 等价地:
TCPU=clock frequencyinstruction count×average CPI 表示每条指令的时钟周期数。不同指令可以有不同 CPI,因此工作负载应使用加权平均值:
CPIavg=i∑(instruction fractioni×CPIi) 等待状态、分支行为、存储器流量和预取是否成功都会改变有效 CPI。在 8086 中,BIU 可以在 EU 执行期间预取指令字节,但控制转移或繁忙的总线会降低这种重叠程度。公式仍然适用;这些影响会体现在测量或建模得到的平均 CPI 中。
正在绘制图表…
对于 100,000 条指令,一台 5 MHz、CPI=4 的参考 CPU 需要:
Tref=5,000,000100,000×4=80 ms 候选机频率为 8 MHz,基础 CPI=3。如果其中 50% 的指令各自增加两个存储器等待周期,则平均 CPI 为 3+0.50×2=4,执行时间为 50 ms。加速比为:
speedup=TnewTold=5080=1.6 这个例子也区分了与。延迟表示一个任务或一条指令从开始到完成的时间;吞吐量表示单位时间内完成的工作量。重叠可以提高吞吐量,却不一定缩短每一条指令各自的延迟。
第 8 章已经把指令阶段、数据通路、控制信号与时序联系起来。第 9 章将继续向外,学习处理器请求如何通过总线周期到达存储器与 I/O 设备。