アクセスカウンタ

zoom RSS テーマ「ぼくのかんがえたさいきょうCPU」のブログ記事

みんなの「ぼくのかんがえたさいきょうCPU」ブログ

タイトル 日 時
竹下世界塔のCPUアーキ理解2017 (スライド)
竹下世界塔のCPUアーキ理解2017 (スライド)  気がつけば2006年からCPUアーキテクチャについて色々調べては考えていたのだった。ということで現在までの私自身の理解をスライドにしてみました。こんなパワポ資料を作るのも十年ぶりだろうか。Keynoteだけど。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2017/11/12 20:52
ぼくのかんがえたさいきょうCPU: 2017.06 1バイト命令・バリア・プリフィックス
 命令拡張の余地がなくなった場合に、従来未定義だった命令から始めることで続く命令列に機能を追加できる。これをプリフィックス命令という。プリフィックス命令は次の命令に対する1回だけの指示と考えることもできる。プリフィックス命令は短いほどよいので1バイト命令フォーマットから空いているところを探す。今回はメモリ操作命令の1バイトフォーマットを割り当てることにする。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2017/06/11 16:31
SIMDのマルチレイヤー表現
SIMDのマルチレイヤー表現  ぼくのかんがえたさいきょうCPUは今のところレジスタの幅が32KBで四倍精度浮動小数点をSIMDで扱うと同時に2048個も扱える。が、ここまでのサイズがあると同種のデータだけ扱うのではなく構造体やタグも付加したい。ではどうやって表現しようか? ...続きを見る

ブログ気持玉 / トラックバック / コメント

2017/06/04 23:44
ぼくのかんがえたさいきょうCPU: 2017.06 算術演算命令
ぼくのかんがえたさいきょうCPU: 2017.06 算術演算命令  算術演算命令はデータを数として扱い、四則演算を行う。整数型や浮動小数点型はソースレジスタRaの形式に合わせて変換され、Rdに保存される。演算結果はRaと同じレジスタ幅、レーン構成になる。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2017/06/02 19:25
ぼくのかんがえたさいきょうCPU: 2017.05 分岐条件
ぼくのかんがえたさいきょうCPU: 2017.05 分岐条件  ほとんどのプロセッサは4bitの16パターンで分岐の条件を決めている。2の補数を用いた符号ありの整数演算と符号なしの整数演算の条件は以下のフラグを使う。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2017/05/30 20:35
ぼくのかんがえたさいきょうCPU: 2017.05 SIMD補足
ぼくのかんがえたさいきょうCPU: 2017.05 SIMD補足 ・SIMDロード/ストアについて アドレッシングモード計算のうちRaがベクタなら、Rb(ベクタ/スカラ)や即値(スカラ)を加算し、複数の実効アドレスを生成する。 Raの各レーンが実効アドレスサイズに拡張された後、Rbや即値を加算、それぞれのレーン用の実効アドレスを得る。 →LEA命令の場合、各レーンが実効アドレスのサイズになる。 →ロード/ストアを行わないレーンの指定を考えないといけない。例えばM2 OP3Sの形式を利用して M2 OP3S [Ra+Rb]Rc,ss=01 Raのレーン... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2017/05/26 01:42
ぼくのかんがえたさいきょうCPU: 2017.05 データと型
ぼくのかんがえたさいきょうCPU: 2017.05 データと型  汎用レジスタで扱うデータのサイズや型について定義する。メモリ操作命令ではレジスタのサイズだけを扱い中身(型)は無視する。汎用レジスタ間の算術演算でのみ型を扱う。演算の結果、データのサイズが変わってしまっては扱いにこまるので、演算結果は2つある引数のうち最初の引数に合わせることにする。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2017/05/24 02:01
ぼくのかんがえたさいきょうCPU: 2017.05 論理演算命令
ぼくのかんがえたさいきょうCPU: 2017.05 論理演算命令  論理演算命令は汎用レジスタどうしでAND,ORなどの論理演算を行う。論理演算はbitごとに行われるものでデータ幅が変わっても論理演算の結果は変化しない。データ幅が変わることで結果が変わるシフト、ローテートやPOPCなどは別扱いにする。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2017/05/23 02:55
ぼくのかんがえたさいきょうCPU: 2017.05 分岐命令
ぼくのかんがえたさいきょうCPU: 2017.05 分岐命令  分岐命令は条件により命令の流れを変える。相対アドレスによる分岐、1命令スキップ、Conditional Moveを行う。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2017/05/21 04:38
ぼくのかんがえたさいきょうCPU: 2017.05 メモリ操作命令
ぼくのかんがえたさいきょうCPU: 2017.05 メモリ操作命令  メモリ操作命令は汎用レジスタとメモリ間の転送を行う。メモリ操作命令はデータのサイズしか意識しない。 ...続きを見る

ブログ気持玉 0 / トラックバック 2 / コメント 0

2017/05/19 00:56
ぼくのかんがえたさいきょうCPU: 2017.05 概要と基本フォーマット
ぼくのかんがえたさいきょうCPU: 2017.05 概要と基本フォーマット  ぼくのかんがえたさいきょうCPUも考え続けていつのまにか十年くらい経ってしまった。いろいろな命令セットアーキテクチャを調べるほどにいじくりまわしたくなるのだが、そろそろまとめてみようかとおもう。 ...続きを見る

ブログ気持玉 0 / トラックバック 4 / コメント 0

