IBM POWER 微處理器

IBM POWER 指令集架構}}

是 RISC 處理器的一種，由 IBM 設計，全稱為 “Performance Optimization With Enhanced RISC”，《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 等，都不再具備與支援。

歷史

1.1 IBM 801 計畫

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

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

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

1.2 1982 Research Project “Cheetah”

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

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

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

1.3 The America Project

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

1.4 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 年推出。

1.5 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 上。

1.6 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 所取代。

1.7 PowerPC

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

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

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

1.8 POWER3

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

1.9 POWER4

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

1.10 POWER5

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

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

1.11 POWER6

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

1.12 POWER7

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

IBM 在 2008 年完工的使用 PowerXCell 8i 3.2 Ghz 晶片的 Roadrunner 超級計算機已經達到了 Peta-FLOPS 級的計算能力。

1.13 POWER8

1.14 POWER9

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

1.15 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。