Motorola PowerPC:
la vendetta...
Cosi', a bruciapelo: cosa vi ricorda l'ottobre '91? Forse nulla o forse tutto. Nulla se siete un po' sbadati. Tutto se, come il sottoscritto, sperate in un futuro del personal computing tutt'altro che piatto. In quella data, infatti, Apple, IBM e Motorola annunciavano un accordo per una comune architettura RISC per il futuro denominata PowerPC. 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 (nemmeno tanto nuova, come vedremo) consentira' di mantenere attraverso tutti questi ambienti la compatibilita' software. In conseguenza della diretta discendenza dalla preesistente architettura Power (da non confondere con PowerPC) utilizzata nelle workstation e server IBM RS/6000, le future macchine basate su PowerPC potranno trarre vantaggio dalla vasta base di applicazioni AIX gia' sviluppate per queste piattaforme.
L'origine: l'architettura Power
Power, sviluppata da IBM per le sue macchine RS/6000, 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)
Inoltre presenta alcune ulteriori caratteristiche tali da distinguerla nettamente da altre macchine RISC. Disponendo, ad esempio, di tre unita' esecutive indipendenti (una branch unit, una integer unit e una floating-point unit) le istruzioni differenti possono essere eseguite parallelamente e nel medesimo ciclo di clock: da questo la sua caratteristica di processore superscalare. Oltre a questo l'architettura Power include diverse istruzioni "composte" che consentono di ottimizzare la lunghezza del codice, senza pero' ricadere nei problemi tipici delle macchine CISC che hanno si' istruzioni molto potenti ma per questo anche tanto complesse. Per citare un esempio, nelle chiamate di procedura delle macchine RISC una notevole espansione del codice era dovuta al salvataggio e al ripristino dei registri prima del "salto" vero e proprio e subito dopo il "return". Per far fronte a questo problema, IBM introdusse le istruzioni di load e store "multiplo" che permettevano di caricare e scaricare in memoria un insieme di registri in una sola istruzione.
Un ulteriore aspetto che differenzia Power dalle comuni architetture RISC riguarda il fatto che il formato floating point e' compreso tra i tipi di dato di prima classe. In pratica il floating point non e' stato aggiunto a posteriori ne' considerato come una caratteristica opzionale attraverso un coprocessore, ma e' direttamente implementato nel set istruzioni del processore esattamente come di tipi di dato standard, interi e dati logici. Cio' significa che il floating point e' una caratteristica completamente integrata nel processore e offre maggiori prestazioni nelle applicazioni in virgola mobile. 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. L'architettura supporta sia i dati in singola che in doppia precisione anche se i primi in ogni caso vengono convertiti nel formato doppia precisione quando sono caricati dalla memoria ai registri interni e tutte le istruzioni aritmetiche sono eseguite in questa modalita'. Il set di istruzioni floating point comprende una serie di istruzioni "moltiplica-e-somma" che consentono di migliorare drasticamente le prestazioni di molti algoritmi.
L'evoluzione: PowerPC
Con la necessita' di soddisfare le diverse esigenze di Motorola, IBM e Apple, e al tempo stesso conciliarne le previsioni a lungo termine sono state effettuate alcune modifiche all'architettura Power, mantenendo la compatibilita' software con le macchine RS/6000, dando vita al neo nato PowerPC. Il set di istruzioni di Power, ad esempio, e' stato ridimensionato per facilitare la realizzazione di versioni single chip a basso costo. Altre funzioni sono state rimosse per semplificare la realizzazione di future versioni superscalari molto aggressive. Oltre a questo, l'architettura e' stata estesa integralmente a 64 bit, per prolungare il ciclo di vita di PowerPC, partendo cioe' gia' da una piattaforma sufficiente a coprire tutte le esigenze di calcolo dei prossimi dieci anni.
Naturalmente e' stata posta particolare cura nel garantire che le funzioni di Power non piu' residenti in PowerPC possano ancora essere implementate attraverso meccanismi di "trap & emulate" in modo da consentire ai nuovi processori comunque la compatibilita' binaria per tutti il software gia' esistente per Power.
Ma 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). Troviamo inoltre un modello di ordinamento della memoria molto leggero con possibilita' di congelamento della stessa e di sincronizzazione da parte dell'utente (per il multiprocessor).
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.
Il futuro e' presente...
Un anno e mezzo fa (ottobre '91) non si sapeva bene quanto tempo avremmo dovuto aspettare per "toccare con mano" i frutti di quel fatidico accordo. Oggi PowerPC non solo esiste, ma e' gia' in fase di campionatura: la produzione in volumi iniziera' nel terzo trimestre '93. Il primo processore basato su questa architettura si chiama PowerPC MPC601 ed e' classificato come un dispositivo di media dimensione, medie prestazioni, adatto per sistemi desktop di costo medio-basso single processor ma anche per sistemi multiprocessor di fascia alta.
Sul mercato americano, per quantitativi minimi di 20.000 pezzi, la versione MPC601 a 50 MHz avra' un prezzo unitario di 280 dollari mentre la versione a 66 MHz costera'' 374 dollari. Riguardo le prestazioni del nuovo chip, le valutazioni iniziali, basate sul benchmark SPECmark 92, stimano che sia in grado di superare i 60 SPECint e gli 80 SPECfp. MPC601, che integra in circa 11 millimetri quadrati 2.8 milioni di transistor, e' il primo di quattro microprocessori PowerPC che saranno progettati e prodotti da Motorola e IBM: gli altri tre si chiameranno MPC603, 604 e 620. Il piu' potente della serie raggiungera' prestazioni dell'ordine dei 300/500 SPECmark. Un singolo chip... provate ad immaginare cosa succedera' su una macchina multiprocessor basata su PowerPC MPC 620!
Somerset: Design Center per i PowerPC
IBM e Motorola, con la partecipazione di Apple, hanno messo in piedi un centro di progettazione e sviluppo per i futuri processori PowerPC: il Design Center di Somerset, nei pressi di Austin, Texas. Occupa un'area di circa 3.400 metri quadri e ospita un staff tecnico di circa trecento progettisti provenienti sia da Motorola che da IBM, operanti in parallelo sui quattro distinti processori PowerPC attualmente previsti. I progettisti del nuovo centro di Somerset utilizzeranno una metodologia formale VLSI derivata dai migliori tool CAD di IBM e Motorola. Questi strumenti combineranno la rapidita' di un progetto dei tool IBM con la capacita' di integrazione che Motorola ha utilizzato per produrre i microprocessori ad alte prestazioni in larghi volumi per il mercato commerciale. I nuovi progetti utilizzeranno una tecnologia avanzata da 0.5 micron che si basa su un set di regole di progetto comune tra IBM e Motorola. Quest'ultima produrra' questi dispositivi in volumi nel nuovo stabilimento MOS11 (0.35 micron front-end) di Austin.
Solaris su PowerPC
SunSoft Inc., consociata software di Sun Microsystem Inc. ha annunciato che sviluppera' una versione del suo ambiente software Solaris per l'architettura PowerPC. Contemporaneamente Motorola cooperera' con il gruppo di sviluppo di SunSoft in modo da assicurare che Solaris sia ottimizzato per la piattaforma PowerPC.
"Questo annuncio di collaborazione con SunSoft sottolinea la continua espansione dell'architettura PowerPC nel settore del computer" ha detto Murray Coldman, assistente direttore generale del settore Semiconduttori Motorola; "Motorola e' determinata a portare tutta la gamma di prestazioni e di versatilita' dell'architettura PowerPC ai diversi ambienti Unix in accordo con le necessita' dei clienti"
Scott MacNealy, presidente e direttore generale di Sun Microsystem Inc. ha cosi' commentato: "il successo che Solaris sta incontrando sul mercato trova una naturale continuazione nell'annuncio odierno. La disponibilita' di Solaris su PowerPC espande considerevolmente la nostra posizione di fornitore in un campo molto piu' vasto del settore computer".
PowerOpen Association
Apple, Bull, Harris, IBM, Motorola, Tadpole Technology e Thomson-CSF, ossia sette dei principali produttori leader in settori tecnologici fra i piu' diversificati ma tutti riconducibili all'area computer, hanno annunciato la costituzione di un gruppo indipendente, denominato PowerOpen Association Inc., che avra' lo scopo di promuovere l'ambiente PowerOpen e di fornire ai progettisti software i servizi di supporto allo sviluppo di prodotti in questo ambiente.
Nel suo quartier generale, nei pressi di Boston, l'Associazione PowerOpen operera' per mettere a punto strumenti di sviluppo e servizi che verranno messi a disposizione dei progettisti software. Inoltre essa si rivolgera' a tutto il settore promuovendo l'ambiente PowerOpen e costituira' un'assemblea neutrale attraverso la quale i membri potranno partecipare per definire le future migliorie.
L'ambiente PowerOpen comprende l'architettura RISC PowerPC e le specifiche ABI (Application Binary Interface), offrendo l'alternativa fra ambienti basati su OSD/Motif o su Macintosh. L'associazione sta attivamente ricercando altri fornitori di sistemi, progettisti software ed utenti finali interessati a supportare questa nuova generazione di macchine che sfruttera' appieno le potenzialita' dell'ambiente PowerOpen.
L'associazione offrira' ai suoi membri molti e diversificati servizi per rendere loro piu' agevole l'integrazione della tecnologia PowerOpen ed accelerare le vendite del software e dei sistemi che produrranno. Nell'ambito del servizio di supporto sono fondamentali i sistemi e le sequenze di test per le applicazioni, che consentono ai membri di verificare la congruenza con le specifiche ABI, nonche' l'assistenza tecnica necessaria allo sviluppo di programmi applicativi in ambiente PowerOpen.
Intanto il 68060...
Se da una parte siamo in molti a credere in un futuro RISC dell'informatica personale e non, in Motorola non vi e' naturalmente nessuna intenzione di abbandonare le macchine CISC, quantomeno per quel che riguarda l'evoluzione di famiglie preesistenti. Quella del 68000, ad esempio, era ferma da circa tre anni al suo attuale modello di punta, il 68040, utilizzato ormai gia' da diverse macchine basate su piattaforma 68xxx. Ed e' da circa un anno che aspettavo con ansia l'annuncio del suo successore, il 68050, che a quanto pare non vedra' affatto la luce: molto dignitosamente e' stato abbandonato lo sviluppo di questo chip poiche' rappresentava solo un piccolo passo avanti rispetto al 68040 per dedicarsi con tutte le forze al "passo successivo", rappresentato dall'incredibile 68060 che vi descriviamo in anteprima in questo riquadro. Si tratta, come avrete capito, di un prodotto ancora in fase di sviluppo, e le informazioni che pubblichiamo sono ricavate da un documento ufficiale Motorola sul quale e' ben evidenziato che si tratta di "informazioni su un prodotto in fase di sviluppo", che quindi potranno anche non corrispondere completamente sul chip una volta in produzione. I primi campioni comunque sono previsti per il secondo semestre di quest'anno, quindi dire che ormai ci siamo e' proprio d'obbligo...
Descrizione
Il Motorola MC 68060 e' un processore a 32 bit ad alte prestazioni, superscalare, compatibile con tutta la famiglia 68000, e con possibilita' di operare a basso consumo. Al suo interno, gli oltre due milioni di transistor, integrati in tecnologia 0.5 micron triplo strato di metallizzazione funzionanti a 3.3 V, implementano una doppia cache interna, due indipendenti demand-page MMU sia per i dati che per le istruzioni, una doppia pipeline per le istruzioni intere, un'unita' floating point e una branch target cache.
Un alto grado di parallelismo interno e' ottenuto attraverso l'utilizzo di architettura interna Harward, bus interni multipli, unita' di esecuzione indipendenti che permettono l'esecuzione parallela di due istruzioni.
Una parte chiave del nuovo 68060 e' rappresentata dal cosiddetto "power management" che permette di traslare via software, attraverso l'istruzione LPSTOP, al modo di funzionamento a basso assorbimento. Oltre a questo, essendo realizzato in tecnologia "static", quando il chip non e' utilizzato, non assorbe corrente. Inoltre ogni unita' interna puo' essere singolarmente disabilitata per ricevere l'opportuna alimentazione solo durante il suo effettivo utilizzo.
Performance
Le simulazioni attualmente effettuate da Motorola indicano un incremento di circa il 50-70% dovuto alla nuova architettura e del 100% grazie al clock raddoppiato. Rispetto quindi ad un 68040 a 25 MHz, il futuro 68060 a 50 MHz andra' piu' del triplo piu' veloce. Tutto cio' senza effettuare ricompilazione del codice: ottimizzando anche questo ci si aspetta di ottenere un ulteriore 15-25% in piu'.
Il 68060 e' una macchina a parallelismo interno spinto contenente al suo interno una sezione instruction-fecth indipendente da una unita' di esecuzione superscalare. Un'apposita cache per i branch e' utilizzata per ridurre i tempi di ritardo dovuti ai salti effettuati in una architettura pipeline come quella del 68060: basandosi sulla "storia" precedente del codice in esecuzione e' in grado di predire (statisticamente parlando) il fecth del flusso di istruzioni.
L'Instruction Fetch Pipeline provvede a fornire all'Operand Execution Pipeline un continuo flusso di istruzioni da eseguire. Questa contiene a sua volta due pipeline parallele che permettono di eseguire piu' di un'istruzione completa in ogni ciclo di clock (da qui il fatto di essere superscalare). L'architettura Harward del 68060 fa si' che siano possibili accessi simultanei tanto alla cache istruzioni che alla cache dati. Inoltre, per raggiungere performance superscalari, la cache dei dati e' a sua volta "multiported" per un accesso simultaneo da parte delle due pipeline parallele della Operand Execution Unit.