会期:6月16~19日(現地時間)
さて、ARMはかなり力の入った発表を行なったわけだが、対抗馬たるMIPS Technologyも負けてはいない。今回MIPSは、MIPS32 24Kという新しい32bitコアを発表した。
●Code Name “Topaz” 事前に配布された資料では“Topaz”というコード名だったが、当日は全ページが“MIPS32 24K”に差し替えられたこのコア、名前の通り既存のMIPS32 4Kシリーズの後継製品である。 この24Kという型番はちょっと意味深である。MIPSは【写真2】のような製品ラインナップを持っており、一口で言えばLow-Cost、Better Cost/PerformanceマーケットにはMIPS32 4Kシリーズを、High-PerformanceマーケットにはMIPS64 5Kシリーズを提供してきたわけだが、今回のMIPS32 24Kはパフォーマンスの点では既存のMIPS64 5Kを凌駕しており、最上位であるMIPS64 20Kシリーズと同等以上、というポジションになるからだ。
そのMIPS32 24Kだが、0.13μmプロセスを使った場合には「最悪値で」400~550MHz程度で動作することになるという【写真3】。MIPS32だと、例えば4Kで200~300MHz動作だったし、MIPS64 5Kも250~350MHzだから、これらを大幅に凌駕しており、500MHz~600MHz動作のMIPS64 20Kとほぼ並ぶことになる(ま、実際はMIPS64 20Kcが2wayのスーパースケーラであることを考えると、多少のアドバンテージがMIPS64にはあるかもしれないが)。
●8ステージの(スーパー)パイプライン
コアで特徴的なのは、Single Issue(つまりスーパースケーラは搭載しない)ながらパイプラインが8ステージにされ、またメモリコントローラが大幅に強化されたこと、マルチプロセッサをネイティブでサポートしたこと【写真4】、そして外部バスにOCPを採用したことである【写真5】。
で、このOCPがどのくらいの性能を持つかというと、例えば中核メンバーのSONICSが提供するSiliconBackplaneというIPコアを使うと、最大300MHz動作で4.8GB/secの転送速度が確保できることになっている。
IPコアというところがミソで、実際にどのくらいのパフォーマンスかというのはファウンダリやプロセスに関係してくるので一概には言えないが、従来だと1GB/sec程度がSOC内部バスの上限だったから、大幅なパフォーマンスアップとも言えるわけだ。もちろん内部バスを提供するのはSONICSだけではないから、ユーザーは自分の用途に合わせて複数のベンダーから一番適した内部バスを選べるという仕組みで、今後の動向がちょっと楽しみである。
まずFetch/Issueでは、64KB 4way-Set Associativeの命令L1キャッシュ、それと今回追加されたMictoTLBが目を引く【写真7】。キャッシュサイズは従来の倍で、これは当然フェッチミスを削減することになるわけだが、ほかにも(外部に設けたTLBとは別に)MicroTLBを内蔵しているのはちょっと面白い。
このMicroTLB、IntelのXScaleなどでも利用されているもので、直近のデータのみを抱えるTLBである。エントリ数はたいしたことはないが、その代わりレイテンシが非常に低いので、大域ジャンプなんぞをかまされた日には役に立たないが、局所構造をきちんと取ったコンサバティブなプログラムを高速に動作させることは非常に役に立つ。また、パイプライン自体はSingle Issueながら、命令フェッチは妙に強化されていることがわかる【写真8】。ちなみにMIPS16eの利用時は、命令デコードを1段余分に必要とするそうだ【写真9】。
●CMPとSMT さて、これを使うとどんな構成になるかといえば、典型的なものは【写真16】のようなものだろう。これは従来までも使われてきたものだが、強いて言えば最近はAHB/APBを使うことが多かったが、MIPS32 24KではOCP対応バックプレーンに変わるというあたりが少し異なっている。
大きく異なるのは【写真17】の構成だ。OCPに対応したことで、スムーズにCMP(Chip Multi Processor)の構成をとることが可能になっている。より多くのパフォーマンスが必要な場合、プロセッサの数を増やすことで対応できるという話だ。
ところで、ここまででは説明してこなかったのだが、MIPS32 24Kのもう1つ大きな特徴はMIPS32 Release2と呼ばれる新しい命令セットを搭載することである。実はこのRelease2って何だ? という話が講演の中では全く説明されなかったのだが、同社のJack Browne氏(Vice President, Worldwide Sales)と話をする機会があり、ここで明らかにされた。 MIPS32 Release2は、既存のMIPS32命令セットに比べて3つの違いがあるという。1つ目はBitField命令の強化、2つ目はマルチプロセッサ対応で、3つ目はなんとSMT(Simultaneous Multi-Threading)の対応なのだそうだ。具体的に言えば、例えば現在MIPS32は2つのレジスタセットを切り替えて使えるが、Release2では4セットのレジスタセットを切り替えられるのだそうだ。ただ、だからといってMIPS32 24KでSMTが使えるというわけではないそうだ。SMT自体はもはやEmbeddedプロセッサでもあたりまえの技術になり始めており、MIPS Technologyとしても当然対応を考えているが、ただSMTを利用するためにはまずソフトウェアが対応しなければならず、したがってまずはそちらの対応を行なうという話だった。
実際、そう見るとMIPS32 24Kのパイプラインは妙に冗長性というか拡張性が高い。フェッチが同時2命令とか、命令バッファが6命令というのはSingle Issue/Single Threadのプロセッサには無駄なほど贅沢だし、全般的にResource Richな構成になっている。が、例えばALU主体のスレッドとMemory Access主体のスレッドが同時に実行できるとなれば、これらの過剰に見えるリソースも、リーズナブルに思える。恐らく、次世代あるいは次々世代のMIPS32 24KプロセッサはSMTを搭載するのであろう。ちなみに登場時期は? とBrowne氏に聞いたところ、「2年後」という返事であった。
□Embedded Processor Forum 2003(英文)
(2003年6月19日) [Reported by 大原雄介]
【PC Watchホームページ】
|
|