割り込みベクタテーブル
「 割り込みベクターテーブル」 (IVT)は、割り込みハンドラーのリストを割り込みベクターのテーブル内の割り込み要求のリストに関連付けるデータ構造です。割り込みベクターと呼ばれる割り込みベクターテーブルの各エントリは、割り込みハンドラーのアドレスです。この概念はプロセッサアーキテクチャ全体で共通ですが、IVTはアーキテクチャ固有の方法で実装できます。たとえば、ディスパッチテーブルは、割り込みベクターテーブルを実装する1つの方法です。
バックグラウンド
Intel、AMD、Infineon、Microchip Atmel、NXPなどのチップを含むほとんどのプロセッサには、割り込みベクターテーブルがあります。
割り込みハンドラー
取り扱い方法
割り込みベクトルテーブルは、割り込みサービスルーチンの開始アドレスを見つける最も一般的な3つの方法で使用されます。
「事前定義」「事前定義」メソッドは、割り込みベクトルテーブル内のエントリのアドレスでプログラムカウンタ(PC)を直接ロードします。ジャンプテーブル自体には実行可能コードが含まれています。原則として、非常に短い割り込みハンドラーを割り込みベクトルテーブル内に完全に格納できますが、実際には、各エントリのコードは、その割り込みの完全な割り込みサービスルーチン(ISR)にジャンプする単一のジャンプ命令です。 Intel 8080、Atmel AVR、すべての8051およびMicrochipマイクロコントローラーは、事前定義されたアプローチを使用します。
"フェッチ"「フェッチ」メソッドは、割り込みベクターテーブル内のエントリのアドレスを使用してPCを間接的にロードし、そのテーブルからアドレスを引き出し、そのアドレスでPCをロードします。 IVTのすべてのエントリは、割り込みサービスルーチンのアドレスです。モトローラ/フリースケールのすべてのマイクロコントローラはフェッチメソッドを使用します。
「割り込み確認」「割り込み確認」方式の場合、外部デバイスはCPUに割り込みハンドラー番号を提供します。割り込み確認方法は、Intel Pentiumおよび多くの古いマイクロプロセッサで使用されています。
CPUが割り込みの影響を受けると、CPUは割り込みベクトルテーブルで割り込みハンドラを検索し、制御を転送します。