La Matrice Cellulaire : une architecture nouvelle

pour la nano-informatique

Auteurs: L.J.K. Durbeck and N.J. Macias

Traducteur: Aurélien Sagnier

Traduction partiellei



traduction de Durbeck L and Macias N 2001 The Cell Matrix: an architecture for nanocomputing Nanotechnology 12 pp 217-30 (Bristol, UK: Institute of Physics Publishing) Copyright© 2001 Institute of Physics

Résumé

Récemment, d’importants efforts ont été consacrés au développement d’interrupteurs à l’échelle atomique et à la construction d’ordinateurs à partir de composants à l’échelle atomique. Nous proposons la construction de matériel informatique physiquement homogène et non différencié qui est différencié par la suite, après fabrication, en circuits numériques spécifiques. Ce procédé atteint deux buts simultanément en utilisant un même procédé de fabrication: le premier, immédiat, d’obtenir un ordinateur spécifique basé sur une unité centrale et une architecture de mémoire basée sur des interrupteurs à l’échelle atomique, ainsi que le second, plus général, qu’est la capacité de construire n’importe quel circuit numérique. De plus, ce procédé ouvre la perspective de mise en oeuvre fondamentale de circuits imprimés avec des caractéristiques dynamiques, massivement parallèles et automodifiables. En outre, l’architecture spécifique décrite dans ce document n’est pas particulièrement plus complexe que la plupart des autres architectures existantes, ce qui la rend plus facile à réaliser. Nous avons développé une architecture informatique appelée la Matrice Cellulaire qui tient davantage compte des contraintes de construction, ainsi qu’un procédé permettant de différencier du matériel informatique en circuit spécifique désiré de façon efficace et peu coûteuse. La Matrice Cellulaire est basée sur un élément atomique unique appelé cellule, qui, répliqué maintes fois, forme une matrice de cellules. En plus d’être d’application générale, cette architecture est hautement extensible, à tel point qu’elle semblerait donner accès à la différentiation et à l’utilisation de trillions de trillions d’interrupteurs. Cela n’est pas possible avec une architecture de réseau prédiffusé programmable par l’utilisateur, car leur réseau de portes est configuré en série, et la configuration en série de trillions de trillions d’interrupteurs prendrait des années. Cet article décrit la cellule en détail, ainsi que la façon dont les réseaux de cellules à l’intérieur d’une matrice peuvent être utilisés pour créer de petits circuits. Cet article décrit également un exemple d’application de cette architecture qui tire le meilleur parti d’un plus grand nombre d’interrupteurs.

Introduction

L’architecture décrite dans cet article est une plate-forme de calcul universelle qui permet de concevoir et de réaliser de façon fine des circuits numériques : son nom est la Matrice Cellulaire. Cette architecture sert à un mode de calcul du type un problème, une machine, dans lequel l’algorithme et l’ensemble des circuits sont conçus simultanément dès le départ, à un niveau aussi fin que la porte logique, si on le souhaite. Contrairement à d’autres architectures, celle-ci ne nécessite pas la construction d’un nano-assembleur (sur le modèle créé par Forrest Bishop en 1996) pour élaborer le modèle de calcul décrit ci-dessous, car la structure physique du matériel informatique est totalement fixe. Il s’agit d’une rangée de circuits de calcul dont la fonction est déterminée par la mémoire reconfigurable qui lui est incorporée. Grâce à cela, le matériel est « reconfigurable » selon le problème qu’il a à résoudre, tout comme les FPGA (Field Programmable Gate Array, réseau prédiffusé programmable par l’utilisateur). La structure physique de la Matrice Cellulaire présente l’avantage d’être non seulement fixe, mais de plus entièrement homogène, ce qui n’est pas le cas des autres matériels reconfigurables. En effet, son architecture s’appuie sur une structure unique dupliquée, appelée cellule, afin d’accomplir toutes les fonctions nécessaires, y compris la capacité de reconfigurer le matériel. A l’inverse des FPGA et des matériels utilisant un processeur et de la mémoire, la Matrice Cellulaire fonctionne sans superstructure ni structure spécialisée, mais uniquement grâce à des cellules identiques. La cellule est une structure simple, constituée de moins de 100 octets de mémoire et de quelques douzaines de portes logiques, ainsi que de fils la reliant aux cellules voisines (la conception de ces cellules et des matrices de cellules est décrite dans cet article). En conséquence, à partir du moment où les ressources existent pour construire une cellule structurellement simple et pour la connecter aux cellules voisines, il est possible de créer ou de développer une matrice entière par le biais d’une application répétée. La matrice peut alors être utilisée pour construire n’importe quel type de circuit numérique ou de composants comme des réalisations spécifiques de processeurs ou de mémoire, des processeurs parallèles, des multiprocesseurs, et bien d’autres composants encore.

