IBM_POWER微处理器

**IBM POWER** 是 RISC 處理器的一種，由 IBM 設計，全稱為「**P**erformance **O**ptimization **W**ith **E**nhanced **R**ISC」，《IBM Connect 電子報》2007 年 8 月號譯為「增強 RISC 效能優化」。POWER 系列微處理器在不少 IBM 伺服器、超級電腦、小型電腦及工作站中，廣泛作為主 CPU 使用。而 PowerPC 架構也是源自 POWER 架構，並應用在蘋果電腦的麥金塔電腦及部份 IBM 的工作站，以及各式各樣的嵌入式系統上。此外，IBM 透過 Power.org 網站，向其他開發者及製造商推廣 POWER 架構及其他衍生產品。

POWER 同樣也是一系列實施了同樣架構指令集的微處理器的名字。POWER 系列微處理器用於 IBM 的伺服器、微電腦、工作站、超級電腦的主處理器。POWER3 以及隨後的 POWER 系列微處理器均全部實施了 64-bit PowerPC 架構。從 POWER3 開始及其之後的 POWER 處器都不再具備與支援更早之前的舊 POWER 的指令集架構，包括 PowerPC 指令集架構或任何 POWER2 所追加延伸的指令，如 lfq 或 stfq 等，都不再具備與支援。

## 歷史

### IBM 801 計畫

西元 1974 年，IBM 開始了一個計畫，目標是創造一個至少可處理每秒 300 路通話的大型電話交換網路。預想中每路通話需要 20000 個指令來處理，以達到即時回應，因此需要一個速度為 12 MIPS 的處理器。這在當時是很有野心的需求，但他們認知到，並不需要如同時期處理器那樣的複雜設計，因為這部機器只需要處理 I/O，分歧、暫存器加法、在暫存器和記憶體間搬移資料，不需要用來處理大量數學運算的特殊指令。

複雜運算的每個步驟，都可以簡單的指令來取代，而所有的簡單指令，都在同樣的時間內完成。這個精簡設計的理念，後來成為人們所熟知的 RISC。

西元 1975 年，這個電話交換計畫在還沒有原型之前，就被中止了。然而，由計畫第一年中類比所得到的估計來看，為這個計畫所設計的處理器將會是個很有潛力的通用型處理器，因此後續工作在湯瑪斯・華生研究中心的 801 號樓繼續進行，也就是 801 計畫。

### 1982 Research Project「Cheetah」

為了判斷 RISC 機器是否能同時處理多個指令，或 "801" 的設計需要哪些修改，來製造擁有多個執行單元的 "801"，在華生研究中心的兩年中，探索了 "801" 設計的超純量極限。例如使用多個運算單元實作 "801" 的設計來增進效能，這與先前在 IBM System/360 Model 91 和 CDC 6600 上的作法類似。

"Cheetah" 擁有個別的分歧、整數及小數點執行單元。在 "801" 上作了許多改變以容許多重執行單元的設計。

"Cheetah" 原本計畫使用 Bipolar ECL 製程 ，但在 1984 年 CMOS 已經可提供積體電路整合，同時增進電晶體邏輯效能。

### The America Project

1985 年，華生研究中心開始了第二世代 RISC 架構的研究，成果是 "AMERICA 架構"。1986 年，IBM 以這個架構為基礎，在奧斯汀開始開發 RS/6000 系列。

### POWER and RS/6000

1990 年 2 月，第一部採用 POWER 架構的 IBM 電腦被稱作 "RISC System/6000" 或 RS/6000。RS/6000 分成工作站和伺服器兩個等級，分別稱作 POWERstation 和 POWERserver。RS/6000 的中央處理器有兩種組態，分別稱作 RIOS-1 和 RIOS.9（更常被稱作 "POWER" CPU）。RIOS-1 有 11 個晶片 - 一個指令快取晶片、整數晶片、浮點數晶片、四個資料快取晶片、儲存控制晶片、兩個 I/O 晶片、和一個時鐘晶片。較低成本的 RIOS.9 有 8 個晶片 - 一個指令快取晶片、整數晶片、浮點數晶片、兩個資料快取晶片、儲存控制晶片、一個 I/O 晶片、和一個時鐘晶片。

單晶片的 RIOS, RSC（RISC Single Chip 的縮寫），是為了較低階的 RS/6000 開發出來的。第一部使用 RSC 的機器在 1992 年推出。

### Amazon

1990 年亞馬遜計畫啟動，目標是創造一個可以使用 AIX 和 OS/400 的共通架構。IBM 的 AS/400 工程團隊當時正在設計一個 RISC 指令集，用來取代既存 AS/400 電腦的 CISC 指令集。原始的設計是從既有的 "IMPI" 指令集衍生而來，擴展為六十四位元，增加一些 RISC 指令以加速那些原本在 AS/400 上執行，較需求計算能力的商業應用。IBM 曾想讓他們使用 PowerPC，但他們抗命不從，爭辯說現有的 32/64 位元 PowerPC 指令集無法執行 OS/400，也需要擴充以執行 AS/400 上的商業應用。最後，開發出 "Amazon" 這個 PowerPC 的指令集延伸。

