In che modo i microprocessori commerciali incontrano i tempi con un orologio Gigahertz?


8

Sto riscontrando problemi nel realizzare un design FPGA relativamente semplice (per un Altera Cyclone IV) che soddisfa i tempi per la logica guidata da un clock a 250 MHz. Questo mi fa meravigliare di come i microprocessori commerciali (come Intel Core i7) riescano a soddisfare i tempi a frequenze di clock superiori a un ordine di grandezza superiore.

Come possono i microprocessori commerciali soddisfare i tempi a 3,8 GHz quando sto lottando a 250 MHz per un FPGA?


8
un FPGA e un processore sono mele e arance. L'FPGA è costituito da moduli / celle relativamente grandi che sono interconnessi. Il compilatore per FPGA non è migliore o peggiore di un compilatore software, il che significa che c'è molto spazio per il miglioramento delle prestazioni, i tuoi segnali vengono instradati ovunque, attraverso celle grandi / lente che impiegano tempo. Un processore, ad esempio, è esattamente il gate necessario, nessun routing aggiuntivo (ben jtag scan e bist), ecc. Lo stesso problema con il compilatore ma ci sono alcuni compilatori di chip migliori (costosi) là fuori.
old_timer

Risposte:


7

Gli FPGA in realtà non hanno "gate" di per sé. In genere hanno tabelle di ricerca (LUT). I LUT vengono in genere implementati utilizzando SRAM. Ad esempio, gli FPGA Spartan 3 utilizzano SRAM a 16 bit; cioè, quattro ingressi di indirizzo producono un segnale di uscita. La "programmazione" viene effettuata caricando la SRAM con un modello di bit che rappresenta la tabella di verità, in modo tale che per es. XOR a 2 ingressi, si abbia l'indirizzo 00 = uscita 0, indirizzo 01 = uscita 1, indirizzo 10 = uscita 1, indirizzo 11 = uscita 0.

Tutto ciò significa che gli FPGA hanno effettivamente molte, molte porte extra e non necessarie per svolgere la stessa funzione logica. Se hai bisogno di FPGA per riprogrammabilità e prototipazione rapida, allora è fantastico! In effetti, alcune persone implementano prima il design nell'FPGA, lo eseguono il debug e poi si spostano in un ASIC, che sarà più piccolo, più veloce e consumerà meno energia, il tutto facendo la stessa cosa dell'FPGA.

Anche i moderni microprocessori sono pipeline. Ad esempio, in un semplice programma FPGA, nello stesso ciclo di clock può essere eseguito un calcolo molto ampio che coinvolge più aggiunte e forse alcuni moltiplicazioni e un confronto. Fare tutto questo in un ciclo di clock significa che il ciclo di clock deve essere lungo. In un'implementazione pipeline (che è possibile implementare in FPGA e viene spesso utilizzata per ottenere la chiusura dei tempi), il grande calcolo viene suddiviso in pezzi e ogni pezzo viene eseguito in un ciclo di clock molto più breve. Il calcolo richiede ancora lo stesso tempo, ma il vantaggio è che dopo che il primo pezzo è stato calcolato e il primo dato parziale è stato spostato sul secondo pezzo, il primo pezzo può iniziare immediatamente l'elaborazione del secondo dato. Il primo calcolo richiederà ancora molti cicli per essere completato,

Quindi, in breve, gli FPGA hanno una logica generica mentre la CPU ha una logica specifica. FPGA ha un routing generico mentre la CPU ha un routing specifico. FPGA può essere pipeline, ma la CPU è sicuramente pipeline.


6

Espandendo il commento di dwlech. I processori hanno connessioni dirette in rame. Gli FPGA sono interconnessi tramite connessioni programmabili. Inoltre i processori mettono le cose critiche una accanto all'altra. Gli FPGA hanno anche bisogno di spazio per la SRAM che contiene la programmazione.


3
Tieni presente che i processori di fornitori come Intel sono all'avanguardia nella tecnologia in cui i compromessi di velocità e potenza sono allo stato dell'arte. Non è neppure semplice "incontrare i tempi" su un core di processore multi-gigahertz, anche con i vantaggi specifici rilevati da Brian Carlton.
Michael Karas,

3
Nonostante ciò che @Michael Karas sottolinea, gli ultimi FPGA sono spesso all'avanguardia della tecnologia anche per i fab.
Brian Carlton,
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.