コンテンツにスキップ

PowerPC

出典: フリー百科事典『ウィキペディア(Wikipedia)』
PowerPC
開発者 AIM連合フリースケール・セミコンダクターIBM
ビット数 64ビット (32 → 64)
発表 1992年
バージョン 2.02
デザイン RISC
タイプ Load-store
エンコード Fixed/Variable (Book E)
ブランチ Condition code
エンディアン Big/Bi
拡張 AltiVec, APU
オープン Yes
レジスタ
32 GPR, 32 FPR
IBM PowerPC 601 マイクロプロセッサー PPC601FD-080-2
IBM PowerPC 601+ マイクロプロセッサー PPCA601v5FE1002
IBM PowerPC 601 マイクロプロセッサー PPC601FF-090a-2

PowerPC(パワーピーシー、: Performance optimization with enhanced RISC - Performance Computing)は1991年Apple ComputerIBMモトローラの提携(AIM連合)によって開発された、RISCタイプのマイクロプロセッサーである。

PowerPCはIBMPOWERアーキテクチャーをベースに開発され、AppleMacintoshやIBMのRS/6000などで採用された。ゲーム機をはじめとした組み込みシステムスーパーコンピューターで広く使われている。POWER3以降は、POWERファミリー自体がPowerPCアーキテクチャーに準拠している。

概要

[編集]

アーキテクチャーとして、動作のベースとなる命令セットや基本的なレジスタセット、メモリーアドレッシングキャッシュモデルなどを規定しているが、それらをどのように実装すべきかまでは規定していない。

そのため実際に製造されるモデルは高速化のためにアーキテクチャレベルでは規定されていない機構(L2、L3キャッシュや関連レジスタなど)を備えているのが普通である。

性能の割に低消費電力でダイサイズも小さいという特性から、ゲーム機やハイエンドのルーターなどのネットワーク機器、レーザープリンターなどの分野で広く使われており、高性能な組み込みシステム向けプロセッサーとしてよく使われる。FPGA用のIPコアとして提供されているものもある。もともとはAIMプラットフォームのCPUという意味で開発されたものだが、CPU以外は開発されなかったため、今日まで残る同プロジェクト唯一の成果物でもある。

デスクトップコンピューター用としては、ApplePower MacintoshおよびPower Macに採用されていたほか、IBMの一部のワークステーションサーバーBlueGene/Lをはじめとするスーパーコンピューターにも採用されている。その他、2005年 - 2006年に発売された主要据え置き型ゲーム機三機種(WiiPLAYSTATION 3Xbox 360)は、いずれもPowerPCアーキテクチャーを採用している。

現在、PowerPCプロセッサーはモトローラから半導体部門を分離して設立されたフリースケール・セミコンダクター(現在はNXP)とIBMが開発・製造を行っており、PowerPC派生品種のCellプロセッサーはIBMと東芝セミコンダクターが設計・製造している。また、4xxのシリーズ(組込み系CPUコア)はAMCCに売却されている。しかし実際は4xxシリーズでもハイエンドクラスの製造はIBMしか行えないため、開発の中心はIBMのままである。

設計特徴

[編集]

PowerPCはRISCの思想で作られており、スーパースカラー方式で命令を実行する。

ベースにしたPOWERの特徴に、さらにいくつかの変更を加えた。

  • POWERアーキテクチャーのうち、複雑なものを省いた命令セット。RISCプロセッサーとしては、比較的複雑な命令も含む。
  • バイエンディアン(ビッグエンディアンおよびリトルエンディアンのサポート。G5を除く)
  • 単精度浮動小数点演算倍精度浮動小数点演算の追加
  • 32ビット命令と完全下位互換の64ビット命令セット
  • 32個のGPR(汎用レジスタ)と32個のFPR(浮動小数点レジスタ)
  • サブルーチン呼出規約は一般的なRISCチップとは異なりスタック渡しである。実際は10個の引数までレジスタ渡しが行われるが、データのビット数によっては使用可能なレジスタ数が減少したり、非揮発性レジスタ(r13 - r31[1])の退避などを行う必要がある。
  • 1本のカウントレジスタ。専用の分岐命令などと組み合わせてループのカウントなどに利用する。
  • 複雑な命令など一部を除き、命令は基本的にハードワイヤード (Hard-Wired) ロジックで実装(一部マイクロコードで実装)
  • G4(第4世代)シリーズでは128ビット単位でベクトル演算を行う『AltiVec(IBMはVMX、AppleではVelocity Engineと表現している)』を採用。付随する専用のレジスタは32本。
  • 8本の4ビット条件レジスタ(いわゆるステータスレジスタやフラグレジスタと呼ばれるもの)。詳細はステータスレジスタの項を参照。
  • 原則として、現在のスタックのメモリーアドレスを指すベースポインターを持たない。代りに汎用レジスタの一つを用いる。この規則はABIに依存するが、大抵の場合そのレジスタは1番の汎用レジスタである。また、0番の汎用レジスタは、命令によってはゼロレジスタの代用として用いられることがある。
  • 静的な分岐予測を命令単位で設定できる。
  • 条件分岐命令は8×32×17=4352通り(分岐予測を含む)の条件を組み合わせることが可能である。

1998年のPOWER3以降は、POWERも64ビットPowerPC仕様に準拠したアーキテクチャーを採用している。

歴史

[編集]

PowerPC の歴史は70年代後半のジョン・コックRISCアイデアを使用した米 IBM801プロトタイプ・チップで始まった。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はAppleに接近し、共同でPOWERアーキテクチャーをベースとしたシングルチップ・マイクロプロセッサーの開発を行なう事で合意した。その直後、当時据え置き型コンピュータ用プロセッサーに関してモトローラ社最大の顧客であったApple Computerは、長年の協力関係を考慮して、モトローラにマイクロプロセッサー開発に加わるよう打診した。モトローラには、マイクロプロセッサー開発における豊富な経験の活用と、セカンドソースとしての役割が期待された。こうしてIBM、Apple、モトローラはAIM連合と呼ばれる協力関係を組織するに至った。

1991年、PowerPCはAIM連合における最大要素の一つとなった。当時のパーソナルコンピューター市場ではマイクロソフトWindowsを開発中であり、インテル製プロセッサーはその支配を強めつつあった。また、CISCアーキテクチャーのインテル80386及び80486が大半のコンピューターに採用されており、後継のPentiumプロセッサーの開発も順調に進んでいた。PowerPCプロセッサーは冒険的な要素を含んでいたものの、拡大するマイクロソフトとインテルによる支配に対抗するため、開発が進められた。

モトローラにとって、POWER系プロセッサーの開発に加わる事は、またとないチャンスであった。この時点でモトローラは既に自社製のRISCプロセッサーMC88000を市場に投入していた。しかし、このプロセッサーは貧弱な設計手法と製造上の問題により市場での評価は低く、販売は低迷していた。このためモトローラは、MIPSSPARCといった競合製品に市場で並ぶ機会を失いつつあった。しかし、新型POWER系プロセッサーの開発に参加すれば、キャッシュ部分を設計するだけで、広くテストされた高性能RISCプロセッサーを販売する事が可能になるため、RISCプロセッサー市場での巻き返しが期待された。また、68000系以来の重要な顧客であるAppleとの関係の改善や、IBMに簡略化バージョンを供給できる可能性もあった。

その低評価の一方で、MC88000プロセッサーは既に生産されており、Appleは既にこのプロセッサーを利用したプロトタイプのコンピューターを動作させていた。このため、開発中のPOWERアーキテクチャー・シングルチップのバスにハードウェアの段階でMC88000のバスとの互換性を持たせれば、ロジックボードを再設計する事なく、より迅速に新型プロセッサーを市場に投入する事が可能であった。最終的に、新型プロセッサーPowerPCはこういった要求を含んだ設計となった。

PowerPCが市場に投入される直前、大きな動きがあった。Apple Computerに加えてIBMとモトローラの両社は、PowerPCプロセッサーに対応したシステムを提案した。マイクロソフトはモトローラのPowerPCサーバー向けのWindows NT 3.51を発表、サン・マイクロシステムズSolarisの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は、AppleのClassic Mac OSMac OS Xのほかは、AmigaOSなどのみが残った。

1990年代中頃、PowerPCプロセッサーはベンチマークにおいて、最速のx86系プロセッサーと同等または凌駕する性能を発揮した。90年代末に登場したG4ではAltiVecを搭載し、当時の他のCPUに比較して大幅に高速なSIMD処理を実現した。PowerPCは高性能でありながら低コスト・低消費電力といった特徴をもち、AppleはPowerPC603およびG3・G4を採用することによって、同時期のPC/AT互換ノートパソコンの性能を凌駕するPowerBookや、ファンレスiMacPower Mac G4 Cubeといった独創的な製品を作ることが可能になった。しかしPowerPCの性能あたりの消費電力の低さは、組み込み向けとしては高く評価されたものの、デスクトップで勢力を拡大するための決め手にはならなかった。

2002年にはPOWER4をベースとした64ビットPowerPC 970 (G5)が登場、高性能化に伴いG4から大幅に消費電力が増大したものの、同時期のPentium 4と比較するとほぼ同等の性能でありながら低消費電力であり、IBM・Appleのサーバー製品のほか、Power Mac G5・iMac G5で採用された。

