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.[1]
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. Es requereixen 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.[2]
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ó.[3]
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": [4]
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.