一些體系結構有一個「預取寫入」指令,用於向CPU表明在實際執行操作之前將要寫入內存位置。我明白,在多核機器上,核心可以使用它作爲暗示,它應該嘗試現在獲得給定高速緩存行的所有權,以便稍後可以更快地寫入該位置。但是,AFAICT應該只在兩個核心有可能競爭緩存線的情況下才起作用。對於僅由單個內核讀取和寫入的高速緩存行,預取寫入是否有用?預取寫入是否影響單核性能?
3
A
回答
1
其他所有條件都相同,對於僅由單個內核訪問的行,預取寫入沒有優於預取讀取。經過任何一種預取後,核心將擁有獨有的狀態。在隨後的寫入中,該行更改爲修改後的狀態。獨家修改過渡是免費的,因爲根據定義,沒有其他核心擁有這條線。 E-> M狀態更改在本地完成,無需窺探。
請注意內核具有自己的硬件預取邏輯。對線路的訪問可能會導致核心自動抓取相鄰的線路。如果全局變量或其他數據駐留在附近,則SMP系統可能會遇到很多意外的交叉窺探。
0
我認爲它可以幫助如果高速緩存行不在內存中,並且寫預取標記它將從現在開始需要一些週期。家務勞動,比如爲寫作騰出一條線可能會更加困難。當然,這應該允許CPU完成寫入的速度比如果它只是簡單地將寫入緩存寫入緩存一圈?
還是我錯過了一些基本的東西?
相關問題
- 1. 預處理器指令是否影響OpenCL內核性能?
- 2. 相對或絕對協議是否影響dns預取性能?
- 3. 性能影響寫入套接字時()
- 4. 變量是否會影響性能?
- 5. 表大小是否影響INSERT性能?
- 6. 此javascript語句是否影響性能?
- 7. 事務範圍是否影響性能?
- 8. 構造函數是否影響性能?
- 9. 使用require()是否會影響性能?
- 10. $(this)是否會影響性能,如$([selector])?
- 11. 現在SSL是否會影響性能?
- 12. 404錯誤是否會影響性能?
- 13. Linux上的ACL是否影響性能
- 14. Hows是否會影響性能?
- 15. 在ruby中重寫hash和eql是否會影響性能?
- 16. Asterisk配置中的寫入順序是否會影響VoIP的性能?
- 17. Angular - 注入模塊的數量是否會影響性能?
- 18. 導入更多名稱空間是否會影響性能?
- 19. 如果內核太短會否影響性能?
- 20. 性能影響
- 21. Windows性能計數器是否會影響性能?
- 22. 瞭解「寫輸出」的性能影響
- 23. dns預取會對性能產生負面影響嗎?
- 24. LINQ性能影響
- 25. 性能的影響
- 26. 實體上的Blob屬性是否會影響查詢性能?
- 27. 表的OrderBy屬性是否影響性能
- 28. 負z指數是否會影響性能或兼容性?
- 29. 海量文件寫入對JVM進程性能的影響
- 30. 獨特約束如何影響Postgres DB中的寫入性能
所以你在說,因爲寫預取也會像正常的預取一樣工作,所以它可能有所幫助?這是可能的你是對的。 –
CPU和RAM之間的任何事情都必須通過緩存行來完成。如果沒有加載有問題的緩存行,那麼讀取或寫入將不得不等待,直到它。 –