是否有英特爾/ AMD臺式機處理器支持弱排序內存,或者這是具有多個處理器的服務器設置的功能?臺式機處理器是否支持弱排序內存?
0
A
回答
1
我不確定這是不是你想要的,但是IIRC已經有一些架構存在弱存儲訪問的問題,因爲它們可以被任意指定,並且你必須插入內存屏障來確保特定的順序。
現代處理器使用所謂的「加載存儲隊列」來隱藏存儲器重新排序,使其看起來好像按照程序順序發生。讀取通常會被重新排序(但要謹慎),寫入操作可能不按順序進行,但按順序執行(儘管對同一位置的多次寫入進行了整合),讀取和寫入操作只是小心翼翼地和推測性地重新排序。後者被稱爲「提升」,其中在寫入之前進行推測(在指令序列中較早出現),並且如果前面的寫入會影響它,則可以取消(如錯誤預測的分支)。另外,如果內存被標記爲未高速緩存,則CPU通常推斷意味着它是I/O空間並且不執行訪問重新排序。 x86和SPARC是這樣的。但是,PowerPC仍然會將讀取次數重新排列到I/O內存空間,我們必須使用EIEIO(確保執行I/O)指令來強制執行特定的排序。 IIRC,我們還必須在PA-RISC和Alpha上使用內存屏障。此外,x86上有內存障礙,但我不熟悉它們的使用(可能確保訪問緩存內存空間的順序)。
你提到了多核系統。一般來說,採用精心設計的高速緩存一致性協議來使所有內存訪問看起來符合某些交織規則,這樣,如果沒有高速緩存,訪問將按照可能的順序來訪問最後一級高速緩存和主內存。
1
許多現代處理器現在使用亂序執行來隱藏內存延遲來提高性能。這與多個處理器/內核無關,可以使用單核處理器獨立完成。出於這個原因,你不應該依賴記憶順序。
相關問題
- 1. 是否支持Active Directory事務處理?
- 2. silverlight是否支持遠程處理?
- 3. Restlet是否支持批處理?
- 4. DisplayTag PaginatedList是否支持外部排序?
- 5. 支持模式1.1的XML處理器
- 6. JIRA是否也支持內容管理?
- 7. 網絡支持是否支持網絡套接字處理?
- 8. MS-SQL是否支持內存表?
- 9. Varnish是否支持分佈式緩存?
- 10. PowerShell 2.0是否支持COM事件處理程序?
- 11. Windows shell是否支持多個shell屬性處理程序?
- 12. HBase 0.92是否支持協處理器二級索引?
- 13. IBM XL/C在預處理器中是否支持Altivec?
- 14. Spyne是否支持代理?
- 15. UI-Grid是否支持服務器端排序?
- 16. AMF是否支持緩存?
- 17. SQLAlchemy是否支持緩存?
- 18. 是否正式支持android.speech.extra.DICTATION_MODE?
- 19. Android平臺是否支持SpatiaLite?
- 20. Rust是否支持fork()跨平臺?
- 21. 不支持SQLite弱實體?
- 22. 爲什麼在ARC支持平臺中不能支持弱引用?
- 23. 東京內閣是否支持內存中的B +樹實現?
- 24. 春天在什麼XD支持在內存中處理Hadoop中
- 25. 共享處理程序和支持豆
- 26. Android - Skobbler不支持64位處理器
- 27. MIPS處理器I/O設備支持
- 28. ROWLEX是否本機支持IEnumerable <>?
- 29. mxml本機是否支持flash?
- 30. Dojo是否支持Ajax Pull機制?
鈦有一個弱記憶模型。一個婊子編程+實際上不是更快==冰山。 –