ヘテロジニアスマルチコア
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ヘテロジニアス・マルチコア(英:Heterogeneous multi core)とは、異種混合のマルチプロセッサを表す用語。
しかし、ソニーグループ+IBM+東芝が開発した『Cellプロセッサ』や、Intelが今後数世代のうちに実現するとしている『メニイコア(Many-core)CPU』等のCPUの本質を突いた言葉と言える。
目次 |
[編集] ヘテロジニアス・マルチコアの目的
ヘテロジニアス・マルチコアCPUは、現在主流の同じアーキテクチャーのCPUコアを1チップに複数搭載するホモジニアス・マルチコアCPUとは大きく異なり、1つのチップに異なる種類のアーキテクチャーのCPUコアを搭載したCPUをいう。
その目的は、2つの方向性があると考えられている。
- ヘテロジニアス・マルチコアならば、シングルスレッド性能を維持しつつ、マルチスレッド性能を大幅に高めることができる。
- それぞれのCPUコアを最適化することによって、ホモジニアス・マルチコアCPUでは実現できない高効率処理を実現できる。
1の手法はソフトウエア指向型の設計であり、2の手法はハードウエア指向型の設計でもある。なお、この2つを組み合わせたヘテロジニアス・マルチコアという方法も十分に考えられる。
ただし、商用目的のCPU設計においては、知的財産(特許・電子回路登録)の問題が関係してくるため、どちらの手法を選択するにしても十分慎重な配慮が必要であると考えられている。商用目的で開発を行うのであれば、それぞれの知的財産をきっちりと調査し、CPUに関連する回路図や知的財産に関するライセンスを購入する等の対応が必要である。
[編集] ヘテロジニアス・マルチコア出現の背景
[編集] CPU単体性能の限界
ヘテロジニアス・マルチコアが浮上して来た背景には、CPU単体での性能向上が行き詰まってきたという事情がある。
これまでのCPU設計は、シングルコアで性能を引き上げるために、次の2点にフォーカスしてきた。
この2つの目標を達成するために、動作周波数の向上にはパイプラインを細分化する事で対応し、IPCの向上には動的に命令レベルの並列性(Instruction-Level Parallelism:ILP)を高めるout-of-order型実行とそれに付随するさまざまな高速化技術を導入することで対応してきた。
しかし、この2点を追求することによって、現在のシングルコアCPUは複雑化と高コスト化を招いている。現在市場に出回っている最先端のCPUでは、ILP向上のためのスケジューリング制御部分が膨大な面積を占めるようになってきている。そのため、性能向上は非効率となりダイサイズ(半導体本体の面積)を2倍の大きさに増やしても、増やした面積の平方根分(約1.4倍)しか性能が向上しなくなった。つまり、DRAM等では有効であった”プロセス世代毎に2倍になる”という『ムーアの法則』が、CPU性能では有効ではなくなっていたということを意味している。その結果、最新のCPUでは(性能/消費電力)と(性能/ダイサイズ)が悪化した非効率なものとなった。このことをIntelでは『ポラックの法則』と呼んでいる。
[編集] シングルコアからマルチコアへ
先端CPUの性能向上がこのように非効率になった背景には、シングルスレッドのスカラ演算性能を引き上げなければならないという呪縛が開発者にあったからである。x86シリーズアーキテクチャーの命令セットのCPUでは多数のソフトウエア資産を抱えている。そして、市場に流通しているものを初めとして、既存のアプリケーションの性能を引き上げるためには、シングルスレッドで、かつ、スカラ演算の性能を向上させる必要に迫られていた。
ここ数年はCPUの周波数向上が鈍化してきている。さらにはCPU設計の複雑化に伴うトランジスタの集積密度増大による消費電力が増大し続けてきた。そして、より効率のいい性能向上が求められるようになってきている。そこで、CPU業界はマルチスレッド性能の向上へと向かい始めた。「CPUチップのマルチコア化によって「スレッドレベル並列性(TLP:Thread-Level Parallelism)」を向上させれば、これまでより効率よくCPU性能を上げることができるようになるのではないだろうか?」と考えたのである。
しかし、ここにも問題があった。IntelやAMDはシングルスレッド性能も維持するために、従来のシングルコアCPUのコアを再利用してマルチコアを実現した。そのために、消費電力やダイエリア当たりの性能は依然としてそれほど向上しなかった。現状の半導体製造プロセスである90nmでは、2way以上のマルチコア化も難しいのである。
この問題の解決策は単純な発想で、CPUコアをシンプルにすれば回避できるだろうと、複雑な制御機構を省けば、ずっと小さなCPUコアでそこそこの性能を維持することが可能である。つまり、「ポラックの法則」を逆に考えるなら、CPUコアのダイエリアを1/4にしても性能は1/2にしか落ちないことになる。シンプルなCPUコアなら多数搭載できるから、マルチスレッド性能はずっと高くなるだろう。簡単に「ダイエリア消費量ならびに電力効率のいいマルチコアCPUを作ることができるのではないか?」ということだったのである。
[編集] マルチコアからヘテロジニアス・マルチコアへ
しかし、この手法ですらトレードオフがある。
そこで出てきたアイディアが、ヘテロジニアス型のマルチコアである。
例としては、
- シングルスレッド性能を追求した大型CPUコアと、シンプルな構造にして効率を追求した小型CPUコアを組み合わせれば、シングルスレッド性能を維持しつつ、高並列のマルチスレッド処理が実現可能。
- CPUコアを、コントロール系CPUコアとデータ系CPUコアに切り分ける。コントロール系のCPUコアはOSを走らせることと制御のみを担当し、データ処理系のCPUコアはストリーム・データなどのリアルタイムデータ処理を担当する。
それぞれのアプローチに違いはあるが、異なるアーキテクチャを組み合わせることで、これまでの限界を乗り越えようとしている。
[編集] そして未来へ
既存のCPUアーキテクチャーの限界を超えようとする試みは続けられている。それぞれの用途目的に特化したCPUであるとか、特化したCPUを組み合わせて新しいコアを作り出そうとする試みは続けられるであろう。 それだけでなく、『非同期設計CPU』、『リコンフィギャブルCPU』、さらには『光電子工学』や『光量子技術』を生かしたヘテロジニアス型のマルチコアCPUも将来実現するかも知れない。組み合わせにより既存の限界を超えるという手法は、システム工学における重要な手法でもある。
カテゴリ: CPU | スーパーコンピュータ