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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU 命令フォーマット修正、命令追加

<<   作成日時 : 2009/10/19 16:38   >>

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

 LEA命令はバイト、ワード、単精度、倍精度、128ビット長、256ビット長をサポートするよう修正。
LEA命令フォーマットは二種類になる。この修正はアドレッシングモードのポストインクリメント・プリデクリメント対応のため。
 PREFETCH命令は拡張部分に押し出した。
 新規にBRHINT命令追加。これは分岐予測機構の分岐履歴テーブルに対するヒントで、フェッチは出ない。実装では無視してもよい。
 あと、バイト/ワード指定時のwwのフォーマットを変えた。

・ロード/ストア命令
01fsnnwwppLLLLRxxxxxRbbbbbRddddd

fsnn
0000 LD{SDQO} ロード 符号拡張なし ww指定
0001 LDS{SDQO} ロード 符号拡張付き ww指定
0010 LD{BW} ロード 符号拡張なし バイト/ワード指定 ww=00 バイト ww=10 ワード
0011 LDS{BW} ロード 符号拡張付き バイト/ワード指定 ww=00 バイト ww=10 ワード
0100 ST{SDQO} ストア ww指定
0101 BLR [()],Rd 32ビット指定のみ - 命令列のジャンプ先に関する操作のため
0110 ST{BW} ストア バイト/ワード指定 ww=00 バイト ww=10 ワード
※0111 LEA{BW} Load Effective Address バイト/ワード指定 ww=00 バイト ww=10 ワード
1000 FLD{SDQO} 浮動小数点ロード ww指定
1001 LDA{SDQO} ASI ロード 符号拡張なし ww指定 LLxx[19:18]はASIレジスタ番号0〜3
1010 LDL{SDQO} Load-Linked 符号拡張なし ww指定
※1011 LEA{SDQO} Load Effective Address ww指定
1100 FST{SDQO} 浮動小数点ストア ww指定
1101 STA{SDQO} ASI ストア 符号拡張なし ww指定 LLxx[19:18]はASIレジスタ番号0〜3
1110 STC{SDQO} Store-Conditional 符号拡張なし ww指定
1111 LLLL4ビット分デコード拡張
※1111-0000 PREFETCH [()],GR0 32ビット指定のみ - 命令列に関する操作のため
※1111-0001 BRHINT [()],GR0 32ビット指定のみ - 命令列に関する操作のため


・分岐命令 ビット数の数え間違いをしていた!
10fcondmhh---------Rccccc------

[31:30] 10 .. 2ビット 演算/LDST/分岐=10/その他
[29] f .. 1なら浮動小数点の条件 0なら汎用レジスタの条件
[28:25] cond .. 条件
[24] m .. 1なら条件転送命令 0なら分岐命令

10fcond0hx----------Rccccc------

m=0のとき(分岐命令)
[23:22] hx .. m=0のとき分岐ヒント 1x 分岐予測 0x 非分岐予測 (実装で無視してもよい)
[11:6] .. Gcc or Fcc番号
[22]x 即値の一部
[22:12][5:0] 符号付き17ビットPC相対値、命令長は32ビットなので"00"をゲタはかせ。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

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




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