塩田紳二のPDAレポート

次世代XScale「PXA270」発表



 このレポートでも取り上げた次期XScaleプロセッサ「PXA27x」シリーズ(Bulverde)が12日、発表された。ここではIDF Japan Spring 2004などでの取材をまじえ、このプロセッサについて解説する。

●単体プロセッサから、RAM/フラッシュ搭載型まで

 4月12日に発表されたのは、PXA270という単体のプロセッサで、主にPDAやスマートフォン高級機などに搭載されるもの。

 このシリーズには、フラッシュメモリやDRAMなどを載せたバージョンもある。これらは「フォールデッド・スタックド・チップ・スケール・パッケージ」と呼ばれ、CPUダイと別に、フラッシュメモリやSDRAMなどのメモリダイを積載したものを2つ折りにしたシートで結合するという方式がとられている。このようにすることで、それぞれを単体で利用した場合と比べフットプリントが60%程度小さくなるという。

 最近のPDAでは、高機能なものは様々なデバイスが装備されている関係で、基板も高密度なものが使われることがある。このような場合には、フラッシュROMやRAMを載せたチップは有利だ。すでにPXA255と同じコアを使うPXA260シリーズを載せたPocketPCなども登場している(東芝のGenio e400など)。しかし、PXA260シリーズは、16/32MBのフラッシュメモリ搭載品しかないために、日本語フォントなどを搭載する日本国内向けのPDA用としては、ちょっとフラッシュ容量が不足気味だ。その点を反省してか、PXA27xシリーズでは、32/64MBのフラッシュメモリを搭載している。

 クロック周波数は、最大624MHzだが、これは、PXA270のみ。PXA271~3については、最大クロック周波数は,表のようになる。

型番StrataFlashLow PowerSDRAM最大クロック
PXA270624MHz
PXA27132MB32MB416MHz
PXA27264MB520MHz
PXA27332MB416MHz

PXA271/272/273は、CPU部分とメモリ(フラッシュやRAM)を別々に作り、これを2つ折りにしたシートで接続するようになっている PXA271/272/273のパッケージサンプル。左端はベースとなるテープで、それにPXA270コアが乗り、テープを2つ折りにしてCPUコアの上にフラッシュメモリなどを積載したスタックパッケージが乗る

●どこが変わったのか?

 PXA270は、簡単にいえばPXA255の強化版である。すでにいくつものPDAに採用されたPXA255だが、PDAやスマートフォンの動向を見て強化された。

 アーキテクチャ関連の強化ポイントとしては、ワイヤレスMMXやワイヤレスSpeedStepがある。前者は、いわゆるSIMD演算を提供するもので、動画再生などのマルチメディア処理を高速化する。ワイヤレスSpeedStepは、従来のXScaleの省電力機能が強化され、負荷に応じたクロック/電源電圧の変更をサポートする。

 また、PXA270シリーズには256KBのスタティックRAMが内蔵されている。これはセキュリティ機能を実現するためのもので、プロセッサのみがこのRAMにアクセスすることができ、外部の機器が信号ピンを介してこのSRAMへアクセスすることはできない。

これに加えて、ワイヤレスTrustedモジュールと呼ばれるソフトウェア、改ざんを検出するTrusted Boot ROMなどが提供され、内部メモリに格納したパスワードなどのセキュリティ関連情報を保護できるようになっている。

 PXAシリーズは、バッテリ駆動される小型機器が主要なターゲットであり、さまざまな周辺回路やインターフェイスを内蔵している。今回は次のようなインターフェイスが追加された。

  • USBホスト
  • キーパッド(キーボードやジョグダイヤルなど)
  • メモリースティック
  • USIM(IMT-2000で定義されたSIMカードインターフェイス)
  • QuickCapture(デジタルカメラインターフェイス)

 PXA255のMMCインターフェイスは、4bit入出力が可能なSD/SDIO対応インターフェイスに強化され、USBクライアントインターフェイスはUSB-on-the-Goに対応した。

 「QuickCapture」はCMOSイメージセンサーを接続するためのインターフェイスで、PXA270は、そこからの画像データに対して、内蔵LCDコントローラ経由でのプレビューやキャプチャ機能などを持つ。つまり、CMOSセンサーさえ接続してやれば、カメラ機能を実現できるわけである。

 これらの強化点は、最近のPDAやスマートフォンならば装備しているような機能を実現するためのもの。従来のPXA255では汎用I/O(GPIO)と外部回路を使って実現していた機能を内蔵したことで、より低コストで製品を作ることを可能にしている。

 もっとも、XScaleのようなARMアーキテクチャのプロセッサでは、コア設計を購入して必要なインターフェイスなどを内蔵したプロセッサを作ることができる。なので、メーカーは必要なインターフェイスを集積したデバイスを作ることが可能だ。XScaleは、アーキテクチャ的にはARMだが、Intelはコア設計を外販することはなく、完成したデバイスとしてのみ販売する。このため、必要と考えられるインターフェイスは全て入れておく必要があるわけだ。

 逆に変わっていないのは、CPUのパイプラインやキャッシュメモリなどである。以前紹介したように、ワイヤレスMMXはARMプロセッサのコプロセッサ命令として定義されている。コアの命令アーキテクチャは、PXA255と同じくARM Version 5(ARM V5TE)である。このためARM命令の実行に関しては、クロックが同じなら、PXA270とPXA255では差がない。

 Intelの資料によれば、312MHzのコアクロックでワイヤレスMMXを使った場合、ワイヤレスMMXを使わない場合の520MHz動作に匹敵する。CPUの消費電力はクロックに比例して大きくなるため、最大クロックを下げることでシステムの消費電力を下げることが可能になるわけだ。

 ただこうしたことが可能なのは、どちらかというと携帯電話のような、仕様に対してギリギリの性能を持つデバイスで採用するような場合だ。PDAでは、高性能アプリケーションや大量データの扱いなど、まだまだ性能的には不足気味だ。だから、低価格を狙った製品でもなければクロック周波数を落とすようなことはなく、各社とも最高クロックで動作させることがほとんどである。

 では、ワイヤレスMMXがまったく不要なのかというとそうでもなく、最近のPDAなどがほとんど装備しているMP3などの音楽再生やビデオの再生といった機能についてみれば、かなり有効な強化ポイントである。

PXA270シリーズのコアブロックダイアグラム。PXA255シリーズに比べてインターフェイス類が増えており、さらに256KBのSRAMを内部に持つ Intelの資料によれば、ワイヤレスMMXを使うことで、312MHzのPXA270は、使わない場合の520MHzのXscaleプロセッサ相当の性能を発揮できるという

●ワイヤレスSpeedStep

 PXA270シリーズは、低消費電力にかなり注力したデバイスになっている。というのも、ARMプロセッサ全体が低消費電力化の傾向にあり、PDAやスマートフォンを作る側から見れば、よりバッテリ寿命を長くできるデバイスが「いいデバイス」であるという評価になるからだ。

 その一方でPDA、スマートデバイス用のプロセッサには、より高い処理性能が望まれている。動画再生など、負荷の重い処理を行なう必要が出てきたからである。逆にいうと、CPUを高性能化しなければならないので、より低消費電力化が必要となったともいえる。

