Cuando, en un descanso de nuestro ajetreado trabajo con el ordenador, miramos esa caja mágica donde, sin saber muy bien cómo, nuestras acciones sobre el teclado se convierten en resultados visibles a través de nuestra pantalla, nos preguntamos cómo es posible, cómo se ha conseguido que esto funcione.
En seguida pensamos en que un equipo de analistas y programadores han desarrollado unos programas que nos permiten conseguir, metiendo datos, obtener resultados.
Pero y el alma, el corazon, la CPU ¿como se ha conseguido que miles, millones de instrucciones por segundo con operaciones matemáticas se produzcan en una pequeña pastilla de silicio?
En la red encontramos multitud de videos, alguno fascinante, del proceso de fabricación de un chip. Vemos como con tecnicas fotográficas se imprimen en la oblea de silicio, circuitos, millones de transistores, puertas lógicas,etc.
Pero para llegar a este proceso de fabricación antes hay un complejo y largo periodo de investigación, diseño y pruebas. Y cuando lo complicamos en un procesador con varios núcleos para que se repartan el trabajo…
¿Como se prueba algo que aún no existe? Es de suponer que cada fabricante o centro de investigación tenga sus métodos de trabajo e incluso que hasta que sean secretos.
Es el caso de los FPGA (del inglés Field Programmable Gate Array). Estos dispositivos nos pueden servir para comprender como se podría probar un diseño. Recuerdan un poco a esas placas donde, soldando los componentes electrónicos adecuados, obteníamos nuestro circuito impreso experimental.
Los FPGA contienen bloques de lógica cuya interconexión y funcionalidad puede ser configurada ‘in situ’ mediante un lenguaje de descripción especializado. Es decir, podemos trasladar nuestro diseño papel al dispositivo físico para poder probarlo.
Tienen muchas más utilidades, de hecho la empresa Xilinx se dedica a fabricarlos para multitud de aplicaciones.
Un ejemplo de sus posiblidades es lo conseguido a finales del año pasado por Wim Vanderbauwhede y su equipo en la universidad de Glasgow, que lograron crear un procesador con 1.000 núcleos, capaz de procesar 5GB por segundo.