効率的な頭脳をプロデュース 冨山 宏之
普段手にしている携帯電話の中身を見たことがあるでしょうか。
解体すると中から現れるのはいくつかの小さな部品が載せられた回路基板。
この基板に載っている7,8ミリ四方の集積回路こそが、高機能化を続ける携帯電話に組み込まれた頭脳なのです。
電子機器に組み込まれた専用の頭脳
携帯電話だけでなく、ゲーム機から航空機まで、大きさや機能はさまざまですが、身の回りの電子機器には、システムオンチップ(SoC:System-on-Chip)と呼ばれる集積回路が組み込まれています。
電子機器はSoCを組み込むことで、スイッチのオンオフだけで制御される機器に比べ、複雑な機能を持てるようになるのです。
汎用的に使われる集積回路との違いは、SoCがそれぞれの機器専用の回路であること。
携帯電話の音声処理や動画像処理のような、機器に必要な機能を効率的に果たせるように設計されているのです。
効率よく割り振る
コンピュータ処理の能力が上がるほど、電子機器は複雑な機能を実現できるようになります。
実際に計算処理を行うプロセッサという部品を、ひとつのSoCの中に複数載せれば、処理速度を上げることができるはずです。
ところが、そう単純にはいきません。
コンピュータの命令は基本的に1ステップずつから成り立っているため、常に全てのプロセッサを使ってはいません。
たとえば、3人でカレーライスをつくったとしても、作業をひとつずつ順番に進めていては、かかる時間は1人でつくるときと変わりありません。
しかし、ご飯を炊く、野菜を切る、肉を炒めるというように、並列して行えるものを見つけ、3人に適切に割り振ることができればそれだけ早くつくり終わることができます。
コンピュータの場合でも、複数のプロセッサで並列して処理が実行できれば、数が増えるほど速度を上げることができるのです。 冨山先生が開発に取り組むのは、どこを並列に、どう割り振るかを自動的に導き出すプログラムです。
場当たり的な計算ではなく、効率良い並列処理を理論的に決定できる数学的なモデルをつくり、より処理速度の速いSoCを生み出そうとしているのです。
機器が違えばSoCの回路も、命令も、それらをどう並列に動かせるかも異なります。
どのようなSoCでも、自動的に効率よく処理を割り振ることができれば、 あらゆる機器の性能が向上できるはずです。
アイデアは研究室の外に
「どうプログラミングするかは、アイデア勝負のところが大きいのですが、机でじっと考えてもアイデアは出てきません。
出てくるのは、他の人の学会発表を聞いているときや、学生と話しているとき。
偏った知識ではなく広い世界のすべてのことに興味を持つことが大事です。
学生には新聞を経済、社会、スポーツ、まんべんなく読むように言っています」と先生。
いろんな人に会い、話をし、広い興味を持つことが先生のアイデアの源なのです。