ぼくのかんがえたさいきょうCPU: 2017.05 メモリ操作命令

 メモリ操作命令は汎用レジスタとメモリ間の転送を行う。メモリ操作命令はデータのサイズしか意識しない。 概要と基本フォーマット ・基本は2バイト命令。CO2:M2フォーマットを使用。 CO2: 010_xxxxx_xxdddddd M2: 010_1_wwww_mm_dddddd wwwwはデータ幅、mmはモード …
トラックバック:2
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU: 2017.05 概要と基本フォーマット

 ぼくのかんがえたさいきょうCPUも考え続けていつのまにか十年くらい経ってしまった。いろいろな命令セットアーキテクチャを調べるほどにいじくりまわしたくなるのだが、そろそろまとめてみようかとおもう。 ぼくのかんがえたさいきょうCPU 2017版 ユーザモード定義 ・汎用レジスタはR0~R63の64本 ・汎用レジスタ以外のレジ…
トラックバック:4
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU:連鎖性言語の特徴を取り入れてみる

連鎖性言語  スタックを取り入れようと思うがアンダーフローやオーバーフローの管理がたいへんだ。では以下のように制限してみてはどうだろうか。 ・スタックは1段 ・オーバーフローもアンダーフローも発生しない ・次の命令でスタックからPOPしてもよい。POPしなければ捨てられる  演算結果を判定して分岐する場合 …
トラックバック:1
コメント:0

続きを読むread more

各種プロセッサのメモリオーダリングについて

 メモリに対しプロセッサからのロード/ストアが前後することのあるメモリオーダリングについて整理してみた。 メモリオーダリングまたはメモリコンシステンシに関する過去記事: ロード・ストアの順序が入れ替わるメモリコンシステンシ(メモリオーダリング) SPARCのメモリオーダリング  メモリオーダリングとは、プロセッサから発…
トラックバック:0
コメント:0

続きを読むread more

単項演算命令

 引数として1つのレジスタを入力とし、何らかの加工をして結果を返す命令を整理してみた。すぐ思いつくのは全bit反転のNOTだけど、これは論理演算命令の入力または出力を反転することで求めることができる。 (1)元のデータを加工するもの NOT bit反転 INC +1する。ADD A,1,Y と同等 DEC -1する。D…
トラックバック:0
コメント:0

続きを読むread more

メモ:Deep Learning処理向けプロセッサDLU

世界最速クラスのディープラーニング基盤と、業種・業務に対応したAIサービスを提供(富士通) 富士通、ディープラーニング専用AIプロセッサ「DLU」を開発(pc watch) 富士通、「誰でも使えるAI」の実現に向けて新たなAIサービス(マイナビニュース) 富士通、“30年磨いた”AI「Zinrai」API提供 ディープ…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU スタック

 レジスタに属性をつけることによって何のデータを扱うかを明確にすると、命令セットも単純化できるし便利そうに思える。 ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける その2  が、割り込みなどが発生するとレジスタの値だけではなく属性と一緒に退避しなければならない。どうするか。  まずはレジスタの値に加えて属性情…
トラックバック:0
コメント:1

続きを読むread more

ARMのHPC拡張SVE(Scalable Vector Extension)

 E1丙を周回してますが伊26出ません。  HotChips28でARMv8のHPC拡張、SVE(Scalable Vector Extension)が発表された。 チップカンファレンス「Hot Chips」で次世代京コンピュータなどが発表(PC Watch) 追記: ARMの新ベクトル命令「SVE」、ポスト京に採用へ(…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける その2

 ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつけるの再考。  まずはプロセッサで扱うデータの種類を整理する。 整数型8/16/32/64/128/256/...のbit幅、浮動小数点は半精度、単精度、倍精度、四倍精度、BCD単精度、BCD倍精度、BCD四倍精度。 そして上記データのベクタ型。 …
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける

 SIMD系の命令を考えていたらレーンのサイズごとに命令のバリエーションが増えていくことに気付く。例えば加算のバリエーションはスカラデータ、1バイト単位×レーン数、2バイト単位×レーン数、4バイト単位×レーン数……など。さらに浮動小数点のSIMD形式もあって命令が複雑になる。で、レジスタに属性を付けて、属性によって演算の動作を変えること…
トラックバック:1
コメント:1

続きを読むread more

ロードストアアーキテクチャでもデータの加工はあるよという話

 ロードストアアーキテクチャはRISCの特徴のひとつで演算はすべてレジスタ間で行い、演算に必要な値はメモリ→レジスタへロードするだけ、演算結果をメモリに保存するときはレジスタ→メモリへストアするだけという方式のこと。  ではロードストア時にデータの加工はまったく行われないかというとそうではない。  大容量DRAMから1バイトを読…
トラックバック:0
コメント:0

続きを読むread more

スタックをどうするか?

 作業中のレジスタを一時的に保存しておいて後で取り出せるようにしておくためにスタックを使うことがある。例えばサブルーチンコールをした時に戻る番地はどこかに保存しておかなければならない。  RISC系ではJump&Link命令で戻るべき番地を指定した汎用レジスタ(または決め打ちの汎用レジスタ)に保存してサブルーチンにジャンプし、戻る…
トラックバック:0
コメント:0

続きを読むread more

むかし職場の同僚で群を抜いてすごいと思った人々について

 検証やデバッグをやっていると各パートの設計者と広くつきあうことになる。不具合が発生した時には相談したりツルし上げたりしてたのだが彼らは普通とはなにか違う。 (1)チェア・ディティクティブ=サン  彼はほとんど実験室にこない。だがこちらで検証結果を持って行くと、まだ充分に絞り込めていない段階でもここではないかとピンポイントで指摘…
トラックバック:0
コメント:0

続きを読むread more

MIPS 30周年

 MIPS R2000が世に出てから30周年だそうだ。 It’s been 30 years since the launch of MIPS R2000  1986年ってポケコンのFX-702Pで遊んでいた頃か。日本だと主流は汎用機やオフコン、ミニコン、一般にはホビー向けパソコンが各種普及しつつあった頃だ。1980年代後半には…
トラックバック:0
コメント:0

続きを読むread more

2015年の振り返りと今後

 今年はなんとか月1回分は書けた。  来年やること。 ・MMIX調査 ・SPARCアーキの最新版調査 ・POWER ISA 3.0調査 ・RISC-V調査 ・SIMD命令のレーン間に関する操作 ・浮動小数点命令の分類 ・シフトレジスタ、POPCなどの演算器を作りながら評価  そして、ぼくのかんが…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット続き

 8bit可変長フォーマットを少し直した。  以前の→ ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット ※2016/2/8微修正 0で始まるものは命令、1で始まるものはオペランド。 命令フォーマットは 命令[オペランド]の組み合わせ。 0xxxxxxx 命令ヘッダ ・2,3バイト命令はRd…
トラックバック:1
コメント:0

続きを読むread more

ドラマ:下町ロケット前半で思うこと

 下町ロケット、痛快で面白いですね。ロケット打ち上げで最終的にメーカーの皆さんには悪人はいないみたいな感じになりましたね。  佃製作所の社長が、問題を起こした社員と面談した時に一階だけではだめだ二階部分には夢が必要だと語ったが、結局社員は辞職届を出して辞めてしまった。社長よりもこちらの方に感情移入してしまったのでちょっと書く。 …
トラックバック:0
コメント:0

続きを読むread more