Il y a des similitudes entre la Matrice Cellulaire et l’automate cellulaire créé par von Neumann en 1966 : ces deux structures sont composées de cellules identiques, connectées entre elles de façon rigoureusement analogue. Dans les deux, le comportement de la cellule dépend de son état ainsi que de celui des cellules voisines au moment de l’ordre. Cependant, si une Matrice Cellulaire tridimensionnelle est considérée comme un automate cellulaire, chacune de ces cellules dispose de 6,36 x 10234 états, soit 2(768+12) car la table de vérité est constituée de 768 bits (table qui est indépendante de celle des cellules voisines), et les entrées de la cellule représentent 12 bits. Etant donné que chaque cellule possède six cellules voisines, le tableau de transition total d’un tel automate cellulaire contient 4,21 x 101543 entrées. De plus, le procédé de programmation de la Matrice Cellulaire est très proche de celui d’un circuit numérique de conception standard, et il a peu de point commun avec celui d’un automate cellulaire. En conséquence, il serait certainement plus naturel de considérer la Matrice Cellulaire non pas comme un automate cellulaire avec une table de transition fixe, mais plutôt comme un matériel à grain fin reconfigurable semblable à un FPGA, mais possédant des caractéristiques uniques dépassant celles d’un FPGA courant.

En plus de proposer une structure physique simple sur laquelle des systèmes de calcul complexes peuvent être créés, l’architecture de la Matrice Cellulaire fournit des solutions pour utiliser de façon efficace de grands nombres d’interrupteurs, car le niveau de complexité du système de commande est indépendant du nombre d’interrupteurs ; au contraire, le contrôle sur le système augmente avec le nombre de cellules. La commande de cette architecture à grain fin est interne et distribuée, ce qui permet à l’utilisateur de répartir un problème donné de façon temporelle, et non spatiale. Cette capacité s’applique particulièrement aux problèmes lourds mais naturellement parallèles comme une recherche portant sur une grande surface (par exemple dans le cas d’une détection de signature chimique, notamment pour détecter un cancer) qui décrypte du texte et cherche la racine de l’expression mathématique f (x) = n. Dans une machine traditionnelle, ces problèmes sont répartis de façon temporelle, car les éléments de l’espace dans laquelle la recherche est conduite sont analysés un par un jusqu’à ce que la réponse soit trouvée. En revanche, dans l’algorithme d’une machine à répartition spatiale, le processus de recherche dans les éléments peut être répliqué sur une grande matrice de processeurs qui effectuent chacun la recherche uniquement dans la portion de l’espace global qui leur a été attribuée. L’ensemble des processeurs peut alors opérer en parallèle, ce qui réduit le temps de recherche au temps nécessaire à un processeur pour accomplir sa charge de travail.

Cet article démontre qu’il est possible de construire un algorithme et une machine afin de répartir efficacement un problème de recherche entre un grand nombre de processeurs adaptés (voir ci-dessous) et de déchiffrer un cryptage à 56 bits. Cet article montre également que tous les processeurs nécessaires peuvent être construits en parallèle sur une Matrice Cellulaire. Ceci est important, car dans un FPGA contrôlé de façon externe, même si la machine fonctionne efficacement, la configuration, qui se ferait nécessairement en série, prendrait des mois, voire des années. En conséquence, l’architecture de la Matrice Cellulaire est actuellement la seule sur le marché à donner la possibilité de contrôler efficacement la construction et l’utilisation de systèmes qui tirent le meilleur parti en terme d’efficacité du très grand nombre d’interrupteurs que l’industrie de l’échelle atomique est en mesure de proposer.

Description

