
PowerPC(逆頭字語はPerformance Optimization With Enhanced RISC – Performance Computing、略称はPPC)は、1991年にApple、IBM、Motorolaの提携(AIMとして知られる)によって作成されたRISC(Reduced Instruction Set Computer )命令セットアーキテクチャ(ISA)です。PowerPCは進化する命令セットとして、2006年以降Power ISAという名称が付けられていますが、旧名称はPower Architectureベースのプロセッサの一部の実装における商標として残っています。
元々はパーソナルコンピュータ向けに設計されたこのアーキテクチャは、1994年から2006年までAppleのデスクトップおよびノートPC製品ラインで使用されたことでよく知られており、MicrosoftのXbox 360、SonyのPlayStation 3、任天堂のGameCube、Wii、Wii Uなどのゲーム機にも採用されました。PowerPCは、火星探査機キュリオシティとパーセベランス、および様々な人工衛星にも使用されました。その後、特にAmigaOS 4の実装において、パーソナルコンピュータ向けのニッチなアーキテクチャとなりましたが、組み込みシステムでは依然として人気があります。
PowerPCは、1990年代のAIMのPRePおよび共通ハードウェア参照プラットフォーム(CHRP)イニシアチブの基盤でした。これは主に以前のIBM POWERアーキテクチャに基づいており、高いレベルの互換性を維持しています。アーキテクチャは十分に類似しているため、準備段階で注意を払えば、同じプログラムやオペレーティングシステムを両方で実行できます。Powerシリーズの新しいチップはPower ISAを使用しています。
RISCの歴史は、ジョン・コックが主任開発者として1975年から1978年にかけてRISCの概念を開発したIBMの801研究プロジェクトから始まった。801ベースのマイクロプロセッサは、多くのIBM組み込み製品で使用され、最終的にはIBM RT PCで使用される16レジスタのIBM ROMPプロセッサとなった。RT PCはRISCアーキテクチャを実装した高速設計であった。1982年から1984年にかけて、IBMは市場最速のマイクロプロセッサを開発するプロジェクトを開始した。この新しい32ビットアーキテクチャは、約5~6年にわたる開発期間を通じてアメリカプロジェクトと呼ばれた。その結果生まれたのが、 1990年初頭にRISC System/6000とともに導入されたPOWER命令セットアーキテクチャである。
初代POWERマイクロプロセッサは、初期のスーパースカラRISC実装の一つであり、高性能なマルチチップ設計でした。IBMはすぐに、RS/6000シリーズをローエンドからハイエンドまで拡張するには、シングルチップマイクロプロセッサが必要であることを認識しました。そこで、RSC(RISCシングルチップ)と呼ばれるシングルチップPOWERマイクロプロセッサの開発が始まりました。1991年初頭、IBMはこの設計が業界全体で大量生産されるマイクロプロセッサになる可能性を秘めていることに気づきました。
Appleは、Motorolaが68040 CPUの納入で遅れをとっていた時期に、単一のCPUベンダーへの依存の限界とリスクをすでに認識していました。さらに、Appleは独自の調査を行い、Aquariusと呼ばれる実験的なクアッドコアCPU設計を作成しました[ 2 ] : 86-90。これにより、同社の技術リーダーは、コンピューティングの未来はRISC方式にあると確信しました[ 2 ] : 287-288。IBMは、POWERアーキテクチャに基づくシングルチップマイクロプロセッサファミリーの開発で協力することを目的としてAppleにアプローチしました。その後まもなく、デスクトップクラスのマイクロプロセッサのMotorolaの最大顧客の一つであるApple [ 3 ]は、長年の関係、IBMよりも大量生産のマイクロプロセッサの製造経験が豊富なMotorolaに協議への参加を求め、マイクロプロセッサの第二の供給元を形成しました。Apple、IBM、Motorolaのこの3者間の協力は、AIMアライアンスとして知られるようになりました。
1991年当時、PowerPCはこれら3社による大規模な提携の一側面に過ぎませんでした。当時、パーソナルコンピュータ業界の大部分は、複雑命令セットコンピュータ(CISC)アーキテクチャを採用したIntel 80386および80486チップを搭載したシステムを出荷しており、Pentiumプロセッサの開発も順調に進んでいました。PowerPCチップは、パーソナルコンピュータ市場におけるMicrosoftとIntelの支配力拡大に対抗するため、提携メンバー3社が共同で取り組んだ複数の事業の一つでした。
モトローラにとって、POWERは信じられないほど魅力的な取引に見えた。これにより、同社は自社での設計費用をほとんどかけずに、広くテストされ高性能なRISC CPUを販売できるようになった。また、重要な顧客であるアップルとの関係を維持できるだけでなく、IBMも顧客に加える可能性も秘めていた。IBMは自社で製造する代わりに、モトローラから小型版を購入するかもしれない。
この時点で、モトローラは既に独自のRISC設計である88000を開発していたが、市場での売れ行きは芳しくなかった。モトローラは68000ファミリーで好調な業績を上げており、資金の大部分はそちらに集中していた。そのため、88000の開発はリソース不足に陥っていた。
しかし、88000は既に量産体制に入っており、データ・ゼネラル社は88000搭載マシンを出荷し、アップル社も既に88000のプロトタイプマシンを稼働させていた。また、88000は通信機器向け組み込みシステムにおいて、数々の採用実績を上げていた。もし新しいPOWERワンチップ版がハードウェアレベルで88000とバス互換性を持つことができれば、アップル社とモトローラ社はボードアーキテクチャを再設計する必要がなくなり、より迅速に製品を市場に投入できるだろう。
これらの様々な要求の結果、PowerPC(パフォーマンスコンピューティング)仕様が策定されました。以前のPOWER命令セットとPowerPC命令セットの違いについては、PowerPC ISA v.2.02のマニュアルの付録Eに概説されています。[ 1 ]
IBMは1991年以来、既存のすべてのオペレーティングシステムを単一のマイクロカーネル上で個性として同時にホストできる、統一されたオペレーティングシステムを長年望んでいた。1991年から1995年にかけて、同社は主にPowerPCをターゲットとして、後にWorkplace OSとなるものを設計し、積極的に普及させた。 [ 2 ]: 290-291
PowerPC製品が初めて市場に登場したとき、それらは熱狂的に迎えられました。Appleに加え、IBMとMotorola Computer Groupも、このプロセッサを搭載したシステムを提供しました。Microsoftは、MotorolaのPowerPCサーバーで使用されたWindows NT 3.51をこのアーキテクチャ向けにリリースし、 Sun MicrosystemsはSolaris OSのバージョンを提供しました。IBMはAIX Unixを移植しました。Workplace OSは、PowerPC 620の発売が成功するのを待って、 OS/2の新しい移植版(アプリケーション互換性のためにIntelエミュレーションを使用)を特徴としていました。1990年代半ばを通じて、PowerPCプロセッサは、最速のx86 CPUと同等またはそれ以上のベンチマークテストスコアを達成しました。
結局、デスクトップにおけるこの新しいアーキテクチャへの需要は、真に実現することはなかった。Windows、OS/2、そしてSunの顧客は、PowerPC用のアプリケーションソフトウェアが不足していることに直面し、ほぼ例外なくこのチップを無視した。IBMのWorkplace OSプラットフォーム(そしてPowerPC版OS/2)は、1995年12月に開発者向けリリースが行われた直後、PowerPC 620のバグだらけの発売と相まって、あっさりと開発中止となった。SolarisとWindowsのPowerPC版も、市場に出回ってからわずか短期間で販売終了となった。Appleの粘り強い努力のおかげで、MacintoshにおいてのみPowerPCは一定の支持を得た。Appleにとって、PowerPCの性能は、Windows 95やWindows NTベースのPCとの競争激化の中で、明るい兆しだったのだ。
Workplace OS の開発中止に伴い、汎用 PowerPC プラットフォーム (特に AIM のCommon Hardware Reference Platform ) は、単一の統一されたベンダーニュートラルなハードウェアプラットフォーム上で複数のオペレーティングシステムを一度に 1 つずつ実行するための、ハードウェアのみの妥協案と見なされるようになった。[ 2 ] : 287–288
IBMとモトローラの提携と並行して、両社は社内でも開発を進めていた。モトローラ社内ではPowerQUICCシリーズの開発が進められ、IBM社内では4xxシリーズの組み込みプロセッサの開発が進められていた。IBMの組み込みプロセッサ事業は売上高が1億ドル近くにまで成長し、数百社の顧客を獲得した。
PowerPCの開発は、テキサス州オースティンにあるサマセット・デザインセンターという施設を中心に進められている。この建物は、アーサー王伝説に登場する、敵対する勢力が剣を置いた場所にちなんで名付けられており、そこで働く3つのチームのメンバーは、その名前の由来となった精神が、これまでのプロジェクトの成功の鍵となっていると述べている。
この会社の文化の一部は、IBMやモトローラ、アップルのような文化ではなく、私たち独自の文化を持つことだ。
—モトローラのラッセル・スタンフィル、サマセット共同ディレクター[ 4 ]

