割り込み再配置
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/23 17:44 UTC 版)
「DOSエクステンダ」の記事における「割り込み再配置」の解説
x86系のCPUは、最初の8086がリリースされた時に、割り込みベクトル 0~ 0x1F をCPU例外用に予約されていたにもかかわらず、IBM PC や PC-9800シリーズは、この予約領域の一部を BIOS やハードウェア割り込みの処理のために割り当ててしまった。そのため、80286が開発されて例外が追加されると、CPU例外とBIOSやハードウェア割り込みの割り込みベクトルが衝突するようになった。80286以降のCPUで追加された例外は、その殆どがプロテクトモードに関連したものであった。そのため、リアルモードで処理をしている場合には、この衝突は殆ど問題にならなかったのだが、プロテクトモードでは割り込みベクトルの衝突が問題になった。そのため、プロテクトモードを利用するために、割り込みコントローラの設定を変更して、効率的にハードウェア割り込みのハンドリングを行うためにハードウェア割り込みの割り込みベクトルを変更する実装があった。この割り込みベクトルの変更処理を割り込み再配置という(BIOSもプロテクトモードで利用するためには、割り込みベクトルの再配置が必要だが、プロテクトモードからはBIOSを呼び出さないことにして衝突を回避する方法もある)。割り込みコントローラは、PC/AT互換機もPC-9800シリーズもFMRシリーズも8259を使用していたが、その接続しているI/Oアドレスが異なるために、割り込みベクトル再配置処理は機種依存する。よって、プロテクトモードを使用するために割り込み再配置処理が必要なので、DOSエクステンダは機種依存することになる。なおFMR/FM TOWNS シリーズは、予め割り込みベクトルが衝突しないように割り込みコントローラやBIOSの割り込みベクトルが割り当てられているので、割り込み再配置は必要ない。 割り込みの再配置は必須ではなく、あくまでも効率的にハードウェア割り込みを処理するための手段の一つである。実際には割り込みを管理する8259に対して割り込み要因の確認(ポール・ワードの読み出し)を行うことで、ハードウェア割り込みを再配置しなくとも、割り込みハンドラはハードウェア割り込みなのかソフトウェア割り込み(フォルトおよびトラップ)なのかを認識することが可能である。
※この「割り込み再配置」の解説は、「DOSエクステンダ」の解説の一部です。
「割り込み再配置」を含む「DOSエクステンダ」の記事については、「DOSエクステンダ」の概要を参照ください。
- 割り込み再配置のページへのリンク