直接存儲器存取
直接存儲器存取
直接存儲器存取,計算機術語,即DMA方式,也稱為成組數據傳送方式。主要適用於一些高速的I/O設備。
目錄
直接存儲器存取(Direct Memory Access)方式,即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請求信號可能會打斷一條指令的執行,使它暫時停止執行,數據傳送完畢后才恢復該指令的執行。
用途:
DMA方式主要適用於一些高速的I/O設備。這些設備傳輸位元組或字的速度非常快。對於這類高速I/O設備,如果用輸入輸出指令或採用中斷的方法來傳輸位元組信息,會大量佔用CPU的時間,同時也容易造成數據的丟失。而DMA方式能使I/O設備直接和存儲器進行成批數據的快速傳送。
DMA控制器或介面一般包括四個寄存器:
狀態控制寄存器、數據寄存器、地址寄存器和位元組計數器。
這些寄存器在信息傳送之前需要進行初始化設置。即在輸入輸出程序中用彙編語言指令對各個寄存器寫入初始化控制字。