2004年はPowerPC系CPUにとって激動の年になった。まず、モトローラが、半導体部門をスピンオフし、『フリースケール・セミコンダクター』を設立。次に、2005年度のE3において発表された各社の次世代(第7世代)ゲーム機であるレボリューション(コードネーム、現在のWii)、PLAYSTATION 3Xbox 360のCPUがすべてPowerPC系アーキテクチャーのものになった。一方で、これまでPowerPCを採用していたAppleのMacintoshが、2006年からインテルのCPUに全面的に切り替えていく事が発表された。2006年中にAppleのハードウェアは完全にインテルアーキテクチャーへの切り替えが完了し、Apple社内でPowerPC向けチップセットの開発を行っていた設計チームはApple A4の開発に転じた。2009年にはセキュリティアップデートを除いてPowerPC向けソフトウェアの開発も終了した。

ゲーム機においてはWiiの後継機種である2012年発売のWii Uが引き続きPowerPC系のアーキテクチャーを採用したものの、2013年発売のPlayStation 4XBOX Oneの両陣営はx86系のプロセッサーを採用し、Wii Uの実質的な後継機種である2017年発売のNintendo SwitchはArm系のプロセッサーを採用したため2019年現在は使われていない。

現在ではサーバーやスーパーコンピューターに採用されている。プリンター・ルータ・ネットワークスイッチ等の組み込み用途にも積極的に採用されていたが、より省電力かつ低コストなARM系プロセッサーの台頭により2019年現在は新規採用されるケースは減っている。

PowerPCのプロセッサー

[編集]

POWER改修系 (G1)

[編集]

PowerPCファミリーを立ち上げる為に、IBMの既存のPOWERプロセッサーをベースに設計された。その為、正式にはPowerPCのジェネレーション・ナンバーを持っていない。1994年代より流通。

G2

[編集]
XPC603EFE100LF
XPC603PRX200LC

アルミ配線の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などに対抗できる性能を有すと見込まれたが、命令の切り替えの際の性能の低下が激しい、ダイサイズが330mm2とPowerPC系にしては大きい、MinixとOS/2が移植されていたものの[2]マイクロソフトなどが(WindowsのPowerPCモードを[2])サポートしない公算が大きかったなどの理由により開発中止になった。
  • PowerPC 620 - 64ビット版。その設計はPOWER3に引き継がれる
PPC750CXEHP55-3
GEKKO 45L8926ESD
(PPCDBK-EFB486X3)

X704

[編集]

Appleが出資していたExponential Technologyによるバイポーラトランジスター型の論理回路を使う消費電力の大きなハイパフォーマンスなCPUとして発表された、1996年当時の他のCPUに比べ大幅な高速クロック動作を実現するとしていたPowerPCアーキテクチャーの予定製品であった。試作品が搭載された次期Power Macintoshプロトタイプ[3]が展示会でAppleによって公開された[4][5]。しかし、1997年5月のWWDC時、安価なPowerPC 750やPowerPC 604evとの性能差がないとして、Power Macintoshへの採用が中止された為にX704は量産化されずに終った[6][7]

G3

[編集]

G3(第3世代)以降は、PowerPC採用の代表的製品であるPower MacintoshシリーズでAppleがジェネレーション・ナンバーを前面に押し出したため、PowerPCの世代区分が一般に明確となった。性能比での消費電力が低いことが特徴で、現在では主に組み込み用途に用いられる。なお、パイプラインは浅く、603と変わらない4段にすぎない。

  • PowerPC 75x,74x - PowerPC G3シリーズと呼ばれる。603eの発展系。
    1. PowerPC 75xにはバックサイドキャッシュを採用
    2. 整数演算ユニットを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がベースと思われるが詳細は非公開。
  • Espresso - 45nm SOIで製造、任天堂のWii U用に開発されたもの。専用GPUとのMCMに対応したマルチコアCPUで、Broadwayがベースと思われるが詳細は非公開。
XPC7400
XPC7455

G4

[編集]

G3をベースに浮動小数点演算機能を強化、SIMDと対称型マルチプロセッサー機能を追加したもの。CPUバスは従来の60xバスに加え、より高度な制御機能をもったMPXバスにも対応している。MPC 7450 でマイクロアーキテクチャーを刷新したため、MPC 745x・MPC 744x は、G4+とも呼ばれる。

  • MPC 74xx - G4シリーズと呼ばれる。モトローラおよびフリースケール・セミコンダクターが開発。
    1. AltiVec (Velocity Engine) 搭載
    2. CPUバスにMPXバス (MaxBus) 採用
    3. SMP対応
    4. 浮動小数点演算を強化
    • 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

[編集]

64ビットPowerPCアーキテクチャーに準拠し、設計を全面的に刷新している。

