Qualcomm技術担当シニア・ディレクターのLucian Codrescu氏は、同社のSnapdragon SoCに使用されているHexagon HVX DSPコアの最新版について述べています(図 1)。要約を読むと、4スロットVLIW(Very Long Instruction Word)、スカラおよび1024bitベクトルSIMDパイプライン、4Wayマルチスレッディングなど、まるでアーキテクチャに関する最新アイデアの調査報告書のようです。
さらに、マイクロアーキテクトは、ビジョン処理アクセラレータとしてのHVXの役割に特有と思われる幾つかの選択を行っています。
1つは、スカラ/ベクトルパイプラインが浮動小数点ではなく整数であることです。「これらのアプリケーションの大部分では浮動小数点は必要ないため、ハードウェアに実装しないことで消費電力を抑えることを選びました」と Codrescu 氏は説明しています。
もう1つは少し珍しいキャッシュアーキテクチャです。スカラユニットは、メガバイトスケールのL2とコヒーレントな通常のL1命令/データキャッシュに接続されています。ベクトルユニットはL1命令キャッシュによってドライブされますが、L1データキャッシュはバイパスしてL2に直接接続されており、そこからデータの読み出し/書き込みを行います。これは、ベクトルSIMDユニットには主にピクセルデータのストリーミングを担当させることに加え、カスケードしてL1経由で一度に駆動するよりも、低速ながら大型のL2経由でピクセルをストリーミングする方がはるかに効率的という考え方のようです。
この推測を裏付けるように、L2はカメラセンサーからキャッシュ、キャッシュからチップ上の他の場所にある専用画像信号プロセッサにピクセルをトランスポートする「スマートデータムーバー」に接続されています。L2はARMシステムのメモリマネジャーにも接続されており、Hexagon L2、ARM CPU クラスタ、およびメインメモリ間での共有が可能です。
Codrescu 氏は、この仕組みとARMのNEON SIMDエンジンの類似性がかなり意図的なものであることを示唆しています。Qualcommは、C/C++コードとハンドクラフトアプリケーションライブラリを基本的なアプローチとして、POSIXのようなスレッド、さらにはLLVM(Low-Level Virtual Machine)コンパイルチェーンと、NEONプログラミングモデルの維持に向けてあらゆる努力をしています。興味深いことに、同社は並列画像処理用のドメイン特化型言語であるHalideの開発も行っています。
Copyright © ITmedia, Inc. All Rights Reserved.