竹下世界塔の計算機よもやま話

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU 全般的な見直し

<<   作成日時 : 2009/07/17 22:58   >>

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

 命令セットアーキテクチャを中心に色々と考えたままを書いてきたが、このままでは軸がぶれてしまうので方針を改めて設定する。

全体:
・ユーザモードでのアセンブリ言語の記述は簡潔に(コンパイラ屋さん向け)
・ハードウェアの実装は無理がないように(ハード屋さん向け)
・特権モードの割り込み動作は高速になるように(OS屋さん向け)
・教育用ではなく実用の命令セットにする
・基本128ビットアーキテクチャ、データアクセスは32ビット単位(バウンダリ)まで可能
・3オペランドをとるRISC系のレジスタマシン、ゼロレジスタを持つ
・整数系で扱うデータは符号付きが基本
・メモリ空間(メモリコンシステンシ:RMO)とI/O空間(〃SO)を分ける。それは下位機種ではMEM/IO信号かもしれないし、上位機種ではバスプロトコルの特定ビットかもしれない。

レジスタ:
・整数レジスタ128ビット×64本、浮動小数点レジスタ128ビット×64本、レジスタ本数は拡張可能な仕様にする
・特殊なモードを設定するレジスタは(できるだけ)持たない
・レジスタ長が32ビット、64ビットといった下方へのスケーラビリティを考慮
・レジスタ長が256ビットといった上方へのスケーラビリティも考慮
・レジスタを連結して使用する命令は持たない
※なぜ128ビットなのか - 最近のプロセッサは拡張仕様としてSIMD命令の処理に専用のレジスタを持っている。そのレジスタ長が128ビットであり、SIMD命令を汎用レジスタで同じように扱いたいため。
・特殊なレジスタは持たないし、拡張して用意しない
※実現方法はSPARCアーキのASI指定。アドレス空間の意味付けを拡張できる。特殊なレジスタ、診断系は特定のASI番号を付加したロード/ストア命令で参照する。ASI番号のフォーマットを決める。
※整数系と浮動小数点系レジスタを分ける理由 - 整数系は1サイクルで実行できるものが多く、浮動小数点系演算は複数サイクル必要。実装を簡単にするためにも整数系と浮動小数点系は分けて考える。

命令セット:
・依存関係が発生しにくい命令体系にする。レジスタ依存はしかたがないが、直前に変更したモードにより動作が変わるような仕組みはなるべく避ける。

命令フォーマット:
・32ビット長が基本で、32ビットのプレフィックス命令を指定することができる。これは最小のデータアクセスが32ビット単位なので合わせるため。(16ビットプレフィックスは廃案)

必須命令グループ:
・整数演算(乗除算を除く) ビットフィールド指定
・整数レジスタロード/ストア メモリバリア機能、アドレッシングモード
・プリフェッチ命令
・条件分岐 分岐予測指示
・Jump&Link
・同期命令(Compare&Swap,Read modify Write,Test&Set等)
・トラップ
・即値セットなどフォーマットが特別な命令

追加命令グループ:
・浮動小数点演算(除算と平方根を除く)
・浮動小数点レジスタロード/ストア
・整数乗除算
・浮動小数点除算、平方根
・整数系SIMD命令(グラフィックス系SIMD命令)
・浮動小数点SIMD命令
・メモリ管理(MMU)
・浮動小数点超越関数
・特権モード命令拡張(電源管理など)
・ハイパーバイザ支援機能

 前回作った資料一覧を元に、また勉強して詳細を検討し決めていく。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文




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