テキストの巻末付録にはこっそり割込みをサポートしたパイプラインCPUのソースコードを掲載しているが、それとは、少し違うアーキテクチャで割込みをサポートしてみよう。
- 割込みベクタ、割込み時PCの格納先をデータメモリ1,0番地とする
- 割込み復帰用にメモリ間接分岐命令(BRI)を作り、この命令で割込み許可を可能とする
- ソフトウェア割込み命令(EXR)を追加
- 割込み入力信号ピンを追加
- リセット時は割込み禁止
- アドレス最上位ビットが1のアドレスをIO空間とし、キャッシュしない
- 割込み刈取りはソフト責任
などの特徴を持たせる。
割込みピンが追加されていたりするので、テストベンチも変更する必要があるし、命令追加に対応するため、アセンブラにも手を入れなくてはならないが、必要な人は個別に連絡をいただくとして、とりあえず、
と、
をアップしておこう。
追記:このソースは、割込みがクロック同期であることを前提としています。
実用的にするには、CPU内部で割込み信号を同期化しましょう。