- プログラムクエリ方式
- 邪魔をして
- 割り込み要因: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 優先度が高い
- 代替用途: サイクル内での分割使用
- 例
コンピュータ構成の原則 - I/O インターフェイス
おすすめ
転載: blog.csdn.net/qq_56061892/article/details/126139128
ランキング