为什么在深度流水线处理器中缓存未命中损失更大?
是否因为如果在管道的某个晚期发生错失,停滞期会更长?或者因为管道中有太多的指令?
答案 0 :(得分:4)
通常,您实施更深的管道以减少每个管道阶段的循环时间。
考虑两个有序的单一问题流水线处理器微体系结构。
uA1具有5级流水线和2 ns循环时间。 uA2具有10级流水线和1 ns周期时间。
完全缓存未命中必须(至少)从DRAM加载整个缓存行。 假设需要100 ns,包括行激活,行字的突发读取和行预充电。
当uA1进行高速缓存未命中时,它会停止100 ns,例如50个时钟周期,例如50个问题槽。 当uA2进行高速缓存未命中时,它会停止100 ns,例如, 100个时钟周期,例如100个问题插槽。
这里的缓存未命中惩罚(在错过的指令发布槽中表示)是更深层次流水线处理器中的两倍。