知識ベース

割り込み要求(PCアーキテクチャ)

コンピューターでは、 割り込み要求 (またはIRQ )は、実行中のプログラムを一時的に停止し、代わりに特別なプログラム(割り込みハンドラー)を実行できるようにするプロセッサーに送信されるハードウェア信号です。ハードウェア割り込みは、モデムやネットワークカードからのデータの受信、キーの押下、マウスの動きなどのイベントを処理するために使用されます。

割り込みラインは、多くの場合、 IRQの形式のインデックスとそれに続く番号で識別されます。たとえば、Intel 8259ファミリのProgrammable Interrupt Controller(PIC)には、一般にIRQ0からIRQ7と呼ばれる8つの割り込み入力があります 。これらのPICのうち2つを使用するx86ベースのコンピューターシステムでは、結合された行セットはIRQ0からIRQ15と呼ばれます 。技術的には、これらのラインはIR0からIR7と命名され、それらが歴史的に接続されたISAバス上のラインはIRQ0からIRQ15と命名されます (歴史的に、ハードウェアデバイスの数が増えると、可能な割り込みの合計数はカスケードによって増加しましたIRQ番号の1つを別のセットまたは番号付きIRQのセットにカスケードし、1つ以上の後続のコントローラーで処理することによる要求)。

新しいx86システムには、Intel APICアーキテクチャに準拠したAdvanced Programmable Interrupt Controller(APIC)が統合されています。これらのAPICは、APICごとに最大255個の物理ハードウェアIRQラインのプログラミングインターフェイスをサポートし、一般的なシステムでは合計約24個のハードウェアラインのみをサポートしています。

パーソナルコンピューティングの初期の数年間、IRQ管理はユーザーの関心事でした。プラグアンドプレイデバイスの導入により、これは軽減されました。

概要

パソコンのハードウェアを使用してデバイスをインストールおよび削除する場合、システムは割り込み要求に依存します。システムBIOSで構成され、オペレーティングシステムによって認識されるデフォルト設定があります。これらのデフォルト設定は、上級ユーザーが変更できます。最新のプラグアンドプレイテクノロジーは、これらの設定に対する懸念を減らすだけでなく、手動設定を実質的に排除しました。

x86 IRQ

通常、Intel 8259 PICを使用するシステムでは、16個のIRQが使用されます。 IRQ 0〜7は1つのIntel 8259 PICで管理され、IRQ 8〜15は2つ目のIntel 8259 PICで管理されます。最初のPICであるマスターは、CPUに直接信号を送る唯一のPICです。 2番目のPICであるスレーブは、代わりにIRQ 2ラインでマスターに信号を送り、マスターはその信号をCPUに渡します。したがって、ハードウェアで使用できる割り込み要求行は15行のみです。

Intel APICアーキテクチャを使用する新しいシステムでは、通常24個のIRQが使用可能で、追加の8個のIRQを使用してPCI割り込みをルーティングし、動的に構成されたPCI割り込みと静的に構成されたISA割り込み間の競合を回避します。 16個のIRQのみ、またはIntel 8259割り込みコントローラーのみを持つ初期のAPICシステムでは、サウスブリッジに統合されたPIRを使用してPCI割り込みラインが16個のIRQにルーティングされました。

Windowsでこの情報を表示する最も簡単な方法は、デバイスマネージャーまたはシステム情報(msinfo32.exe)を使用することです。 Linuxでは、cat / proc / interruptsを実行するか、procinfoユーティリティを使用して、IRQマッピングを表示できます。

マスターPIC

  • IRQ 0 –システムタイマー(変更不可)
  • IRQ 1 –キーボードコントローラー(変更不可)
  • IRQ 2 – IRQ 8〜15からのカスケード信号(IRQ 2を使用するように構成されたデバイスは、実際にはIRQ 9を使用します)
  • IRQ 3 –シリアルポート2のシリアルポートコントローラ(存在する場合、シリアルポート4と共有)
  • IRQ 4 –シリアルポート1のシリアルポートコントローラ(存在する場合、シリアルポート3と共有)
  • IRQ 5 –パラレルポート2および3またはサウンドカード
  • IRQ 6 –フロッピーディスクコントローラー
  • IRQ 7 –パラレルポート1。プリンタ、またはプリンタが存在しない場合はパラレルポートに使用されます。また、ポートを慎重に管理して、セカンダリサウンドカードと共有することもできます。

スレーブPIC

  • IRQ 8 –リアルタイムクロック(RTC)
  • IRQ 9 – Intelチップセットの高度な構成および電源インターフェイス(ACPI)システム制御割り込み。他のチップセットメーカーは、この目的のために別の割り込みを使用するか、周辺機器の使用に使用可能にすることがあります(IRQ 2を使用するように構成されたデバイスは、実際にはIRQ 9を使用します)
  • IRQ 10 –周辺機器を使用するために割り込みが開いたままになります(割り込み/使用可能、SCSIまたはNICを開く)
  • IRQ 11 –周辺機器の使用のために割り込みが開いたままになります(割り込み/使用可能、SCSIまたはNICを開く)
  • IRQ 12 – PS / 2コネクタ上のマウス
  • IRQ 13 – CPUコプロセッサーまたは統合浮動小数点ユニットまたはプロセッサー間割り込み(使用はOSに依存)
  • IRQ 14 –プライマリATAチャネル(ATAインターフェイスは通常、ハードディスクドライブとCDドライブに対応します)
  • IRQ 15 –セカンダリATAチャネル

対立

初期のIBM互換のパーソナルコンピューターでは、 IRQコンフリクトは、2つのデバイスが同じ割り込み要求(またはIRQ)を使用してProgrammable Interrupt Controller(PIC)に割り込みを通知しようとしたときに発生する、かつて一般的なハードウェアエラーです。 PICは、1行につき1つのデバイスのみからの割り込み要求を想定しているため、同じ行に複数のデバイスがIRQ信号を送信すると、一般的にIRQの競合が発生し、コンピューターがフリーズする可能性があります。

たとえば、モデム拡張カードをシステムに追加して、従来はシリアルポート1に割り当てられていたIRQ4に割り当てた場合、IRQの競合が発生する可能性があります。当初、IRQ 7はサウンドカードを使用するための一般的な選択でしたが、IRQ 7がプリンタポ​​ート(LPT1)に干渉することがわかったときに、後でIRQ 5が使用されました。シリアルポートは、他のデバイスのIRQラインを解放するために頻繁に無効にされます。 IRQ 2/9は、MPU-401 MIDIポートの従来の割り込みラインですが、これはACPIシステム制御割り込みと競合します(SCIはIntelチップセットのIRQ9に配線されています)。つまり、ハードワイヤードIRQ 2/9を備えたISA MPU-401カード、およびハードコードされたIRQ 2/9を備えたMPU-401デバイスドライバーは、ACPIが有効になっているシステムで割り込み駆動モードで使用できません。

まれに、2つのデバイスが同時に使用されない限り、同じIRQを共有できます。この問題を解決するために、最新のPCIバス仕様ではIRQ共有が許可されており、後のリビジョンでメッセージシグナル割り込み(MSI)が追加サポートされています。 PCI Expressには物理的な割り込みラインがまったくなく、MSIのみを使用します。