命令セットアーキテクチャを考える1 (想定条件)
命令セットを考える前提というか想定条件を明らかにしましょう。
想定そのものが最近のトレンドとは違っているというか、ありえないだろそれ、に近いようなものなので、あくまでも「ぼくのかんがえたさいきょうのめいれいせっと」です。
[前提条件、想定]
・PC/WS/サーバ用途の汎用CPU
・組み込み用/スパコンシステム用/GPGPUなどは想定しない
・アセンブラでアプリケーションを作成するプログラマ向け
・ニーモニックコードが読みやすいこと
→VLIW形式や遅延スロットは採用しない
・16進ダンプを見て理解できるくらいが理想
・固定長命令フォーマット
・ビッグエンディアンを採用
・マルチプロセッサ構成や仮想化支援機能などはよく分からない‥
あくまでもアプリケーションプログラマから見える範囲
[基本的な構想]
・64bitアドレッシング
・整数データ形式は、符号付き二進数と2の補数、または符号無し二進数
・実数データ形式は、IEEE754の二進浮動小数点形式(単精度、二倍精度、四倍精度)
・32bit固定長RISC風命令セット
・load/store以外はレジスタ操作のみ
・64bit汎用レジスタ×64本、64bit(倍精度)浮動小数点レジスタ×64本
・R0はゼロレジスタ、FR0はゼロレジスタ
・連続する複数本のレジスタを使用する命令で、ゼロレジスタを指定された場合、ゼロレジスタが仮想的に拡張される(R1…,FR1…が使用されるわけではない)
・ダンプデータの見やすさという理由からビッグエンディアンを採用する。リトルエンディアンを採用するシステムとのデータ交換を容易にするために、バイトスワップ命令を備える。
| 固定リンク
この記事へのコメントは終了しました。


コメント