はじめて読む486 7章
割り込み
割り込みとは
- 仕組み
- プログラムの実行を何らかのきっかけで中断し、一時的に他のプログラムを実行すること
- 流れ
- 割り込みの発生
- 割り込み処理ルーチンの呼び出し
- 割り込み処理ルーチンの実行
- 割り込み処理の終了
- 種類
- ハードウェア割り込み
- 周辺機器からの信号によって発生する
- 例外割り込み
- トラップ: INT, INTO命令によって発生する(ソフトウェア割り込み)
- フォールト: 保護機能、MMUのチェックによって発生する
- アボート: 処理を続けられないエラーが起きた場合に発生する
- ハードウェア割り込み
ハードウェア割り込み
- 486の割り込み入力端子に信号が送られてくることによって発生する
周辺機器に操作が加えられたことや、周辺機器での実行が完了したことを通知するために使われる
処理の手順
- 割り込みの発生
- 人間がキーボードのキーを押すと、キーボードを制御しているキーボードコントローラが割り込みコントローラに割り込み信号を送る
- 割り込みコントローラは他の割り込み要因との調整を行って、486の割り込み入力端子に信号を送る
- 割り込み処理ルーチンの呼び出し
- 486は割り込み信号を受け付けると、さらに割り込み要因を受けとり、対応する割り込み処理ルーチンを選び出す
- それまで実行していたプログラムを中断し、割り込み処理ルーチンの実行を開始する
- 割り込み処理ルーチンの実行
- キーボードに対応する割り込み処理ルーチンでは、キーボードコントローラーから押されたキーの情報をうけとり、割り込み処理ルーチンが管理するメモリ内に格納しておく
- 割り込みの発生
ハードウェアの割り込みと割り込み番号
- 割り込み要因から対応する割り込み処理ルーチンを選択する仕組み
割り込み許可フラグ
- 486内部のフラグレジスタの第9ビットは「割り込み許可フラグ」と呼ばれ、ハードウェアの割り込みをコントロールする
例外割り込み
トラップ
- 「ソフトウェア割り込み」とも呼ばれ、マシン語命令の「INT命令」「INTO命令」が割り込み要因となって発生する
フォールト
- マシンご命令を実行している時に検出された例外状態が割り込み要因となって発生する割り込み
アボート
- フォールトと同じくマシン語命令を実行している時に検出された例外状態が割り込み要因となって発生する
- フォールトよりも致命的なエラー
割り込み処理
リアルモードでの割り込み処理
- リアルモードとプロテクトモードで割り込みの扱い方が違う
- 割り込み番号と割り込み処理ルーチンの対応を割り込みベクタテーブルによって設定する
処理の流れ
割り込みディスクリプタテーブル
プロテクトモードでは、「割り込みディスクリプタテーブル(IDT)」を使用して割り込み番号と割り込み処理ルーチンを対応させる
割り込みディスクリプタテーブルに格納するゲートには「割り込みゲート」「トラップゲート」「タスクゲート」の3種類がある
参考
32ビットコンピュータをやさしく語る はじめて読む486 (アスキー書籍)
- 作者: 蒲地輝尚
- 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
- 発売日: 2014/10/21
- メディア: Kindle版
- この商品を含むブログを見る