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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU プリフィックス命令フォーマットの再検討など

<<   作成日時 : 2009/11/09 22:41   >>

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

・プリフィックス命令フォーマット bit範囲指定を廃止、代わりにEOLフラグを付ける。
11ppaaabbbcccdddABCxxxxxxxxxxxxx

pp=00 ロング即値[27:0]
pp=01 レジスタ拡張+ミドル即値[15:0]
pp=10 レジスタ拡張+エンドオブライフ(EOL)フラグ+ショート即値[12:0]
pp=11 一般命令拡張用リザーブ

・なぜbit範囲指定をなくしたか
bit範囲指定はALU命令のみ有効。特にビットフィールド命令、シフト命令で有効。
256bitレジスタ長を考えた時、シフト命令のシフト量は8bit(0〜255)あればよい。範囲を指定したければあまりの上位24bitに追加できる。別途検討するが、単純なシフト命令SLL,SRL,SRAとは別の命令に分けて考える。

・EOL レジスタの使用完了フラグ。レジスタはデスティネーション指定でライフが立ち、EOL指定でライフ終了となる。つまり、以降参照されないことが保証されたレジスタになる。
EOLフラグA=GRs1/FRs1の使用完了
EOLフラグB=GRs2/FRs2の使用完了
EOLフラグC=GRs3/FRs3の使用完了(FMA命令など4オペランド命令時のみ有効)

EOLフラグBを指定していても、ロード/ストア命令でポストインクリメント/プリデクリメントを指定した場合は無視される。
EOLフラグを設定したレジスタでも、デスティネーションに設定されれば、またライフが立つのであまり意味がない。
(例: ADD GR1,GR2E,GR2) GR2=GR2+GR1 , GR2にEOL指定をしているが結果的に無視される。

・割り込みについて
pp=01 or 10についてのみ次命令でレジスタ番号の拡張のチェックがなされる。ステータスフラグで設定された浮動小数点/汎用レジスタ数を越えているかどうかは、次の命令が浮動小数点レジスタか汎用レジスタかわかるまで判定できない。これは、浮動小数点レジスタ数と汎用レジスタ数の最大個数を別々に設定できるため。
pp=11の時はプレフィックスとしてではなく本命令として扱われるので、未定義などの割り込みはそちらに従う。
→結局、プレフィックス位置での割り込みは発生しない。

・ついでにメモ
ロード/ストア命令にはPREFETCH命令があるが、これを命令用のIPREFCHとデータ用のDPREFCHに分ける。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

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




ぼくのかんがえたさいきょうCPU プリフィックス命令フォーマットの再検討など 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる