マイクロプロセッサー-8257DMAコントローラー
DMAはダイレクトメモリアクセスの略です。これは、データを最速で転送するように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つのモードで動作します。 Master mode そして Slave mode。
8257アーキテクチャ
次の画像は、8257-のアーキテクチャを示しています。
8257ピンの説明
次の画像は、8257DMAコントローラーのピン配列を示しています。
DRQ 0 −DRQ3
これらは、DMAサービスを使用するために周辺機器によって使用される4つの個別のチャネルDMA要求入力です。固定優先モードが選択された場合、その後、DRQ 0は最高の優先順位を有し、DRQ 3は、それらの間で最低の優先度を有します。
DACK o − DACK 3
これらはアクティブローDMA確認応答ラインであり、CPUによる要求のステータスについて要求しているペリフェラルを更新します。これらのラインは、要求元のデバイスのストロボラインとしても機能します。
D o − D 7
これらは双方向のデータラインであり、システムバスをDMAコントローラの内部データバスとインターフェイスさせるために使用されます。スレーブモードでは、コマンドワードを8257に、ステータスワードを8257から伝送します。マスターモードでは、これらのラインを使用して、生成されたアドレスの上位バイトをラッチに送信します。このアドレスは、ADSTB信号を使用してさらにラッチされます。
IOR
これはアクティブローの双方向トライステート入力ラインであり、CPUがスレーブモードで8257の内部レジスタを読み取るために使用します。マスターモードでは、メモリ書き込みサイクル中に周辺機器からデータを読み取るために使用されます。
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書き込み操作中にアドレス指定されたメモリ位置にデータを書き込むために使用されるアクティブローの3ステート信号です。
ADST
この信号は、DMAコントローラによって生成されたメモリアドレスの上位バイトをラッチに変換するために使用されます。
AEN
この信号は、アドレスバス/データバスを無効にするために使用されます。
TC
これは「ターミナルカウント」の略で、現在の周辺機器への現在のDMAサイクルを示します。
マーク
マークは、最初から128サイクルまたはその整数倍ごとにアクティブになります。これは、現在のDMAサイクルが、選択した周辺機器への前回のMARK出力から128番目のサイクルであることを示しています。
V cc
回路の動作に必要なのは電力信号です。