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

アクセスカウンタ

zoom RSS ぼくのかんがえたさいきょうCPU 何をもって最強とするか/実装

<<   作成日時 : 2010/02/17 14:34   >>

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

 今まではなんとなく想像に任せた部分もあったが、どのような実装が暗黙のうちに想定されているかを書き出してみる。

ローエンド向け:単一の短いパイプライン、In-Order実行、演算器などリソース小、消費電力小、面積小、低性能、実装容易
ハイエンド向け:スーパースカラ、深いパイプライン、Out-of-Order実行、消費電力大、面積大、高性能、実装困難

・パイプライン
 ローエンドでは浅いパイプライン、動作周波数も低め。高い動作周波数を狙うにはパイプラインを細分化する。
・スーパースカラ
 ローエンドでは1サイクルごとに単一命令発行、ハイエンドでは四〜六命令程度を同時発行可能にする。
・演算器
 ハイエンド向けでは複数の整数ALU、ロード/ストアユニットを持つ。ローエンドでは浮動小数点演算器を省略する可能性がある。
・In-Order,Out-of-Order実行
 実装がより簡単なのはIn-Order実行の方式。最初に実装するとしたらIn-Order。
・レジスタリネーミング
 レジスタ数が多いのでどの程度の物理レジスタを用意したほうがいいかはモデルを作ってみないとわからない。まずは論理レジスタ数=物理レジスタ数で実装。
・分岐予測機構(BHT)
 パイプラインが深くなった時には分岐予測ミスのペナルティを減らすために有効。ローエンドでパイプラインが浅い場合は実装しないことがある。
・TLB
 連想メモリを採用してフルアソシアティブ構成にする。
・キャッシュ
 一次キャッシュは命令/データ分離。二次キャッシュ以降は命令/データ混在。大量の浮動小数点演算を行う時はキャッシュをバイパスする機能を付けるべき。
・RAS機能
 ハイエンドでは必須。
・パフォーマンス測定機能
 改良のために必須。
・割り込み
 ハードウェアスタック方式。割り込み前のステータスはスタックに積む。ユーザモードは高速に実行させることに注力。割り込み応答は可能な限り早く、すみやかに終了。

・具体的な実装に向けて
 SystemCによるモデリング、Verilogによる実装。ターゲットとしては32bitモデル浮動小数点なしでFPGA向けがいちばん可能性がある。
 将来は64bitモデルもFPGAで実装可能になるだろう。モデルとしての32/64/128/256bitアーキは、レジスタサイズ以外の違いはないため、パラメータをいじるだけで変更は容易なはず。
 マルチプロセッサのモデルは難しい。シミュレータが現実的な速度で動くかどうか。サブセットのCPU(バス応答するだけ)で増やすか。

 Intelはすでにメニイコアの実物を作ってデータ採取を行おうとしている。48プロセッサですよ。このようなことは大メーカーでないとできないので、何をもって最強CPUとするかについては、シングルコアで最高の効率を出せるプロセッサということで考えることにする。そのためにはRISCベースでシンプルな実装を可能にし、SIMD命令を採用するのが効果的と思える。あくまでも研究用、学習用ではなく実用を目標としたい。そうすることにより今まで面倒で避けてきた割り込みの処理やOSとの連携、ハイパーバイザの実現方法など色々なことが見えてくると思っている。

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

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

トラックバック(0件)

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

トラックバック用URL help


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

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文




ぼくのかんがえたさいきょうCPU 何をもって最強とするか/実装 竹下世界塔の計算機よもやま話/BIGLOBEウェブリブログ
文字サイズ:       閉じる