いくつかのアーキテクチャ (x86 など) では、Interrupt Vector Table (IVT) は、実際には Tin に記載されているものです:ベクトルのテーブル、別名 pointersです。各ベクトルは、割り込みサービス ルーチン(ISR) のアドレスを保持します。割り込み要求(IRQ) が発生すると、CPU は一部のコンテキストを保存し、ベクトルをPCレジスタにロードして、ISR にジャンプします。ここまでは順調ですね。
しかし、他のいくつかのアーキテクチャ (ARM など) では、IVT にはポインタではなく実行可能コードが含まれます。IRQ が発生すると、CPU は一部のコンテキストを保存し、ベクトルを実行します。しかし、これらの「ベクトル」の間にスペースがないため、そこに ISR を格納する余地がありません。したがって、各「ベクトル命令」は通常、メモリ内の別の場所にある適切な ISR にジャンプするだけです。
私の質問は、後者のアプローチの利点は何ですか?
ISR 自体がよく知られているアドレスを固定しており、合理的な IRS が適切な場所に収まるように間隔を空けて配置されているかどうかは、ちょっとわかります。次に、断片化を犠牲にして、1 つの間接化レベルを節約します。しかし、この「コンパクト ジャンプ テーブル」アプローチには、まったく利点がないように思われます。私は何を取りこぼしたか ?