在運行Android/Linux的一個臂的SoC,我觀察到以下:緩存讀取系統存儲器VS CPU讀取系統存儲器
- 分配的存儲區域作爲未緩存設備DMA輸入。 DMA完成後,此存儲區的內容被複制到另一個系統存儲區。
- 爲設備DMA輸入分配一個內存區域爲緩存。 DMA完成後,存儲器範圍無效,然後將該存儲區的內容複製到另一個系統存儲區。
分配的內存區大小約爲2MB,大於緩存大小(L2緩存大小爲256KB)。
方法2是X10大於方法快1
即:方法2的存儲器複製操作是X10大於方法快1
我推測,用方法2緩存通過讀從系統內存緩存行大小複製時,方法1需要通過總線事務處理大小讀取CPU從繞過緩存硬件的系統內存中讀取CPU。
但是,我找不到明確的解釋。我很欣賞誰能幫助提供詳細的解釋。
不是簡單的「緩存」版本能夠通過緩存訪問服務所有後續請求的問題,而未緩存版本必須始終通過內存獲取數據。您提到的 –