dma傳送不經過cpu的控制,假如硬碟的資料不能經過dma控制器讀到記憶體,那麼每完成一次將硬碟的資料讀出來,再存放到記憶體的操作,都要通過cpu執行幾條讀寫指令來完成,這時cpu就做不了別的事了,如果有dma控制器,則這個過程不需要cpu的參與,只需要占用匯流排就可以了。cpu還可以去完成別的運算。
burst操作還是要通過cpu的參與的,與單獨的一次讀寫操作相比,burst只需要提供乙個其實位址就行了,以後的位址依次加1,而非burst操作每次都要給出位址,以及需要中間的一些應答、等待狀態等等。如果是對位址連續的讀取,burst效率高得多,但如果位址是跳躍的,則無法採用burst操作
1、普通的記憶體、外設間互傳資料,一次性的。
2、支援鍊錶的,美其名曰「scatter」,核心有struct scatter可以參考。
burst:
dma實際上是一次一次的申請匯流排,把要傳的資料總量分成乙個乙個小的資料塊。比如要傳64個位元組,那麼dma內部可能分為2次,一次傳64/2=32個位元組,這個2(a)次呢,就叫做burst。這個burst是可以設定的。這32個位元組又可以分為32位 *8或者16位*16來傳輸。
transfer size:
就是資料寬度,比如8位、32位,一般跟外設的fifo相同。
burst size:
就是一次傳幾個 transfer size.
配置資料寬度為32位。一次傳8個32位=32個位元組。
那麼如果總長度為128位元組,那麼實際dma設定的長度為 128/32 = 4.
DMA burst 基本概念
dma和burst不是乙個概念。dma傳送不經過cpu的控制,假如硬碟的資料不能經過dma控制器讀到記憶體,那麼每完成一次將硬碟的資料讀出來,再存放到記憶體的操作,都要通過cpu執行幾條讀寫指令來完成,這時cpu就做不了別的事了,如果有dma控制器,則這個過程不需要cpu的參與,只需要占用匯流排就可...
PCI匯流排 DMA burst 基本概念
dma和burst不是乙個概念。dma傳送不經過cpu的控制,假如硬碟的資料不能經過dma控制器讀到記憶體,那麼每完成一次將硬碟的資料讀出來,再存放到記憶體的操作,都要通過cpu執行幾條讀寫指令來完成,這時cpu就做不了別的事了,如果有dma控制器,則這個過程不需要cpu的參與,只需要占用匯流排就可...
基本概念 C 基本概念
由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...