Latency 表示可以將一條指令替換成總體延遲更短的其它指令序列。
嘗試將此指令替換成可以在更少的週期內執行相同操作的其它指令序列。
下表列出會導致 Latency 懲罰的指令,並提供有關如何儘量降低懲罰的建議。
指令 |
延遲說明 |
|
inc 與 dec |
inc 與 dec 指令只修改標誌暫存器中的一部分位。這會導致對標誌暫存器上所有先前寫入的依賴性。因為這些指令用於更改載入(其它許多指令都依賴於此操作)的地址,在它們處於關鍵路徑之上時,這尤其會成為問題。 |
指令替換成 add 或 sub 指令,因為 add 與 sub 會覆蓋所有標誌位。
|
shift |
同以前各代處理器相比,shift 指令在奔騰 4 處理器上的延遲更長。固定與可變移位的延遲相同。 add 序列的延遲比三位及以下的左移延遲更短。 |
|
rotate |
同以前各代處理器相比,rotate 指令在奔騰 4 處理器上的延遲更長。 |
|
mul 與 imul |
整數乘法運算 mul 與 imul 在浮點單元中執行,因此這些指令不應該同浮點指令並行執行。由於在浮點單元中執行,它們還會導致一些額外的延遲。如果上一個週期執行 fmul,則浮點乘法指令 (fmul) 將延遲一個週期。乘法器只能每隔一個週期接受一對新運算元。 |
|