為什么在計算機系統中引入DMA方式來交換數據?
說簡單點就是讓CPU干簡單但是大量的數據移動操作比較占CPU資源,使用DMA控制器來做,讓CPU有更多的時間處理別的事件。
DirectMemoryAccess(存儲器直接訪問)是指1種高速的數據傳輸操作,允許在外部裝備和存儲器之間直接讀寫數據,既不通過CPU,也不需要CPU干預。
全部數據傳輸操作在1個稱為“DMA控制器”的控制下進行。
CPU除在數據傳輸開始和結束時做1點處理外,在傳輸進程中還可以進行其他的工作。
這樣,在大部份時間里,CPU和輸入輸出都處于并行操作,因此使全部計算機系統的效力大大提高。DMA的概念和作用已大大延伸了,很多復雜CPU里面乃至會包括很多個DMA控制器,DMA操作也不再僅限于外部存儲器了,內部存儲器之間、內部和外部存儲器之間、各種標準外設和存儲器之間,都有DMA控制器來實現數據交換,這樣CPU的功能愈來愈強,數據處理也愈來愈快DMA技術的弊端:由于DMA允許外設直接訪問內存,從而構成對總線的獨占。
這在實時性強的硬實時系統的嵌入式開發中將會造成中斷延時太長。
這在軍事等系統中是不允許的。