ぼくのかんがえたさいきょうCPU: ZLSアーキテクチャ

 風呂で思いついた。長いデータを格納できるレジスタをどう活用するか。  作業用のスクラッチパッドメモリというのがある。巨大な主記憶とは別にコアに近い部分にアクセス速度が早い小容量のメモリを用意し、こちらで作業することにより高速に処理できるようにする。そのスクラッチパッドメモリをどう見せるかだが、あるプロセスだけに局所的に見せようと…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:ローテート/シフト命令

シフト命令:ビット単位 ROR 右ローテート ROL 左ローテート SHR 右シフト SHL 左シフト シフト命令:バイト単位 RORB 右ローテート ROLB 左ローテート SHRB 右シフト SHLB 左シフト ぼくのかんがえたさいきょうCPU 2018命令フォーマットメモ  シフト命令は対象となる…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:EVAL命令詳細

 EVAL命令は指定したレジスタの内容を命令列として実行する。用途は自己書き換え命令の代替、マクロ命令的な利用。 ぼくのかんがえたさいきょうCPU:eval EVAL reg,step regに格納された内容を命令列として扱い、実行する。 命令列はregの下位バイトから上位バイトに向かって順に格納する。 EVA…
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:型とサイズとNull、符号なし演算の扱い

型: 整数型(符号付き2の補数) ー 符号なしの演算結果は%Re側に保存 アドレス型 ー 整数型に追加する属性。アドレッシングモード側に指定されたレジスタに付加。 以下はオプション: 浮動小数点型 ー IEEE754準拠と非準拠。FP16,FP32,FP64,FP128,... DP32,DP64,DP128,... BC…
コメント:0

続きを読むread more

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

 半年ほど更新をサボってましたがリハビリがてらクイズを作ったので遊んでみてください。 プロセサ命令セットアーキテクチャクイズ! 追加したよ! プロセサ命令セットアーキテクチャクイズ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原典 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