有时,会更频繁地出现特定的叶 PC,因为这些 PC 表示的指令在发送前被延迟。导致出现这种情况的原因有多种,下面列出了其中的一些原因:
执行前一条指令用了很长的时间,并且执行不能中断,例如指令陷入内核中时。
运算指令需要的寄存器不可用,因为该寄存器的内容是由前面尚未完成的指令设置的。具有数据高速缓存未命中的装入指令就是这种延迟的一个示例。
浮点运算指令正在等待另一个浮点指令完成。指令不能流水线作业时会出现这种情况,例如平方根和浮点除法。
指令高速缓存不存在包含指令的内存字(指令高速缓存未命中)。
在 UltraSPARC ® III 处理器上,装入指令上的高速缓存未命中会阻塞所有后续指令,直到未命中问题得到解决,不管这些指令是否使用正在装入的数据。在 UltraSPARC II 处理器上,仅阻塞使用正在装入的数据项的指令。