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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU プリフィックス命令を考える

<<   作成日時 : 2009/11/16 18:25   >>

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

・プリフィックス命令フォーマット bit範囲指定を廃止、代わりにEOLフラグを付けたばっかりだが、プリフィックス命令に続く本命令が浮動小数点命令だった場合の解釈を変えることにする。
 これは、どちらかというと浮動小数点はレジスタ本数が重要であり、汎用レジスタの演算や分岐命令では即値のサイズが重要であることから変更した。

プリフィックス命令 [31:29]=111
一般命令拡張用 [31:29]=110

pp=10 ロング即値[27:0]
11ppxxxxxxxxxxxxxxxxxxxxxxxxxxxx

pp=11 エンドオブライフ(EOL)フラグ+レジスタ拡張+その他
・続く命令が浮動小数点命令のとき
11ppABCaaaabbbbccccddddrrrxxxxxx
A,B,C ソースレジスタのEOL(使用完了フラグ)
aaaa,bbbb,cccc,dddd レジスタ番号拡張 FR0〜FR1023まで指定可能(増えた!)
rrr 本命令の丸め方向 以下に記述していない値は未定義。(SR.fpuに従う)
000 SR.fpuの設定に従う
011 偶数方向丸め
100 切り捨て
101 負の無限大
110 標準
111 正の無限大

[5:0] 未定義 追加する予定あり(割り込み抑止など)

・続く命令が浮動小数点命令でないとき
11ppABaabbddxxxxxxxxxxxxxxxxxxxx
A,B ソースレジスタのEOL(使用完了フラグ)
aa,bb,cc,dd レジスタ番号拡張 GR0〜GR255まで指定可能(減った!)
[19:0] ミドル即値指定

pp=0x 一般命令拡張用リザーブ
[28:0] 自由に定義して使用可能。

プリフィックス命令の連続はトラップ要因となる。つまり、命令列は本命令かプリフィックス命令+本命令の並びしか許可しない。
→プリフィックス位置での割り込みは発生しないというのは間違い。ただし例外は発生しても先にあったプリフィックス命令を無視して命令実行は継続できる。

 さて、有り余るレジスタをどう活用しようか。IA-64だとレジスタ・ローテーションというのがある。SPARCのレジスタ・ウィンドウ似のレジスタ・スタックというのもある。
 汎用レジスタは256個にしたが、これは16bitで指定できてシフト命令などで都合が良い。また、レジスタ間で配列やリンクリストみたいなのが実現できれば、と思っている。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(2件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU なぜポストフィックスではなくプレフィックス命令か
 ARMv8(AArch64)は4バイト長さ単位の可変長命令で、即値代入の場合に後続する8バイトが即値になる様だ。ではなぜ「ぼくのかんがえたさいきょうCPU」はこのように後続で指定せずプレフィックス命令にするのか? ...続きを見る
竹下世界塔の計算機よもやま話
2012/01/03 06:51
ポストフィックス命令
 既存の命令を拡張するのにプリフィックス命令を考えたが、後ろにくっつけるポストフィックス命令を検討してみた。 ...続きを見る
竹下世界塔の計算機よもやま話
2012/08/22 01:05

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

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




ぼくのかんがえたさいきょうCPU プリフィックス命令を考える 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる