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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU 命令フォーマット見直し 分岐命令

<<   作成日時 : 2009/10/10 03:07   >>

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

 今回も地味です。
 分岐命令フォーマット変更 / 分岐命令はRc,Rsの位置を変える。


10condfmhh---Rccccc------------

10fcondmhh---------Rccccc------

[31:30] 10 .. 2ビット 演算/LDST/分岐=10/その他
[29] f .. 1なら浮動小数点の条件 0なら汎用レジスタの条件
[28:25] cond .. 条件
[24] m .. 1なら条件転送命令 0なら分岐命令
[23:22] hh .. m=0のとき分岐ヒント 10 強い非分岐 00 弱い非分岐 11 強い分岐 01 弱い分岐 ※再考の余地あり。冗長。
m=1のとき転送元指定 1なら即値,0なら汎用レジスタ番号 m=1,f=1,h=1は未定義
[11:6] .. Gcc or Fcc番号
[20:12][5:0] 符号付き15ビットPC相対値、命令長は32ビットなので"00"をゲタはかせ。


10condfmhh----RcccccRsssssRddddd

10fcondmhh----RsssssRcccccRddddd

[24] m .. 1 条件移動
[23:22] hh .. m=1のとき転送元指定 00 汎用レジスタ 01 整数即値 10 転送元/先とも浮動小数点レジスタ 11 成立時汎用レジスタor非成立時の整数符号付き即値
[21:18] .. レジスタ間転送命令の時未定義 hh=11のとき非成立時の整数符号付き即値(-8〜+7)
[17:12] .. 転送元レジスタ
[11:6] .. Gcc or Fcc番号
[5:0] .. 転送先レジスタ

10fcondmhh---------RcccccRddddd

[29] f .. 0 整数コンディション
[24] m .. 1 条件移動
[23:22] hh .. 01 即値
[21:13] 符号付き9ビット即値

分岐の相対値、レジスタに転送する即値のビット拡張はプリフィックス命令で行う。

・分岐条件について
cond(分岐条件)はSPARCに合わせる。BA条件と条件転送の組み合わせで、単なるレジスタ転送命令または即値設定命令ができる。
BE/BNE ゼロ/非ゼロ
BGEU/BLU >= (キャリークリア)/< (キャリーセット) (Unsigned)
BLEU/BGU <=/>(Unsigned)
GE/BL >=/<(Signed)
BLE/BG <=/>(Signed)
BNEG/BPOS 負数<0/非負数>=0(Signed)
BVS/BVC オーバーフロー/オーバーフローなし(Signed)
BA/BN 常に分岐/常に非分岐
以上で16種類。

以下を追加する。(f=1)
BB0 Rcccccで指定したレジスタの[0]=0なら分岐 浮動小数点レジスタも指定できる。FBB0 ...
BB1 Rcccccで指定したレジスタの[0]=1なら分岐 浮動小数点レジスタも指定できる。FBB1 ...
BB0,BB1命令はプリフィックス命令の範囲指定が有効。プリフックスでs[7]-e[0]が指定されていた場合、BB0 Rcccc[7:0]="00000000"で条件成立。
パリティ判断、特定領域の1/0判断、浮動小数点の符号判断などに使用できる。
分岐条件の残りは12種類。浮動小数点用にリザーブ。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

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




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