# Power ISA

Power ISA és una arquitectura de conjunt d'instruccions (ISA) desenvolupada actualment per la Fundació OpenPOWER, liderada per IBM. Va ser desenvolupat originalment per IBM i l'ara desaparegut grup industrial Power.org. Power ISA és una evolució del PowerPC ISA, creat per la fusió del nucli PowerPC ISA i el Book E opcional per a aplicacions incrustades. La fusió d'aquests dos components el 2006 va ser liderada pels fundadors de Power.org IBM i Freescale Semiconductor.
Abans de la versió 3.0, l'ISA es divideix en diverses categories. Els processadors implementen un conjunt d'aquestes categories segons sigui necessari per a la seva tasca. Calen diferents classes de processadors per implementar determinades categories, per exemple un processador de classe de servidor inclou les categories: Base, Servidor, Punt flotant, 64 bits, etc. Tots els processadors implementen la categoria Base.
Power ISA és una arquitectura de càrrega/emmagatzematge RISC. Té diversos conjunts de registres :
* Registres de propòsit general (GPR) de 32 × 32 o 64 bits per a operacions amb nombres enters.
* Registres escalars vectorials (VSR) de 64 × 128 bits per a operacions vectorials i operacions de coma flotant.
** Registres de coma flotant (FPR) de 32 × 64 bits com a part dels VSR per a operacions de coma flotant.
** Registres vectorials (VR) de 32 × 128 bits com a part dels VSR per a operacions vectorials.
* Camps de registre de condicions de 8 × 4 bits (CR) per a la comparació i el flux de control.
* 11 registres especials de diferents mides: registre de comptador (CTR), registre d'enllaç (LR), base de temps (TBU, TBL), base de temps alternativa (ATBU, ATBL), acumulador (ACC), registres d'estat (XER, FPSCR, VSCR, SPEFSCR).
Les instruccions fins a la versió 3.0 tenen una longitud de 32 bits, amb l'excepció del subconjunt VLE (codificació de longitud variable) que proporciona una densitat de codi més alta per a aplicacions incrustades de gamma baixa, i la versió 3.1 que va introduir el prefix per crear instruccions de 64 bits. La majoria de les instruccions són triàdiques, és a dir, tenen dos operands font i una destinació. S'admeten operacions de coma flotant de precisió simple i doble que compleixen amb IEEE-754, incloses instruccions addicionals de multiplicació-addició fusionada (FMA) i instruccions decimals de coma flotant. Hi ha disposicions per a operacions d'instrucció única, múltiples dades (SIMD) sobre dades senceres i de coma flotant en fins a 16 elements en una instrucció.
Power ISA té suport per a la memòria cau de Harvard, és a dir, la memòria cau dividida de dades i instruccions, i suport per a la memòria cau unificada. Les operacions de memòria són estrictament de càrrega/emmagatzematge, però permeten una execució fora d'ordre. També hi ha suport per a l'adreçament gran i petit endian amb categories separades per a l'endianitat modificada i per pàgina, i suport tant per a l'adreçament de 32 bits com de 64 bits.
Els diferents modes de funcionament inclouen usuari, supervisor i hipervisor.

## Categories

* Base : la major part del llibre I i del llibre II
* Servidor – Llibre III-S
* Incrustat – Llibre III-E
* Diversos : coma flotant, vector, processament de senyal, bloqueig de memòria cau, coma flotant decimal, etc.

## Llibres

L'especificació Power ISA es divideix en cinc parts, anomenades "llibres":
* Llibre I - L'arquitectura del conjunt d'instruccions per a l'usuari cobreix el conjunt d'instruccions base disponible per al programador d'aplicacions. Referència de memòria, control de flux, nombre sencer, coma flotant, acceleració numèrica, programació a nivell d'aplicació. Inclou capítols sobre unitats de processament auxiliars com els processadors de senyal digital (DSP) i l'extensió AltiVec.
* Llibre II : Arquitectura d'entorns virtuals defineix el model d'emmagatzematge disponible per al programador d'aplicacions, incloent el temps, la sincronització, la gestió de la memòria cau, les funcions d'emmagatzematge, l'ordre de bytes.
* Llibre III : Arquitectura de l'entorn operatiu inclou excepcions, interrupcions, gestió de memòria, instal·lacions de depuració i funcions especials de control. Està dividit en dues parts.
** Llibre III-S - Defineix les instruccions del supervisor utilitzades per a les implementacions de propòsit general/servidor. Es tracta principalment del contingut del Llibre III de l'antic PowerPC ISA.
** Llibre III-E : defineix les instruccions del supervisor utilitzades per a les aplicacions incrustades. Es deriva de l'antic PowerPC Book E.
* Book VLE - Variable Length Encoded Instruction Architecture defineix instruccions i definicions alternatives dels llibres I–III, destinades a una densitat d'instruccions més alta i a aplicacions de gamma molt baixa. Utilitzen instruccions de 16 bits i ordenació de bytes big-endians.

## Referències

* ↑ Writer, CBR Staff. «IBM's Open Source POWER Play: A RISC-V Business?» (en anglès americà), 27-08-2019. [Consulta: 31 desembre 2023].
* ↑ By. «Joining The RISC-V Ranks: IBM’s Power ISA To Become Free» (en anglès americà), 24-08-2019. [Consulta: 31 desembre 2023].
* ↑ «https://wiki.raptorcs.com/w/images/d/d3/OPF_PowerISA_v3.1B.pdf» (en anglès). [Consulta: 31 desembre 2023].
* ↑ «On the opening of the Power ISA, and the chilling effects of proprietary ISAs» (en anglès). [Consulta: 31 desembre 2023].