ノート:マルチコア

message: 1.4倍はべき乗倍ではなく、平方根倍ではないでしょうか？ 平方根倍なんて用語は聞いたことはないですが。Melan 2006年7月29日 (土) 12:59 (UTC)
thread_title:  べき乗倍？ 

message: 2005年現在、CPUの消費電力（消費電力は全て熱となる）は製造プロセスの....
これは本当でしょうか。ほとんどが熱になることは容易に想像できますが、CPUに流れる電流から少なからず発せられる電磁波もエネルギーを持っているので、消費電力のすべてが熱、はまずいでしょう。
thread_title: すべて熱？

message: 新たに「ノイマンズ・ボトルネック」という節が加えられていましたが、マルチコア化によってノイマンズ・ボトルネックの解消が図られたかのような記述には誤りがあるように思われます。
サーバー用途のXeonのようなカテゴリのCPUでは実装密度を上げるために以前からMCMによるマルチコア化の可能性が検討されていましたが、当時の技術でマルチコア化を進めてもRAMBUSのような高速メモリインターフェースを使用してもノイマンズ・ボトルネックによってそれほど処理性能が伸びないために、サーバー機では複数のCPUパッケージをMB上に実装する形態が長く続いたのだと分析出来ます。
では近年どうしてマルチコア化が進められたかといえば、物理的なプロセスルールの微細化という進歩が当分はこれまで同様に見込まれるのに対して、リーク電流などの発熱による限界で、クロック競争のような従来型のCPU発展の方向が選べなくなった反面、利用可能なトランジスタ数に余裕が生まれるので、マルチコアと同時にキャッシュ容量の拡大を図る（＋今後はDRAMもMCM?）ことで、ノイマンズ・ボトルネックの顕在化を避けられると見込んでいるのでしょう。（見込んでなくても商業的には他に選択肢もなさそうだし……）そのためにIntelもAMDもMCUグルーをCPUに取り込んだし、IntelはFSBを止めてチャネルを使うそうだし……。普通はマルチコア化によってノイマンズ・ボトルネックは悪化するのです。
当該部を加筆、編集しました。--Tosaka 2009年4月24日 (金) 10:25 (UTC)
replies: text: 加筆部分への質問がいくつかあります。

text: ; 電力管理 : この項に書かれているものは、全てマルチコアに依存したものという訳ではないのではないでしょうか。特にクロックゲーティングは現在でもマルチ／シングルに拠らず通常の回路構成で使用されますし、マルチVthもCPU単位というよりは内部モジュール単位で選択するものでは。

text: ; プリフェッチへの努力 : Out-of-Order実行や分岐予測をプリフェッチへの努力とされていますが、双方ともCPUの実行パイプラインをストールさせないための機構ですよね。メモリレイテンシが100cycの単位であるのに対し、これらは数cyc単位での改善であって、プリフェッチとしてはあまり効果はないと思うのですが。

text: ; キャッシュシステム : 「互いのローカル・キャッシュの内容を同一に保つ機構」と「各ローカルキャッシュを共有し合う機構」と分けて書かれていますが、これらはどう異なるのでしょうか。両方ともスヌーピングの話ではなく？　共有キャッシュは一つのキャッシュメモリを共有する方式だから、複数の各ローカルキャッシュを共有し合うということとは違いますし。

text: また削除されたノイマンズボトルネックの文ですが、マルチコアがメモリアクセスに対し有効かという疑問には答えを持っていませんが、これは単に複数のホストがリソース競合を起こす確率が上がるからというのが原因であるなら、ノイマンズボトルネックすなわちCPUから速度差のあるメモリへのアクセスによる問題とは別の問題であるという気もしますが。ノイマンズボトルネックという現象単体で考えればもしくは競合が起きていない微小な時間で考えれば、マルチコア化が周波数削減に寄与する点はボトルネックの改善と捕らえていい気もします。

text: さらに瑣末な事項かもしれませんが、ノートのMCMに対してですが、どの時代を指しているのかがよくわかりませんが、MCMによるマルチCPUは高性能サーバ用などで出ていますよ。またHPCの世界では一般的じゃないかと。

