ホームページ  >  記事  >  割り込み処理の 5 つの段階とは何ですか?

割り込み処理の 5 つの段階とは何ですか?

青灯夜游
青灯夜游オリジナル
2021-04-14 16:06:2038071ブラウズ

割り込み処理プロセスの 5 つの段階: 1. 割り込み要求段階、2. 割り込み調停段階、ハードウェア調停とソフトウェア調停の 2 つの方法があります、3. 割り込み応答段階、CPU がメッセージを送信します。割り込みソース 割り込み応答信号; 4. 割り込みサービスフェーズ; 5. 割り込みリターンフェーズ、元のプログラムのブレークポイントに戻り、ハードウェアサイトを復元し、元のプログラムの実行を継続します。

割り込み処理の 5 つの段階とは何ですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

割り込み処理の基本プロセスは、割り込み要求、割り込み調停、割り込み応答、割り込みサービス、割り込みリターンの 5 段階で構成されます。

1. 割り込み要求フェーズ


1) CPU 内部で発生する割り込み (

内部割り込み) には、割り込み要求は必要ありません。 CPU 内の割り込み制御ロジックが直接受信して処理します。

2)

外部割り込み要求は割り込みソースによって行われます。外部割り込み要因は、CPU の割り込み入力端子を使用して割り込み要求信号を入力します。一般に、CPU にはマスカブル割り込み要求入力端子とノンマスカブル割り込み要求入力端子の 2 つの割り込み要求入力端子があります。

1.1 割り込み要求トリガ

各割り込み要因が割り込み要求信号を送信するタイミングは不定であり、CPU が割り込みに応答するタイミングも不定です。 .確かな。したがって、各割り込みソースには割り込み要求フリップフロップがあり、それ自体の割り込み要求信号をラッチし、CPU が割り込み要求に応答するまで保持してからクリアします。

1.2 割り込みイネーブル フリップフロップ

CPU 内部に割り込みイネーブル フリップフロップがあり、これが "1" の場合、CPU は応答を許可されます。

オープン割り込みと呼ばれる割り込み。 「0」の場合、CPU は割り込みに応答することができず、割り込みはマスクされます。これを off 割り込み と呼びます。

%%通常、CPU がリセットされると、割り込みイネーブル フリップフロップも "0" にリセットされます。これは、割り込みがオフになることを意味します。 CPU 割り込みが応答すると、CPU は自動的に割り込みをオフにし、新たな割り込みの受け付けを禁止します。

%%割り込みイネーブルフリップフロップのステータスは、割り込みオンまたはオフ命令を使用して設定できます。

2. 割り込み調停ステージ


CPU は一度に 1 つの割り込みソースからの要求のみを受け入れることができます。 CPU は同時に、最も高い割り込み優先順位を持つ割り込みソースを見つける必要があり、このプロセスは割り込み調停と呼ばれます。

割り込み調停では、ハードウェア方式またはソフトウェア方式を使用できます。


2.1 ソフトウェアアービトレーション

CPU は割り込み要求を検出した後、まず割り込み要求レジスタの内容を読み取り、そのステータスをビットごとに検出し、あるビットが 1 であれば、対応する割り込み要因に割り込み要求があると判断し、その割り込みサービスルーチンを実行します。

先に検出した方が優先順位が高く、後に検出した方が優先順位が低く、検出の順序が各割り込み要因の優先順位となります。

割り込み処理の 5 つの段階とは何ですか? 上図の入力ポートアドレスが 87FFH であるとします。

MOV DX, 87FFH

IN AL, DX; 割り込み要求レジスタの内容を読み出す
SHR AL, 1
JC IR0; If IRQ0 に対するリクエストがある場合は、IR0 に転送します。
SHR AL,1
JC IR1 ;IRQ1 にリクエストがある場合は、IR1
SHR AL,1
JC IR2 に転送します。 IRQ2 のリクエスト、IR2 に転送
… …

ソフトウェア 意思決定プロセスには長い時間がかかります。割り込み要因が多い場合、割り込みのリアルタイム性は低下しますが、ソフトウェアの優先順位の配置は柔軟です。

2.2 ハードウェア アービトレーション

特殊なハードウェア回路を使用して割り込みソースの優先順位を決定します。一般的な方法は 2 つあります:

デイジー チェーン アービトレーション 最適化回路および割り込みコントローラ調停

2.2.1 デイジーチェーン調停回路

設計アイデア : 各割り込みソースには割り込みロジック回路があり、すべての割り込みロジックは 1 つの回路を形成します。デイジーチェーンのようなチェーン。チェーンの先頭にある割り込みソースの優先度が最も高く、デバイスが後方になるほど優先度は低くなります。
割り込み処理の 5 つの段階とは何ですか?
実装処理: CPUは割り込み要求を受け取り、割り込みが許可されていれば、CPUは割り込み応答信号を送信します。割り込み応答信号はデイジーチェーンのフロントエンドに最初に到達しますが、割り込み要因 1 が割り込み要求を行うと、割り込み応答信号を遮断して次の割り込み要因に送信できないようにブロックします。以下の割り込み要因は、割り込み要求の発生の有無に関わらず、割り込み応答信号を受信できないため、割り込み要求に応答できません。

2.2.2 割り込みコントローラの調停
Intel8259A などの割り込みコントローラは、さまざまな方法で割り込みソースの割り込み優先順位を設定できます。割り込みコントローラには割り込み優先度識別器があり、現在割り込みを要求している最も優先度の高い割り込みソースを自動的に決定し、その割り込みベクトル コードをデータ バスに送信します。CPU は割り込みベクトル コードを受信し、それに応じてそれを見つけます。 。

割り込み処理の 5 つの段階とは何ですか?

3. 割り込み応答フェーズ


割り込み調停の後、割り込み処理は割り込み応答フェーズに入ります。割り込みに応答するとき、CPU は割り込み応答信号を割り込みソースに送信すると同時に、

① ハードウェア サイトを保護します;

② 割り込みをオフします;

③ ブレークポイントの保護;

④ 割り込みサービス ルーチンのエントリ アドレスを取得します。

4. 割り込みサービス フェーズ


割り込みサービス プログラムの一般的な構造は次のとおりです:

1)シーンを保護します。 割り込みサービス ルーチンの先頭にいくつかのプッシュ命令を配置して、各レジスタの内容をスタックにプッシュして保存します。

2)割り込みを有効にします。 割り込みサービス ルーチンの実行中、より高いレベルの割り込み要求が現在の割り込みサービス ルーチンに割り込み、割り込みのネスティングを実装することが許可されます。

3)サービスを中断します。 割り込みソースの特定の要件を満たします。

4)シーンを復元します。 割り込みサービスルーチンが終了する前に、メインプログラムの割り込みシーンを復元する必要があります。通常、スタックに保存されたローカル情報は元のレジスタにポップされます。

5)割り込み復帰。 元のプログラムのブレークポイントに戻り、元のプログラムの実行を続けます。

5. 中断復帰フェーズ


元のプログラムのブレークポイントに戻り、ハードウェア サイトを復元し、元のプログラムの実行を継続します。

割り込み復帰動作は、割り込み応答動作の逆の処理です。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

以上が割り込み処理の 5 つの段階とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。