La réduction de la taille des systèmes fait partie des résultats les plus attendus des recherches de l’industrie de l’échelle atomique ; toutefois, ce sont les recherches portant sur la possibilité de construire des systèmes utilisant un nombre de composants plusieurs fois supérieur à ce qui était fait par le passé qui crée le plus d’effervescence. Ce développement, qui est vraiment remarquable, appelle nécessairement des innovations au niveau des architectures de calcul, et en particulier en ce qui concerne les structures et les processus de contrôle. Ces derniers doivent être développés de façon à ce qu’un nombre extrêmement important de composants puisse opérer efficacement en simultané.

C’est sur ce besoin d’ architectures de calcul innovantes que nous nous penchons ici. Les possibilités offertes par les architectures traditionnelles vont montrer leurs limites bien avant que les capacités de la construction à l’échelle atomique ne soient entièrement exploitées. Lors d’une conférence sur les architectures informatiques animée par Carver Mead en 2000, on lui demanda pourquoi la barre du calcul en parallèle à l’échelle de millions de processeurs n’avait pas encore était franchie. Il répondit en substance qu’ils avaient délibérément choisi de suivre une approche scalaire et que le plus gros et le seul obstacle vers le calcul parallèle à grande échelle était le succès même du calcul saclaire. Il est clair que les architectures actuelles (composées d’un processeur et de mémoire) vont tirer profit d’une plus grande densité car elles seront miniaturisées, ce qui diminuera le temps de réponse et ouvrira la voie à des systèmes plus puissants qui tiendront sur des ordinateurs plus petits. Elles bénéficieront également d’une augmentation du nombre d’interrupteurs dans une certaine mesure, car tous les composants systèmes, que ce soit l’unité centrale, la mémoire dure, la mémoire d’accès rapide, les coprocesseurs ou l’UAL, pourront être insérés dans le même substrat, ce qui réduira le temps de réponse. De même, la place ainsi libérée permettra d’ajouter de nouvelles fonctions système avancées pour les coprocesseurs et les UAL, ainsi que davantage de supports de langue ou d’instructions ; on pourrait même revenir à des jeux d’instruction d’un type identique à ceux utilisés avant le jeu d’instructions RISC (comme par exemple ceux du VAX 11/780). Cependant, l’impact sur les architectures traditionnelles risque de se limiter à ces évolutions-là et de ne pouvoir tirer entièrement parti du nombre extrêmement grand d’interrupteurs que la production à l’échelle atomique devrait atteindre, car il est particulièrement compliqué de faire évoluer de façon massive ce type d’architecture.

On peut affirmer sans se tromper que le processeur Pentium va atteindre ses limites ; en revanche, la solution pourrait se trouver dans un plus grand nombre de Pentiums. En effet, des ordinateurs multiprocesseurs très spécialisés sont en développement, comme le projet de 1999 d’IBM appelé « Blue Gene ». Malgré cela, les ordinateurs multiprocesseurs commerciaux souffrent généralement de goulots d’étranglements inter-processeurs, et à ce jour il n’existe pas de schéma de communication qui puisse gérer un million ou un milliard de processeurs pour ce type d’ordinateur. Certains chercheurs, notamment Mike Joy en 1992, se sont déjà penchés sur la nécessité d’avoir recours à des nouvelles méthodes et de nouvelles structures afin de contrôler des ordinateurs aussi puissants et complexes ; cependant nous n’avons connaissance d’aucune réalisation concrète autre que celle présentée ici. Il paraît évident que le degré de contrôle doit évoluer en même temps que le système informatique pour que la taille de ce dernier ne devienne pas une gêne. En générale, l’hypothèse selon laquelle un nombre n de processeurs utilisés pour une tâche donnée l’accomplira n fois plus vite qu’un seul processeur se révèle fausse (à de très rares exceptions prés), et ce car le temps système nécessaire pour coordonner l’utilisation d’un grand nombre de processeurs est beaucoup trop important.


Schéma peut affirmer sans se tromper que le processeur Pentium va atteindre 1. (a) Réseau de nœuds de calculs simples. Le schéma de connexion des nœuds n’est pas fixe, comme l’illustre l’image (b).

