[an error occurred while processing the directive]

Spring Processor Forum 2005レポート
~松下のデジタル家電用CPU「UniPhier」

カンファレンス会期:5月17日~18日(現地時間)

会場:米カリフォルニア州サンノゼ
DoubleTree Hotel



松下電器産業(株)半導体社 システムLSI開発本部 基盤技術開発センターの中島雅逸氏

 前日レポートでも少し触れた松下電器産業の“An Instruction Parallel-Processor (IPP) Architecture on the Panasonic Integrated Platform for Digital Consumer Electronics.”であるが、やはりUniPhierプロセッサの話題であった。

 UniPhierは松下のデジタル家電用のプラットフォームだ。これまであまり公開されてこなかったUniPhierプロセッサの内部ということで、まず最初にこの話題をお届けしたい。


●ポジショニング

 UniPhierプロセッサは今後PanasonicのIA製品に広く利用されてゆく、共通基盤となるプロセッサである。とはいっても、UniPhierで全てを賄うという意味ではない。UniPhierはコプロセッサといった位置付けである。UniPhierは

・Instruction Parallel Processor(IPP)
・Data Parallel Processor(DPP)
・Dedicated Hardware Engines

の3つの要素から構成されるのがわかるが、今回紹介されたのはこのうちIPPである。

AV Watchの記事には、このプレゼンテーションの日本語版が掲載されている 現状、汎用の制御までUniPhierで行なうのは無理があるし、全ての機能をUniPhierで賄うことも不可能だから、無理のない範囲で適用してゆくということだろう

●IPPの構成

 IPPの構成は、一見すると、3命令同時実行可能なVLIWマシンといった風情を見せる。パイプライン段数は最大8段の構成で、このあたりは割とコンサバティブな印象だ。ただ、命令フェッチのキュー構成はちょっと面白いし、実行ユニットは7命令同時発行の構成になっているのは、この手のプロセッサとしてはかなりハイパフォーマンスを狙っていると考えられる。

一見それほど奇異な部分は見当たらないが、下にあるVMPUというユニットがちょっとだけ珍しい WBが明示的に示されてないが、レジスタファイルの書き出しに必ず1ステージ必要だから、最短はALUの6段、最長はMAC演算などの8段ということになる
SETTAR/SETLRという命令(どちらもループ制御命令の様だ)専用の命令キューを別に持っている所がちょっと面白い。ループ専用のプリフェッチバッファということで、働きとしてはItaniumのPredicationなどと同じ効果があるのかもしれない ちなみにALUは32bit幅で、8bit×4/16bit×2/32bit×1のSIMD演算が可能とされている。あと、Barrel ShifterをALUから分けてるあたりも、マルチメディアに特化させた印象を受ける

 キャッシュの構成もまた面白い。通常のキャッシュ以外に、Sub CacheとPseudo Cacheを持っている。なぜこんな構成を取るか、という話だが、アクセス頻度とデータサイズの関係をとってみると、頻繁にはアクセスしない(がキャッシュミスするとペナルティが大きい)パターンと、煩雑にアクセスされてサイズも大きいパターンがあり、前者はSub Cacheで、後者をMain CacheとPseudo Cacheで賄うという構成になっている。

 キャッシュ自体は32KB/16Wayの構造だが、アトリビュートとして良くあるRU(Resent Used)以外にWeakというビットも付加し、RUとWeakの両方を参照することで効果的なキャッシュ利用を図ろうとしているあたりも、ちょっと特徴的である。

Pseudo Cacheは要するにRAMをキャッシュとして見せかける仕組みである Pseudo Cacheはアクセス時間的にはメモリと同じだが、メモリとして扱うとなるとキャッシュミスによりキャッシュの入れ替えが発生してしまうから、これを避けるためにメモリをキャッシュとして扱う事でシステム全体の性能低下を防ぐものと思われる RUは、前回利用してから1番時間が経っているキャッシュエリアを判断するために利用するもので、キャッシュミス時に(新たなデータをロードするため)空きエリアを作るためのライトバックを行なう場所を判断する際に利用する。Weakはキャッシュのヒットレートの強弱を判断するためのもので、ヒットレートの高いキャッシュエリアが簡単にライトバックされてしまわないためのもの

●Virtual Machineとスケジューリング

 ところで先ほどちょっと触れたVMPUだが、UniPhierは複数スレッドを同時に実行できる機能を持っている。ただ、それはHyper-Threadingというよりは、Intel Virtualization TechnologyとかAMDのPacificaに似た、マシン仮想化技術というほうが実態に近い。実際ハードウェアの構造を見ると、PUがVMPUの管理下に置かれているあたり、VMXレイヤを持つIntel Virtualization Technologyと相通じるものがある。

コンテクストスイッチング専用ロジックを用意し、プログラムカウンタや専用レジスタをコンテクストごとに用意するあたりはHyper-Threadingと似たようなものだが、スレッドのCPU割り当て頻度制御や割り込み制御を高度に仮想化出来る点は、明らかにマシンの仮想化のレベルである PCやスレッド別レジスタは、VMPU側に置かれるContext Memory上にあるという点では、Intel Virtualization Technologyよりも徹底しているかもしれない

 で、そのスケジューリングであるが、1番簡単なのはTime Base Schedulingである。3つのスレッドがそれぞれ2:3:5の頻度でCPUを占有する場合、各スレッドから見ればCPUを常に使っている様に見えつつ、実際は細かくコンテクストスイッチングがなされているという方式で、これはまぁ普通である。ところがEmbeddedでも特にRealtime系の場合、応答時間が厳しく決まっているタイプの処理がある。こうしたケースではEvent Driven Processor式にタスクを割り当てることも可能だ。

ここでは100Cycleを最小単位としているが、当然これは変更可能である。といっても、あんまり短くしすぎるとキャッシュの利用効率が悪化するから、このあたりが順当な数字なのだろう Event Drivenのスレッドは(他のスレッドが動いている場合でも)イベントに応じて随時起動することが可能になっている。これはDedicated Hardware Engineとの連携の際に利用される事が多そうだ

 加えて、CPU占有中に待ちが生じた場合、そのままCPUを占有したまま待機することも、CPUをシステムに返却して待機することも可能になっている。普通ならType Bの方式が一般的なのだろうが、待ちの理由がイベント待ちだったりすると、Type Bの方式ではレスポンスが悪くなる恐れがあるわけで、そうした場合にはType Aを選ぶことになる。ただその場合、無駄に待機していると消費電力が減らないことになる。これを避けるため、Micro Sleepというメカニズムも用意されている。

 割り込みに関しては、全てのスレッドで受け取れるGlobal Interruptと、特定のスレッドでのみ処理できるLocal Interruptがあり、どちらもMaskableになっているあたり、割り込み処理が実に柔軟に出来ることがわかる。

Type A式の割り当てを実現するには、ちょっとOS側で細工をしてやらないと普通には難しいわけで、これをCPU側で実現してくれているだけでも非常に便利なのはわかる MicroSleep中はClockを止めることで消費電力を下げている 割り込み処理のハンドリングというのが特にRealtime系では面倒なのであって、ここまで柔軟な構成を取れるCPUはかなり珍しい

●今回発表の目的は?

 プレゼンテーションでは、実際にこのIPPを組み込んだ例として、携帯電話用SoCとHome AV用SoCの2つの例が示された。実際にこれらは2005年中に量産が開始されるということで、2005年末~2006年以降の自社製品には全面的に採用されてゆくものと見られる。

 ただここで疑問なのは、「なぜSPFで発表を行なったのか?」という素朴な疑問である。そこで、(丁度カフェラテ待ちの列に並んだ)中島氏に聞いてみたところ、やはりUniPhierを単に自社製品に使ってゆくだけではなく、外販も考えているとの話だった。同社はこれまであまりUniPhierのアーキテクチャの詳細は公開してこなかったが、外販のためにはまず製品を知ってもらう必要があるわけで、積極的に情報公開をしてゆくという方針に切り替わった模様だ。

 ただ今のところ外販はあくまでメディアプロセッサとしてのSoC用の構成のCPUであって、IPPのみをIPで販売するといった事は念頭にないそうで、このあたり顧客のニーズにあったSoC製品の展開を行なってゆくのか、それとも松下のニーズが最初にありきで仕様が決まり、これをあわよくば外販というスタンスなのか、引き続き注目してゆく必要がありそうだ。

携帯電話用とあって、やはり制御はARM AM34は同社の組み込み専用製品で、Linuxなどもポーティングされている32bit RISC CPU

□SPF2005のホームページ(英文)
http://www.instat.com/spf/05/
□関連記事
【5月18日】Spring Processor Forum 2005前日レポート
http://pc.watch.impress.co.jp/docs/2005/0518/spf01.htm
【2004年9月1日】松下、デジタル家電用の統合プラットフォーム「UniPhier」
-2005年よりAV機器や携帯電話で搭載へ(AV)
http://www.watch.impress.co.jp/av/docs/20040901/pana1.htm

(2005年5月19日)

[Reported by 大原雄介]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
お問い合わせに対して、個別にご回答はいたしません。

Copyright (c) 2005 Impress Corporation, an Impress Group company.All rights reserved.