View Full Version : CPU milioni di componenti... xkè??
municbar
28-07-2011, 14:47
Salve a tutti,
sto cercando di capire come mai le CPU siano formate da cosi tante componenti (centinaia di milioni di transistor). Leggendo come funziona la CPU io mi sarei aspettato qualche migliaia di componenti e non di più.
Da quel che ho capito, la CPU dovrebbe essere una sorta di interprete dell'assembly. Per ogni istruzione assembly vi sarà una serie di istruzioni a livello firmware corrispondenti e ognuna di queste istruzioni, per essere eseguita dovrà usare ALU, confrontatori ecc. Ammettendo anche che per ogni istruzione si usino separate ALU,confrontatori ecc, il numero delle istruzioni è molto limitato (ordine delle centinaia ? ).
Come è possibile allora che un processore abbia milioni di componenti?
Qual' è il rapporto tra numero di componenti e velocità della CPU?
Grazie anticipatamente,
Municbar
Mi sa che hai un po' travisato le cose.
Tento di spiegartela in modo assai semplicistico:
per farla breve un transistor è un interrutore comandato da un impulso elettrico (ossia, a seconda dell'input in tensione che riceve, fa passare o meno corrente).
Con il transistor vengono realizzate le porte logiche (a seconda di che porta logica realizzi ti serviranno uno o più transistor).
Le porte logiche implementano le funzioni booleane (AND, OR, etc. mai sentite?), attraverso un'adeguata combinazione di queste porte logiche si può costruire funzioni complesse.
Va da sé che più è complessa la funzione, più si alza il numero di porte logiche necessarie (e conseguentemente di transistor).
Ovviamente una volta realizzato un "blocco" in grado di realizzare direttamente tutte le funzioni base di cui abbiamo bisogno, sarà sufficiente "replicarlo" per ottenere maggiori prestazioni.
Più "blocchi" avrai a disposizione, più "calcoli" sarà in grado di svolgere parallelamente la tua CPU.
Se pensi ai programmi che una moderna CPU fa girare, riesci facilmente a capire che una CPU moderna ha bisogno di poter eseguire miliardi di questi "calcoli" in una frazione di secondo (magari il tempo di un click del mouse), hai capito che è essenziale che di quei "blocchi di transistor" ce ne siano veramente tanti.
Ovviamente se ti interessa scendere più nel dettaglio, ti consiglio di cercare un po' "architettura dei calcolatori" o simili.
Io ho idea che lui si riferisca proprio ad uno schema visto in un qualche testo di architettura dei calcolatori.
Quello è uno schema generico sul funzionamento di una cpu. Sebbene le cpu si siano evolute, lo schema di funzionamento è sempre lo stesso (in linea di massima), ma nonostante ciò è molto lontano dalla vera implementazione di una cpu.
Le cpu moderne non solo hanno una grande quantità di unità di calcolo, ma anche una complessa logica necessaria per gestirle e ottimizzarle.
All'interno delle cpu moderne abbiamo inoltre le varie cache, i controller di memoria, i gestori dei bus di comunicazione, ecc... il che fa aumentare, e non di poco, il conteggio di transistor di una cpu.
.:|FEDE|:.
28-07-2011, 17:12
Credo che ti sia utile dare un'occhiatina a questo:
http://plpsystem.forumfree.it/?t=56155720
Un processore è uno tra gli oggetti più difficili da costruire. Ora la tecnologia sta nella grandezza dei transistor. La Intel, per ora, è arrivata a produrre transistor della grandezza di 32 nanometri. Più piccolo è il transistor, pi ce ne stanno dentro al processore e di conseguenza le prestazioni aumentano. E' una spiegazione tanto elementare....ma è così.
municbar
28-07-2011, 17:15
Ciao,
@dema86: si si, ovvio che le ho sentite. ALU, addizionatori ecc sono costituite da quelle porte. In ogni caso, ipotizzando un'architettura RISC, anche le funzioni complesse non saranno composte da tantissime porte.
Riguardo alla parallelizzazione, ok, hai ragione ma da quel che ho letto, oltre un certo numero di istruzioni in parallelo non si può andare (e non sono miliardi..).
@calabar: si, ho letto informazioni da un testo di architettura degli elaboratori e lo schema logico di come funziona la cpu mi è chiaro. Quindi tu dici che quando si parla di milioni di componenti s'intende non solo la cpu ma tutto il chip nel quale sta la cpu? compreso cache ecc, così effettivamente avrebbe più senso..
municbar
28-07-2011, 17:24
@.:|FEDE|:. thx per il link. Ero a conoscenza comunque di quel fatto :)
considera anche che quello che hai scritto nel primo post (decodificatore assembly cablato in hw per ogni istruzione ) è un'architettura vecchia, attualmente le istruzioni assembly vengono programmate nella cpu (http://en.wikipedia.org/wiki/Microcode)e non cablate
municbar
28-07-2011, 17:58
@!fazz
Probabilmente mi sono espresso male.. io intendevo che la CPU esegue microistruzioni :)
Quindi tu dici che quando si parla di milioni di componenti s'intende non solo la cpu ma tutto il chip nel quale sta la cpu? compreso cache ecc, così effettivamente avrebbe più senso..
Avrebbe più senso certo, ma non si passa certo da migliaia a miliardi!
Il punto focale della questione è che le cpu moderne sono molto molto complesse. Anche eliminando gli "extra" dal conteggio, rimangono comunque parecchi milioni di transistor.
A questo aggiungi che le cpu x86 non sono propriamente risk (il layer x86 è bello corposo), e questo fa aumentare, e non di poco, la complessità.
municbar
28-07-2011, 19:03
@calabar:
uhm si. Anche CPU del 2000 comunque sono composte da milioni di componenti. Penso sia meglio che googli un pò per approfondire xkè voglio capire meglio..
rimango sempre affascinato dalla complessità di creazione delle moderne cpu.
@!fazz
Probabilmente mi sono espresso male.. io intendevo che la CPU esegue microistruzioni :)
ti sei espresso benissimo ma hai saltato un layer, anni fà le istruzioni assembly venivano eseguite dalla cpu con hw dedicato, attualmente no, per ragioni di test e di sviluppo le cpu sono "programmabili" in fase di progettazione della stessa
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.