Analog Devices、デュアルDSPコア、専用FFTなど集積したSoCを開発
Analog Deviceは、久々に新しいデュアルコアDSPベースのSoC、「ADSP-SC58x」(図1)を開発、サンプル出荷をしている。これまでの「SHARC」プロセッサと比べ、動作時の消費電力が2W未満で、電力効率、すなわち消費電力に対する性能を5倍以上と大幅に上げた。これまではオーディオプロセッサ用途を主としていたが、今回の開発により多軸モータ制御も可能になった。
図1 ARMコアとデュアルDSPコアSHARC+を集積したAnalog Devices のSoC 真ん中にある大きなBGAパッケージのIC(19mm角)
今回のSHARC+プロセッサは、DSPプロセッサというよりも、ARM Cortex-A5コアを制御用プロセッサとして使い、デュアルDSPコアを汎用の演算器(級数展開の積和乗算器)として使うSoCである(図2)。従来ならDSPで処理していたようなFFT(高速フーリエ変換)/逆FFT演算と、デジタルフィルタ(FIRおよびIIRフィルタ、モータ制御用SINCフィルタ)、さらにモータ制御に使う高調波解析エンジンを専用のハードウエア回路で実現、集積した。これらの専用アクセラレータの信号処理を速めるためにDMA(Direct Memory Access)も集積した。加えて、A-D/D-Aコンバータに使う非同期型サンプルレートコンバータ、セキュリティを高める暗号化エンジンも集積した。周辺機器とつなげるためのI/OとしてPCIeやGigabitイーサーネット、USB2.0などのインターフェースも満載した。
図2 ARM Cortex-A5コアと2個のSHARC+コアなどを集積したADSP-SC589 529ピン、19mm角パッケージに封止されている 出典:Analog Devices
ビデオや音声のコーデックなどに使うFFT演算を専用のハードウエア回路で実現したため、非常に高速になり、1024点の複素FFT演算を行う場合、わずか5µsと短く、今回開発されたDSPのSHARC+と比べ、スピードは5倍、電力効率は10倍にもなったとしている。SHARC+の性能は5.4GFLOPS、1.8GMACSだが、専用のFFT/逆FFTアクセラレータの性能は、最大18GFLOPSだとしている。プロセスには40nmCMOSを利用。
制御用プロセッサとしてCortex-A5を選んだのは、マイコン向けのCortex-M、リアルタイム制御向けのCortex-Rシリーズと比べて、DSP制御としての性能と、2W未満の消費電力、コストとのバランスが良いからだとしている。Cortex-A5は浮動小数点演算もサポートしており、DSPの制御にも向く。さらにサム・ネイルを作るというような軽い演算にも使える。ARMのコアを使う以上、CPU周辺のバスにはARMが提案したAXIバスを採用している。さらに高速性能と低消費電力を両立させるため、キャッシュメモリの容量を増やし、SHARC+コア当たりL1キャッシュを640Kバイト(パリティチェック付き)とし、もう一つのDSPコアとの共有メモリとしてのL2キャッシュを256Kバイト(ECC付き)とした。ARMコア、SHARC+コアとも最大クロック周波数は450MHzで、消費電力の観点からこれ以上高速性は必要ないと判断した。
演算だけではなく、車載オーディオや産業用モータ駆動の制御などに外部のハッカーなどからの侵入を防ぐためにセキュリティを確保した。まず、セキュリティキーをOTP(One-time Programmable)メモリでプログラムできるようにした。特にセキュアブートをかける場合に遅くなることがあるため、OTPでユーザのソフトを守りながら、起動を速められる。暗号化にはAES128、256、DES/3DESなどのアルゴリズムや、SHA-1とSHA-2のHASH関数などを用いた。
この新製品SoC、ADSP-SC58xの開発ツールも提供する(図3)。実績のあるEclipse統合開発環境(IDE)をベースにしたツール「CrossCore Embedded Studio」によって、ARMとSHARC+をシームレスに統合している。ここでは、IDEとデバッガー、C/C++コンパイラ、アセンブラやリンカーなどを搭載している。また、LinuxやリアルタイムOSのμCをサポートし、さらにマルチコアを最大3コア同時にプログラムできる。ARMコアと二つのSHARC+コアを3つの「プロジェクト」として管理する。ハードウエアの開発キット(図4)も提供する。
図3 ADSP-SC58xシリーズ向けの統合開発環境 出典:Analog Devices
図4 ADSP-SC58xのハードウエア開発ツールEZ-KIT LITE(手前)と、JTAGエミュレータICE-1000(後ろ側)
オーディオプロセッサとして使う例では、12チャンネルのD-Aコンバータと8チャンネルのコーデックを外付けし、さらにパワーアンプを20個駆動し20台のスピーカから音を出し、複数個のマイクなどを使う車載アンプの例を示している。車載用では音声入力のためのノイズキャンセラ用にマイクも複数必要になる。DSPはオーディオ信号のミキシングや、プリ/ポスト処理に使う場合もある。
また、多軸モータ駆動にも使う。SHARC+に回転制御用のアルゴリズムをプログラムし、アイソレーションを介して駆動回路を動かし、さらにパワーMOSFETやIGBTなどのトランジスタを駆動しモータの回転を制御する。このSoCはDSPが2個入っているので、2軸制御までだが、このDSPを並列に接続して多数のモータを駆動できる。つまり拡張性がある。
今回の製品シリーズでは、ADSP-SC58xの他に、ARMコアを内蔵しないADSP-2158xシリーズもサンプル出荷している。これらの量産は2016年中ごろの予定。ADIは今後もさらに最適化されたシステムレベルの性能とコストを備えた、ADSP-SC5x/215xシリーズを提供するため、現在設計中である。