【レポート】
Yamashita氏のレポート、あるいは海上氏の解説などにもある通り、Appleは2007年末までにIntel CPUへの移行を完全に果たす事を明らかにした。これに関する政治的な背景などを報じるのは筆者の任ではないし、そもそもそこまで細かい話は「知らない」から書きようがないわけだが、色々面白い話があちこちから伝わってきたので、これをベースに少し考察をしてみたいと思う。
WWDC会場にはさまざまな場所にたくさんのPentium 4搭載Macintoshが並べられており(外観はG5 Macそっくりだそうで)写真は不可ながら自由に操作可能になっていたらしい。実際会場1Fの特設ラボでは、自分の持っているソースコードやMac BinaryがPentium 4 Macで動作するかどうかの検証を自由に行えたそうで、試した人の話では案外に互換性は高いとの事。もっとも、リコンパイルしても素直に動かないケースは当然あるようで、(特にドライバなど)簡単に移行できないソフトもあるようだ。ちなみに性能はというと、G5と殆ど遜色がないなんて感想も伝わってくるほど高速だったらしい。実は、「何でG5とPentium 4が同等の速度で動けるのか?」という話が別にある。例えばちょっと古い話だが、1.8GHz動作のPowerPC 970のSPECint2000 / SPECfp2000がそれぞれ937 / 1051とされている。今ではPowerPC 970の動作速度は2.7GHzに達しているので、とりあえず仮に1.5倍して1406 / 1577と仮定しておこう。一方Pentium 4の性能は、3.6GHzの場合それぞれ1718 / 1898という数字がSPECで公開されているから、この数字だけ見ていれば明らかにPentium 4が上である。にもかかわらず、アプリケーション性能を比較するとしばしばG5の方が高速だった、という事はMacユーザーはご存知の話。これは、x86のコード密度(Code Density)が低いことに起因する。こちらの特集、あるいはかつてコラムでもちょっと触れたが、x86の欠点は少ない汎用レジスタと、これに起因する3オペランド命令の無さであって、この結果煩雑にスタックを利用して汎用レジスタを使いまわす処理が入り、これが命令の多さ、つまりコード密度の低さに繋がっているわけだ。PowerPCを含む一般的なRISCプロセッサの命令と比較し、x86は同じ処理を行うために必要な命令数が数十パーセント以上多い事は良く知られている話で、これが性能低下に繋がる最大の理由である。
このあたりはAMD64なりEM64TのNative Modeを使うことで大幅に緩和される、というのは特集の中で実際にアセンブルソースを比較して確認した通りで、汎用レジスタが大幅に増えたのがその理由であるが、逆にG5とPentium 4が同等ということは、Pentium 4はEM64Tで動作している可能性が非常に高いということだ。
実際、PowerMac G5は64bitプロセッサである上、TigerことMac OS Xは64bitに対応している。従って、Pentium 4もEM64Tモードで動作していると考えるのが自然だし、事実特設ラボで試したところ、起動ログの中にEM64T用のコードを呼んでいる個所が発見されたという報告もあるほどで、64bitモードで動作していることは間違いないだろう。もっとも、32bitで動作しないのか? というと、これはまた別の問題があるわけだが。
さてここで気になるのはRosettaである。要するにPentium 4上でPowerPCのアプリケーションを実行するためのTranslatorだが、Yamashita氏のレポートによれば「エミュレーション」(続報となるこちらの記事では「ダイナミック・バイナリ・トランスレーション」と紹介)、海上氏の記事では「ジャスト・イン・タイムのバイナリ変換機能」となっており、同じ事を指しているような、微妙に違うような、ちょっと判断が難しいものである。この辺りの詳細は海上氏の記事を読んでいただくのが早いが、PowerPCプロセッサのエミュレータなのか、それとも(Transmetaの)CMSの様な動きをするのか、はっきり断言が出来ない。
実はこのRosetta、Transitive Corporationの提供するQuickTransの機能をベースにしている、という話が出ている。これはThe Mercury Newsが報じた(読者登録が必要)もので、同社のCEOがこれを認めている。これが事実なら、どちらかといえばCPUのエミュレーションというよりは、CMSに近い動作になるわけだ。Front-End Decoderと呼ばれる部分がPowerPC用のコードを解釈し、これをOptimizing Kernelという部分で最適化した後、Code Generatorでx86用(というかEM64T用)のコードを出力するという形でPentium 4に処理を行わせるという仕組みである。ちなみにMac OS X上では、これはエミュレーションドライバとしてシステムに認識されているらしい。
ここでまた、先ほどの問題に戻るわけだ。つまり32bitか、64bitかという話である。海上氏の記事中にもある通り、Apple Developer Connectionに掲載されたUniversal Binary Programming Guidelinesには"The term x86 is a generic term used throughout this book to refer to the class of microprocessors manufactured by Intel. This book uses the term x86 as a synonym for IA-32 (Intel Architecture 32-bit)."という記載があるほどで、これを読めばx86のプロセッサでも動作するように読めるが、その一方で全てのIA-32プロセッサで動作するとも書かれてはいない。技術的な面を見ると、
という話がある。つまりどっちでもありうるわけだ。
また歴史的な経緯を考えると、Appleはここ数年に渡ってIntel上での開発を行ってきたとしており、少なくとも開発当初にはAMD64 / EM64Tの環境は無かったと考えても間違いではない。勿論AMDは早い時期からAMD64のエミュレータを提供してきたし、仮にAppleが強く望めばAMDからOpteronのPreSiliconの提供を受ける事は可能だっただろうと推察されるから、当初から64bit化することは不可能ではなかっただろうが、あまり現実性はない。少なくとも開発当初は32bitと考えるのが自然だろう。
では、最終的な製品はどうなるか? という話だが、これもちょっと混沌としている。性能あたりの消費電力がPowerPC 970の問題だったとすれば、Pentium 4 / Pentium Dを使ったシステムというのはもっと問題がある訳で、短期的にデスクトップ向けに提供される事はあっても、長期的に見ればPentium Mのアーキテクチャに切り替わる事は間違いない。ところがこのPentium MではEM64Tが当分提供されない事になっている。
現在のIntelのPentium Mのロードマップでは、来年Q1にYonah(90nm / Dual Core)がまずリリースされ、次いでQ2にはSossaman(65nm / Dual Core)がリリースされる予定だ。ただこのSossaman、最初に提供されるのはモバイル向けではなく、組み込み向けとなるようで、モバイルにはQ3以降になりそうな感じだ。で、このYonahとSossaman、どちらもEM64Tをサポートしない。しない、というよりも出来ないという方が正確だろう。というのは、Pentium Mのアーキテクチャが64bitを考慮していないからだ。
AMDはK8アーキテクチャで、全てのALUやFPUを64bit幅に素直に拡張する、という(ある意味力技的な)アプローチを取ったが、IntelはNetBurst ArchitectureでALUを16bit幅→32bit幅にした上で、64bit演算は2回の32bit演算として倍速ALUを廻す事で対応している。これはスマートであるが、同じ事をPentium Mで行ったら間違いなく消費電力が激増する。従って、EM64T対応となるMelomのアプローチとしては、K8同様に愚直にALUを64bitに増やすしか無いと思うのだが、これをやるとなるとレイアウト変更位では済まない、殆ど設計のやり直しに近い大作業になる。既にIntelはこの作業に掛かっているのは間違いないが、仮にDothanのリリース(2004年5月)直後から開始していたとしても2年位は軽く掛かる内容だから、設計が終るのは早くて2006年Q2、現実問題として製品が出荷されるのは2007年以降になるだろう。つまり、AppleがIntel製品を搭載したMacintoshを出荷開始する時点では、EM64T対応のPentium Mは間に合わない事になる。従って、Rosettaは32bit版と64bit版の両方が無いとおかしいことになるだろう。
察するに、XserveはEM64Tベースのものとなり、プロセッサも(当初は)XeonあるいはPentium Dベースになるのだろうし、ハイエンドのMac DesktopはPentium Dあたりで64bitなのだろうが、iMacやPowerBook / iBookはYonahベースの32bitモードで動く、という感じになりそうだ。この辺りが完全にMelomで置き換わり、Top to Bottomで64bit化されるのが、2007年末なのではないか、と言うのが筆者の分析である。
![]() |
【レポート】ついにIntelと結ばれたApple - スティーブ・ジョブズCEO基調講演 [2005/6/8] |
![]() |
Apple、MacintoshにIntel製CPUを採用 - 2007年中に移行を完了 [2005/6/7] |
![]() |
【レポート】性能を損なわないエミュレーション技術、「QuickTransit」のインパクト [2004/9/30] |
![]() |
【特集】OS進化論:x86版Darwin登場 ~Mac OS Xのコアがx86で動く~ [2001/5/23] |
| ガラパゴス諸島の美しさをストリートビューで - Google Official Blog [23:44 5/25] |
| 【レビュー】天板がシースルーだと何が便利か - スリムでかっこいい日本HPの複合機「HP ENVY 120」を試す [23:43 5/25] |
| 【レビュー】タブグループ機能をさらに使いやすくするFirefoxアドオン「Pano」 [22:39 5/25] |
| ドスパラ、デスクトップPC/ノートPCの全モデルに「ATOK」をバンドル [19:17 5/25] |
| サンワダイレクト、自由な位置でタブレットを立てておける三脚型スタンド [19:15 5/25] |
|
ファイブスター物語×ナタリー、グッズ予約の締め切り迫る [15:20 5/26] ホビー |
|
お金持ちは偉い!? 母国の3大偉人を日本在住の外国人に聞いてみた! [15:00 5/26] 旅行 |
|
Ryota-Hの圧倒的描き込みファンタジー、ガムで連載開始 [14:57 5/26] ホビー |
|
[注目映画紹介]亀梨主演 33人の「俺」が出てくる三木聡監督らしい不条理作品 [14:47 5/26] ホビー |
|
[ピーチ・ジョン]夏向けブラが進化 パッド入りでバストメイクも可能に [14:16 5/26] エンタメ |