割り込みとは:タイプとそのアプリケーション
PCは、割り込み要求を使用してさまざまなハードウェア機能を処理します。ハードウェア割り込みは、1953年にUNIVAC 1103によって最初に導入されました。割り込みマスキングの最初の発生は、1954年にIBM 650によって組み込まれました。さまざまな機能を実行するには、さまざまなハードウェアデバイスにさまざまなIRQを割り当てることが不可欠です。プログラムの実行中、キーボードやマウスなどのデバイスはCPUのサービスを必要とし、CPUから注意を引き、要求されたサービスを処理するために割り込みを生成します。これらは割り込みとして知られています。 I / Oデバイスのバスの1つは、この目的を果たすために専用であり、割り込みサービスルーチン(ISR)として知られています。これらは、時間に敏感なイベント、データ転送、異常なイベントの強調、ウォッチドッグタイマー、トラップなど、さまざまなアプリケーションで使用されます。
割り込みとは何ですか?
定義: これは、イベントの即時処理を必要とするハードウェアまたはソフトウェアイベントに対して最も優先度の高い入力信号と呼ばれます。コンピューティングの初期の頃、プロセッサは信号がイベントを処理するのを待たなければなりませんでした。プロセッサは、すべてのハードウェアおよびソフトウェアプログラムをチェックして、処理する信号があるかどうかを理解する必要があります。この方法では、多くのクロックサイクルが消費され、プロセッサがビジーになります。念のため、信号が生成された場合、プロセッサはイベントの処理に再び時間がかかり、システムパフォーマンスが低下します。
この複雑なプロセスを克服するために、新しいメカニズムが導入されました。このメカニズムでは、プロセッサがハードウェアまたはソフトウェアからの信号をチェックするのではなく、ハードウェアまたはソフトウェアが信号をプロセッサに送信します。信号は、プロセッサに最高の優先度で警告し、現在の状態と機能を保存することによって現在のアクティビティを一時停止し、割り込みをすぐに処理します。これはISRと呼ばれます。長くは続かないため、プロセッサは処理されるとすぐに通常のアクティビティを再開します。
割り込みの種類
これらは主に2つのタイプに分類されます。
ハードウェア割り込み
プロセッサと通信するために外部デバイスまたはハードウェアから送信される電子信号で、早急な対応が必要であることを示します。たとえば、キーボードからのストロークやマウスからのアクションにより、ハードウェア割り込みが呼び出され、CPUがそれを読み取って処理します。したがって、非同期で、命令の実行中の任意の時点で到着します。
ハードウェア割り込みは2つのタイプに分類されます
- マスク可能な割り込み –プロセッサは、ハードウェア割り込みの有効化と無効化を可能にするマスクレジスタに割り込みをかける必要があります。すべての信号には、マスクレジスタにビットが配置されています。このビットが設定されている場合、ビットが設定されていないときに割り込みが有効または無効になり、その逆も同様です。これらのマスクを介してプロセッサに割り込む信号は、マスクされた割り込みと呼ばれます。
- マスク不可割り込み(NMI) – NMIは、ウォッチドッグタイマーから生成されるタイムアウト信号など、あらゆる状況で即座に処理する必要がある最も優先度の高いアクティビティです。
ソフトウェア割り込み
特定の命令を実行した後、または特定の条件が満たされた場合、プロセッサ自体がソフトウェア割り込みを要求します。これらは、サブルーチン呼び出しなどの割り込みをトリガーする特定の命令である可能性があり、例外またはトラップと呼ばれるプログラム実行エラーのために予期せずトリガーされる可能性があります。
トリガーメソッド
通常、これらの信号は、論理信号レベルまたは信号エッジのいずれかを使用してトリガーするように設計されています。これらの方法には2つのタイプがあります。
レベルトリガー割り込み
このタイプでは、このサービスレベルがアサートされると、入力モジュールが割り込みを呼び出します。ファームウェア割り込みハンドラーが割り込みソースを処理するときに割り込みソースがアサートされ続ける場合、このモジュールはハンドラーを再生成してトリガーし、ハンドラーを再度呼び出します。レベルトリガー入力は、長時間アサートされたままの場合は適切ではありません。
エッジトリガー割り込み
エッジトリガー割り込み入力モジュールは、立ち下がりエッジまたは立ち上がりエッジであるアサートエッジを識別するとすぐに割り込みを呼び出します。ソースのレベルが変わると、エッジが認識されます。このタイプのトリガーは、ソースのアクティビティに関係なく、すぐにアクションを実行する必要があります。
システムの実装
割り込みは、制御ラインとともに別のコンポーネントとしてハードウェアに適用されるか、メモリサブシステムに統合されます。実装をハードウェアで実行する場合、CPUの入力ピンと割り込みデバイスを接続するためにProgrammable Interrupt Controller(PCI)が必要です。 PCIは、さまざまな割り込みソースをシングルまたはダブルCPUラインに多重化します。メモリコントローラに関連して実装された場合、システムのメモリアドレススロットは割り込みに直接マッピングされます。
共有割り込み要求(IRQ)
エッジトリガー割り込みでは、プルアップまたはプルダウン抵抗を使用して割り込みラインを駆動します。このラインは、各デバイスによって生成されたすべてのパルスを送信します。異なるデバイスから生成された割り込みパルスが時間的に近い場合、CPUは、割り込みを見逃さないようにパルスの立ち下がりエッジを呼び出す必要があります。その後、CPUはすべてのデバイスのサービス要求を確実に検査します。 IRQラインを共有するプルアップ抵抗を備えた正常に動作するIndustryStandard Architecture(ISA)マザーボードは正常に動作する必要があります。ただし、プログラミングインターフェイスの設計が不十分な古いシステムでIRQラインを共有する複数のデバイスでは、割り込みの処理が困難になります。一方、PCIなどの新しいシステムアーキテクチャは、この問題を大幅に軽減するのに役立ちます。
ハイブリッド
ハイブリッドタイプのシステム実装には、エッジトリガーシグナリングとレベルトリガーシグナリングの両方の組み合わせがあります。ハードウェアはエッジを探し、信号が特定の期間アクティブであるかどうかを確認します。ハイブリッドタイプは、マスク不可割り込み(NMI)入力に一般的に使用され、誤った割り込みがシステムに影響を与えないようにします。
メッセージ – 信号
コンピュータバスなどの通信チャネルを介してメッセージを送信することにより、デバイス信号を使用したサービスに対するメッセージ信号の割り込み要求。これらは物理的な割り込みラインを使用しません。 PCI Expressはシリアルバスとして機能し、メッセージ信号による割り込みとしてのみ使用されます。
ドアベル
ドアベル割り込みは、通常、ソフトウェアシステムによって、コンピューターハードウェアに作業を完了するように信号を送るメカニズムとして使用されます。ハードウェアとソフトウェアが相互に合意すると、ソフトウェアはデータを既知のメモリ位置に配置し、ドアベルを鳴らして、データの準備ができて処理を待機していることをハードウェアに通知します。これで、コンピューターのハードウェアデバイスはデータが有効であることを認識し、それに応じて処理します。
マルチプロセッサIPI
マルチプロセッサシステム、プロセッサからの割り込み要求は、プロセッサ間割り込み(IPI)を介して別のプロセッサに送信されます
一般的な使用法/アプリケーション
これらは通常、
に使用される強力な入力です。- ハードウェアタイマーのサービス、キーボードストロークとマウスアクションの処理
- 時間に敏感なイベントやリアルタイムのイベントにすばやく対応する
- 周辺機器との間のデータ転送
- パワーダウン信号、トラップ、ウォッチドッグタイマーなどの優先度の高いタスクに応答します
- CPUの異常なイベントを示します
- 電源オフ割り込みは電源の喪失を予測し、システムの正常なシャットダウンを可能にします
- 絶対時間を追跡するための定期的な割り込み
よくある質問
1)。なぜ割り込みが使用されるのですか?
これらは、ハードウェアまたはソフトウェアのいずれかによって要求されたサービスを実行するためにCPUの注意を引くために使用されます。
2)。 NMIとは何ですか?
NMIはマスク不可割り込みであり、プロセッサが無視したり無効にしたりすることはできません
3)。割り込み確認応答ラインの機能は何ですか?
プロセッサは、割り込みを受信する準備ができていることを示す信号をデバイスに送信します。
4)。ハードウェア割り込みについて説明してください。例を挙げてください
外部デバイスまたはハードウェアによって生成されます。キーボードのキーやマウスの動きなどは、ハードウェア割り込みを呼び出します
5)。ソフトウェア割り込みについて説明してください。
これは、サブルーチン呼び出しなどの割り込みを呼び出す特別な命令として定義されています。プログラム実行エラーが原因で、ソフトウェア割り込みが予期せずトリガーされる可能性があります
6)。どの割り込みが最も優先度が高いですか?
- マスク不可のエッジとレベルがトリガーされました
- TRAPが最も優先されます
7)。割り込みをいくつか使用する
- 時間に敏感なイベントやリアルタイムのイベントにすばやく対応する
- 周辺機器との間のデータ転送
- パワーダウン信号、トラップ、ウォッチドッグタイマーなどの優先度の高いタスクに応答します
- CPUの異常なイベントを示します
8)。ハイブリッドタイプのシステム実装とは何ですか?
ハイブリッドタイプのシステム実装には、エッジトリガーシグナリングとレベルトリガーシグナリングの両方の組み合わせがあります。ハードウェアはエッジを探し、信号が特定の期間アクティブであるかどうかを確認します。
この記事では、割り込みの重要性と、要求されたサービスを実行するために割り込みがどのように使用されるかを理解しました。また、タイプ、システム実装、およびその使用法についても説明しました。
埋め込み