什麼是DMA?簡述CPU採用DMA傳送的工作過程

2021-03-04 06:40:56 字數 5263 閱讀 5044

1樓:安徽新華電腦專修學院

dma(direct memory access,直接記憶體訪問) 是所有現代電腦的重要特色,它允許不同速度的硬體裝置來溝通,而不需要依賴於 cpu 的大量中斷負載。否則,cpu 需要從**把每一片段的資料複製到暫存器,然後把它們再次寫回到新的地方。在這個時間中,cpu 對於其他的工作來說就無法使用。

dma方式的工作原理:

乙個裝置介面試圖通過匯流排直接向另乙個裝置傳送資料(一般是大批量的資料),它會先向cpu傳送dma請求訊號。外設通過dma的一種專門介面電路――dma控制器(dmac),向cpu提出接管匯流排控制權的匯流排請求,cpu收到該訊號後,在當前的匯流排週期結束後,會按dma訊號的優先順序和提出dma請求的先後順序響應dma訊號。cpu對某個裝置介面響應dma請求時,會讓出匯流排控制權。

於是在dma控制器的管理下,外設和儲存器直接進行資料交換,而不需cpu干預。資料傳送完畢後,裝置介面會向cpu傳送dma結束訊號,交還匯流排控制權。

實現dma傳送的基本操作如下:

(1)外設可通過dma控制器向cpu發出dma請求:

(2)cpu響應dma請求,系統轉變為dma工作方式,並把匯流排控制權交給dma控制器;

(3)由dma控制器傳送儲存器位址,並決定傳送資料塊的長度;

(4)執行dma傳送;

(5)dma操作結束,並把匯流排控制權交還cpu。

用途:dma方式主要適用於一些高速的i/o裝置。這些裝置傳輸位元組或字的速度非常快。

對於這類高速i/o裝置,如果用輸入輸出指令或採用中斷的方法來傳輸位元組資訊,會大量佔用cpu的時間,同時也容易造成資料的丟失。而dma方式能使i/o裝置直接和儲存器進行成批資料的快速傳送。

dma方式的工作過程

2樓:匿名使用者

實現dma傳送的基本操作如下:

1、外設可通過dma控制器向cpu發出dma請求;

2、cpu響應dma請求,系統轉變為dma工作方式,並把匯流排控制權交給dma控制器;

3、由dma控制器傳送儲存器位址,並決定傳送資料塊的長度;

4、執行dma傳送;

5、dma操作結束,並把匯流排控制權交還cpu。

擴充套件資料

dma方式下,為了控制外設和主存直接交換資料,需要有專門的資料傳送控制電路,通常把這樣的控制邏輯稱為dma控制器。整個過程分以下三個階段:

(1)dma控制器初始化

首先,對dma控制器和裝置介面中的引數暫存器進行初始化,以設定主存首位址、傳送資料個數、傳送方向(讀出/寫入)、裝置位址(如磁頭號、磁軌號、起始扇區號)等,這些初始化工作由cpu執行指令完成。初始化工作的最後是向外設介面傳送啟動讀或寫的命令。

(2)dma傳送

外設介面接受到cpu送來的啟動命令後,就開始控制裝置進行讀或寫操作,當外設準備好資料以後,外設介面就會向dma控制器傳送相應的「dma請求」訊號。

dma控制器接受到該訊號後,就會向cpu傳送「匯流排請求」訊號,要求cpu釋放匯流排,請求由dma控制器控制匯流排以進行外設和主存之間的資料交換。cpu總是在乙個匯流排事務結束後讓出匯流排。

dma控制器每傳送乙個資料,就使資料個數計數器減1。當該計數器為0時,表示傳送過程結束。此結束訊號被送到外設介面,引起外設介面向cpu傳送乙個「dma傳送結束」中斷請求。

(3)dma結束處理。當cpu接收到「dam傳送結束」中斷請求後,就調出相應的中斷服務程式進行dma結束處理。

3樓:匿名使用者

(1)外設可通過dma控制器向cpu發出dma請求:

(2)cpu響應dma請求,系統轉變為dma工作方式,並把匯流排控制權交給dma控制器;

(3)由dma控制器傳送儲存器位址,並決定傳送資料塊的長度;

(4)執行dma傳送;

(5)dma操作結束,並把匯流排控制權交還cpu。

工作原理:

乙個裝置介面試圖通過匯流排直接向另乙個裝置傳送資料(一般是大批量的資料),它會先向cpu傳送dma請求訊號。外設通過dma的一種專門介面電路――dma控制器(dmac),向cpu提出接管匯流排控制權的匯流排請求,cpu收到該訊號後,在當前的匯流排週期結束後,會按dma訊號的優先順序和提出dma請求的先後順序響應dma訊號。cpu對某個裝置介面響應dma請求時,會讓出匯流排控制權。

於是在dma控制器的管理下,外設和儲存器直接進行資料交換,而不需cpu干預。資料傳送完畢後,裝置介面會向cpu傳送dma結束訊號,交還匯流排控制權。

用途:dma方式主要適用於一些高速的i/o裝置。這些裝置傳輸位元組或字的速度非常快。

對於這類高速i/o裝置,如果用輸入輸出指令或採用中斷的方法來傳輸位元組資訊,會大量佔用cpu的時間,同時也容易造成資料的丟失。而dma方式能使i/o裝置直接和儲存器進行成批資料的快速傳送。

dma控制器或介面一般包括四個暫存器:狀態控制暫存器、資料暫存器、位址暫存器和位元組計數器。

這些暫存器在資訊傳送之前需要進行初始化設定。即在輸入輸出程式中用組合語言指令對各個暫存器寫入初始化控制字。

4樓:流年

預處理階段

測試裝置狀態;向dma控制器的裝置位址暫存器中送入裝置號,並啟動裝置;向主存位址計數器中送入欲交換資料的主存起始位址;向字計數器中送入欲交換的資料個數 。

外部裝置準備好傳送的資料(輸入)或上次接收的資料已處理完畢(輸出)時,將通知dma控制器發出dma請求,申請主存匯流排。

資料傳送

輸入操作

①.首先從外部裝置讀入乙個字(設每字16位)到dma資料緩衝暫存器iodr中(如果裝置是面向位元組的,一次讀入乙個位元組,需要將兩個位元組裝配成乙個字)。

②.外部裝置發選通脈衝,使dma控制器中的dma請求標誌觸發器置「1」。

③.dma控制器向cpu發出匯流排請求訊號(hold)。

④.cpu在完成了現行機器週期後,即響應dma請求,發出匯流排允許訊號(hlda),並由dma控制器發出dma響應訊號,使dma請求標記觸發器復位。此時,由dma控制器接管系統匯流排。

⑤.將dma控制器中主存位址暫存器中的主存位址送位址匯流排,

⑥.將dma資料緩衝暫存器中的內容送資料匯流排。

⑦.在讀/寫控制訊號線上發出寫命令。

⑧.將dma位址暫存器的內容加1,從而得到下乙個位址,字計數器減1。

⑨.判斷字計數器的值是否為「0」。若不為「0」,說明資料塊沒有傳送完畢,返回⑤,傳送下乙個資料;若為「0」,說明資料塊已經傳送完畢,則向cpu申請中斷處理。

輸出操作

①.當dma資料緩衝暫存器已將輸出資料送至i/o裝置後,表示資料緩衝暫存器為「空」;

②.外部裝置發選通脈衝,使dma控制器中的dma請求標誌觸發器置「1」;

③.dma控制器向cpu發出匯流排請求訊號(hold);

④.cpu在完成了現行機器週期後,即響應dma請求,發出匯流排允許訊號(hlda),並由dma控制器發出dma響應訊號,使dma請求標記觸發器復位。此時,由dma控制器接管系統匯流排;

⑤.將dma控制器中主存位址暫存器中的主存位址送位址匯流排,在讀/寫控制訊號線上發出讀命令;

⑥.主存將相應位址單元的內容通過資料匯流排讀入到dma資料緩衝暫存器中;

⑦.將dma資料緩衝暫存器的內容送到輸出裝置;

⑧.將dma位址暫存器的內容加1,從而得到下乙個位址,字計數器減1;

⑨.判斷字計數器的值是否為「0」。若不為「0」,說明資料塊沒有傳送完畢,返回到⑤,傳送下乙個資料;若為「0」,說明資料塊已經傳送完畢,則向cpu申請中斷處理。

傳送後處理

校驗送入主存的資料是否正確。

決定是否繼續用dma傳送其他資料塊。

測試在傳送過程中是否發生錯誤。

什麼是dma傳輸

5樓:匿名使用者

dma的概念:dma是在專門的硬體( dma)控制下,實現高速外設

和主儲存器之間自動成批交換資料儘量減少cpu干預的輸入/輸出操作方式。通常有兩種方式:

