Come sono progettate le CPU?


21

Ho iniziato a giocare con l'elettronica qualche tempo fa e realizzando semplici porte logiche usando i transistor. So che i moderni circuiti integrati usano CMOS invece della logica transistor-transistor. La cosa di cui non posso fare a meno di chiedermi è come sono progettate le CPU.

Il design è ancora fatto a livello di (sub) logica gate o non c'è più molta innovazione in quell'area e siamo passati a un livello più alto di astrazione? Capisco come è costruita una ALU, ma c'è molto di più nelle CPU di così.

Da dove vengono i disegni per i miliardi di transistor? Sono principalmente generati automaticamente dal software o c'è ancora molta ottimizzazione manuale?


2
Direi Verilog o VHDL.
avakar,

3
Mentre questi argomenti sono affascinanti, sembriamo essere molto lontani dalle "domande pratiche e rispondenti basate sui problemi reali che affronti" . Inoltre posso immaginare un intero libro che risponda a questa domanda.
Martin

1
@Overv, c'è ancora molto lavoro in cui ti assicuri che i tuoi blocchi di base che stai collegando siano ottimizzati a livello di gate, quindi inserisci quei blocchi ottimizzati in modo ottimizzato!
Kortuk,

13
Ho votato per riaprire - mentre sono d'accordo che una risposta completa che dice "tutto ciò che devi sapere per costruire un'intera CPU da zero" non è una buona corrispondenza per questo sito, penso che una breve panoramica e alcuni collegamenti sarebbero una buona risposta qui.
David

1
Sono sorpreso che non ci siano persone che lavorano nel settore dei semiconduttori che possano commentare un design ASIC più complesso qui. Dato che non sono un esperto, sono solo alcune cose che ho sentito: c'è molta licenza nei core IP e il campo in cui tutto è messo insieme si chiama VLSI. Credo che il design sia realizzato in VHDL / Verilog con strumenti di sintesi altamente ottimizzati: il modo in cui questo scende al livello del wafer e viene prodotto è al di là delle mie conoscenze.
Jon L

Risposte:


10

È molto probabile che CPU e SoC siano utilizzati da linguaggi di descrizione hardware come Verilog e VHDL (due principali player).

Queste lingue consentono diversi livelli di astrazioni. In VHDL, è possibile definire blocchi logici come entità; contiene ingressi e porte di uscita. All'interno del blocco è possibile definire la logica richiesta. Supponiamo che tu definisca un blocco con input A, input B e output C. Potresti facilmente scrivere C = A e B; e sostanzialmente hai creato un blocco di porte AND. Questo è forse il blocco più semplice che puoi immaginare.

I sistemi digitali sono in genere progettati con una gerarchia forte. Si può iniziare a "livello superiore" con le funzioni principali richieste da una CPU: memoria di proccesor (multipla?), PCI-express e altri bus. All'interno di questo livello possono essere già definiti bus e segnali di comunicazione tra memoria e processore.

Quando scendi di un livello, definirà i meccanismi interni per far funzionare qualcosa. Preso un esempio di microcontrollore, può contenere un'interfaccia UART. La logica effettiva richiesta per creare un UART funzionale è definita di un livello inferiore. Qui, potrebbe essere necessaria molta altra logica per generare e dividere il clock richiesto, i dati del buffer (buffer FIFO), i dati di report sulla CPU (un tipo di bus sistema).

La cosa interessante di VHDL e del design digitale è il riutilizzo dei blocchi. Ad esempio, potresti semplicemente copiare e incollare il blocco UART nel tuo livello principale per creare 2 UART (beh, forse non è così facile, solo se il blocco UART è in grado di indirizzare in qualche modo!).

Questo design non è alcun tipo di design a livello di gate. Il VHDL può anche essere "compilato" in modo tale da essere finalmente tradotto in porte logiche. Una macchina può ottimizzare molto meglio di quanto potrebbe fare un essere umano (e anche più velocemente). Per esempio; gli interni del blocco A richiedono un inverter prima di emettere il segnale. Il blocco B riceve questo segnale di uscita e lo inverte di nuovo. Bene, 2 inverter in serie non fanno molto bene? Corretto, quindi puoi anche lasciarli fuori. Tuttavia, nel design di "livello superiore" non sarai in grado di individuare i due inverter in serie .. vedi solo due porte collegate. Un compilatore può ottimizzare molto più rapidamente di un essere umano.

Fondamentalmente ciò che contiene la progettazione di sistemi digitali è la descrizione di come la logica dovrebbe "comportarsi" e il computer viene utilizzato per capire quale sia il modo più efficiente per disporre le singole porte logiche.