Cependant, il est possible d’obtenir une accélération multipliée par n pour n processeurs utilisés dans deux cas : si chaque processeur est choisi de façon appropriée (comme dans le projet « Blue Gene » d’IBM), ou si chaque processeur est configuré de façon appropriée, comme dans la Matrice Cellulaire.

Nos études appellent d’autres travaux : elles se rangent donc du côté de la demande de la nano-informatique et non de l’offre. Nous croyons que des interrupteurs à l’échelle atomique vont bientôt être produits (cf. les études de Collier et de ses assistants en 1999). Les questions auxquelles nous tentons d’apporter une réponse sont les suivantes : une fois obtenus des interrupteurs à l’échelle atomique, comment les organiser ? Et comment les utiliser pour obtenir des nano-ordinateurs ? Nous travaillons à la fois sur l’organisation physique (la structure), et l’organisation d’exécution (la fonction) des plate-formes de nano-informatique.

A) Organisation des nanostructures

1) Les Cellules

Notre architecture se fonde sur des éléments de calcul reconfigurables à grain extrêmement fin appelés « cellules », dans une topologie d’interconnexion simple. La conception de la cellule est simple et uniforme à travers toute la matrice. La complexité informatique vient de l’opération suivante, la programmation des cellules, et non pas de leur définition en tant que matériel. La Matrice Cellulaire peut être définie comme un réseau de nœuds dans lequel chaque nœud est un élément du circuit comme une porte ET, un additionneur complet 1 bit ou une longueur de fil. Ce concept est illustré par le schéma 1. Les FPGA peuvent également être modélisés de façon similaire ; toutefois, les grandes différences entre ces deux systèmes se situent au niveau des propriétés physiques et de la conception de l’architecture. La topologie de réseau est fixe et uniforme dans l’intégralité du système, mais lors de la production d’une Matrice Cellulaire, il est possible de créer une grande variété de topologies de ce type : les nœuds peuvent être connectés à 3, 4, 5 ou davantage de nœuds.


Schéma 2. Cellule dont le bloc mémoire est agrandi et montré en haut du schéma. La mémoire de la cellule est paramétrée pour réaliser un additionneur complet 1 bit. Cette cellule en mode D additionne A, B, et Cin et produit Σout et Cout. Les lignes fléchées indiquent des fils qui la connectent à une cellule voisine. Les cellules sont connectées à leurs voisins immédiats (ici, à quatre voisins). Le calcul est optimisé grâce au partage d’information entre cellules voisines, en parallèle.

Les nœuds voisins sont généralement soit immédiatement adjacents, soit juste à côté, de façon à obtenir la structure la plus localisée et la plus simple possible. Le réseau est bidirectionnel, ce qui permet l’échange d’information en parallèle entre les nœuds. Le mot “ cellule ” réfère à l’unité physique dont est composée la Matrice Cellulaire. Les nœuds d’un réseau correspondent aux cellules individuelles, et le réseau lui-même aux interconnexions entre les cellules. Chaque cellule a la capacité d’accomplir des fonctions logiques simples à ses entrées ainsi que de produire une sortie. Parmi les fonctions logiques qui peuvent être utilisées, on compte les opérateurs utilisés traditionnellement pour l’intégration à petite échelle comme NON ET, OU exclusif, etc, mais également des fonctions plus complexes et plus avancées, comme un additionneur complet 1 bit, un multiplexeur, etc. En fait, une seule cellule à quatre côtés est capable de réaliser plus de 1019 fonctions différentes à partir de ses quatre entrées, et une cellule à six côtés peut réaliser plus de 10115 fonctions. Une partie de chaque cellule est attribuée à la mémoire : elle est utilisée pour spécifier sa fonction logique. Ce bloc de mémoire fonctionne comme le code machine d’une unité centrale, c’est à dire qu’il dicte à la cellule l’intégralité de la réponse aux entrées. Le schéma 2 illustre une organisation possible pour le bloc mémoire afin que la cellule accomplisse des opérations efficaces. Dans le cas présenté, la cellule est configurée en additionneur complet 1 bit : les cellules agissent alors comme des blocs logiques simples. Les fonctions plus complexes se construisent grâce à des amas de cellules. Une région d’une Matrice Cellulaire est ainsi configurée pour agir comme un circuit spécifique, c’est à dire que le bloc mémoire de chaque cellule est configuré pour accomplir un sous-ensemble d’un circuit plus grand.




