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

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

IBM System/360の形式記述

 こういう話もあったので。RISC-V仕様のFormal表現いろいろ(FPGA開発日記)  命令セットアーキテクチャは色々あるけれども、どれも自然言語による定義と擬似コードによる動作の補足説明があるくらい。IBMのSystem/360はAPLで記述してあるらしいことはどっかで聞いたことがあった。 検索してみると:IBM System…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU 演算結果のバイパス

 以下をもうちょっと考えてみたもの。 ぼくのかんがえたさいきょうCPU:連鎖性言語の特徴を取り入れてみる 乗算を使わずに%r1の値を3倍するコードを考えてみる。 SLL %r1,1,%r2 ; ADD %r2,%r1,%r3 SLL命令で%r2には%r1の2倍がはいり、ADDでもとの%r1と加算されて%r3に…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU レジスタの本数と拡張

 命令フォーマットでは汎用レジスタの番号指定を6bit用意している。64本が指定可能で、RISC系プロセッサの汎用レジスタ31(32)本+浮動小数点レジスタ32本をカバーできると考えた。  で、常に64本必要だろうか?インタラプトが発生した時は割り込み処理用に8本くらいでも良さそうだし、数値計算向けに大量に必要になるかもしれない。とい…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU 2018命令フォーマットメモ

 1バイト単位の可変長命令についてドバッと思いついたのをメモ。Wikiサービスを探して整理する予定。 8bit可変長命令フォーマット 命令列 := {CO|CO OP}* CO := 0_xxxxxxx オペコード OP := 1_xxxxxxx オペランド CO := {CO1|CO2|CO3} CO1 :…
トラックバック:0
コメント:0

続きを読むread more