|
テーマ:電子工作(533)
カテゴリ:電子工作
SKIP命令の場合は,命令のフェッチに関しては,通常の命令とまったく変わらず,SKIPする場合は,フェッチした命令を破棄することで実現しています.このときに同時にインタラプトが起きるとちょっと問題になります. 割り込みが起きた場合は,割り込み処理が終了し,元のスレッドに復帰してくるときに,スキップしなかった場合は,PC+1に,スキップする場合は,PC+2に復帰しなくてはなりません.スキップの条件を,復帰するときまで,保存するのはあまりよいやり方とは思えないので,割り込み処理ルーチンに分岐する際に,スタックに積むリターンアドレスをPC+1またはPC+2に変えてやる必要があります. 具体的には,Fig4-4,4-5のようにすればよいと思います.PC+2の「+2」のために特別にハードウェアを用意するのはもったいない(実は+1と共用できますが)ので, CYCLE=2のとき,プログラムカウンタの値をホールドするのをやめ,普通にインクリメントさせれば,所望するアドレスになります. これで,パイプラインの挙動に対する考察はだいたい終わりだと思います.プログラムカウンタ,インストラクションレジスタ,インタラプトコントローラもだいたいどんな機能を持たせるかもだいたい決まりました. ---- 本日の御託 えー,Verilogシミュレータですが,結局Veritakを購入しました.もちろん,Basic版ですけど. 波形エディタは適当なものが見つからないので,今日と前々回の波形は,Verilogで適当なコードを書いて,Veritakの波形表示機能を使って,表示させたものを使っています.(結局これが一番簡単だったりして…) お気に入りの記事を「いいね!」で応援しよう
Last updated
2007.07.25 19:56:31
コメント(0) | コメントを書く
[電子工作] カテゴリの最新記事
|