Articolo pubblicato sul n. 93 di MCmicrocomputer (Edizioni Technimedia Srl - Roma) nel febbraio 1990 Motorola 68040 «Ne vedremo delle belle». Questo è quanto ho pensato durante il breve viaggio necessario a raggiungere Milano in occasione della presentazione ufficiale del nuovo «iper processore.» della Motorola, il 68040. Che sarebbe uscito, si sapeva; che come il suo concorrente lntel 80486, fosse una reintegrazione su singolo chip di componenti finora separati si sapeva pure; ma che le caratteristiche del nuovo nato fossero tali e tante da far rabbrividire qualsiasi altro oggetto a base di silicio mai prodotto potevamo solo augurarcelo e/o sospettarlo, nulla di più.
MC 68040
Completamente compatibile con tutta la sua famiglia di predecessori, il 68040 conta su ben un milione e duecentomila transistor integrati su singolo chip grazie alla tecnologia HCMOS da 0.8 micron. Attualmente c1ock-ato a 25 MHz, i suoi «numeri» parlano abbastanza chiaro: 20 MIPS, 3,5 MFLOPS, 1,3 cicli di c10ck per istruzione, 2 cache memory e 2 MMU fanno di questo CISC (Complex lnstruction-Set Computer) una macchina dalle capacità formidabili. Tali livelli di velocità sono stati raggiunti utilizzando contemporaneamente diverse tecniche, ognuna delle quali contribuisce in maniera considerevole alla enorme potenza di calcolo del processore. Prima fra tutte l'alta ingegnerizzazione che ha permesso di integrare su un solo pezzo di silicio le più importanti unità di cui oggi è composto un sistema di calcolo. Oltre al coprocessore matematico interno, perfettamente compatibile anch'esso col 68882 (ma «viaggiante» ad una velocità doppia). troviamo all'interno del 68040 anche due cache memory da 4 Kbyte l'una, per i dati e per le istruzioni. Accanto a queste, due MMU dirigono il traffico tra le unità di memoria interne e la memoria principale, naturalmente (ancora per poco?) esterna al processore vero e proprio. Anche la logica di interfacciamento al bus dispone del suo giusto quantitativo di «intelligenza» dato che è in grado di riconoscere il momento più opportuno per accedere al bus senza rallentare le rimanenti (tante) attività del 68040. Pare che fino a ben 14 operazioni simultaneamente in corso è possibile <dotografare» all'interno del chip in particolari situazioni. Come in ogni RISC che si rispetti (ehi, un momento! Ma il 68040 non è un RISC: è il modo come è stato realizzato che lo fa sembrare tale!) la maggior parte delle istruzioni macchina sono portate a termine in un solo ciclo di c10ck e le stesse (o, meglio, buona parte di queste) non sono interpretate a mezzo microprogramma, ma direttamente eseguite dall'hardware tutt'altro che «ridotto» . E siamo solo agli inizi: si parla ora di chip a 25 MHz tra breve disponibili in quantità ma sono anche citate nella documentazione versioni a 33 e 50 MHz. Chissà cosa dovremmo aspettarci dal successivo 050?
L'intelligenza nel silicio
Certo, 14 operazioni contemporaneamente sono davvero tante. Ma come diavolo è possibile ì La risposta, tutto sommato, non è poi nemmeno tanto difficile, una volta presa visione dello straordinario parallelismo «multi-level» implementato nel chip. Pensate che la sola unità intera ha un pipeline interno di grado 6, ovvero già da sola lavora su 6 istruzioni simultaneamente: mentre scrive in memoria il risultato dell'operazione X, esegue l'istruzione X + l, preleva i dati dell'istruzione X+2, calcola la locazione dei dati della X+3, decodifica l'istruzione X+4 e preleva dalla memoria l'istruzione X+5. Tutto nello stesso ciclo di clock. Il «vecchio» 68030 riusciva a fare lo stesso gioco su sole tre istruzioni ... E cosa succede se un salto condizionato interrompe il flusso di pipeline? AI 68040 proprio nulla, dal momento che non appena si incontra una di queste operazioni saltano fuori altri due indipendenti livelli di pipelining normalmente non utilizzati che provvedono a fare il prefeth e la decodifica delle istruzioni dove «forse» si dovrà saltare. Come dire che il processo re «ufficiosamente» fa anche di più di quanto appare da una visione esterna. Roba da non crederci! Anche l'unità floating point è al suo interno parallela. Lì gli stadi di pipelining sono tre e corrispondono alle fasi di conversione FP - integer (o viceversa). l'esecuzione dell'istruzione e la scrittura del risultato. Da notare che un ulteriore livello di parallelismo si ha tra le varie unità completamente indipendenti le une dalle altre: quando l'unità intera incontra una istruzione FP non deve far altro che inviarla all'unità matematica che effettuerà il calcolo mentre l'unità intera passerà a svolgere un altro compito. Anche per "unità FP le funzioni matematiche fondamentali come le addizioni e le moltiplicazioni in virgola mobile sono eseguite direttamente dall'hardware senza interpretazione a mezzo microprogramma. Non sono invece implementate internamente le funzioni trascendenti (seni, coseni, radici quadrate, ecc.) come accade invece con il 68882 e nonostante ciò le medesime operazioni trascendenti eseguite a mezzo di routine software fornite dalla stessa Motorola, sono eseguite ad una velocità superiore del 50%.
Cache e memory management
A differenza del 68020 che dispone al suo interno una sola cache da 256 byte e del 68030 che dispone di due cache da 256 byte, il nuovo nato Motorola ha due cache memory da 4 Kbyte l'una, ognuna dotata di MMU e cache control. L'importanza di disporre di MMU control separati risiede nel fatto che così facendo, dati ed istruzioni possono essere trasmessi in parallelo e non solo sequenzialmente (come accade nel 68030 e nell'80486, ahi, ahi, ahi!). Grazie alle due cache memory, la velocità di trasferimento delle informazioni raggiunge i 200 Mbyte per secondo. Davanti a tanta velocità e parallelismo c'è da chiedersi come si comporta il chip quando un dato richiesto non è presente nella cache interna ma occorre ripescarlo nella memoria principale. Semplice: la MMV lavora sempre e comunque, sia che il dato sia effettivamente disponibile nella cache che nel caso contrario. Nella fatti specie, mentre l'unità intera accede alla cache memory, la MMU anticipa un eventuale page fault traducendo contemporaneamente l'indirizzo logico nel corrispondente indirizzo fisico in modo da non perdere tempo nel caso sia necessario un accesso in memoria principale. Per quanto riguarda le operazioni di scrittura in memoria, i processori convenzionali utilizzanti cache memory, per mantenere la memoria principale aggiornata, parallelamente alla scrittura in cache effettuano la scrittura anche in memoria principale. Se da una parte tale schema di funzionamento permette di mantenere sempre coerenza tra i dati in memoria e i dati in cache, il più delle volte può risultare superfluo se i dati appena scritti devono essere nuovamente modificati. Non dimentichiamo infatti che in un moderno calcolatore il bus con la memoria non è più «proprietà privata» del processare ma è condiviso con tutti i dispositivi DMA collegati. E se risparmiamo accessi in memoria, la velocità globale del sistema aumenta sensibilmente. Il 68040, accanto alla modalità «write-through» che esegue sempre e comunque una doppia scrittura, fornisce una modalità alternativa detta «copyback» che aggiorna la memoria principale ad intermittenza, quando il bus non è richiesto per altre funzioni del sistema. Per finire, un'ulteriore caratteristica originale del 68040 è costituita dalla modalità «finestra di memoria trasparente» con la quale il processore scavalca completamente la MMU quando si eseguono operazioni su celle contigue di memoria e l'indirizzo fisico coincide con l'indirizzo logico (a meno di un displacement, ndr) e dunque non è richiesta alcuna traduzione.
Bus control unit
Quando è richiesta un'operazione di scrittura in memoria, l'unità intera ordina all'unità di controllo bus di eseguire la scrittura e passa ad eseguire un altro compito. Se il bus in quel momento non è libero, l'unità di controllo bus aspetta un momento più favorevole per eseguire l'operazione. Il tutto in maniera completamente indipendente dall'operato delle restanti unità del 68040. Per quanto riguarda invece i trasferimenti da e verso la cache memory, l'unità di interfaccia permette la modalità «burst» di trasferimento dati nei due sensi che permette rapidi passaggi di blocchi di dati tra cache e memoria principale. Per la cronaca, il 68030 così come 1'80486 permette la modalità burst in lettura ma non in scrittura. Se invece i nostri bravi 68040 saranno utilizzati in sistemi multiprocessor (speriamo presto!) grazie alla funzione di «bus snooping» siamo al riparo anche da incoerenza tra le varie cache presenti in tutti i processori del sistema. Questo nell'augurabile caso di multiprocessor dotati di spazio di indirizzamento comune e non separato. Può succedere infatti che due o più processori accedano alle stesse celle di memoria per prelevare dati e una modifica a questi da parte di un processore deve naturalmente essere tenuta in considerazione anche dagli altri. L'unità di interfaccia bus sorveglia l'attività del bus di sistema: se rileva che un altro processo re ha richiesto dati alla memoria principale, blocca immediatamente la propria cache per vedere se i dati richiesti sono stati in qualche modo alterati. Se si verifica questo, l'unità di interfaccia intercetta la richiesta e invia la propria versione aggiornata del dato verso i processori che l'hanno richiesta. In questo modo i rimanenti processori non vedono mai "informazione obsoleta nella memoria principale. Ma il 68040, ancora una volta, non si ferma qui e prevede bus snooping anche per le operazioni di scrittura in memoria, con un funzionamento complementare a quello testé descritto. Se rivela che nuovi dati vengono scritti in memoria da un altro processore, verifica se nella propria cache esiste una vecchia versione di quei dati per, eventualmente, aggiornarli.
Conclusioni
Davanti a tanta potenza di calcolo non possiamo che auspicare un futuro più che roseo per tale processore che, non l'abbiamo ancora detto, arriverà sul mercato in quantità nei prossimi mesi e ad un prezzo relativamente basso: 795 dollari per chip. Poco più in là saranno disponibili anche i chip più veloci, prima a 33 MHz e poi a 50. Noi speriamo solo di vedere al più presto non solo numeri sempre più invitanti, ma anche macchine (ben) funzionanti sulle scrivanie più efficienti. A quando allora un Super NeXT, un Macintosh III e un Amiga 4000?
Bull e Motorola
Impaginato originale... Articolo pubblicato su www.digiTANTO.it - per ulteriori informazioni clicca qui |