請教一下- DMA controller



贊助商連結


oxy
2003-10-01, 09:51 AM
在我的認知裡,DMA 就是提供device-device之間資料傳輸的通道
如果輸出端為Master、接收端為Target
那麼Master會先向DMA要求通道的使用權,而DMA若是能夠提供Master通道,就會先發訊號給CPU,要求中斷
然後DMA從Master端得到一些資料存在Register中(關於儲存Target的起始位置、資料大小......等等)
之後就把資料丟到Buffer中,開始做傳送的動作,直到傳送完畢。

那麼有幾個問題請教一下:
1.那麼DMA Controller應該可以執行將主記憶體的資料to/from到卡上的記憶體的動作嘍?
2.主版通常都有8個DMA通道,如果通道是閒置的,而同時有5個裝置要傳送資料,那麼是否可以同一時間做傳輸呢?當然前提是都拿到通道所有權。
3.DMA 通道對我來說是一個滿抽象的東西......如果A從到B,之間的連結32條資料線,那麼如果傳送32-bit的資料,代表說現在A-B之間的資料線就是DMA通道嗎?
4.卡上的Embeded system中有DMA Controller執行External Device to/from memory,是指說可以跟MB的某個裝置做資料傳輸,還是只能在卡上與卡其他原件做傳輸了?

拉哩拉匝講了一堆,希望各位大大能夠撥空指教,感謝萬分:D

贊助商連結


ivantw
2003-10-01, 10:44 AM
http://www.geocities.com/Tokyo/Towers/6851/dma.htm
DMA所要求的不是通道,而是匯流排的使用權,匯流排同時也只能有一個裝置處理器使用。
[1] 可有以下情況 - 記憶體至記憶體 / 記憶體至裝置 / 裝置至記憶體
[2] 不行,同時只能有一個傳送,匯流排只有一個,一次只能一個裝置使用。
[3] 不是,DMA控制器是將原本由CPU負責的工作,改由DMA控制器處理,對記憶體直接存取,提昇系統效率。
[4] 請看 [1] 。


以『DMA控制器』為關鍵字,在Google (www.google.com.tw)搜尋應該可以找到不少基本認識的資料。

oxy
2003-10-01, 09:42 PM
最初由 Ivan Lin 發表
http://www.geocities.com/Tokyo/Towers/6851/dma.htm
DMA所要求的不是通道,而是匯流排的使用權,匯流排同時也只能有一個裝置處理器使用。
[1] 可有以下情況 - 記憶體至記憶體 / 記憶體至裝置 / 裝置至記憶體
[2] 不行,同時只能有一個傳送,匯流排只有一個,一次只能一個裝置使用。
[3] 不是,DMA控制器是將原本由CPU負責的工作,改由DMA控制器處理,對記憶體直接存取,提昇系統效率。
[4] 請看 [1] 。


以『DMA控制器』為關鍵字,在Google (www.google.com.tw)搜尋應該可以找到不少基本認識的資料。

先說聲感謝~~
您附的網址我之前有看過了 這個東西我也是在發問之後才發現我這個問題有錯
不過經由您的說明 我更清楚了:D

關於第三點 我發問的技巧可能不是很好讓您誤會了
如果說A點的資料要到B點 當然要走實際的電路(data line)
那麼此時會向DMA要求做傳輸的動作 DMA提供一個通道給A 代表說可以開始傳輸了
那DMA通道(或者是說DMA Channel)說穿了 其實只是有權使用匯流排罷了 然後利用DMA去傳輸 是嗎?

ivantw
2003-10-01, 11:41 PM
DMA控制器是代理CPU,負責傳輸資料之用途。不知我看的和你所想的是否一致,初步看來你所說沒錯。

備註:簽名檔的美眉是誰啊?日本女星嗎? :D

oxy
2003-10-02, 12:17 AM
我想我們的概念是一致的 不過我瞭解的一定沒你多
因為DMA我真的去看spec也才是第二天的事

至於簽名檔的美眉應該是西門町的店家吧
我已經跟同學說好要去找她了 哈哈

ivantw
2003-10-02, 12:46 AM
如果有需要,我建議你可以去買幾本計算機架構(大專用書就很好用了,不要去買什麼 XXXDIY ,貨是什麼阿賢寫的那一種。)的書,可以幫助你對計算機設計與架構都有著不錯的認識。

最後,美眉的問題我就PM問你好了。 :D