IBMがAppleと共同開発し、POWER4ベースに設計。G5と呼ばれる。

  • 64ビット
  • パイプラインを大幅に多段化し高クロック動作(最高2GHz以上、パイプライン段数16〜25段)
  • CPUバスを大幅に高速化(1GHz超)
  • 2基のFPU(G4までは1基)を搭載し、高速な浮動小数点演算(スカラー4GFLOPS+単精度ベクタ8GFLOPS[1GHz動作時])
  • AltiVec互換のVMXを搭載
  • 2基のロード/ストアユニット(G4までは1基)
  • 複雑な命令をマイクロコードとして実装
  • フル精度の平方根をハードウェア命令として実装(G4はソフトウェア関数)。
  • リトルエンディアン非対応
PowerPC 970FX
[編集]

90nmプロセス、高速化。省電力機能「PowerTune」を搭載。

PowerPC 970MP
[編集]

デュアルコア、各コアにL2キャッシュ1MB内蔵。最高2.5GHz。

PowerPC 970GX
[編集]

PowerPC 970FXの後継モデルで、970MP同等の性能でシングルコア・省電力を実現した。最高2.5GHz。

PWRficient PA6T

[編集]

P.A. Semi(2008年にAppleに買収された)が設計した、64ビット対応のG5互換製品。

  • 徹底的なクロックゲーティング(チップ全体を2万5340の要素に分けてクロックの供給を行う)により、省電力(2GHz、2コアで平均消費電力13W)を実現
  • マルチコア接続用のCONEXIUMバスを搭載
  • AltiVec互換のVMXを搭載
  • バイエンディアンに対応

Cell

[編集]

PowerPC Processor Elementの略称、SCE・ソニー・IBM・東芝の4社連合によって開発。PowerPC互換ではあるが、どのベースにも属さないフロムスクラッチ。Cell/B.E.およびPowerXCell 8iに使用されている。

  • VMX拡張付き64ビットのPOWERアーキテクチャーを継承した2命令同時発行のRISCプロセッサー
  • 深いパイプラインとインオーダー実行など回路を簡略化することにより高クロック動作(最高4GHz以上、パイプライン段数19段以上)
  • PowerPC ISA v.2.02に準拠
  • 2スレッドの同時マルチスレッディング
  • 仮想化機構のサポート
  • リアルタイム性を保障するL2キャッシュ
  • リトルエンディアンにはハードウェア変換で対応

Xbox 360用にIBMがマイクロソフトと共同開発した64ビットのPowerPC互換プロセッサー。XCPUと呼ばれる。後にGPU「Xenos」を統合したXCGPU、更にeDRAMを統合したObanに発展した。

  • 3つの対称型マルチコアプロセッサー
  • ゲームやグラフィックス用に拡張されたVMX128
  • 1MBの共有L2キャッシュ
  • 21.6GB/sのFSB

最初から組込み向けとして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で発表されたプロセッサ[8]。1コアあたり4スレッドで16コア1チップで構成されている。L1キャッシュ16KB+16KB。L2キャッシュ2MB。1.6GHz時55W、204.8Gflops。最高2.3GHz、65Wで稼動する。スーパーコンピューターBlue Gene/Q(ブルージーンQ)のコアCPUに採用されている。

使用製品

[編集]

脚注

[編集]
  1. ^ Kacmarcik, Cary (1995). Optimizing PowerPC Code. Addison-Wesley Publishing Company. p. 252. ISBN 0-201-40839-2 
  2. ^ a b Microsoft killed the PowerPC 615” (英語). theregister.com. 2021年6月26日閲覧。
  3. ^ X704 with Exponential processor Power PC - Computer History Museum
  4. ^ “後藤弘茂のCOMDEXリアルタイムレポート(その4)”. PC Watch. (1996年11月21日). https://pc.watch.impress.co.jp/docs/article/961122/gotocom4.htm 
  5. ^ “山田久美夫の「MACWORLD Expo/San Francisco 1997」会場レポート”. PC Watch. (1997年1月9日). https://pc.watch.impress.co.jp/docs/article/970109/macworld.htm 
  6. ^ “ExponentialのX704チップ 500MHz超は第3四半期以降”. MacWEEK. (1997年3月31日). オリジナルの1999年4月23日時点におけるアーカイブ。. https://web.archive.org/web/19990423191240/https://www.zdnet.co.jp/macweek/9703/n0331_exponential.html 
  7. ^ “Apple,X704チップ採用計画を中止 Arthur,Mach 5と「性能の差なし」”. MacWEEK. (1997年5月16日). オリジナルの1998年12月1日時点におけるアーカイブ。. https://web.archive.org/web/19981201210217/https://www.zdnet.co.jp/macweek/9705/n0516_x704.html 
  8. ^ [1]

関連項目

[編集]

外部リンク

[編集]