¿Qué es un FPGA?
Las CPU y GPU dominan la escena de hardware principal, por lo que a menudo es fácil olvidar que hay otros paradigmas de computación utilizados en aplicaciones más especializadas. Tome los FPGA, por ejemplo, abreviatura de arreglos de puertas programables en campo.
FPGA vs ASIC
Las CPU y los ASIC (circuitos integrados específicos de la aplicación) son los dos polos opuestos del espectro de computación. Como sugiere su nombre, los ASIC son piezas de silicio cableadas y están diseñadas para ejecutar algoritmos específicos. Esos son los chips más rápidos y eficientes posibles, ya que solo hacen lo único para lo que fueron fabricados, pero, en consecuencia, carecen de la flexibilidad para ejecutar cualquier otro algoritmo. Mientras tanto, las CPU pueden programarse libremente para ejecutar cualquier software.
Los FPGA caen entre esos dos extremos. En su núcleo, los FPGA consisten en millones de los llamados elementos lógicos (LE) o matrices de puertas, que es a lo que se refiere la última parte del nombre de FPGA. Un elemento lógico es simplemente una tabla de búsqueda (también conocida como LUT o tabla de verdad) que almacena la salida para todas las posibles combinaciones de entrada. Por ejemplo, una LUT de 2 bits puede tener cuatro entradas distintas: 00, 01, 10 y 11. La tabla de búsqueda le indicará cómo se evalúa una función booleana (a verdadero o falso) para cada una de esas entradas posibles. En pocas palabras, los FPGA buscan la respuesta, en lugar de tener que buscar, decodificar y ejecutar instrucciones como lo haría una CPU de propósito general.
Esos elementos lógicos (también conocidos como arreglos de puertas) se pueden programar (reconfigurar) en cualquier momento ‘en el campo’, que es de donde proviene la parte del nombre «programable en campo». Eso significa que los algoritmos pueden actualizarse, o el FPGA puede incluso ser rediseñado rápidamente para aplicaciones completamente diferentes. Esta capacidad de programación también reduce significativamente el tiempo de comercialización en comparación con un ASIC cableado.
En resumen, los FPGA son rápidos y eficientes porque pueden optimizarse para algoritmos, y su capacidad de programación les da mucha flexibilidad. Los FPGA de gama alta contienen millones de los elementos lógicos mencionados anteriormente.
¿Quien utiliza FPGAs?
Los FPGA se utilizan para todo tipo de aplicaciones. Eso incluye para la electrónica de consumo, como teléfonos inteligentes, vehículos autónomos, cámaras y pantallas, procesamiento de video e imágenes y sistemas de seguridad. También se utilizan para muchos usos comerciales, como en servidores, y en varios mercados verticales, incluidos los aeroespaciales y de defensa, para la electrónica médica y para sistemas monetarios distribuidos.
Otra IP en un FPGA
Además de los LE y los registros (memoria), los FPGA contienen bastantes otros bloques de hardware. Dado que muchas aplicaciones requieren capacidades de procesamiento de números, los FPGA de alta gama son conocidos por su alto rendimiento de punto flotante e entero al tener miles de DSP (procesadores de señal digital) que les permiten competir o incluso superar las GPU en la métrica de FLOPS.
Los FPGA no solo procesan datos, sino que también mueven una gran cantidad de datos, para los cuales contienen transceptores. Los FPGA más capaces de Intel ofrecen un ancho de banda de 8Tbps desde 144 transceptores 58G conectados a través de la tecnología de empaquetado EMIB (puente de interconexión de múltiples matrices integrado).
Por último, los FPGA también contienen propiedad intelectual dura. Por ejemplo, pueden contener interfaces PCIe o núcleos de cómputo de una CPU Arm.