Schéma 3. Circuit simple construit sur un ensemble de 27 cellules de Matrice Cellulaire à quatre côtés. Ce circuit est un compteur. Les fils d’interconnexion entre les cellules ne sont pas représentés.

Chaque cellule est un nœud qui est une petite partie d’un grand système ou circuit. Le schéma 3 montre un exemple élémentaire d’un groupe de cellules qui sont programmées pour implémenter un compteur. La cellule dans le coin en haut à gauche est configurée pour agir comme un quartz : elle produit un modèle de bits hauts (ayant pour valeur 1) et de bits bas (ayant pour valeur 0). Les huit colonnes à droite sont huit bascules, composées de trois cellules chacune. L’entrée d’horloge est située sur la gauche de la cellule du milieu et la valeur du bit sort à sa droite, ainsi qu’en haut de la cellule supérieure. Si l’entrée attribuée à la cellule en bas à gauche a pour valeur 1, les bits du quartz seront dirigés vers l’entrée d’horloge de la bascule la plus à gauche, ce qui fera varier sa valeur de sortie tous les deux tics. Sa valeur de sortie est également transmise à la bascule suivante qui basculera tous les quatre tics, et ainsi de suite. L’ensemble des sorties forme donc un compteur en cascade. Notez bien que lorsqu’un ensemble de cellules fonctionne sur un « mode combinatoire », elles opèrent de façon asynchrone, sans horloge prédéterminée : les valeurs de sortie changent dès que l’ensemble des circuits de la cellule répond aux nouvelles entrées. Les nouvelles sorties ainsi obtenues sont aussitôt transmises aux entrées des cellules voisines. Cependant, il est possible de synchroniser ces opérations en construisant des lignes d’horloges, ou en utilisant des cellules en « mode modification ». Les cellules en mode « modification » changent leur mémoire de configuration (ou tables de vérité) de façon synchrone avec une horloge système globale ; ces changements peuvent être contrôlés et utilisés pour générer des horloges locales, dont le quartz du schéma 3 constitue un exemple.

2) Configuration des cellules

Nous allons maintenant nous pencher sur la façon dont chaque cellule devient une partie spécifique d’un circuit : comment les blocs mémoires des cellules sont-ils constitués, comment sont-ils configurés ? Etant donné que toutes les fonctions sont présentes au niveau des cellules, ces dernières doivent nécessairement posséder la capacité de configurer/constituer le système ; c’est la cas dans la Matrice Cellulaire. Les cellules peuvent interpréter les informations entrantes de deux façons distinctes : lorsqu’une cellule répond aux entrées en se basant sur sa configuration cellulaire, elle opère sur le mode « combinatoire », ou mode de traitement de données, comme un bloc logique combinatoire. En revanche, il existe un autre mode appelé mode « modification », qui permet à la cellule de considérer les bits/informations entrants comme nouveau code pour son bloc mémoire. Une cellule passe en mode «  modification » et traite les informations en conséquence grâce à un échange simultané avec une cellule voisine. Lors de celui-ci, la cellule voisine communique une nouvelle table de vérité à la cellule qui est modifiée. La configuration d’une cellule est donc une opération purement locale, qui implique uniquement deux cellules : celle qui possède l’information du nouveau code, et celle qui est ciblée et vers laquelle va l’information. La conséquence du caractère purement local de cette configuration est la possibilité de voir plusieurs processus du même type se dérouler en même temps dans différentes parties de la matrice.

