Power ISA

The Power ISA is an instruction set architecture (ISA) developed by the OpenPOWER Foundation, led by IBM. It was originally developed by the now defunct Power.org industry group. Power ISA is an evolution of the PowerPC 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 and Freescale Semiconductor. The ISA is divided into several categories and every component is defined as a part of a category; each category resides within a certain Book. Processors implement a set of these categories. 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
Designer
Bits32-bit/64-bit (32 → 64)
Introduced2006
Version3.1
DesignRISC
TypeRegister-Register
EncodingFixed/Variable
BranchingCondition code
EndiannessBig/Bi
ExtensionsAltiVec, APU, DSP, CBEA
OpenYes, and royalty free
Registers
  • 32× 64/32-bit general purpose registers
  • 32× 64-bit floating point registers
  • 32× 128-bit vector registers
  • 32-bit condition code register
  • 32-bit link register
  • 32-bit count register
+ more
A highly schematic diagram over a generic Power ISA processor.

Power ISA is a RISC load/store architecture. It has multiple sets of registers:

  • thirty-two 32-bit or 64-bit general purpose registers (GPRs) for integer operations.
  • sixty-four 128-bit vector scalar registers (VSRs) for vector operations and floating point operations.
    • thirty-two 64-bit floating-point registers (FPRs) as part of the VSRs for floating point operations.
    • thirty-two 128-bit vector registers (VRs) as part of the VSRs for vector operations.
  • Eight 4-bit condition register fields (CRs) for comparison and control flow.
  • Special registers: counter register (CTR), link register (LR), time base (TBU, TBL), alternate time base (ATBU, ATBL), accumulator (ACC), status registers (XER, FPSCR, VSCR, SPEFSCR).

Instructions have a length of 32 bits, with the exception of the VLE (variable-length encoding) subset that provides for higher code density for low-end embedded applications. Most instructions are triadic, i.e. have two source operands and one destination. Single and double precision IEEE-754 compliant floating point operations are supported, including additional fused multiply–add (FMA) and decimal floating-point instructions. There are provisions for SIMD operations on integer and floating point data on up to 16 elements in a single instruction.

Power ISA has support for Harvard cache, i.e. split data and instruction caches, as well as support for unified caches. Memory operations are strictly load/store, but allow for out-of-order execution. There is also support for both big and little-endian addressing with separate categories for moded and per-page endianness, as well as support for both 32-bit and 64-bit addressing.

Different modes of operation include user, supervisor and hypervisor.

See also

References

  1. "Power ISA v.2.03". Power.org. 2006-09-29. Archived from the original on 2012-11-24. Retrieved 2010-10-20.
  2. "PowerPC Architecture Book, Version 2.02". IBM. 2005-02-24. Retrieved 2007-03-16.
  3. "PowerPC Book E v.1.0" (PDF). IBM. 2002-05-07. Retrieved 2007-03-16.
  4. "Power ISA Version 2.04" (PDF). Power.org. 2007-06-12. Archived from the original (PDF) on 2007-09-27. Retrieved 2007-06-14.
  5. "Power ISA Version 2.05". Power.org. 2007-10-23. Archived from the original on 2012-11-24. Retrieved 2007-12-18.
  6. "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.
  7. "Power ISA Version 2.06 Revision B". Power.org. 2010-07-23. Archived from the original on 2012-11-24. Retrieved 2011-02-12.
  8. "Workload acceleration with the IBM POWER vector-scalar architecture". IBM. 2016-03-01. Retrieved 2017-05-02.
  9. "Power ISA 2.06 Rev. B enables full hardware virtualization for embedded space". EETimes. 2010-11-03. Retrieved 2011-06-08.
  10. "Power ISA Version 2.07" (PDF). Power.org. 2013-05-15. Retrieved 2015-05-23.
  11. Leonidas Barbosa (2014-09-21). "POWER8 in-core cryptography". IBM.
  12. Performance Optimization and Tuning Techniques for IBM Power Systems Processors Including IBM POWER8. IBM. August 2015. p. 48.
  13. "Power ISA Version 2.07 B". Power.org. 2015-04-09. Retrieved 2017-01-06.
  14. Announcing a New Era of Openness with Power 3.0
  15. "Power ISA Version 3.0". openpowerfoundation.org. 2016-11-30. Retrieved 2017-01-06.
  16. "Power ISA Version 3.0 B". Power.org. 2017-03-27. Retrieved 2019-08-11.
  17. [PATCH, COMMITTED] Add full Power ISA 3.0 / POWER9 binutils support
  18. "Power ISA Version 3.1". openpowerfoundation.org. 2020-05-01. Retrieved 2020-05-23.
  19. Carlos Eduardo Seo (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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.