あおしまの日記

あおしまさんの日記らしいです。個人的に興味がある事を時々書きます。スマートウォッチPebble日本語パックを作成、公開しています。

Yet another PowerPCを捨てた訳

http://japan.cnet.com/special/story/0,2000056049,20395302,00.htm

こんなインタビューだけで納得したら事を見誤るのではないだろうか?と思う。

  • AppleMotorola, IBMのプロセッサの設計に対する3社の思惑の違いによる方針迷走。
  • G3/G4とは何だったのか?
  • CPUだけではないコスト増への対処
  • OSのRISC移植、その前に新OS開発の頓挫
  • Jobsの復帰と設計思想の変化
  • 忘れ去られた規格の再登板による、Mac内部の汎用部品化
  • MacOS ROMのハードウェア非依存化
  • そしてIntelCPUへ

これらを全て考えて、初めて全体像が浮かんで来ると思う。
とりあえずマシン屋側の視点で頭の中にあった情報を降ろしただけのメモを出しておきます。裏取りが面倒なので事実関係がいい加減な所があります。ですから突っ込みは大歓迎。reblogは上記の理由からやめといたほうがいいでしょう。



AppleMotorola, IBMのプロセッサの設計に対する3社の思惑の違いによる方針迷走。

これは、マルチメディア重視のAppleが、マルチメディア向けDSPを実装して欲しいという意見に、乗ったMotorolaと、乗らなかった IBMという構図がある。Motorolaが乗った理由は勝手な想像だがAppleにすがるより活路がなかったからではないだろうか?互換機 StarMaxもポシャり、その裏で似た様な機械の計画(後述)も頓挫していたこともあり、結局Appleしか大口顧客が居ない事になってしまった。この機能(Altivecと言った)を実装したプロセッサの事を、AppleはただのPPC6xxに対しGeneration 3と呼んでプロモートした。ちなみにG1とG2が何を指しているのかはわからない。68k/PPC6xx/PPC7xx+Altivecという順なのか、 PPC601/604/7xx+Altivecという順なのか?IBMが乗らなかった理由は、Powerプロセッサ、RS/6000などに使用する場合に無駄な機能であった事と、この機能が混載されたダイでのプロセッサ高速化がのぞめなかった事がある。IBMとしては国防総省を含む顧客に対しハイパフォーマンスコンピューターを提供する責務があり、そんな機械にDSPなんて必要はなく、プロセッサスピードを損なう無駄でしかなかった。

G3/G4とは何だったのか?

プロモーション上のバズワードであるG3/G4というワードを、ワードだけではなくファンクション側から考えてみると、上に書いた理由がわかる。 G3は先のDSP混載とマルチメディア対応。これが型番変わってPPC7xxシリーズとなった。G4はそこからの退避とプロセッサ高速化であり、 PPC7xxxシリーズへの移行である。つまりG3の施策は外れ、高速かつ省電力な別のラインナップのプロセッサシリーズへの移行と、それに付随する設計変更が同時に行われた事になる。付随する設計変更とは、過去の規格の再利用によるトータルコスト削減策である。(後述)

CPUだけではないコスト増への対処

Pentium+Windows95以降のIntelチップセットとその互換機の爆発的増産により、インターフェース回りやその制御用のプロセッサ、またはそれに連なる規格の標準化と低廉化が一気に進んだ。中でもPCIバスとIDEインターフェースはいちばんコストに効いた。そんな環境下で自社 ASICを開発、生産し、自社専用バスの管理、発展を進めようにも、それはコスト競争力がない厳しい話。結局、最初はIDEディスクの採用から始まり、 PCIバスの採用、PCIからブリッジで変換しうる規格への再実装が着々と行われる事で、使用部材の汎用化やPCとの共通化によるコスト低減が目立たない様に行われた。最終的に残ったのは自社専用規格であったMacOS ROMとADBバスとフロッピーバスであった。MacOS ROMは少し早く、OS8.6から仮想化という形でハードウェア非依存化する。iMac RevA/Bに搭載されたADBとフロッピーバスも、OS9.2.1でのドライバとOFからの対応コードの削除という形で、ハードはあるのに使えないバスとなって終わりを迎える。

OSのRISC移植、その前に新OS開発の頓挫

Appleは従来の設計を引き継がない全く新しいOS、コードネームCopelandを模索して居た時期がありました。しかし、計画は社内の混乱もあり1997年に頓挫。そうは言っても68k以来のOSを引きずるのもそろそろまずく、次世代OSが無いと面子が立たない、そんな状況下にありました。結局当座の延長としてPowerPCに最適化したSystem8をリリースしつつ、別のOSを持って来て充当する事になる。現行のOS10に当たる物は、 BSDベースのシステム、システム構成、UI、砂時計、開発言語などから考えて、NeXTSTEPそのものと言ってもいいでしょう。つまりは68k上で動くBSDのシステムを、PowerPC上で動くMachカーネル上で動かすよう移植したという事になる。これは数年遅れで行われた68kからPPCへの移植とも言える。

Jobsの復帰と設計思想の変化

Jobs復帰によりiMacが出たのは外見だけの話であり、会社的には互換機施策の終了、OS的にはNeXTSTEPの移植による次世代OSなる物の生み出し、ハードウェアとしてはAT互換機の生産が出来る会社への製造委託などが進められた。安価で製造可能な委託先が現れたのも、内部的には部材の PCとの共通化(汎用部品を多く採用する事)を目標にしたソフトランディング策によるところが大きい。G3のあとにG4というシリーズが出たのはIBMへの再回帰とプロセッサの高速化が理由ですが、それ以外にも理由はありました。G4は、CPUとブリッジチップ以外は、ハードウェア的にはAT互換機とほぼ同じと言えるまでになっていました。

忘れ去られた規格の再登板による、Mac内部の汎用部品化

その昔、PowerPCの普及ならびに、Windows/MacOSを含む多くのOSが動く事を目的として提唱された規格として、PRePという規格が存在しました。当時はTaligentなんてOSも企画されましたがそれも動かそうという用意があった模様です。その後OpenFirmwareを採用し、よりMac寄りになったCHRPなる規格も現れましたが、NeXTとCanon合弁会社が設計した機械をJCCという会社が買ってえらい事になったりしました。FreeBSDPowerPC上で動く様に移植した物で動いてましたが、あの移植はどなたがしたのでしょう?そういえばDELLだった人のAkiaという会社もありましたなあ。スイスのQuixという会社も機能拡張だけでプラットフォーム差異を吸収する物を作ってしまいもしました。これもあれも、JobsのMacOS外部供給不可の方針により互換機とともに露と消えることに。
結局PRePプラットフォームでは、VxWorks,AIX,WindowsNTの一部が動くに留まりました。この規格は非常に単純な構造でして、有り体に言えばAT互換機のPCIバスにPCI-PPCブリッジを付け、その先にPowerPCプロセッサを付けるような規格でした。首から上は PowerPCだが、首から下の体や手足まではAT互換機のようなものです。この安直な設計が橋渡しとなり、PowerPCプロセッサ向けLinuxカーネルの移植は、Intelチップセットを持つPReP機の上で行われました。(エンディアンの事さえ決まれば、あとは脳味噌の事さえ考えていれば手足の事はあまり心配せずとも移植が出来るという点は非常にオーバーヘッドが少なくて済む。)
G4マシンのうち、ADBやフロッピーが載ったモデルまでは、Apple自社ASICが載っていましたが、その後全てがPCIバスを中心とした AT互換機と同規格に集約。これ以降はPRePベースの構成に。つまりAT互換機とほとんど同じ構成にCPUだけPowerPCという形。この事により、ハードウェアはほとんどがAT互換機との共通化を果たし、共通部材の仕様によるコスト削減と、PCIバスからの変換によって容易に付加する事が出来る機能とその集約による設計が行われていく事となる。その証拠に、必ずPowerPC-PCIブリッジチップが載っているはず。この事で、汎用部品を使う事でコストダウンが出来、また製造委託先として台湾のメーカーを使うことで、今日の「安価なMac」が生まれる事となる。

MacOS ROMのハードウェア非依存化

最後に残った歴史を引きずるハードウェアは、MacBIOSとも言える、Toolbox関数を含んだMacOS ROMだった。MacOSの根幹をなすROMは、全てのプログラムがこれがある事を前提としていたので、いきなりの廃止は出来なかった。しかし、これがハードウェア上にあることで、設計がスペシャルになり、その為の部材が必要になる。汎用部品化にいちばん遠い存在でもあった。結局、MacOS8.6の時にハードウェア上のROMを読まずに、仮想化したソフトウェアROMを読む様に仕組みが変更される事で、事実上のスペシャルハードウェア非依存化を実現した。ROMはファイルとして機能拡張フォルダ内に置かれ読み出された。この仕掛けはOS9の最後まで引き継がれるとともに、OSX上でのOS9エミュレーションをも可能にし、OSXへのシームレスな誘導を可能にした。

そしてIntel CPUへ

上に書いた様な施策が施され、OSXへの移行が確実となったところで、IntelCPUへの移行が発表された。余計なブリッジチップを介さないシステムは素直な設計となり、ある意味自然な流れ、最後の「独自回路の撤廃」とも言える。システム変更によるオーバーヘッドが無視出来る程度に収まる様な世の中になっていたということ、この間にPowerPC自体がコストパフォーマンスに適さない、シリコンサイクルから脱落した存在になっていた事もあるかもしれませんが、市場の流れに外堀から埋められたとも言える。