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)