東芝は2004年に「Visconti」という画像認識プロセサを開発して以降、引き続きマルチメディアSoCの開発を続けている。Viscontiは、白線検出や夜間歩行者検出などの車のドライビング支援やドアセキュリティなどの用途に用いられている。2011年には演算能力を10倍に高めた「Visconti 2」を出し、複数のアプリケーションの並列実行を可能にした。そして、将来の画像認識SoCでは1TOPS以上の性能を持たせ、より高度なドライビング支援を可能にするというロードマップである。

2013年1月30日に早稲田大学で開催された「第2回 メニーコアシンポジウム」での招待講演で、東芝の宮森高氏が将来世代の64コアの画像認識SoCについて発表を行った。

東芝のマルチメディアSoCのロードマップ(この記事のすべてのスライドは、メニーコアシンポジウムにおける宮森氏の発表資料を撮影したもの)

画像の認識は、例えば、魚眼レンズで撮影した画像を普通の画像に戻すような変換や、エッジを強調するなどの画像全体を対象とする処理を行い、その後、特徴のある部分を抽出して辞書とマッチングを行って対象物を判定する。Visconti 2は、画面全体の画素を処理し、定型的な処理であるが高性能を必要とする部分はハードウェアアクセラレータを使い、識別や判定などはマルチコアの部分を使うという思想になっている。このため、CoHOG処理、マッチング、ヒストグラム、アフィン変換を高速で実行するアクセラレータを各1台と、フィルタ処理アクセラレータを2台、3命令を配列に処理するVLIWアーキテクチャのMPE(Media Processing Engine)を4コア搭載している。

将来のSoCは、このVisconti 2の部分は、ソフトウェアの互換性の点からもそのまま踏襲し、ARM Cortex A9 2コアを加え(Visconti 3での拡張)、さらに、MPE×32コアのクラスタを2台、再構成可能エンジン(Reconfigurable Engine)2台を追加し、ハードウェアアクセラレータでサポートされていない処理も高速で実行できるようになっているのが大きな特徴である。また、ハードウェアアクセラレータの個数の増加、メモリのDDR3化なども行われている。

将来のメニーコア画像認識チップのブロック図

その結果、ハードウェアアクセラレータ全体の演算能力は673.6GOPSであるのに対して、32コア×2クラスタの演算能力は852GOPS、再構成可能エンジンの演算能力は3.3GOPSとなり、合計では1528.9GOPSとなっている。Visconti 2は464GOPSであったので、演算能力は約3.3倍に引き上げられることになる。

メニーコアチップでは2次元メッシュ構造のネットワークでコアを接続するものが多いが、このチップはツリー構造のネットワークでコアと2次キャッシュを接続している。

32コアのクラスタと4バンクの2次キャッシュをツリーネットワークで接続

上の図の中の左側の図が詳細を示すが、ネットワークのトポロジを理解するには右の図の方が分かり易い。4バンクに分割された2次キャッシュの各バンクから2個のランク2のルータに接続し、さらにランク2のルータから2個のランク1のルータに接続している。そして、ランク1の各ルータに4個のMPEコアが接続される構造となっている。2次キャッシュの下側にも同じ構造があり、合計32個のMPEコアと2次キャッシュが繋がるネットワークとなっている。

なお、右の図ではランク2のルータからは2つの2次キャッシュバンクにしか繋がっていないが、左の図では4バンク全部に繋がっており、後者の方が正しいと思われる。

32コアを2次元メッシュネットワークで接続する場合は、それぞれのコアにルータが付属するので合計32個のルータが必要となるが、この構造では20個のルータで済み、ホップ数(通過するルータの段数)も3段と少なく、遅延も小さいという。

チップは40nmのLP(ローパワー)プロセスで作られ、15mm×14mmと大き目のサイズであるが、32コアクラスタ自体は7.4mm×5.7mmのサイズに収まっているという。

このチップは40nm LPプロセスで作られ、サイズは15mm×14mm。クロックは333MHzで動作する

このチップの性能と消費電力に関して、次の図が示された。1080pのH.264ビデオのデコードでは20コアの使用で標準のフレームレートである30fps以上の性能が実現でき、消費電力は400mW弱である。また、1080pのフルHDのビデオから4K2Kの超高解像度への変換では、32コアを使用して16fpsであり、2クラスタ64コアを使えば30fpsを実現可能である。この時の1クラスタの消費電力は750mW程度である。

1080pのH.264デコードでは20コアで30fpsを達成。フルHDから4K2Kへの超高解像度化は16fpsで、2クラスタ(64コア)を使えば30fpsが実現可能

H.264デコードなどは専用回路でやった方が効率が良く、このチップを使う必要はないと思われるが、汎用の32コアMPEでこれだけの性能が出せるということを示すデータであり、組み込み向けSoCの分野でもメニーコアが有効であることを実証するものであるという。