奔騰(R) 4 處理器主題事件比率主題每失效指令時鐘訊號數 (CPI)

時鐘訊號(非休眠) / 失效的指令

一般來說,這些數字源自經驗豐富的效能工程師的經驗:

下限

上限

1

5

此比率的值較高時,表示在目前的程式碼區域內,指令的執行花費的處理器時鐘週期較高。如果大多數指令都不是延遲較高的指令,且/或來自微程式碼 ROM,則這可能表示存在問題。備註:在英特爾(R) 奔騰(R) 4 處理器上,使用最新的編譯器可以顯著改善效能。

建議:CPI 較高通常表示應用程式的某個區域存在一個或多個問題,需要進一步研究。在“VTune(TM) 效能分析器”中,採集基本與輔助調整事件組的數據。

備註

對於含“超執行緒技術”的處理器,此比率測量物理封裝不處於任何休眠模式(也就是說,至少正在使用物理封裝中的一個邏輯處理器)的各階段的 CPI。

即便邏輯處理器處於暫停狀態(不在執行指令),仍繼續在邏輯處理器上統計時鐘訊號。因為在“失效的指令”事件保持不變期間,“時鐘訊號”事件仍繼續累加,所以這會影響邏輯處理器的 CPI 比率。CPI 較高仍表示存在效能問題,不過特定邏輯處理器上的 CPI 值較高,則可能表示 CPU 利用率不高,而表示不是執行問題。執行問題可以使用非暫停 CPI 更好地檢測。  

如果應用程式是多執行緒程式,則所有程式碼級別的 CPI 與“非暫停 CPI”均會受到影響。“時鐘訊號”事件在每個邏輯處理器上單獨統計,不考慮並行執行的情況。

例如,考慮以下情況:

邏輯處理器 0 上的函式 XYZ   |------------------------| 4000 時鐘訊號/1000 指令

邏輯處理器 1 上的函式 XYZ   |------------------------| 4000 時鐘訊號/1000 指令

函式 XYZ 的 CPI 是 ( 8000 / 2000 ) 4.0。如果在“時鐘訊號”中考慮並行執行,則 CPI 將是 ( 4000 / 2000 ) 2.0。在解釋“時鐘訊號”事件數據時,瞭解應用程式的行為很有必要。

“非暫停 CPI”(非暫停時鐘訊號/失效的指令)測量特定邏輯處理器處於使用狀態的各階段的 CPI。