Elhuyar Fundazioa
En general, el disseny de programari pot considerar-se més senzill que el disseny de maquinari. En el 99% dels casos, la millor solució a un problema digital és l'adquisició d'un xip estàndard i la redacció d'un programari que indiqui el treball que ha de realitzar. No obstant això, alguns científics han volgut fer el camí a l'inrevés i, segons sembla, han aconseguit bons resultats. Amb l'èxit d'aquest camí es reduiria enormement el temps i la quantitat de diners que s'empra en el disseny de xips.
Els xips tradicionals estan constituïts per milions d'elements nimiños en forma d'embornals i inversors. Classificar i connectar tots ells és un treball molt especialitzat, intensiu i llarg. Per això, diversos grups d'investigadors han volgut perfeccionar i facilitar aquesta labor a través de paquets de programari denominat compilador maquinari. Aquests paquets retornen el llistat de components i connexions necessàries per a completar el xip que compleix les seves funcions, prenent qualsevol programa d'aplicació. A continuació, un altre programari pren aquestes llistes conegudes com a Llistes de Xarxa i les converteix en dissenys concrets de xips que es podran gravar directament en silici.
Sens dubte, tot això obre un nou camí en el disseny de xips, ja que qualsevol persona que no sàpiga dissenyar maquinari podrà dissenyar un xip adaptat a les seves necessitats. A més, aquestes llistes de xarxes incrementarien la capacitat de la nova generació de xips programables que canviarien les connexions internes en qualsevol moment.
No obstant això, els avantatges d'aquests nous xips no es limiten al simple disseny. En general, els treballs que pot realitzar un PC normal són molt diferents: va del joc al processador de textos passant per un programa de disseny. Les aplicacions programari són ordres escrites en un llenguatge d'alt nivell, que passen per un compilador soft que fa entendre aquestes ordres a l'ordinador. Per això, durant l'execució de l'aplicació, es pren el seu codi compilat i es compara en tot moment amb una llista general que conté el processador principal del PC. Si es disposa del xip corresponent a cada programa, el processador distribuiria el treball i realitzaria aquestes comparacions amb llistes més petites. Això suposaria una reducció del temps d'execució i, en conseqüència, una acceleració extraordinària de la velocitat.
A més de les citades anteriorment, aquesta nova via de disseny té l'avantatge addicional de poder preparar maquinari per a processar de manera paral·lela dues parts del treball que realitzarà. Per exemple, el temps necessari per a unir una llarga llista de números es pot dividir en dos, dividint la llista en dues, afegint cada part en un circuit i sumand ambdues.
Sens dubte, la millor solució seria tenir xips adaptats a les necessitats de cada usuari per a estalviar temps i, segons sembla, s'està treballant en això. La principal dificultat que han trobat fins ara ha estat trobar un sistema senzill per a convertir programari en maquinari, ja que és molt difícil crear connexions adequades entre components electrònics. Cal tenir en compte que un lector, un programa normal necessita prop de 500.000 components per a funcionar correctament.
El dissenyador tradicional utilitza eines amb ajuda d'ordinador per a localitzar i connectar diferents components i testa els resultats mitjançant un programari de simulació. Els compiladors de maquinari, per part seva, modifiquen el procés habitual de fabricació de xips, creant una llista de components a connectar a partir del programari per a obtenir l'equivalent de maquinari.
Un paquet de simulació que utilitzen els dissenyadors de xips actuals (VHDL) pot fer part d'aquest treball, però genera llacunes de temps (gap) que són difícils de solucionar. Les grans empreses que fins ara utilitzaven VHDL i el programari associat (com Hewlett Packard) s'han interessat per compiladors de maquinari. I el perquè d'aquest comportament és clar: els compiladors abaratiran enormement la producció de xips.
Els investigadors han tractat de construir compiladors per a ser usades. Per exemple, un equip de la Universitat de Toronto ha aconseguit construir un compilador de maquinari anomenat Transmogrifier que compagina aplicacions realitzades en llenguatge de programació C. És previsible que milions d'usuaris en el món coneguin el llenguatge C —i que la seva capacitat sigui molt elevada— sigui molt avantatjosa.
Diversos investigadors ja han utilitzat aquesta tècnica per a desenvolupar xips a mesura, com el control de mòdems. Un altre equip detecta el moviment d'imatge de la càmera de vídeo i desenvolupa el xip que segueix aquest moviment. La velocitat és un factor determinant per a aquestes obligacions: la cambra aporta 25 imatges per segon, per la qual cosa per a presentar cada imatge de manera individual es requereix un processament de dades molt ràpid.
Com hem explicat, els avantatges són moltes i variades, però el compilador maquinari també tenen alguns inconvenients. En general, els xips fabricats amb aquest sistema són menys efectius que els realitzats en processos manuals. Quan cal buscar una solució a un problema, l'home sap triar el camí més adequat, però la màquina no. Els compiladors apliquen principis generals i les solucions ofertes no sempre són les més adequades en totes les situacions. No obstant això, es considera que en breu se solucionarà aquest problema.
Per descomptat, en les nostres llars encara no ha arribat cap mecanisme d'aquest tipus, però en molt poc temps no ens resultarà tan estrany la nova combinació de maquinari i programari.