同時，RS/6000 的開發者正大幅擴充產品線，延伸到低階工作站，大型對稱式處理（SMP）系統，和叢集式的 RS/6000-SP2 系統。AIM 聯盟開發出來的 PowerPC 很適合低階工作站和小型伺服器。但大型主機和大型叢集式系統需要的效能和可靠性（RAS）特性，比專為 Apple PowerMac 設計的處理器更多。多處理器功能需要同時符合 PowerMac 注重的成本需求、RS/6000 系統的效能和可靠性需求、以及 AS/400 到 PowerPC 的轉換需求。

亞馬遜再度擴充支援這些特性，以設計出可同時使用在 RS/6000 和 AS/400 的處理器。

第一個開發這種處理器的計畫是「參宿五」（Bellatrix，獵戶座的其中一顆星）。參宿五計畫在廣泛使用時脈電路、和 EDA 工具來支援設計工作上相當具有野心，最終被中止。為滿足技術工作站、超級電腦、和工程、科學市場，IBM 奧斯汀（RS/6000 的誕生地）開始同時開發能及時上市的單晶片版本 Power2 (P2SC)，和擁有 POWER2 延伸、兩個複雜 MAF 浮點單元的精密 64 位元 PowerPC 處理器（POWER3/630）。為滿足 RS/6000 的商業應用和 AS/400 系統，IBM Rochester（AS/400 的誕生地）開始開發第一個有 AS/400 延伸的高階 64 位元 PowerPC 處理器。IBM Endicott 也開始開發擁有 AS/400 延伸的低階 PowerPC 處理器。

AS/400 所使用的高階多晶片處理器 A25/30 "Muskie"，和單晶片處理器 A10 "Cobra" 在 1995 年亮相。

1997 年，在 IBM Endicott 研究中心開發的 "Apache" 處理器發表。使用在 RS/6000 上時它被稱作 RS64。後續型號也使用在 AS/400 上。

### POWER2

在 AIM 聯盟 1991 年成立的兩年之前，IBM 已在德州奧斯汀開始 Power1 後繼者 POWER2 的開發。儘管因 AIM 聯盟而分散了資源，POWER2 從開始到出貨還是花了五年。POWER2 在 1993 年 11 月公布時，因加入第二個整數、浮點運算單元和其他效能改進，在效能處於領先地位。

指令集也加入了新指令：

* 四字集儲存指令，這個載入指令將兩個相鄰的倍精度數值載入兩個相鄰的浮點暫存器。
* 硬體開方根指令
* 浮點 - 整數轉換指令

為支援 RS/6000 和 RS/6000 SP2 產品線，在 AIM 聯盟外，IBM 以自家的設計團隊，和當時最先進的 CMOS-6s 製程，實作了單晶片的 POWER2, P2SC (POWER2 Super Chip)。P2SC 在一個巨大的晶片上，結合了所有個別的指令快取，整數、浮點、儲存控制、和資料快取晶片。在推出的當時，P2SC 是業界最大、電晶體數最多的處理器。它也領先在處理器上內建記憶體控制器。儘管晶片尺寸、複雜度和先進 CMOS 製程的挑戰艱鉅，它第一次 tape-out 即能上市，而且在公布的當時具有領先的浮點運算效能。P2SC 是 1997 年打敗棋王 Gary Kasparov 的 IBM 深藍超級電腦所採用的處理器。因具有兩個精密的 MAF 浮點運算單元和寬且低延遲的記憶體介面，P2SC 主要瞄準工程和科學應用。P2SC 後來被擁有 64 位元、對稱式處理能力、第二階快取，且能完整移植到 PowerPC 的 Power3/630 所取代。

### PowerPC

1991 年，IBM 了解到如果將晶片賣給其他系統製造商，也許能將 POWER 變成一個大量生產的架構。他們和蘋果公司緊密合作，目標是開發一整個家族以 POWER 為基礎的單晶片微處理器。當時蘋果公司是摩托羅拉在桌上型微處理器等級的最大客戶，因和摩托羅拉長久以來的關係，他們大量生產微處理器的經驗，和保有第二來源的理由，不久蘋果公司就徵詢摩托羅拉加入討論。這個三方合作以德州奧斯汀為基地，後來成為知名的 AIM 聯盟，也就是 **A**pple, **I**BM，和 **M**otorola。

兩年的開發之後，在 1993 年，從 POWER 架構修改而來的 PowerPC 架構誕生了。PowerPC 架構加入了單精度浮點運算指令，和通用暫存器間的乘法和除法指令，移除了一些 POWER 的特性，像是使用 MQ 暫存器的乘法和除法指令。它也在架構中加入了 64 位元的延伸和 SMP 的支援。

第一個 PowerPC 晶片是 PowerPC 601。更多資訊請參考 PowerPC 頁面。

### POWER3

