Power ISA

Arquitectura del conjunt d'instruccions d'ordinador

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]

Infotaula equipament informàticPower ISA
Llançament2006 Modifica el valor a Wikidata
Característiques de CPUs
Conjunt d'instruccionsPOWER ISA
Característiques de Connectors
Representació esquemàtica
Modifica el valor a Wikidata
PowerPC Modifica el valor a Wikidata

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]

Un diagrama esquemàtic de molt alt nivell d'un processador Power ISA genèric

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ó.[3]

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

modifica
  • 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

modifica

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.

Referències

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