勵志

勵志人生知識庫

dma串流

DMA(Direct Memory Access)串流是一種允許設備或存儲子系統直接在記憶體和外設之間傳輸數據的技術,而無需CPU的干預。以下是DMA串流的工作過程:

當外設準備好進行DMA傳輸時,它會向DMAC(DMA控制器)傳送一個DMA請求信號DREQ

DMAC接到這個請求後,會向CPU發出一個匯流排請求信號HRQ。這個信號連線到CPU的HOLD信號輸入。

當CPU接收到匯流排請求信號後,如果允許DMA傳輸,它會在當前匯流排周期結束後發出一個DMA回響信號HLDA。此時,CPU會將控制匯流排、數據匯流排和地址匯流排設定為高阻態,即放棄對匯流排的控制權,並將有效的HLDA信號傳送給DMAC,通知DMAC它已經放棄了匯流排的控制權。

一旦DMAC獲得了對匯流排的控制權,它會向外設傳送一個DMAC應答信號DACK,通知外設可以開始DMA傳輸。

DMAC負責傳送存儲器的地址信號,並向存儲器及外設發出讀寫控制信號,按照初始化設定的方向控制數據的傳輸,實現外設與記憶體之間的數據交換。

數據傳輸結束後,DMAC會向CPU傳送HOLD信號,要求撤銷匯流排請求信號。CPU收到這個信號後,會使HLDA無效,並收回對匯流排的控制權。

通過這種方式,DMA串流可以在不經過CPU的情況下實現高效的數據傳輸。