IBM 在 1998 年引介了 POWER3。它實作了 64 位元 POWER 指令集，包括所有（在當時是）選擇性的指令集，也擁有兩個浮點運算單元，三個整數運算單元，和兩個儲存單元。後續所有的 POWER 處理器都實作了完整的 64 位元 PowerPC 和 POWER 指令，因此 IBM 不再有隻實作 POWER 或 POWER2 的處理器。

### POWER4

2001 年 IBM 引介了第一個 GIGA 系列的處理器，POWER4。它是個完全 64 位元的處理器，實作了完整的 64 位元指令集，同時也擁有 AS/400 延伸，同時使用在 RS/6000 和 AS/400 系統上，取代 POWER3 和 RS64 處理器。當時有個叫作 PowerPC 2.00 的指令集發布。在這個指令集上加入了一些延伸，像是帶一個參數的 mfcr 指令。

### POWER5

2004 年 IBM 介紹了 POWER5 處理器。它是個擁有兩個核心的多核心處理器，支援兩個執行緒的並行多執行緒（SMT），因此它實作了四個邏輯處理器。多個 POWER5 處理器透過 ViVA "虛擬向量架構" 可結合在一起當成一個向量處理器。POWER5 在指令集架構中加入了更多指令。

POWER5+ 在 ISA 2.02 版時又加入了更多指令。

### POWER6

POWER6 在 2007 年 5 月 21 日公開。它為 POWER 系列加入了 VMX。它也引入了從 POWER3 到 POWER4 的轉移以來最大的改變，第二代的 ViVA, ViVA-2。它是雙核心設計，以 65 奈米製程達到了 4.7 GHz。它擁有非常先進的晶片間通訊技術。它的功耗幾乎和前一代的 POWER5 相等，而能提供兩倍的效能。

### POWER7

POWER7 是 Peta 系列的第一個處理器。在 2010 年發布，已被美國國防先進研究計畫局選為他們 Peta-FLOPS 等級超級電腦的候選之一。200x 年初期，IBM 送交了他們的計畫書，從 DARPA 得到五千三百萬美元以繼續參與這個挑戰。2006 年 IBM 收到兩億四千四百萬用來為 DARPA 建造一台 Peta-FLOPS 電腦。
IBM 在 2008 年完工的使用 PowerXCell 8i 3.2 Ghz 晶片的 Roadrunner 超級電腦已經達到了 Peta-FLOPS 級的計算能力。

### POWER8

### POWER9

相較於前一代的 POWER8 處理器，POWER9 提昇 4 倍的頻寬，相較於 Intel x86 處理器，帶來 9.5 倍的 I/O 頻寬，記憶體支援容量為 2.6 倍，高效能核心數量提昇 2 倍，記憶體頻寬則是 1.8 倍。首款採用 POWER9 的伺服器 Power Systems AC922 也同時亮相。

### POWER10

POWER10 採用 7 奈米製程，支援 NVLink 3。

## 衍生的處理器

第一個 PowerPC 處理器 PowerPC 601，基本上是一個部份基本指令用微碼類比的 RSC 處理器，採用了 Motorola 88000 為基礎的匯流排設計。這允許 IBM 在許多工作站機器上使用這個處理器，只需要更換主機板。自此 PowerPC 和 POWER 架構有些許分岐，但大部份在指令層級仍然保持相容。

使用在太空應用的抗輻射設計 RAD6000 處理器是一個 POWER/RSC 的衍生架構。

IBM RS64 家族處理器根基於 PowerPC（因此也包括 POWER），使用在 RS/6000 和 AS/400 產品線。它對商用工作最佳化，沒有 POWER 產品線應有的浮點運算。它被 POWER4 取代。

IBM Gekko 處理器是修改過的 PowerPC 750CXe，使用在任天堂 Gamecube。任天堂的 Wii 使用更新的 Gekko，Broadway。

Cell 處理器也是從 POWER 架構衍生。它具有一個複雜的多執行緒超純量核心，和稱作 SPE (Synergistic Processing Elements) 的八個獨立向量處理器核心。這個處理器支撐了 Sony 的 Playstation 3、Toshiba 的數位電視系統，和 IBM 的高效能電腦。

微軟的遊戲主機 Xbox 360 使用一個循序執行的三核 Xenon 處理器，它基於 PowerPC，擁有修改過的向量單元，時脈 3.2 GHz。

## 參看

* PowerPC
* IBM
* POWER 架構
* OpenPOWER 基金會

## 外部連結

* IBM Power Architecture - Official IBM website
* Linux on Power
* Linux on Power WIKI
* IBM Power Architecture weekly magazine（頁面存檔備份，存於網際網路檔案館）
* Power.org
* POWER to the people - an IBM history of POWER and PowerPC
* When Is PowerPC Not PowerPC? - History of the POWER Architecture by Frank Soltis
* Migrating Source Programs
* Meet the experts: John McCalpin（頁面存檔備份，存於網際網路檔案館） - interesting discussion on power5 and beyond
* 27 years of IBM RISC

## 參考文獻