簡述DMA方式,DMA方式的工作過程

2021-03-04 06:40:56 字數 5099 閱讀 4990

1樓:匿名使用者

dma原理:dma(direct memory access,直接記憶體訪問) 是所有現代電腦的重要特色,他允許不同速度的硬體裝置來溝通,而不需要依於 cpu 的大量 中斷 負載。否則,cpu 需要從 ** 把每一片段的資料複製到 暫存器,然後把他們再次寫回到新的地方。

在這個時間中,cpu 對於其他的工作來說就無法使用。 dma 傳輸將資料從乙個位址空間複製到另外乙個位址空間。當 cpu 初始化這個傳輸動作,傳輸動作本身是由 dma 控制器 來實行和完成。

典型的例子就是移動乙個外部記憶體的區塊到晶元內部更快的記憶體區。像是這樣的操作並沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。dma 傳輸對於高效能 嵌入式系統 演算法和網路是很重要的。

在實現dma傳輸時,是由dma控制器直接掌管匯流排,因此,存在著乙個匯流排控制權轉移問題。即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傳輸。

在dma控制器的控制下,在儲存器和外部裝置之間直接進行資料傳送,在傳送過程中不需要**處理器的參與。開始時需提供要傳送的資料的起始位置和資料長度。

4.dma結束

當完成規定的成批資料傳送後,dma控制器即釋放匯流排控制權,並向i/o介面發出結束訊號。當i/o介面收到結束訊號後,一方面停 止i/o裝置的工作,另一方面向cpu提出中斷請求,使cpu從不介入的狀態解脫,並執行一段檢查本次dma傳輸操作正確性的**。最後,帶著本次操作結果及狀態繼續執行原來的程式。

由此可見,dma傳輸方式無需cpu直接控制傳輸,也沒有中斷處理方式那樣保留現場和恢復現場的過程,通過硬體為ram與i/o裝置開闢一條直接傳送資料的通路,使cpu的效率大為提高。

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 是所有現代電腦的重要特色,他允許不同速度的硬體裝置來溝通,而不需要依於 cpu 的大量 中斷 負載。否則,cpu 需要從** 把每一片段的資料複製到暫存器,然後把他們再次寫回到新的地方。在這個時間中,cpu 對於其他的工作來說就無法使用。

dma 傳輸重要地將乙個記憶體區從乙個裝置複製到另外乙個。當 cpu 初始化這個傳輸動作,傳輸動作本身是由 dma 控制器 來實行和完成。典型的例子就是移動乙個外部記憶體的區塊到晶元內部更快的記憶體去。

像是這樣的操作並沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。dma 傳輸對於高效能嵌入式系統演算法和網路是很重要的。

pio模式下硬碟和記憶體之間的資料傳輸是由cpu來控制的;而在dma模式下,cpu只須向dma控制器下達指令,讓dma控制器來處理資料的傳送,資料傳送完畢再把資訊反饋給cpu,這樣就很大程度上減輕了cpu資源占有率。dma模式與pio模式的區別就在於,dma模式不過分依賴cpu,可以大大節省系統資源,二者在傳輸速度上的差異並不十分明顯。dma模式又可以分為single-word dma(單位元組dma)和multi-word dma(多位元組dma)兩種,其中所能達到的最大傳輸速率也只有16.

6mb/s。

dma 傳送方式的優先順序高於程式中斷,兩者的區別主要表現在對cpu的干擾程度不同。程式中斷請求不但使cpu停下來,而且要cpu執行中斷服務程式為中斷請求服務,這個請求包括了對斷點和現場的處理以及cpu與外設的傳送,所以cpu付出了很多的代價;dma請求僅僅使cpu暫停一下,不需要對斷點和現場的處理,並且是由dma控制外設與主存之間的資料傳送,無需cpu的干預,dma只是借用了一點cpu的時間而已。還有乙個區別就是,cpu對這兩個請求的響應時間不同,對程式中斷請求一般都在執行完一條指令的時鐘週期末尾響應,而對dma的請求,由於考慮它的高效性,cpu在每條指令執行的各個階段之中都可以讓給dma使用,是立即響應。

 dma主要由硬體來實現,此時高速外設和記憶體之間進行資料交換不通過cpu的控制,而是利用系統匯流排。dma方式是i/o系統與主機交換資料的主要方式之一,另外還有程式查詢方式和中斷方式。

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

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

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

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

現在找工作都有那些方式,找工作的方式有哪幾種???

1 你可以登陸各網路招聘 註冊並投遞簡歷,等待企業 通知你去面試。2 你也可以攜帶您的相關證件,直接前往附近的各人才市場,進行現場應聘。3 你也可以在附近的工業園的招聘欄裡親自找工作。找工作的方式有哪幾種?一,各類人才網,在此我向你推薦中國人才 前程無憂等都不錯。二,各種大型的人才市場進行現場招聘。...