システムで高度なプログラマブル割り込みコントローラの役割は何ですか?

システムで高度なプログラマブル割り込みコントローラの役割は何ですか?

私はハードウェアとオペレーティングシステムのレベルで割り込みを理解しようとしています。

  1. システムにAPICコントローラが必要なのはなぜですか?私はそれが多重化していることを知っており、1本のワイヤだけがCPUに行きます。割り込みに使用する外部ハードウェアのプロセッサラインが十分であれば、これを行うことはできますか?

  2. IRQ_HANDLEDなしでISRを返すとどうなりますか?

  3. 割り込みが発生してもISRが処理されない理由はどうすればわかりますか(すでにISRを登録して初期化したことを考慮してください)。

ベストアンサー1

StackExchangeでは、各質問を別々の質問投稿として投稿する必要があります。さらに、質問2と3は主にカーネルプログラミングの質問であるため、より適切である可能性があります。スタックオーバーフロー代わりに。質問1のみを含めるようにこの質問を編集し、他の質問をスタックオーバーフローに個別に投稿することをお勧めします。

あなたの質問1について:

もちろん、そうすることもできますが、そうすれば、もはやPCと互換性がなくなる新しいハードウェアアーキテクチャを設計します。

APICは、元のPCの既存の8259A Programmable Interrupt Controller(PIC)チップを改良した代替品です。

PICは、制限された割り込み機能を拡張するために8085および8086マイクロプロセッサ用に設計されています。古いISAバスの場合は十分でしたが、最新のバスタイプではシステムのパフォーマンスとスケーラビリティにボトルネックが発生します。特に、PICはマルチプロセッサシステムを構築するのに十分ではない。

したがって、APIC(Advanced Programmable Interrupt Controller)アーキテクチャが代替として設計されています。最初のAPICは個々のチップ82489DXでした。これにより、486および初期のPentium時代初のデュアルCPUシステムの構築が可能になりました。それ以来、「ネイティブAPIC」機能はCPU自体に統合されました。

APICは、必要に応じてハードウェアレベルで古いPICをエミュレートできますが、最新のオペレーティングシステムでは高度なモードで動作できます。

おすすめ記事