1つのLSIに複数のプロセサ・コアを搭載すること。多くのマイクロプロセサ・メーカーは,マイクロプロセサに求められる継続的な性能向上を実現するためにマルチコア化に踏み切り始めた。シングルコアのままでは消費電力の増大のため,性能の向上に限界が見えてきたためである。

 シングルコアによる性能向上の限界が見えてきたのは,微細化が進行に合わせてリーク電流が急速に顕在化してきて,マイクロプロセサの動作周波数を高められなくなってきたためである。1サイクル当たりに実行する命令数を増やせば性能を向上させることは可能だがこうした手法にも限界が見えている。1つの命令ストリームに同時に実行できる命令はそれほど多く含まれていないためである。例えばスーパースカラ型マイクロプロセサでも,多くの場合,同時に実行できる命令は最大4個にとどまっている。組み込み機器向けのマイクロプロセサに至っては,スーパースカラ型そのものがほとんど広がっていない状況だ。

 シングルコアが直面しつつある多くの問題は,マルチコア構造の採用によって軽減する。例えば,微細化の世代ごとにCPUコアの数を増やすことで,マイクロプロセサの性能向上ペースを維持できる可能性がある(図1)。マイクロプロセサの性能向上ペースの鈍化をCPUコアの数を増やすことで補えるからである。仮に複数のタスクをそれぞれ別々のCPUコアで独立に実行できるとすれば,CPUコア1個当たりに求められる演算性能はおおむね個数分の1で済む。例えばスウェーデンRoyal Institute of Technology KTHが行った携帯電話機向けのベンチマーク・テストでは,200MHz動作のCPUコアを4個使った場合の処理時間は800MHz動作のシングルコアと同程度という結果が得られた。

 CPUコアの動作周波数を大幅に抑えられることは,電力効率の点からも有利になる。シングルコアと同じ演算性能をより低い電源電圧で実現できるからだ。実際,KTHの実験結果でも,4個のCPUコアの電力効率はシングルコアより3倍程度高い。マルチコア構成を採ると全体の消費電力はCPUコアの個数に比例して増えるが,シングルコア上で同じ演算性能を実現しようとすると動作周波数と電源電圧を高める必要がある。消費電力は電源電圧の2乗と動作周波数に比例して増加するため,シングルコアの消費電力の方がマルチコアに比べて高くなるというわけだ。さらにマルチコア構成には,高速に動作するトランジスタを使う必要がなくなるため,CMOSトランジスタのゲート絶縁膜を厚くし,LSIの待ち受け時のゲート・リーク電流を大幅に低減できるという利点もある。

性能向上のペースをマルチコアで維持
図1 性能向上のペースをマルチコアで維持
リーク電流が顕在化し始めたことで,動作周波数の引き上げによるマイクロプロセサの性能向上ペースは,設計ルールが1世代進むごとに1.2倍程度に鈍化させざるを得なくなった。世代が進むごとにCPUコアの数を増やしていけば,従来に近いペースで性能向上を維持できる。ソフトウエアの種類によっては手作業によるプログラムの並列化などを行うことで,2コアのとき約2倍,3コアのとき約3倍など,コアの数に比例して高性能化できるからだ。日経エレクトロニクス2004年8月30日号より抜粋)

オンチップの特性を生かす
図2 オンチップの特性を生かす
マルチコア型マイクロプロセサの開発においては,サーバ機で使われてきたマルチプロセシング技術を基に,複数のCPUコアを1つのチップに集積する利点を生かす。高速なオンチップ・バスを採用したり,搭載を想定する機器の特徴に合うような記憶階層や記憶容量を選んだりすることなどがポイントとなる。日経エレクトロニクス2004年8月30日号より抜粋)