Elhuyar Fundazioa
En général, la conception logicielle peut être considérée comme plus simple que la conception matérielle. Dans 99% des cas, la meilleure solution à un problème numérique est l'acquisition d'une puce standard et la rédaction d'un logiciel indiquant le travail à effectuer. Cependant, certains scientifiques ont voulu faire le chemin à l'envers et, apparemment, ont obtenu de bons résultats. Avec le succès de cette voie serait grandement réduire le temps et la quantité d'argent qui est utilisé dans la conception de puces.
Les puces traditionnelles sont constituées de millions d'éléments nimins sous forme de puits et d'onduleurs. Classer et connecter tous sont un travail très spécialisé, intensif et long. Ainsi, plusieurs groupes de chercheurs ont voulu perfectionner et faciliter ce travail à travers des logiciels appelés compilateurs matériels. Ces paquets renvoient la liste des composants et connexions nécessaires pour compléter la puce qui remplit ses fonctions, en prenant n'importe quel programme d'application. Ensuite, un autre logiciel prend ces listes connues sous le nom de Listes de Réseau et les convertit en dessins de puces spécifiques qui peuvent être enregistrés directement en silicium.
Sans aucun doute, tout cela ouvre une nouvelle voie dans la conception de puces, car quiconque ne sait pas concevoir du matériel peut concevoir une puce adaptée à ses besoins. En outre, ces listes de réseaux augmenteraient la capacité de la nouvelle génération de puces programmables qui changeraient les connexions internes à tout moment.
Cependant, les avantages de ces nouvelles puces ne sont pas limités à la conception simple. En général, les travaux que peut réaliser un PC normal sont très différents : il va du jeu au traitement de texte en passant par un programme de conception. Les applications logicielles sont des commandes écrites dans un langage de haut niveau, qui passent par un compilateur soft qui fait comprendre ces commandes à l'ordinateur. Ainsi, lors de l'exécution de l'application, vous prenez votre code compilé et comparez à tout moment avec une liste générale contenant le processeur principal du PC. Si la puce correspondant à chaque programme est disponible, le processeur distribuerait le travail et effectuerait ces comparaisons avec des listes plus petites. Cela signifierait une réduction du temps d'exécution et, par conséquent, une accélération extraordinaire de la vitesse.
En plus de celles mentionnées ci-dessus, cette nouvelle voie de conception a l'avantage supplémentaire de pouvoir préparer du matériel pour traiter en parallèle deux parties du travail à effectuer. Par exemple, le temps nécessaire pour joindre une longue liste de nombres peut être divisé en deux, divisant la liste en deux, ajoutant chaque partie dans un circuit et additionnant les deux.
Sans aucun doute, la meilleure solution serait d'avoir des puces adaptées aux besoins de chaque utilisateur pour gagner du temps et, semble-t-il, on y travaille. La principale difficulté qu'ils ont rencontré jusqu'à présent a été de trouver un système simple pour convertir le logiciel en matériel, car il est très difficile de créer des connexions adéquates entre les composants électroniques. Notez qu'un lecteur, un programme normal nécessite environ 500.000 composants pour fonctionner correctement.
Le concepteur traditionnel utilise des outils informatiques pour localiser et connecter différents composants et tester les résultats via un logiciel de simulation. Les compilateurs matériels, quant à eux, modifient le processus habituel de fabrication de puces, créant une liste de composants à connecter à partir du logiciel pour obtenir l'équivalent matériel.
Un paquet de simulation utilisé par les concepteurs de puces actuels (VHDL) peut faire partie de ce travail, mais il génère des lacunes de temps (gap) qui sont difficiles à résoudre. Les grandes entreprises qui utilisaient jusqu'à présent VHDL et les logiciels associés (comme Hewlett Packard) s'intéressent aux compilateurs matériels. Et le pourquoi de ce comportement est clair: les compilateurs vont englober énormément la production de puces.
Les chercheurs ont essayé de construire des compilateurs pour être utilisés. Par exemple, une équipe de l'Université de Toronto a réussi à construire un compilateur matériel appelé Transmogrifier qui combine des applications réalisées en langage de programmation C. Il est prévisible que des millions d'utilisateurs dans le monde connaissent le langage C - et que sa capacité soit très élevée - soit très avantageuse.
Plusieurs chercheurs ont déjà utilisé cette technique pour développer des puces sur mesure, comme le contrôle des modems. Un autre ordinateur détecte le mouvement d'image de la caméra vidéo et développe la puce qui suit ce mouvement. La vitesse est un facteur déterminant pour ces obligations: la caméra fournit 25 images par seconde, de sorte que pour présenter chaque image individuellement un traitement de données très rapide est nécessaire.
Comme nous l'avons expliqué, les avantages sont nombreux et variés, mais les compilateurs matériels ont également quelques inconvénients. En général, les puces fabriquées avec ce système sont moins efficaces que celles réalisées dans des processus manuels. Quand il faut chercher une solution à un problème, l'homme sait choisir la voie la plus appropriée, mais la machine ne. Les compilateurs appliquent des principes généraux et les solutions proposées ne sont pas toujours les meilleures dans toutes les situations. Cependant, on considère que ce problème sera bientôt résolu.
Bien sûr, aucun mécanisme de ce type n'est encore arrivé chez nous, mais en très peu de temps, la nouvelle combinaison de matériel et de logiciel ne nous paraît pas si étrange.