2017/05/17 02:24
ぼくのかんがえたさいきょうCPU:連鎖性言語の特徴を取り入れてみる
ぼくのかんがえたさいきょうCPU:連鎖性言語の特徴を取り入れてみる 連鎖性言語 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2017/05/13 01:19
ぼくのかんがえたさいきょうCPU スタック
 レジスタに属性をつけることによって何のデータを扱うかを明確にすると、命令セットも単純化できるし便利そうに思える。 ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける その2  が、割り込みなどが発生するとレジスタの値だけではなく属性と一緒に退避しなければならない。どうするか。 ...続きを見る

ナイス ブログ気持玉 1 / トラックバック 0 / コメント 1

2016/09/13 03:07
ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける その2
ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける その2  ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつけるの再考。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2016/04/10 03:14
ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける
ぼくのかんがえたさいきょうCPU レジスタに型(属性)をつける  SIMD系の命令を考えていたらレーンのサイズごとに命令のバリエーションが増えていくことに気付く。例えば加算のバリエーションはスカラデータ、1バイト単位×レーン数、2バイト単位×レーン数、4バイト単位×レーン数……など。さらに浮動小数点のSIMD形式もあって命令が複雑になる。で、レジスタに属性を付けて、属性によって演算の動作を変えることを考えてみた。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 1

2016/02/04 05:30
スタックをどうするか?
 作業中のレジスタを一時的に保存しておいて後で取り出せるようにしておくためにスタックを使うことがある。例えばサブルーチンコールをした時に戻る番地はどこかに保存しておかなければならない。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2016/01/29 04:26
ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット続き
 8bit可変長フォーマットを少し直した。 ...続きを見る

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

2015/12/27 02:03
ぼくのかんがえたさいきょうCPU ALU 算術演算 論理演算
ぼくのかんがえたさいきょうCPU ALU 算術演算 論理演算 追記:符号なし飽和演算 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2015/11/07 00:59
ぼくのかんがえたさいきょうCPU 分岐先の抽象化
 従来のマイクロプロセッサはどれも任意の番地にジャンプして命令の流れを変えることができる。これはBASIC言語の行番号と同じである。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2015/10/31 02:18
ぼくのかんがえたさいきょうCPU Nullificationの拡張
 春イベントが終わり放心状態で遠征と演習のみ惰性でやっています。艦これの話です。さて。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2015/06/25 00:23
ぼくのかんがえたさいきょうCPU 8bit可変長命令フォーマット
 初期よりわが鎮守府を支えてくれた愛宕を沈めてしまいました。享年Lv97…… ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2015/03/24 01:46
ぼくのかんがえたさいきょうCPU レジスタの属性、タグアーキ
 大和改できました。現在Lv62です。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2015/03/19 02:33
ぼくのかんがえたさいきょうCPU レジスタセット
ぼくのかんがえたさいきょうCPU レジスタセット  ようやく大和をお迎えできました。現在Lv55。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2015/03/17 01:44
ぼくのかんがえたさいきょうCPU 2出力演算を使った命令について
 RISC系の3オペランド命令は引数を2つのレジスタでもらい、結果を1つのレジスタに書き込む。条件フラグを持つアーキテクチャはここでフラグが変化する。条件フラグを持たないアーキテクチャはオーバーフローなどが発生した場合はトラップで受けることもできる。条件フラグの存在はそれを特別扱いにしないといけないので依存関係の解消が面倒になる。条件フラグがない場合は必要な処理を行うまでに余計な演算が必要になる。  ということで、2入力2出力の演算命令を考えてみた。出力のうち1つめは主な演算結果、2つめは演算... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2014/08/29 00:28
ぼくのかんがえたさいきょうCPU タグアーキ
 データに属性を与えるタグだが、メモリのアクセス単位が32,64,128bit...となると扱うデータ幅を削るか別の場所にタグ領域を用意するしかない。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2014/05/31 00:37
ぼくのかんがえたさいきょうCPU ロード命令の補助情報
 ポストフィックスの修飾により最大で即値、Srcレジスタ3個、Destレジスタ2個を指定できるようにした。即値とSrcレジスタはアドレッシングモードで使うとして、Destレジスタ2個はどうしようか。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2014/01/24 00:53
エントリポイントを考慮した命令フォーマット、プリフィックス廃止
 命令長は16bit単位の可変長で、分岐命令から参照されることを明示するエントリポイントを追加するにはどうしたらよいか。プリフィックスによる修飾だと定数のbit幅などが減り、プリフィックスなしの命令にもエントリポイントの1bitが必要となり効率が悪い。そこで本命令+ポストフィックス命令の形式に変更し、本命令のみエントリポイントを示すビットを追加することにした。  変わってくるのは命令の後ろに修飾が付くので次の命令がデコードされるまで前命令が発行できないということ。だがパイプライン実行前提で充分... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2013/12/31 06:27
ぼくのかんがえたさいきょうCPU レジスタローテート
 ありあまるレジスタをどう活用するか。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2013/12/28 02:26
ぼくのかんがえたさいきょうCPU 明示的なデータハザード解消
 ありあまる汎用レジスタをどう活用するか。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2013/10/16 02:35
SIMDを考慮したシフタ
 ただのおもいつきです。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2013/09/10 01:31
ぼくのかんがえたさいきょうCPU 16bit単位半可変長命令形式
 機械語をデコードしやすい形でどう押し込めたらよいか。 RISCの固定長命令では大きな定数が扱いにくい。定数は書き込まれることはないので、ソースレジスタの指定とひとくくりにしてしまう。以前から考えていたプリフィックス命令に入れてしまおう。ここでは命令長を短くするのではなくデコードを楽にする方法を優先して考えている。  前回考えたのは16bit命令長のサブセットだった。  ぼくのかんがえたさいきょうCPU 16bit命令長実装  が、16bit長単位でフルセットの機能を押し込められそうな感... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2013/05/22 01:42
