新しいアーキテクチャ Out-of-the-box ComputingのMill

 Hack a day経由で知った。The Mill Architecture  Out-of-the Box Computing  まだ全部理解していないが取り急ぎご紹介。DSPは速いが汎用性に欠ける、OutOfOrderのマイクロプロセッサは速いが大げさ、そこでこのMillアーキテクチャ。 Some 80% o…
トラックバック:1
コメント:0

続きを読むread more

割り込みはパイプラインのどのステージで起こるか

 パイプライン実行するプロセッサで割り込みはどのタイミングで発生するのか。 ここではヘネシー&パターソンの本にあるパイプライン(5段)に合わせてどのステージでどんな種類の割り込みが発生しうるか整理した。 □IF 命令フェッチ ・ITLBミス→補充後、当命令再実行 ・ITLBの回復不可能なエラー(エントリの多重ヒットなど)…
トラックバック:1
コメント:0

続きを読むread more

ロード・ストアの順序が入れ替わるメモリコンシステンシ(メモリオーダリング)

 以前、SPARCのメモリオーダリングで調査途中だったメモリコンシステンシ(メモリオーダリング)について。  通常、ロード命令やストア命令は命令の発行順序に行われているようにみえる。しかし、ロードするデータがキャッシュに載っていない場合は完了するまで時間がかかり、その間次のロード・ストアが待つことになる。これを後続のロード・ストア…
トラックバック:1
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU 16bit単位半可変長命令形式

 機械語をデコードしやすい形でどう押し込めたらよいか。 RISCの固定長命令では大きな定数が扱いにくい。定数は書き込まれることはないので、ソースレジスタの指定とひとくくりにしてしまう。以前から考えていたプリフィックス命令に入れてしまおう。ここでは命令長を短くするのではなくデコードを楽にする方法を優先して考えている。  前回考えたのは…
トラックバック:1
コメント:0

続きを読むread more

サブルーチン呼び出し:各アーキJump&Linkの分類

 サブルーチンを呼び出すときには戻り番地をどこかに保存しておかなければならない。多くは分岐命令の次の命令の位置を格納し、サブルーチンの終わりで格納した番地を取り出してそこにジャンプする。ここでは戻り番地をメモリ上のスタックに格納するものではなくレジスタに保存するものについて調べた。  無条件で分岐する先を指定する方法は、即値を符号…
トラックバック:0
コメント:0

続きを読むread more

最近のFPGAに関する認識

 論理の書き換えが可能なFPGA(またはPLD)、いつ頃から使っているのか、何に使っているのかによって認識がことなるのではないだろうかと思って図を描いてみた。私は複数のTTLの置き換え、ごく少量のASICとしてリリースすべきものの置き換えの頃に使った。あるシステムを構成するとき、時代によってどのように変わるか見てみる。なお年代はおおよそ…
トラックバック:0
コメント:0

続きを読むread more

マイクロプロセッサのデータシート集 chipdb.org

 CPUチップの収集家のためのサイトのようだけど、色々なPDF資料を集めてある。 chipdb.org データシート類がたくさんある。命令セットまで入っていないものも多いので注意。 マイクロプロセッサが中心でMCS-4(4004)などもある。 http://datasheets.chipdb.org/  ここで見つけた…
トラックバック:0
コメント:0

続きを読むread more

制御転送命令(CTI,Control Transfer Instruction)

 メモリ上の命令列は命令1、命令2、命令3、……の様に並んだ順に実行される。これを制御しているのはプログラムカウンタ(PC、またはIP Instruction Pointer)で、プロセッサがある命令を取り込んだら、PCにある命令の長さ分加算して次の命令を指し示す。  制御転送命令は条件によって、あるいは無条件にPCの値を変えることに…
トラックバック:0
コメント:0

続きを読むread more

思いつき M系列による命令並び

 出オチに近いが。  命令列は順に並んで順に取り込まれる。これを指し示すPC(Program Counter)またはIP(Instruction Pointer)はインクリメントされるカウンタであり、分岐命令によってこの値が書き換えられる。  これをLFSR(線形帰還シフトレジスタ)によって置き換えたらどうか。M系列だと16bitで…
トラックバック:0
コメント:0

続きを読むread more

メモリアクセスとロード・ストア

メモリアクセスとロード・ストア  ロード・ストア命令は、数が限られている高速なレジスタと低速だが大容量のメモリとの間でのデータをやりとりする。命令列を順次フェッチするのはロード命令の連続とも考えられる。  アキュームレーターアーキテクチャの頃。保存したい・されたいデータはアキュームレータA上にあり、そのデータはインデックスレジス…
トラックバック:0
コメント:0

続きを読むread more

CADRマシン:ディレイラインで構成されたクロック回路

 CADRマシンの回路図を見ているが、クロックはどこだろうか。水晶発信器らしきものは見当たらない。ドキュメントには単一のクロックで動作している、とある。で、よく見てみたらNANDゲート2個によるラッチ+ディレイラインで構成されていた。 ディレイラインというのは入力された信号を一定の時間後そのまま出力する素子で、非同期のDRAMのタイミ…
トラックバック:0
コメント:0

続きを読むread more

積和演算命令の命令フォーマットについて

 4オペランド命令を3オペランドに押し込めた時にどうなるか考えた。 コンピュータアーキテクチャの話 100 浮動小数点積和演算器(マイナビ) RWTのHaswell Microarchitectureの解説記事と雑感(Intel Fanboy Blog)  積和演算は ±A×B±C → D となるので4オペランドが必要…
トラックバック:0
コメント:0

続きを読むread more

「電気・電子学生のためのコンピュータ工学」

 図書館で見つけてあれ?と思ったので借りてきた。 「電気・電子学生のためのコンピュータ工学」 電気・電子学生のためのコンピュータ工学後藤 宗弘 丸善 2004-07売り上げランキング : 1099005Amazonで詳しく見る by G-Tools  これ学生時代の計算機工学のテキストだったのよね。1982年に第一版。こ…
トラックバック:0
コメント:0

続きを読むread more

ぼくのかんがえたさいきょうCPU プロセッサにヒントを与えるHINT命令

 分岐予測機構持つプロセッサでは実際にジャンプした分岐先の番地を履歴として記録する。そして当該番地に分岐する命令が来た時に飛ぶ/飛ばないの予測をして性能を上げる。 という風に、互換性のため命令セットを変えずに性能を上げる方法としてはコードを動的に実行しつつ、そこから得られた情報をプロセッサ内部で利用する。 しかし、静的なヒントがあれ…
トラックバック:0
コメント:0

続きを読むread more

愛のデュアル80186ネックレス

 前回のクリスマス工作企画 80186ストラップから約三年。もう一個の80186が見つかったのでネックレスを作ってみた。  なんでトルソーがあるのかはさておき、Intel製とAMD製の80186の拡大写真。  セカンドソースと言って、ある会社が販売しているLSIのライセンスを受けて同じ物を他社が製造・…
トラックバック:0
コメント:0

続きを読むread more