PowerPC
テンプレート:Infobox CPU architecture
テンプレート:Power Architecture PowerPC(パワーピーシー、Performance optimization with enhanced RISC for Personal Computer)は1991年にアップルコンピュータ、IBM、モトローラの提携(AIM連合)によって開発された、RISCタイプのマイクロプロセッサである。
PowerPCはIBMのPOWERアーキテクチャをベースに開発され、アップルコンピュータのMacintoshやIBMのRS/6000などで採用された。現在ではゲーム機をはじめとした組み込みシステム、スーパーコンピュータで広く使われている。なお、POWER3以降は、POWERファミリ自体がPowerPCアーキテクチャに準拠している。
目次
概要
アーキテクチャとして、動作のベースとなる命令セットや基本的なレジスタセット、メモリアドレッシング、キャッシュモデルなどを規定しているが、それらをどのように実装すべきかまでは規定していない。
そのため実際に製造されるモデルは高速化のためにアーキテクチャレベルでは規定されていない機構(L2、L3キャッシュや関連レジスタなど)を備えているのが普通である。
性能の割に低消費電力でダイサイズも小さいという特性から、ゲーム機やハイエンドのルータなどのネットワーク機器、レーザープリンターなどの分野で広く使われており、高性能な組み込みシステム向けプロセッサとしてよく使われる。FPGA用のIPコアとして提供されているものもある。もともとはAIMプラットフォームのCPUという意味で開発されたものだが、CPU以外は開発されなかったため、今日まで残る同プロジェクト唯一の成果物でもある。
デスクトップコンピュータ用としては、アップルコンピュータ社のPower MacintoshおよびPower Macに採用されていたほか、IBM の一部のワークステーション、サーバやBlueGene/Lをはじめとするスーパーコンピュータにも採用されている。その他、2005〜2006年に発売された主要据え置き型ゲーム機三機種(Wii、PLAYSTATION 3、Xbox 360)は、いずれもPowerPCアーキテクチャを採用している。
現在、PowerPCプロセッサはモトローラから半導体部門を分離して設立されたフリースケール・セミコンダクタとIBMが開発・製造を行っており、PowerPC派生品種のCellプロセッサはIBMと東芝セミコンダクターが設計・製造している。また、4xx のシリーズ(組込み系CPUコア)は AMCC に売却されている。しかし実際は4xx シリーズでもハイエンドクラスの製造はIBMしか行えないため、開発の中心はIBMのままである。
設計特徴
PowerPCはRISCの思想で作られており、スーパースカラ方式で命令を実行する。
ベースにしたPOWERの特徴に、さらにいくつかの変更を加えた。
- バイエンディアン(ビッグエンディアンおよびリトルエンディアンのサポート。G5を除く)
- 単精度浮動小数点演算に倍精度浮動小数点演算の追加
- 32ビット命令と完全下位互換の64ビット命令セット
- 32個のGPR(汎用レジスタ)と32個のFPR(浮動小数点レジスタ)
- POWERアーキテクチャのうち、複雑なものを省いた命令セット。RISCプロセッサとしては、比較的複雑な命令も含む。
- 複雑な命令など一部を除き、命令は基本的にハードワイヤード (Hard-Wired) ロジックで実装(一部マイクロコードで実装)
- G4(第4世代)シリーズでは128ビット単位でベクトル演算を行う『AltiVec(IBMはVMX、アップルコンピュータではVelocity Engineと表現している)』を採用
1998年のPOWER3以降は、POWERも64ビットPowerPC仕様に準拠したアーキテクチャを採用している。
歴史
テンプレート:See also PowerPC の歴史は70年代後半のジョン・コックのRISCアイデアを使用した米 IBM 社の801プロトタイプ・チップで始まった。801を基にしたコアは数々のIBM製組み込み用製品に採用され、最終的には16本のレジスタを持つROMPプロセッサ、IBM RTにまで発展した。しかし、RTプロセッサの性能は十分とは言えなかったため、IBMは「アメリカ・プロジェクト」と呼ばれる、市場で最も高速なプロセッサを開発する計画を始動させた。その結果開発されたのがPOWERアーキテクチャであり、1990年初頭にRISC System/6000と共に発表された。
本来のPOWERマイクロプロセッサは、スーパースケーラを実現した最初のプロセッサの一つであり、高性能でマルチプロセッサに対応していた。IBMがRS/6000の製品群をローエンド向けからハイエンド向け製品にまで拡大するにあたって、POWERプロセッサからいくつかの機構を取り除き、シングルチップ・プロセッサにする必要が生じたため、IBMはRISC Single Chip(RSC)の開発に着手した。RSCは開発の初期段階から、工業向けに幅広く使える可能性を秘めた高機能なプロセッサになるであろうと考えられていた。
1991年、IBMはアップルコンピュータに接近し、共同でPOWERアーキテクチャをベースとしたシングルチップ・マイクロプロセッサの開発を行なう事で合意した。その直後、当時据え置き型コンピュータ用プロセッサに関してモトローラ社最大の顧客であったアップルコンピュータは、長年の協力関係を考慮して、モトローラにマイクロプロセッサ開発に加わるよう打診した。モトローラには、マイクロプロセッサ開発における豊富な経験の活用と、セカンドソースとしての役割が期待された。こうしてIBM、アップルコンピュータ、モトローラはAIM連合と呼ばれる協力関係を組織するに至った。
1991年、PowerPCはAIM連合における最大要素の一つとなった。当時のパーソナルコンピュータ市場ではマイクロソフトがWindowsを開発中であり、インテル製プロセッサはその支配を強めつつあった。また、CISCアーキテクチャのインテル80386及び80486が大半のコンピュータに採用されており、後継のPentiumプロセッサの開発も順調に進んでいた。PowerPCプロセッサは冒険的な要素を含んでいたものの、拡大するマイクロソフトとインテルによる支配に対抗するため、開発が進められた。
モトローラにとって、POWER系プロセッサの開発に加わる事は、またとないチャンスであった。この時点でモトローラは既に自社製のRISCプロセッサMC88000を市場に投入していた。しかし、このプロセッサは貧弱な設計手法と製造上の問題により市場での評価は低く、販売は低迷していた。このためモトローラは、MIPSやSPARCといった競合製品に市場で並ぶ機会を失いつつあった。しかし、新型POWER系プロセッサの開発に参加すれば、キャッシュ部分を設計するだけで、広くテストされた高性能RISCプロセッサを販売する事が可能になるため、RISCプロセッサ市場での巻き返しが期待された。また、重要な顧客であるアップルコンピュータとの関係の改善や、IBMに簡略化バージョンを供給できる可能性もあった。
その低評価の一方で、MC88000プロセッサは既に生産されており、アップルコンピュータは既にこのプロセッサを利用したプロトタイプのコンピュータを動作させていた。このため、開発中のPOWERアーキテクチャ・シングルチップのバスにハードウェアの段階でMC88000のバスとの互換性を持たせれば、ロジックボードを再設計する事なく、より迅速に新型プロセッサを市場に投入する事が可能であった。最終的に、新型プロセッサPowerPCはこういった要求を含んだ設計となった。
PowerPCが市場に投入される直前、大きな動きがあった。アップルコンピュータに加えてIBMとモトローラの両社は、PowerPCプロセッサに対応したシステムを提案した。マイクロソフトはモトローラのPowerPCサーバ向けのWindows NT 3.51を発表、サン・マイクロシステムズもSolaris OSのPowerPC版を発表した。またIBMは、自社のAIXを移植し、OS/2の移植も計画していた。1994年には組込み用途向けに PowerPC 403 を発表、後継のPowerPC 401、440などは機器制御用途やネットワーク機器を中心に広く普及した。また同年にPowerPCの64ビット版であるPowerPC 620が完成、同チップは出荷されず普及はしなかったが、その設計はPOWER3以降のPOWERファミリの礎となった。
1994年にはPowerPCをベースとしたコンピュータの仕様であるPReP、1995年には後継のCHRPが発表された。また1994年にはPowerPC搭載のMacintosh (Power Macintosh) が登場した。
しかしこれらの動きはわずかな期間で終わり、結局PowerPCという新型アーキテクチャに期待されていた理想が実現する事はなかった。Windows、OS/2、そしてサンの顧客はPowerPC用ソフトウェアの不足を理由に、PowerPCプロセッサはほとんど顧みなかった。これらのOSの後継が市場に投入される事はなく、PowerPCから完全に離れていった。またBeOSも最初のバージョンはPowerPC向けに開発されたが、その後x86系プロセッサに移行していった。最終的にはPowerPC向けの商用のデスクトップOSは、アップルのMac OSとMac OS Xのほかは、AmigaOSなどのみが残った。
90年代中頃、PowerPCプロセッサはベンチマークにおいて、最速のx86系プロセッサと同等または凌駕する性能を発揮した。90年代末に登場したG4ではAltiVecを搭載し、当時の他のCPUに比較して大幅に高速なSIMD処理を実現した。PowerPCは高性能でありながら低コスト・低消費電力といった特徴をもち、アップルはPowerPC603およびG3・G4を採用することによって、同時期のPC/AT互換ノートパソコンの性能を凌駕するPowerBookや、ファンレスのiMac、Power Mac G4 Cubeといった独創的な製品を作ることが可能になった。しかしPowerPCの性能あたりの消費電力の低さは、組み込み向けとしては高く評価されたものの、デスクトップで勢力を拡大するための決め手にはならなかった。
2002年にはPOWER4をベースとした64ビットのPowerPC 970 (G5)が登場、高性能化に伴いG4から大幅に消費電力が増大したものの、同時期のPentium 4と比較するとほぼ同等の性能でありながら低消費電力であり、IBM・アップルのサーバ製品のほか、PowerMac G5・iMac G5で採用された。
2005年はPowerPC系CPUにとって激動の年になった。まず、2005年度のE3において発表された各社の次世代ゲーム機レボリューション(コードネーム、現在のWii)、PLAYSTATION 3、Xbox 360)のCPUがすべてPowerPC系アーキテクチャのものになった。一方で、これまでPowerPCを採用していたアップルコンピュータ社のMacintoshが、2006年からインテル社のCPUに全面的に切り替えていく事が発表された。2006年中にアップルのハードウェアは完全にインテルアーキテクチャへの切り替えが完了し、アップル社内でPowerPC向けチップセットの開発を行っていた設計チームはApple A4の開発に転じた。2009年にはセキュリティアップデートを除いてPowerPC向けソフトウェアの開発も終了した。
現在ではゲーム機、プリンタ・ルータ・ネットワークスイッチ等の組み込み用途のほか、サーバやスーパーコンピュータに採用されている。
PowerPCのプロセッサ
POWER改修系 (G1)
PowerPCファミリを立ち上げる為に、IBMの既存のPOWERプロセッサをベースに設計された。その為、正式にはPowerPCのジェネレーション・ナンバーを持っていない。1994年代より流通。
- PowerPC 601 - 50,66,80,90MHz、POWER命令も実装
- PowerPC 602 - 低価格版 3DOの後継機『M2』に採用される予定だった。『M2』をベースとしたコナミの業務用ゲーム基板に使用された。
G2
アルミ配線の603、604がG2第1世代。第2世代については、IBMによる銅配線の603eと604e全てが該当するとする文献と、同シリーズで250MHz以上のものとする文献が散見され、はっきりしない。どちらも完全バス互換であったため、区別が重要でなかったこともその理由である。PowerPC 603は大変消費電力が少なく、デスクトップと同様の仕様のチップがノートパソコンに搭載されたほか、組み込み向けに広く使われた。PowerPC 604は4つの演算ユニットを並列動作させることができ、パーソナルコンピューター向けとしては当時最高レベルの演算性能を持っていた。浮動小数点演算は特に強力であった。
- PowerPC 603 - 低消費電力
- PowerPC 603e - 低消費電力、高速版
- PowerPC 603ev - PowerPC 603eの高速版
- PowerPC 604 - SMP対応、インラインL2キャッシュ、高速な浮動小数点演算
- PowerPC 604e - 604の低消費電力、小型高速版
- PowerPC 604ev - 604eの低消費電力、小型高速版
- PowerPC 615 - x86とPowerPC命令の両立を目指したプロセッサ。Pentium互換ソケットに装着可能。x86プロセッサとしては当時のPentiumなどに対抗できる性能を有すと見込まれたが、命令の切り替えの際の性能の低下が激しい、ダイサイズが<math>330mm^2</math>とPower PC系にしては大きい、Microsoftなどがサポートしない公算が大きかったなどの理由により開発中止になった。
- PowerPC 620 - 64ビット版。その設計はPOWER3に引き継がれる
- x0704 - エクスポーネンシャル社による互換チップ。BiCMOSで製造したもの。クロック数は当時のPowerPCを上回っていた。(433/500/533MHz)
G3
詳細はPowerPC G3を参照のこと。
G3(第3世代)以降は、PowerPC採用の代表的製品であるPower Macintoshシリーズでアップルがジェネレーション・ナンバーを前面に押し出したため、PowerPCの世代区分が一般に明確となった。性能比での消費電力が低いことが特徴で、現在では主に組み込み用途に用いられる。なお、パイプラインは浅く、603と変わらない4段にすぎない。
- PowerPC 75x,74x - PowerPC G3シリーズと呼ばれる。603eの発展系。
- PowerPC 75xにはバックサイドキャッシュを採用
- 整数演算ユニットを2基に
- PowerPC 750L -750の銅配線版
- PowerPC 750CX/CXe -256KB L2キャッシュを内蔵
- PowerPC 750FX/FL -130nm SOIで製造、L2キャッシュ512KB
- PowerPC 750GX -90nm SOIで製造、~1.1GHz、200MHz FSB対応、L2キャッシュ1MB
- PowerPC 750CL -L2キャッシュ256KB、400MHz〜1GHz、PowerPC 750GXの約半分まで省電力化されている
- Gekko - ニンテンドーゲームキューブ用に開発されたもの。PowerPC 750CXeをベースに、浮動小数点演算が強化され、SIMD命令が追加されている
- Broadway - 90nm SOIで製造、任天堂のWii用に開発されたもの。Gekko互換であり、PowerPC 750CLがベースと思われるが詳細は非公開。
- テンプレート:仮リンク - 45nm SOIで製造、任天堂のWii U用に開発されたもの。専用GPUとのMCMに対応したマルチコアCPUで、Broadwayがベースと思われるが詳細は非公開。
G4
詳しくはPowerPC G4を参照
G3をベースに浮動小数点演算機能を強化、SIMDと対称型マルチプロセッサ機能を追加したもの。CPUバスは従来の60xバスに加え、より高度な制御機能をもったMPXバスにも対応している。MPC 7450 でマイクロアーキテクチャを刷新したため、MPC 745x・MPC 744x は、G4+とも呼ばれる。
- MPC 74xx - G4シリーズと呼ばれる。モトローラおよびフリースケール・セミコンダクタが開発。
- AltiVec(Velocity Engine)搭載
- CPUバスにMPXバス(MaxBus)採用
- SMP対応
- 浮動小数点演算を強化
- MPC 7400
- MPC 7410 - 省電力版。180nmプロセスで製造。
- MPC 7450 - L2キャッシュ256KB内蔵、L3キャッシュ対応、整数演算ユニットを4基に、パイプラインを7段に多段化し、高クロック化
- MPC 7451 - 省電力版
- MPC 7445 - 7455のL3キャッシュインターフェース省略タイプ。
- MPC 7455 - 180 nmプロセス、SOIを採用。クロックは1GHzに到達。
- MPC 7457 - 130nm プロセス、L2キャッシュを512KBに
- MPC 7447 - 7457のL3キャッシュインターフェース省略タイプ。省電力。
- MPC 7448 - 90nmプロセスで製造、1MBのL2キャッシュ、e600コアを採用。
- MPC 8641 - e600コアを採用。メモリコントローラ、PCI Expressコントローラを内蔵。
- MPC 8641D - MPC 8641のデュアルコア版。
G5
- PowerPC 970 - IBMがアップルと共同開発し、POWER4ベースに設計。G5と呼ばれる。
- 64bit化
- パイプラインを大幅に多段化し高クロック動作(最高2GHz以上、パイプライン段数16~25段)
- CPUバスを大幅に高速化(1GHz超)
- 高速な浮動小数点演算(スカラ4GFLOPS+単精度ベクタ8GFLOPS[1GHz動作時])
- AltiVec互換のVMXを搭載
- リトルエンディアンに対応せず
- PowerPC 970FX - 90nmプロセス、高速化。省電力機能「PowerTune」を搭載。
- PowerPC 970MP - デュアルコア、各コアにL2キャッシュ1MB内蔵。最高2.5GHz。
- PowerPC 970GX - PowerPC 970FXの後継モデルで、970MPの性能のままシングルコア・省電力を実現した。最高2.5GHz。
- PWRficient PA6T - P.A. Semi(2008年にアップルに買収された)が設計した、64bit対応のG5互換製品。
- 徹底的なクロックゲーティング(チップ全体を2万5340の要素に分けてクロックの供給を行う)により、省電力(2GHz、2コアで平均消費電力13W)を実現
- マルチコア接続用のCONEXIUMバスを搭載
- AltiVec互換のVMXを搭載
- バイエンディアンに対応
4xx
最初から組込み向けとしてIBMが開発。現在はAMCCが権利を持つ。単体のマイクロプロセッサとしてではなく、ASICのCPUコアとして組み込まれることが多い。2005年頃より流通。
- 405 シリーズ
- PowerPC NPe405H
- PowerPC 405EP
- PowerPC 405EX
- PowerPC 405EXr
- PowerPC 405GP
- PowerPC 405GPr
- 440 シリーズ
- PowerPC 440EP
- PowerPC 440EPx
- PowerPC 440GR
- PowerPC 440GRx
- PowerPC 440GX
- PowerPC 440SP
- PowerPC 440SPe
- 460 シリーズ
- PowerPC 460EX
- PowerPC 460GT
- PowerPC 460SX
- PowerPC 460GTx
・470シリーズ
2009年9月24日に発表された470シリーズは、それまでの400シリーズと比較して性能を2倍以上に引上げた。ソフトウェアは400シリーズと共通であるが、464FPと比較してパイプラインが7段から9段へ増えており、out-of-order、倍精度浮動小数点数演算対応SIMDと、PowerPC G3(PowerPC750)シリーズの後継シリーズとしての位置づけとなっている。
- PowerPC 476FP 12S -45nm SOIで製造。1.6GHz時に1.6Wで動作する。倍精度浮動小数点数演算対応SIMD命令、単精度2並列SIMD命令に対応。最高2GHz。
PowerPC A2
2010年2月9日にISSCC2010で発表されたプロセッサ。[1]1コアあたり4スレッドで16コア1チップで構成されている。L1キャッシュ16KB+16KB。L2キャッシュ2MB。1.6GHz時55W、204.8Gflops。最高2.3GHz、65Wで稼動する。スーパーコンピュータBlue Gene/Q(ブルージーンQ)のコアCPUに採用されている。
使用製品
- IBM POWER - IBMの主にUNIXサーバおよびワークステーション用のCPU。
- 組み込み向け派生品
- Macintosh - アップルコンピュータのパーソナルコンピュータ。Power MacintoshおよびPower Mac、iBook、1995年以降のPowerBook、2005年までのiMac。
- 使用ゲーム機
- ピピンアットマーク(バンダイ・デジタル・エンタテイメント)。PowerPC 603 66MHzを使用。
- PlayStation 3(ソニー・コンピュータエンタテインメント)。東芝と共同開発したPowerPC系プロセッサ「Cell」を使用。
- Xbox 360(マイクロソフト)。PowerPC系トリプルコアプロセッサを使用。
- ニンテンドーゲームキューブ、Wii(任天堂)。PowerPC系プロセッサ「Gekko」「Broadway」を使用。
- 玄箱 - NAS自作キット一部機種にPowerPC使用。
- スウェーデンの多目的戦闘機グリペンの中央情報処理装置。