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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU テスト・レジスタによる分岐命令の改変/LOOP命令

<<   作成日時 : 2010/05/09 20:17   >>

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

SR.test[31:0]はコンペア命令で比較した結果がtest[31]〜test[2]に格納され、test[1]は"1"で常に真、test[0]は"0"で常に偽である。
分岐命令は指定されたSR.testレジスタのビットを見て、"1"ならば分岐を実行する、としていたのだが、test[1],test[0]も汎用として使いたくなった。これはSIMD命令で比較を行ったときに256bitレジスタで8bitデータを扱った場合ちょうど32個となるからである。この改変で、「常に分岐」と「常に非分岐」命令を追加しなければならない。


10bbbh-------------Attttt------
条件分岐命令
bra #test,LABEL - LABELへ相対分岐
[29:27] bbb = 000
[26] h 分岐ヒント 1 分岐 0 非分岐
[11] A A=1,h=1のとき常に分岐、A=1,h=0のとき常に非分岐 A=0のときは条件に従う。
[10:6] ttttt testビット位置
[25:10][5:0] 20bit 相対アドレス

10bbbh--------------AtttttRddddd
条件Jump&Link命令
blr #test,LABEL,Rd - Rdへ本命令の次のアドレスを格納してLABELへ相対分岐 ※無条件Jump&Linkでは他のアドレッシングモードもある
[29:27] bbb = 001
[26] h 分岐ヒント 1 分岐 0 非分岐
[11] A A=1,h=1のとき常に分岐、A=1,h=0のとき常に非分岐 A=0のときは条件に従う。
[10:6] ttttt testビット位置
[25:10] 14bit 相対アドレス
[5:0] Rd

10bbbh--------RsssssAtttttRddddd
条件移動命令
cmov #test,GRs,GRd
fcmov #test,FRs,FRd
[29:27] bbb = 010 cmov, 001 fcmov
[26] h = 0 Rs指定 1 即値指定(cmovのみ、fcmovではRsssssで指定される定数)
[25:18] 8bit 即値
[17:12] Rs
[11] A A=1で常に実行 A=0のときは条件に従う。
[10:6] ttttt testビット位置
[5:0] Rd

10bbbh--------------------Rddddd
LOOP命令
loopnz LABEL,Rd - Rdを1デクリメントし、Rdが0以外の時分岐
loopz LABEL,Rd - Rdを1デクリメントし、が0の時分岐
[29:27] bbb = 100 loop
[26] h = 1 loopnz(分岐方向) , 0 loopz(非分岐方向)


テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(1件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU BOOLEAN命令
 前回まとめた条件判断の方式で最強なのはIA-64のプレディケイトレジスタ。条件判断の結果を0/1で保存する。 ...続きを見る
竹下世界塔の計算機よもやま話
2012/01/28 23:58

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU テスト・レジスタによる分岐命令の改変/LOOP命令 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる