「PowerPC 970」の版間の差分
編集の要約なし |
|||
104行目: | 104行目: | ||
[[Category:IBMのマイクロプロセッサ]] |
[[Category:IBMのマイクロプロセッサ]] |
||
[[Category:アップルのマイクロプロセッサ]] |
[[Category:アップルのマイクロプロセッサ]] |
||
[[Category:POWERマイクロプロセッサ]] |
2020年11月24日 (火) 06:12時点における版
Power アーキテクチャ |
---|
PowerPC 970シリーズは、IBMが2002年に発表した PowerPC アーキテクチャのスーパースカラ型64ビットRISCマイクロプロセッサである。
概要
970シリーズはIBMとアップルにより共同で開発された[1][2]。このプロジェクトはGP-UL、またの名を Giga Processor Ultra Light という開発名の下で進められた。Giga Processor とはこのコアの元となった POWER4 の開発名である。アップルは Power Mac G5 に採用し、このプロセッサは5年にもわたる共同開発の成果であり、将来複数世代にわたって採用することになると述べていたが、このプロセッサのマッキントッシュでの利用は3年間と短命に終わった。IBM が CPU の高速化に失敗した為、アップルは G5 のリリース後1年で3GHzのプロセッサを生産するという約束を撤回しなければならなかった。IBMは、ポータブルコンピュータに合うように、プロセッサの消費電力を十分に落とすことができなかった。アップルはこのプロセッサの派生品を3つ採用したに過ぎない。
PowerPC は伝統的にビッグエンディアンとリトルエンディアンを切り替えることができるバイエンディアンとして設計されているが、PowerPC 970 はビッグエンディアンのみをサポートするように設計が変更された。このため、 PowerPC のリトルエンディアンモードを使用していたマイクロソフトの Virtual PC は設計を変更しなければならず、発売が遅れることとなった。
IBMのブレードサーバ用モジュールであるJS20/JS21といくつかのローエンドワークステーション、System p サーバは PowerPC 970 を利用している。このプロセッサはマーキュリー社の Momentum XSA-200 のようなハイエンド組み込みシステムでもまたいくつか使われた。PowerPC 970 はしばしばマイクロソフトの Xbox 360 に採用されているIBMの Xenon のコア、もしくはCell の Power Processing Element(PPE)と同じであると誤解されることがある。しかし、両者のマイクロアーキテクチャはPowerPC 970とは完全に異なり[3]、単にVMX命令に対応した64ビットPowerPCであるという仕様が共通しているにすぎない。
設計
PowerPC 970 は POWER4 をシングルコアに簡素化させたもので、32ビットおよび64ビットの PowerPC 命令をネイティブに処理できる。プロセッサコアのマイクロアーキテクチャとしてはアウト・オブ・オーダー実行可能な5-wayのスーパースカラであり、主な仕様は以下の通り。
- クロックあたり8命令フェッチ
- 一次命令キャッシュとは32バイト/サイクルの帯域で接続されており、1サイクルにつき8命令をフェッチ可能。
- クロックあたり最大5(内部)命令デコード/ディスパッチ
- PowerPC 970では、複雑な命令をデコード時に複数の内部命令 (86ビット長) に分解して実行するアプローチをとっている。そのため、パイプラインのデコード段は4段と、通常のRISCプロセッサと比較すると長い。2つまでの内部命令で表現可能なPowerPC命令についてはハードウェアデコーダで処理することができるが、それより多くの内部命令を必要とする命令についてはマイクロコードROMで処理される。
- デコードされた命令はグループに纏められて処理される。グループには5つのスロット (スロット0-4) が用意されており、最大5つの内部命令がスロット0からプログラム順に格納される。ただし、スロット4は分岐命令専用であり、デコードされた命令の中に分岐命令が存在しない場合はグループに含まれるのは最大4命令となる。また、同様にスロット0や1のみに格納できる命令もあり、プログラム順に格納した際にこれらの命令がうまく該当するスロットに入らない場合、代わりにNOPがスロットに入り調整が行われる。そのため、プログラム側で命令を上手に並べない限り、5命令/サイクルというピーク性能を維持し続けるのは難しい。
- ディスパッチはグループ単位で行われる。そのため、対応する命令キューに空きがない等の理由でディスパッチ不可能な命令がグループの中に1つでも存在すると、グループに含まれる全ての命令はディスパッチ不可能になりストールしてしまう。ディスパッチされたグループは後述するGlobal Completion Tableに登録され、各スロットの命令は各演算器の命令キューに入り待機状態となる。この際にレジスタ・リネーミングも行われ、各命令のオペランドは物理レジスタファイルにマッピングされる。
- クロックあたり最大10命令を10の演算器に対してアウト・オブ・オーダー発行可能
- PowerPC 970は内部に10個の演算器を備えており、各命令キューからの合計で最大10命令が同時に発行可能である。以下に各演算器の構成を示す。
- 2つの整数演算ユニット
- 除算と一部の特殊命令を除くと、多くの整数演算命令はいずれのユニットでも実行可能である。ただし、乗算器はパイプライン化されておらず、整数乗算のパフォーマンスは低い。加減算や論理, シフト演算は1サイクルで実行可能であるが、後続命令へ演算結果のバイパスを行わない (オペランドは常にレジスタファイルから供給される) ため、実際に後続命令でオペランドが利用可能になるまでのレイテンシは2サイクルである。前世代のPowerPC G4 (7450以降) プロセッサは計4つの整数演算ユニットを備え (うち1つは乗除算用) 、レイテンシも最短で1サイクルと短かったため、やや見劣りする仕様となっている。
- 2つのロード・ストアユニット
- 命令キューは整数演算命令と共用であるが、2つのパイプラインを備えている。複数のロード・ストアユニットを備えているのはPowerPCとしては初である。
- 2つの浮動小数点演算ユニット
- 2つの単精度もしくは倍精度の浮動小数点演算が同時に実行可能で、どちらのユニットにも積和演算器を備えているため、SIMD命令を使わずに4FLOPs/サイクルを達成可能な理論性能を持つ。これは当時のPC用のプロセッサとしては非常に強力である。
- 2つのVMXユニット
- AltiVec互換のSIMD命令セットであるVMX命令が実行可能である。Vector Permute命令用のユニットとそれ以外の命令用のユニットに分かれており、初期G4プロセッサと同じ構成となっている。
- 1つの分岐処理ユニット
- 1つの条件レジスタ命令処理ユニット
- 20エントリのGCT (Global Completion Table)
- PowerPC 970においてアウト・オブ・オーダー実行の状態を管理するリオーダ・バッファに相当するのがGCTである。GCTでは通常のリオーダ・バッファとは異なり前述のグループ単位で状態を管理するため、1エントリにつき最大5つの内部命令が格納可能で、テーブル全体では100の命令の状態を管理できる。G4ではわずか16命令分のリオーダ・バッファしか持っていなかったため、アウト・オブ・オーダー実行可能な命令ウィンドウが大きく増加している。
- 32KBの一次データキャッシュ
- 2-wayセットアソシアティブで、ライトスルーで動作する。リード2ポート、ライト1ポートを持ち、各ポート共に帯域は8バイト/サイクルである。レイテンシは2-4サイクル (データを必要とする実行ユニットによって異なる) となっている。
- 64KBの一次命令キャッシュ
- ダイレクトマッピングで、帯域は32バイト/サイクルである。
- 512KBの二次キャッシュ
- コアの半分の速度で動作し、帯域は64バイト/サイクルである。L1ミス、L2ヒット時のレイテンシは12-13サイクルである。
PowerPC 970 はシステムコントローラチップ(ノースブリッジ)との間で、一方向あたり32ビットのフロントサイドバスを2本持ち、プロセッサコアの速度の半分の速度で動作させることができる。このバスの帯域は1GT/sで上り下り合計8GB/sと、G4のMPXバス (167MHzで1.3GB/s) と比べると大きく速度が向上している。
プロセッサ一覧
PowerPC 970
PowerPC970 はIBMによって2002年の10月に発表された。これは、2003年6月に出荷されたアップルの Power Mac G5 に対してリリースされたものである(前に使用していた慣用名を引き継いで、アップルは PowerPC 970 ベースの製品を G5 と呼んでいた。これは、このプロセッサが PowerPC プロセッサの第五世代に当たるからである。)。IBM は PowerPC 970 を採用した最初のブレードサーバ、BladeCenter JS20 を、2003年11月にリリースした。
PowerPC 970 は512KBのフルスピードL2キャッシュを持ち、1.6GHzから2.0GHzまでのクロック速度で動作した。(8GFLOPS[1GHz動作時]) フロントサイドバスはプロセッサのクロック速度の半分の速度で動作していた。
PowerPC 970FX
PowerPC 970FX は 90nm SOI プロセスを採用し、2GHzでは最大48Wを消費する一方、1GHz動作時には摂氏65℃(華氏149度)で最大11Wを消費する。
アップルは2004年を通して970FXベースの製品をリリースした。1月に Xserve G5、6月に Power Mac G5、8月に iMac G5 である。Power Mac G5 では、水冷装置と併せて最高クロック2.5GHzで動作するプロセッサが採用された。iMac G5 では、フロントサイドバスがクロック速度の3分の1で動作していた。浮動小数点演算は、2GHz動作時に16GFLOPS。
2005年の7月に省電力化、最高クロック2.7GHzバージョンが発表された。1.4GHz動作時13W、1.6GHz動作時16W、2GHz動作時24.5Wを消費する。
PowerPC 970MP
IBMは、PowerPC 970MP(開発名は「アンタレス」)を2005年の第三四半期にリリースした。970MPはデュアルコアプロセッサで、1.4GHzから2.5GHzの間で動作した。最大消費電力は1.7GHzのときに37W、2.5GHzの時には100Wであった。それぞれのコアはL2キャッシュは970FXの2倍となる1MBずつ持っており、90nm SOI プロセスで製造された。両コアのうちひとつがアイドル状態になると、そのコアは「doze」(眠る)モードに入ってスリープ状態になる。
PowerPC 970MP は、アップルが Power Mac G5 で PowerPC 970FX と置き換えた。一方、iMac G5 は PowerPC 970FX プロセッサを採用し続けた。PowerPC 970MP は IBM の JS21 ブレードモジュールで使われている[4]。
PowerPC 970GX
2006年10月4日にリリースされた PowerPC 970GX は、PowerPC 970FX の後継モデルで、90nmプロセスで製造されたシングルコアプロセッサである[5]。32ビットと64ビットの両方をサポートし、L2キャッシュは970FXの2倍となる1MB持っている。ゲート酸化膜の厚みを増してDC漏電を減らし、ACスイッチング電圧を下げて、970FXと同等の消費電力で1.2GHz~2.5GHzで動作する。
ただし、2006年2月に開催された「ISSCC 2006」では、3.0GHz動作版が発表されている。資料では3.0GHz時、85Wで動作した[6]。
PWRficient PA6T-1682M
この節の加筆が望まれています。 |
PWRficient PA6T-1682Mは、P.A. Semi社(2008年にアップルが買収)が設計したSoCで、PowerPC 970の省電力な互換製品[7]。PowerPC 970とはマイクロアーキテクチャが全く異なるが、完全な命令互換性を有する。2006年8月21日のHot Chips 18で発表された[8]。
システムコントローラ
この節の加筆が望まれています。 |
PowerPC 970ベースのコンピュータ用に3つの専用のシステムコントローラがある。すべてIBMが製造している。
- CPC925
- アップルが設計し、U3 ないし U3H(誤り検出訂正つき)と呼んだ。130nmで製造。2本の550MHz動作の双方向プロセッサバスと400MHz DDRコントローラ、x8 AGPと16bit幅400MHz動作の HyperTransport トンネルを持つ。2プロセッサ (970/970FX) まで制御可能である。
- CPC945
- IBMが設計し、U4 と呼ばれた。90nmで製造。2本の625MHz動作の双方向プロセッサバス(970MPもしくは970/970FXを2個までの対称型マルチプロセッシングに対応)と533MHzのDDR2コントローラ(ECC RAM 64GBまで対応)、x16 PCI Express、そして16ビット幅800MHz動作の HyperTransport トンネルを持つ。4プロセッサ(970MPを2個)まで制御可能。
- CPC965
- IBMが設計し、90nmで製造。低消費電力化が計られている[9]。同時発表された PowerPC 970GX を含む PowerPC 970 シリーズと共に利用可能。
脚注
- ^ アップル、世界最速のパーソナルコンピュータ、Power Mac G5 を発表
- ^ アップルと IBM が PowerPC G5 プロセッサを発表
- ^ PowerPC 970がout-of-orderの5-wayスーパースカラというリッチなコアであるのに対し、PPEやXenonはin-orderの2-wayスーパースカラという非常に簡素なコアである。その代わり、PPEやXenonではハードウェアマルチスレッディングを実装して1コアで2スレッドの実行が可能となっている。
- ^ IBM BladeCenter JS21 製品仕様
- ^ IBM Strengthens Power Architecture With New Low-Power Processors
- ^ ISSCC 2006: IBM PowerPC 970MP
- ^ http://pc.watch.impress.co.jp/docs/2005/1028/fpf04.htm Fall Processor Forum 2005 レポート Power 旋風が吹いたマルチコアプロセッサ
- ^ “[https://www.hotchips.org/wp-content/uploads/hc_archives/hc18/2_Mon/HC18.S2/HC18.S2T1.pdf Low -Pow er, High-Performance Architecture of the PWRficient Processor Family]”. 2018年9月17日閲覧。
- ^ IBM Strengthens Power Architecture With New Low-Power Processors