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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU ALU命令のフォーマット その2

<<   作成日時 : 2010/02/20 00:15   >>

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

 地味です。読み飛ばしていいです。

以下の種類の命令を入れなければならない。ソースレジスタ/デスティネーションレジスタの位置は固定、命令デコードは先頭から、余った所は即値につかう方針で定義する。
1 SISDのみ レジスタ
1 SISDのみ 即値
8 SIMD/SISD レジスタ 8/16/32/64bit
8 SIMD/SISD 即値 8/16/32/64bit
4 SIMDのみ 8/16/32/64
4 SIMD/SISD 単精度/倍精度

00FSDTnnR33333R22222R11111Rddddd

[31:30] = 00 ALU命令
[29] F = 1 浮動小数点命令 F = 0 その他汎用レジスタの命令
[28] S = 1 SIMD命令 S=0 SIMDでない命令
[27] D F=1の時 =0 単精度 =1 倍精度 / F=0の時 =0 Gs2はレジスタ =1 即値
[26] T F=1の時 =1 4オペランド命令(積和演算)命令種別は[25:24]の2bit =0 3オペランド命令 命令種別は[25:18]の8bit
[26] T F=0,S=0の時 汎用レジスタのデコードの一部 ([26:18]の9bit)
[27:26] DT F=0,S=1の時 SIMDのパックドデータサイズ指定 00 8bit 01 16bit 10 32bit 11 64bit 命令種別は[25:18]の8bit
[23:18] 4オペランド命令の時ソースレジスタ指定に使用
[17:12] 3オペランド命令の時ソースレジスタ指定に使用
[11:6] 3,2オペランド命令の時ソースレジスタ指定に使用
[5:0] デスティネーションレジスタ

8bitもあれば命令は256個はいるので充分だろう。もうひとつの目的は32bitの命令all"0"で or GR0,GR0,GR0と定義してみたいからだ。
つまり、NOP。
即値はR2の6bit分は確保できる。もっと長い即値はプレフィックスに頼るか、より長い即値が指定できる分岐命令のフォーマット側で対応したい。即値設定は後回しになりそうだ。
あとはロード/ストア命令も変えたい。エンディアン変換に4bitも使っているが、普通そんなにエンディアン変換をするかな?プレフィックスに追い出して命令デコードに余裕を持たせたい。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(1件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU 演算命令で悩む
 通常の算術演算、論理演算、シフトは当然として、レジスタ幅が32bit〜256bitであることを有効に活かしたい。 ...続きを見る
竹下世界塔の計算機よもやま話
2011/04/11 22:45

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU ALU命令のフォーマット その2 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる