Performance Optimization With Enhanced RISC

POWER è il nome di una arcitettura CPU RISC sviluppata da IBM, ed è l'acronimo di Performance Optimization With Enhanced RISC (oltre a significare potenza in inglese). I microprocessori POWER sono usati come CPU principale in molti server, minicomputer, workstation e supercomputer 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.

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 '80.

Mentre il PC/RT veniva rilasciato sul mercato, IBM diede inizio all'America Project, con l'intenzione di creare la CPU più potente sul mercato. Si concentrarono su due problemi principali dell'801:

  1. richiedeva che tutte le istruzioni venissero eseguite all'interno di un singolo ciclo di clock, impedendo lo svolgimento di calcolo in virgola mobile;
  2. nonostante il decoder delle istruzioni fosse strutturato con una pipeline per quanto descritto sopra, l'801 non era superscalare.

Il calcolo in virgola mobile divenne il pallino dell'America Project, e IBM potè usare nuovi algoritmi sviluppati nei primi anni '80 che potevano eseguire moltiplicazioni e divisioni a precisione doppia in un singolo ciclo di clock. La FPU era separata dal decoder delle istruzioni e dall'ALU, permettendo al primo di poter inviare le rispettive istruzioni alle unità funzionali nello stesso tempo. IBM inoltre inserì un complesso instruction decoder che poteva compiere contemporaneamente il fetch di una istruzione, la decodifica di un'altra e l'invio di un'altra ancora all'ALU o alla FPU, risultando così una delle prime macchine superscalari.

Il sistema usava trentadue registri interi a 32 bit e altrettanti a 64 bit per la virgola mobile, nelle rispettive unità. Anche la BPU (branch prediction unit) aveva i suoi propri registri, incluso quello contatore (PC).

L'801 aveva un design semplice, e l'ipercorrezione contenuta nel POWER ne fece un processore più complesso della maggior parte delle CPU RISC del tempo. L'instruction set del POWER (e del PowerPC contiene più di cento istruzioni di lunghezza variabile, molte delle quali sono variazioni di altre, a differenza ad esempio dell'ARM che ne possiede solo trentaquattro.

Un'altra interessante caratteristica di questa architettura un sistema di indirizzamento virtuale che inserisce tutti gli indirizzi in un ambiente a 52 bit. In questo modo le applicazioni possono condividere memoria in un ambiente "piatto" a 32 bit e ogni programma può avere blocchi differenti di 32 bit ciascuno.

Applicazioni

La prima CPU POWER1 consisteva di tre chip: l'unità di predizione delle istruzioni (BPU), l'unità intera (ALU) e l'unità in virgola mobile (FPU). Questi erano collegati su una grossa scheda per costituire un sistema unico. Il POWER1 fu usato soprattutto nelle workstation RS/6000.

Il POWER2 era in sostanza un POWER1 migliorato e fu il processore di questa serie più longevo: fu lanciato nel 1993 ed era ancora usato cinque anni dopo. Conteneva una FPU addizionale, 256 MB di memoria cache in più e la capacità di calcolo in virgola mobile a 128 bit.

Il POWER3 seguì nel 1998, includendo un pieno supporto del 64 bit, rimanendo tuttavia completamente compatibile con l'instruction set POWER precedente. Questo era uno degli obiettivi del progetto PowerPC e il POWER3 fu il primo processore IBM a trarne vantaggio. Aggiungeva inoltre una terza ALU ed un ulteriore instruction decoder, per un totale di otto unità funzionali.

La serie POWER4 include due CPU complete (simili ad un POWER3 con velocità superiore) su un unico chip, e offre la possibilità di collegamento ad alta velocità con fino ad altre tre paia di POWER4. Questi possono essere posti insieme su una scheda madre per comporre un multiprocessore simmetrico con otto CPU. Quando un processo richiede un'alta velocità piuttosto che un calcolo complesso, una coppia di CPU può essere disabilitata in modo che le tre rimanenti abbiano il bus per la cache L3 libero. Il POWER4, anche singolo, è considerato da molti la CPU più potente disponibile.

Nel 2003 IBM ha sviluppato una versione single-core del POWER4 per i personal computer di Apple, chiamata PowerPC 970, ovvero PowerPC G5.

IBM ha lanciato il POWER5 nel 2004. La versione a 1,9 GHz ha fatto segnare il più alto punteggio mai segnato da una CPU a processore singolo nel benchmark SPECfp. Il POWER5 è alla base dei eServer i5 e p5. I miglioramenti rispetto al POWER4 includono una cache L2 più grande, un memory controller integrato nel chip, il multithreading simultaneo, che appare al sistema operativo come più CPU, un più avanzato sistema di gestione della potenza, una modalità single-tasking dedicata, l'Hypervisor (un sistema per la virtualizzazione) e l'eFuse (un hardware per la correzione degli errori. Ravi Arimilli, capo designer della IBM ha affermato: "Il POWER5 è un design intermedio, che può essere impiegato per impieghi ad alto livello o anche di basso livello come i blade.". I server basati su POWER5 offrono possibilità di virtualizzazione (cioè di presentazione delle risorse di sistema in un modo più legato al pensiero e alla logica umana che alla realtà del software o dell'hardware): logical partitioning e micro partitioning. Possono essere create fino a dieci LPAR (partizioni logiche) per ogni CPU, e il sistema più grande a 64 vie può gestire fino a 256 sistemi operativi indipendenti. La memoria, l'assorbimento della CPU e l'I/O possono essere trasferiti tra le partizioni.

Al 2005, è in corso lo sviluppo del POWER6 e del POWER7.

CPU derivate

Il PowerPC era essenzialmente un POWER1 le cui istruzioni di base erano in parte emulate via microcodice, usando una interfaccia bus basata sul design del Motorola 88000. Questo permise ad IBM di usare la CPU in molte workstation, cambiando solo la scheda madre. Da allora le architetture si sono differenziate, ma rimangono compatibili a livello di istruzioni.

La serie RS64 si basa sul PowerPC (e quindi sul POWER) ed è stata usata nelle linee RS/6000 ed AS/400. Essendo ottimizzata per applicazioni commerciali, non possiede la potenza nel calcolo in virgola mobile della serie POWER. Attualmente gli è subentrata la linea POWER4.

Il processore Cell è un altro derivato dell'architettura POWER, e include un core simile ad un processore POWER3 limitato nel calcolo in virgola mobile, accostato a otto processori vettoriali indipendenti. Destinato ad essere il cuore della futura Sony PlayStation 3, il processore sembra in grado di superare qualsiasi altra attuale architettura del mercato desktop nel calcolo parallelo e SIMD; caratteristiche che hanno catturato l'attenzione dell'intero settore.

Il processore Xenon, che andrà a comporre l'Xbox 360 di Microsoft, deriva invece dall'architettura PowerPC. Ha una struttura triple-core ed una velocità di 3,2 GHz.