L’état d’une cellule, et donc son mode, est déterminé par la valeur de son entrée C : si les entrées de C sont toutes égales à 0, la cellule fonctionne en mode « combinatoire », et il traite les données de l’entrée D pour produire des sorties D et C. En revanche, si une des entrées de C est égale à 1, la cellule est en mode « modification ». Dans ce cas, à tous les côtés où Cin = 1, les entrées D sont soumises à un opérateur OU spécifique, et le signal composite est chargé dans la mémoire de configuration de la cellule. Ce chargement s’effectue lors du front montant de l’horloge du système ; lors du front descendant le bit de configuration qui doit être remplacé à l’opération suivante est présenté à la sortie D de la cellule (sur les côtés ou Cin = 1). Ainsi, en affichant une valeur sur une de ses sorties C, une cellule X peut faire passer sa cellule voisine Y en mode «  modification ». X peut ensuite lire la mémoire de configuration de Y pendant le front descendant de l’horloge du système, et X peut charger de nouvelles données de configuration (ou les mêmes) dans Y pendant le front montant suivant. Ainsi, X peut lire la mémoire de configuration de Y simplement en manipulant ses sorties C et D, entre autre sous la forme d’une lecture non destructive.

Dans le mode «  combinatoire », les entrées D sont ainsi traitées par la mémoire de configuration de la cellule, alors qu’en mode « modification », elles sont utilisées pour réécrire cette dernière. Notez bien que chaque cellule à l’intérieur de la matrice est capable de fonctionner en mode « combinatoire » ou en mode « modification » : son mode n’est pas prédéterminé, et il est purement fonction des entrées qu’elle reçoit des cellules voisines. Dans une application complexe typique, la Matrice Cellulaire contient certaines cellules qui traitent des données, et d’autres qui modifient et reconfigurent des cellules. En fait, le bon fonctionnement de l’ensemble du système exige une grande coopération, une bonne interaction et des échanges entre les modes « combinatoire » et « modification » à l’intérieur de la Matrice Cellulaire. Grâce à ce fonctionnement, il est possible non seulement de faire des calculs d’ordre général en utilisant un amas de cellules, mais également de faire lire et modifier les informations de configuration des cellules par d’autres cellules. Ceci induit des circuits dynamiques et auto-configurables dont la durée d’exécution peut être modifiée en se basant sur des évènements au niveau local.

3) Implémentation des cellules


Le fonctionnement détaillé décrit ci-dessus peut être représenté sous la forme d’un circuit digital simple : le schéma 4 illuste un circuit pour une cellule avec quatre voisins.

Schéma 4. Diagramme schématique de la spécification pour une cellule de la Matrice Cellulaire, montrant la logique numérique contenue dans une cellule.

Il y a plusieurs façons de concevoir et de construire une cellule, et à chacune correspondent des circuits numériques différents. Le schéma 4 illustre un type particulier de mise en oeuvre qui est décrit dans le brevet américain n° 5 886 537, mais d’autres designs plus simples ont également été brevetés (brevet américain n° 6 222 381). Dans ce schéma, les entrées C et D sont ici nommées fils d’entrée ou de sortie, mais ce sont les même que ceux illustrés dans le schéma 2 ; deux autres entrées sont également présentes. La légende « clock » correspond à l’horloge système qui est utilisée pour l’écriture et la lecture des informations de configuration depuis et à destination de la mémoire de configuration d’une cellule. « Reset » est utilisé pour programmer la mémoire de configuration de la cellule et lui donner un état prédéterminé, par exemple l’état dans lequel tous les bits de configuration sont égaux à 0 (instruction NOP). Le bloc nommé
« 4-16 Sel » est un bloc logique séquentiel qui accepte quatre entrées et produit une affirmation à une de ses seize sorties en fonction du résultat. Le gros bloc au milieu du schéma 4 est la mémoire de configuration de la cellule ; elle est utilisée comme un registre à décalage. Les données sérielles sont introduites par l’entrée Din, puis décalées lors du front descendant du décalage d’entrées. Un interrupteur à bascule verrouille un bit lors du front montant du signal de l’horloge, et celui-ci est présenté au registre à décalage de l’entrée Din.

Schéma 5. Diagramme schématique d’une logique digitale contenue dans une mémoire 16 x 4 bits.


