當我們同時使用DMA和高速緩存時會發生什麼?在使用DMA和緩存時需要注意什麼是程序員的注意事項?同時使用DMA和高速緩存
2
A
回答
1
DMA將讀取和寫入內存,而不是緩存。例如,DMA控制器可以更新當前緩存的某些內存,並且更改不會反映在數據緩存中。或者您可能已經修改了與DMA訪問的區域相對應的緩存數據。
您必須告訴緩存控制器。這是非常依賴於體系結構
例如,這使用於ARM架構的CP15協處理器的寄存器控制(見http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0464f/CIHDGCBH.html)
+0
x86高速緩存是DMA一致的,這使得在開發驅動程序時很容易忽略錯誤。 –
相關問題
- 1. DMA與高速緩存區別
- 2. 最後使用的高速緩存行與不同的高速緩存行
- 3. 使用spring高速緩存的屬性高速緩存
- 4. 高速緩存跨越的作用,同時刷新CPU緩存
- 5. DMA環境中的高速緩存一致性問題
- 6. java高速緩存超時
- 7. 數組和高速緩存
- 8. UIImage initWithContentsOfFile:和高速緩存
- 9. 從多線程和高速緩存中使用非同時內存
- 10. AppFabric緩存 - 正確使用DataCacheFactory和數據高速緩存
- 11. 用於DMA的快速緩衝存儲器緩衝區
- 12. 禁用高速緩存中的緩存
- 13. MySQL高速緩存
- 14. NGINX內存高速緩存時出現
- 15. linux high slab高速緩存使用
- 16. 使用高速緩存運算符Observables
- 17. 使用Android系統高速緩存
- 18. 元高速緩存或Codeigniter高速緩存
- 19. 從高速緩存下載圖像Android與高速緩存
- 20. 同時DMA到用戶存儲器
- 21. Mapserver的臨時磁貼高速緩存
- 22. cx_Oracle MemoryError在讀取高速緩存時
- 23. 錯誤時,高速緩存的symfony
- 24. 多級高速緩存訪問時間
- 25. RxJS 5定時高速緩存
- 26. HSQLDB臨時高速緩存表
- 27. Plist和高速緩存路徑
- 28. OpenACC的和高速緩存耕作
- 29. 數據庫事務和高速緩存
- 30. ETags:驗證和高速緩存max-age
使用函數像',其中記錄dma_alloc_coherent()'[DMA-API-HOWTO.txt] (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/DMA-API-HOWTO.txt)。請注意,大多數情況下,您可以將要用於DMA的內存分配爲不可緩存。其他內存(程序數據)可以被緩存。你可能只緩存一部分內存;它不是全部或沒有。 –