← コンピュータアーキテクチャのシラバスへ
←講義のツボメニューへ

第25回、第26回
【2003,12,18】

10,8 SEP-2の割り込み


10,8,1 割り込み動作と割り込み処理(一般論)

割り込みとは次のような動作である。

(1)あるユーザプログラムが走行している。

(2)その途中で外部から別の信号がコンピュータに入る。コンピュータもユーザプログラムも予め入りうる信号の
種類は承知しているが、それが実際にいつ入るのか予測できない状況にある。

(3)その信号が入るとコンピュータは走行中のユーザプログラムを一旦中断し、代わりに入った信号を処理する
プログラムを急遽走らせる。

(4)割り込み信号処理プログラムは短い時間に終了するように組まれている。よって短時間に処理を終わる。
すると、コンピュータは一旦中断していたユーザプログラムへ戻り、続きを再開する。

(5)当然ながらユーザプログラムはいかなるところで中断されても、正確に再開されねばならない。
そのための最低条件として走行中のユーザプログラムは、1個の機械語命令の途中で中断されることはなく、
キリの良い所すなわち必ず1個の命令の実行処理(EX)が完了し、次の命令のフェッチが始まるところ(IF0)
で中断される。

(6)割り込みを生起する信号のことを割り込み要因と称し、一般には複数個の要因がある。コンピュータの設計を
行う時点で、どういう要因が存在するのか予め洗い出しておく。

(7)複数の割り込み要因が同時に入ったときは、その中でお互いの優劣順位が予め定められていて
順位の高いものから先に処理を行う

(8)低い順位のものが時間的に先に入ると、その処理プログラムがまず走り出す。その処理がまだ終わらぬうち
に、高い順位の信号が入ると、先の割り込み処理を中断して順位の高い割り込みルーチンが走り出す。
このような場合、割り込みレベルが2レベルあるという。

(9)同じ順位レベルの中で複数の割り込み要因が同時に発生した場合は、先着順に処理が行われ、
オーバーライドは起こらない。1つの処理が終わるまで他の要因はペンデイングして待つ。

(10)ユーザプログラムは入出力機械(IO)の取り扱い(起動、データ授受、終了、停止等)をOSに依頼するのが普
通である。IOの取り扱いは機械の物理的なタイミングにリアルタイム拘束されるので、このハンドリング途中に
他の割り込み信号で邪魔されることは避けたい。
そこで、IO処理プログラム自体を或る高いレベルの割り込み順位として位置づけ、他の割り込みで邪魔されない
ようにする。つまりOSが走ることは1つの割り込み処理動作ともみなされる。
このような場合、ユーザプログラムがOSに対してIO処理を依頼すること自体が、1つの割り込み要因となる。

10,8,2 SEP-2の割り込みレベル

SEP-2では、割り込みレベルは1レベルとする。したがってCPUが走行するときのレベル状態は

(1)割り込みレベル (ITF=1)
(2)ユーザレベル (ITF=0)

の2レベルとなる。現在いずれのレベルに在るかは、ITフラグ(ITF)と呼ぶ1個のフリップフロップで区別する。

10,8,3 割り込み要因

SEP-2では、割り込み要因として”ユーザプログラムからのSVC命令実行”、”外部コンピュータからの信
号”、”KITEボード押しボタンスイッチ”
の3個を想定する。これらは同じレベルにあるので、割り込み処理した
要因は、先の処理プログラムが一旦終了まで待たされる。仮に全く同時に入ったときは、発動の優先順位だけ
は順に”1”、”2”、”3”と決めておく。
← コンピュータアーキテクチャのシラバスへ