任何人都可以解釋什麼是加載緩衝區,以及它與失效隊列有何不同。還有存儲緩衝區和寫入組合緩衝區之間的區別? 保羅ËMckenny http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.07.23a.pdf本文介紹了非常漂亮有關的存儲緩衝和無效隊列,但遺憾的是不談論寫結合緩衝區什麼是存儲緩衝區?
24
A
回答
27
的無效隊列更像是一個存儲緩衝區,但它的存儲系統的一部分,不是CPU。基本上,它是一個跟蹤失效並確保它們正確完成的隊列,以便緩存可以獲取緩存行的所有權,以便隨後可以寫入該行。加載隊列是一種推測結構,用於跟蹤無序處理器中的飛行中加載。例如,以下可能會出現
- CPU推測的方式從X發出負載
- 該負載是程序順序商店爲Y後,但Y的地址還沒有解決,所以店裏不會繼續。
- Y被解析,結果等於X.在存儲到Y的時間被解析的時候,該存儲在加載隊列中搜索已發出的推測加載,但在存儲到Y之後出現在程序中訂購。它會注意到X的負載(等於Y),並且必須壓縮以加載X開始的指令。
存儲緩衝區是存在於CPU中的推測結構,就像加載隊列一樣,並允許CPU在存儲上進行推測。寫入組合緩衝區是存儲器系統的一部分,基本上需要一堆小寫入(認爲8字節寫入),並在將它們發送到內存系統之前將它們打包到單個較大的事務中(一個64字節緩存行)。這些寫入不是推測性的,並且是一致性協議的一部分。目標是節省總線帶寬。通常,寫入組合緩衝區用於對I/O設備進行非緩存寫入(通常用於圖形卡)。在I/O設備中,通過執行8個字節的寫入操作來執行一堆設備寄存器編程,而寫入組合緩衝器允許將這些寫入通過緩存傳送出去時組合成更大的事務。
相關問題
- 1. 什麼是緩衝區?
- 2. 什麼是緩衝區?什麼是緩衝讀取和寫入?
- 3. 什麼是緩衝區緩存中的臨時CLOB?
- 4. 什麼是Perf緩衝區大小?
- 5. 這是什麼緩衝區功能?
- 6. 什麼是緩衝區寫入?
- 7. G1 GC:什麼是SATB緩衝區?
- 8. 什麼是標準輸入緩衝區?
- 9. 什麼是文件IO流緩衝區?
- 10. Qt - 什麼是樣本緩衝區?
- 11. 什麼是「別名」流緩衝區?
- 12. 什麼是LoggingSession緩衝區大小?
- 13. 什麼數據格式是緩衝區?
- 14. HDF5:「文件緩衝區」和「文件緩存」有什麼區別?
- 15. RGB緩衝區到JPEG緩衝區,這裏有什麼問題?
- 16. Vim檢測當前緩衝區是什麼類型的緩衝區
- 17. 緩衝區已滿時清除字符串緩衝區。這是什麼模式?
- 18. 在緩衝區中存儲內容
- 19. 當字符存儲在緩衝區
- 20. 不使用暫存緩衝區的原因是什麼?
- 21. 用於DMA的快速緩衝存儲器緩衝區
- 22. 限制緩衝區緩存
- 23. 爲什麼我的系統不釋放緩衝區/緩存
- 24. vim中的緩衝區和寄存器有什麼區別?
- 25. 在協議緩衝區消息中存儲二進制數據緩衝區
- 26. 什麼是IO流緩衝?
- 27. 什麼是輸出緩衝?
- 28. 什麼是緩衝的
- 29. 緩衝區和緩存區別?
- 30. 緩衝區是小
我剛剛注意到了這個問題,並準備回答它 - 哎呀,我發明了英特爾的寫入組合和加載緩衝區,或者至少我的名字在許多專利上 - 但上面的答案非常好。 –
存儲緩衝區=不總是推測性的,並不總是在CPU內部。 CPU外可能有存儲緩衝區,例如通過L1和L2寫入。 –
加載緩衝區(1)在計算完加載地址後保持加載,但直到加載真的準備好執行爲止;或者在嘗試執行加載之後,確定存在問題,例如緩存未命中或早期存儲到尚未準備好數據的同一地址。 (2)可以用來驗證無序負載是否正確推測,正如馬丁所描述的。 –