◎獨佔匯流排方式 ◎週期挪用方式

(2)dma的組成:

◎主存位址暫存器

◎資料數量計數器

◎dma的控制/狀態邏輯 ◎dma請求觸發器

◎資料緩衝暫存器 ◎中斷機構

(3)dma的傳送資料的過程:由三個階段組成

◎傳送前的預處理:由cpu完成以下步驟

向dma卡送入裝置識別訊號,啟動裝置,測試裝置執行狀態,送入記憶體位址初值,傳送資料個數, dma的功能控制訊號。

◎資料傳送:在dma卡控制下自動完成

◎傳送結束處理

dma 卡上應包括通用介面卡的全部組成部分,並多出如下內容:

主存位址暫存器,傳送字數計數器,dma控制邏輯,dma請求,dma響應,dma工作方式,dma優先順序及排隊邏輯等

一次完整的dma傳送過程:

dma 預處理,cpu向dma送命令,如dma方式,主存位址,傳送的字數等,之後cpu執行原來的程式

dma 控制在 i/o 裝置與主存間交換資料:

準備乙個資料, 向cpu發dma請求,取得匯流排控制權,進行資料傳送,修改卡上主存位址,修改字數計數器內且檢查其值是否為零,不為零則繼續傳送,若已為零,則向 cpu發中斷請求.

6樓:匿名使用者

所謂dma,即直接儲存器儲存模式,指計算機周邊裝置(主要指硬碟)可直接與記憶體交換資料,這樣可加快硬碟讀寫速度,提高速據傳輸速率。由於某些原因,windows xp有時會在ide通道上使用pio並行輸入輸出傳輸模式,而不是dma模式。如果有這種情況,使用者可以手動把ide通道改為dma模式,這樣可以減少該裝置佔用的cpu週期。

7樓:孫培勝僪儀

即dma傳輸前,cpu要把匯流排控制權交給dma控制器,而在結束dma傳輸後,dma控制器應立即把匯流排控制權再交回給cpu。

乙個完整的dma傳輸過程必須經過下面的4個步驟。

1.dma請求

cpu對dma控制器初始化,並向i/o介面發出操作命令,i/o介面提出dma請求。

2.dma響應

dma控制器對dma請求判別優選級及遮蔽,向匯流排裁決邏輯提出匯流排請求。當cpu執行完當前匯流排週期即可釋放匯流排控制權。此時,匯流排裁決邏輯輸出匯流排應答,表示dma已經響應,通過dma控制器通知i/o介面開始dma傳輸。

3.dma傳輸

dma控制器獲得匯流排控制權後,cpu即刻掛起或只執行內部操作,由dma控制器輸出讀寫命令,直接控制ram與i/o介面進行dma傳輸。

4.dma結束

當完成規定的成批資料傳送後,dma控制器即釋放匯流排控制權,並向i/o介面發出結束訊號。當i/o介面收到結束訊號後,一方面停

止i/o裝置的工作,另一方面向cpu提出中斷請求,使cpu從不介入的狀態解脫,並執行一段檢查本次dma傳輸操作正確性的**。最後,帶著本次操作結果及狀態繼續執行原來的程式。

什麼是硬碟的DMA模式,什麼是硬碟的DMA模式

dma是直接記憶體訪問 direct memory access 儲存器直接訪問 這是指一種高速的資料傳輸操作,允許在外部裝置和儲存器之間直接讀寫資料,既不通過cpu,也不需要cpu干預。整個資料傳輸操作在乙個稱為 dma控制器 的控制下進行的。cpu除了在資料傳輸開始和結束時做一點處理外,在傳輸過...

dm2是什么單位,dm2是什麼單位

dm2是平方分米,平方分米 符號為dm 是面積的公制單位 si unit 其定義是 邊長為1分米的正方形的面積 單位轉換 1平方分米 1dm 等於 100cm 10000mm 1m 100dm 1cm 0.01dm 1mm 0.0001dm dm 表示面積單位,是平方分米的英文表達形式。平方分米 符...

鋼管Dm32是什麼意思,鋁合金DM32是什麼材料?

符號應該寫錯了,應該是dn,是指鋼管的通徑為32mm,也就是鋼管的外徑是38mm 鋁合金dm32是什麼材料?1 在壓鑄鋁合金中,並無dm32這個牌號。壓鑄鋁合金中,dm系列牌號有 dm2 dm3 dm5 dm6。2 dm diecast mitsubishi 意思日本三菱公司壓鑄鋁合金牌號。此牌號系...