1. 程式人生 > >CACHE啟用與否對DMA程式設計的影響

CACHE啟用與否對DMA程式設計的影響

1、直接記憶體儲存DMA可以在不需要CPU的干預下完成資料的轉移。通常而言DMA控制器具有系統內部匯流排的Master介面,如果僅在系統內部匯流排的介面而言,DMA控制器和CPU的地位是一樣的,就是都可以通過系統匯流排訪問記憶體、外設。

2、假設需要DMA將外設輸入的資料移動到記憶體的某個地址,DMA所進行的資料移動過程對CPU透明,即CPU感覺不到記憶體中某個地址的內容發生了變化。如果CPU已對此地址的記憶體進行了cache快取,則cache內容和memory內容不一致。如果此時CPU讀取該地址的記憶體,將直接從cache返回資料,這時返回的資料不正確。

3、故在DMA轉移資料到記憶體之後,需要對cache和memory進行一致性的操作。