前回に引き続きARMの話題を取り上げたい。まず、同社のMike Muller氏が行なった初日の基調講演からすこしピックアップしてご紹介し、後半では「OptimoDE」についてとりあげよう。 ●大量のトランジスタを使い切る方法
半導体製造のトレンドが移り変わるのと同じように、IPも流行り廃りで採用されたり敬遠されたりするのかというと、決してそんな事はないと力説する。その最大の理由は、コストだという。一切IPなどを使わずに開発を行なった場合、設計コストは天文学的な金額に跳ね上がる傾向を見せており、これをさまざまな設計技法でカバーすることでコスト上昇を防いでいるのだという。その設計技法のうちの75%はIPによって得られているわけで、これだけでもIPはすでに欠かせない要因になっている、とした。 加えて、今後のプロセスの微細化に伴い、より多くのトランジスタを利用できるようになるが、これをIP無しで使い切るのは非常に難しいという問題がある。 実際のところIPを使う場合、SoC(System on Chip:1つのダイ上に複数の機能ブロックを搭載することで、機能ブロック単体ではなく「システム」を提供するもの。IPはこの場合、個別の機能ブロックとして提供されるのが普通)を使う形になるのが一般的だが、そのSoCの開発コストがどんどん上がっているという。SoCのコストを考える場合
・新命令の定義 の4つに分けて考えねばならないが、このうち新命令の定義には平均300万ドルかかるという。 一方、CPUのインプリメントコストは増大の一途をたどっており、またSoCプラットフォームの開発も決して安くはない。しかも、当然ながら開発後のサポートやメンテナンス、ついでにマーケティング費用を考えると、大雑把ながら大体毎年2,000万ドルが必要とされる。 この費用、当然ながらまとめてかかるわけではない。開発がスタートしてから実際に収入を生むまでに平均5年を要している、というのが難しい点だ。 実際ARMの場合、やっと今年はARM10/11による収入が大きな比率になりつつあるが、昨年まではARM9が大きな割合を占めていたし、いまだにARM7の比率も馬鹿にできないほど大きいというあたりが、(特にEmbeddedマーケットにおける)CPUアーキテクチャの難しさを物語っている。 もちろん、はじめからこうした5年周期でのアーキテクチャの投入を前提に投資を行なってゆけばいいわけだが、年々開発にかかるコストは上昇してゆくことや、5年という期間は大抵のCEOの在任期間よりも長い(!)というあたりが、こうした長期的投資をさらに難しくしている。それゆえ、標準的なプラットフォームが重要である、というわけだ。 また、今後の開発の方向性に関しては、Makimoto's Waveを例に引きながら、しばらくは標準プラットフォームの上で独自のカスタマイズを行ってゆく方向になるという形で方向性を示した。ではその標準プラットフォームとはというと、RISCコア/DSP/Dedicated Logicなどをベースにさまざまなプラットフォームが考えられ、均一なものにはならないだろう、と言う。この部分はOptimoDEに繋がる訳だが、とりあえずそれは後で説明することにしたい。 さて、ここから話はパラレルプロセッサに移ってゆく。昨今の組み込み系プロセッサの場合、同時に多数のジョブが要求される事が多くなっている。こうしたケースでは、一つの高速なSingle-Threadedプロセッサで全処理をタスクスイッチしながら行なうよりは、Multi-Threadコアのプロセッサ、あるいはマルチプロセッサで処理をしたほうが、結果として設計が容易であり、かつ処理性能も要求を満たしやすいという話は昨年のEPFでも出ていた事である。 もちろん十分に最適化すれば、どちらのソリューションでも概ねコスト/パフォーマンスは変わらないわけで、後はどちらのソリューションを取るか、という話になる。ただ、パフォーマンスの向上が難しい(PC向けと異なり、Embedded向けではPentium 4のような設計は許容されない)事を考えると、ソフトウェアの面で多少難易度は高いものの、マルチプロセッサ/Multi-Threadの構造の方が柔軟性が高いという事はいえるわけだ。 また、先ほどの話に戻るがプロセスルールの縮小に伴い、利用できるトランジスタの数は増えつつあるが、問題はそのトランジスタをどう使うか、という話である。 「無駄に使わずに、その分ダイを縮小すればいいのでは」という話は勿論あるが、現実問題としてパッド(パッケージ側と配線をつなぐ部分)の数を減らせない以上、パッドに必要な分からコアの最小面積が決まってきてしまうため、結局コアの面積自体は変わらない。であれば、シリコンを無駄にするより、そこにトランジスタを作って付加価値をつけたいと思うのは当然の発想である。 実際、今のペースでプロセスが縮小してゆくと、2007年には10億トランジスタがASICで使えるようになってしまう。ではどう使うかといえば、やはりプロセッサの数を増やすのが一番早い。現にAgereはARM9を8つ搭載したコアを試作している。逆に、マルチプロセッサにしないで使い切ろうとすると、凄まじいものが出来上がるというわけだ。
●ARMお墨付きのDSP「OptimoDE」
従来ARMが提供してきたのは、JAVA拡張やSIMD拡張があるとは言え、あくまでStandard RISC Coreの範囲に留まっていた。だからDSPが必要な場合、ARMコアに別のDSPコアを組み合わせたSoCを作る形になっていたわけだ。TIのOMAP、あるいはIntelのXscaleなどはこの典型例である。 OptimoDEはOptimal Data Engine technologyの略(いまいち略になってない気がするが)で、VLIWスタイルのDSP型プロセッサである。ConfigurableとScalable VLIW、それとDigital Signal Processingの3つが重なった部分に位置するものである。 そのOptimoDE、基本的にはAHB経由でCPUと接続される形を取る。つまり、純然たるSoCの1コンポーネントであって、CPUコア自体の拡張ではない。 内部的には、データエンジンの中間にAIKO(AMBA Integration Kit for OptimoDE)が挟まる形で入る構造になっている。物理的なエンジンは1つだが、途中のAIKOの部分でデータの流れの制御ができるため、見かけ上Data Engine 1と2に分けて考えられるあたりが面白い。 内部のアーキテクチャは、典型的なDSPのそれである。ただ、ここで特徴的なのは命令の幅を16~256bitの範囲で任意に決められること。また、VLIWというだけに、複数の命令を同時に実行できることになる。このために、複数のFunctional UnitやMemory、I/Oポートを準備しているわけで、(おそらく上限はあるのだろうが)任意の処理を自在に構成できることになる。処理自体は単純なパイプライン構成だが、DSP用途であればこれで十分だし、むしろプログラミングが容易になる分望ましいだろう。 ちなみに講演の中ではあまり細かい話は出なかったが、プレスリリースによれば、Data Engin Coreは最小で9,500ゲートで構築でき、また26,200ゲートで構築したOptimoDEのData Engine CoreはTSMCの0.13μmプロセスで0.0215mW/MHzを達成しているという。ちょっと古いデータだが、オリジナルのA|RTコアは45,6000ゲートに6.3KBのSRAMを組み合わせ、150MHz動作で全二重のturbo codecを実現できたというから、その威力はかなりのものだろう。 気になるのはConfigurableの部分だが、まずマイクロアーキテクチャに関してはDesignDEと呼ばれるツールで設計し、その結果をDEvelopと呼ばれるツールで検証できる。検証後のマイクロアーキテクチャのインプリメントは、BuildDEというツールを使ってVerilogに変換することが出来る。そうなると、後はそのままASICなりFPGAで回路を構築出来るわけだ。 またファームウェアに関しては、DesignDEの出力を再びDEvelopに入力して、ここからファームウェアのマイクロコードを生成できる。もちろん、こうしたツールは別にOptimoDEだけでなく、多くのDSPには必ず用意される類のものではあるが、クライアントが自分でDSPの設計をできるようになった、という事のインパクトは大きいだろう。 もちろん従来でも、Adelante Technologies BelgiumからA|RTを購入して自社で組み合わせることは可能だったのだが、その場合はクライアントがその組み合わせでの動作に責任を持つ必要があったわけだ。ところがOptimoDEを使えば、ある意味ではARMのお墨付きとなったわけで、「正しく設計すれば正しく動く」事が保証されているだけでも大きな違いだろう。 ちなみに32pointのFFT演算をインプリメントした場合のパラメータが示されたが、速度優先とサイズ優先、さらにメモリ圧縮をする/しないでかなりパラメータが変わることも示された。このあたりの柔軟性も、OptimoDEを使うクライアントには嬉しいところだろう。
気になるのは、今回はじめてARMはIPコアの提供に踏み切ったことだ。従来のARMのビジネスモデルでは、ARMはあくまでプロセッサコアやInterconnect(AHB/APB)の提供に留まっており、ビジネスパートナーがIPを提供する形で付加価値をつける、という仕組みだった。つまりARMとIPベンダーは補完関係にあったわけだが、これでARMはIPベンダーと(一部ではあるが)競合関係になってしまったことになる。なぜIPの提供に踏み込んだか、といえばSoCの立ち上がりがあまり芳しくないために、勢いをつける上でいくつか「標準」のIPコアを提供する必要があったのではないか、と考えられるが、これが協業ベンダーとの間の摩擦をもたらさないか、機会があれば関係者に聞いてみたいところだ。
【お詫びと訂正】記事初出時、OptimoDEの命令幅をデータ幅と誤って記述しておりました。また、データエンジンに関する説明を誤っておりました。お詫びして訂正させていただきます。 ●補足:AMPとSMP 前回のレポートに対して「ARM MPCoreはAMP(Asymmetric Multi Processor)ではなくSMP(Symmetric Multi-Processor)ではないか」という疑問が寄せられたが、そもそもSMPかAMPかはハードウェアだけで決まるものではない。OSが全てのプロセッサに処理を均等に割り振れるからこそSMPになるのであって、例えば2プロセッサであってもOSがそれを認識しなければSMPとは呼べない。Dual Processor構成のPCにWindows 9xをインストールしても、それはSMPどころかDual Processorにならないのと同じことである。 もう少し具体的に説明しよう。例えば4プロセッサのARM MPCoreでブロードバンドルータを作るとしよう。Processor 1はWAN側の制御(PPPoEのハンドリング含む)を、Processor 2はLAN側の制御のみ(QoSの管理を含む)、Processor 3はNAPTの処理だけを、Processor 4はインターフェース(Apacheあたりを動かしてWebインターフェースを提供)するとする。これを、OSを使わずにがりがり書いた場合、SMPとはならない。例えばProcessor 1が止まるとWANアクセスが一切できなくなってしまうからだ。ところがここで4プロセッサをサポートするOS(VXWorksMPとかLinuxのMPカーネルとか)を入れて、プロセッサ資源を動的に配分できると、例えばProcessor 1が止まっても動作にそれほど大きな支障はない。Context Switchingによって他のCPUの資源をPPPoEの処理やWAN側制御にあてられるからだ。この状態がSMPである。 ちなみに電源管理に関してもこれは言える。例えばWANと接続しない場合、SMP構成でなくてもProcessor 1の電源を落としても別に支障はない。つまりARM MPCoreの構成はSMPとAMPのどちらにでも、OSの構成次第で対応できるようになっているということだ。
□Embedded Processor Forum 2004のホームページ(英文) (2004年5月24日) [Reported by 大原雄介]
【PC Watchホームページ】
|
|