Negli ultimi giorni, si è assistito alla pubblicazione di una serie di notizie riguardanti l’operazione comunemente nota come die shrink e i problemi ed i vantaggi ad essa connessi. Ad iniziare dalla notizia del passaggio a 55 nm della serie GT200 di nVidia, alla notizia degli studi condotti sui cosiddetti chip “probabilistici” o imprecisi, che si prefiggono lo scopo di ridurre notevolmente le tensioni di alimentazione dei processori contenendo drasticamente i consumi, a scapito di una “ragionevole” minor precisione.
A queste si aggiunge lo shrink a 45 nm del Cell, la cpu progettata da IBM che ha trovato notorietà presso il grande pubblico per il fatto che, tra le altre cose, equipaggia la Playstation 3.
Ma quali vantaggi dà la riduzione delle geometrie di un chip? D’istinto verrebbe da rispondere: maggiori rese produttive; consumi più contenuti, maggiori frequenze di funzionamento. Quindi, in poche parole, maggior risparmio e prestazioni superiori.
In linea di massima la precedenti affermazioni sono tutte vere ma il passaggio da un processo produttivo ad un altro non è sempre lineare, esente da problemi e di facile ed immediata realizzazione.
Innanzitutto si deve distinguere tra due tipologie di shrink, definite full node ed half node rispettivamente. Si distinguono tra di loro poiché, mentre la seconda comporta una semplice riduzione delle geometrie del chip, la prima obbliga a ridisegnare buona parte delle librerie e a riprogettare le interfacce tra il silicio e le metallizzazioni e, in molti casi, le disposizioni degli stessi connettori metallici.
Per quale motivo ciò avviene?
Intorno al 1965, Gordon Moore iniziò a formulare una serie di ipotesi, frutto di osservazioni relative al ritmo di crescita della complessità dei processori ed all’aumento dei costi dei macchinari che servivano a produrre quei processori. Queste osservazioni, raggruppate e rese organiche, divennero vere e proprie leggi che, nonostante la modifica dei ritmi di crescita nel corso degli anni, conservano ancora una loro validità.
Il raddoppio delle prestazioni previsto da Moore era fissato, originariamente, ogni 12 mesi. Negli ultimi anni si è assistito ad un rallentamento di questa crescita, passando a 18 e, in qualche caso, anche a 24 mesi. I motivi di questi rallentamenti sono molteplici ma, tra i principali, ci sono sicuramente i problemi che sono iniziati a sorgere nel momento in cui ci si è accorti che diventava sempre più difficile operare una riduzione dei consumi e un contenimento delle temperature e dei fenomeni parassiti indesiderati, al diminuire delle geometrie.
Il passaggio da tecnologie “ibride” nmos, bipolari, cmos alla tecnologia cmos “pura”, permise di ridurre drasticamente il problema della dissipazione termica e di raggiungere livelli di integrazione impensabili in precedenza. Un circuito cmos, in teoria, non dissipa potenza statica.
Nella pratica, tutta una serie di effetti “indesiderati” (correnti di sottosoglia, carica e scarica di capacità parassite, dispersioni delle giunzioni, correnti di cortocircuito durante la commutazione tra le fasi di pull up e pull down delle due reti p-mos e n-mos di cui un circuito cmos è costituito, ecc), del tutto irrilevanti in un circuito relativamente semplice, rappresentano, ormai, circa la metà della potenza che viene dissipata in un circuito VLSI.
La presenza di questi fenomeni rende sempre più complicata la progettazione e lo scaling di circuiti complessi come quelli di una moderna cpu o gpu e costringe all’adozione di tecnologie sempre più sofisticate e costose per tenerli sotto controllo.
La conseguenza pratica è che, nel momento in cui si fa un’operazione di scaling, ci si può ritrovare a veder aumentati gli effetti parassiti con una diminuzione del rapporto segnale rumore. Per riequilibrare il giusto valore (e possibilmente incrementarlo), si adottano soluzioni che tendono a ridurre, ad esempio, fenomeni come il transistor latchup che è un “accoppiamento” capacitivo parassita tra transistor contigui tramite l’utilizzo di “trincee” ricavate tra i transistor che hanno lo scopo di isolarli fisicamente; oppure mediante tecniche come la SOI di IBM (usata anche per il cell) che consiste nel depositare il silicio su strati di materiali isolanti.
Un’altra tecnica è quella nota come low-k; consiste nell’uso di materiali a basso accoppiamento “capacitivo” da interporre tra le connessioni metalliche per ridurre, anche in questo caso, l’effetto “condensatore”, con due piste adiacenti che fanno da armature.
Una tecnica usata per il duplice scopo di migliorare il SNR e ridurre le tensioni di alimentazione del circuito è quella che prevede l’uso di materiali high-k. In questo caso si utilizza un materiale ad elevato accoppiamento capacitivo da interporre nel canale source-drain del transistor, in modo che l’accoppiamento tra gate e source, che pilota i transitori, richieda una tensione di ingresso inferiore in valore assoluto.
Questo permette di ridurre, di conseguenza, anche la tensione di alimentazione (Vdd) e contenere le correnti di leakage. Al diminuire della lunghezza del canale source-drain, diminuisce, di conseguenza, anche la resistenza e, conseguentemente, si deve ridimensionare, in proporzione, anche la larghezza dello stesso canale, per evitare che le correnti di leakage aumentino in maniera incontrollabile.
Un’altra strategia atta a ridurre le correnti di dispersione è quella conosciuta come strained silicon: in parole povere, si “stira” il silicio per creare una direzione privilegiata per il movimento delle cariche, riducendo la loro dispersione in altre direzioni.
Tutte queste tecnologie possono essere adoperate anche contemporaneamente su uno stesso wafer. Ovviamente ognuna di esse fa aumentare il costo del silicio.
Tornando alle due tipologie di shrink. Dovrebbe risultare chiaro, a questo punto, che a volte la riduzione delle geometrie non comporta una crescita preoccupante dei suddetti fenomeni ed, in tal caso, si può procedere alla semplice operazione di miniaturizzazione.
Processi di tipo half node, in ambito gpu, sono stati, ad esempio, il passaggio da 90 a 80 nm e quello da 65 a 55 nm. Al contrario, shrink full node sono quelli in cui si rende necessario intervenire con l’adozione di tecniche per il contenimento dei fenomeni parassiti.
A questa classificazione sommaria, se ne aggiunge un’altra: poiché non tutti i chip che vengono prodotti adottando un determinato node saranno adibiti allo stesso scopo (i 65 nm non servono, ad esempio, solo per cpu o gpu, ma anche per chip meno complessi e non destinati ad equipaggiare sistemi ad elevate prestazioni), possono esistere differenti tipologie dello stesso processo produttivo, che potremmo definire LP (low power process), per circuiti non destinati a lavorare ad alte frequenze o a dissipare elevate potenze e G (general purpose process), per circuiti di dispositivi di tipo high end.
Questa distinzione può portare alla necessità di modificare le librerie di un processo produttivo meno raffinato, qualora questo sia di tipo LP e il suo shrink richiede caratteristiche di tipo G. In tal caso, uno shrink che dovrebbe rientrare nella categoria degli half node rischia di trasformarsi in un full node.
A fronte di tutte queste considerazioni, sembra che un’operazione di shrink sia quasi controproducente. Di fatto, non è così, in quanto, a bilanciare le molte difficoltà ci sono degli innegabili vantaggi. Il principale è che la riduzione delle dimensioni del chip permette di ricavare molti più die dallo stesso wafer.
Ad esempio, nel caso proprio del Cell, passando da 65 a 45 nm si ottiene un ridimensionamento del die da 174 a 115 mm^2 che, tenendo conto degli scarti sui bordi, può portare ad un incremento di oltre 150 unità per singolo wafer (rispetto alle 350-360 attuali). Questo aumento è in grado di compensare abbondantemente gli aumenti di costo del wafer, imputabili all’utilizzo di un processo più “raffinato” e anche eventuali costi di R&D per aggiornare le librerie esistenti, qualora si fosse reso necessario.
Quindi, maggiori economie, consumi più bassi e, qualora servisse, persino prestazioni più elevate.
Unico inconveniente è che ci stiamo avvicinando al limite di questa tecnologia. Il rallentamento nella corsa al raddoppio delle prestazioni è un indice delle sempre maggiori difficoltà che si stanno incontrando nella ricerca delle soluzioni che consentano di mantenere un buon livello del SNR senza arrivare a costi esorbitanti per la ricerca di nuovi materiali e tecnologie.
In futuro avremo modo di tornare su questi argomenti ed approfondirne o spiegarne alcuni aspetti. Lo scopo di questa breve esposizione era soltanto quello di introdurre alcuni argomenti su cui si avrà modo di tornare in futuro.
Quindi, spero che non me ne vogliano né coloro che sono perfettamente a conoscenza degli argomenti toccati e che possono giudicare la trattazione poco stimolante e neppure coloro che non conoscono niente di questi argomenti e che hanno sentito parlare di cose aliene per nulla illustrate in modo da facilitarne la comprensione.
Capisco anche che sarebbe stato molto più interessante parlare di alu, tmu, controller, antialiasing, ecc. e che non è necessario parlare del silicio e della sua lavorazione per affrontare questi argomenti.
Però un’introduzione, magari frammentaria e poco approfondita, può aiutare a chiarire le motivazioni di scelte come quelle, ad esempio, di decidere di seguire la strada delle architetture multicore, oppure del perché far uso di un compilatore per l’gestire l’ILP di un chip o, magari, di ciò che c’è dietro la decisione di sacrificare un’intera produzione di chip per passare alla successiva generazione nel più breve tempo possibile.
gran bell’articolo complimenti molto tecnico e che fa capire come dici nelle conclusioni la ricerca di altre vie oltre alla riduzione del processo produttivo x aumentare le prestazioni nel rispetto della legge di moore
si sposta sempre più in basso il punto di miniaturizzazione e se un tempo si considerava il limite del silicio i 32nm ora pare che si possa arrivare fino a 22 o addirittura (ma leggevo in internet sarà molto difficile) 11nm poi sarà proprio impossibile e allora davvero non basteranno i die shrink, i quad 8 16 core ma una vera e propria tecnologia basata su o altri elementi o altre architetture completamente diverse (computer quantici?)
Io avevo sentito che il limite fisico era sugli 8-9nm, ma anche fosse 11 siamo sempre li, ormai siamo vicini al limite per chip 2D, forse si riuscirà ad incrementare le prestazioni di un altro ordine di grandezza rispetto ad adesso… poi penso si dovrà per forza passare ad altro, magari a chip 3D
Una curiosità, Stefano. Passando a processi produttivi inferiori (come dimensione), è vero, come hai detto, che aumentano il numero di die estraibili, ma non aumentano anche i difetti riscontrabili nei chip e, quindi, le possibilità di gettare via un certo numero di die?
Anche yossarian su AD!!! Spettacolo! :D
Non esiste nessuna LEGGE di Moore, legge intesa come legge fisica (tipo legge della gravitazione universale).
Da nessuna parte e’ scritto che i chip ogni x mesi debbano avere il doppio dei transitor. Se negli ultimi decenni si e’ rispettata la “legge”/”osservazione” di Moore e’ solo perche’ e’ un modo per non far scendere di prezzo le cpu, non renderle “commoditized” come direbbero gli anglossassoni.
Si aumentano le prestazioni (raddoppiando il numero dei transitor) a fronte di un prezzo che rimane generalmente invariato di generazione in generazione.
Ora che per motivi fisici non e’ piu’ possibile continuare a stipare un numero sempre maggiore di transitor nei processori, si dovra’ percorrere un altra strada. Chip piu’ efficienti ? Prezzi ridotti ? Prestazioni piu’ o meno costanti da una generazione all’altra ?
Siccome non e’ possibile editare un post, volevo scrivere transistor non transitor. ;)
@goldorak
A me non sembra che le cose siano andate così… è un dato di fatto che negli ultimi 30 anni i prezzi dei componenti elettronici siano andati sempre più in basso. Negli anni 80 un computer ti costava milioni (equivalenti a decine di migliaia di euro di adesso), nei primi anni 90 4-5 milioni di lire (e lo stipendio medio arrivava intorno al milione), a fine anni 90 2-3 milioni (con lo stipendio medio a 1.5-2 milioni), ora un PC medio costa 600-700 euro…
@Seldon :
Il prezzo dei computer e’ venuto giu’, ma non il prezzo dei processori. ;) Questo significa solo che il margine di guadagno negli altri componenti hardware si e’ assottigliato, ma il margine di guadagno nei processori rimane pressoche’ invariato da una generazione all’altra.
Chiedeti perche’ Intel ha cosi’ paura del fenomeno netbook. E anche se l’ha abbracciato a meta’ con Atom guarda ancora con grande timore questo mercato emergente.
Intel piuttosto che ridurre il prezzo di un processore , lo fa uscire fuori produzione e lo sostituisce con uno che ha prestazioni maggiori ma il prezzo rimane costante. Guarda i listini degli ultimi 15 anni. Intel non ha mai e poi mai ridotto il prezzo dei suoi processori. E perche’ questo ? Perche’ la “legge” di moore gli consentiva di presentare nuovi modelli piu’ prestanti allo stesso prezzo di quelli vecchi. Ma questo business model dei processori desktop si e’ frantumato con i netbooks. E Intel non e’ contenta per niente. Complice un sacco di fattori, economomici e tecnici siamo entrati in una fase di commoditization delle cpu. Cpu a basso costo, una cosa che terrorizza Intel.
Non è una legge nel vero senso termine, ma in letteratura viene chiamata in questo modo. E un professionista che si rispetti, rispetta anche i termini che fanno parte del vocabolario tecnico. ;)
@Cesare di Mauro :
Ci mancherebbe pure. I professionisti sanno che la legge di Moore non e’ in senso stretto una legge.
Ma in un articolo per il “grande pubblico” e’ sempre meglio precisare cosa e’ nella realta’ la legge di Moore. Altrimenti si rischia di capire fischi per fiaschi.
all’epoca del 20286 comprai un mouse per 400 mila lire.. ben 2 tasti… e un coprocessore matematico 20287 a 500 mila lire… cosa che oggi è incluso nella cpu…
la mia prima scheda video.. ati mach 32 con.. 16 mega di ram ? .. l’ho pagata 1.248.000 lire..
secondo me oggi le cose costano meno.. sia grazie a questi miglioramenti tecnologici sia al fatto che più gente compra informatica.. ma non credo che senza le riduzioni di dimensioni dei chip si sarebbe al punto di oggi..
suvvia goldorak..
Ottimo articolo
Un articolo molto interessante!
Attendo i prossimi articoli sullo stesso argomento.. Ci sono tantissimi tecnologie promettenti sia per aumentare il life-span del silicio sia per sostituirlo. Ad esempio i mem-ristor, i transistor 3D, i chip 3D, nanotubi al carbonio, fotonica, spintronica e infine quantistica.
Il silicio verrà rimpiazzato prima del raggiungimento del limite citato nell’articolo.
Teoricamente ad oggi è già una tecnologia vecchia e non mancano i sostituti (nanotubi ecc..).
P.S: Ovviamente non esiste nessuna legge di Moore; il fatto che gli addetti ai lavori utilizzino il termine legge non implica che anche gli altri debbano seguire l’errore. Una legge è un modello della realtà fondato su formalismo matematico confermato dall’esperienza empirica.
ottimo articolo.
I sostituti ce ne sono, e sono anni che la menano (fibre ottiche, nanotubi, cpu con die in altri materiali, ecc), ma non e’ mai stato fatto nulla di concreto.
@ Cesare
sulle minori rese hai ragione in parte, nel senmso che la transizione da un pp collaudato ad uno nuovo, inizialmente, può comportare minori rese, fino all’affinamento dello stesso. Questo soprattutto se si tratta di un full node. Ma non c’è una regola fissa che affermi che ad operazioni operazioni di scaling xomportino rese inferiori. Inoltre c’è da considerare il discorso dei cosiddetti “scarti”. In quel caso vale la regola che più un chip è complesso più diminuiscono le rese dei chip perfettamente funzionanti. In tal caso, però, è possibile piazzare gli altri ini fasce inferiori (meno unità di cvalco attive, frequenze di funzionamento inferiori, ecc), creando più soluzioni a prezzi più contenuti. Il porliferare delle fasce in ambito chip grafici degli ultimi anni è frutto di ciò. Nel senso che non cìè una volontà dei produttori di creare millemila fasce, ma cìè quella di riciclare tutto ciò che è possibili riciclare. Ed è per questo motivo che, quando possibile, si prendono precauzioni del tipo: un cluster di alu in più ma disattivato (RV770) o un core inattivo (cell su ps3) ecc.
Quindi, direi che vale piuttosto la regola: la resa produttiva della fascia alta di un determinato proddotto cala all’aumentare della complessità dei circuiti.
@ goldorak
vero che le leggi di moore non sono tali in asenso stretto, ossia non sono mai state formalizzate come leggi vere e proprie. Ma anche una semplice asserzione, frutto dell’osservazione di una situazione contingente, che trova conferma sperimentale in analoghe situazioni successive, può assurgere alla dignità di legge, seppure non scritta. Salvo, ovviamente, eventi che ne confutino la validità. Allo stesso modo, ci sono state leggi formali che sono state smentiti o sono destinate ad esserlo.
Quello che non è vero è l’assunto che il raddoppio delle prestazioni passi necessariamente attraverso il raddoppio del numero di transistor. Questa è un’affermazione troppo generica che ha validità solo se riferita ad una stessa identica architettura ma che non vale più se si considerano architeture differenti che possono presentare un diverso coefficiente di rendimento e una diversa utilizzazione di parte dei transistor impiegati.
@ sandman e Seldon
Il limite stimato con le attuali tecnologie è di 10 nm.
@ ser e Marco
La ricerca sulle nuove tecnologie procede parallelamente a quella che mira a prolungare il cilclo di vita della tecnologia del silicio. Questo perchè, attualmente, quest’ultima, nonostante tutto, resta la più collaudata ed a buon mercato ma, soprattutto, di immediatà fruibilità. Di certo, adesso più che in passato, si iniziano ad avvertire i limiti di tale tecnologia e, di conseguenza, la spita verso la ricerca di nuove soluzioni sarà più forte. In quest’ottica si pongono anche i chip “pprobabilistici” o “imprecisi” che tendono a sfrfuttare al massimo lo spazio presente sul die, eliminando alcuni dei processi atti a ridurre il rumore. Così facendo si introduce una cifra di rumore in alcuni casi anche considerevolmente superiore ma si ha il vantaggio di poter sfruttare la massimo lo spazio presente sul die. Di certo, questi chip sono destinati a restare confinati in ambiti in cui l’errore sia facilmente stimabile (il che esclude, ad esempio, l’utilizzo in ambito cpu GP o gpu). Inoltre, c’è da specificare che si tratta di SOC con processori a basso consumo (nelle simulazioni si è adoperata un’architettura ARM) acui si affianca un chip “probabilistico” cfome coprocessore ad una cache comune
naturalmente l’ultima riga andrebbe editata (come coprocessore – ed una cache comune)
Qualche nota veloce:
– uno dei punti piu’ importanti (e meno sottolineati nell’articolo) che hanno fermato la “corsa ai MHz”, e quindi livellato l’aumento di performance per core di CPU, e’ la potenza: semplicemente non potevamo piu’ dissipare la potenza bruciata da quei chip (che cresceva piu’ che linearmente: all’incirca linearmente con la frequenza, e in piu’ tutti i contributi di correnti parassite citate nell’articolo che, insignificanti quando i MOS erano lunghi 1 um, ora sono preponderanti)
– Vth: la tensione di soglia dei MOS e’ ferma da qualche anno, non la si puo’ far scendere piu’ di cosi’ per problemi fisici (se la abbassi ancora, non riwesci piu’ a chiudere il canale: il MOS non e’ mai veramente spento – questo fa il paio con le correnti parassite citate nell’articolo); ma se non puoi abbassare Vth, non puoi abbassare nemmeno Vdd (la tensione di alimentazione), se no non riesci piu’ a pilotare il MOS, ad avere la corrente sufficiente, e in definitiva ti trovi con della logica lenta e inaffidadbile
– reliability: l’affidabilita’ e’ uno dei punti piu’ dolenti per quanto riguarda il VLSI di oggi. Semplicemente, non esiste un modo di verificare al 100% la funzionalita’ di un circuito con qualche miliardo di transistor (la complessita’ della verifica cresce esponenzialmente con la dimensione del chip, e ormai puo’ venire a costare piu’ del design stesso!). Questo, accoppiato coi problemi di potenza, ha spinto verso la nuova direzione: meno frequenza, piu’ core. Piu’ core (magari piu’ semplici) significa poter verificare meglio un singolo pezzo, e una volta che uno va si spera che vadano tutti (in realta’ ora e’ nato lo scottante problema della verifica del funzionamento di piu’ core insieme – di questo ancora c’e’ poco in giro, anzi e’ a livello di ricerca universitaria); inoltre, core a frequenza piu’ bassa possono usare tensione piu’ bassa (piu’ che linearmente piu’ bassa), e quindi ridurre la potenza totale dissipata (che dipende circa quadraticamente con la tensione)
– riguardo alla crittografia: i calcoli crittografici non possono essere “leggermente” sbagliati :) se no ti perdi l’intero frame/messaggio! Quello che probabilmente intendevano era l’uso di logica probabilistica nella generazione randomica delle chiavi di cifratura
@ Pleg
la cosa è molto più complessa e non poteva essere trattata in un articolo che ha lo scopo di rivolgersi a tutti e non solo agli iniziati.
Diciamo che l’abbandono della corsa ai MHz in ambito cpu non è stata determinata dalla sola difficoltà nel dissipare la potenza generata ma dal fatto che il rapporto tra efficienza e potenza dissipata tendeva a peggiorare man mano che, per aumentare le frequenze, si allungavano le pipeline frazionendo sempre di più gli stadi. L’architettura netburst di Intel è stata il punto culminante di quyuella rincorsa e, per fortuna, dopo il prescott si è tornati indietro.
Per quanto riguarda il discorso Vth e Vdd, i modi epr diminuirla esistono e sono praticabili e praticati. Uno di questi è l’utilizzo di metieriali high-k che hanno proprio lo scopo di permettere l’uti8lizzo di tensioni di soglia inferiori per pilotare i transistor. Altri sistemi sono l’utilizzo di transistor multigate, con differenti valori di Vth e Vdd per le fasi in cui il cmos è in conduzione e a riposo, oppure circuiti con valori di Vth e Vdd variabili. Il problema è che l’adozione di queste soluzioni diventa sempre più costoso e il rapporto costi/benefici sempre meno conveniente. Cobn queste soluzioni è possibile, comunque, coniugare ottenere l’abbassamento di Vth e Vdd senza andare ad intaccare l’affidabilità del sistema.
Riguardo al multicore, è vero che uno dei vantaggi è quello della maggior facilità di controllare il funzionamento del singolo core; ma qualcosa di analogio si può fare anche ion architetture single core con cluster identici di unità in paralello, come sonmo le gpu. E all’interno delle gpu ci si trova ad affrontare anche il problema del modo di mettere in comunicazione questi differenti “core”. Di fatto, un chip come RV770 ha l’equivalente di 10 core che devono dialogare tra loro. Esempi di bus di comunicazione in architetture multicore ce ne sono non soltanto a livello sperimentale. Il cell ha 9 core che comunicano tra di loro attraverso un ring non dissimile da quello che equipaggia R600 (al di là del differente numero di lane). Intel sta per rpoporre una gpu con almeno 16 core collegati tra loro con un sistema di ring bus.
Diciamo che le architetture multicore hanno anche altri vantaggi, tra cui una maggior flessibilità di gestione, anche in ottica risparmio energetico che, a cui è escluso che farò cenno in un prossimo post.
Capisci bene che parlare di tutto in maniera diffusa avrebbe comportato occupare dieci pagine almeno per ogni argomento e sarebbe, probabilmente, risultato a molti, più noioso di quanto non sia il presente articolo.
Crittografia: se ti riferisce ai “chip imprecisi”, detto in parola povere, quello che si è fatto è stato quello di sostituire i valori 0 e 1 con funzioni di probabilità. Quindi, ogni bit ha due stati “possibili” ad ognuno dei quali è associata una funzione peso. Giocando sui valori delle funzioni peso si può decidere quanto diminuire il SNR ma anche qual è il livello di accuratezza del risultato finale. Le funzioni di probabilità sono sono, ovviamente, funzione della Vdd.
Finora, l’unica simulazione effettuata ha riguardtao una codifica H.264 con risultati qualitativi abbastanza buoni quaùndo si è assegnato un diverso valore di probabilità ad ogni bit con variazioni di tipo random e risultati pessimi con valori di probabilità uguali per ogni bit.
Chi poi ha citato la legge di gravitazione universale casca abbastanza male visto che essa è una legge che si dimostra a partire dalle leggi di keplero, le quali sono _puramente_ sperimentali e non hanno nessun riscontro matematico; che poi siano “abbastanza” vere quasi sempre è un altro paio di maniche; ma tecnicamente non c’è differenza tra quella e la legge di moore essendo entrambi risultati sperimentali.
@ ser
Agi_90
In effetti, non è vero che le leggi sono modelli della realtà basati su formalismi matematici e che trovano riscontro sperimentale. In fisica, sioprattutto prima della’vvento della teoria relativistica e della fisica quantistica, spesso avveniva il contrario: ovvero si osservava la realtà e dalle osservazioni fatte si ricavava una legge. Una volta formulato l’enunciato e sviluppato l’apparato matematico si proseguiva nelle osservazioni fino a che non si riscontarva un caso “anomalo” o apparentemente non contemplato. In tal caso si vedeva se erqa possibile includere il caso in questione come eccezione continuando a considerare la legge di validità generale. In caso contrario, andava riformulata la legge stessa. E’ stato soprattutto dalla prima metà del ‘900 che si è iniziato a portare avanti il procedimento inverso, ovvero si parte da un apparato teorico più o meno complesso a cui si cercavano riscontri sperimentali.
Premesso che prima o poi saremmo comunque arrivati a questo punto ci sarebbe da dire una cosa.
Se invece di seguire quella cavolo di legge di moore che sembrava più una tabella di marcia a tappe forzate che un’acuta analisi delle necessità del mercato ci si fosse preoccupati di più di ottimizzare il software (ad esempio “ogni 12 mesi il software deve andare tot più veloce, perchè lo miglioriamo, non perchè gli cambiamo il motore”), a quest’ora saremmo ancora molto lontani da questi problemi.
Non passano 6 mesi che la nuova cpu, la nuova gpu, promette prestazioni anche doppie rispetto alla generazione precedente mentre nel frattempo i programmi sono ancora rimasti, come algoritmi capaci di sfruttarle, a tre, quattro generazioni prima.
Ad esempio mi chiedo come mai la jre che ho scaricato qualche ora fa porta nel nome la dicitura i586.
i586 era il Pentium I ma ad occhio croce se la numerazione fosse continuata gli attuali Core i7 sarebbero l’equivalente di un Pentium VIII.
Bella forza inventarsi le procedure più strane per massacrare il silicio, quando fior di programmi vengono ancora scritti e programmati come se dovessero girare su un sistema più che antico.
A occhio croce abbiamo tutti cambiato almeno un paio di volte la cpu a 64bit eppure, se cominceremo ad usarli in modo interessante sarà per la fine dell’anno con windows seven visto che prima tra Xp64 e Vista 64 sono stati così mal supportati che tanto valeva far finta che non esistessero.
@yossarian
“Diciamo che l’abbandono della corsa ai MHz in ambito cpu non è stata determinata dalla sola difficoltà nel dissipare la potenza generata ma dal fatto che il rapporto tra efficienza e potenza dissipata tendeva a peggiorare man mano che, per aumentare le frequenze, si allungavano le pipeline frazionendo sempre di più gli stadi. L’architettura netburst di Intel è stata il punto culminante di quyuella rincorsa e, per fortuna, dopo il prescott si è tornati indietro.”
Sono abbastanza d’accordo. Avrei dovuto parlare non solo della dissipazione ma anche della potenza in se’, perche’ se si fosse riusciti a contenere la potenza allora la “corsa” ai MHz sarebbe continuata (e giustamente a mio avviso: non c’e’ motivo di non spremere una tecnologia fino all’ultima goccia, finche’ non si esce dagli altri vincoli di progetto).
“Per quanto riguarda il discorso Vth e Vdd, i modi epr diminuirla esistono e sono praticabili e praticati.”
Quello che intendevo e’ che lo scaling lineare e’ finito (mentre sta continuando per le geometrie dei nodi litografici). Possiamo rosicchiare ancora qualcosa sulle tensioni, ma non si puo’ piu’ andare giu’ come una volta: 5V, 3.3V, 1.8V, 1.3V… adesso se non sbaglio per una tecnologia a 45nm siamo sul Volt (devo controllare i parametri di Spice, ma credo di non sbagliare). Magari riusciamo a tirare a .9V o .8V su qualche alimentazione, ma non andremo giu’ a .5V, .2V ecc. La corsa e’ finita anche li’.
Per i materiali high-k: per quel che ne so, servono fondamentalmente ad aumentare la capacita’ a parita’ di spessore del dielettrico. In soldoni: ormai si era arrivati ad uno spessore dell’ossido di gate intorno al nm (che sarebbero una ventina di strati atomici…?). Il leakage attraverso l’ossido a quel punto (per effetto tunnel) diventa incontrollabile. Per diminuire il tunneling (che dipende solo dallo spessore del dielettrico) senza ridurre la capacita’ di Gate (che serve a pilotare il MOS), il trucco e’ stato inventare un materiale alternativo al diossido di silicio per l’isolamento.
A proposito della “legge”: credo che sia un termine da non prendere troppo sul serio… basta vedere l’evoluzione delle parole: la gravitazione e’ una “legge”, la relativita’ e la mecc. quant. e’ una “teoria”, quello standard e’ un “modello”.
Penso che questo sia il termine piu’ adeguato: la scienza ci da’ un “modello” interpretativo della realta’, che viene adattato e cambiato (o sostituito brutalmente!) quando le osservazioni lo rendono osboleto. Tutto qui.
@yossarian (21)
Non sono del tutto d’accordo. Il procedimento che descrivi e’ sempre ed e’ sempre stato valido (e’ il “metodo scientifico” :) : dai dati sperimentali si formula una teoria, la teoria predice nuovi fenomeni da verificare sperimentalmente. Questo era vero per le orbite celesti di Keplero come per la relativita’.
[…] fonte: Tecnologie del silicio: si avvicina il limite? – Appunti Digitali Articoli correlati: Dummiez Book Cover Maker – generatore di libri per dummies […]
@ yossarian
In riferimento alla legge di Moore.
premesso che una legge, in fisica, significa ciò che ho detto prima (più o meno da Galilei e senza entrare nel merito delle nuove accezioni introdotte con la MQ), per spiegare meglio quello che volevo dire ti faccio un esempio:
dire che il pianeta terra ha forma sferica è un’approssimazione che in alcuni casi può essere lecita, tuttavia l’affermazione è sbagliata come dimostrato da riscontri empirici. Moore nella descrizione del fenomeno con il suo famoso grafico rappresenta la terra non sferica (per fare un parallelismo) ma cubica. Certo il modello della terra sferica non è esatto come il modello del geoide, però il modello della terra cubica è talmente semplificato da risultare sbagliato in ogni riscontro anche elementare della vita di tutti i giorni; non tiene conto praticamente di nessuna condizione al contorno di tipo economico sociale e produttivo. Non è un modello della realtà valido. Non descrive una legge fisica perché non ha correlazioni di variabili, a parte un paio.
@ D (22)
E il mercato stesso a richiedere a gran voce la retrocompatibilita, per riutilizzare il piu a lungo possibile i software gia scritti e per ridurre i costi, anche a scapito delle prestazioni.
Mi capita tutt’ora di vedere persone che vogliono continuare a usare i prorpi software gestionali scritti per win 95 su vista, o che hanno ancora NT4… finche funziona perche costringerli a cambiare?
Le ottimizzazioni e le prestazioni nella maggioranza dei casi sono secondarie, la durata di una piattaforma hw/sw è molto piu importante.
Nessuno vorrebbe dei sistemi moderni con software iper ottiizzati che durano pochi anni e poi bisogna cambiare tutto.
ps: riguardo la JVM, è compilata per i586 ma credo che il bytecode che deve eseguire venga compilato in codice nativo ottimizzato per l’architettura su cui sta girando. E il codice che viene prodotto dalla jvm e che poi viene eseguito dalla CPU a dover essere ottimizzato per l’architettura, non la jvm in se (corregegtemi se sbaglio).
Ma i computer quantici che fine hanno fatto?
@ Pleg
Il pproblema della corsa ai MHz era che l’aumento di frequenze, a parità di architettura, comporta il frazionamento degli stadi della pipeline e, di conseguenza, il suo allungamento. Una pipeline lunga presenta alcuni inconvenienti i principali dei quali sono la propagazione di “bolle” e gli errori nei salti condizionati (svuotare e riempire una pipeline lunga fa perdere centinaia di cicli di clock; questo obbliga ad utilizzare circuiti ed algoritmi di branching sempre più sofisticati e complessi, ma anche questo rappresenta un enorme spreco in termini di cicli spesi per operazioni non matematiche). Per questi motivi, continuare a salire in frequenza con quel tipo di architettura (parlo, ovviamente, di cpu) stava diventando sconveniente dal punto di vista del rapporto costi/benefici.
Per quanto riguarda Vth e Vdd è vero ciò che dici: ormai non c’è più modo di “tirar giù” qualche Volt, ma si è nell’ordine dei decimi. In parte ciò è dovuto all’esigenza di ottenere determinate prestazioni (la febbre da benchmark), motivo per cui, anche potendo far uso di tensioni più basse, spesso ci si ritrova, dopo aver fatto operazioni di scaling, con tensioni dell’ordine di quelle del processo produttivo precedente ma, per lo più, è determinato dal fatto che ci si avvicina, si può dire quasi a sintoticamente al limite delle attuali tecnologie.
High-k e Vth: hai ragione; mi sono espresso piuttosto male. Quello che intendevo dire è che al diminuire delle dimensioni del canale si può ridurre il valore di Vth, ovviamente entro certi limiti. Oltre determinate dimensioni inizia ad essere difficile contener il leakage ed allora si fa ricorso a materiali high-k.
Il problema è che anche l’utilizzo dei materiali high-k inizia a non essere più sufficiente. Questo perchè si è arrivati ad un vero e proprio circolo vizioso: se diminuisco le dimensioni posso abbassare le tensioni; oltre una certa soglia, però, diminuisco la velocità e la “guidabilità” delle cariche nel canale (il che comporta minori velocità e affidabilità). Per aumentare di nuovo questi parametri, avendo un valore di Vdd inferiore si è costretti a diminuire Vth ma ciò fa aumentare il leakage. Quindi si fa uso di materiali high-k per contanere il leakega facendo aumentare di nuovo Vth; la difficoltà sta nel trovare, per ogni shrink, valori di Vdd e Vth tali da permettere il contenimento del leakage e il corretto funzionamento del circuito. Questo è uno dei motivi per cuiù, come hai sottilineato, negli utlimi anni le tensioni stanno calando molto più lentamente che in passato.
Una delle strade che stanno percorrendo è quella dei circuiti con inverter o porte multigate, con più valori di Vth ed, eventualmente, di Vdd e con valori di Vth e Vdd regolabili. Uno dei principali inconvenienti di questa tecnologia è il minor livello di integrazione: in pratica, per ogni cmos devo aggiungere almeno un altro transistor pilotato da un differente valore di Vth.
Discorso leggi fisiche. Abbiamo esempi di leggi e teorie formulati senza aver avuto riscontri sperimentali. Un esempio è la teoria della struttura atomica di Bohr, ipotizzata prima ancora che se ne potesse verificare la validità. Altro esempio è l’influenza della gravità sulla velocità dii scorrimento del tempo (presente nella relatività generale). Sempre dalla teoria relativiatica si prende per buono il principio secondo cui la velocità della luce nel vuoto è il parametro di riferimento e, di conseguenza, si ammette la validità delle trasformazioni di Lorentz. La fisica quantistica è nata partendo da un insieme di teorie che hanno portato allo sviluppo di un apparato matematico che non aveva riscontri sperimentali (ma ne ha avuti, e tanti) in seguito).
@ HalphaZ
I computer quantici sono in fase di sviluppo, come quelli “ottici” ed altre tecnologie ancora. Il fatto è che dobbiamo fare i conti, oggi, con quello che abbiamo in mano e cercare di ottenere il meglio dalle tecnologie attuali.
@ primo gas
“E il mercato stesso a richiedere a gran voce la retrocompatibilità, per riutilizzare il piu a lungo possibile i software gia scritti e per ridurre i costi, anche a scapito delle prestazioni.”
Ma allora perchè ci fanno cambiare computer ogni momento ?
Spiegami per quale assurda ragione la maggior parte di noi non continua ad usare pentium III, Radeon 7500 e os fatti su misura di questi componenti.
L’informatica è hardware + software: da una parte abbiamo la formula 1 e dall’altra dei rimorchi.
Qui si deve cambiare mentalità nel mondo del software: si deve ottimizzare !
Sono sicuro, pronto a scommetterci, che se domani si scoprisse un nuovo sistema che permettesse di ricominciare la corsa dei GHz e stabilisse come limite teorico i 100GHz, tempo 10 anni ed il più scarso dei computer andrebbe a 99GHz. Di nuovo ci sarebbe gente che si lamenterebbe (che avrebbe il coraggio di lamentarsi) che il “computer va piano”, troveremo ancora sistemi operativi che solo per mostrare uno sfondo colorato si succhiano i 3/4 di cotanta potenza e troveremo sui blog del futuro, un articolo simile a questo dove si starebbe a discutere su come bilanciare le correnti e sotto quali strumenti di tortura passare il silicio (o questo fantomatico nuovo materiale) pur di strappare qualcosa che finirebbe inevitabilmente sprecato.
Magari saprà un po’ troppo di ‘900 ma non credete che prima o poi non riusciremo ad andare oltre ?
Fino a che punto sarà possibile miniaturizzare ? Fino a che punto saremo in grado di mettere mano ? Un giorno non ce la faremo più e se non ci fosse un sostituto quel dì ?
@ D
Quello che dici è vero, ma se si raggiungesse un limite tecnologico alla potenza dell’hardware, sarebbe un problema che riguarda solo il settore, perchè gli utenti sono abituati a prendersi quello che passa il convento e a farselo andare bene (magari lamentandosi un po’ ogni tanto). Prendiamo per esempio la televisione: sono decenni che la tecnologia è ferma (solo da poco si è iniziato a parlare un po’ concretamente di alta definizione). Un televisore che si può acquistare oggi è praticamente identico a uno degli anni ’70 e mica la gente ha smesso di comprare televisori. Certo, se succedesse altrettanto per i computer, i produttori di hardware perderebbero la miniera d’oro costituita dai polli da spennare (leggasi coloro che cambiano pc ogni 6 mesi per poter dire di “avercelo più lungo”…) e il pc si cambierebbe soltanto più quando diventasse antieconomica la riparazione, come succede da sempre per un qualsiasi elettrodomestico. Per il settore produttivo, mi sembra che l’hardware attuale sia più che sufficiente, tanto che la maggior parte delle industrie non sente più la necessità di aggiornare il parco macchine, se non in caso di guasti, in quanto non porterebbe alcun incremento significativo nella produttività (tradotto: dovrei cambiare tutti i pc dell’azienda solo per farci girare l’ultimissima versione di autocad? Quanto mi costa? E quanto mi costano le licenze dell’ultima versione di autocad? Ma soprattutto, cosa posso farci di veramente indispensabile, che col precedente pc e la vecchia versione del programma già in mio possesso non riuscirei a fare? La risposta a quest’ultima domanda spesso è… NIENTE!).
Per tutto questo, mi pare evidente come sia i produttori di hardware che di software abbiano tutto l’interesse a continuare in questa rincorsa, senza preoccuparsi di ottimizzare nulla, anzi…
si allora facciamo girare google earth sui pentium 3 con la radeon 7500! O_o
nessuno costringe la gente a cambiare PC ogni sei mesi, infatti sono in molti a usare tutt’ora PC di 5-10 anni fa visto che per quello che ci fanno vanno piu che bene, mentre se uno ha bisogno di prestazioni piu elevate si prende l’hardware adeguato.
@Cesare Di Mauro
considera che diminuendo le dimensioni diminuistono le fluttuazioni statistiche sul singolo chip. ovvero la probabilità che sul chip ci sia una variazione dei parametri fisici è minore, quindi se le tecniche di produzione sono ottimizzate, la prob che il singolo chip non funzioni correttamente sono inferiori. in più aumentando il numero di chip sul wafer diminuisce in rapporto il numero di chip malfunzionanti
@lorenzo
In realta’ e’ il contrario :)
E’ vero che variano di meno i parametri sull’intero chip (sempre che diminuiscano davvero le dimensioni: in genere si piazzano semplicemente piu’ MOS, e quindi alla fine i chip hanno sempre la stessa dimensione :) , ma il grosso problema e’ che riducendo la dimensione dei MOS, aumentano le variazioni dei loro parametri: nel modello classico (Pelgrom’s model) la variazione dei parametri (beta, Vth) varia colla radice quadrata dell’area del transistor. Quindi, quando dimezzi la sua area, le variazioni statistiche del singolo dispositivo crescono del 40%. Quindi, oggi abbiamo molti piu’ problemi di variazioni rispetto al passato, tanto che le solite analisi worst case ai corner di processo-temperatura-tensione a volte non sono piu’ fattibili (i worst case sono talmente worst che per marginarsi bisognerebbe progettare dei chip impratici…).
Inoltre: transistor piu’ piccoli significa area minore, carica minore immagazzinata nei nodi capacitivi -> piu’ sensibilita’ all’irraggiamento (raggi cosmici, particelle alfa e altri decadimenti dallo stesso package…). Questo e’ un problema non solo piu’ della memoria (per la quale ti margini coi codici a correzione d’errore) ma anche per la logica interna del chip, soprattutto gli elementi di memoria (latch / flip-flop).
E come se non bastasse, naturalmente, quando metti insieme piu’ transistor la probabilita’ che qualcuno non funzioni aumenta, diminuendo la resa complessiva.
In totale, l’affidibilita’ dei dispositivi sta diventando sempre piu’ critica, e la probabilita’ di fallimenti sempre piu’ alta. E’ per questo che nelle aziende dove fanno chip grossi oggi ci sono piu’ verification engineers che design engineers!
[…] questo articolo, avevo fatto cenno ad alcuni dei problemi ai quali si va incontro nei processi di scaling e ad una […]
[…] aver fatto cenno ad alcuni tra i principali limiti delle attuali tecnologie del silicio e aver introdotto i principi alla base della scelta delle architetture multicore e multithreaded, […]