This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Power ISA" – news ·newspapers ·books ·scholar ·JSTOR(February 2025) (Learn how and when to remove this message) |
| Designer | |
|---|---|
| Bits | 32-bit/64-bit (32 → 64) |
| Introduced | 2006; 20 years ago (2006) |
| Version | 3.1 |
| Design | RISC |
| Type | Load–store |
| Encoding | Fixed/Variable |
| Branching | Condition code |
| Endianness | Big/Bi |
| Extensions | AltiVec,PowerPC AS, APU,DSP,CBEA |
| Open | Yes, and royalty free |
| Registers | |
| |

Power ISA is areduced instruction set computer (RISC)instruction set architecture (ISA) currently developed by theOpenPOWER Foundation, led byIBM. It was originally developed by IBM and the now-defunctPower.org industry group. Power ISA is an evolution of thePowerPC ISA, created by the mergers of the core PowerPC ISA and the optional Book E for embedded applications. The merger of these two components in 2006 was led by Power.org founders IBM andFreescale Semiconductor.
Prior to version 3.0, the ISA is divided into several categories.Processors implement a set of these categories as required for theirtask. Different classes of processors are required to implement certain categories, for example a server-class processor includes the categories:Base,Server,Floating-Point,64-Bit, etc. All processors implement the Base category.
Power ISA is a RISCload/store architecture. It has multiple sets ofregisters:
Instructions up to version 3.0 have a length of 32 bits, with the exception of the VLE (variable-length encoding) subset that provides for highercode density for low-end embedded applications, and version 3.1 which introduced prefixing to create 64-bit instructions. Most instructions aretriadic, i.e. have two source operands and one destination. Single- anddouble-precisionIEEE 754 compliant floating-point operations are supported, including additionalfused multiply–add (FMA) and decimal floating-point instructions. There are provisions forsingle instruction, multiple data (SIMD) operations on integer and floating-point data on up to 16 elements in one instruction.
Power ISA has support forHarvardcache, i.e.split data and instruction caches, and support for unified caches. Memory operations are strictly load/store, but allow forout-of-order execution. There is also support for bothbig and little-endian addressing with separate categories for moded and per-page endianness, and support for both32-bit and64-bit addressing.
Different modes of operation include user, supervisor and hypervisor.
The Power ISA specification is divided into five parts, called "books":
New in version 3 of the Power ISA is that implementations need not implement the entire specification to be compliant. The sprawl of instructions and technologies has made the complete specification unwieldy, so the OpenPOWER Foundation have decided to enable tiered compliancy.
These levels include optional and mandatory requirements. An implementation that is compliant at a lower level is allowed to have additional selected functions from higher levels and custom extensions. It is recommended that an option be provided to disable any added functions beyond the design's declared subset level.
A design must be compliant at its declared subset level to make use of the Foundation's protection regarding use ofintellectual property, be itpatents ortrademarks. This is explained in the OpenPOWER EULA.[1]
A compliant design must:[2]
This sectionmay containoriginal research. Pleaseimprove it byverifying the claims made and addinginline citations. Statements consisting only of original research should be removed.(January 2024) (Learn how and when to remove this message) |
The EABI specifications predate the announcement and creation of the Compliancy subsets.
Regarding the Linux Compliancy subset having VSX (SIMD) optional: in 2003–04, 64-bit EABI v1.9 made SIMD optional,[3] but in July 2015, to improve performance for IBM POWER9 systems, SIMD was made mandatory in EABI v2.0.[4] This discrepancy between SIMD being optional in the Linux Compliancy level but mandatory in EABI v2.0 cannot be rectified without considerable effort: backwards incompatibility forLinux distributions is not a viable option.
The specification for Power ISA v.2.03[5] is based on the former PowerPC ISA v.2.02[6] inPOWER5+ and the Book E[7] extension of thePowerPC specification. The Book I included five new chapters regarding auxiliary processing units likeDSPs and theAltiVec extension.
The specification for Power ISA v.2.04[8] was finalized in June 2007. It is based on Power ISA v.2.03 and includes changes primarily to theBook III-S part regardingvirtualization,hypervisor functions,logical partitioning andvirtual page handling.
The specification for Power ISA v.2.05[9] was released in December 2007. It is based on Power ISA v.2.04 and includes changes primarily toBook I andBook III-S, including significant enhancements such as decimal arithmetic (Category: Decimal Floating-Point inBook I) and server hypervisor improvements.
The specification for Power ISA v.2.06[10] was released in February 2009, and revised in July 2010.[11] It is based on Power ISA v.2.05 and includes extensions for the POWER7 processor ande500-mc core. One significant new feature is vector-scalar floating-point instructions (VSX).[12]Book III-E also includes significant enhancement for the embedded specification regarding hypervisor and virtualisation on single and multi core implementations.
The spec was revised in November 2010 to the Power ISA v.2.06 revision B spec, enhancing virtualization features.[11][13]
The specification for Power ISA v.2.07[14] was released in May 2013. It is based on Power ISA v.2.06 and includes major enhancements tological partition functions,transactional memory, expanded performance monitoring, new storage control features, additions to the VMX and VSX vector facilities (VSX-2), along withAES[14]: 257 [15] andGalois Counter Mode (GCM), SHA-224, SHA-256,[14]: 258 SHA-384 and SHA-512[14]: 258 (SHA-2) cryptographic extensions andcyclic redundancy check (CRC)algorithms.[16]
The spec was revised in April 2015 to the Power ISA v.2.07 B spec.[17][18]
The specification for Power ISA v.3.0[19][20] was released in November 2015. It is the first to come out after the founding of the OpenPOWER Foundation and includes enhancements for a broad spectrum of workloads and removes the server and embedded categories while retaining backwards compatibility and adds support for VSX-3 instructions. New functions include 128-bit quad-precision floating-point operations, arandom number generator, hardware-assistedgarbage collection and hardware-enforced trusted computing.
The spec was revised in March 2017 to the Power ISA v.3.0 B spec,[17][21]and revised again to v3.0C in May 2020.[17][22][23] One major change from v3.0 to v3.0B is the removal of support for hardware assisted garbage collection.The key difference between v3.0B and v3.0C is that the Compliancy Levels listed in v3.1 were also added to v3.0C.
The specification for Power ISA v.3.1[17][25] was released in May 2020. Mainly giving support for new functions introduced in Power10, but also includes the notion of optionality to the PowerISA specification. Instructions can now be eightbytes long, "prefixed instructions", compared to the usual four byte "word instructions". A lot of new functions to SIMD and VSX instructions are also added. VSX and the SVP64 extension provide hardware support for 16-bit half precision floats.[26][27]
One key benefit of the new 64-bit prefixed instructions is the extension of immediates in branches to 34-bit.
The spec was revised in September 2021 to the Power ISA v.3.1B spec.[17][26]
The spec was revised in May 2024 to the Power ISA v.3.1C spec.[17][28]