岐阜県の長良川国際会議場で開催中の国際会議「10th International Forum on Embedded MPSoC and Multicore(MPSoC '10)」(会期は7月2日まで)で,日立製作所とルネサス エレクトロニクスはそれぞれ,複数の「SH-4A」プロセサ・コアを集積したSoCを題材にした低消費電力化に関して講演した。どちらもハードウェアおよびソフトウェアでの試みを紹介している。

2段階でマルチコアへ並列コンパイル

図1●評価に使ったSoCを説明する内山邦男氏 Tech\-On!が撮影。スクリーンは日立のデータ。SH\-4とFE,MX\-2と3種類のプロセサ・コアを搭載。各コアともローカル・メモリ(LM)を持つ。
図1●評価に使ったSoCを説明する内山邦男氏
Tech-On!が撮影。スクリーンは日立のデータ。SH-4とFE,MX-2と3種類のプロセサ・コアを搭載。各コアともローカル・メモリ(LM)を持つ。
[画像のクリックで拡大表示]
図2●並列化コンパイル シーケンシャルなプログラムから,複数のプロセサ・コア向けのマシン語を生成する。スクリーンは日立のデータ。
図2●並列化コンパイル
シーケンシャルなプログラムから,複数のプロセサ・コア向けのマシン語を生成する。スクリーンは日立のデータ。
[画像のクリックで拡大表示]

 2社の講演は,共にセッション8「Low Power」で行われた。先に登壇したのは,日立の内山邦男氏(研究開発本部 理事 技師長)である。同氏はISSCC 2010で発表された3種類のプロセサ・コアを集積したSoCを題材にしたトピックを紹介した。まず,同SoCの説明である。プロセサ・コアは,SH-4Aが8個とミドル・グレーンの「Flexible Engine:FE」が4個,ファイン・グレーンの「MX-2」が2個載っている(図1)。各プロセサ・コアにはローカル・メモリが含まれる。さらにSH-4Aは,プロセサ・コア実行中にローカル・メモリの内容をやりとりするための「Data Transfer Unit(DTU)」を内蔵している。

 次に同氏はSH-4AとFEを使い,オプティカル・フロー・ベースの動き検出でマルチコア化の効果を確認した結果を見せた。SH1個,SH2個,SH2個+FE1個,SH2個+FE2個の四つのケースを比較した。この事例では,コアが増えるほど,処理時間と消費電力が小さくなるという,当然の結果が出た。

 続いて同氏は,並列化コンパイラを紹介した(図2)。シーケンシャルな一般的なプログラムを,2段階の処理でマルチコアSoC向けにコンパイルする。最初のステップで使うのは「Global Compiler」とう名の並列化コンパイラである。このコンパイラは早稲田大学の笠原博徳氏(基幹理工学部情報理工学科 教授)と木村啓二氏(同 准教授)が開発した並列化コンパイラの「OSCAR」をベースにしているという。Global Compilerは,プログラム全体を複数のスレッドに分割して,さらにそれらを複数・異種のプロセサ・コアに割り付ける。2ステップ目のコンパイルでは,こうして割り付けられたスレッドを各コア向けのコンパイラで,マシン語に落とす。

 Global Compilerは性能だけでなく,消費電力を考慮した分割・割り付けが可能である。内山氏は,MP3オーディオ・エンコーディングをSHとFEの2種類のコアを含むSoCで処理する場合に,コア数を変えて性能がどう変わるかを調べた結果を見せた。個数が増えれば性能があがるが,この例ではSHとFEの個数のバランスが重要だったようで,例えばSH4個とFE4個の性能は,SH8個とFE4個の性能とほぼ同じだった。

 さらに同氏は,DTSの効果についても説明した。SH(1,2,4,8)とFE(0,1,2,4)を混載したケースでシミュレーションした。SH4個,FE2個のケースではDTUを使うことで相対性能値が4.2から8.4に上がるなど,いずれの組み合わせでも約2倍に性能が向上したという。また同氏は,SHコアを8個集積した別のSoC(各コアは独立した電力管理が可能)で,Global Compilerの消費電力最適化機能をチェックした結果を見せた。それによれば,8個を同時に稼働させたリアルタイムAACエンコーディングの例で平均消費電力が70%減少,8個を同時に稼働させたリアルタイムのMPEG-2デコーディングの例では同電力が51%削減したという。