Le bit qui doit ensuite être décalé du registre est continuellement présenté à la sortie Dout. Le décalage est autorisé uniquement si la valeur de l’interrupteur permettant le décalage est égale à 1. Le registre à décalage est organisé non seulement en registre à décalage de 128 bits, mais encore comme une RAM de 16 x 8. Utilisée en tant que mémoire, une des 16 rangées est sélectionnée à travers/grâce à la valeur d’entrée du sélecteur de rangée. Les huit sorties sont transmises aux huit lignes de sortie qui apparaissent en bas du schéma. Pour être complet, il nous reste à préciser que l’entrée de réinitialisation donne une valeur prédéterminée à chacun des 128 bits constituant le registre à décalage. Aucune entrée ni sortie n’est mise en mémoire tampon au-delà de ce qui est montré dans le schéma 4. Par conséquent, le temps de production d’une sortie est strictement égal au temps nécessaire à l’ensemble des circuits pour répondre à un changement de valeur d’un entrée : dès que le contenu du registre à décalage est décalé ou que la valeur des entrées de D change, l’information est immédiatement traitée. Le verrouillage d’une partie des entrées par l’interrupteur à bascule et le décalage du registre à décalage sont les deux seules actions synchronisées par le signal de l’horloge. Veuillez noter que la structure d’une cellule est indépendante de la technologie de mise en oeuvre utilisée. Par exemple, dès que la « corde logique » décrite par Drexler (theorie du « rod logic », voir ses travaux de 1988) sera disponible, elle pourra être utilisée pour implémenter une cellule, au même titre que le silicium. A partir du moment où vous avez la capacité de construire une porte logique NON ET (NAND), des unités de mémoire (qui peuvent elles-mêmes être construites à partir de portes NON ET) et des interconnexions, vous pouvez construire une Matrice Cellulaire, indépendamment du type de technologie utilisée. Dans tous les cas, le composant qui prend le plus de place est le bloc mémoire qui contient les informations de configuration de la cellule. La taille de la mémoire est de 16 x 8 pour les cellules à quatre côtés, et de
64 x 12 pour les cellules à six côtés (qui peuvent être organisées physiquement en structures bidimensionnelles ou tridimensionnelles), ou de façon générale, de (2n) x (2n), où n représente le nombre de cellules voisines ou le nombre de côtés de la cellule. En plus de la mémoire, la Matrice Cellulaire contient quelques dizaines de portes simples (NON ET, OU, etc) ainsi que quelques multiplexeurs (ou sélecteurs) et des interrupteurs à bascule (mémoire à bit unique). La réalisation d’une cellule sur une puce en silicium nécessite environ 1000 transistors, dont plus de la moitié est allouée à la mémoire.


Schéma 6. Diagramme schématique du schéma 5 : une mémoire de 16 x 4 bits implémentée par les cellules d’une Matrice Cellulaire.

Nous avons déjà construit des petites matrices cellulaires sur des puces en silicium que nous avons utilisées pour de petits circuits. Actuellement, les techniques sur silicium permettent d’utiliser au moins 100 000 cellules, dans une configuration bidimensionnelle ou même tridimensionnelle. Cependant, afin de dépasser les performances des architectures et des circuits conventionnels et d’explorer la nouvelle frontière que les matrices cellulaires mettent à jour, il est indispensable que les techniques de fabrication évoluent de façon drastique en terme de densité par rapport à celles utilisées aujourd’hui sur le silicium.

De même, les recherches portant sur la fabrication pourraient également participer à ces objectifs en donnant accès à des amas cellulaires de taille plus importante au sein d’une matrice tridimensionnelle. En s’appuyant sur les estimations de Drexler (travaux de 1992) et de Freitas (travaux de 1999) et en comptant environ 500 portes par cellule et un trajet de propagation maximum de 10 portes entre entrée et sortie, on peut évaluer qu’une cellule d’une Matrice Cellulaire occuperait 8000 nm3, dissiperait 6,5 x  10-21 J et pourrait basculer en 1 ns.


 

iIl manque, en particulier, les Sections sur

2.1.4. Simple, conventional (static) circuits built on a Cell Matrix;

2.1.5. Dynamic, self-modifying circuits on a Cell Matrix;

2.2. Efficient utilization of extremely large numbers of switches;

2.2.1. Design of a 56-bit Data Encryption Standard cracker

2.2.2. Design implementation

2.2.3. Four-bit DES cracker;

2.2.4. Performance and costs;

2.2.5. DES example summary;

3.Conclusions/Discussion;

4.Future Work;

Acknowledgements;

Bibliography.

Pour en savoir plus, contactez-nous à cmsupport2 (a.t.) cellmatrix (.d.o.t.) com

- 21 -