1990年代後半になると、AIMアライアンスは、モトローラと同様に製造上の問題に悩まされるようになった。モトローラは、アップルや他のベンダー向けの新プロセッサの展開を常に遅らせていた。最初は1990年代のモトローラのPowerPC 7xxおよび74xxプロセッサ、そして2003年のIBMの64ビットPowerPC 970プロセッサである。2004年、モトローラは半導体事業をフリースケール・セミコンダクターという独立企業としてスピンオフさせ、チップ製造事業から撤退した。ほぼ同時期に、IBMはPowerPC製品ラインをApplied Micro Circuits Corporation(AMCC)に売却し、64ビットチップ設計に注力することで32ビット組み込みプロセッサ市場から撤退したが、任天堂のGameCube、Wii、Wii U、ソニーのPlayStation 3、マイクロソフトのXbox 360などのゲーム機メーカーへのPowerPC CPUの供給は継続した。後者2機種はどちらも64ビットプロセッサを使用している。2005年、AppleはApple MacintoshコンピュータでPowerPCプロセッサの使用を中止し、代わりにIntel製のプロセッサを採用すると発表した。その理由として、発熱とエネルギー消費に関する将来のパーソナルコンピュータハードウェアに対するチップの性能制限、およびIBMが970プロセッサを3GHz帯に移行できないことを挙げた。IBMとFreescaleの提携は、Power.orgと呼ばれるオープン標準化 団体に取って代わられた。 Power.orgはIEEEの統治下で運営されており、IBMはゲーム機向けにPowerPCプロセッサの使用と改良を継続し、Freescale Semiconductorは組み込み機器に特化している。
IBMは、自社の特定用途向け集積回路(ASIC)製品で使用するPowerPCマイクロプロセッサコアの開発を継続している。多くの大量生産アプリケーションにPowerPCコアが組み込まれている。
PowerPCの仕様は現在、IBM、Freescale、AMCCが加盟するPower.orgによって管理されています。PowerPC、Cell、POWERプロセッサは現在、Power Architectureとして共同で販売されています。Power.orgは、POWERとPowerPCのISAを統合した新しいPower ISA v.2.03仕様と、PAPR(Power Architecture Platform Reference)と呼ばれるサーバー向けの新しいリファレンスプラットフォームをリリースしました。
PowerPC の設計の多くは、その明らかな技術世代によって命名され、ラベル付けされています。これは、AIM内部でPowerPC 750 ファミリーの開発のために使われていたプロジェクト名「G3」から始まりました。[ 5 ] Apple は、1997 年 11 月 10 日にPower Mac G3とPowerBook G3を発表した際に「G3」という用語を普及させました。Motorolaと Apple はこの名称を気に入り、1998 年に発表された 7400 ファミリー[ 6 ] [ 7 ]と1999 年に発表されたPower Mac G4に「G4」という用語を使用しました。
G4が発売された当時、モトローラはPowerPCの全モデル(旧モデル、現行モデル、将来モデル)を、どの世代に属しているかに応じて分類し、古い603eコアを「G2」と改名した。モトローラはG5プロジェクトも進めていたが、実現には至らず、その後アップルが2003年に970ファミリーを発売した際にその名称を使用したが、実際にはIBMが設計・製造したものであった。
PowerPCはRISCの原則に基づいて設計されており、スーパースカラ実装が可能です。この設計には32ビット版と64ビット版の両方が存在します。PowerPCは、基本的なPOWER仕様をベースに、以下の機能を追加しました。
POWER命令セットに含まれる一部の命令は複雑すぎると判断され、PowerPCアーキテクチャでは削除されました。削除された命令の中には、必要に応じてオペレーティングシステムでエミュレートできるものもあります。削除された命令は以下のとおりです。
ほとんどのPowerPCチップは、MSR(マシン状態レジスタ)内のビットを介してエンディアンを切り替えます。また、OSが異なるエンディアンで動作できるように、2つ目のビットも用意されています。「反転ページテーブル」(オフチップストレージを備えたTLBとして機能するハッシュテーブル)へのアクセスは、常にビッグエンディアンモードで行われます。プロセッサはビッグエンディアンモードで起動します。
リトルエンディアンモードでは、実効アドレスの最下位3ビットが、オペランドの長さに応じて選択される3ビット値と排他的論理和演算されます。これだけで、通常のソフトウェアからは完全にリトルエンディアンとして認識されます。オペレーティングシステムは、ビデオやネットワークハードウェアなどの外部チップにアクセスすると、歪んだ世界像を見ることになります。この歪んだ世界像を修正するには、マザーボードがプロセッサに出入りするすべてのデータに対して無条件の64ビットバイトスワップを実行する必要があります。したがって、エンディアンはマザーボードの特性となります。ビッグエンディアンのマザーボード上でリトルエンディアンモードで動作するOSは、リトルエンディアンのチップにアクセスする際には、バイトスワップと排他的論理和演算の取り消しの両方を行う必要があります。
AltiVecの演算は128ビットであるにもかかわらず、64ビットであるかのように扱われます。これにより、AltiVec以前に設計されたリトルエンディアンのマザーボードとの互換性が確保されます。
この実装の興味深い副次的効果として、プログラムは64ビット値(最長のオペランド形式)を1エンディアンモードでメモリに格納し、モードを切り替えて同じ64ビット値を読み戻しても、バイト順序の変更は発生しないという点が挙げられます。ただし、マザーボードを同時に切り替えた場合は、このような現象は発生しません。
Mercury SystemsとMatroxはPowerPCをリトルエンディアンモードで動作させた。これは、PCIボード上のコプロセッサとして機能するPowerPCデバイスが、x86ベースのホストコンピュータとデータ構造を共有できるようにするためであった。PCIとx86はどちらもリトルエンディアンである。PowerPC用のOS/2とWindows NTはプロセッサをリトルエンディアンモードで動作させたが、Solaris、AIX、Linuxはビッグエンディアンで動作させた。[ 9 ]
IBMの一部の組み込みPowerPCチップは、ページごとのエンディアンビットを使用しています。そのため、上記の説明はどれも当てはまりません。