ぼくのかんがえたさいきょうCPU プロセッサにヒントを与えるHINT命令
 分岐予測機構持つプロセッサでは実際にジャンプした分岐先の番地を履歴として記録する。そして当該番地に分岐する命令が来た時に飛ぶ/飛ばないの予測をして性能を上げる。 という風に、互換性のため命令セットを変えずに性能を上げる方法としてはコードを動的に実行しつつ、そこから得られた情報をプロセッサ内部で利用する。 しかし、静的なヒントがあればそれを利用した方がメカニズムは複雑にならなくていい。しかも命令セットに影響を与えない方法はないだろうか。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/12/08 01:13
ぼくのかんがえたさいきょうCPU 16bit命令長実装
 全体を考えているとなかなかまとまらず幾星霜、頭の中だけではなかなかひとつの形にまとまらない。思い切ってMIPS16eのような命令をを考えてみた。上位には特権モードの4バイト命令長本格派CPUが存在する、との仮定の元、組み込み系などでコード量を減らしたいための16ビット固定長縮小命令セットでユーザモードを実行できるだろうか?これをベースにエミュレータを作ったり肉付けしたりと検討していく。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2012/09/21 07:35
ぼくのかんがえたさいきょうCPU ポストフィックス命令
 既存の命令を拡張するのにプリフィックス命令を考えたが、後ろにくっつけるポストフィックス命令を検討してみた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/08/22 01:05
ぼくのかんがえたさいきょうCPU エンディアンの設定
 デフォルトでbyte単位のリトルエンディアンと決めたが、任意に変更できるようにしたい。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/07/27 15:22
プログラムカウンタはなくせるか?
 条件コードレジスタ(CCR)は重要だがMIPS/Alphaでは汎用レジスタで、スタックポインタも汎用レジスタで扱うことができる。では命令の実行位置を示すプログラムカウンタ(PC)はどうか? ...続きを見る

ブログ気持玉 0 / トラックバック 2 / コメント 3

2012/06/20 06:11
ぼくのかんがえたさいきょうCPU 演算命令について
 演算命令は入力が1つ以上、出力が1つの内部に状態を持たない関数と考えれば、記憶を保持する機構なく組み合わせ回路のみで構成できる。極端な話、筆算の様に計算して求める除算でも、8bit÷8bit=8bitを求めるためには16bitのアドレス、8bitのデータが扱えるROMがあればよい。  実際はメモリで組み合わせ回路を構成するよりも演算の規則性に従って論理回路で組み合わせ回路を構成したほうが効率がよく高速なのでロジックで組まれる。これも例外はあってSRT除算では一部テーブルを使う。また、命令デコ... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/06/01 04:07
ぼくのかんがえたさいきょうCPU 条件判断+Nullfication
 PA-RISCの後続1命令を無効にするNullfication、いいんじゃないかと思えてきた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/05/20 04:07
ぼくのかんがえたさいきょうCPU 演算命令
 演算命令をシンプルにするとAlphaに行き着くが、もうちょっとリッチにしてもいいのではという欲がでる。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/04/23 03:45
ぼくのかんがえたさいきょうCPU MIMD命令
ぼくのかんがえたさいきょうCPU MIMD命令 SIMD命令は色々あるがMIMD命令ですよ。演算限定ですが。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/02/25 03:46
ぼくのかんがえたさいきょうCPU 強化論理演算命令
ぼくのかんがえたさいきょうCPU 強化論理演算命令  マイクロプロセッサの論理演算命令、AND,OR,XORなどは2つのレジスタのそれぞれのビットに対して同じ演算を行うが、これは無駄ではないか? ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2012/02/22 04:54
リセット直後の開始番地が不明なCPU
 プロセッサがリセットされると内部が初期化され特定の番地から命令を取り出して実行するのだが、これがはっきりしないものがある。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2012/02/11 02:58
ぼくのかんがえたさいきょうCPU エンディアンとタグ付きデータの扱い
 高級言語サポートではタグによる属性を付けたデータを標準で扱えれば便利そうだ。ちょっと整理。 ...続きを見る

ブログ気持玉 0 / トラックバック 4 / コメント 0

2012/02/09 22:36
ぼくのかんがえたさいきょうCPU ローカルレジスタ
 GR0〜GR63を定義しているが64個もの汎用レジスタ、どう使うか? ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2012/02/05 18:32
ぼくのかんがえたさいきょうCPU BOOLEAN命令
 前回まとめた条件判断の方式で最強なのはIA-64のプレディケイトレジスタ。条件判断の結果を0/1で保存する。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/01/28 23:58
DMAについて
 Direct Memory Access(DMA)とはI/Oやメモリとの転送をプロセッサを介せずに行う方法。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/01/19 19:35
ぼくのかんがえたさいきょうCPU 分岐エントリポイントの指定
 なぜプロセッサの分岐命令はどこにでも飛んでいけるのか。 ...続きを見る

ブログ気持玉 0 / トラックバック 3 / コメント 0

2012/01/05 05:34
ぼくのかんがえたさいきょうCPU なぜポストフィックスではなくプレフィックス命令か
 ARMv8(AArch64)は4バイト長さ単位の可変長命令で、即値代入の場合に後続する8バイトが即値になる様だ。ではなぜ「ぼくのかんがえたさいきょうCPU」はこのように後続で指定せずプレフィックス命令にするのか? ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2012/01/03 06:51
ぼくのかんがえたさいきょうCPU アドレッシングモード
 これまで考えていたもやもやを整理してみた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2012/01/02 19:19
