割り込み

出典: くみこみックス

2009年3月16日 (月) 04:39; Worker (会話 | 投稿記録) による版

割り込み(わりこみ)【Interrupt】

 CPUから見た外部のデバイスがCPUに対して何らかの制御を要求している場合に,割り込み信号を使用してCPUにそれを通知すると,CPUは実行中のプログラムを一時停止して,要求の処理を行う.これを割り込み(割り込み処理)という.PC/AT互換のパソコンは,Intel社の8259Aという割り込みコントロールLSIの仕様に基づいている.8259Aには,割り込み要因が何であるかを保持している割り込みステータス・レジスタ,割り込み信号を許可・禁止する割り込みマスク・レジスタ,割り込み信号がどのくらいの重要度をもつかを設定する割り込みレベル設定レジスタなどを備えている.

【出典】Interface編集部 編;組み込み技術用語集,Interface 2007年8月号 別冊付録,CQ出版社,2007年8月.


 プロセッサの外部での要求発生によって,それまで実行していたタスクを一時停止して,要求された特別のタスクを起動する仕組みとして作られました.また,外部の要因ではなく,特定の命令の実行で起動するソフトウェア割り込みの仕組みもあります.

【出典】宮崎 仁;ARM用語集,デザイン ウェーブ マガジン 2008年6月号 別冊付録,CQ出版社,2008年6月.


 コンピュータの周辺機器から通知される割り込み信号によって,CPUが現在行っている処理を一時中断し,別の処理を行うことを割り込み処理といいます().割り込みは周辺機器からのデータを取りこぼすことがないように開発された技術です.割り込みを大別すると,ハードウェア割り込み(CPU外部の周辺機器から与えられた信号によって割り込みが発生)とソフトウェア割り込み(CPU内部の処理によって割り込みが発生)の2種類に分類できます.

 割り込みの処理手順は次のようになります.まず,割り込みが発生したら,何から発生した割り込みかを判定します.次に,その割り込み処理を行うサブルーチン(割り込みハンドラ)へジャンプするために割り込みベクタ(割り込みハンドラへのアドレス情報を格納)と呼ばれる表を参照します.現在,CPUが実行している処理の情報(コンテキストと呼ぶ.主にレジスタ情報)をメモリに保存し,割り込みハンドラを実行します.割り込みハンドラ実行後に保存したコンテキストを元に戻すことで,割り込みがかかる前の処理を再開できます.

画像:fpga_f52.gif

図 割り込み



【出典】(株)アルティマ 技術統括部 一同,下馬場 朋禄,山際 伸一,横溝 憲治;システム開発者のためのFPGA用語集,Design Wave Magazine 2008年12月号 別冊付録,CQ出版社,2008年12月.


 プログラムの実行中に,なんらかの条件(割り込み要求信号)によってプログラム命令の実行を強制的に中断し,別の処理を実行すること.  たとえば,外部装置などからCPUに対して割り込み要求信号が送られると,CPUは現在実行しているプログラムを一時待避して,割り込みを要求している装置に対応したプログラムを優先実行する.割り込み処理が終わると,一時待避させていたプログラムを回復させ,中断したところから再実行する.ハード・ディスクのドライブ,LANボードなどから発生する割り込みをハードウェア割り込み,ソフトウェアからの割り込みをソフトウェア割り込みと呼び,その信号は割り込み番号で区別される.

【出典】西久保 靖彦;基本システムLSI用語辞典,CQ出版社,2000年5月.

表示