プロセサ命令セットアーキテクチャクイズ!

 半年ほど更新をサボってましたがリハビリがてらクイズを作ったので遊んでみてください。 プロセサ命令セットアーキテクチャクイズ! 追加したよ! プロセサ命令セットアーキテクチャクイズ2! Panasonic フードプロセッサー ホワイト MK-K48P-W ¥ …
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:バリア命令

 メモリオーダリングでロードやストアの順序を入れ替えて効率よく実行させるが、いったん実行中のメモリアクセスを完了させる用途にバリア命令を用意。 命令フォーマット:01110xxx 8種類 メモリ関係: FENCE #LD この命令以前のストア命令を完了 FENCE #ST この命令以前のロード命令を完了 #…
トラックバック:0
コメント:0

続きを読むread more

スーパバイザモードでやるメモリ管理について

 今回は思いつきです。  RISC-V原典を読んで、割り込みの分類を外部から非同期で割り込むインタラプトとその他のトラップに分類していることに気付いた。その他のトラップには従来の例外(エクセプション)も含まれている。例外が発生した命令から例外処理に移り、原因が解決できたらその命令からリトライする。この仕組みでユーザモードのメモリ管…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:明示的な並列実行

 アウトオブオーダ実行は自動的に命令の実行順を入れ替えてできる分から効率的に済ましていく方式だが、命令で明示的に並列実行を指示するにはどうしたらよいか考えてみた。  先行する命令列Aと後続の命令列Bについて考える。  並列実行ができない実装のプロセッサでは命令列Aの実行を済ませてから命令列Bの実行を行う。並列実行ができるプロ…
トラックバック:1
コメント:0

続きを読むread more

第10章 RV32/64特権アーキテクチャ (1)

 第10章  RV32/64特権アーキテクチャ (1) 10.3まで RISC-V原典9章 RISC-V原典8章 RISC-V原典 6,7章 RISC-V原典 3,4,5章 RISC-V原典 1,2章 ・一般のプロセッサにあるユーザモード(U)、スーパバイザモード(S)に加えて最も特権が強いマシンモード(M)を持つ …
トラックバック:2
コメント:0

続きを読むread more

RISC-V原典9章

 第9章 RV64:64ビット・アドレス命令 RISC-V原典8章 RISC-V原典 6,7章 RISC-V原典 3,4,5章 RISC-V原典 1,2章 ・RV32Gってなんだっけか→RV32IMAFDの総称 ・RV64はアドレス空間を64bit、汎用レジスタのサイズを64bitにしたもの ・サイズにより動作…
トラックバック:3
コメント:0

続きを読むread more

RISC-V原典8章

 第8章はベクトル。いちばん面白い章だと思います。 RISC-V原典 6,7章 RISC-V原典 3,4,5章 RISC-V原典 1,2章 第8章 RV32V:ベクトル ・従来のSIMD。インクリメンタルISAでデータのサイズごとに命令が増え複雑に ・RISC-Vではベクトルアーキテクチャを採用。ベクトル長と…
トラックバック:4
コメント:0

続きを読むread more

RISC-V原典 6,7章

 ATOMIC命令と圧縮命令セット。 RISC-V原典 3,4,5章 RISC-V原典 1,2章 第6章 RV32A:原子のように不可分なアトミック命令 ・AMO命令 排他制御 ・LR/SR命令 これはMIPS/AlphaのLoadLink/StoreConditional命令と同じ ・AMOはLR/SRより…
トラックバック:5
コメント:0

続きを読むread more

RISC-V原典 3,4,5章

 前回 RISC-V原典 1,2章 の続き。  の前に2章の感想残り。 → SIMD命令でも命令の追加や使われなくなる命令は基本命令以上にあるはずなので、モジュラーISAとしてどう定義するのか。命令拡張の余地があるところに定義するとしたらインクリメンタルISAと変わらないのでは。それはある程度の命令の集まりとして例えばSIMD2…
トラックバック:6
コメント:0

続きを読むread more

RISC-V原典 1,2章

 RISC-V原典を読みます。 第1章 なせRISC-Vか? ・ISA(命令セットアーキテクチャ)のサポートは永続的であるべき。過去いくつもの命令セットがサポートを打ち切られた ・x86のAAA命令、現在ほぼ使われていないが貴重な1バイト命令を4つも占めている ・過去の互換性から継ぎ足しされていくインクリメンタルIS…
トラックバック:7
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU ISA整理

 ぼくのかんがえたさいきょうCPU Rd指定はいらないのでは検討でしばらく考えた結果、うまく入りそうだったので整理した。  すべての命令は直前の命令の実行結果%Pd、予備結果%Pe、フラグ%Pfとオペランドで指定したレジスタを入力とし、演算結果を%Rd、%Re、%Rfとして次の命令に渡す。汎用レジスタに保存するときは専用のWR命令…
トラックバック:0
コメント:0

続きを読むread more

CRD(Cashe Residence Diagnostics)

 昔書いたような気もするけど整理のため思い出しつつ。  CPUを製造した後、正常に動作するかどうかはベアチップ(ウェハーから切り出した裸のチップ)の状態でスキャンを行って各ゲートがちゃんとH/Lになるかどうかを確認する。スキャンの方法はJTAGで知られている。任意のFFをH/Lに設定することで各組み合わせ回路の入力に値を与え、その…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU Rd指定はいらないのでは検討

 命令フォーマットだけど演算結果を保存しないで次の命令に渡す仕様、必要なときだけデスティネーションレジスタを指定できれば要らないのでは。つまり基本1バイト命令だけで済んでしまうのでは。 00_dddddd 直前の命令の結果PdをRddddddに保存する。 バイト数 フォーマット 1 01_0_0_cond 1 01_…
トラックバック:1
コメント:0

続きを読むread more

nanoMIPS 調査その3 32bit長命令の特別な例と注目の命令

 nanoMIPSの命令調査、これで終わりです。(金など積まれたら考えます) 前回まで: nanoMIPS 調査その2 16bit長命令 nanoMIPS 調査その1 48bit長命令 nanoMIPS調査(Googleスプレッドシート) ・32bit長命令の特別な例  メモリ操作でよく使うソースレジスタを固定してそ…
トラックバック:0
コメント:0

続きを読むread more

nanoMIPS 調査その2 16bit長命令

 nanoMIPSの16bit長命令について抜き出して調べた。 前回:nanoMIPS 調査その1 48bit長命令 nanoMIPS調査(Googleスプレッドシート) 32bit長の命令から16bit長にするためにはbit数を削減するためにいくつかの制限がある。 ・指定できるレジスタ数 32本(5bit)→8本(3b…
トラックバック:1
コメント:0

続きを読むread more

nanoMIPS 調査その1 48bit長命令

 前回のnanoMIPS 第一印象の続き。命令セットの一覧表を作って調べてみた。必要ならコピーしてご自由にお使いください。 nanoMIPS調査(Googleスプレッドシート) nanoMIPSとは: 16/32/48bit長命令の32bitアーキ 遅延スロットはない 乗除算で使ってたHI/LOレジスタはない 16/…
トラックバック:2
コメント:0

続きを読むread more