ワイヤレス SpeedStepは、PXA270に内蔵された省電力のための機構とIntelの提供するソフトウェアで実現される。プロファイルモジュールでCPU使用率などを測定し、ポリシ・マネージャが負荷状態に応じて設定された動作を選択する

 PXA270には、ワイヤレスSpeedStepと呼ばれる、消費電力を削減する機能がある。これはCPUの動作モード(クロック)と駆動電圧を動的に変更することで、低消費電力とする機構である。ワイヤレスSpeedStepは、PXA270シリーズが持つ機能と、Intelが提供する「Power Manager」というソフトウェアモジュールによって実現される。

 低消費電力化は、動作時のクロックと電源電圧を制御することと、アイドル時や停止時の消費電力を下げることの2つで行なわれる。また、ワイヤレスMMXを併用することで、必要最大クロック数を下げることが可能になるため、それによる低消費電力化の寄与分もある。

 PXA720は、動作周波数を変える「クロックモード」、CPUを止めた状態での消費電力に関わる「パワーモード」があり、さらにクロック周波数をクロックモードとは別に段階的に変更する方法や、メモリバスの速度に関するモードがある。

 クロックモードには「Turbo」、「Half Turbo」、「Run」、「13M」の4つのモードがある。これらはCPUの動作クロック(コアクロック)を決めるもので、RunモードとTurboモードのクロック周波数は、それぞれ専用のレジスタに設定した値で決まる。

 Half Turboモードとは、Turboモードの半分のクロック周波数とするモードで、その動作周波数はTurboモードの設定から自動的に決まる。Runモードは、あまり負荷が高くない場合に対応するモードで、この動作周波数もレジスタの設定によって決まる。PXA270は、104~624MHzの間でクロックを変更でき、たとえば、Turboモードに624MHzを設定し、Runモードに208MHzを設定するといった使い方をする。

 このモードとは別に上記の範囲内でクロックを段階的に変更することも可能だ。ただしこの場合には、モード変更よりもクロック関連レジスタ変更などの手順が増える。OSなどによって、あまり細かくクロック周波数の制御を行なわないような場合には、Turbo/Half Turbo/Runモードの3段階のみとすることで、クロック周波数を簡単に変更できるようになる。

 最も消費電力が少ない動作モードとして、13MHzでクロックを動かす13Mモードも用意されている。これは、低消費電力としたいが、処理が続いていてCPUを止めることができないような場合に利用する。

 クロックモードがCPU動作中のモードなら、パワーモードはCPUを止めたときのモードである。なぜ停止状態がいくつもあるのかというと、待機している状態に応じて消費電力を減らすためである。ただし、低消費電力であればあるほど、通常状態(Normalモード)への復帰に必要な処理が増え、時間がかかる。

 パワーモードには、通常の実行状態である「Normal」モードのほかに「Idle」、「Deep-Idle」、「Standby」、「Sleep」、「Deep Sleep」の6段階ある。このうちNormalモードのときに、前記のクロックモードが有効になる。またDeep-Idleモードだけは、クロックモードの13Mモードから遷移するようになっている。

【PXA270シリーズパワーモードと消費電力】 *1:最大クロック520MHzの場合
*2:括弧内は、LCDコントローラーがオフの場合
モード名状態消費電力
Normal通常の実行状態(消費電力は、クロックモードやクロック周波数に依存)44.2~747mW (*1)
Idleすぐに復帰できる停止状態(消費電力はクロック周波数に依存)64~222mW
Deep-Idle 13Mモードと組み合わせて使うIdleモード 15.4(8.5)mW (*2)
StandbyCPUなどの状態を保持する低消費電力状態 1.7224mW
Sleep CPUなどの状態を保持しないモード 0.1630mW
Deep-SleepCPU状態を保持せず、ほとんどの回路の電源を切ったモード 0.1014mW

 各モードへ入るにはCPUが対応する命令を実行するが、Deep Sleepモードの場合には、その他のパワーモードからバッテリ異常などの信号を受けても移行する。Idel/Deep-Idle/Standbyの場合には、CPUの内部状態が保持されているため、割り込み信号でNormalモードへ復帰できる。これに対してSleep/Deep-Sleepの場合には、限られた外部イベントの発生でのみ復帰する。この場合にはCPUの内部状態も保持されておらず、専用の起動処理を行なわねばならないため、他のモードよりも復帰に時間が必要となる。

 PDAなどでは、電源スイッチで電源のON/OFFをしているように見えるが、実際にはメモリをバックアップしておき、CPUを停止状態にして、周辺回路の電源を落としているだけということが多い。このようにすることで、タイマーでCPUを起動させてアラーム関連の処理を行なったり、ユーザーが予定表ボタンを押したときに実行を再開してプログラムを実行するといったことが可能になる。

 また、バッテリ交換時やバッテリ容量が動作できないほど低下してしまったときには、最も消費電力の少ないモードで待機し、なるべくなら、完全な初期化(コールドスタート)をしないで再開できるようにする。というわけで、最近のPDAでは、CPUまわりの電源を完全に落としてしまうことはなく、僅かながらも電力を供給し、使い勝手を向上させているわけだ。

 Intelの提供するPower Managerは、OSやアプリケーションからの情報を元に、これらの複雑なモードを制御する。アプリケーションからの負荷情報があれば、負荷に応じてクロックを動的に変更させることも可能である。

 PXA270自身には電源電圧を変更する機能はないので、外部の電源コントローラを使って動作クロックやパワーモードに応じた設定を行なう。コントローラのドライバを用意することで、Power Managerがクロックモードなどの変更に応じて電源電圧などを制御することが可能になる。こうした制御には、PXA270シリーズが持つI2Cインターフェイスが使われることが多い。

