計算機組成原理——DMA存取方式


 DMA(Direct Memory Access)直接存儲器存取

高速大容量存儲器和主存之間交換時,若采用程序直接傳送或程序中斷傳送的方式,則會有如下問題發生。
    1)采用程序直接傳送,主機工作效率受到限制。
    2)采用中斷控制數據傳送可以提高主機效率,但用於高速外設和主機交換信息,會使主機處於頻繁的中斷與返回過程中,從而加重了與中斷有關的額外負擔(即保護舊現場,恢復新現場),這樣降低了CPU的性能,還有丟失數據的可能。

DMA是l/O設備與主存之間由硬件組成的直接數據通路,主要用於高速I/O設備與主存之間的成組數據傳送。
數據傳送時是在DMA控制器控制下進行的,由DMA控制器給出當前正在傳送的數據字的主存地址,並統計傳送數據的個數以確定一組數據的傳送是否已結束。在主存中要開辟連續地址的專用緩沖器,用來提供或接收傳送的數據。在數據傳送之前和結束后要通過程序或中斷方式對緩沖器和DMA控制器進行預處理和后處理。
 對磁盤的讀寫是以數據塊為單位進行的,一旦找到數據塊的起始位置就將連續地讀寫。

一、DMA控制器

主要功能:

 

組成:

DMA控制器包括多個設備寄存器、中斷控制和DMA控制邏輯等。主要的寄存器有:
  (1)主存地址寄存器(MAR):存放要交換數據的主存地址
  (2)外圍設備地址寄存器(ADR):存放I/O設備的設備碼,或者表示設備信息存儲區的尋址信息。
  (3)字數計數器(WC):對傳送數據的總字數進行統計。
  (4)控制與狀態寄存器(CSR):用來存放控制字和狀態字。
  (5)數據緩沖寄存器(DBR):暫存每次傳送的數據。

二、DMA傳送過程

DMA的數據傳送過程可分為三個階段:

DMA預處理
DMA數據傳送
DMA傳送后處理

 

 

 

在上面數據傳送的過程中,CPU和DMA控制器訪問主存時可能會產生沖突 ,爭奪總線的訪問權。那么應該如何安排CPU和DMA的訪存?

 

三、DMA傳送方式

 

四、DMA方式特點

五、DMA方式與中斷方式比較

 用一道例題來分析這兩種方式對CPU的占用情況。

 使用DMA方式雖然預處理和后處理所占用的時鍾周期開銷比較大,但是由於傳送的數據塊比較大,一秒內需要CPU管理的次數就比較少,綜合起來就是占用CPU時間的百分比比較小。

而中斷方式,雖然一次中斷所占用的時間比DMA預處理和后處理所占用時間小,但一次中斷傳送的數據量小,一秒內需要CPU管理的次數就比較多,所以占用CPU時間的百分比就比較大了。

對於該題,需要知道的是中斷方式下,CPU用於訪問外設的時間響應中斷服務的時間開銷;而DMA方式下,CPU用於訪問外設的時間是DMA預處理和后處理的時間開銷,數據傳輸的工作交給了CPU去執行。

六、總結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM