微處理器 - 8257 DMA 控制器



DMA 代表直接記憶體訪問 (Direct Memory Access)。它由英特爾設計,用於以最快的速度傳輸資料。它允許裝置直接向記憶體傳輸資料/從記憶體接收資料,而無需 CPU 干預。

使用 DMA 控制器,裝置請求 CPU 保持其資料、地址和控制匯流排,以便裝置可以自由地直接向記憶體傳輸資料/從記憶體接收資料。只有在從 CPU 接收到 HLDA 訊號後,才會啟動 DMA 資料傳輸。

DMA 操作是如何執行的?

以下是 DMA 執行的操作序列:

  • 最初,當任何裝置必須在裝置和記憶體之間傳送資料時,裝置必須向 DMA 控制器傳送 DMA 請求 (DRQ)。

  • DMA 控制器向 CPU 傳送保持請求 (HRQ) 並等待 CPU 宣告 HLDA。

  • 然後,微處理器將所有資料匯流排、地址匯流排和控制匯流排置為三態。CPU 放棄對匯流排的控制,並透過 HLDA 訊號確認 HOLD 請求。

  • 現在 CPU 處於 HOLD 狀態,DMA 控制器必須管理 CPU、記憶體和 I/O 裝置之間總線上的操作。

8257 的特點

以下是 8257 一些突出的特點:

  • 它有四個通道,可用於四個 I/O 裝置。

  • 每個通道都有 16 位地址和 14 位計數器。

  • 每個通道最多可以傳輸 64kb 的資料。

  • 每個通道可以獨立程式設計。

  • 每個通道可以執行讀取傳輸、寫入傳輸和驗證傳輸操作。

  • 它向外圍裝置生成 MARK 訊號,表示已傳輸 128 位元組。

  • 它需要單相時鐘。

  • 其頻率範圍為 250Hz 至 3MHz。

  • 它有兩種工作模式:**主模式**和**從模式**。

8257 架構

下圖顯示了 8257 的架構:

8257 Architecture

8257 引腳描述

下圖顯示了 8257 DMA 控制器的引腳圖:

8257 Pin Diagram

DRQ0−DRQ3

這些是四個獨立的通道 DMA 請求輸入,外圍裝置使用它們來使用 DMA 服務。當選擇固定優先順序模式時,DRQ0 具有最高優先順序,DRQ3 具有最低優先順序。

DACK0 − DACK3

這些是低電平有效的 DMA 確認線,它們透過 CPU 更新請求外圍裝置的請求狀態。這些線也可以充當請求裝置的選通線。

D0 − D7

這些是雙向資料線,用於將系統匯流排與 DMA 控制器的內部資料匯流排介面。在從模式下,它將命令字傳輸到 8257,並將狀態字從 8257 傳輸出來。在主模式下,這些線用於將生成的地址的高位位元組傳送到鎖存器。該地址進一步使用 ADSTB 訊號鎖存。

IOR

這是一個低電平有效的雙向三態輸入線,CPU 在從模式下使用它來讀取 8257 的內部暫存器。在主模式下,它用於在記憶體寫週期期間從外圍裝置讀取資料。

IOW

這是一個低電平有效的雙向三態線,用於將資料匯流排的內容載入到 8 位模式暫存器或 16 位 DMA 地址暫存器或終端計數暫存器的高/低位元組。在主模式下,它用於在 DMA 記憶體讀取週期期間將資料載入到外圍裝置。

CLK

這是一個時鐘頻率訊號,8257 的內部操作需要它。

RESET

此訊號用於透過停用所有 DMA 通道來重置 DMA 控制器。

A0 - A3

這些是四個最低有效地址線。在從模式下,它們充當輸入,選擇要讀取或寫入的暫存器之一。在主模式下,它們是 8257 生成的四個最低有效記憶體地址輸出線。

CS

這是一個低電平有效的片選線。在從模式下,它使能對 8257 的讀/寫操作。在主模式下,它停用對 8257 的讀/寫操作。

A4 - A7

這些是 DMA 在主模式下生成的低位元組地址的高四位。

READY

這是一個高電平有效的非同步輸入訊號,它透過插入等待狀態使 DMA 準備好。

HRQ

此訊號用於接收來自輸出裝置的保持請求訊號。在從模式下,它與 8257 的 DRQ 輸入線連線。在主模式下,它與 CPU 的 HOLD 輸入連線。

HLDA

這是保持確認訊號,當它設定為 1 時,它表示 DMA 控制器 CPU 已將匯流排授予請求外圍裝置。

MEMR

這是低電平有效的記憶體讀取訊號,用於在 DMA 讀取週期期間讀取定址記憶體位置的資料。

MEMW

這是一個低電平有效的三態訊號,用於在 DMA 寫入操作期間將資料寫入定址記憶體位置。

ADST

此訊號用於將 DMA 控制器生成的記憶體地址的高位位元組轉換為鎖存器。

AEN

此訊號用於停用地址匯流排/資料匯流排。

TC

它代表“終端計數”,它向當前外圍裝置指示當前 DMA 週期。

MARK

從開始起每 128 個週期或其整數倍數後,標記將被啟用。它表示當前 DMA 週期是自上次向所選外圍裝置輸出 MARK 訊號以來的第 128 個週期。

Vcc

這是電路操作所需的電源訊號。

廣告