●2700G マルチメディア・アクセラレータ

 PXA270シリーズは、Intelが提供する「2700G マルチメディア・アクセラレータ」を利用することができる。

 このデバイスは、Marathonというコードネームで呼ばれていたもので、PXA270シリーズと同時に発表された。Intelによれば、電気的には、PXA270以前のXScaleコアと2700Gを組み合わせることは可能だが、2700G用に提供するソフトウェアモジュールにワイヤレスMMXを使っているために、実際にはPXA270シリーズ専用となってしまうという。

 2700Gは、2D/3Dのアクセラレータ機能とビデオの再生機能を持つグラフィックコントローラで、2つのディスプレイを接続することが可能。これは、液晶とは別にCRT出力などを持つ場合を想定しているという。

 この2700Gには、内蔵フレームバッファの容量により「2700G5」と「2700G3」の2種類がある。容量はそれぞれ704KB(G5)と384KB(G3)で、2700G5は内蔵フレームバッファでVGA(640×480ドット)/16bitカラー表示が可能。外部にメモリを接続してフレームバッファとすることもでき、この場合には、どちらも最大SXGA(1,280×1,024ドット)まで対応できる。

 また、PXA270が内蔵するLCDコントローラの出力を使うことも可能で、内蔵したLCDスイッチにより、2つのLCDパネル出力に対して2700GグラフィックエンジンとPXA270シリーズLCDコントローラ出力を切り替えることができる。たとえば、プレゼンテーション画像などをCRTに表示する場合には、2700Gのグラフィックアクセラレータを使い、PDAのLCDには、PXA270の内蔵LCDコントローラからの画像を表示するといった使い方や、グラフィック対応ゲームのときだけ、2700Gの機能を使うといったことが可能になる。

 現在のPDAやスマートフォンでは、必ずしも常に3Dグラフィックスなどの機能は必要なく、また、あまり解像度が高くないQVGA~VGA程度であれば、内蔵LCDコントローラを使っても問題がないからである。もちろん、GUIや画像表示に2700Gのグラフィックアクセラレーション機能を使えば高速化が期待できるが、その分消費電力も大きくなってしまう。

 2700Gが持つグラフィックエンジンは、75MHzで動作し、32bit精度を持つ。

 2Dグラフィックスでは、クリッピングやラスタオペレーション(ROP2/3/4)、アルファ・ブレンディング、アンチエイリアスなどの機能があり、16/18/24bitカラーがサポートされている。2Dフィルレートは15,000Mピクセル/sec。

 3Dでは、フラット/グーローシェーディングが可能で、32bitのZバッファ、テクスチャ(DirectX互換の2/4bitテクスチャ圧縮対応)などがサポートされている。3D性能は、944,000トライアングル/secである。

 さらにメディア対応としてMPEG-2/MPEG-4の再生支援機能がある。オーバーレイ表示が可能で、ハードウェアによる逆DCT演算、色空間変換、動き補償、Windows Media Video 9.0アクセラレーションなどを持ち、ソースデータの最大幅は768ドットまで、表示に関してはSXGAまでのハードウェアスケーリングが可能。性能としては、MPEG-2の720×480ドットで30fps、MPEG-4の640×480ドットで30fpsとなっている。

 PCのグラフィックエンジンからみれば、たいしたことはないかもしれないが、PDAやスマートフォンクラスならば、かなりのハイスペック、いやオーバースペックといってもいいかもしれない。

