マルチコア
マルチコアの最新ニュースをまとめて検索!
マルチコア(Multiple core、Multi-core)は、1つのプロセッサ・パッケージ内に複数のプロセッサ・コアを封入した技術であり、マルチ・プロセッシングの一形態である。
外見的には1つのプロセッサでありながら内部的には複数のプロセッサとして認識されるため、主に並列処理を行わせる環境下においては、プロセッサ・チップ全体での処理能力を上げ性能向上を果たすために行われる。このプロセッサ・パッケージ内のプロセッサ・コアが2つであればデュアルコア、4つであればクアッドコア、8つではオクタコアと呼ばれる。高性能な専用プロセッサの中には数十個ものコアを持つものがあり、メニーコア(Many core)と呼ばれる。 従来の1つのコアを持つプロセッサはマルチコアに対してシングルコアと呼ばれる。
目次 |
[編集] 概要
マルチコアはシングルコアに対し、プロセスルールが同じであれば、実装したプロセッサ・コア数に比例してダイが大きくなる。面積が増えると、級数的に製造不良が増えるなど製造の面での難度が上る。
並列コンピューティングに対応したプログラミングが必要なため、ソフトウェアの開発は難しくなるが、OSやミドルウェアなどが並列処理の支援を行うことでソフトウェア開発は容易なものとなる場合がある。マルチプロセッサに対応しているプロセッサのマルチコア化の開発は、比較的簡単である。
パーソナルコンピュータでは高消費電力と廃熱処理や騒音対策などによる制約やクロック周波数対効果の停滞などにより、この技術へのシフトが進んでいる。
マルチコア・プロセッサは消費電力低減と発熱抑制を目的に、各コアごとに動作電圧やクロック・スピードの可変制御を行ったり、休止状態を含む動作状態の制御を行なっている製品もある。コアごとに複数の電圧で給電するシステムが別途必要となるため、単一電圧よりは難易度は高い。
マルチコア・プロセッサに似た技術に、同時マルチスレッディング(Simultaneous multi-threading、SMT)がある。これは1つのプロセッサを外部から2つ以上に見せるという点では同じだが、実際に存在しているコアは1つ、すなわちシングルコアであるという点でマルチコア技術とは根本的に異なる。
[編集] 用語
説明を効果的にするために、まず使用する用語を示す。
- ダイ(Die)
- シリコン・ウェハー上に半導体回路を作り、四角に切り出したもの。ベア・チップとも呼ばれる。半導体産業ではプロセス済みのウェハーやダイの生産までが上流工程であり、テストとパッケージ封入が下流工程になる。大手半導体企業で自社生産としている場合でも下流工程はアウトソーシングしていることがある。
- コア(Core)
- マルチコア・プロセッサの「コア」について説明すれば、プロセッサ・ダイ上に作成されるプロセッサ回路の中核部分で「キャッシュ・メモリー」を除く半導体回路部分。ただし、共有ではないコア専用のキャッシュ・メモリはコアに含める事がある。多くの場合、プロセッサ・ダイは「コア」、「キャッシュ・メモリー」、ボンディング・パッド等の接続部から構成される。
- サブストレート
- ダイを載せて外部接続ピンなどの外力から守るデジタル半導体の主要構成部材の1つ。MCM(Multi Chip Module)やMCP(Multi Chip Package)の場合には1つのサブストレートに複数のダイが載る。
- チップ(Chip)
- いくぶん不明瞭な意味で、半導体部品を意味する。ダイやペレットを指す場合もある。また、表面実装技術(Surface mount technology、SMT)の受動部品を指す場合もある。
[編集] 背景
ポラックの法則[1]を引用するまでもなくそれまで長い間予見されていたPCやサーバー用のシングルCPUによる演算能力向上の限界が1990年代末頃からは現実のものとして認識されはじめ[2]、2000年代の中頃にはシングルコアでの処理性能の向上手法よりマルチコアによる向上を図った製品が登場するようになった。
以下にマルチコアが登場した背景について示す。
[編集] 複数CPUの実装
大型コンピュータやスーパーコンピュータでは、1つの半導体パッケージに複数の汎用プロセッサ・コアを封入することは早くから行なわれていた。
サーバ用途でのパーソナルコンピュータ類似製品では1990年代中頃から、マザーボード上に複数のプロセッサを実装し並列処理させる対称型マルチプロセッシング(Symmetric multi-processing、SMP)と呼ばれるソリューションが現れていた。こういったマザーボードにマルチコアCPUを装着して、2x2=4 や 2x4=8 といった多数のマルチコア環境が現れている。
[編集] 発熱問題
1990年中頃からラップトップPCでの「ひざが熱い」という発熱への不満やPCの放熱ファンの騒音が問題として認識され始めた。将来の汎用プロセッサは、製造プロセスの微細化によるリーク電流の増加や、処理能力向上を目的とした動作クロックの高速化によって、消費電力がますます増大していくことが予想された。当時の汎用プロセッサ処理速度の向上手法のままでは、汎用プロセッサのダイ温度が非現実的なまでに高温となり、冷却機構の物理的な限界から性能向上が頭打ちになることもまた予想された。2000年前後から一般ユーザー向けのPCでも水冷式の製品が販売されはじめた。
[編集] クロックの限界
21世紀からは1GHzを越えるCPUクロックが一般的となり、2009年現在では3.5GHz程まで伸びているが、1GHzの1サイクルの時間内では、光速度でも30cmしか伝播できない物理法則の壁があるため、今後さらにクロックが高速化されて5GHzや10GHzになれば従来のLCによる伝播遅延に加えて、光速度の7割程度の電気信号そのものの伝播の遅さも無視できなくなってくる。
[編集] 高速処理の専用回路の限界
現在の汎用プロセッサ内部の処理機構がスーパースカラ機構などにより既に高度に高速処理への最適化がなされており、たとえば命令の先読みによって投機実行と呼ばれる、本当に実行が必要かまだ決まらない内から前もって次の処理を実行してしまうという動作を常に行なったり、汎用プロセッサの外部に主メモリがあるにもかかわらず汎用プロセッサ上にキャッシュ・メモリーが2段階にも用意されている、さらにプリフェッチ・キューまでが用意されているといった具合である。他にもスーパーパイプライン、VLIW、アウト・オブ・オーダー実行等がある。これらの高速処理に欠かせない汎用プロセッサの回路は、それぞれがほんの少しだけ処理の高速化に貢献している回路であり、これ以上同様の付加回路を汎用プロセッサに追加してもそれほどの処理の高速化には貢献しないと予測される。
[編集] 処理性能の向上策
マルチコア・プロセッサによってプロセッサ・コア数を増やせば、ソフトウェアさえ上手く対応できれば、処理性能の向上が得られることから、これら発熱とクロックの限界への解決策になる。実際に今日のPCは動画再生や音楽再生、データのエンコードのように、マルチスレッドで性能向上を期待できる用途に使われることが増えている。さらに、バックグラウンドで音楽を再生したりウイルスのチェックを行いながら、メールやWeb閲覧、文書作成、ゲームを楽しむことなどが行なわれており、複数のアプリケーションや多数のスレッドが実行される環境になっているため、マルチスレッドに対応するアプリケーションソフトウェアを利用していなくても、マルチコアの利点を享受することができる。
[編集] マルチコア・プロセッサの歴史
1999年、米IBM Corp.は商用サーバ向けプロセッサのPOWER4の発表でCPUのマルチコア化をリードした。2004年5月には米インテル社が従来のPentium 4の高速版でシングルコアCPUの開発コード「Tejas」の開発中止を決定したことが伝えられた。同じ頃、米AMD社も同社の計画から次世代のK9・K10などシリーズ以降の高速版CPUの開発を全て中止した(現行のK8シリーズをマルチコア化の強化という新たな方向性で製品化したものを現在ではK10としている)
2005年になって、米AMD社は当初から消費電力を抑えマルチコア化を見越したK8アーキテクチャの設計を行い、デュアルコア製品の提供を開始した。製品名はDual-Core OpteronとAthlon 64 X2(→Athlon X2)である。インテルは、マルチコアCPUの市場投入の出遅れをカバーするために、単純に2つのCPUのダイ(Die)を1つのパッケージに封入したマルチコア・マルチダイ形式をとり、マルチコア・チップを早く出荷するというアプローチを取った(製品名ではPentium Dなど)。またサンマイクロシステムズはサーバ向けプロセッサUltraSPARC T1で8コアを実現している。
[編集] マルチコア・プロセッサの技術
マルチ・プロセッシングを参照。
[編集] ホモジニアスとヘテロジニアス
同種のコアを複数実装する「ホモジニアスマルチコア」と、異種のコアを実装する「ヘテロジニアスマルチコア」が存在する。
IBM・ソニー・コンピュータエンタテインメント・東芝の3社で共同開発されているCellプロセッサは、ソニー・コンピュータエンタテインメントのプレイステーション3に組み込んだ製品では、Cellの場合は1個の汎用的なプロセッサコアと、8個のシンプルなプロセッサコアが組み合わせたヘテロジニアスマルチコアというアプローチをとっている。
XBOX 360のプロセッサ・コアは対称型マルチコアと呼ばれる3コアのプロセッサで、構造上はホモジニアスに属するものである。
米AMD社はさらなる高処理能力化への手法としてヘテロジニアスマルチコアプロセッサを計画し、Fusionプロジェクトと命名した。その手始めとしてグラフィックス処理プロセッサ(GPU)の米NVIDIAと並ぶカナダATI社を買収し、GPUを汎用プロセッサと同一ダイに集積したCPU製品を計画している。
また、同じ命令セットを使用するものの、処理能力の高いコアと処理能力が低いもののトランジスタや消費電力の点で低コストのマルチコアも考えられる。同一命令セットという観点ではホモジニアスではあるが、処理能力の点では同一ではなくヘテロジニアスとなる。
[編集] 電力管理
マルチコア化の目的の1つに低消費電力化があり、マルチコアに限らないが多くの汎用プロセッサや専用プロセッサでは使用しないコアのクロックを停止したり[3]、電源供給を停止してリーク電力そのものを無くしたりする機能[4]が備わっている。汎用プロセッサの中には他のコアを停止する代わりに1つのコアだけ供給電圧やクロックを高めてシングルコアでの処理性能を高める技術も導入が予定されている[5]。マルチコアでは、機能ブロックごとでしか行えなかったシングルコア製品よりさらに進んだ電力と処理性能との最適化機能が取り込まれる。
[編集] メモリー・ボトルネックの解消
現代のプロセッサはノイマン型であるため、ノイマンズ・ボトルネックによる処理速度の制約がある。2009年現在の主記憶に使われるDRAMの速度はプロセッサに比べて極めて遅く、これを代替するメモリ技術は長い間、現れていない。
シングルコアでは、プロセッサ内部に小容量のキャッシュメモリを何階層も重ねて持つなど、遅い主記憶でもプロセッサの処理性能を大きく損なうことは避けてきたが、複数のプロセッサ・コアを単一の主記憶へ接続することは、メモリーアクセスによるボトルネックの問題が顕在化する危険性をはらんでいる。
- 主記憶アクセスの高速化
- 代表的なプロセッサ・メーカー2社は、外部にあったDRAMコントローラーをマルチコア・プロセッサに取り込み、これらのアクセス信号線を高速化するなど主記憶メモリの帯域を広げることで対応する予定である。
- キャッシュシステムの高度化
- 主記憶装置であるDRAMとプロセッサ側との速度差はマルチコアの採用によって一層拡大するため、シングルコア以上にキャッシュシステムによるメモリ帯域の確保は重要となる。
- 幸い、プリフェッチへの努力をある程度あきらめることで、そういった回路へ割いていたトランジスタが削減できてそれぞれのプロセッサ・コアが小さく作れるため、プロセスルールの微細化による恩恵も続くことと合わせて、複数のプロセッサ・コアを1つのダイに載せてもなお、充分な容量のローカルキャッシュを作り込む余裕が生まれる。
- 各コアごとにローカルでキャッシュを持つことはアクセス・スピードでは有利になるが、互いのローカル・キャッシュの内容を同一に保つスヌープ機構が複雑になり、各ローカル・キャッシュを共有し合う機構ではさらに複雑になる[6]。このため、複数のコアの配下で3レベルにもなるキャッシュ階層同士が最適の調停機構を実現するにはこれまでのプリフェッチへの努力とは違った種類の複雑で高速動作が求められる回路がダイの上で大きな面積を占めるようになる。この新たなキャッシュコントローラー部はかなり電力を消費するが、少しでも主記憶への無駄なアクセスが減らせるのであれば消費電力は総合的には削減できるとされる。
[編集] 冗長構成
メモリー半導体ではあらかじめ冗長領域を設けて不良を少なくする工夫が行われているが、マルチコアの登場によって演算部であるコアも同様の冗長的な編成が可能となっている。[7]。
[編集] プロセッサ例
[編集] 汎用プロセッサ
- Intel社のメニーコア
- 米Intel社は10個以上のコアを集積したプロセッサをメニーコアと呼んでいる[8]。
- SunMicrosystems社のRock
- 富士通のSPARC64 VII
- IBM社のPowerXCell 8i
- ICT社のGodson-3
[編集] 専用プロセッサ
- Intel社のLarrabee - GPU 16個
- NVIDIA社のGTX200 - GPU 240個
- Cisco Systems社のQFP - ネットワーク・プロセッサ(パケット処理) 40個
- Shaw Research社のAnton
- トプスシステムズ社のTOPSTREAM - 最初からマルチコア向けに開発された日本製プロセッサ、MPEG4およびWirelessLANのベースバント処理チップの実績あり
- 組み込み系プロセッサ
- もともとコアが小さく、ダイ面積増加によるコスト上昇を抑えられる組み込みシステムではマルチコアは以前から一般的に使われている手法である(iPodに搭載されているPortalPlayer社のチップは、「ARM7」のコアを2つ搭載している)。組み込み向けプロセッサではコアを10個程度搭載するものは珍しくなく、32ビットプロセッサ360個を集積するチップも存在する[9]。
[編集] 注釈
- ^ ポラックの法則ではプロセッサを構成するトランジスタ数を2倍にしても処理能力は
倍(約1.4倍)にとどまるとされている。一方で、消費電力はトランジスタ数に比例する。この法則によれば2倍のコストで1.4倍のリターンしか得られず、プロセッサ当りのトランジスタ数を増やすことは非効率となる。 - ^ スーパーコンピュータの領域ではより早くからスカラー演算能力の限界として認識されていた。
- ^ クロックを停止するのは「クロック・ゲーティング」である。
- ^ 機能ブロックごとに電源供給を停止するのは「パワー・ゲーティング」である。
- ^ 機能ブロックごとにスレッシュホールド電圧値を変えて動作速度を変えるのは「マルチVth」である。
- ^ ローカル・キャッシュを共有し合う機構とは、コアローカルなL2キャッシュとダイ共有のL3キャッシュの関係において、通常はスヌープしてローカルなL2キャッシュ間のコヒーレンシを確保する仕組みだが、自分のコアのL2でmissして他のコアのL2にあれば、L3ではなく他のコアのL2をアクセスする仕組みを指す。コア数が増えるとダイ共有のL3では対応し切れなくなる為と思われる。
- ^ ソニー・コンピュータエンタテインメント社のCellプロセッサでは8個あるコア相当のSPEの内、実際にイネーブルにするSPEは7個とした。こうすることで1個のSPEの動作不良な量産ダイの中でも出荷可能となり、歩留まりが向上する。米インテル社から将来出荷予定のNehalemでもキャッシュメモリーの冗長化だけでなく不良コアをディスエーブルする機能が付くと公表されている。
- ^ インテル、メニーコア化への取り組みなど、研究活動に関する説明会を開催, マイコミジャーナル, 2005年11月09日
- ^ 安藤壽茂、Fall Microprocessor Forum 2006 - 組み込みプロセサ、マイコミジャーナル、2006年10月21日
[編集] 関連項目
最終更新 2009年10月23日 (金) 16:40 (日時は個人設定で未設定ならばUTC)。
【マルチコア】変更履歴

