ハードウェア割り込み
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/19 10:20 UTC 版)
「割り込み (コンピュータ)」の記事における「ハードウェア割り込み」の解説
ハードウェア割り込みはCPUの外部から要求されるものであり、CPUの割り込み要求端子をアサート(アクティブ化)された場合に発生する。 例えば、キーボードが押下されるなど周辺機からのデータ入力が発生した際に、割り込み要求端子の電圧をHIからLOWにしてアサートすることで、実行中のCPU命令実行が中断され、入力処理ルーチンの実行処理が割り込まれる。 CPUの割り込み要求端子には、割り込み処理を禁止できないマスク不可能な割り込み (Non-Maskable Interrupt, NMI) と、割り込み処理の許可/禁止を制御できるマスク可能な割り込み(狭義のIRQ)の2種類の端子を備えている場合が多い。割り込みのマスクの設定は主にフラグレジスタに格納されており、割り込みの許可/禁止 (Enable/Disable) を操作するCPUの命令が用意されている。また、これらの端子が同時にアサートされた場合、優先順位がありNMIが優先される。一般に、周辺機からの入力にはOSで制御される必要があるため、IRQ端子に接続して使用されることが多い。一方、デバッグやハードウェアエラーなどの特殊な用途にはNMIが使用されることが多い。 IRQ端子のアサート方法は、信号の変化点を検出するエッジトリガと、信号のレベルで検出するレベルトリガがある。エッジトリガでは、立上がり又は立下りといった片方向の変化だけを検出する「片エッジ検出」と、両方ともを検出する「両エッジ検出」がある。PCIバスではレベルトリガ方式の割り込み信号線が取り入れられている。 CPU が割り込みを認識するためには、割り込みをサンプリングするタイミングで、割り込み信号がアサートされている必要がある。割り込みソースが多い場合、アサートされている信号のサンプリングを完了するまでのサイクル数が増加することになるため、割り込み許可状態とするサイクル数がどの位必要になるか、事前に(割り込み許可状態とサンプリング開始のタイミングやサンプリング完了に要するサイクル数など)割り込み回路設計情報を確認しておく必要がある。 CPU が割り込みを認識し、割り込み終了後に実行再開すべき PC やフラグレジスタを退避した後、割り込み処理ルーティンにてソフトウェアが割り込みを許可しない限りそれ以上の割り込みがネストしないように CPU が割り込みを自動的に禁止するタイプの CPU と、割り込みが認識されたレベルよりも優先度が高い割り込みに限りネストしても受け付けるタイプの CPU がある。
※この「ハードウェア割り込み」の解説は、「割り込み (コンピュータ)」の解説の一部です。
「ハードウェア割り込み」を含む「割り込み (コンピュータ)」の記事については、「割り込み (コンピュータ)」の概要を参照ください。
- ハードウェア割り込みのページへのリンク