仮想マシン・エミュレーションのための機構など
 新しい命令セットのプロセッサを提案しても特徴がなければ使ってもらえない。例えば組み込み系に特化してFPGAのIPマクロによる周辺I/Oを活用するOpenRISC、等。 32bit〜256bitのアーキテクチャを検討する手前、ハイエンド向けとして何らかの機能はないかと考えていた。最近思い至ったのはVM(仮想マシン)だ。独自のアーキテクチャは相手にされなくても、仮想マシンを実行できればその上で実行できる環境をそのまま持ってくることができる。 仮想マシンはJava仮想マシン(JVM)、LLV... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2011/10/26 19:55
ぼくのかんがえたさいきょうCPU ステータスレジスタ検討
 ある程度まとまってきたのでステータスレジスタ(SR)について再整理。 一般的なCPUはコンディションコードなどある命令の動作結果が反映されるものがあるが、OutofOrder動作の場合は依存関係が複雑になってしまう。 SRへのアクセスは、直前の命令まで完了してから実行される。また、SRのアクセスが完了後、後続の命令が実行される。 一部のレジスタはリードアクセス時にもパイプラインは乱れない(SR.randや比較命令によるSR.testの暗黙的なアクセスなど) ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2011/09/28 17:44
ぼくのかんがえたさいきょうCPU ロードストア専用レジスタの検討
 以前、「アドレスレジスタの復権」で思いついたのをずっと考えていた。いっそ、ロードストアユニット専用のレジスタにしてしまい、汎用レジスタ間とは転送命令で持っていくようにしたらどうだろうか。 レジスタ名:MR0〜MR63 メモリレジスタとする。ただしMR0は値が常に0のゼロレジスタ 使用例: LD [MR1+MR2],MR3 ; MR3にロードしたデータが入る。[]内はアドレッシングモード LD [MR1+MR2],MR0 ; 読んだ値は捨てられる。プリフェッチ相当の動作。 アドレッシン... ...続きを見る

ブログ気持玉 0 / トラックバック 2 / コメント 0

2011/05/31 01:52
ぼくのかんがえたさいきょうCPU NOP命令の拡張
 NOP命令の存在意義はなにか?昔はタイミング調整とパッチを当てるための場所を確保するためだったのだが、OutOfOrder実行などによりタイミング調整の役割はほとんどなくなった。 ...続きを見る

面白い ブログ気持玉 3 / トラックバック 0 / コメント 0

2011/05/29 03:27
ぼくのかんがえたさいきょうCPU アドレスレジスタの復権
 古くは8ビット80系のHLレジスタ、Z80のIX,IY、6809のX,Yレジスタ、そして68000のA0〜A7。これらはRISCアーキでは汎用レジスタに吸収されてしまった。 今、アドレスレジスタを復活させたらどうなるのか?メリットとデメリットを比較したい。 GR0〜GR63に加えてロードストア命令のアドレッシングのみAR0〜AR63が使えることとする。 例: LD [AR1+AR2],GR1 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2011/05/07 00:08
ぼくのかんがえたさいきょうCPU 演算命令で悩む
 通常の算術演算、論理演算、シフトは当然として、レジスタ幅が32bit〜256bitであることを有効に活かしたい。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2011/04/11 22:45
ぼくのかんがえたさいきょうCPU レジスタの上位ビットをどうするか
 スケーラビリティを考えると、32bitレジスタ幅のアーキテクチャで作ったプログラムがそのまま64bitや128bitレジスタ幅のマシンで動くことが望ましい。もちろん、32bitモード/64bitモード/128bitモード/256bitモードの切り替えは必要となる。  32bitレジスタ幅で作ったライブラリが良く出来ていて、値が取りうる範囲も32bit以内だとすると、これを上位のアーキテクチャで実行する場合、レジスタに使わない上位ビットがあまってしまうことになる。64bitアーキテクチャで32... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 3

2011/02/18 01:56
ぼくのかんがえたさいきょうCPU コンディションコードとライフフラグの統合
「ぼくのかんがえたさいきょうCPU」は各レジスタごとにコンディションコードフラグと、そのレジスタの値が有効かどうかを示すライフフラグを持つ。ライフフラグは当初単独で用意しようと思っていたが、従来の状態フラグに統合できそうなこと、飽和演算の結果も表したいのでまとめてみた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2011/01/20 22:32
ぼくのかんがえたさいきょうCPU ロード/ストア命令再考
ロード/ストア命令フォーマットについて整理してみました。デコードに余裕があります。 ...続きを見る

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

2011/01/16 02:37
ぼくのかんがえたさいきょうCPU 命令の分類
定義だけでつまらんです。 ...続きを見る

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

2011/01/12 01:28
ぼくのかんがえたさいきょうCPU 即値設定命令
・即値設定命令 あるプロプライエタリな32bitRISC(過去の16bitCISC互換モードを持つ)は、1命令が4バイトの固定長だったが、 即値ロードのみ2命令分8バイトで、後半4バイト(32bit)の値をそのままレジスタに格納していた。ずるい。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2010/12/30 02:26
ゼロレジスタは必須か?
 PowerPCを調べていたら、あれ、ゼロレジスタがない。r0〜r31まで汎用レジスタとして使える。ただし例外があって、特定の命令ではr0を指定した時にその値をゼロとみなすことがある。なぜそうするかなあ。また、IA-64はゼロレジスタを持っているが読み出しのみ可で書き込むとトラップが発生する。書き込み時無視にしておけば特定番地(I/O)のダミーリードに便利なのになぜそうするかなあ。  初期のRISCであるMIPS,SPARCではゼロレジスタがあり、RISCの特徴のひとつでもあった。レジスタ同士... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 5

2010/10/14 06:46
256bitの加算器を実現するには・除算時の割り込みについて
 256bitアーキテクチャのマシンで256bit分の算術演算は本当に必要だろうか?64bit分で充分じゃなかろうか。しかし32bit,64bit,128bit,256bitアーキとレジスタ長さで定義したら実装しないわけにはいかない。今64bitの加算器が1個しかないと仮定すると、256bit分の演算には最大4サイクルかかる。ただしたいていの演算は64bit以下とすると、実装によっては実行に1〜4サイクルかかる。これはパイプラインの実行ステージが延びることになる。まあ乗算命令も1サイクルではでき... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2010/09/30 05:11
ぼくのかんがえたさいきょうCPU これからはサイクル当たりの処理データ数
 退院しました。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/06/18 19:43
ぼくのかんがえたさいきょうCPU エミュレーションのための機能
 もうすぐ入院するので早めに書いておきます。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/05/17 21:17
ぼくのかんがえたさいきょうCPU テスト・レジスタによる分岐命令の改変/LOOP命令
SR.test[31:0]はコンペア命令で比較した結果がtest[31]〜test[2]に格納され、test[1]は"1"で常に真、test[0]は"0"で常に偽である。 分岐命令は指定されたSR.testレジスタのビットを見て、"1"ならば分岐を実行する、としていたのだが、test[1],test[0]も汎用として使いたくなった。これはSIMD命令で比較を行ったときに256bitレジスタで8bitデータを扱った場合ちょうど32個となるからである。この改変で、「常に分岐」と「常... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2010/05/09 20:17
ASI空間の検討
 地味な検討です。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/05/06 20:18
ぼくのかんがえたさいきょうCPU ロードストア命令見直し
 以前から気になっていたがロードストア命令のフォーマットに余裕がない。これはエンディアン順序を入れ換える指示を命令フォーマットに4bitも入れてしまったためだ。そうそうエンディアンを変換するようなことはないのでどこかに追いだしたい。プリフィックス命令でもよいがロードストア命令だけ特別扱いになってしまう。そこでASI空間に割当てることにした。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/04/24 11:29
実装については書かない
 計算機のインプリメンテーション(実装)については書かない。詳しく書く実力がない、というのもあるが、実装は実現方法の一種で、企業に所属している限り特許として執筆しなければならない可能性があるからだ。業務としての特許活動ですな。私は現在CPUの開発には関わっていないので関係ないのだが、またどこから難癖がつけられるかもしれん。  それに実装については詳しい本やサイトがいくつもある。→コンピュータアーキテクチャの話(Hisa Ando マイコミジャーナル)  命令セットを考える場合は実装と不可分な... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/04/24 02:18
ぼくのかんがえたさいきょうCPU このCPUアーキの使用はフリーです
大切なお知らせ。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/03/03 18:39
ぼくのかんがえたさいきょうCPU パイプラインの制御
 パイプラインが詰まっていると性能測定などに影響が出ることがあるので、ある命令以降パイプを空にする命令を用意する。つまり、その命令の直後の命令はこれまでの命令がすべて完了するまでISSUEされない。ISSUEステージで待機することになる。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/03/03 18:34
ぼくのかんがえたさいきょうCPU 整数積和演算のフォーマット
 友人から聞いたのだが、組み込み系のマイコンでは浮動小数点で演算のプロトタイピングをやってから整数演算に書き直して高速化することがあるという。ということで整数の積和演算が命令フォーマットに入るかどうか考えてみた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/02/24 23:36
ぼくのかんがえたさいきょうCPU ALU命令のフォーマット その2
 地味です。読み飛ばしていいです。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2010/02/20 00:15
ぼくのかんがえたさいきょうCPU 何をもって最強とするか/実装
 今まではなんとなく想像に任せた部分もあったが、どのような実装が暗黙のうちに想定されているかを書き出してみる。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/02/17 14:34
ぼくのかんがえたさいきょうCPU テスト・レジスタによる分岐命令
以前のフォーマット: 10fcondmhh----RsssssRcccccRddddd ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/02/10 05:59
ぼくのかんがえたさいきょうCPU テスト・レジスタ(プレディケート・レジスタ)
 IA-64にはプレディケート・ビットが64個あり、まとめてプレディケート・レジスタとして参照できる。プレディケート・ビットは条件判断の結果が真か偽かを格納するビットで、ほとんどの命令は指定されたプレディケート・ビットの内容で実行するかどうか決まる。pr0は常に"1"で、通常の命令は暗黙のうちにpr0が指定されていることになっており、実行される。実行に条件判断が付く点はARMに似ているが、IA-64は64個も条件判断済みのフラグを持っており、かつpr16〜pr63はローテーション可能である。 ... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/01/22 22:38
ぼくのかんがえたさいきょうCPU タグ付き演算命令
 SPARC V8(V9も)にはTAG付き演算命令がある。タグが一致すると計算し、タグが不一致の場合はトラップが発生する。よくLISPなどに使われるなどと解説してあったが実例は見たことがなく、現在は非推奨命令となっている。 SPARCのTAG付き命令の問題点: (1)TAGが2bitしかないこと。4パターンしか扱えない。 (2)演算が加算と減算しかなかったこと。 これではだれも使ってくれなかった。設計部隊がいやいや実装し、テストプログラム開発部隊がテストコードを書いたっきりでおしまいだっ... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 3

2010/01/21 23:06
ぼくのかんがえたさいきょうCPU ありあまるレジスタを活用するキュー操作命令
 最低で64本、最大で256本あるレジスタをどのように活用しようか。双方向リストが扱えたら、と考えた。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2010/01/20 19:39
ぼくのかんがえたさいきょうCPU ありあまるレジスタを活用する配列支援命令
 最低で64本、最大で256本あるレジスタをどのように活用しようか。配列のように間接アクセスできたらいいのではないか、と考えた。 ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2010/01/19 20:06
ぼくのかんがえたさいきょうCPU ALU命令フォーマット検討
□ALU命令フォーマット 地味な検討なのであまり見なくていいです。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/01/13 22:10
ぼくのかんがえたさいきょうCPU 今後の方針2010
- Make my own world strongest CPU - ...続きを見る

ブログ気持玉 / トラックバック / コメント

2010/01/04 16:45
ぼくのかんがえたさいきょうCPU 分岐予測をサポートするENTRY命令の提案
 分岐命令は飛び先が必ずある。分岐予測機構はそのアドレスをBHT(Branch History Table)に記録して予測のヒントにするが、あらかじめBHTを設定しておくことはできないだろうか? ここでENTRY命令というのを考えてみる。この命令の存在する位置自体がBHTへのアドレス指示となり、分岐命令はENTRY命令の場所になるべく分岐するように書く。 ENTRY命令はループするコードの先頭に書く。プレフィックスが付く場合はプレフィックス位置のアドレスがBHTに登録される。 ENTRY命... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/12/08 13:27
ぼくのかんがえたさいきょうCPU ステータスレジスタ
 以前のエントリステータスレジスタとロード・ストア命令で少しだけ触れたが、ステータスレジスタについてもう少し詳細を検討する。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2009/12/02 14:37
ぼくのかんがえたさいきょうCPU シフト命令に追加
 汎用レジスタは最大256本、ビット幅は最大256bitと決めた。これらは8ビットで位置やシフト量を表すことが出来る。 SLL,SRL,SRAは一般的なシフト命令だが、GRs2(または即値)の下8bitだけ見ればGRs1のシフト量を決められる。これらの命令は上位24bitを無視すればよい。 最小のレジスタ幅は32bitと決めた。そうするとまだシフトなどの指定に使えるのが24bit余っているわけだ。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/11/27 22:12
ぼくのかんがえたさいきょうCPU プリフィックス命令を考える
・プリフィックス命令フォーマット bit範囲指定を廃止、代わりにEOLフラグを付けたばっかりだが、プリフィックス命令に続く本命令が浮動小数点命令だった場合の解釈を変えることにする。  これは、どちらかというと浮動小数点はレジスタ本数が重要であり、汎用レジスタの演算や分岐命令では即値のサイズが重要であることから変更した。 ...続きを見る

ブログ気持玉 0 / トラックバック 2 / コメント 0

2009/11/16 18:25
ぼくのかんがえたさいきょうCPU 浮動小数点命令の仕分け
 浮動小数点演算命令に着手する前に分類しておく。 参考:SPARC64viiifx-extensions.pdf(日本語なので) / PowerISA2.06(最新,IEEE754-2008実装) 等 IEEE754-1985,IEEE754-2008に準拠する。(IEEE754-1985は実装例多数) ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/11/14 23:54
ぼくのかんがえたさいきょうCPU プリフィックス命令フォーマットの再検討など
・プリフィックス命令フォーマット bit範囲指定を廃止、代わりにEOLフラグを付ける。 11ppaaabbbcccdddABCxxxxxxxxxxxxx pp=00 ロング即値[27:0] pp=01 レジスタ拡張+ミドル即値[15:0] pp=10 レジスタ拡張+エンドオブライフ(EOL)フラグ+ショート即値[12:0] pp=11 一般命令拡張用リザーブ ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/11/09 22:41
ぼくのかんがえたさいきょうCPU きょうび除算器ははやらないが
 Alpha,IA-64といった最初から64bitのアーキテクチャで設計されたものには整数除算器が入っていない。また、PowerPC(POWER6)も除算命令はあるものの実行は浮動小数点演算器に任せて結果だけ貰っている。  除算器が嫌われる理由を挙げてみよう。 (1)演算完了サイクルが不定 被除数と除数の内容によって計算が完了するサイクル数が決まる。これは1命令1サイクル完了を基本とするRISCの思想と相いれない。乗算もそうだがこれは固定サイクルで3〜4サイクル程度だからまあ許せるのかも。 ... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 1

2009/11/06 04:30
ぼくのかんがえたさいきょうCPU 割り込み、トラップ、例外、インタラプト…
 ある先輩が言っていた、「CPUの設計に割り込みがなきゃいいんだけどね」たしかに割り込みは煩雑だ。パララックス社のプロペラチップみたいに割り込みを受けたらCPUコアを切り換えるずるい(?)やつもある。 そろそろ着手しないと先に進めない部分もあるので、分類を行う。ま、名称などを見ると私が何の影響を受けているかわかるかもね。  ここでの割り込みの呼び方:  割り込み − いわゆる割り込み、トラップ、例外、インタラプトを総合して呼び方。  トラップ − ソフトウェア要因による割り込み。  例... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2009/11/04 21:59
ぼくのかんがえたさいきょうCPU 十進演算命令続き
 なんとなくz/Architecture Principles of Operationの十進演算の所を見ていたらパック/アンパック形式変換にUnicode対応の命令があるじゃないですか。 7.5.100 PACK UNICODE,7.5.143 UNPACK UNICODE たしかに最近のOSは内部でUnicode(UTF-16)を使っているらしいのでこのような命令があるのだろう。前回の続きとして検討してみた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/23 04:11
ぼくのかんがえたさいきょうCPU 十進演算命令
 COBOL向けに十進演算命令群を定義。従来のCISCではメモリ上の値に対して演算していたが、これらはすべて汎用レジスタで計算する。128ビットレジスタ長だと31桁+符号が一回で扱える。 十進四則演算、パック/アンパック操作ではトラップは発生しない。すべてフラグで判断する。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/20 00:21
ぼくのかんがえたさいきょうCPU 命令フォーマット修正、命令追加
 LEA命令はバイト、ワード、単精度、倍精度、128ビット長、256ビット長をサポートするよう修正。 LEA命令フォーマットは二種類になる。この修正はアドレッシングモードのポストインクリメント・プリデクリメント対応のため。  PREFETCH命令は拡張部分に押し出した。  新規にBRHINT命令追加。これは分岐予測機構の分岐履歴テーブルに対するヒントで、フェッチは出ない。実装では無視してもよい。  あと、バイト/ワード指定時のwwのフォーマットを変えた。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/19 16:38
ぼくのかんがえたさいきょうCPU 残り項目
 あとどんな項目が残っているのか整理してみた。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 4

2009/10/12 04:24
ぼくのかんがえたさいきょうCPU 命令フォーマット見直し 分岐命令
 今回も地味です。  分岐命令フォーマット変更 / 分岐命令はRc,Rsの位置を変える。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/10 03:07
ぼくのかんがえたさいきょうCPU 命令フォーマット見直し
 今回は命令フォーマットのデコードを再考するだけなのであんまり面白くないです。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/05 22:45
ぼくのかんがえたさいきょうCPU ロード/ストア命令でバイト/ワードサポート,LL/SC
 Alphaの資料21064を調べていたら、32bit/64bitロード/ストアしか持っていないのでバイト操作命令が充実していた。バイトシフト、バイト挿入、バイトマスク、バイト比較など。 しかし、次の21164の資料にあたったらなんとバイト/ワードのロード/ストア命令が追加されていた。よっぽど評判が悪かったのだろうか。ということで追加できるかどうか検討した。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/10/02 22:25
ぼくのかんがえたさいきょうCPU 条件移動命令の拡張
 従来の条件移動命令では条件に一致したときデスティネーションレジスタに値をコピーするかどうかの動作だった。 今回、条件一致の場合はコピー、条件不一致の時は即値をコピーする動作を追加する。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/09/25 23:40
ぼくのかんがえたさいきょうCPU キャリー付き加減算の考慮不足
・加減算命令 ADDC GRs1,GRs2,GRd キャリー付き加算 SUBC GRs1,GRs2,GRd ボロー付き減算 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/09/22 22:46
ぼくのかんがえたさいきょうCPU ブートROM
 Z80や68000の頃は起動時に読み込むEPROMはメモリ・バスに直接接続されていた。2716や2732といった8ビットパラレル読み出しができるROMで、ピン互換で書き込みが出来るSRAM(6116等)もあった。しかしメモリバスの高速化についてこれず、現在のパソコンではI/Oのバスに下がっている。今回はブートROMについて検討する。  ハイエンドのチップではメモリコントローラも内蔵になり、DRAMを直結できるようになった。となると低速なデバイスはI/Oコントローラを介してその下に無ければなら... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2009/09/18 23:54
ぼくのかんがえたさいきょうCPU このCPUは何をターゲットとするのか?/ステータスレジスタの操作
 特徴としては、RISCベースのレジスタ幅のスケーラビリティ(32〜256ビット)、レジスタ数(64〜512本)だが、これらをどう生かすか。 高級言語とのセマンティックギャップをどのように埋めるかによって方向性が違ってくる。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/09/17 21:18
ぼくのかんがえたさいきょうCPU 演算(ALU)命令
 全汎用レジスタには、ユーザモードからはアクセスできないフラグC,V,N,Zが付いていて、演算結果により変化する。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/09/12 22:35
ぼくのかんがえたさいきょうCPU 2009年夏のまとめ
 CPUはおおざっぱに言って次のように進化してきた。 LSI化されたCISC ↓ パイプライン、単純化 RISC 32ビットプロセッサ ↓ 集積度向上、IEEE754策定 浮動小数点コプロセッサ内蔵 ↓ 命令セットの追加、コンパイラの補助 条件移動命令の追加 ↓ 集積度向上、Alphaの登場 64ビット化、浮動小数点レジスタを使ったマルチメディア命令の追加(VIS,MMX,MAX) ↓ パイプライン段数増加、分岐予測、アウトオブオーダ実行 高速化 ↓ AltiVec,SS... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/09/07 21:57
ぼくのかんがえたさいきょうCPU ステータスレジスタとロード・ストア命令
ステータス・レジスタ  ステータスレジスタは64本まで定義できる。ビット幅は32ビット。汎用レジスタとの相互転送命令を用意しなければならない。 リードオンリー、特権モード時のみアクセス可などの制限がそれぞれあるので、具体的な番号の割り付けはデコードしやすいよう後で行う。 特権モードのみアクセス可のレジスタは、ビット幅は32ビット以上でも可。ユーザーモードではpswで指定された情報に従う。特権モードではプロセッサの実装によりどのビット幅でも実行可能だが、現実的には各ビット幅ごとの管理プログラ... ...続きを見る

ブログ気持玉 0 / トラックバック 1 / コメント 0

2009/09/04 17:23
ぼくのかんがえたさいきょうCPU ALU命令(特に浮動小数点命令)
 前回コメントの指摘を受けて、レジスタのライフフラグは入れることにした。命令フォーマットに余裕があるのでできそうだ。  また、浮動小数点の4オペランド命令(積和演算)を定義するのに苦労したので、苦し紛れにFR2=-1.0レジスタとした。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2009/08/31 19:28
ぼくのかんがえたさいきょうCPU プリフィックス命令
 廃止案件について ・浮動小数点の四倍精度演算命令はやめる。SPARCで定義されているが、使われていない。他のプロセッサも倍精度までしか持っていない。 ・レジスタのライフフラグは廃止。よく考えたら必要ない。アセンブラで直接書くときのデバックには役立つかもしれないが。コンパイラがうまくやればよい。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 4

2009/08/28 22:28
ぼくのかんがえたさいきょうCPU 条件分岐/転送命令
 分岐命令に関する調査の結果、分岐条件は4ビットあれば充分であることがわかった。  条件フラグはC(Carry),Z(Zero),N(Negative),V(Overflow)を汎用レジスタのすべてに持たせ、演算命令を実行するごとにデスティネーションレジスタの条件フラグが更新される。 (浮動小数点レジスタの条件フラグについてはまだ考えていない)これらのフラグはユーザーモードからは見えない。特権モードからはアクセスできる。 比較命令として使う例:  SUB GR1,GR2,GR0 .. G... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/08/26 20:11
ぼくのかんがえたさいきょうCPU Jump&Link
 前回の各種プロセッサJump&Link命令の調査では、大きく分けて専用レジスタ(または特定の汎用レジスタ)に復帰アドレスを格納するものと汎用レジスタに格納するもの、スタックを使うものに分けられることがわかった。 戻り番地の保存に専用レジスタを使うものは、汎用レジスタへの転送が相互にできる。そしてさらにサブルーチンコールをすることができる。利点は、実行時にPC→専用レジスタへ転送するだけなので実装が楽なことである。 戻り番地の保存に汎用レジスタを使うものは、コンパイラが適切に割り振ってくれれ... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/08/21 21:02
ぼくのかんがえたさいきょうCPU アドレッシング・モード
 アドレスを指定する方法は色々あるが、ここでは代表的なRISCの単純なアドレッシング・モードを参考にまとめる。 複雑な間接アドレッシング(レジスタで参照したメモリの内容を使ってアドレスを指定、等)はやらない。 アドレスの参照は[]でくくって表現する。PCは現在のプログラムカウンタ、GRは汎用レジスタ、immは符号付き即値である。immの長さは決めていない。プリフィックス命令の追加で拡張することも考える。 プロセッサの下方展開(32ビット化など)をした場合は、MMUを持たない組み込み系への実... ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 4

2009/07/30 23:28
ぼくのかんがえたさいきょうCPU レジスタセット、その他
 できるだけ命令数は減らしたいし、命令間の依存関係もなくしたい。これらを実現しやすい、拡張が容易なレジスタセットやその他命令について改めて考える。以前と重複している内容はご勘弁を。 これらを実現するため、命令には多くの意味付けをする。不足分はプリフィックス命令でおぎなう。命令は長くなるが、そこは実装にがんばってもらおう。Pentium4で使われたトレースキャッシュとか。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/07/23 04:07
ぼくのかんがえたさいきょうCPU 全般的な見直し
 命令セットアーキテクチャを中心に色々と考えたままを書いてきたが、このままでは軸がぶれてしまうので方針を改めて設定する。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/07/17 22:58
ぼくのかんがえたさいきょうCPU スケーラビリティ
 そろそろCPUアーキのスケーラビリティについて考えないと。命令を使う立場のコンパイラ屋さんにも、命令を実装するハード屋さんにも優しい作りにしたい。OS屋さんやファーム屋さんには苦労してもらおう。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/07/14 02:56
ぼくのかんがえたさいきょうCPU ロードストア命令
 従来の32ビット以上のプロセッサはバイト、ワード長も扱っていた。さらに符号拡張付き、符号拡張なしもあったので命令数が増えていた。思い切ってレジスタ幅の単位でしかロードストアはやらないことにする。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 6

2009/07/11 01:20
ぼくのかんがえたさいきょうCPU コンディションコード
 ALUによる演算結果をどう判断するか。SPARCはCCR(コンディションコードレジスタ)を持ち、コンディションコードを格納する命令としない命令を持っている(例:ADDccとADD)。MIPSは2つのレジスタを比較した結果をレジスタに格納し、そのレジスタの値で判断する。 SPARCV9では浮動小数点のコンディションコードレジスタを4本持っている。浮動小数点演算のレイテンシは長いので、競合しないよう複数用意したと思われる。 ...続きを見る

ブログ気持玉 0 / トラックバック 0 / コメント 2

2009/07/09 06:27
ぼくのかんがえたさいきょうCPU ビットフィールド命令
 整数レジスタが128bit長あるのにシフト命令の基本的なものだけではもの足りない。そこでレジスタの任意の範囲を操作対象とするビットフィールド命令を追加する。 ビット操作位置[bh:bl]で範囲を指定する。ALU命令の結果が右詰めでこの範囲内に入り、範囲外の値は変化しない。これはMC68030を参考にした。 例:  ADD Rs1,Rs2,Rd[15:8] (Rs1+Rs2の結果8bitをRdの末尾から2バイト目に挿入する)  ORN Rs1,R0,Rd[63:32] (Rdの63bit... ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/07/08 12:34
ぼくのかんがえたさいきょうCPU
 小さい頃、スイッチやつまみのいっぱいついたラジカセやオーディオの絵を落書きしたことはないだろうか。自分好みの機能を追加したオーディオ装置を空想したことはないだろうか。 そんな感じでこれまでの各種プロセッサのいいとこどりをして、現在私が考えうる命令セットアーキテクチャを検討してみた。検討することにより各種プロセッサの特徴も理解できるという目的もある。 ...続きを見る

ブログ気持玉 / トラックバック / コメント

2009/07/07 12:17

トップへ | みんなの「ぼくのかんがえたさいきょうCPU」ブログ




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