The Power ISA specification is divided into five parts, called "books":
New in version 3 of the Power ISA is that you don't have to 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, however one common misunderstanding is that there is nothing stopping an implementation from being compliant at a lower level but having additional selected functions from higher levels and custom extensions. It is however 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 of intellectual property, be it patents or trademarks. This is explained in the OpenPOWER EULA.1
A compliant design must:2
If the extension is general-purpose enough, the OpenPOWER Foundation asks that implementors submit it as a Request for Comments (RFC) to the OpenPOWER ISA Workgroup. Note that it is not strictly necessary to join the OpenPOWER Foundation to submit RFCs.3
The EABI specifications predate the announcement and creation of the Compliancy subsets.
Regarding the Linux Compliancy subset having VSX (SIMD) optional: in 2003–4, 64-bit EABI v1.9 made SIMD optional,4 but in July 2015, to improve performance for IBM POWER9 systems, SIMD was made mandatory in EABI v2.0.5 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 for Linux distributions is not a viable option. At present this leaves new OpenPOWER implementors wishing to run standard Linux distributions having to implement a massive 962 instructions. By contrast, RISC-V RV64GC, the minimum to run Linux, requires only 165.6
The specification for Power ISA v.2.037 is based on the former PowerPC ISA v.2.028 in POWER5+ and the Book E9 extension of the PowerPC specification. The Book I included five new chapters regarding auxiliary processing units like DSPs and the AltiVec extension.
The specification for Power ISA v.2.0410 was finalized in June 2007. It is based on Power ISA v.2.03 and includes changes primarily to the Book III-S part regarding virtualization, hypervisor functions, logical partitioning and virtual page handling.
The specification for Power ISA v.2.0511 was released in December 2007. It is based on Power ISA v.2.04 and includes changes primarily to Book I and Book III-S, including significant enhancements such as decimal arithmetic (Category: Decimal Floating-Point in Book I) and server hypervisor improvements.
The specification for Power ISA v.2.0612 was released in February 2009, and revised in July 2010.13 It is based on Power ISA v.2.05 and includes extensions for the POWER7 processor and e500-mc core. One significant new feature is vector-scalar floating-point instructions (VSX).14 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.1516
The specification for Power ISA v.2.0717 was released in May 2013. It is based on Power ISA v.2.06 and includes major enhancements to logical partition functions, transactional memory, expanded performance monitoring, new storage control features, additions to the VMX and VSX vector facilities (VSX-2), along with AES18: 257 19 and Galois Counter Mode (GCM), SHA-224, SHA-256,20: 258 SHA-384 and SHA-51221: 258 (SHA-2) cryptographic extensions and cyclic redundancy check (CRC) algorithms.22
The spec was revised in April 2015 to the Power ISA v.2.07 B spec.2324
The specification for Power ISA v.3.02526 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, a random number generator, hardware-assisted garbage collection and hardware-enforced trusted computing.
The spec was revised in March 2017 to the Power ISA v.3.0 B spec,2728 and revised again to v3.0C in May 2020.293031 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.13334 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 eight bytes 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.3536
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.3738
The spec was revised in May 2024 to the Power ISA v.3.1C spec.3940
Final draft of Power ISA EULA https://openpowerfoundation.org/final-draft-of-the-power-isa-eula-released/ ↩
The Open Power ISA: Architecture Compliancy and Future Foundations https://www.youtube.com/watch?v=ZGvEpd4vNK0 ↩
Section 2.2 of OPF Power ISA EULA https://openpowerfoundation.org/final-draft-of-the-power-isa-eula-released/ ↩
ELF PP64 ABI https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html ↩
OpenPOWER EABI v2 https://openpowerfoundation.org/wp-content/uploads/2016/03/ABI64BitOpenPOWERv1.1_16July2015_pub4.pdf ↩
Page 18 RISC-V "green card" https://carrv.github.io/2017/slides/asanovic-riscv-research.pdf ↩
"Power ISA v.2.03" (PDF). Power.org. 2006-09-29. Archived from the original (PDF) on 2011-07-27. https://web.archive.org/web/20110727183430/http://www.power.org/resources/downloads/PowerISA_203_Final_Public.pdf ↩
"PowerPC Architecture Book, Version 2.02". IBM. 2005-02-24. Archived from the original on 2007-10-18. Retrieved 2007-03-16. https://web.archive.org/web/20071018025654/http://www.ibm.com/developerworks/eserver/library/es-archguide-v2.html ↩
"PowerPC Book E v.1.0" (PDF). IBM. 2002-05-07. Archived (PDF) from the original on 2018-03-10. Retrieved 2007-03-16. https://www.nxp.com/docs/en/user-guide/BOOK_EUM.pdf?&fsrch=1 ↩
"Power ISA Version 2.04" (PDF). Power.org. 2007-06-12. Archived from the original (PDF) on 2007-09-27. Retrieved 2007-06-14. https://web.archive.org/web/20070927235845/http://www.power.org/resources/downloads/PowerISA_Public.pdf ↩
"Power ISA Version 2.05". Power.org. 2007-10-23. Archived from the original on 2012-11-24. Retrieved 2007-12-18. https://web.archive.org/web/20121124005736/https://www.power.org/technology-introduction/standards-specifications/ ↩
"Power.org Debuts Specification Advances and New Services At Power Architecture Developer Conference" (Press release). Power.org. 2007-09-24. Archived from the original on 2007-10-12. Retrieved 2007-09-24. https://web.archive.org/web/20071012121931/http://www.power.org/news/pr/view?item_key=20eea4d0ce638d7641d7d04d529d9369fee9e280 ↩
"Power ISA Version 2.06 Revision B". Power.org. 2010-07-23. Archived from the original on 2012-11-24. Retrieved 2011-02-12. https://web.archive.org/web/20121124005736/https://www.power.org/technology-introduction/standards-specifications/ ↩
"Workload acceleration with the IBM POWER vector-scalar architecture". IBM. 2016-03-01. Retrieved 2017-05-02. https://www.researchgate.net/publication/299472451 ↩
"Power ISA 2.06 Rev. B enables full hardware virtualization for embedded space". EETimes. 2010-11-03. Retrieved 2011-06-08. http://www.eetimes.com/electronics-products/electronic-product-reviews/power-products/4210382/Power-ISA-2-06-Rev-B ↩
"Power ISA Version 2.07" (PDF). Power.org. 2013-05-15. Retrieved 2023-11-02. https://fileadmin.cs.lth.se/cs/education/EDAN25/PowerISA_V2.07_PUBLIC.pdf ↩
Barbosa, Leonidas (2014-09-21). "POWER8 in-core cryptography". IBM. http://www.ibm.com/developerworks/library/se-power8-in-core-cryptography/ ↩
Performance Optimization and Tuning Techniques for IBM Power Systems Processors Including IBM POWER8. IBM. August 2015. p. 48. ISBN 9780738440927. 9780738440927 ↩
"Instruction Set Architecture". OpenPOWER Foundation. https://openpowerfoundation.org/specifications/isa/ ↩
"Power ISA Version 2.07 B". Power.org. 2015-04-09. Retrieved 2023-02-23. https://ibm.ent.box.com/s/jd5w15gz301s5b5dt375mshpq9c3lh4u ↩
Announcing a New Era of Openness with Power 3.0 https://www.ibm.com/developerworks/community/blogs/fe313521-2e95-46f2-817d-44a4f27eba32/entry/Announcing_a_New_Era_of_Openness_with_Power_3_0?lang=en ↩
"Power ISA Version 3.0". openpowerfoundation.org. 2016-11-30. Archived from the original on August 3, 2017. Retrieved 2017-01-06. https://web.archive.org/web/20170803130442/https://openpowerfoundation.org/?resource_lib=power-isa-version-3-0 ↩
"Power ISA Version 3.0 B". IBM. 2017-03-29. Retrieved 2023-02-23. https://ibm.ent.box.com/s/1hzcwkwf8rbju5h9iyf44wm94amnlcrv ↩
"Power ISA Version 3.0 C". OpenPOWER Foundation. 2020-05-01. Retrieved 2023-02-23. https://files.openpower.foundation/s/XXFoRATEzSFtdG8 ↩
list of Power ISA specifications https://wiki.raptorcs.com/wiki/Power_ISA ↩
[PATCH, COMMITTED] Add full Power ISA 3.0 / POWER9 binutils support https://sourceware.org/ml/binutils/2015-11/msg00071.html ↩
"Power ISA Version 3.1". OpenPOWER Foundation. 2020-05-01. Retrieved 2023-02-23. https://files.openpower.foundation/s/bo728kgiWfgMHAr ↩
"OPF_PowerISA_v3.1B.pdf". OpenPOWER Files. OpenPOWER Foundation. Retrieved 2023-07-02. https://files.openpower.foundation/s/dAYSdGzTfW4j2r2 ↩
"ls005.xlen.mdwn". libre-soc.org Git. Retrieved 2023-07-02. https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/sv/rfc/ls005.xlen.mdwn;hb=5e573680771f7a041d93d394003d6f9f08177a98#l131 ↩
"Power ISA Version 3.1B". OpenPOWER Foundation. 2021-09-14. Retrieved 2023-02-23. https://files.openpower.foundation/s/dAYSdGzTfW4j2r2 ↩
"Power ISA Version 3.1C". OpenPOWER Foundation. 2024-05-26. Retrieved 2024-07-04. https://files.openpower.foundation/s/9izgC5Rogi5Ywmm ↩
Seo, Carlos Eduardo (2020-05-12). "We released the Instruction Set Architecture for POWER10. Power ISA v3.1 is available at the IBM Portal for OpenPOWER". twitter.com. Retrieved 2020-05-23. https://twitter.com/carlos_seo/status/1259976682158555139?s=20 ↩