POWER-, PowerPC- en Power ISA-architectuur

Processorarchitectuur

Historisch

POWER · POWER2 · POWER3 · POWER4 · POWER5 · PPC6xx · PPC7xx · PPC74xx · PPC970 · PowerPC-AS · Broadway

Huidig

e200 · e300 · e500 · e600 · e5500 · e6500 · PA6T · POWER6 · POWER7 · POWER8 · POWER9 · Power10 · PPC4xx · Cell PPE · Xenon

Geannuleerd

e700 · Titan

Gerelateerde links

OpenPOWER Foundation · RISC · AIM-alliantie · System p · Power.org · PAPR · PReP · CHRP · AltiVec

Schematisch overzicht van een generieke Power ISA-processor

Power ISA is een RISC instructiesetarchitectuur (ISA) die ontwikkeld wordt door de OpenPOWER Foundation onder leiding van IBM. Het werd oorspronkelijk ontwikkeld door IBM en de inmiddels opgedoekte Power.org-industriegroep. Power ISA is een evolutie van de PowerPC ISA, ontstaan door het samenvoegen van de PowerPC-specificatie en het optionele Boek E voor embedded systems. De fusie van deze twee componenten in 2006 werd geleid door Power.org-oprichters IBM en Freescale Semiconductor.

Boeken

De Power ISA-specificatie bestaat uit vijf delen, de zogenaamde "boeken":

Nieuw in versie 3.0 van de Power ISA is dat men niet de gehele specificatie hoeft te implementeren om compliant te zijn. De wildgroei aan instructies en technologieën heeft de volledige specificatie onpraktisch gemaakt, dus heeft de OpenPOWER Foundation besloten om gelaagde compliancy mogelijk te maken.

Categorieën

Tot versie 3.0 was de Power ISA onderverdeeld in verschillende categorieën. Microprocessors implementeren de categorieën die vereist zijn voor hun taak. Een processor voor gebruik in servers omvat bijvoorbeeld de categorieën Base, Server, Floating-Point, 64-Bit, enz. Alle processors implementeren de categorie Base.

Specificaties

Overzicht van de verschillende POWER-, PowerPC- en Power ISA-instructiesets

Power ISA v.2.03

De Power ISA v.2.03-specificatie[1] uit september 2006 is gebaseerd op de voormalige PowerPC ISA v.2.02[2] van de POWER5+ en de Boek E-uitbreiding[3] van de PowerPC-specificatie. Boek I bevatte vijf nieuwe hoofdstukken over hulpsystemen zoals DSP's en de AltiVec-extensie.

Compatibele kernen

Power ISA v.2.04

De specificatie voor Power ISA v.2.04[4] werd in juni 2007 afgerond. Deze is gebaseerd op Power ISA v.2.03 en omvat voornamelijk wijzigingen in Boek III-S met betrekking tot virtualisatie, hypervisorfuncties, logische partities en verwerking van virtuele pagina's.

Compatibele kernen

Power ISA v.2.05

De Power ISA v.2.05-specificatie[5] werd uitgebracht in december 2007. Deze is gebaseerd op Power ISA v.2.04 en omvat voornamelijk wijzigingen in Boek I en Boek III-S, inclusief aanzienlijke verbeteringen in decimale floating-pointbewerkingen en verbeteringen aan de serverhypervisor.

Compatibele kernen

Power ISA v.2.06

De specificatie voor Power ISA v.2.06[6] werd uitgebracht in februari 2009 en herzien in juli 2010. Het is gebaseerd op Power ISA v.2.05 en bevat uitbreidingen voor de POWER7-processor en de e500-mc-kern. Een belangrijke nieuwe functie zijn vector-scalaire drijvende-komma-instructies (VSX).[7] Boek III-E bevat ook aanzienlijke verbeteringen voor de embedded specificaties met betrekking tot hypervisor en virtualisatie op single- en multi-core implementaties.

De specificatie werd in november 2010 herzien naar de Power ISA v.2.06 revisie B-specificatie, waarin de virtualisatiefuncties werden verbeterd.[8][9]

Compatibele kernen

Power ISA v.2.07

De Power ISA v.2.07-specificatie[10] werd uitgebracht in mei 2013. Deze is gebaseerd op Power ISA v.2.06 en omvat belangrijke verbeteringen aan logische partitiefuncties, transactioneel geheugen, uitgebreide prestatiemonitoring, nieuwe opslagcontrolefuncties, toevoegingen aan de VMX- en VSX-vectorfaciliteiten (VSX-2), alsook cryptografische extensies en cyclic redundancy check (CRC)-algoritmen.[11]

De specificatie is in april 2015 herzien naar de Power ISA v.2.07 B-specificatie.[12]

Compatibele kernen

Power ISA v.3.0

De Power ISA v.3.0-specificatie werd uitgebracht in november 2015. Het is de eerste die uitkomt na de oprichting van de OpenPOWER Foundation. Deze specificatie bevat verbeteringen voor een breed spectrum aan workloads en voegt ondersteuning toe voor VSX-3-instructies. Nieuwe functies zijn onder meer 128-bits drijvende-kommabewerkingen met quad-precisie, een generator voor willekeurige getallen, door hardware ondersteunde garbagecollection en door hardware afgedwongen vertrouwd computergebruik. De "server" en "embedded" categorieën werden verwijderd, met behoud van achterwaartse compatibiliteit.

De specificatie is in maart 2017 herzien naar de Power ISA v.3.0 B-specificatie[13] en in mei 2020 opnieuw herzien naar v3.0C.[14] Een belangrijke verandering van v3.0 naar v3.0B is het verwijderen van hardware-ondersteuning voor garbagecollection. Het belangrijkste verschil tussen v3.0B en v3.0C is dat de compatibiliteitsniveaus die in v3.1 worden vermeld, ook zijn toegevoegd aan v3.0C.

Compatibele kernen

Power ISA v.3.1

De Power ISA v.3.1-specificatie[17] werd uitgebracht in mei 2020. Deze specificatie biedt voornamelijk ondersteuning voor nieuwe functies die in Power10 zijn geïntroduceerd. Naast de gebruikelijke "word instructions" van vier bytes zijn er nu ook "prefixed instructions" die acht bytes lang kunnen zijn. Er zijn ook veel nieuwe functies aan SIMD- en VSX-instructies toegevoegd. VSX en de SVP64-extensie bieden hardwareondersteuning voor 16-bits floats met halve precisie.

De specificatie is in september 2021 herzien naar de Power ISA v.3.1B-specificatie.[18]

Compatibele kernen