DMA方式及其接口課件_第1頁
DMA方式及其接口課件_第2頁
DMA方式及其接口課件_第3頁
DMA方式及其接口課件_第4頁
DMA方式及其接口課件_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DMA方式及其介面DMA方式的基本概念

直接記憶體訪問(DMA)方式是在外設和主存之間開闢一條“直接數據通道”,在不需要CPU干預也不需要軟體介入的情況下在兩者之間進行的高速數據傳送方式。在DMA傳送方式中,對數據傳送過程進行控制的硬體稱為DMA控制器。當外設需要進行數據傳送時,通過DMA控制器向CPU提出DMA傳送請求,CPU回應之後將讓出系統匯流排,由DMA控制器接管匯流排進行數據傳送。DMA方式的基本概念DMA方式具有下列特點:

(1)它使主存與CPU的固定聯繫脫鉤,主存既可被CPU訪問,又可被外設訪問;

(2)在數據塊傳送時,主存地址的確定、傳送數據的計數等都由硬體電路直接實現;DMA方式的基本概念

(3)主存中要開闢專用緩衝區,及時供給和接收外設的數據;

(4)DMA傳送速度快,CPU和外設並行工作,提高了系統的效率;

(5)DMA在傳送開始前要通過程式進行預處理,結束後要通過中斷方式進行後處理。DMA方式的基本概念DMA和中斷的重要區別為:

(1)中斷方式是程式切換,需要保護和恢復現場;而DMA方式除了開始和結尾時,不佔用CPU的任何資源。

(2)對中斷請求的回應時間只能發生在每條指令執行完畢時;而對DMA請求的回應時間可以發生在每個機器週期結束時。DMA方式的基本概念

(3)中斷傳送過程需要CPU的干預;而DMA傳送過程不需要CPU的干預,故數據傳輸速率非常高,適合於高速外設的成組數據傳送。

(4)DMA請求的優先順序高於中斷請求。

(5)中斷方式具有對異常事件的處理能力,而DMA方式僅局限於完成傳送數據塊的I/O操作。DMA介面

DMA介面相對於查詢式介面和中斷式介面來說比較複雜,習慣將DMA方式的介面電路稱為DMA控制器。DMA介面

在DMA傳送過程中,DMA控制器將接管CPU的地址匯流排、數據匯流排和控制匯流排,CPU的主存控制信號被禁止使用。而當DMA傳送結束後,將恢復CPU的一切權力並開始執行其操作。由此可見,DMA控制器必須具有控制系統匯流排的能力,即能夠像CPU一樣輸出地址信號,接收或發出控制信號,輸入或輸出數據信號。DMA介面簡單的DMA控制器框圖DMA介面

DMA控制器主要由以下幾部分組成:

?主存地址計數器

?傳送長度計數器

?數據緩衝寄存器

?DMA請求觸發器

?控制/狀態邏輯

?中斷機構DMA介面DMA控制器必須有下列引出線:

(1)地址匯流排

在DMA方式下,呈輸出狀態,可對主存進行地址選擇;在CPU方式下,呈輸入狀態,可對DMA控制器中的有關寄存器進行尋址。

(2)數據匯流排

在DMA方式下,用它進行數據傳送;在CPU方式下,可對DMA控制器的有關寄存器進行編程。DMA介面

(3)控制數據傳送方式的信號線。

記憶體讀信號、記憶體寫信號、外設讀信號和外設寫信號。

(4)DMA控制器與外設之間的聯絡信號線

DMA請求信號和DMA回應信號。

(5)DMA控制器與CPU之間的聯絡信號線

匯流排請求信號和匯流排回應信號。DMA介面DMA控制器與CPU及主存、外設之間的連接框圖DMA介面

下麵以外設將一個數據塊寫入主存的操作為例,簡述DMA控制器的操作過程。

①由外設向DMA控制器發出DMA請求信號。

②DMA控制器向CPU發出匯流排請求信號。

③CPU向DMA控制器發出匯流排回應信號,此時,DMA控制器獲取了匯流排的控制權。DMA介面

④DMA控制器向外設發出DMA回應信號,表示DMA控制器已控制了匯流排,允許外設與主存交換數據。

⑤DMA控制器按主存地址計數器的內容發出地址信號作為主存地址的選擇,同時主存地址計數器的內容加1。DMA介面

⑥DMA控制器發出

信號到外設,將外設數據讀入數據緩衝寄存器,同時發出

信號,將數據緩衝寄存器中的數據寫入選中的主存單元。

⑦傳送長度計數器減1。

重複⑤~⑦步驟,直到位元組計數器減到0為止,數據塊的DMA方式傳送工作宣告完成。這時,匯流排控制權交還CPU。DMA介面DMA控制器的操作過程動畫DMA傳送方法DMA控制器與CPU通常採用CPU停止訪問主存法、記憶體分時法和週期挪用法等3種方法使用主存。DMA傳送方法

CPU停止訪問主存法是用DMA請求信號迫使CPU讓出匯流排控制權。CPU在現行機器週期執行完成之後,使其數據、地址匯流排處於三態,並輸出匯流排批準信號。每次DMA請求獲得批準,DMA控制器獲得匯流排控制權以後,連續佔用若干個存取週期(匯流排週期)進行成組連續的數據傳送,直至批量傳送結束,DMA控制器才把匯流排控制權交回CPU。DMA傳送方法

記憶體分時法把原來的一個存取週期分成兩個時間片,一片分給CPU,一片分給DMA,使CPU和DMA交替地訪問主存。這種方法無須申請和歸還匯流排,使匯流排控制權的轉移幾乎不需要什麼時間,但這種方法需要主存在原來的存取週期內為兩個部件服務,如果要維持CPU的訪存速度不變,就要求主存的工作速度提高一倍。另外,由於大多數外設的速度都不能與CPU相匹配,所以供DMA使用的時間片可能成為空操作,將會造成一些不必要的浪費。DMA傳送方法

週期挪用法是前兩種方法的折衷。當外設沒有DMA請求時,CPU按程式要求訪問主存;一旦外設有DMA請求並獲得CPU批準後,CPU讓出一個週期的匯流排控制權,由DMA控制器控制系統匯流排,挪用一個存取週期進行一次數據傳送,傳送一個位元組或一個字;然後,DMA控制器將匯流排控制權交回CPU,CPU繼續進行自己的操作,等待下一個DMA請求的到來。重複上述過程,直至數據塊傳送完畢。DMA傳送過程

DMA的傳送過程可分為3個階段:DMA傳送前的預處理、數據傳送和傳送後的結束處理。DMA傳送過程

DMA預處理是在DMA傳送之前必須要做準備工作,即初始化。CPU首先執行幾條I/O指令,用於測試外設的狀態、向DMA控制器的有關寄存器置初值、設置傳送方向、啟動該外部設備等。

在這些工作完成之後,CPU繼續執行原來的程式,在外設準備好發送的數據(輸入)或接收的數據已處理完畢(輸出)時,外設向DMA控制器發DMA請求,再由DMA控制器向CPU發匯流排請求。DMA傳送過程

DMA的數據傳送可以以單字節(或字)為基本單位,也可以以數據塊為基本單位。對於以數據塊為單位的傳送,DMA控制器佔用匯流排後的數據

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論