Intel XScale PXA255アプリケーションプロセッサ 4つの秘密を探る

このページをDeliciousに追加 このページをはてなブックマークに追加 このページをYahoo!ブックマークに追加

2003年3月9日(日)版

Intel XScale PXA255アプリケーションプロセッサ 4つの秘密を探る

2003年式 Pocket PC 2002 マシンを支える Intel新CPU


■ はじめに

 2003年3月、カシオと東芝が Pocket PC 2002 の新製品を発売するにあたって、そのプロセッサに選択したのが「Intel XScale PXA255アプリケーションプロセッサ 400MHz」だ。従来型のプロセッサ PXA250に比べて、実行速度を 20% 程度高速化でき、消費電力を 30% 低減できると言う。結果として、両社とも、従来機種に比べてバッテリ駆動時間が延びるとしている。

 ここでいくつか疑問が沸く。
 「CPUは、同じ 400MHzなのにどうして高速化できるのか?」
 「新型マシンのPocket PC 2002 OSは XScale に最適化された?」
 「CPUが変わっただけで、こんなにバッテリ駆動時間延びるのか?」
 などだ。

 一方で、この「PXA255」というプロセッサについての情報はほとんど掲載されていない。それもそのはず、当のIntel自身が「PXA255」というアプリケーションプロセッサを発表していないからだ。ここでは、世界中のホームページと、Intelの米国サイトの情報から、得られる情報を元に、この「PXA255」アプリケーションプロセッサにまつわる疑問を、簡単に紹介しよう。

■ 疑問1:新型マシンに搭載された Pocket PC 2002 は XScale最適化されている?

 昨年 2002年の Intel XSale PXA250アプリケーションプロセッサ が登場したときに、「Pocket PC と XScale の相性が悪い」というテーマが、多数のメディアで取り上げられた。PXA250は、同じ200MHzで比べると 206MHzの StrongARM SA-1110 や、200MHz の NECのMIPS系プロセッサ VR4131に比べて動作が遅いというのだ。WindowsCE FAN の掲示板でもこの話題は何度も議論された。また、GENIO e550X と GENIO e550G で比較したベンチマークでも、こうした傾向は感じられた。

(参考文献)
Pocket PC 2002 と XScale プロセッサは相性が悪いか (WindowsCE FAN)
東芝 GENIO e550G ロードテスト 第2回 ベンチマークで見る400MHz の威力 (WindowsCE FAN)

 こうした状況は、いずれマイクロソフト社によって改善されるだろうことは、長期的な見方としては正しいと思われるが、2003年2月まで「XScale最適化パッチ」なるものが配布されたことはない。考えてみれば、かつてIntelの32bitプロセッサ i80386(i386) が登場したときも、Windowsがこのネイティブモードを標準にしたのは、Windows95になってからだった(Windows2.0の時代にWindows/386 なるものがあったような気はするが)。i386の初登場は1986年頃で、Windows95の発売が1995年なので、およそ10年近く経っている。「過去の遺産」が大きすぎたデスクトップOSと比較するのは無意味としても、XScaleネイティブに最適化されたOSを仕上げるには、やはり2年〜3年という時間が必要と思われる。(つまり、WindowsCE OSが各種のCPUに最適化されるのに必要だった時間だ)

 こっそり最適化したという可能性はゼロではないが、こうしたエンドユーザーにとって有益な情報をマイクロソフトが隠す可能性はほとんどないのではないか。以上に挙げたのは、状況証拠的なものばかりだが、現時点では、WindowsCE FAN の見解としては、「Pocket PC 2002 は、XScale に最適化されていない」と思う。

■ 疑問2:Intel XScale PXA255アプリケーションプロセッサは存在しない?

 東芝や、カシオによって、その存在が公表されているにも関わらず、2003年3月時点では、プロセッサの開発元であるIntel社のホームページには「PXA255」なる型番そのものが掲載されていない。もっとも、ZDNetでは「PXA255」なる型番のプロセッサの存在を紹介している。(2003年1月30日 Intel、200MHzバスの「XScale PXA255」開発)。この記事によるとインテル社は、「PXA255」プロセッサを正式に発表する予定はないという。

 さらに詳しく調べてみると面白いことが分かる。この「PXA255」プロセッサは、Intelホームページ内では「Intel PXA250 C1 Stepping」と呼ばれているプロセッサのようなのだ。「Stepping」とは、すごく簡単に言えば、“辞書の版数”のようなものだ。版数が異なることで、全体としての中身や構成が大きく変わることはないが、Stepping が変わることで、誤植(バグ)が修正されたり、いくつかのあいまいな記述(不明確な仕様)が明確に記述されたりしている。実際には、こうしたソフトウェア的なことだけでなく、回路の一部や、半導体製造のプロセスが変更されることもある。

 「Intel PXA250」は、「A0 (初版の試作品)」から始まって、「B1」、「B2」、「C0 (C Stepping の試作品)」、「C1」と改良されてきたようだ。
 この中でも、「PXA250」の Version 3 である「C Stepping」の中でも「C1」は、それ以前のバージョンから、速度向上と、消費電力、発熱量等の点が大きく改善されている。こうした特徴を分かりやすく表現するために、「Intel PXA255」と一般的に呼ばれるようになったのではないかと推測される。