Così come esiste ancora un posto per il codice assembly nel software, in alcuni casi la progettazione hardware di livello inferiore può essere conveniente. Ad esempio, le celle SRAM sono spesso così comunemente usate che vengono sviluppati progetti altamente ottimizzati per ottimizzare densità (cache di ultimo livello), latenza di accesso (cache L1) o altre caratteristiche, specialmente in un produttore di design integrato come Intel.
Paul A. Clayton,

@Paul la domanda interessante che solleva per me è quanto Intel investe nell'ottimizzazione manuale dei propri progetti rispetto alla scrittura di passaggi di ottimizzazione del software che ottengono gli stessi miglioramenti delle prestazioni in modo dinamico e più generale.
Ponkadoodle,

6

Consentitemi di semplificare ed espandere i miei commenti precedenti e collegare i punti per coloro che sembrano averne bisogno.

Il design è ancora fatto a un livello (sub) di gate logico?

Il design è fatto a molti livelli, il livello sub-logico è sempre diverso . Ogni restringimento di fabbricazione richiede la più brillante esperienza di fisica, chimica e processo litografico poiché la struttura di un transistor cambia e anche la geometria cambia per compensare i compromessi, mentre si riduce a livelli atomici e costa ~ $ miliardi ogni passo binario in dimensione. Raggiungere la geometria a 14 nm è un impegno enorme in ricerca e sviluppo, controllo e gestione dei processi e questo è ancora un eufemismo!inserisci qui la descrizione dell'immagine

Ad esempio le competenze professionali richieste per fare ciò includono; - "FET, layout personalizzati a livello di cella e di blocco, planimetrie a livello di FUB, generazione di viste astratte, estrazione RC e verifica e debug da schema a layout utilizzando fasi di sviluppo del progetto fisico tra cui estrazione parassitaria, temporizzazione statica, carico del filo modelli, generazione di clock, modifica di poligoni personalizzati, algoritmi di posizionamento automatico e instradamento, pianificazione del pavimento, assemblaggio di chip completi, imballaggio e verifica. "*

- non c'è più molta innovazione in quell'area? - SBAGLIATO - C'è un'innovazione significativa e fortemente finanziata nella fisica dei semiconduttori, a giudicare dalla legge di Moore e dal numero di brevetti, non si fermerà mai. Il risparmio di energia, calore e quindi quadruplicando le capacità ripaga ogni volta.

- siamo passati a un livello superiore di astrazione? - Non ha mai smesso di muoversi. - Con la richiesta di più core, facendo di più in un'istruzione come CPU ARM RISC, µC o MCU integrati più potenti, RAM intelligente con DDR4 che ha ECC di default e settori come il flash con bit prioritari per recuperi di memoria urgenti. - L'evoluzione della CPU e le modifiche all'architettura non si fermeranno mai. inserisci qui la descrizione dell'immagine

Lascia che ti dia un suggerimento. Vai a fare una ricerca di lavoro su Intel, AMD, TI o AD per gli ingegneri e guarda le descrizioni dei lavori.

- Da dove vengono i disegni per i miliardi di transistor? - È arrivato dall'aggiunta di più blocchi di hardware a 64 bit. ma ora si verificano guasti ai nanotubi, il pensiero deve cambiare dall'approccio dall'alto verso il basso dei blocchi all'approccio dal basso verso l'alto dei nanotubi per farlo funzionare.

  • Sono principalmente generati automaticamente dal software? con la lingua ben piantata nella guancia ...
  • In realtà stanno ancora estraendo progetti da Area51 dalle astronavi e hanno ancora molta strada da fare .... fino a quando non saremo completamente conformi ai tubi nano-nano. Un ingegnere entra nella libreria e dice a nVidia che vorremmo che tu ci unissi a noi su questo chip e diventi una parte, che va in un macroblocco . Il layout può essere replicato come Ants in Toystory ma il controllo esplicito su tutte le connessioni deve essere instradato / estratto manualmente e utilizzare DRC e routing automatico per il confronto. Sì, gli strumenti di automazione vengono costantemente aggiornati per rimuovere duplicazioni e perdite di tempo.

    - c'è ancora molta ottimizzazione manuale?

  • Considerando che una compagnia aerea ha risparmiato abbastanza denaro per pagare il tuo stipendio rimuovendo solo 1 oliva dalla cena in First Class, Intel cercherà di rimuovere il maggior numero possibile di atomi entro il periodo di tempo. Qualsiasi capacità in eccesso significa spreco di calore, prestazioni e oops anche più rumore, non così veloce ...

