人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CPUのプロセス微細化と回路の総数、性能向上の関係について

メモリやディスク等であれば、記憶回路を小さくすれば
たくさんの回路を詰め込むことができるので容量が大きくなることが理解できます。
一方で、CPUでプロセス微細化を行ったとしても、
単に回路を詰め込めば処理が速くなるというというものではないと理解しています。
もちろん消費電力の低減やコアクロックの引き上げ等
メリットがあるのは理解していますが、コアクロックもすでに限界まで来ているし、
メモリほどのメリットがあるように感じられません。
そこで質問です。

1)
CPUに使われる回路(トランジスタ)の総数は増えているのでしょうか?
増えた分の回路は何に使われているのでしょうか?
コア数を増やすなどの用途は考えられますが、
だとすると、プロセスの長さが今の100倍の時と比べて
今頃は100コアになってないとおかしいので、計算が合いません。

2)
CPUの速度は基本的にはクロックで決まるはずなので、
微細化でクロックが上がらなくなった今
単純にプロセス微細化や回路の詰め込みだけでは性能向上していないと理解しています。
このプロセス微細化と性能向上の関係について教えてください。

●質問者: quesit
●カテゴリ:コンピュータ 科学・統計資料
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

1)
CPUに使われる回路(トランジスタ)の総数は増えているのでしょうか?
増えた分の回路は何に使われているのでしょうか?

まず、ひとつの命令が複雑になります。
1クロックで処理できることが多くなる。
過去の用語ですが、数値演算プロセッサや RISC チップといったあたりが分かりやすいと思います(古過ぎ?)。
ビット幅が大きくなったのも、これに入りますよね。
少し新しくなると、マイクロアーキテクチャーとかになるんでしたっけ。

それから、パイプライン。
命令を処理するフェッチ、デコード、演算といったステージが同時に動ける。
もちろん、多重で動く分、回路は必要です。

さらに、スーパースケーラー。
複数の命令について、フェッチやデコードなどを並列に処理します。

パイプラインの処理をするには、バッファに使う CPU 内のキャッシュも必要です。
多ければ良いというものではありませんが、並列で処理している処理の同期を取るために使われます。

2)
CPUの速度は基本的にはクロックで決まるはずなので、
微細化でクロックが上がらなくなった今
単純にプロセス微細化や回路の詰め込みだけでは性能向上していないと理解しています。

同じ回路であれば、クロック周波数で速度は決まるでしょうが、回路(使われてる技術、と言った方が良いのかな)も変わってきています。
単純に詰め込んでいるだけではなく、集積度が上がることで複雑な処理を基盤に構築したから速くなってきたと思います。
# と、(1) の方でも、同じようなことを書きました


プロセスルールの微細化は、回路の総数には直接関係があるけれど、性能向上については、ひとつの要因でしかない、というのが答えになるかと思います。


quesitさんのコメント
回答ありがとうございます。 やはりそういう感じになるんでしょうかね…。 質問文にはプロセスの長さが今の100倍の時代と比べて、 100コアと書いてしまってましたが、面積的には10000コアが正解でした。 という前提で、いただいた回答を元に具体的に回路数を計算してみました。 仮に現在4コアが主流だとすれば、 初期のCPUに比べてコアあたり2500倍の面積が使えます。 プロセスが100倍の時代では4ビットが主流だったので、 64ビットの昨今では単純計算であらゆる処理に16倍のチップが必要と仮定して、 それでもCPUコアあたり156倍の面積が使える計算になります。 命令セットはx86の時代にはSSE等の拡張命令はあるものの 大半の命令が原則固定という理解は間違いないですよね。 最近はx64になってそこで増えたりはしてるでしょうし、 64ビット32ビット両方のデコーダなどが内蔵されたりしてそうなので 最悪を見積もってさらに全回路に4倍程度の回路数が必要と仮定します。 それでもコアあたり39倍の面積が利用できる計算になります。 残りをパイプラインとスーパースカラで埋めるとすると、 8段のパイプラインで8倍の回路数、さらにそれぞれスーパースケーラで4倍、 これでやっと回路全体の80%程度を使い切る計算になります。 他にも様々な工夫や最新技術で回路を色々使っているでしょうから それで全て余すことなく使う、という感じなのですかね。 これほど単純ではないと思いますが、わりと贅沢に回路を割り当てても 10000倍の回路を使いきるのは大変なので、まだ腑に落ちない部分はありますが…。 なんか上記の計算で突っ込みどころ等があれば (正確でなくてもよいので、ここの計算は違うだろ、的なことです) 補足をお願いできますでしょうか。

a-kuma3さんのコメント
ぼくはソフトウェアの世界に生きている人なので、パイプラインのような処理を、回路でどうやって組むのだろうというのは、想像もつかないですが、あのソフトウェア的な動作を回路にするのは、チョイ足しくらいではないのだろうなあ、と思います。 集積度合とか、回路で使われている面積とか、面白い着眼点ですね。 どこかに情報が落ちてないか、探してみようかな。

quesitさんのコメント
引き続きコメントありがとうございます。今回の質問自体は、回路の勉強をしていて「あれ、CPUがこの仕組みで動作しているんだったら小型化って高速化と関係ないんじゃ?」っていう疑問から始まりました。どこかに具体的な情報が転がっていたらいいんですが、わりとしっかりと解説されているものにほとんど出会わないんですよね…。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