¿Cómo cumplen los microprocesadores comerciales la sincronización con un reloj de gigahercios?

8

Tengo problemas para hacer que un diseño FPGA relativamente simple (para un Altera Cyclone IV) cumpla con el tiempo para la lógica impulsada por un reloj de 250 MHz. Esto me hace preguntarme cómo los microprocesadores comerciales (como el Intel Core i7) logran cumplir el tiempo en frecuencias de reloj más de un orden de magnitud más alto.

¿Cómo pueden los microprocesadores comerciales cumplir la sincronización a 3.8 GHz cuando estoy luchando a 250 MHz por un FPGA?

Randomblue
fuente
8
una fpga y un procesador son manzanas y naranjas. El fpga está construido a partir de módulos / celdas relativamente grandes que están interconectados. El compilador para el fpga no es mejor ni peor que un compilador de software, lo que significa que hay mucho margen de mejora para el rendimiento, sus señales se enrutan a través de celdas grandes / lentas que toman tiempo. Un procesador, por ejemplo, es exactamente las puertas necesarias, sin enrutamiento adicional (bueno, escaneo de jtag y bist), etc. El mismo problema con el compilador, pero hay algunos compiladores de chips mejores (caros).
old_timer

Respuestas:

7

Los FPGA en realidad no tienen "puertas" per se. Por lo general, tienen tablas de consulta (LUT). Las LUT generalmente se implementan utilizando SRAM. Por ejemplo, los FPGA Spartan 3 usan SRAM de 16 bits; es decir, cuatro entradas de dirección producen una señal de salida. La "programación" se realiza cargando la SRAM con un patrón de bits que representa la tabla de verdad, por ejemplo, para XOR de 2 entradas, tiene la dirección 00 = salida 0, dirección 01 = salida 1, dirección 10 = salida 1, dirección 11 = salida 0.

Todo esto significa que los FPGA en realidad tienen muchas, muchas puertas adicionales e innecesarias para realizar la misma función lógica. Si necesita FPGA para la reprogramabilidad y la creación rápida de prototipos, ¡esto es genial! De hecho, algunas personas implementan el diseño primero en el FPGA, lo depuran y luego se trasladan a un ASIC, que será más pequeño, más rápido y consumirá menos energía, todo mientras hace lo mismo que hace el FPGA.

Los microprocesadores modernos también están canalizados. Por ejemplo, en un programa simple de FPGA, un cálculo muy grande que involucra varias adiciones y quizás algunas multiplicaciones y una comparación puede llevarse a cabo en el mismo ciclo de reloj. Hacer todo este trabajo en un ciclo de reloj significa que el ciclo de reloj debe ser largo. En una implementación canalizada (que es posible implementar en FPGA y a menudo se usa para lograr el cierre de temporización), el gran cálculo se divide en partes, y cada pieza se ejecuta en un ciclo de reloj mucho más corto. Todavía lleva aproximadamente la misma cantidad de tiempo hacer el cálculo, pero la ventaja es que después de que se calcula la primera pieza y el primer dato parcial se ha movido a la segunda pieza, la primera pieza puede comenzar inmediatamente a procesar el segundo dato. El primer cálculo aún tardará muchos ciclos en completarse,

En pocas palabras, los FPGA tienen una lógica genérica, mientras que la CPU tiene una lógica específica. FPGA tiene un enrutamiento genérico mientras que la CPU tiene un enrutamiento específico. FPGA puede estar canalizado, pero la CPU definitivamente está canalizada.

ajs410
fuente
6

Ampliando el comentario de dwlech. Los procesadores tienen conexiones directas de cobre. Los FPGA están interconectados a través de conexiones programables. También los procesadores ponen cosas críticas una al lado de la otra. Los FPGA también necesitan espacio para la SRAM que contiene la programación.

Brian Carlton
fuente
3
Tenga en cuenta que los procesadores de proveedores como Intel se están haciendo a la vanguardia de la tecnología donde las compensaciones de velocidad y potencia son lo último en tecnología. Tampoco es una hazaña simple "cumplir el tiempo" en un núcleo de procesador de varios gigahercios, incluso con las ventajas específicas señaladas por Brian Carlton.
Michael Karas
3
A pesar de lo que señala @Michael Karas, los últimos FPGA a menudo también están a la vanguardia de la tecnología para los fabricantes.
Brian Carlton