Ma in realtà la CPU cresce come Tokyo, non è una notte, ma decine di milioni vivono lì con un costante miglioramento. Non ho imparato a progettare in Univ. ma leggendo e cercando di capire come funzionano le cose, sono stato in grado di accelerare abbastanza rapidamente nel settore. Ho avuto 10 anni di esperienza nei miei primi 5 anni in aerospaziale, progettazione di strumenti nucleari, progettazione SCADA, monitoraggio dei processi, progettazione di antenne, progettazione e debug di stazioni meteorologiche automatizzate, VLF Rx di PLX di OCXO, telecomando a 2 vie di Black Brandt Rockets ... e quello era solo il mio primo lavoro. Non avevo idea di cosa avrei potuto fare.

Non preoccuparti di miliardi di transistor o di avere paura di cosa imparare o di quanto devi sapere. Segui la tua passione e leggi le riviste specializzate tra il sonno, quindi non sembrerai così ecologico sul lavoro e non ti senti più come lavoro.

Ricordo di aver progettato un amplificatore operazionale "come" 741 come parte di un esame una volta, in 20 minuti. Non l'ho mai usato davvero, ma posso riconoscere bene dai grandi design. Ma poi aveva solo 20 transistor.inserisci qui la descrizione dell'immagine

Ma come progettare una CPU deve iniziare con una specifica, vale a dire; Perché progettare una CPU e fare benchmark misurabili per raggiungere tali; - Macro istruzioni al secondo (MIPS) (più importanti del clock della CPU), ad esempio; - Il chip Intel Itanium si basa su quello che chiamano un design EPIC (Explicitly Parallel Instruction Computing). - Design della CPU brevettato Transmeta con microprocessori morphing a codice parola di istruzioni molto lunghi (VLIWCMM). Hanno fatto causa a Intel nel 2006, hanno chiuso il negozio e si sono stabiliti per $ 200 milioni nel 2007. - Prestazioni per watt (PPW), quando i costi di alimentazione> costo del chip (per server) - Punto di galleggiamento Ops al secondo (FLOPS) per le prestazioni matematiche.

Esistono molte più metriche, ma mai basare la qualità di progettazione di una CPU sulla sua velocità GHz (vedi mito)

Quindi quali strumenti di pianificazione sono necessari per progettare le CPU? L'elenco non si adatterebbe a questa pagina dalla progettazione fisica a livello atomico alla progettazione EM / RF fisica EMC a maglia dinamica fino all'ingegnere responsabile della verifica della progettazione del front-end, dove le competenze richieste includono; - Simulazione RTL front-end - conoscenza dell'IA e dell'architettura del computer e progettazione a livello di sistema - Verifica della logica e simulazione della logica mediante VHDL o Verilog. - Programmazione orientata agli oggetti e vari protocolli CPU, bus / interconnessione, coerenza.


6
"Verilog" e "VHDL" graffiano solo la superficie di tutte queste domande ingenue ma allo stesso tempo ispiratrici. Il mondo reale è molto più analogico che digitale di quanto tu pensi.
Tony Stewart Sunnyskyguy EE75,

Hai una spiegazione del circuito Op Amp ovunque. Tutto quello che posso vedere è un OTA in cascata, il resto è il circuito Voodoo.
CyberMen,

3
Wow. Peccato che sia per lo più irrilevante per la domanda.
Dave Tweed

3
Devo dire che questa è stata una lettura molto divertente. Il graduale passaggio dallo scrittore a giocare con la domanda originale a lui tentando di far saltare la mente del lettore con numeri e vocaboli e poi fornire un po 'di auto-aiuto seguito da una reminiscenza dei suoi giorni da scolaretto con solo un pizzico di arroganza e infine spostarsi al cliché "è così complicato che non potrei mai riassumerlo qui". Assolutamente bello.
Ponkadoodle,

E anche se quel mio commento era in qualche modo satirico, spero che lo prenderete alla leggera. Onestamente mi è piaciuta la lettura.
Ponkadoodle,

2

Panoramica di AMD sul design della CPU

Versione di Intel

Nessuno di questi fornisce molti dettagli, ma comunque interessante. Non accettarlo come risposta. Altri hanno considerato la tua domanda in dettaglio e hanno fornito maggiori sforzi nel tentativo di rispondere in dettaglio.


Avevo già visto quella pagina di TomsHardware. Tuttavia, spiega come vengono fabbricati i processori , non come sono progettati
stevenvh
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.