ぼくのかんがえたさいきょうCPU: 2017.06 1バイト命令・バリア・プリフィックス

 命令拡張の余地がなくなった場合に、従来未定義だった命令から始めることで続く命令列に機能を追加できる。これをプリフィックス命令という。プリフィックス命令は次の命令に対する1回だけの指示と考えることもできる。プリフィックス命令は短いほどよいので1バイト命令フォーマットから空いているところを探す。今回はメモリ操作命令の1バイトフォーマットを割り当てることにする。

M2:メモリ操作命令

CO1: 00_xxxxxx

M1: 0011_mmww

mm: width[1:0] 2**(n-1)バイト 1~4バイト
その他はM2メモリ操作命令に準拠
M1ロード命令でロード結果が次の命令で使われていない場合はプリフェッチ命令となる
M1ストア命令でストアされるデータは前命令の結果Rd

M2 オペランドなし Reserved
M1/M2 OPC [const]
M1/M2 OPL [const]
M1/M2 OP1C [Ra+const]
M1/M2 OP1C OPL [Ra+const],cccccc 6bitでendian swap
M1/M2 OP2 [Ra+Rb]
M1/M2 OP3S [Ra+Rb],Rc,ss
ss=00 Rc指定の6bitでendian swap
ss=01 Rcの内容でendian swap
ss=10
ss=11

オペランドなしのM1命令について 16種の定義が可能

M1 オペランドなし 0011_nnnn プリフィックス命令/バリア命令

 これでプリフィックス用の余地ができた。あとで定義する。


ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック