IBM POWERは、 IBMが開発したRISC(Reduced Instruction Set Computer )命令セットアーキテクチャ(ISA)です。その名前はPerformance Optimization With Enhanced RISCの頭文字をとったものです。[ 1 ]
ISAは1990年代初頭にハイエンドのIBMマイクロプロセッサに使用され、IBMの多くのサーバー、ミニコンピュータ、ワークステーション、スーパーコンピュータで使用されました。これらのプロセッサはPOWER1(RIOS-1、RIOS.9、RSC、RAD6000)とPOWER2(POWER2、POWER2+、P2SC)と呼ばれています。
ISAはPowerPC命令セットアーキテクチャへと進化し、1998年にIBMがPOWER3プロセッサを発表した際に廃止されました。POWER3は主に32/64ビットのPowerPCプロセッサでしたが、下位互換性のためにIBM POWERアーキテクチャの機能も含まれていました。その後、元のIBM POWERアーキテクチャは廃止されました。PowerPCは2006年にPower ISAへと再び進化しました。

IBMは、自社の特定用途向け集積回路(ASIC)製品で使用するPowerPCマイクロプロセッサコアの開発を継続している。多くの大量生産アプリケーションにPowerPCコアが組み込まれている。
1974年、IBMは、毎秒少なくとも300件の通話を処理できる潜在能力を持つ大規模な電話交換ネットワークを構築するという設計目標を掲げたプロジェクトを開始しました。リアルタイム応答を維持しながら各通話を処理するには20,000個のマシン命令が必要になると予測されたため、12 MIPSの性能を持つプロセッサが必要と判断されました。[ 2 ]この要件は当時としては非常に野心的なものでしたが、このマシンはI/O、分岐、レジスタ-レジスタ加算、レジスタとメモリ間のデータ移動のみを実行する必要があり、重い算術演算を実行するための特別な命令は必要ないため、当時のCPUの複雑さの多くは不要であることが認識されました。
複雑な操作の各ステップが1つの機械語命令によって明示的に指定され、すべての命令が同じ定数時間で完了する必要があるというこのシンプルな設計思想は、後にRISCとして知られるようになる。
1975年までに、電話交換機プロジェクトは試作品も作られないまま中止された。しかし、プロジェクト初年度に作成されたシミュレーションの推定値から、このプロジェクト用に設計されていたプロセッサは非常に有望な汎用プロセッサになりそうだったので、トーマス・J・ワトソン研究センターの801号館で801プロジェクトとして作業が続けられた。[ 2 ]
ワトソン研究所では2年間、 801設計のスーパースカラ限界が探求された。例えば、IBM System/360 Model 91やCDC 6600 (ただしModel 91はCISC設計に基づいていた)で行われたように、複数の機能ユニットを使用して設計を実装して性能を向上させることの実現可能性、RISCマシンが1サイクルあたり複数の命令を維持できるかどうか、あるいは複数の実行ユニットを可能にするために801設計にどのような設計変更が必要かなどが検討された。
パフォーマンスを向上させるため、Cheetah には分岐、固定小数点、浮動小数点の実行ユニットが別々に用意されていました。[ 3 ] [ 4 ]複数の実行ユニットを可能にするために、801 の設計に多くの変更が加えられました。Cheetah は当初、バイポーラエミッタ結合ロジック(ECL) 技術を使用して製造される予定でしたが、1984 年までに相補型金属酸化膜半導体 ( CMOS ) 技術により、トランジスタロジックのパフォーマンスを向上させながら回路の集積度を高めることが可能になりました。
1985年、IBMトーマス・J・ワトソン研究所で第2世代RISCアーキテクチャの研究が開始され、「AMERICAアーキテクチャ」が誕生しました。[ 2 ] 1986年、IBMオースティンは、そのアーキテクチャに基づいてRS/6000シリーズの開発を開始しました。[ 3 ] [ 4 ]
1990 年 2 月、 IBMがPOWER 命令セットを組み込んだ最初のコンピュータは「RISC System/6000」またはRS/6000と呼ばれました。これらの RS/6000 コンピュータはワークステーションとサーバーの2 つのクラスに分けられ、それぞれ POWERstation および POWERserver として発表されました。RS/6000 CPU には、「RIOS-1」と「RIOS.9」(またはより一般的には「POWER1」CPU)と呼ばれる 2 つの構成がありました。RIOS-1 構成には、命令キャッシュ チップ、固定小数点チップ、浮動小数点チップ、4 つのデータ キャッシュチップ、ストレージ コントロール チップ、入出力チップ、クロック チップの合計 10 個のディスクリート チップがありました。低コストの RIOS.9 構成には、命令キャッシュ チップ、固定小数点チップ、浮動小数点チップ、2 つのデータ キャッシュ チップ、ストレージ コントロール チップ、入出力チップ、クロック チップの 8 つのディスクリート チップがありました。
RISCシングルチップ実装であるRSC(「RISCシングルチップ」の略)は、低価格帯のRS/6000向けに開発され、RSCを採用した最初のマシンは1992年に発売された。
IBMは、 1991年にテキサス州オースティンでApple/IBM/Motorolaの提携が成立する2年前に、POWER1の後継プロセッサとしてPOWER2の開発に着手した。Apple/IBM/Motorolaの提携を加速させるためにリソースが転用された影響もあったものの、POWER2は開発開始からシステム出荷まで5年を要した。固定小数点演算ユニットと浮動小数点演算ユニットをそれぞれ1つずつ追加し、その他の性能向上を図ったことで、POWER2は1993年11月の発表時には業界トップクラスの性能を誇っていた。
命令セットに新しい命令も追加されました。
1996年にRS/6000およびRS/6000 SP2製品ラインをサポートするため、IBMはApple/IBM/Motorolaの提携とは別に、IBMの最先端かつ高密度なCMOS-6Sプロセスを用いて、独自の設計チームでPOWER2のシングルチップ版であるP2SC(「POWER2スーパーチップ」)を実装しました。P2SCは、POWER2の命令キャッシュ、固定小数点、浮動小数点、ストレージ制御、データキャッシュの各チップを1つの巨大なダイに統合しました。発表当時、P2SCは業界で最大かつ最もトランジスタ数の多いプロセッサでした。そのサイズ、複雑さ、そして高度なCMOSプロセスという課題にもかかわらず、最初のテープアウト版のプロセッサが出荷され、発表当時は浮動小数点性能で業界をリードしていました。P2SCは、1997年にチェスのグランドマスター、ガルリ・カスパロフを破ったIBMのチェス対戦スーパーコンピュータ「ディープブルー」に使用されたプロセッサです。 P2SCは、2つの高度なMAF浮動小数点演算ユニットと、広帯域かつ低遅延のメモリインターフェースを備え、主に工学および科学用途向けに設計されました。P2SCの後継機種であるPOWER3は、P2SCの高度な2つのMAF浮動小数点演算ユニットに加え、64ビット、SMP機能、そしてPowerPCへの完全移行を実現しました。