2700Gのブロックダイアグラム。表示出力(LCD Out)が2つあり、2700Gのディスプレイ出力とPXA270シリーズのLCDコントローラーからの出力をLCD Switchで切り替えて出力できる(2700G Multimedia Accelerator Datasheetより転載) PXA270シリーズと2700Gの接続例。LCD出力の片方にDACを接続することでRGB出力としてCRT表示が可能になる(2700G Multimedia Accelerator Datasheetより転載)
PXA270と2700Gを採用したスマートフォンのリファレンスデザインであるCarbonado。VGA液晶を持ち、GSM/GPRS携帯電話機能を統合してある Carbonadoのブロックダイアグラム。128MBのメインメモリに64MBのフラッシュメモリ、さらにグラフィックス用のメモリを2700Gに接続してある(2700G Multimedia Accelerator Reference System Product Briefより転載)

●PXA2700+2700Gの使い道

 日本に限っていえば、PDA系でのPXA270シリーズの採用はある程度のインパクトがあるだろう。USBのホストになれるばかりか、CMOSセンサーを接続するだけでカメラを内蔵でき、さらにグラフィック機能が強化される。シャープのザウルスSL700/800シリーズは、XScaleを採用していながら、外付けのグラフィックコントローラー(ATIのIMAGION 100)を使っている。このクラスなら、PXA270+2700Gといった組合せがあってもおかしくはない。メモリースティックのインターフェイスが追加されたのは、ソニーのPDAを意識したようにも見える。

 2700Gは高性能なPDAでの利用も考えられるが、もう1つの用途は、MicrosoftのMCX(Media Center Extender)やWindows Portable Media Centerなどだろう。PXA270シリーズと組合せることで、高性能なメディアプレーヤーを作ることが可能になる。PDAや携帯電話でも動画再生といった用途はあるが、世界的に見れば日本以外ではここまで高性能なPDAやスマートフォンの機能は、ほとんど必要ない状態である。

 ネットワークに接続して動画などの再生を行なうMCXや携帯型のメディアプレーヤーであるWindows Portable Media Centerには、こうした機能が必須だ。特にバッテリ駆動されるWindows Portable Media Centerは、低消費電力でメディア性能に優れたPXA270にうってつけのターゲットである。

 スマートフォンは、まだ機種も少なく、PDAもこのところは停滞気味である。となると、新たな市場を見つける必要がある。つまりMicrosoftの戦略に合わせ、ネットワークプレーヤーや携帯型プレーヤーにも注力していくというのが、Intelの新たな戦略なのではないだろうか。

□関連記事
【4月12日】インテル、最新XScaleプロセッサ「PXA27x」シリーズ
http://pc.watch.impress.co.jp/docs/2004/0412/intel.htm
【2003年9月19日】【IDF2003】似て非なる、BulverdeとHandheld Engine
http://pc.watch.impress.co.jp/docs/2003/0919/idf06.htm
【2003年9月18日】【IDF2003】次世代XScaleプロセッサ「Bulverde」を正式発表
http://pc.watch.impress.co.jp/docs/2003/0918/idf05.htm
【2003年8月5日】【塩田】次世代XScaleプロセッサ、Bulverdeとは?
http://pc.watch.impress.co.jp/docs/2003/0805/pda23.htm
【2002年9月11日】Intel、携帯/PDA向けのXScale用拡張命令「ワイヤレスMMX」
http://pc.watch.impress.co.jp/docs/2002/0911/intel.htm

バックナンバー

(2004年4月21日)

[Text by 塩田紳二]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2004 Impress Corporation All rights reserved.