古いブログはじめに2006年の初めに、Intelの新型モバイルCPUであるYonah(ヨナ)について、64bitに未対応であることをItaniumとAthlon64の関係やプログラムの観点まで視野を広げてあれこれ書いたものです。Expo』やらハードウェア系の大規模なイベントが続いて新年から楽しませてくれています。マーケティング上の変動とYonah関連が特に興味深かったので今日はYonahについて少し考えて見ます。Yonahはデュアルコアに特化して設計されているという点が最大の特徴と言えるでしょう。64などがありましたが、これらはシングルコアを設計するにあたりデュアル化を容易にする設計がなされただけで、もの自体はシングルコアを二つ積んでいるのと大差ないと考えて良いでしょう。Dは言うに及ばずです。ところが、Yonahは共有の二次キャッシュを搭載しています。キャッシュが共有されただけですが、これはデュアルコア専用の設計であり単純に二つCPUを積んだ場合よりも性能の向上が望めるのです。以前、私はデュアルCPUの説明に『夏休みの宿題も二人でやれば早く終わる』と例えました。キャッシュが共有するのはいわば脳みその中身が共有されるわけで、自分が二人いるようなものですからいかにも効率が高そうです。IntelではYonahをIntelの新ブランドであるCoreシリーズの第一号に置いたことからもその自信がうかがい知れます。ノート専用になっています。これはIntelの過去の読み違いが今になっても尾を引いているといえます。64bitに非対応なのが原因とみて間違いないでしょう。64bitに対応していないのか?次回はこの辺りをお話しましょう。2006年01月14日パソコン業界では単位が時間でなければ、基本的に数字が多い方がいい感じです。64bitってのは一回に処理できる量が64bitなんですが、単純に考えれば32bitの倍速くなるわけですね。CPUの処理部でbitという単位を使っている箇所が有名な箇所で3つあります。単純にバスの幅というよりも1回にチップセットに送ることができるビットです。このデータバスはPentiumの時に64bitに拡張されました。SIMMメモリを2枚単位で挿すのはこのためですって言っても最近の方はわからないですよね(笑)。1回に処理できるビット数です。たしかに今でもCPUのメイン演算部分は32bitのままですが、MMXという拡張命令の演算部分は64bitです。ちなみにSSEに至っては128bitです。MMXやSSEを使うようにプログラムしてあげれば現在のパソコンでも64bitや128bitで演算をさせることも可能です。マルチメディア系に特化した機能ではありますが、基本的に64bitでの演算が必要になるのはマルチメディア系のプログラムが多いので問題ないでしょう。3つめはメモリの管理の仕方です。メモリは1byteづつ管理されていて、1から順番に番号が振ってあってそれによってCPUからアクセスします。32bitで管理できるメモリの容量は2の32乗で4GBなのです。実は32bitのメモリアドレスレジスタしか持たないCPUでは4GB以上のメモリを管理できないのです。サーバー用ではすでに48bitに部分拡張していたり例外がありますが、デスクトップではここが64bitのCPUと32bitのCPUの最大の違いとして残っているのです。なんで3.だけが残ったのかということなんかをYonahから遠く離れたプログラミングの地でお会いしましょう。2006年01月15日なぜ、メモリアドレス空間の拡張が最後まで32bitに残ったのか。これは物理的に拡張を加えるだけでは意味がないからで、少なくともOSの変更が必要だからです。前回32bitで管理できるのは4GBまでとお話しましたが、逆を言えば4GB以上を管理するには32bit以上必要になるということです。このメモリの管理をする仕組みはOSももちろんのこと通常のアプリケーションも持っています。32bit用のOSではこのメモリを管理するために用意する容量も32bitしかないので4GBしか扱えません。CPUだけ64bit化しても意味がないわけです。身近な例でいえばAthlon64で32bitのOSを走らせた場合と同じですね。アプリケーションの場合はまた少し異なります。アプリケーションは直接メモリを管理するわけではなくOSを仲介するので仮にアプリケーションが32bitでもOSが64bitに対応していてうまいことやってくれれば、一つのアプリケーションの上限は4GBまでですが、複数のアプリケーションを使えば4GB以上のメモリを積んでいても効果がでてくるのです。64bit版で32bitのアプリケーションを走らせた場合です。1つのアプリケーションで4GB以上を使う場合はやはりアプリケーションも対応作業が必要になります。実際に64bitに対応させるという作業は、単純に考えれば32bitしか用意していない容量を64bit用意すればいいわけです。~んだ簡単じゃない、と侮るなかれ。この場所が100箇所程度ならともかく1万や10万、OSクラスともなると。気が遠くなる書き直し作業が待っているのです。今までもハードウェア(とドライバ)だけにとどまる進歩に比べて、ソフトを巻き込むハードウェアの移行には時間がかかる傾向があるようです。そんなこんなで、CPUの64bit化で最後まで障壁になったのがメモリアドレスレジスタだったのです。話が大きくそれてしまいましたが、明日あたりはなぜYonahは64bitに対応していないのかについて考えてみようと思います。2006年01月17日では、なぜYonahが64bitに対応していなかったのか?それは単純に64bitは次期早々という考えだったというのがIntelの公式な見解です。ここで終わっても面白くないのでもう少し考えて見ましょう。CPUをサーバー向けにリリースしています。ところがこのItaniumは既存のシステムやソフトウェアに対して互換性がありませんでした。前述の通り64bitを活用するためには、いずれにせよ対応したOSが必須ですから、32bit互換にしなくても大きな問題はないと考えたようです。実際のところOSさえ対応してくれれば、あとはOSが32bitのアプリケーションに対してはエミュレーションでも行えばユーザーには影響がほとんど出ません。現在のPentiumなどで使われているx86命令と呼ばれるアーキテクチャは10年くらい前に作られているものなので、この64bit化は最新のアーキテクチャに更新する絶好のチャンスと思ったに違いありません。同じ64bitのCPUですが、Athlon64のItaniumとの大きな違いは『32bitのOSがそのまま走る』という点と『x86命令がそのまま実行できる』という点です。Athlon64の場合は32bitのままでよければ既存のシステムやOSをそのまま利用することができますが、Itaniumは必ずOSの買い換えが必要となるのです。Intelにとって自作市場など微々たるものでメーカー製のパソコンがその主な収入源ですから、OSとCPUがセットでしか買うことができなくなってもそれほど売り上げに影響しません。逆にAthlonは自作市場メインなんでこの選択の違いは納得がいきますね。Proから、内部で別の命令に変換しているのでCPU内部でハードウェア的に行うかOSがソフトウェア的に行うかの違いがあるにしろ大きな違いはありません。64が支持を集め、Itaniumは事実上縮小されてメインストリームから外れることになったようです。少なくとも今後デスクトップユーザーの前に現れることはないと思われます。64の64bit以外の点も優れていたという点もあると思います。メモリコントローラを内蔵してメモリアクセスのレスポンスが向上したことが使い勝手に直結しているために支持されたのが一つでしょう。これはどうも時期もよかったようで、仮にWindowsVistaが登場していたら、グラボからのアクセスが重くなると今度は逆にCPUを余計に介す分オーバーヘッドが増えるので、グラフィック機能がゲーム以外であまり使われていない今の時期だからこそとも言えそうです。支持されたのは既存のOSを含めて完全上位互換という点だったに違いありません。これは過去にIntelがとった手法であり成功を収めている方法です。手法そのものに過去の実績があるので消費者としても信頼おけるわけです。(仮に64bitが普及しなくても32bitとして使えるわけですし)ただ、前述の通りOSが対応しなければその恩恵を得ることが出来ませんし、OSさえ対応すれば使い勝手は大差ないということもまた事実です。最大のポイントは実はAMDの広報戦略が成功したという点だったのではないかとも言えるのです。その逆もしかりで、Intelは少しタカビーになりすぎていてItaniumの広報をしっかりと行い価格や対象などをもっと強力にマーケティングすべきだったのかもしれません。それと、もう1つ本当の敗因は実はItanium自体がIntelが思っていたよりも性能が振るわなかった、というよりもクロックが上がるのに思ったよりも時間がかかってしまったのではないかと私は思います。前述の通り、Intaiumですと32bitのアプリケーションはOS上でエミュレーションを行うことになりますので、この分どうしても遅くなります。逆に64bit専用設計ですから64bitを走らせる場合には互換設計よりも高速になります。64より3年ほど先行して市場にでているわけです。最初は64bitの性能最重視で32bit対応なんて2の次、64bitの性能を必要とするサーバー用途から投入してこの3年の間に性能を上げてエミュレーション分の損失をカバーできるくらいになってコンシューマ向けにおろして勝負というのがIntelの構図だったのかもしれません。いずれにせよItaniumは商業的には失敗に終わったと言えるでしょう。このItaniumの計画が完全に頓挫していなかったのがIntelにとってさらに痛手になりました。CPUの設計は3-5年と言われているので、設計チームがライバル社のAthlon64の情報を知らないはずはありません。ここでYonahに32bit互換の64bit機能を搭載すればIntelは負けを認める事になる上に、Itaniumを死地に追いやることになるのは確実です。Yonahには、64bitに対応する必要がないと判断したのではなく、たとえ必要かも知れなくても乗せることができない時期に設計されてしまった悲劇のアーキテクチャかもしれないのです。Intelの開発者はYonahは、革新的なCPUであると口をそろえて言っていて、私もそれに異存はありません。次のMeromとConroeはこのYonahの強化版で革新的ではないですが、この64bitへの未対応という欠点がYonahをモバイルの枠に追いやってしまったというなのです。2006年01月19日Yonahが64bitに対応していないのでモバイル用になってしまったと書いたのでその辺をもう少し考えてみましょう。IntelはEM64TでPrescottから64bitに対応しています。仮にここでYonahを投入する場合にランク的にどの辺りに置くべきかを考えると頭が痛いことになります。Celeronですら64bit対応なのにそれ以下にするわけにもいきませんよね。モバイル用に開発されていたので、ここは潔くモバイル用としてリリースするのがベストと考えたのでしょう。実はそれだけではない気もします。いうのも、デスクトップ向けに64bitに対応したConroeが登場するのは今年の第3四半期と言われています。今の時期から半年程度のタイムラグがあるわけです。ところが、新プロセッサーはまだ製造に不慣れなので歩留まりが悪いことが多くそう大量に生産することができません。タイムラグにあたる半年ではいずれにせよ大量に生産することができないのです。ここでIntelにはただでさえ個数がすくないYonahが大量に必要な事情があります。実はAppleのMacは知名度ほど市場のしめる割合が大きくなく、市場全体の数%程度と言われているのですがそれでも高性能な速度で動くYonahを提供する必要があるので軽視はできないハズです。Macが最後までIntel系にならないのもYonahが64bitに対応していないのが原因と考えて良いでしょう。Mac、ましてや性能重視となれば今更32bitに戻ることはできないというのも納得のいく話です。あ、ちなみにMacについてはド素人で、iPodすら持ってない私ですが。いずれにせよIntelはYonahをデスクトップ向けに対応させるよりも、Conroeに注力する方を選んだようですが、Yonahの性能はすこぶる快調なようなので省スペース型を筆頭に需要は少ないくないハズです。Intelの動向は今後も目を離せないというわけですね。Vistaについてでも考えてみましょうか。