In che modo aumentare il numero di transistor in un chip aumenta la sua velocità?


8

L'unico scopo dei transistor in una CPU è fungere da switch che definiscono il suo set di istruzioni? E se è così, allora perché aumentare il numero di transistor aumenta la sua velocità?


A questa domanda viene data una risposta più dettagliata a questa domanda sullo scambio di stack di ingegneria elettrica: electronics.stackexchange.com/questions/5592/… (Non è chiaro se quel tipo di dettaglio sia appropriato qui.)
Paul A. Clayton,

Risposte:


9

In cima alla mia testa:

  • Più cache , che è più veloce della RAM

  • Altre istruzioni SIMD , che vengono elaborate più rapidamente rispetto alle istruzioni per dati singoli

  • Più core , così puoi fare due o più cose contemporaneamente

  • Unità più funzionale, come built-in FPU s, e multiple ALU s

  • Pipeline , quindi ogni core può fare più cose contemporaneamente

  • Migliore logica di elaborazione, come una più sofisticata logica di previsione dei rami



2

Se sei curioso di questo genere di cose, consiglio vivamente il libro The Elements of Computing di Noam Nisan e Shimon Schocken (almeno la prima metà). Dopo averlo passato, sarai in grado di rispondere alla tua domanda in modo molto dettagliato con un pieno apprezzamento delle parti coinvolte.

Il sito Web associato in realtà ha alcuni capitoli e note di esempio. È un libro molto accessibile. L'ho esaminato da solo senza problemi e poi ho preso un nuovo corso presso la mia università che lo ha usato come testo principale.


2

La semplice risposta è che più transistor non rendono il resto più veloce , ma invece di fare una cosa per periodo di tempo, ora possiamo farne due (con alcune limitazioni).


2

Ken ha già sintetizzato alcuni dei motivi nella sua risposta . Per espanderci ulteriormente

  • Più cache , che è più veloce della RAM

Ovviamente cache più grandi hanno bisogno di più transistor. Ma con più transistor abbiamo anche la possibilità di utilizzare cache più veloci . Le cache della CPU sono solo SRAM, che in genere è costituito da 6 transistor (AKA 6T SRAM). Tuttavia, quando ci sono abbastanza transistor, può valere la pena usare celle SRAM più veloci ma più grandi fatte da più di 6 transistor (come 8T, 10T SRAM)

  • Altre istruzioni SIMD , che vengono elaborate più rapidamente rispetto alle istruzioni per dati singoli

Non solo SIMD ma qualsiasi tipo di istruzioni di accelerazione. Ad esempio, le architetture moderne spesso dispongono di un'unità AES per una crittografia / decrittografia più rapida, FMA per un migliore calcolo matematico (in particolare l'elaborazione del segnale digitale) o virtualizzazione per macchine virtuali più veloci. Supportare più istruzioni significa che sono necessarie più risorse per decodificarle ed eseguirle

  • Più core , così puoi fare due o più cose contemporaneamente
  • Pipeline , quindi ogni core può fare più cose contemporaneamente

Questi sono abbastanza chiari

  • Unità più funzionale, come built-in FPU s, e multiple ALU s

In passato non vi era abbastanza superficie per gli stampi per l'FPU, quindi le persone devono acquistarne uno separato se hanno elevati requisiti di aritmetica in virgola mobile. Con molti più transistor è possibile avere la FPU integrata, che accelera molto la matematica in virgola mobile

Inoltre, le moderne CPU sono superscalari e proveranno a fare più cose contemporaneamente trovando pezzi di dati indipendenti e calcolandoli prima, anche se il flusso di istruzioni è lineare e seriale. Più cose possono fare in parallelo più velocemente saranno. Per fare ciò una CPU può avere più ALU e una ALU può avere più unità di esecuzione. Se ad esempio una CPU ha 5 adder rispetto a 4 della generazione precedente, allora è già in esecuzione del 25% più veloce nella situazione più ottimistica senza cambiamenti di clock. Le CPU più sofisticate impiegano persino l' esecuzione fuori servizio (come nel caso della maggior parte delle moderne CPU ad alte prestazioni)

Le operazioni possono in genere essere eseguite in vari modi. Se hai più transistor avrai più risorse per usare una tecnica più veloce. Alcuni semplici esempi:

  • Spostamento bit:

  • aggiunta:

    • Un semplice sommatore viene creato anche collegando gli additivi completi in serie. In questo modo un sommatore N-bit ha bisogno di N clock per completare il suo lavoro, il che non è certo quello che le persone si aspettano da una CPU Sommatore a 4 bit
    • Con più transistor possiamo accelerare l'aggiunta pre-calcolando i carry con carry-lookahead o carry-save adder. Gli additivi completi sono ancora utilizzati, ma è necessario molto più spazio per l'unità di pre-calcolo

La stessa cosa vale per altre unità come moltiplicatori, divisori, scheduler ... Ad esempio, possiamo fare una moltiplicazione estremamente veloce in un singolo clock usando la logica combinatoria . Puoi vedere alcuni semplici esempi nella domanda moltiplicatori a 3 bit: come funzionano? . Ma i transistor necessari cresceranno al quadrato delle larghezze di input, quindi le piccole CPU con un moltiplicatore usano la logica sequenziale invece di risparmiare molto spazio per il moltiplicatore:

Le architetture di moltiplicatori precedenti utilizzavano un cambio e un accumulatore per sommare ogni prodotto parziale, spesso un prodotto parziale per ciclo, scambiando velocità per l'area della matrice. Le moderne architetture a moltiplicatori utilizzano l'algoritmo (modificato) Baugh – Wooley, gli alberi di Wallace o i moltiplicatori Dadda per aggiungere i prodotti parziali in un singolo ciclo. Le prestazioni dell'implementazione dell'albero di Wallace sono talvolta migliorate da Booth modificato che codifica uno dei due moltiplicatori, il che riduce il numero di prodotti parziali che devono essere sommati

https://en.wikipedia.org/wiki/Binary_multiplier#Implementations

Una volta che hai un enorme pool di transistor puoi persino usare la logica combinatoria per fare un FMA che è molto più dispendioso in termini di risorse rispetto a un moltiplicatore

I computer moderni possono contenere un MAC dedicato, costituito da un moltiplicatore implementato in logica combinatoria seguito da un sommatore e da un registro accumulatore che memorizza il risultato. L'output del registro viene restituito a un input del sommatore, in modo che ad ogni ciclo di clock, l'output del moltiplicatore venga aggiunto al registro. I moltiplicatori combinati richiedono una grande quantità di logica, ma possono calcolare un prodotto molto più rapidamente rispetto al metodo di spostamento e aggiunta tipico dei computer precedenti.

Moltiplicare - accumulare operazioni


1

L'aumento del numero di transistor viene generalmente eseguito riducendoli, il che li rende più vicini tra loro, riducendo il tempo di propagazione del segnale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.