■ 秘密3:Intel PXA255はなぜ速い?

 今回東芝から登場した「GENIO e550C」「GENIO e550GD」では、約23%の高速化が歌われている。GENIO e550GD の公式ホームページをみると、その理由として「内部バスの高速化」が挙げられている。

 PXA255 には、この「内部バスの高速化」以外にも、WindowsCE FAN の掲示板で紹介されているようないくつかの改善点もある。もっとも、それらの機能がすべて有効になっているかどうかは、製造元の東芝のみぞ知る情報であり、今回は、そこまで踏み込んで調査していないことをあらかじめお断りしておく。

 逆に言えば、今後「PXA255」プロセッサを採用することで、現状の「GENIO e550GD」「GENIO e550C」よりも、さらにベンチマーク的に高速なマシンが登場する可能性もあるということだ。(もっとも、下記の変更点からみて、今回の新機種は頑張っていると思う。)
◎ 内部バスの高速化 100MHz ⇒ 200MHz に

 Intel PXA255を紹介した記事でよく見かけるのが、内部バスの高速化だ。従来 100MHz だったものを 200MHz に倍増させている。バスの速度が2倍になったからといって、全体の速度が2倍にならない。(ここでは長くなるので理由は割愛するが、そんなものだと思ってほしい。)

(参考文献)
http://developer.intel.com/design/pcn/Processors/D0102973.pdf (Intel)

◎ キャッシュの高速化 Write-back のバグが修正された

 PCの自作等に詳しい方ならご存知のことと思うが、データを格納するメモリと、データを処理するCPUでは、その動作速度が大きく違う。パソコンの例が分かりやすいと思うのだが、3.06GHz Pentium4 では、CPU自体は 3.06GHzという高い周波数で動くが、メモリは相変わらず、PC2700(DDR333)を使っても 333MHzでしか動かない。メモリはCPUの1/10の速度でしか動作していないわけだ。この速度差は、XScale PXA255はそれほど大きくないが、2倍も違えばかなり大きい差になる。(CPUがメモリに足を引っ張られるだけで、1/2の速度になってしまう。) こうした問題を解決するのが「キャッシュ」メモリという技術だ。CPUの中にメモリのデータの一部をコピーしておくことで、CPUはいつでも最高速度で動けるようになる。当然だが、CPU内にコピーしたデータは、CPUからメモリにデータを書き込むこともある。

 さらに、キャッシュメモリには、その仕組みによって2つの方法がある。仕組みを見ていただければ、すぐに「Write-back」の方が優れた方法であることがお分かりいただけるだろう。「Write-Thru」ではメモリから読み出すときだけキャッシュ機能が使える。メモリ内容を変更したら、その都度メモリに書き込みに行くことになる。一方で、「Write-Back」では、メモリから読み出すときはもちろん、CPUが変更したデータをメモリに書き込むときにも、このキャッシュ機能が利用できる。

方式メモリ→CPUCPU→メモリ
Write-Thru×
Write-Back

 「Intel PXA250」では、この「Write-Back」機能がサポートされていたが、条件によってバグが発生することがあり、Intelのリファレンスでは、「Write-Back」機能を「Disable(禁止)」して使うことが推奨されている。このバグが「C1 Stepping」で修正されたようだ。もっとも、マシンによってこの機能を有効にしているか、無効にしているかは、これだけの情報からはわからない。

(参考文献)
ftp://download.intel.com/design/pca/applicationsprocessors/specupdt/27853405.pdf (Intel)

◎ その他

 その他、リファレンスをみると、レアケースのバグも含めて、実に多くの項目が修正されている。それらの中には、回路側を修正することで、さらにPDAの高速化に寄与しそうな部分もあるのだが、分かりやすく説明できるだけの方法が思いつかないので割愛する。
(参考文献)
ftp://download.intel.com/design/pca/applicationsprocessors/specupdt/27853405.pdf (Intel)

■ 疑問4:Intel PXA255でバッテリ駆動時間が延びる?

 Intel PXA255 でパフォーマンスの向上よりも、もっと大きいのが消費電力の低減だ。PDAの中でも、CPUは、液晶パネル(バックライトを含む) や、PCカード利用の次にバッテリを食ってしまう。東芝「GENIO e550GD/C」や、カシオ「E-3000」では、全体として 30%近い向上に結びついてしまうのだからすごい。

◎ 全体的な動作電圧の低減

 従来、400MHz駆動が可能な PXA250プロセッサの場合、駆動電圧は 1.425V 〜1.65V(1.5V) だったのが、PXA255アプリケーションプロセッサでは、駆動電圧が 1.235V〜1.65V(1.3V)と 200mV改善された。電力と言うのは、駆動電圧が下げられれば下げられるほど、利用量が小さくなる。今回、この変更によって、CPU 単体ではかなりのバッテリ節約になっているようだ。

ターボモード周波数(MHz)VCC (V)
最小最大最小通常最大
PXA250 (Bステッピング)1004001.4251.51.65
PXA250 (C1ステッピング)1004001.2351.31.65

◎ 発熱量の低減

 直接消費電力の低減には直結しないが、301-400MHz利用時のプロセッサの最高温度が 70℃から、60℃に低減された。PDAにはファンが付いていたりしないので、消費電力の節約には大きな効果はいかもしれない。

■ まとめ

 以上が現時点で分かるIntel XScale PXA255アプリケーションプロセッサの全貌である。詳細な情報をお持ちの方は、ぜひ、情報ソースと共に、レポートいただければと思う。



Intel XScale PXA255アプリケーションプロセッサ 4つの秘密を探る

Reported by けいたん


Last-modified: Sun, 24 May 2009 23:45:30 JST (4100d)