割り込みとは:タイプとそのアプリケーション

問題を排除するために楽器を試してください





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)。ハイブリッドタイプのシステム実装とは何ですか?

ハイブリッドタイプのシステム実装には、エッジトリガーシグナリングとレベルトリガーシグナリングの両方の組み合わせがあります。ハードウェアはエッジを探し、信号が特定の期間アクティブであるかどうかも確認します。

この記事では、 割り込み 要求されたサービスを実行するためにこれらがどのように使用されるか。また、タイプ、システム実装、およびその使用法についても説明しました。