POWER 設計は、最初の真の RISC プロセッサ設計として広く認識されている801の CPU から直接派生したものです。801 は IBM ハードウェア内の多くのアプリケーションで使用されました。[ 2 ]
PC/RTが発売されたのとほぼ同時期に、IBMは市場で最も強力なCPUを設計するための「アメリカ・プロジェクト」を開始しました。彼らが主に目指したのは、801の設計における2つの問題点の解決でした。
アメリカ・プロジェクトの焦点は浮動小数点演算となり、IBMは1980年代初頭に開発された、64ビット倍精度乗算と除算を1サイクルで実行できる新しいアルゴリズムを使用することができました。設計のFPU部分は命令デコーダと整数演算部分から分離されており、デコーダは命令をFPUとALU (整数演算ユニット)の両方に同時に送信することができました。IBMはこれに、1つの命令をフェッチし、別の命令をデコードし、1つの命令をALUとFPUに同時に送信できる複雑な命令デコーダを追加し、結果として、実用化された最初のスーパースカラCPU設計の1つが誕生しました。
このシステムは、32ビット整数レジスタ32個と64ビット浮動小数点レジスタ32個をそれぞれ独立したユニットで使用していた。分岐ユニットには、プログラムカウンタを含む、独自の用途で使用するための「プライベート」レジスタもいくつか含まれていた。
このアーキテクチャのもう一つの興味深い特徴は、すべてのアドレスを52ビット空間にマッピングする仮想アドレスシステムです。これにより、アプリケーションは「フラットな」32ビット空間でメモリを共有でき、各プログラムはそれぞれ異なる32ビットのブロックを持つことができます。
PowerPCアーキテクチャブック、バージョン2.02 [ 5 ]のブックIの付録E:PowerPCユーザー命令セットアーキテクチャでは、POWERとPOWER2の命令セットアーキテクチャの違いと、POWER5で実装されているPowerPC命令セットアーキテクチャのバージョンについて説明しています。