竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU Jump&Link

<<   作成日時 : 2009/08/21 21:02   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

 前回の各種プロセッサJump&Link命令の調査では、大きく分けて専用レジスタ(または特定の汎用レジスタ)に復帰アドレスを格納するものと汎用レジスタに格納するもの、スタックを使うものに分けられることがわかった。
戻り番地の保存に専用レジスタを使うものは、汎用レジスタへの転送が相互にできる。そしてさらにサブルーチンコールをすることができる。利点は、実行時にPC→専用レジスタへ転送するだけなので実装が楽なことである。
戻り番地の保存に汎用レジスタを使うものは、コンパイラが適切に割り振ってくれれば退避する必要もない。スタックを使うものはスタックポインタにする専用レジスタもしくは特定の汎用レジスタを用意しなければならない。
以上は復帰アドレスの退避先についてだが、専用レジスタを使うものはOSのコンテキストスイッチ切り替えで保存しなければならない。サブルーチン実行中でもコンテキスト切り替えは発生するからだ。逆に組み込み用途だとそんな高度なOSは使わないので心配する必要はない。
 分岐先についてはほとんどが絶対番地指定かPC相対である。これはアドレッシングモードの一部でしかない。ロード/ストアユニットのアドレス生成部分(AGen)とは別に実装しているのではないか。
ここでは、AGenを分岐ユニットにも持たせる、またはロード/ストアユニットのAGenと共用することにより、PA-RISCと同等の機能を持たせることにする。1命令でサブルーチンコールとリターンができる。

ニーモニック
BLR アドレッシングモード,GRr
動作:
PC → GRr
AGen → PC

サブルーチンコールから戻るときは
BLR [GRr+GR0],GR0 (別名 RET GRr)

アドレッシングモードでGRb+GRxの形式を使い、GRxを変えることでジャンプ・テーブルを作ることもできる。

なお、実効アドレスをレジスタに格納するLEA命令は以下の動作になる。ロード/ストアユニットでなくとも実装できることになる。もしくは、BLR/LEA命令そのものをロード/ストアユニット内で実現可能。
LEA アドレッシングモード,GRd
動作:
AGen → GRd

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文




ぼくのかんがえたさいきょうCPU Jump&Link 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる