Microprocessor-8257-dma-controller
マイクロプロセッサー-8257 DMAコントローラー
DMAはDirect Memory Accessの略です。 Intelがデータを最高速で転送するように設計されています。 これにより、デバイスはCPUの干渉なしにメモリとの間でデータを直接転送できます。
DMAコントローラを使用して、デバイスはCPUにデータ、アドレス、および制御バスを保持するよう要求するため、デバイスはメモリとの間でデータを直接転送できます。 DMAデータ転送は、CPUからHLDA信号を受信した後にのみ開始されます。
DMA操作はどのように実行されますか?
以下は、DMAによって実行される一連の操作です-
- 最初に、デバイスがデバイスとメモリの間でデータを送信する必要がある場合、デバイスはDMA要求(DRQ)をDMAコントローラーに送信する必要があります。
- DMAコントローラーは、保留要求(HRQ)をCPUに送信し、CPUがHLDAをアサートするのを待ちます。
- 次に、マイクロプロセッサはすべてのデータバス、アドレスバス、および制御バスをトライステートにします。 CPUはバスの制御を終了し、HLDA信号を介してHOLD要求を確認します。
- これで、CPUはHOLD状態になり、DMAコントローラーはCPU、メモリ、I/Oデバイス間のバスを介した操作を管理する必要があります。
8257の機能
ここに8257の顕著な特徴のいくつかのリストがあります-
- 4つのI/Oデバイスで使用できる4つのチャネルがあります。
- 各チャネルには16ビットのアドレスと14ビットのカウンターがあります。
- 各チャネルは最大64kbのデータを転送できます。
- 各チャネルは個別にプログラムできます。
- 各チャネルは、読み取り転送、書き込み転送、および検証転送操作を実行できます。
- 128バイトが転送されたという周辺機器へのMARK信号を生成します。
- 単相クロックが必要です。
- その周波数範囲は250Hzから3MHzです。
- それは2つのモード、すなわち*マスターモード*と*スレーブモード*で動作します。
8257アーキテクチャ
次の画像は、8257のアーキテクチャを示しています-
8257ピンの説明
次の画像は、8257 DMAコントローラのピンダイアグラムを示しています-
DRQ〜0〜-DRQ * 3 *
これらは、DMAサービスを使用するために周辺機器によって使用される4つの個別のチャネルDMA要求入力です。 固定優先度モードが選択されている場合、DRQ〜0〜の優先度が最も高く、DRQ〜3〜の優先度が最も低くなります。
DACK〜o〜-DACK〜3〜
これらはアクティブLow DMA確認ラインであり、CPUによるリクエストのステータスについてリクエストしているペリフェラルを更新します。 これらの回線は、要求元デバイスのストロボ回線としても機能します。
D〜o〜-D〜7〜
これらは、システムバスをDMAコントローラの内部データバスとインターフェースするために使用される双方向のデータラインです。 スレーブモードでは、コマンドワードを8257に、ステータスワードを8257から運びます。 マスターモードでは、これらのラインを使用して、生成されたアドレスの上位バイトをラッチに送信します。 このアドレスは、ADSTB信号を使用してさらにラッチされます。
IOR
これはアクティブLowの双方向トライステート入力ラインで、スレーブモードで8257の内部レジスタを読み取るためにCPUによって使用されます。 マスタモードでは、メモリ書き込みサイクル中に周辺デバイスからデータを読み取るために使用されます。
IOW
これはアクティブなロー双方向トライステートラインであり、データバスの内容を8ビットモードレジスタまたは16ビットDMAアドレスレジスタまたはターミナルカウントレジスタの上位/下位バイトにロードするために使用されます。 マスターモードでは、DMAメモリ読み取りサイクル中に周辺デバイスにデータをロードするために使用されます。
CLK
8257の内部動作に必要なのはクロック周波数信号です。
リセット
この信号は、すべてのDMAチャネルを無効にしてDMAコントローラーをリセットするために使用されます。
A〜o〜-A〜3〜
これらは4つの最下位アドレス行です。 スレーブモードでは、これらは入力として機能し、読み取りまたは書き込みを行うレジスタの1つを選択します。 マスターモードでは、8257によって生成される4つの最下位メモリアドレス出力ラインです。
CS
アクティブローのチップセレクトラインです。 スレーブモードでは、8257への読み取り/書き込み操作を有効にします。 マスターモードでは、8257に対する読み取り/書き込み操作を無効にします。
A〜4〜-A〜7〜
これらは、マスターモードでDMAによって生成された下位バイトアドレスの上位ニブルです。
準備完了
これは、アクティブ状態の非同期入力信号で、待機状態を挿入することでDMAを準備します。
HRQ
この信号は、出力デバイスからホールド要求信号を受信するために使用されます。 スレーブモードでは、DRQ入力ライン8257に接続されます。 マスターモードでは、CPUのHOLD入力に接続されます。
HLDA
バスが1に設定されている場合、CPUがバスを要求している周辺機器に許可したことをDMAコントローラーに示すのは、ホールド確認信号です。
MEMR
これは、低メモリ読み取り信号で、DMA読み取りサイクル中にアドレス指定されたメモリ位置からデータを読み取るために使用されます。
MEMW
DMA書き込み操作中にアドレス指定されたメモリ位置にデータを書き込むために使用されるのは、アクティブLowの3状態信号です。
ADST
この信号は、DMAコントローラーによって生成されたメモリアドレスの上位バイトをラッチに変換するために使用されます。
AEN
この信号は、アドレスバス/データバスを無効にするために使用されます。
TC
これは「Terminal Count」の略で、現在の周辺機器に対する現在のDMAサイクルを示します。
MARK
マークは、最初から128サイクルまたは整数倍後にアクティブになります。 これは、現在のDMAサイクルが、選択した周辺デバイスへの前回のMARK出力から128番目のサイクルであることを示しています。
V〜cc〜
回路の動作に必要なのは電力信号です。