割り込みは、制御ラインを持つ別個のコンポーネントとしてハードウェアで実装することも、メモリサブシステムに統合することもで
ハードウェアで個別のコンポーネントとして実装されている場合、IBM PCのプログラマブル割り込みコントローラ(PIC)などの割り込みコントローラ回路を割 メモリコントローラの一部として実装されている場合、割り込みはシステムのメモリアドレス空間にマップされます。
Shared IRQsEdit
複数のデバイスが設計されている場合、エッジトリガ割込みラインを共有することがあります。 割込みラインにはプルダウン抵抗またはプルアップ抵抗が必要であり、アクティブに駆動されていないときには、そのデフォルト状態である非アクテ デバイスは、ラインを一時的にデフォルト以外の状態に駆動することによって割込みを通知し、割込みを通知しないときはラインをフロートさせます(積極的に駆動しないでください)。 このタイプの接続は、オープンコレクタとも呼ばれます。 ラインはそれからすべての装置によって発生するすべての脈拍を運ぶ。 (これは、一部のバスやトロリーのプルコードに類似しており、乗客は運転手に停止を要求していることを知らせるために引っ張ることができます。)しかし、異なるデバイスからの割り込みパルスは、時間内に近接して発生するとマージされることがあります。 割り込みが失われないようにするには、CPUはパルスの後端でトリガする必要があります(例えば、ラインがプルアップされてローに駆動される場合の立上りエッジ)。 割り込みを検出した後、CPUはすべてのデバイスにサービス要件を確認する必要があります。
エッジトリガ割り込みは、レベルトリガ割り込みが共有する際に持つ問題を受けません。 優先度の低いデバイスのサービスは任意に延期することができますが、優先度の高いデバイスからの割り込みは引き続き受信され、サービスされます。 CPUがサービスの方法を知らないデバイスがある場合、スプリアス割り込みが発生する可能性がありますが、他のデバイスの割り込みシグナリングに干渉することはありません。 ただし、割り込みが一定期間マスクされている場合など、エッジトリガ割り込みを見逃すことは容易であり、イベントを記録する何らかの種類のハー この問題は、プロセッサが何かをすることが期待されていたことを知らなかったので、初期のコンピュータハードウェアに多くの”ロックアップ”を引き起こ よく書かれたエッジ駆動割り込み処理コードは、これらのレジスタをチェックしてイベントが見逃されないようにすることができます。
古い業界標準アーキテクチャ(ISA)バスは、デバイスがIRQラインを共有できるように義務付けずに、エッジトリガ割り込みを使用しますが、すべての主流のISAマザーボードにはIRQラインにプルアップ抵抗が含まれているため、IRQラインを共有するISAデバイスは正常に動作するはずです。 パラレルポートでは、エッジトリガ割り込みも使用します。 多くの古いデバイスは、IRQ回線を排他的に使用していると仮定しているため、それらを共有することは電気的に安全ではありません。複数のデバイスを「同じ回線を共有する」ことができる3つの方法があります。
最初は排他的な伝導(切換え)または排他的な関係(ピンへの)によってあります。 バス上のカードは、彼らが話をしていない話をしているときに知っている必要があります(すなわち、ISAバス)。 話すことは2つの方法で誘発することができる:蓄積の掛け金または論理ゲートによって。 論理ゲートは、キー信号に対して監視される継続的なデータフローを期待します。 アキュムレータは、リモート側がしきい値を超えてゲートを励起するときにのみトリガするため、ネゴシエートされた速度は必要ありません。 それぞれに間隔の利点対速度がある。 トリガは、一般的に、励起が検出される方法です:立ち上がりエッジ、立ち下がりエッジ、しきい値(オシロスコープは、さまざまな形状や条件をトリガするこ
ソフトウェア割り込みのトリガは、ソフトウェアに組み込まれている必要があります(OSとappの両方)。 ‘C’アプリには、ヘッダーにトリガーテーブル(関数のテーブル)があり、アプリとOSの両方がハードウェアに関連していないことを認識し、適切に使用します。 ただし、これをCPUに信号を送るハードウェア割り込みと混同しないでください(CPUはソフトウェア割り込みと同様に、機能のテーブルからソフトウェアを
割り込みラインを共有する難しさ編集
割り込みラインを共有する複数のデバイス(任意のトリガスタイルの)は、すべて互いにスプリアス 多くのデバイスが1つのライン上にある場合、割り込みの処理のワークロードはデバイス数の2乗に比例して増加します。 したがって、デバイスを使用可能な割込みライン全体に均等に分散することが推奨されます。 割込みラインの不足は割込みラインが明瞭な物理的なコンダクターであるより古いシステム設計の問題である。 割り込みラインが仮想であるメッセージ信号割り込みは、新しいシステムアーキテクチャ(PCI Expressなど)で好まれ、この問題をかなり軽減します。
設計が不十分なプログラミングインターフェイスを持つ一部のデバイスは、サービスを要求したかどうかを判断する方法を提供していません。 彼らはそれを望んでいないときにサービスを提供した場合、彼らはロックアップまたはそれ以外の場合は不正な動作をすることがあります。 このようなデバイスは、スプリアス割り込みを許容できないため、割込みラインの共有も許容できません。 ISAカードは、しばしば安価な設計と建設のために、この問題のために悪名高いです。 このようなデバイスは、ハードウェアロジックが安価になり、新しいシステムアーキテクチャで共有可能な割込みが必要になるため、非常に稀になってきています。
HybridEdit
一部のシステムでは、レベルトリガとエッジトリガのシグナリングのハイブリッドを使用しています。 ハードウェアはエッジを探すだけでなく、割り込み信号が一定期間アクティブなままであることも確認します。
ハイブリッド割込みの一般的な用途は、NMI(非マスク可能割込み)入力です。 Nmiは一般に、重大な(あるいは致命的な)システム・イベントを通知するため、この信号を適切に実装すると、割り込みが一定期間アクティブであることを確認することによって、割り込みが有効であることを確実にしようとします。 この2ステップのアプローチは、誤った割り込みがシステムに影響を与えないようにするのに役立ちます。
Message-signaledEdit
メッセージ信号割り込みは、物理的な割り込み行を使用しません。 代わりに、デバイスは、いくつかの通信媒体、通常はコンピュータバスを介して短いメッセージを送信することによって、サービスの要求を通知します。 メッセージは、割り込み用に予約されたタイプのものであるか、メモリ書き込みなどの既存のタイプのものである可能性があります。
メッセージ信号割り込みは、割り込みが連続状態ではなく瞬間的な信号であるという点で、エッジトリガ割り込みと非常によく似ています。 割込み処理ソフトウェアは、この2つをほぼ同じ方法で扱います。 通常、同じメッセージ(同じ仮想割り込み行)を持つ複数の保留中のメッセージ信号割り込みは、密接に間隔をあけられたエッジトリガ割り込みがマージで</p><p>メッセージ信号割り込みベクトルは、基礎となる通信媒体を共有することができる程度に、共有することができる。
メッセージ信号割り込みベク 追加の努力は必要ありません。
割り込みのidはデータビットのパターンによって示されるため、個別の物理導体を必要とせず、より多くの別個の割り込みを効率的に処理できます。 これにより、共有の必要性が軽減されます。 割り込みメッセージはシリアルバスを介して渡すこともでき、追加の行を必要としません。
PCI Express、シリアルコンピュータバスは、メッセージ信号割り込みを排他的に使用します。
DoorbellEdit
コンピュータシステムに適用されるプッシュボタンのアナロジーでは、ドアベルまたはドアベル割り込みという用語は、ソフトウェアシステムがコンピュータのハードウェアデバイスに何らかの作業があることを知らせたり通知したりするメカニズムを記述するためによく使用されます。 典型的には、ソフトウェアシステムは、いくつかのよく知られており、相互に合意されたメモリ位置にデータを配置し、異なるメモリ位置に書き込むことに この異なるメモリ位置は、しばしばドアベル領域と呼ばれ、この領域では異なる目的を果たす複数のドアベルが存在することさえある。 メモリのドアベル領域に書き込むこの行為は、”ベルを鳴らし”、データの準備ができて待機していることをハードウェアデバイスに通知します。 ハードウェアデバイスは、データが有効であり、作用できることを知ることになります。 通常、データをハードディスクドライブに書き込むか、ネットワーク経由で送信したり、暗号化したりします。
ドアベル割り込みという用語は、通常、誤った名称です。 ただし、ドアベル領域はポーリングされた領域として実装されることもあり、ドアベル領域が物理デバイスレジスタに書き込みを行うこともあり、ドアベル領域が物理デバイスレジスタに直接ハードワイヤリングされることもあります。 物理デバイスレジスタを介してまたは直接書き込むと、デバイスの中央プロセッサユニット(CPU)がある場合、実際の割り込みが発生する可能性があります。ドアベル割り込みは、いくつかの類似点があるため、メッセージ信号割り込みと比較できます。
ドアベル割り込みは、いくつかの類似点があるため、メッ
Multiprocessor IPIEdit
In multiprocessor systems, a processor may send an interrupt request to another processor via inter-processor interrupts (IPI).