このアーキテクチャの最初の実装は、 1992年にリリースされたPowerPC 601で、RSCをベースとし、POWER1とPowerPCの命令セットを組み合わせたハイブリッド方式を採用していました。これにより、IBMは既存のPOWER1ベースのプラットフォームでこのチップを使用できるようになりましたが、第2世代の「純粋な」PowerPC設計への移行時には多少の手間がかかりました。Appleは、このチップをベースにした新しいMacintoshコンピュータの開発を続け、最終的に1994年3月14日に601ベースのPower Macintoshとして発売しました。
初代PowerPCチップをベースにしたアクセラレータカードは、PowerPCをベースとした新しいAmigaプラットフォームへの移行を見越してAmiga向けに開発されました。当時、PowerPCチップ上でネイティブに動作するアプリケーションはごくわずかだったため、後方互換性を維持するために、アクセラレータカードにはMotorola 68040または68060 CPUが搭載されていました。しかし、新しいマシンは実現せず、その後コモドールは倒産しました。それから10年以上後、 AmigaOS 4がリリースされ、プラットフォームはPowerPCアーキテクチャに恒久的に移行しました。OS4は、これらの初代アクセラレータだけでなく、新しいAmigaプラットフォーム向けに作成されたいくつかのカスタムマザーボードとも互換性があります。
IBMはPowerPCベースのデスクトップPCをフルラインナップで製造し、出荷準備を整えていましたが、残念ながら、IBMがこれらのデスクトップPCで動作させる予定だったオペレーティングシステムであるMicrosoft Windows NTは、マシンが販売準備完了となった1993年初頭までに完成していませんでした。そのため、またIBMがMicrosoftに対して敵意を抱いていたこともあり、IBMはOS/2をWorkplace OSという形でPowerPCに移植することを決定しました。この新しいソフトウェアプラットフォームは3年間(1992年から1995年)開発に費やされましたが、PowerPC 620の発売が期待外れだったため、1995年12月の開発者向けリリースをもって中止されました。このため、IBM PowerPCデスクトップPCは出荷されませんでしたが、PowerPC 601 CPUをベースにしたリファレンスデザイン(コードネームはSandalbow)はRS/6000モデルとしてリリースされました(Byte誌1994年4月号には、AppleとIBMのPowerPCデスクトップPCに関する詳細な記事が掲載されています)。
PowerPCベースのOSを持っていなかったAppleは、別の道を選んだ。秘密裏に進められていたスタートレックプロジェクトによって生み出された移植性プラットフォームを活用し、 Mac OSオペレーティングシステムの主要部分をPowerPCアーキテクチャに移植した。さらに、68kベースのアプリケーションや、書き換えられていないOSの部分を実行できる68kエミュレータを開発した。
第 2 世代は「純粋」で、「ローエンド」のPowerPC 603と「ハイエンド」のPowerPC 604が含まれます。603 は、非常に低コストで消費電力が低いことで注目されています。これは、603 プロジェクトを使用して将来のすべての PPC チップの基本コアを構築した Motorola 側の意図的な設計目標でした。Apple は新しいラップトップの設計に 603 を使用しようとしましたが、8 KB の小さなレベル 1 キャッシュのためにできませんでした。Mac OS の 68000 エミュレータは 8 KB に収まらず、コンピュータの速度が大幅に低下しました。[ 10 ] [ 11 ] 603eは、16 KB のL1 キャッシュを持つことでこの問題を解決し、エミュレータを効率的に実行できるようにしました。
1993年、IBMのバーモント州バーリントンのエセックス・ジャンクション施設の開発者たちは、CPU上でIntel x86命令セットを直接サポートするPowerPCのバージョンの開発に着手した。これはIBMが同時並行で取り組んでいた複数のPOWERアーキテクチャプロジェクトの1つに過ぎなかったが、このチップはIBM社内やメディアでPowerPC 615として知られるようになった。収益性への懸念と、x86とネイティブPowerPC命令セットの切り替えにおけるパフォーマンスの問題に関する噂により、社内テスト用に少数のチップが生産された後、1995年にプロジェクトは中止された。噂はさておき、切り替えプロセスはわずか5サイクル、つまりプロセッサが命令パイプラインを空にするのに必要な時間しかかからなかった。MicrosoftもPowerPCモードのサポートを拒否したことで、このプロセッサの終焉を後押しした。[ 12 ]
最初の 64 ビット実装はPowerPC 620ですが、Apple が購入を望まなかったことと、ダイ面積が大きいため組み込み市場には高価すぎたため、ほとんど使用されなかったようです。約束よりも遅く、遅れて登場したため、IBM は代わりに独自のPOWER3設計を使用し、2002 年後半に PowerPC 970 が発表されるまで 64 ビットの「小型」バージョンは提供しませんでした。970はPOWER4サーバー プロセッサから派生した 64 ビット プロセッサです。これを作成するために、POWER4 コアは 32 ビット PowerPC プロセッサとの下位互換性を持つように変更され、ベクトル ユニット ( Motorola の 74xx シリーズのAltiVec拡張機能に類似) が追加されました。
IBMのRS64プロセッサは、PowerPCアーキテクチャの「Amazon」バリアントを実装したチップファミリーです。これらのプロセッサは、RS/6000およびIBM AS/400コンピュータファミリーで使用されています。Amazonアーキテクチャには、AS/400で使用される独自の拡張機能が含まれています。[ 13 ] POWER4以降のPOWERプロセッサはAmazonアーキテクチャを実装し、RS/6000およびAS/400ファミリーのRS64チップを置き換えました。
IBMは、組み込み市場に特化した「4xx」シリーズと呼ばれる独自の製品ラインを開発しました。このシリーズには、401、403、405、440、460などが含まれます。2004年、IBMは4xxシリーズをApplied Micro Circuits Corporation(AMCC)に売却しました。AMCCは、IBMの技術を一部ベースに、またAMCC社内で開発された技術も活用しながら、高性能な新製品の開発を続けています。これらの製品は、ネットワーク、ワイヤレス、ストレージ、印刷/画像処理、産業オートメーションなど、さまざまなアプリケーションを対象としています。
数値的には、PowerPCは主に自動車のコントローラに搭載されています。自動車市場向けに、Freescale Semiconductorは当初、 MPC555などのMPC5xxファミリーと呼ばれる多くのバリエーションを提供しました。MPC555は、8xxと呼ばれる601コアのバリエーションをベースに、イスラエルのMSIL(Motorola Silicon Israel Limited)によって設計されました。601コアはシングルイシューであり、クロックサイクルで1つの命令しか発行できません。これに、1つのチップでI/Oを可能にするためのさまざまなカスタムハードウェアが追加されています。2004年には、次世代の4桁の55xxデバイスが自動車市場向けに発売されました。これらは、より新しいe200シリーズのPowerPCコアを使用しています。
ネットワークも、組み込みPowerPCプロセッサが多数使用されている分野の一つです。MSILはMC68302のQUICCエンジンを採用し、PowerQUICC MPC860を開発しました。これは1990年代後半に多くのCiscoエッジルータで使用された非常に有名なプロセッサです。PowerQUICCの派生版には、MPC850、MPC823/MPC823eなどがあります。すべての派生版には、中央プロセッサから通信処理タスクをオフロードし、DMA機能も備えたCPMと呼ばれる独立したRISCマイクロエンジンが搭載されています。このファミリーの後継チップであるMPC8260は、603eベースのコアと異なるCPMを備えています。
ホンダはASIMOロボットにもPowerPCプロセッサを使用している。[ 14 ]
2003年、BAEシステムズ・プラットフォーム・ソリューションズはF-35戦闘機用の車両管理コンピュータを納入した。このプラットフォームは、フリースケール製のデュアルPowerPCを三重冗長構成で使用している。[ 15 ]
航空開発研究所は、 2024年にHAL Tejas Mark 1Aに搭載されたクアドラプレックスPowerPCベースのプロセッサ構成による高性能デジタル飛行制御コンピュータのテストを実施した。[ 16 ]
PowerPCアーキテクチャ上で動作するオペレーティングシステムは、一般的に、汎用PowerPCシステム向けのものと、組み込みPowerPCシステム向けのものに分類される。
IBMから64ビットPOWERまたは32ビットPowerPCのライセンスを取得している企業には、以下のような企業が含まれます。
PowerPCプロセッサは、現在では生産終了となっている多くのビデオゲーム機やアーケードシステム基板に使用されていました。
Powerアーキテクチャは現在、以下のデスクトップコンピュータで使用されています。
Powerアーキテクチャは現在、以下の組み込みアプリケーションで使用されています。
。 603 の小さな 8K キャッシュは、特に 68K エミュレーションの場合、 Mac OS ソフトウェアには悪名高いほど性能が劣っていました。603e のキャッシュでさえ、クロック速度が高くなるとパフォーマンスに大きな影響が出ます。 Arthur の設計目標が 250 MHz 以上であることを考えると、キャッシュを再び倍増することは理にかなっていました。