執行緒特定性:TI
此事件統計何時所有的“寫入組合緩衝區”(WCB) 全被佔用並因此必須收回一項以處理新的請求。
統計“WCB 已滿收回”時,可以提供以下調整細節:
這類收回可以同由於重疊衝突產生的收回區分開來。從“所有 WCB 收回”事件中減去“WCB 已滿收回”,可以提供更有價值的關於 64k 重疊的指標。64k 重疊可能在載入之間發生,導致從二級快取獲取數據延遲的一級快取中產生衝突;它們也可以在儲存計其它記憶體引用之間發生。后一種情況會導致 WCB 反覆,並可以使用從所有 WCB 收回減去 WCB 已滿收回的結果來表示。如果產生的計數與失效指令數之比較高,則通過避免使用相距 64 KB 倍數的記憶體引用,可能會大幅提升效能。
請注意,此計數仍只是可能的問題的一種表示;硬體限制無法進行精確的統計。
對於儲存序列,此事件有時可用作 WCB 使用效率的一個指標。WCB 將儲存中的數據組合到一組鄰近的地址(例如在相同快取線中的那些)。但如果內部循環試圖從超過 WCB 數的寫入數據流進行交叉儲存,則 WCB 將發生反覆,在填充之前,必須收回其中一些 WCB。在寫回記憶體中,隨著 WCB 的取消與再次分配,這僅會導致些許延遲。在寫入組合記憶體與非臨時儲存中,這會導致部分寫入,從而致使匯流排使用效率低很多。
通過將失效的儲存數與“WCB 已滿收回”之比同每個快取線上的儲存數進行比較,可以檢測到此問題。如果此比率大於一,則表示數據流的 WCB 利用效率不高。要解決此問題,請將寫入數據流分佈到多個內循環上,而不是隻有一個。此類優化被稱作是循環分裂。
請注意,WCB 可能會在邏輯處理器之間共享,因此使用“超執行緒技術”時,“WCB 已滿收回”的數量可能會增加。