Performance Optimization With Enhanced RISC (in acronimo POWER) è un set di istruzioni RISC sviluppata da IBM. Questa architettura è stata utilizzata come base per la creazione dell'architettura PowerPC (destinata ai PC Macintosh, ad alcune workstation IBM e ad applicazioni embedded), a cui rimane molto simile.

POWER è il nome anche della serie di microprocessori che sono stati sviluppati a partire dal set di istruzioni. I processori sono usati come CPU principale in molti server, minicomputer, workstation e supercomputer IBM. Dal processore POWER3 e successivi l'architettura è interamente a 64 bit e basata sulle specifiche PowerPC. Il POWER3 inoltre non implementa alcune vecchie istruzioni POWER che furono rimosse dal set di istruzioni del PowerPC e non implementa le estensioni del POWER2 come l'ifq o il stfq.

Storia Il progetto 801 Nel 1974 IBM avviò un progetto volto a sviluppare uno switcher telefonico ad alte prestazioni in grado di gestire fino a 300 chiamate per secondo. La gestione di ogni chiamata richiedeva circa 20.000 istruzioni e la loro gestione in tempo reale si stimò che richiedesse un processore da almeno 12 MIPS. Per l'epoca erano delle richieste molto ambiziose ma gli ingegneri compresero che il processore non doveva avere la classica complessità e flessibilità dato che in sostanza doveva solamente gestire l'ingresso e l'uscita dei dati, gestire somme, salti, copia tra registri e altre istruzioni elementari. In sostanza il processore non doveva essere dotato di istruzioni matematiche complesse dato che non erano necessarie.

La filosofia di progetto era basata sulla semplicità, le istruzioni erano specificate direttamente, senza uso di microcodice, venivano eseguite in tempo costante e richiedevano solo un ciclo di clock. Molte caratteristiche in comune con le moderne architetture RISC.

Nel 1975 il progetto telefonico fu cancellato prima della realizzazione di un prototipo. Dalle stime a dalle simulazioni svolte durante il progetto, tuttavia, si notava che il processore poteva essere utilizzato anche per compiti generici e che il suo disegno era molto promettente. Il progetto continuò al Thomas J. Watson Research Center edificio 801, e divenne il progetto 801 .

Progetto di ricerca "Cheetah" Per due anni, dal 1982, al centro di ricerca Watson Research Center i limiti superscalari del progetto 801 furono analizzati ed esplorati. L'implementazione dell'801 fu analizzata e fu esplorata la possibilità di implementare più unità funzionali per migliorare le prestazioni, similmente a quanto era stato fatto nel computer System/360 Model 91 e nel CDC 6600 (sebbene il Model 91 fosse basato su un'architettura CISC). Per determinare se il progetto RISC potesse gestire più istruzioni per ciclo o se il progetto dovesse essere modificato per gestire più istruzioni per ciclo.

Per migliorare le prestazioni Cheetah separò le unità di salto, di gestione degli interi e dei numeri in virgola mobile. Molti cambiamenti al progetto 801 furono apportati per gestire più unità di elaborazione. Cheetah inizialmente venne progettato per la produzione con la tecnologia bipolare ECL, ma nel 1984 la tecnologia CMOS migliorò il livello di integrazione e le prestazioni dei transistor.

Il progetto America Nel 1985 la ricerca sulla seconda generazione di architetture RISC venne avviata nei laboratori IBM Thomas J. Watson Research Center, e produsse "AMERICA architecture". Nel 1986 l'IBM Austin avviò lo sviluppo della serie RS/6000 basandola su questa architettura.

Nel 1990 IBM presentò il primo sistema basato sull'architettura POWER, il sistema venne chiamato RISC System/6000 o RS/6000. L'RS/6000 era diviso in due classi, workstation e server che vennero chiamati POWERstation e POWERserver. I processori dei sistemi RS/6000 vennero chiamati RIOS (in seguito RIOS I o POWER1) ed era composto da 11 integrati. Cache istruzioni, unità per i numeri interi, unità per i numeri in virgola mobile, quattro integrati per la cache dati, l'unità di memorizzazione, due unità di input/output e il clock.

Una versione su singolo chip del RIOS, RSC (da RISC Single Chip) venne sviluppato per le versioni di fascia bassa RS/6000 e la prima macchina basata su questo chip fu presentata nel 1992.

PowerPC

IBM si rese conto che l'architettura POWER poteva venir utilizzata con alcuni aggiustamenti per il mercato di massa e che poteva venir venduta in concessione ad altri fornitori. La società contattò Apple proponendo la collaborazione per la realizzazione di una serie di microprocessori basati su architettura POWER. Apple contattò Motorola, fornitore di lunga data di processori per Apple e chiese alla società di entrare nell'alleanza per via della sua lunga esperienza nella produzione in alti volumi e per avere un secondo fornitore di processori. Questa collaborazione tra le società venne chiamata alleanza AIM, dall'acronimo di Apple, IBM e Motorola.

Il risultato dell'alleanza fu la nuova architettura PowerPC, una versione modificata dell'architettura POWER. L'architettura PowerPC aggiunse delle istruzioni a singola precisione in virgola mobile e delle istruzioni di moltiplicazione e divisione tra registri. L'architettura rimosse delle istruzioni specializzate come l'istruzione di moltiplicazione e divisione utilizzante il registro MQ. Inoltre aggiunse il supporto per l'architettura a 64 bit.

Il primo PowerPC fu il processore PowerPC 601 basato su RSC.

POWER2 Nel 1993 IBM visto il successo dell'originale RIOS/POWER1 sviluppò il processore POWER2. Vi aggiunse una seconda unità in virgola mobile e una seconda unità per i numeri interi. Nuove istruzioni vennero inserite nel set di istruzioni: Istruzioni di memorizzazione di Quad-word. Le istruzioni quad-word copiano due dati in doppia precisione adiacenti in due registri in virgola mobile. Istruzioni di radice quadrata in hardware Istruzioni di conversioni da virgola mobile a intero

Nel 1996 venne presentato una versione a singolo chip del POWER2 il P2SC (POWER2 Super Chip).

Amazon Nel 1990 il team di sviluppo IBM dell'AS/400 ora System i progettò un set di istruzioni RISC per rimpiazzare le istruzioni CISC degli esistenti AS/400. Il progetto originale era una variante del set di istruzioni IMPI esteso a 64 bit con l'aggiunta di istruzioni RISC per accelerare le applicazioni commerciali che avrebbero fatto uso dei computer AS/400. IBM spinse per l'utilizzo dei processori PowerPC, ma il team di sviluppo argomentò che il processore non disponeva di un adeguato set di istruzioni per le applicazioni commerciali. Un'estensione per il PowerPC chiamata Amazon venne sviluppata per il progetto.

In quel periodo il team di sviluppo dell'RS/6000 era contrario all'utilizzo dei PowerPC per le macchine ad alte prestazioni dato che il team riteneva importanti le istruzioni presenti nel POWER2 che il progetto PowerPC aveva rimosso. Amazon venne esteso per includere anche le istruzioni richieste dal team dell'RS/6000.

Il progetto del primo processore basato sul set Amazon fu chiamato Belatrix (il nome di una delle stelle della costellazione di Orione chiamata anche la stella dell'amazzone). Belatrix era molto ambizioso come progetto e infine venne completato. IBM Austin (la sede dove fu sviluppato l'RS/6000) sviluppò un processore PowerPC a 64 bit con le estensioni del POWER2 che chiamò POWER3. IBM Rochester (la sede dove fu sviluppato l'AS/400) avviò lo sviluppo del primo processore PowerPC a 64 bit ad alte prestazioni con estensioni AS/400 mentre IBM Endicott avviò lo sviluppo della versione di fascia bassa a singolo chip del processore PowerPC con estensioni AS/400.

Muskie la versione di fascia alta multi-chip del processore PowerPC con estensioni AS/400 e Cobra, la versione singolo chip PowerPC con estensioni AS/400 vennero presentati nel 1995.

Nel 1997 IBM Rochester lanciò Muskie la versione PowerPC per RS/6000. Venne utilizzato dall'RS/6000 con il nome di RS64 e anche negli AS/400 con lo stesso nome.

POWER3 Nel 1997 il POWER3 venne presentato. Inizialmente chiamato PowerPC 630 venne rinominato per indicarne la continuazione della linea POWER. Il processore implementava il set di istruzioni PowerPC a 64 bit, incluse tutte le istruzioni opzionali (per l'epoca). Il processore aveva due unità in virgola mobile, tre unità per i numeri interi e due load/store. I successivi processori POWER implementarono il set di istruzioni PowerPC a 32 e 64 bit. Non vennero più prodotti processori compatibili con il solo set di istruzioni POWER o POWER2.

POWER4 Nel 2001 il POWER4 venne presentato. Era ovviamente un processore PowerPC a 64 bit ma includeva le estensioni AS/400 e venne utilizzato sia negli AS/400 che negli RS/6000 sostituendo il POWER3 e l'RS64. Il set di istruzioni implementato venne chiamato PowerPC 2.00 ed il nuovo set aggiunse altre istruzioni.

Nel 2002 fu lanciato il PowerPC 970, un derivato del POWER4 con l'aggiunta di un'unità VMX (AltiVec) che venne utilizzato da Apple nei Power Mac G5, il primo Macintosh e primo desktop sul mercato di massa ad operare a 64 bit.

POWER5 Nel 2005 venne presentato il POWER5. Un processore multicore con supporto del multithreading simultaneo di due thread e quindi la capacità di gestire quattro processori logici. POWER5 aggiunse molte istruzioni al set di istruzioni che venne chiamato PowerPC2.01. Il POWER5+ aggiunse altre istruzioni e il set prese il nome di PowerPC 2.02.

POWER6 Il POWER6, diretto successore del POWER5 è stato presentato nel maggio 2007. Il POWER6 aggiunge delle unità VMX al processore e il supporto hardware per l'aritmetica decimale in aggiunta all'aritmetica binaria normalmente usata nei processori. Questo è il più grosso cambiamento dal tempo del POWER3 che passò al PowerPC64. Il processore ha un progetto dual core e viene distribuito con una frequenza massima di 4.7 GHz a 65 nm.

POWER7 Il POWER7 è il successore del POWER6, presentato l'8 febbraio 2010. È collegato a un finanziamento del DARPA riguardante lo sviluppo di supercomputer. Ha una potenza elaborativa più che doppia rispetto a quella offerta dal predecessore POWER6, ottenuta tra l'altro con una frequenza operativa inferiore ai quasi 5 GHz del POWER6, ovvero dai 3,0 ai 4,14 GHz e questo, unito al nuovo processo produttivo a 45 nm, diminuisce i consumi del processore.

POWER8 Il POWER8 è il successore del POWER7, presentato in agosto 2013 e introdotto nel mercato nel giugno 2014.

POWER9 POWER9, che è stato lanciato nel 2017, è prodotto usando un processo FinFET a 14 nm ed è disponibile in 4 versioni: due con 24 core SMT4 e due con 12 core SMT8. Probabilmente ci saranno ulteriori versioni in futuro visto che l'architettura POWER9 è disponibile per licensing e modifiche per i membri della fondazione OpenPOWER.

POWER10 POWER10 è stato presentato in agosto 2020 e introdotto nel mercato nel settembre 2021. Caratterizzato da una architettura a 15 core è realizzato con una tecnologia a 7nm.

Architettura Il design POWER discende direttamente dall'IBM 801, considerato da molti il primo vero microprocessore RISC. L'801 fu molto usato nell'hardware IBM, ma non divenne noto al grande pubblico fino al lancio dell'IBM PC/RT, dalle prestazioni mediocri, alla metà degli anni ottanta.

Mentre il PC/RT veniva lanciato sul mercato, IBM diede inizio allAmerica Project, con l'intenzione di creare la CPU più potente sul mercato. Si concentrarono su due problemi principali dell'801: richiedeva che tutte le istruzioni venissero eseguite all'interno di un singolo ciclo di clock, impedendo lo svolgimento di calcolo in virgola mobile; nonostante il decoder delle istruzioni fosse strutturato con una pipeline per quanto descritto sopra, l'801 non era superscalare.