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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット

<<   作成日時 : 2015/03/24 01:46   >>

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

 初期よりわが鎮守府を支えてくれた愛宕を沈めてしまいました。享年Lv97……


 命令フォーマットについては本命令+ポストフィックスの形で考えたまま頓挫していた。
エントリポイントを考慮した命令フォーマット、プリフィックス廃止

 主な原因は16bitフォーマットを元に色々こねくり回していたからで、ここで思い切って8bit単位の可変長にし、命令の先頭のいくつかのビットで命令長を決定、即値も整理した。


(1)基本

 本命令+[オペランド] オペランドは省略可能

(2)本命令フォーマット

00_xxxxxx 8bit長命令 64種
010x_xxxx_xxdddddd 16bit長命令 128種
011x_xxxx_xxdddddd_xxxxxx_xxxxxxxx 24bit長命令 128種×256

これ以上の命令長が必要なときは、8bit長命令のうちの1つをプリフィックスとして使用する。

(3)オペランド

10_cccccc Rc
110_xxxxx_xxxxxxxx 13bit即値
1110_bbbb_bb_aaaaaa Rb+Ra
11110_xxx_xxxxxxxx_xxxxxxxx_xxxxxxxx 27bit即値
11111_xxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxx 43bit即値

オペランドの並びについて
[即値][Rc][Rb+Ra] それぞれ1つづつ。省略可能。即値は13/27/43bitのうち1つだけ。


割り当て例:8bit長命令

00_000000 NOP
00_000001 エントリポイント

00_000010 CBE Compare&Branch Equal
00_000011 CBNE Compare&Branch Not Equal

オペランド組み合わせ
即値 Rc → Rc==0(Rc!=0) then goto 即値
即値のみ → Branch always または Branch Never
Rcのみ → Rc==0(Rc!=0) then Nullfication(次命令スキップ)
即値 Rb,Ra → Rb==Ra(Rb!=Ra) then goto 即値
Rb,Ra → Rb==Ra(Rb!=Ra) then Nullfication
Rc,Rb,Ra → Rb==Ra(Rb!=Ra) then goto Rc
即値、Rc,Rb,Ra → Rcに次命令を代入してJump&Link


 割と密に詰められるような気がしてきた。しばらくこれで考えよう。











テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(1件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット続き
 8bit可変長フォーマットを少し直した。 ...続きを見る
竹下世界塔の計算機よもやま話
2015/12/27 02:04

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




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