コンピュータ構成の原則 - I/O インターフェイス

  • プログラムクエリ方式

  • 邪魔をして
    • 割り込み要因:CPU に割り込み要求を行うさまざまな要因
    • ダイレクト メモリ アクセス (DMA): I/O とメイン メモリの間に直接データ パスがあります。
    • チャネルモード: 独自のチャネル命令がありますが、CPU によって制御されます

    • 周辺プロセッサ

  • I/O インターフェースの構成と動作原理

    • インターフェース機能: アドレス識別とデバイス選択、CPU I/O 制御コマンドの受信と保存、周辺機器の動作状態の反映、信号変換、データ形式、コード体系変換、データエラーの検出/訂正、データ送信、割り込み
    • 構成:データバッファレジスタDBR、ステータスレジスタ、コマンドレジスタ、ポートアドレスデコード、コントロールロジック、割り込みロジックで構成
      • ユーザー視点のポート: データ ポート DBR、制御ポート (コマンド レジスタ)、ステータス ポート (ステータス レジスタ)
      • アドレッシング:
        • ユニファイド アドレッシング I/O とメモリは均一にアドレス指定されます
        • 独立したアドレス指定: I/O とメモリには、独自の独立したアドレス空間があります。
      • インターフェイス タイプ:
        • 伝送方式:パラレル、シリアル
        • 選択の柔軟性: プログラム可能、非プログラム可能
        • 汎用性: 一般的なインターフェース、特殊なインターフェース
        • データ転送制御方式:割り込み、DMA
    • I/O コマンド: 80x86 I/O 独立アドレッシングを採用: 入力コマンド IN、出力コマンド OUT
      • ロングフォーマット:IN AX/AL PORT、OUT PORT AX/AL
      • 略称:IN AX/AL DX、OUT DX AX/AL
      • 長い形式の命令は短い解釈時間と高速な I/O 速度を持ち、短い形式はより多くのポートにアクセスできます
    • データ伝送の制御方法
      • プログラム クエリ I/O モード: CPU はアクティブに周辺機器にクエリを実行し、I/O でシリアルに動作します。
  • 割り込み: ランダムに発生. 定時間命令の実行が終了する前に, CPU はインターフェイスに割り込みクエリ信号を送信して I/O 割り込み要求を取得します. INTR を 1 に設定し、CPU は割り込みサービスプログラムを実行します.各命令実行の終わり。
    • 一度に処理できる割り込みソース要求は 1 つだけです
    • 割り込みシステム: 割り込みを実装するハードウェアとソフトウェア
      • CPU:割り込み要求信号を受け付けるINTR、割り込み応答信号を送信するINTA、割り込みステータストリガINT、割り込み許可ステータスフラグEINT、ENITを1にセットするオープン割り込みコマンドSTI、ENITを0にクリアするクローズ割り込みコマンドCLI、プログラムのブレークポイントを PC などにバウンスする割り込み復帰命令 IRET。
      • 割り込みインターフェース:割り込み要求トリガーINTR、割り込みマスクトリガーIM
      • メイン メモリ: さまざまな割り込み要求を処理する割り込みサービス ルーチン
    • プロセス
      • 割り込み要求
      • 仲裁を中断する
      • 割り込み応答: EINT が 1 の場合、CPU は各命令実行の最後に INTR 端子をスキャンします 要求があれば、CPU は INT を 1 にセットして割り込みサイクルに入り、割り込み暗黙命令を実行します
        • 割り込み暗黙命令: プログラム ブレークポイント (現在の PC 値) とフラグ レジスタ FR をスタックにプッシュし、割り込みをオフにし (EINT を 0 にクリア)、割り込みハンドラの最初のアドレスを PC に送信します。
      • 割り込みサービス: シーンの保護 (割り込みポイント保護、CPU レジスタの内容保護)、割り込みサービス、シーンの復元
        • フォーム割り込みエントリ アドレス: ソフトウェア クエリ方式、ハードウェア ベクタ方式
        • ネスティングを中断するために送信できます

      • 割り込み復帰:割り込み命令STIと割り込み復帰命令IRETを実行
    • 割り込みマスク: 割り込みマスク ワードは割り込みマスク レジスタ IMR に書き込まれ、動作中に割り込みサービス シーケンスを一時的に調整できます (最高優先度はすべて 1 です)。

    • 8086 マイクロプロセッサの割り込みシステム
      • ハードウェア割り込み
        • NMI
        • マスカブル割り込み
      • ソフトウェア割り込み(内部割り込み):除算エラー、固定小数点加算オーバーフロー、ブレークポイント割り込み、シングルステップ割り込み、割り込み命令INTn
        • シングルステップ割り込みを除き、内部割り込みはソフトウェアで無効にすることはできません
      • フラグ レジスタを介して割り込みをマスクすると、フラグ IF を実装できます。プロセッサは、各命令実行の最後に INTR ピンをスキャンし、リクエスト信号チェック IF を検出します (STI と CLI はアクティブです)。
      • 割り込みサイクル: 割り込み応答信号 INTA を送信し、フラグ レジスタ FR をスタックにプッシュし、IF と TF をクリアし、レジスタ CS\IP をスタックにプッシュし、割り込みタイプ番号に従って割り込みハンドラのエントリ アドレスを見つけ、書き込みます。 CSとIPに
      • 割り込み命令INTn:タイプ番号nから割り込みハンドラのエントリアドレスを探す
      • 割り込み復帰命令 IRET: スタックから 3 ワードが順次ポップされ、IP\CS\FR に送信されます。
      • 割り込み優先度:ソフトウェア割り込み(0除算、割り込み命令、オーバーフロー割り込み)、ノンマスカブル割り込み、マスカブル割り込み、シングルステップ割り込み

      • 割り込み機能: マクロ パラレル、マイクロ なし
  • DMA: ダイレクト メモリ アクセス。直接実現、間接実現

    • DMAコントローラDMAC構成:メインメモリアドレスレジスタ、ワードカウンタ、デバイスアドレスレジスタ、割り込みロジック、コントロール/ステータスロジック
    • 前処理 -> データ転送 -> 後処理
    • データ送信モード:シングルワード、グループ、リクエスト
      • I/O が DMAC に DMA 要求信号 DREQ を送信、DMAC が CPU にバス占有要求を送信、CPU がバス権放棄の判断、バス許可信号、DMA 応答信号 DACK、I/O とのデータ交換、AR、WC 増加1 で、DMAC は HOLD 信号を解除してバスを解放します。
    • CPUとDMACがメインメモリ/システムバスを共有
      • CPU によるバスの使用を停止します。CPU が遅延します。

      • サイクル盗用: CPU がバスを使用していないときにサイクル転送を盗む
        • CPU がバスを占有してメモリにアクセスしない場合: CPU はすぐにバスを放棄します。
        • CPU 占有バス メモリ アクセス: 現在のサイクルの終了後にバスを解放します
        • CPU リクエスト バス/差し迫ったメモリ アクセス: DMA 優先度が高い
      • 代替用途: サイクル内での分割使用

おすすめ

転載: blog.csdn.net/qq_56061892/article/details/126139128