Processor+DSP”の組み合わせである。端的に言えば、負荷の重い処理はDSPに実施させることで高スループットと低消費電力、低コストを実現し、全体の制御やOSの実装などDSPに向いてない処理は汎用プロセッサでカバーすることで柔軟性を持たせようという方針である。このDSP+汎用プロセッサという組み合わせは、例えばここ数年のHDDのコントローラは例外なくこのパターンになっている。そんなわけで、全体の発表を通してこの汎用プロセッサ+DSPの組み合わせの製品をいくつかご紹介したい。Technology。ローエンドからはARMに追い立てられ、ハイエンドにはPowerPCが進出してくるという板挟みにあって、最近では次第に適用事例が減りつつあるというつらい立場にある。24KE」を発表した。Extension)を発表している。ASEを搭載することでいくつかのアプリケーションでは大幅に性能が向上する(と見込まれる)ことをもっぱらアナウンスしただけに終わったが、今回はもう少し踏み込んだ内容となっている。ASEのポジションを明確にしておこう。Coreということになっている。ASEの搭載は既存のMIPS32コアを最大限に活かす設計になっていることだ。ASEの搭載はIEUとMDUの変更のみで実現されている。IEUの内部では、ALUやMCUなどの演算部は変更を受けているが、データパス自体は共用する形になっている。この方式のメリットは、ダイサイズの増加を最小限に抑えられることだ。DPSのうち、CISC命令フォーマットに関しては未サポートである。ASEを載せることで大幅にコストアップすることを避けられる。その反面、性能面では多少のデメリットもある。この構造はちょうどx86のALUとMMX(やSSE/SSE2/SSE3)の演算器が共用になっている構図に近い。結果としてMIPS32コアとDSPコアは同時に動かせないし、仮に動かせたとしてもデータパスを共用している関係で、こちらがボトルネックになる可能性がある。要するに、DSP処理をオフローディングし、間にほかの事をやりながら待つという動作は非常に難しくなると想像される。プログラミングの面から見れば、こちらのほうが書きやすいのも事実だ。CellのSPEのように完全に分かれてしまうと、SPEは別スレッドにした上、スレッド同期やデータの同期をアプリケーション(なりOS)で行なわなければならない。Technologyの望む路線であったのだろうと想像される。発表の中では、DSPユニットをいかに既存のALUと結合させるかについて色々言及があったが、こうした事柄は別のDSPコアを搭載してしまえば、それほど難しいものではない。coreの提供であるため、DSPコアを分けることによるダイサイズの増加はやはり受け入れられないのであろう。MDUなど、DSPコアをベースに作り直して、そこにMIPS32互換機能を入れたほうがおそらく速かったのではないかと想像されるが、あえてそういうことはしていないようだ。Unit、つまり乗除算ユニットのこと。大規模なMDUの処理の例。した複雑な計算の各段で乗算とSaturationの処理を行ないながら、高速にループを廻してデータを畳み込んでゆく必要があり、既存のMDUでは到底実現できないため、結果として大幅に手を入れることになったと思われるさてこの24KEは、4種類のコアのラインナップが用意されている。Pro」:24Kf+CorExtendとなっていることに倣っており、わかりやすい。Core」に示すように、ほとんどダイサイズに変化が無いのがわかる。ASEでは最大800MMACSの演算性能を発揮できる。ASEを使うことにより、特定の処理に関しては倍近くまで性能が上がることが示された。2倍というのは、DSPを使ったにしては控えめな結果であるが、これは上述した通りDSPコアとMIPS32コアが並行して動かないことと無縁ではないだろう。CorExtendは「ユーザー独自の命令を拡張できる」機能。24Kは多くのファウンダリで生産されているから、一般論として0.13μmプロセスならば400MHz以上で動作するということ。Purpose)プロセスでの試作の結果として400MHz動作したという話で、今後は他のファウンダリでの試作も行なわれてゆくと思われる。Optimizedとなっている。このあたりは今後の課題だろうこの方式の欠点は、今後の性能改善のヘッドルームがあまり無いことだろう。今回の構造ではDSPコアを複数持たせ、オフローディングで実行させることは非常に難しい。MIPS32コア側もアウトオブオーダー構造に仕立て、ALUとDSPをSuperScalar式に並べればこれらは可能になる。そこまでしなくともそこそこの性能が出るというのがMIPS32の利点であるから、これをやったら逆に回路規模が大きくなりすぎてしまい、むしろ商品価値を損ねることになりかねない。このあたりをどうするのか、は現状見えてこないが、それでもMIPSコアですらDSPの搭載が必要、というあたりが今の組み込みプロセッサのトレンドを示しているとも言えよう。●OptimoDEとNEONMIPSの不調と対を成すように好調なARM。ARMは2004年春のEPF2004で「OptimoDE」を、同年秋のFPF2004では「NEON」をそれぞれ発表しており、GPP+DSPのソリューションをすぐに提供できる準備ができている。Busで接続される、Outboundな構造。CellのSPEのような形になる。ASEとよく似た構造になっている。プロセッサコアからInboundで処理を実行させられるもので、汎用DSPコアとして機能するという具合に分けることが可能だ。アプリケーション開発者としては、ちょっとしたDSP向きルーチンを高速化させたいときにはNEONを、本格的にチューニングする場合はOptimoDEを使うという形で使い分けを図ることになるだろう。SessionではNEONを使っての(やはり)メディアプレーヤーの実現例がそれぞれ示されたので、簡単に触れておきたいと思う。Technologiesが開発した独自のDSPコアで、VLIWスタイルの命令セットを持つものである。この点では、既存のARMとは全く異なるアーキテクチャであり、それゆえコアに統合できなかったという面もあるのだが、それよりもデータパスをアプリケーションに最適化することで、汎用コアよりも性能/消費電力比をより高くすることが可能になるというのがOptimoDEの特徴であり、これを可能にするためにはCPUコアに統合しないほうがチューニングしやすい、という面がある。OptimoDEの主要な特徴。基本的には昨年のEPFの記事で触れた以上の話はない実際今回発表されたAudioDEは、OptimoDEを使ってMP3などの音楽フォーマットのデコードを行なう、ポータブルメディアプレーヤーためのソリューションを構成した例である。いう話はQ&Aセッションで出たが、回答はなかった。ベタで構成したOptimoDEでの結果ではないかと思う)と比較して、メモリサイズや消費電力を大幅に削減できるというのがARMの主張であった。MP3のデコーダの構成例。実数部24bit、虚数部16bitというデータ長はESPICOの分析に基づいたアルゴリズムの産物だが、普通はこんなサイズのデータパスは無いから、16bitパスと32bitパスを併用するか、32bitパスを全部使ってしまうが、これは無駄な消費電力増加に繋がることになる。詳細な内部データパス。データパスをちょうどの幅にするのみならず、MACやAFUの性能が高く、消費電力も低いことが大きく寄与しているが、それよりも専用ハードウェアと同レベルの最適化を施せる、という点が大きなメリットこのOptimoDEとは別に、後のセッションでARMはNEONに関する発表を行なった。Lanier氏で、Steel氏とはポジションや責任範囲が異なることもあってか、微妙に言っていることに食い違いがあるが、それはさておくことにする。Complementary」と近いプレゼンテーションだが、微妙に表現が異なるのが面白い。Approachか」で切り分けている。Technology」のようになる。ASEと異なり、レジスタファイルやパイプラインは分離されている。v5/v6のSIMD命令に近い(つまりOptimoDEのVLIWとは異なる)ものだが、データ長が64~128bitと長いのが特徴。v5/v6/NEONで実装した場合の性能予測値が示されたが、ほとんどの処理で3倍以上の性能を示しており、DSPを使うべき処理を汎用プロセッサで処理してはいけない、ということが明確になっているとも言える。ASE同様に)既存のシステムからの移行をなるべく容易にすることに配慮しているようで、アプリケーションから見ると完全にコプロセッサとして扱えるのがわかる。ASEの所で指摘した通り。実際ARMもやはりNEONだけでは力不足だと暗に認めているようで、NeonとOptimoDEを組み合わせたスマートフォンの例が出てきたりするあたり、両者を一番分けやすいのは性能なのかもしれない。Spectrum」は、役割分担に応じたソリューションを示したものだが、NEONはプログラミングこそ容易なものの、性能面ではやはりOptimoDEに一歩劣ると見なしても良いのだろう。マーケティング的な観点から見たNEONとOptimoDEの区別は大体わかったが、NEONからOptimoDEまでのギャップが非常に大きいのが現時点でのARMのラインナップの弱みだろうか。他のベンダーが付け入る隙があるとすれば、それは1つのアーキテクチャでスケーラブルに性能を上げられるGPP+DSPソリューションが、ARMには欠けていることだろう。面白いのはシングルCPUの下にMPCoreやマルチプロセッサが位置すること。pc-watch-info@impress.co.jpお問い合わせに対して、個別にご回答はいたしません。