text: 以上、ご回答いただければと思います。--ちぇす 2009年4月25日 (土) 12:55 (UTC)
replies: text: :ご質問、ありがとうございます。

text: :1.電力管理：ご指摘の通りマルチコアだけの技術ではなく、マルチコアとなることで制御する対象が増える、又はより制御が高度化されるということです。「多くの汎用プロセサや専用プロセサでは…」となっていてマルチコアだけではないと判ると思っていましたが、明確でないとの指摘のようですので手を入れます。

text: :2.プリフェッチへの努力：ご指摘の通りですね。この部分は私の間違いです。ほとんど削除すべきですね。

text: :3.キャッシュシステム：「互いのローカル・キャッシュの内容を同一に保つ機構」と「各ローカルキャッシュを共有し合う機構」と分けて書いたのは、Larabeeを意識して書いたもので、他のマルチコアでも同様の構成を採ると個人的には予想するのですが、コアローカルなL2キャッシュとダイ共有のL3キャッシュの関係において、通常はスヌープしてローカルなL2キャッシュ間のコヒーレンシを確保するだけですが（LarabeeはL2が重ならないのでスヌープは不用）、自分のコアのL2でmissして他のコアのL2にあれば、L3ではなく他のコアのL2をアクセスするということです。実際は分散Tagで管理して自分のL2と他のコアのL2で区別がないのですが、たしかに10個以上もコアがあるとL3をマルチポート化して有効に機能させるのにも限界があるのでしょう。Larabee以外でもこのような仕組みが実装されるまでは、あまり、詳細に書くことがはばかられたのであのように書きましたが、たしかに不明確な記事になっています。「注」にしてもう少し説明を書き加えるつもりですが、私があまり書き込むと部分的にはLarabee解説になりそうで自制します。（Larabee単独記事にはそれほど食指が動かないので……）

text: :4.ノイマンズ・ボトルネック：「ノイマンズボトルネックという現象単体で考えればもしくは競合が起きていない微小な時間で考えれば、マルチコア化が周波数削減に寄与する点はボトルネックの改善と捕らえていい気もします。」とのことですが「競合が起きていない」という仮定に問題を感じます。マルチコア化によるノイマンズ・ボトルネックの危険性の上昇という論拠は、現状でさえもDRAM等の半導体メモリーとCPUとのバンド幅とレイテンシーで問題を抱えキャッシュで補っているのに、1つのパッケージに複数のコアを納めてこれまで通り1つの半導体メモリーに接続すると競合のリスクが増大するという点にあります。ご存知のように近年叫ばれているノイマンズ・ボトルネックは、遅いメモリーが高速演算するCPUについて行けずに演算がストールすることを意味しています。1つのパッケージのままCPU側の演算能力を上昇させるマルチコア技術が少しでもこのボトルネックを改善する可能性はないと考えます。私は、本論であるマルチコア化がメモリー・ボトルネックを悪化させえると云う点を記述するのが記事としては重要であり、小さなファクターである幸運な「微小な時間」というある瞬間だけの改善に言及する必要はないと考えています。ただし、ノイマンズ・ボトルネックとは別の話として、単体のコアでは消費電力や動作周波数の低減が可能となったという説明は有用でしょう。

text: :5.MCM：ええっと、CPUとDRAMのMCMはコストパフォーマンスから云ってHPCとかでは当分やらないのではないでしょうか？やってるのはSRAMまででしょ？（半導体パッケージレベルではなく、弁当箱大やピザボックス大の"CPUモジュール"にDRAMも実装されているのを誰かがMCMと呼びはじめたのなら困りますが。）　多分、最初にDRAMのMCM化の半導体製品は、量産効果の出るPCや、なにか将来の携帯電子機器で低価格で高性能なもの向けに搭載されるのでしょうね。

text: :これで、回答になったでしょうか？--Tosaka 2009年4月26日 (日) 10:06 (UTC)
thread_title:  ノイマンズ・ボトルネック