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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU ロード/ストア命令再考

<<   作成日時 : 2011/01/16 02:37   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 1 / コメント 0

ロード/ストア命令フォーマットについて整理してみました。デコードに余裕があります。

フォーマット:
01fswwwnnnaappRxxxxxRbbbbbRddddd

[31:30] = "01" ロード/ストア命令
[29] f .. 浮動小数点ロード/ストア
[28] s .. SIMD命令 あまり関係なし。コンディションコードに影響するか?未定義
[27:25] www .. ロード/ストアサイズ
"000" 未定義
"001" 未定義
"010" B .. 1バイト(8bit)
"011" W .. 2バイト(16bit)
"100" S .. 4バイト(32bit)
"101" D .. 8バイト(64bit)
"110" Q .. 16バイト(128bit)
"111" O .. 32バイト(256bit)
[24:22] nnn .. 命令
"000" LD ロード
"001" LDL Load Linked
"010" LEA Load Effective Address
"011" LDI Load from I$
"100" ST ストア
"101" STC Store Conditional
"110" 制御命令 PREFETCH,BRHINT,PFLUSH,BRKPOINTなど 詳細別途
"111" 未定義
※制御命令はRdのフィールド6bitを命令の詳細分類に使う。

[21:20] aa .. ASIレジスタ#0〜#3
[19:18] pp .. アドレッシングモード
基本:[GRbase + GRindex]
→デコードしやすいように変更
[19:18] pp .. 00..即値指定 01..GRx指定 10..ポストインクリメント 11..プリデクリメント
GRb=GR0のとき、ベースレジスタはゼロ
GRb=GR1のとき、ベースレジスタは当命令を指すPCを参照
ポストインクリメント、プリデクリメントの値はロード/ストアサイズによって決まる
[17:12] Rx .. インデックスレジスタまたは6bitの符号付き即値
[11:6] Rb .. ベースレジスタ
[5:0] Rd .. ロード系命令の時はソースレジスタ、ストア系命令の時はデスティネーションレジスタ。

トラップ:
ライフフラグ
 アドレッシングモードのベースレジスタがGR2以上でライフフラグが落ちている場合
 アドレッシングモードのインデックスレジスタが即値以外でライフフラグが落ちている場合
 ストア系命令の時はRdのライフフラグが落ちている場合
アライメント
 ロード/ストアサイズがW,S,D,Q,Oでアライメントが揃っていない場合(例:奇数番地にワードアクセス)
サイズ
 アーキテクチャが許したビット幅より大きいロード/ストアサイズを指定した場合(整数レジスタと浮動小数点レジスタでそれぞれ異なる)

以下はロード/ストア実行時に発生するトラップ:
TLB関係
 DTLB miss トラップ先のDTLBロードで回復可能
 DTLB multihit トラップ先でDTLBフラッシュ、再ロードで回復可能。ダメだったら停止
 MMU Out of Range ページテーブルの範囲外
 Data Access Error キャッシュアクセスの時にノンキャッシュ空間、その逆、メモリやI/Oが存在しない

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(1件)

タイトル (本文) ブログ名/日時
ぼくのかんがえたさいきょうCPU アドレッシングモード
 これまで考えていたもやもやを整理してみた。 ...続きを見る
竹下世界塔の計算機よもやま話
2012/01/02 19:20

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU ロード/ストア命令再考 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる