Articolo pubblicato sul n. 135 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel dicembre 1993

MCmicrocomputer


Anteprima:
Motorola PowerPC 603

di Andrea de Prisco  

Rispettando in pieno la tabella di marcia da lungo fissata, Motorola "sforna" il secondo nato della famiglia PowerPC, l'MPC603. Con prestazioni paragonabili a quelle del primogenito MPC 601 (di cui vi abbiamo gia' parlato sul numero 130 di MCmicrocomputer) il nuovo processore di questa innovativa famiglia si differenzia dal primo per la sua costruzione semplificata che ne rende favorevole l'utilizzo in sistemi desktop di fascia bassa e, grazie al basso consumo e all'alimentazione a 3.3 V, nei sistemi laptop.Copertina del numero di MCmicrocomputer contenente l'articolo

 

Un solido accordo

 

PowerPC, come noto, e' un'architettura RISC nata da un accordo tra tre grandi colossi dell'informatica e della microelettronica mondiale: Apple, IBM e Motorola. Destinata a coprire tutti gli ambienti di calcolo, dai portatili ai supercomputer senza dimenticare ne' i mainframe ne' gli embedded controller per applicazioni in real time, questa architettura (fortemente ispirata all'architettura Power dei sistemi IBM RS/6000) consentira' di mantenere attraverso tutti questi ambienti l'assoluta compatibilita' software. Inoltre, grazie alla diretta discendenza dalla preesistente architettura Power, le macchine  PowerPC possono immediatamente utilizzare le applicazioni AIX gia' sviluppate per queste piattaforme. Senza contare che, attraverso opportuni emulatori software facenti parte integrante dell'intero progetto, le macchine PowerPC potranno eseguire con performance piu' che soddisfacenti anche programmi DOS e Macintosh System 7.

 

Da Power a PowerPC

 

Power, per chi non lo sapesse, e' l'acronimo di Performance Optimized With Enhanced RISC. E' l'architettura sviluppata da IBM per le sue macchine RS/6000, PowerPC non e' che una implementazione single chip a basso costo di questa architettura e rispetta i concetti fondamentali delle architetture RISC: istruzioni a lunghezza fissa, operazioni registro-registro, lettura/scrittura registri-memoria, Istruzioni semplici e modi di indirizzamento elementare, un set di registri esteso, istruzioni anche a tre operandi (non distruttive).

Essendo un processore superscalare, dispone di tre unita' esecutive indipendenti (una branch unit, una integer unit e una floating-point unit) grazie alle quali istruzioni differenti possono essere eseguite parallelamente e nel medesimo ciclo di clock.

Diversamente dalle comuni architetture RISC, nei processori Power il formato floating point e' compreso tra i tipi di dato di prima classe: non viene considerato come una caratteristica opzionale e trattato da un coprocessore, ma e' direttamente implementato nel set istruzioni del processore stesso esattamente come i tipi di dato standard, interi e  logici. Power supporta il formato standard floating point IEEE-754, utilizza un set di 32 registri in doppia precisione che fanno parte dell'unita' a virgola mobile e che sono separati dai registri generali dell'unita' intera. Il set di istruzioni floating point comprende una serie di istruzioni "moltiplica-e-somma" che consentono di migliorare drasticamente le prestazioni di molti algoritmi.

Nell'implementazione di PowerPC, il set di istruzioni di Power e' stato ridimensionato per facilitare la realizzazione di versioni single chip a basso costo. Contemporaneamente alcune funzioni sono state eliminate per semplificare la futura realizzazione di versioni superscalari molto aggressive. Inoltre, l'architettura e' stata estesa integralmente a 64 bit, per prolungare il ciclo di vita di PowerPC, partendo da una piattaforma sufficiente a coprire tutte le esigenze di calcolo dei prossimi dieci anni.

Per garantire comunque la totale compatibilita' con le applicazioni Power, tutte le funzioni non piu' residenti possono essere implementate attraverso meccanismi di "trap & emulate". A fronte delle relative esemplificazioni, troviamo d'altro canto un potenziamento del set di istruzioni per schedulare esplicitamente i dati da introdurre ed estrarre sotto il controllo dell'utente, nonche' l'aggiunta di istruzioni floating point in singola precisione (Power supporta solo la doppia precisione). Ma il cambiamento piu' significativo da Power a PowerPC riguarda, come detto, l'estensione dell'architettura da 32 a 64 bit: esisteranno sia PowerPC a 32 che a 64 bit, ma tutti i processori saranno in grado di lavorare a 32. Le versioni a 64 bit avranno uno switch selezionabile a livello di codice utente per passare da 32 a 64 bit e viceversa. Cio' consentira' alle implementazioni a 32 bit di girare anche su quelle a 64 bit con un kernel di sistema operativo a 64 bit, permettendo nel contempo alle nuove applicazioni a 64 bit di utilizzare le vecchie librerie a 32.

 

MPC603: un'architettura superscalare a basso consumo

 

Come recita il suo depliant, il "PowerPC 603 offre le performance tipiche di una workstation in un design a basso costo, basso consumo, ideale per computer desktop, notebook o, piu' in generale, sistemi alimentati a batterie". Grazie alla sua architettura superscalare (comune a tutti i processori PowerPC) e' in grado di eseguire tre istruzioni per ciclo di clock grazie alla presenza di cinque unita' di esecuzione indipendenti: unita' intera, unita' floating point, unita' branch, load/store e system register. Realizzato in tecnologia static CMOS da 0.5 micron su una superficie di 85 millimetri quadrati e 1.6 milioni di transistor, la caratteristica principale di PowerPC 603 e' il basso consumo. Alla sua massima potenza consuma appena 3 W offrendo, per la versione a 66 MHz, performance dell'ordine dei 60 SPECint92 e 70 SPECfp92. All'interno del chip e' implementato un sofisticato meccanismo di risparmio energetico che permette di impostare quattro distinti modi di funzionamento agendo su opportuni registri interni del processore. Il primo, Full-Power, e' quello di default e come indica il suo nome fa si' che tutte le unita' interne del chip siano utilizzate alla massima velocita' di clock ammessa. Anche in questo stato, se viene settato il "dynamic power management", le varie unita' non utilizzate vengono automaticamente e dinamicamente poste in stato di basso consumo senza minimamente inficiare le performance.

Il primo dei tre stati Low-Power si chiama "Doze" e provoca la disabilitazione di tutte le unita' interne ad eccezione della sola logica di controllo bus e dei registri della base dei tempi. Da questo stato l'MPC603 passa in Full-Power a seguito di un interrupt esterno asincrono, di una eccezione di sistema, di un reset hardware o software, di una eccezione da timer.

Nel secondo stato Low-Power, denominato "Nap", l'MPC603 disabilita anche la logica di controllo del bus, riducendo ulteriormente la potenza assorbita. Anche in questo stato il ritorno al "Full-Power" avviene in pochi cicli di clock.

Nel terzo stato Low-Power, non a caso denominato "Sleep", tutte le unita' funzionali interne vengono disabilitate ed e' possibile fermare completamente anche il clock di sistema. Per "resuscitare" dallo stato di Sleep e' necessario abilitare la logica PLL (Phase-Locked Loop), riattivare il clock di sistema, e solo dopo effettuare un interrupt esterno, una eccezione di sistema, un reset hardware o software o un MCP (Machine Check Input).


Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui