Brevet FR2679671A1 — publié le 19930129

Processeur de structures complexes La présente invention concerne 11 architecture d'un processeur spécialisé dans la manipulation de structures complexes présentes dans de nombreuses applications informatiques et notamment dans les domaines de l'intelligence artificielle et des réseaux. Par structures complexes, il faut entendre les ensembles d'objets informatiques definis non seulement par un certain nombre de données propres mais aussi par leurs interrelations, ou références, matérialisées par des pointeurs. L'orientation spécifique, vers des calculs numériques répétitifs, de l'architecture des ordinateurs classiques actuels impose des contraintes tant au niveau du stockage des informations que de l'exécution des programmes, contraintes qui oblitèrent fortement les performances de ces ordinateurs dans le domaine du traitement des structures. En effet, dans ces ordinateurs classiques, données et programmes sont rangés dans des zones contigues de mémoire facilitant ainsi essentiellement le traitement de données en nombre déterminé par des programmes totalement figés. Toutefois, dans de nombreuses applications, et notamment dans celles impliquant des manipulations de structures, les données comme les programmes sont variables en fonction des circonstances, tant en nombre quten taille, ce qui rend très difficile leur implantation dans des zones de mémoires contigues. Ces considérations imposent la réécriture systématique des structures modifiées dans un espace vierge de la mémoire ce qui entrain, après un certain temps, une utilisation totale de celle-ci qui ne peut alors plus accepter de réécriture nouvelle. Un nettoyage de la mémoire, c'est à dire l'élimination des structures périmées, abandonnées sur place, s'avère donc -indispensable pour redonner un nouvel espace vierge à cette mémoire. Cette opération est connue sous le terme de "garbage collection" (ramassage des ordures). Une solution pour réaliser cette réorganisation de la mémoire consiste à inclure dans chacun des objets de la structure un compteur de référence indiquant le nombre de fois où cet objet particulier a été référencé par un autre objet. Lorsqu'un nouveau pointeur est créé, le compteur de référence de l'objet désigné est incrémenté d'une unité et quand un pointeur existant est détruit, le compteur de référence est décrémenté également d'une unité. Les objets dont le compteur de référence indique zéro sont détruits. Toutefois, cette solution présente certains inconvénients. L'un d'entre eux étant que, dans le cas d'un fonctionnement multi-processeur, il peut arriver qu'un objet soit détruit alors qu'il était en réalité toujours désigné par un autre objet. Le document de brevet EP-0 225 755 évite ce problème en proposant pour chaque objet d'affecter à un compteur de référence une valeur initiale déterminée, non nulle, avantageusement une puissance de deux. Lorsqu'un premier pointeur désigne cet objet, ce pointeur est affecté d'un poids correspondant à la valeur du compteur de référence de l'objet. A la création d'un second pointeur désignant le même objet, ce pointeur se retrouve affecté d'un poids moitié. Inversement, lorsque l'un des pointeurs est détruit, le poids affecté aux pointeurs restants est inchangé mais la valeur du compteur de référence de l'objet désigné est à son tour divisée de moitié. Ainsi, quelles que soient les opérations effectuées sur les objets, leur compteur de références peut seulement être décrémenté ce qui évite toute destruction inopinée d'objets encore actifs. Cependant, l'une comme l'autre méthode exigent des temps de traitement importants et donc interdisent en pratique toute application de type temps-réel. C'est pourquoi, il est connu par ailleurs des systèmes qui consistent à diviser cette mémoire en pages ou en blocs afin d'éviter son examen global coûteux en temps de traitement. Le brevet US-4 797 810 décrit un tel système dans lequel la mémoire est divisée en "générations". Lors de l'opération de ugarbage collection", ce n'est pas la mémoire toute entière mais seulement une génération déterminée qui est mise en jeu réduisant d'autant le temps nécessaire à cette opération. Toutefois, tant dans ce dispositif que dans les précédents, mémoires et processeurs restent de conception classique et l'opération de "garbage collection" est considérée comme un processus indépendant du traitement des données proprement dit, ce qui implique nécessairement, lors de son exécution, l'interruption de l'application en cours. Au contraire, l'architecture du processeur selon l'invention a pour but de résoudre simplement les problèmes précités en autorisant simultanément le traitement des données et la gestion de la mémoire. Cet objectif est atteint par une architecture de processeur de structures complexes spécifique, tant au niveau de la mémoire qu'à celui du processeur de traitement. La mémoire est répartie en une pluralité de cellules, chaque cellule étant constituée de trois mots de mémoire A, F et S, référencés par une même adresse ; le processeur de traitement contient un seul registre d'adresse permettant de référencer la totalité de ladite mémoire et trois registres d'échange autorisant l'accès simultané au contenu desdits mots de mémoire A, F et S. Plus particulièrement, lorsque les cellules sont assemblées pour former des structures complexes, chacun desdits mots A,F,S est décomposé en deux emplacements, le premier contenant une adresse de cellule ou pointeur, le second un indicateur. Le processeur de traitement dispose quant à lui d'un jeu d'instructions spécifique permettant en particulier la manipulation du contenu des cellules de mémoire ainsi que la création, la modification et l'élimination des structures complexes. Ces instructions sont assemblées en programmes conservés en mémoire suivant le même formalisme que les informations à traiter c'est à dire sous forme de structures complexes. Avantageusement, ledit processeur comporte en outre des registres généraux pour la gestion des tâches et des interruptions -et des registres de travail contenant des données 3 traiter et des adresses de cellules concernées par le traitement en cours. Enfin, ledit processeur de structures complexes dispose d'un organe d'échange lui permettant d'être relié à un bus standard ou bien couplé à des périphériques extérieurs. La caractéristique principale de l'invention concerne le mode d'assemblage des cellules entre elles, pour former des structures de complexité croissante, autorisé par l'architecture spécifique de la mémoire et du processeur de traitement. Selon une caractéristique particulière de l'invention pour former une suite de cellules dont au moins une première et une dernière cellule, lesdites cellules sont liées entres elles par leur mot de mémoire S, ledit pointeur S d'une cellule donnant l'adresse de la cellule suivante de la suite et ledit indicateur S étant positionné à zéro, à l'exception de ladite dernière cellule de ladite suite dont l'indicateur S est positionné à un et dont le pointeur S n'est pas significatif. Selon une autre caractéristique, pour former un anneau de cellules dont au moins une première et une dernière cellule, lesdites cellules sont liées entres elles par leur mot de mémoire A, ledit pointeur A d'une cellule donnant l'adresse de la cellule suivante de l'anneau et ledit indicateur A étant positionné à zéro, à l'exception de ladite dernière cellule dudit anneau dont l'indicateur A est positionné à un et dont ledit pointeur A donne l'adresse de ladite première cellule, refermant ainsi l'anneau. Selon encore une autre caractéristique pour former une structure élémentaire de cellules dont au moins une première et une dernière cellule, lesdites cellules sont préalablement assemblées par leur mot de mémoire S pour former une suite, ledit pointeur S de ladite dernière cellule donnant l'adresse de ladite première cellule et ledit pointeur F de ladite première cellule donnant l'adresse de ladite dernière cellule. Selon encore une autre caractéristique, pour former une structure complexe à partir de plusieurs structures élémentaires dont au moins une structure mère et une structure fille, lesdites structures élémentaires sont liées d'une part par leurs mots de mémoire F, autres que celui de leur première cellule ou cellule de tette, lesdits pointeurs F de ladite structure mère donnant l'adresse de ladite structure fille et d'autre part par leurs mots de mémoire A de manière à ce que pour chacune desdites structures filles, l'ensemble des cellules desdites structures mères dont lesdits pointeurs F désignent ladite structure fille ainsi que la cellule de tete de ladite structure fille forment un anneau dont la première cellule ou origine est la cellule de tête de ladite structure fille. L'invention concerne également un procédé de gestion de la mémoire du processeur spécialisé dans la manipulation de structures complexes comprenant les étapes suivantes a) assemblage de cellules non utilisées en une suite de cellules vides, b) création et modification des structures complexes par prélèvement sur ladite suite de cellules vides du nombre nécessaire et déterminé de cellules, c) réintégration desdites cellules dans ladite suite de cellules vides lorsque lesdites cellules deviennent inutiles ou périmées. L'organisation de la mémoire en cellules toutes équivalentes fonctionnellement permet la modification sans contraintes des différentes structures et l'élimination au fur et à mesure des structures périmées. Il suffit en effet, lorsque la mémoire est sollicitée, de prendre dans la suite des cellules vides le nombre de cellules nécessaire et de les associer selon la structure à modifier ou à créer sans aucun impératif de continuité et sans réécriture. De même, dès qu'une cellule ou une structure n'est plus indispensable, celle-ci réintègre la suite des vides sans réorganisation particulière. Il n'y a plus de "garbage collection" . collection D'autres caractéristiques et avantages apparaitront mieux encore à la lecture de la description qui va suivre, laquelle est accompagnée de dessins sur lesquels - la figure 1 est un bloc-diagramme de l'architecture d'un processeur selon l'invention, - la figure 2 montre l'organisation de la mémoire selon l'invention, - la figure 3 est un schéma-bloc du processeur de traitement selon l'invention, - la figure 4 montre un type de structure de donnée (suite) utilisé avec le processeur selon l'invention, - les figures 5 et 5a montrent un autre type de structure de données (anneau) utilisé avec le processeur selon l'invention, - les figures 6 et 6a montrent encore un autre type de structure de données (structure élémentaire) utilisé avec le processeur selon l'invention, et - la figure 7 représente le principe de formation de structures de complexité croissante. Il est fait référence en premier lieu à la figure 1 qui représente un bloc-diagramme d'une architecture d'un processeur selon l'invention. Celle-ci comporte trois éléments principaux une mémoire 10, un processeur de traitement 20 et un organe d'échange 30 qui communique avec l'extérieur par l'intermédiaire d'un bus standard 40. La mémoire 10 est organisée en deux zones : une zone de mémoire vive 120 et une zone de mémoire morte 110. La mémoire 10 est réalisée au moyen de trois bancs de mémoire 11, 12 et 13 dont l'adressage depuis le processeur de traitement 20 est unique. Le bus d'adresse 14 permet ainsi, pour une adresse donnée, l'accès simultané à une case mémoire de chaque banc, soit une cellule complète. Les cellules de la mémoire morte 110 occupent les adresses basses de la mémoire (0 à 8191) et ne sont utilisées que pendant une phase d'initialisation du processeur. A l'issue de cette phase elles sont remplacées par les cellules de meme adresse de la mémoire vive. La figure 2 montre plus précisément la structure de la mémoire 10. Cette mémoire est un ensemble de cellules 100. La zone -de mémoire vive s'étend de l'adresse 0 à un maximum qui peut aller jusqu'à 2G avec un minimum pratique de 16 K (ce nombre n'étant limité que par le choix de la taille des cases ou des mémoires physiques). Chaque cellule élémentaire 100 se compose de trois mots de mémoire pris chacun dans un banc 11, 12 et 13. Ces mots de mémoire sont avantageusement de 32 bits sans toutefois être limité à cette taille de mot (des mots de 16 bits ou supérieur à 32 bits sont parfaitement envisageables). Pour la commodité des développements ultérieurs les trois mots ou cases d'une cellule élémentaire seront référencés par les lettres A, F et S. Dans chaque case les bits 0 à 30 référencés 101, 103, 105 peuvent être utilisés comme adresse ou pointeur vers une autre cellule tandis que le bit 31 référencés 102, 104, 106 peut servir d'indicateur. Cet assemblage particulier de la mémoire est le fondement des performances du processeur dans la manipulation des structures complexes. La structure du processeur de traitement 20 est décrite en regard de la figure 3 qui en donne le schéma-bloc. Les informations nécessaires au programme en cours d'exécution ainsi que celles nécessaires à la gestion des tâches et des interruptions sont contenues dans des registres généraux 21, typiquement au nombre de 8, sans être limités à ce nombre. Le traitement en cours est effectué au niveau des registres de travail 22, typiquement au nombre de 16, sans également être limités à ce nombre, dont l'un contient des données caractéristiques de l'état du programme en cours, les autres contenant soit les informations à traiter soit des adresses de cellules élémentaires de la mémoire. Un registre d'adresse 23 permet l'adressage des 2 G (231) cellules de la mémoire, trois registres d'échange mémoire 24 permettant alors de recevoir le contenu de la cellule élémentaire adressée. A l'image de la mémoire, les différents registres sont avantageusement de 32 bits. Une unité arithmétique et logique 25 et un séquenceur 26 assurent le déroulement des programmes. L'ensemble constitue un processeur à registres dans lequel les instructions ne contiennent -pas directement l'adresse des données manipulées mais seulement l'indication d'un registre dans laquelle figure cette adresse. D'autres éléments non représentés comme par exemple des registres tampon d'entrée et de sortie sont également présents mais ne nécessitent pas de commentaires particuliers étant connus de l'homme de l'art Il est fait à nouveau référence à la figure 1. L'interface entre le processeur de traitement 20 et l'environnement extérieur est assuré par l'organe d'échange 30. Celui-ci pourra être soit, comme représenté sur cette figure 1, directement relié à un bus standard 40 soit couplé à des périphériques. Toutefois, dans les deux cas, il sera intéressant pour faciliter les échanges de munir cet organe d'échange 30 d'une mémoire tampon 31. Une telle architecture spécifique de la mémoire et du processeur 20 autorise un mode de fonctionnement particulièrement adapté à la manipulation des structures dont la complexité est des plus variées. Différentes structures mises en oeuvre par cette architecture seront décrites en regard des figures 4 à 6a. La figure 4 montre trois cellules élémentaires 100 liées entres elles selon un type de données que l'on nommera suite. Une suite est en ensemble de cellules liées par leur case S. Le pointeur S 105 d'une cellule donne l'adresse de la cellule suivante dans la suite. L'indicateur S 106 de la cellule est positionné à 0. Dans la dernière cellule de la suite, l'indicateur S 106 est positionné à 1 et le pointeur S 105 n'est pas significatif. A l'issue de la phase d'initialisation, les cellules non encore utilisées, c'est à dire la presque totalité de la mémoire vive, sont assemblées entre elles pour former une seule suite que l'on appelera suite des vides. Au cours des traitements ultérieurs, si une cellule nouvelle est nécessaire elle sera prise dans cette suite. Inversement, les cellules qui ne sont plus utiles seront retournées à la suite des vides. Au cours du traitement d'une tâche, le processeur de traitement est amené avant le commencement d'un sous programme ou le traitement d'une interruption, à préserver en mémoire les informations nécessaires au suivi des traitements successifs qu'il effectue. Ces informations seront stockées dans une suite particulière gérée dynamiquement que l'on appelera la suite contexte de la tâche en cours. Plusieurs suites contextes peuvent être créées et gérées simultanément par le processeur autorisant ainsi une activité multi-têches. La figure 5 montre quatre cellules élémentaires 100 liées entre elles selon un type de données que l'on nommera anneau. Un anneau est un ensemble de cellules liées par leur case A : le pointeur A 101 d'une cellule donne l'adresse de la cellule suivante dans l'anneau. L'anneau se referme sur lui même. Les indicateurs A des cellules d'un anneau sont positionnés à 0 sauf un qui indique la fin de l'anneau, la cellule suivante dans l'anneau étant l'origine de l'anneau. Un anneau peut ne comporter qu'une seule cellule. Dans ce cas (voir figure 5a) le pointeur A 101 de cette cellule pointe vers la cellule elle-même et son indicateur A 102 est positionné à 1. La figure 6 montre trois cellules élémentaires 100 liées entre elles selon un type de données que l'on nommera structure élémentaire. Une structure élémentaire est une suite dans laquelle la première cellule ou cellule de tête joua un r81e particulier le pointeur F 103 de la cellule de tête pointe vers la dernière cellule de la suite et inversement le pointeur S 105 de la dernière cellule de la suite pointe vers la cellule de tête. L'adresse de la cellule de tête est l'adresse de la structure élémentaire. Les cellules autres que la cellule de tête forment le corps de la structure. Une structure élémentaire peut ne pas avoir de corps et se limiter à sa tête. Une telle structure sera dite terminale. Dans ce cas (voir figure 6a) les pointeurs S 105 et F 103 de la tête pointent vers la tête elle-même et l'indicateur S 106 est positionné à 1. A l'issue de la phase d'initialisation, les cellules de la zone de mémoire vive 120 qui remplacent la mémoire morte 110 constituent chacune une structure terminale. Des structures élémentaires peuvent être liée par les pointeurs F et A des cellules de leur corps et par le pointeur A de leur cellule de tête pour former des structures de complexité croissante (voir figure 7). On considère d'une part les liaisons descendantes que l'on appelera référence formées par les pointeurs F du corps d'une structure élémentaire (donc autre que celui de la cellule de tête). La structure comportant le pointeur F sera appelé structure mère et les structures dont les pointeurs donnent l'adresse seront appelées structures filles. C'est le lien fondamental entre les structures. Les références permettent de passer -directement d'une structure mère à ses filles. On notera qu'une structure terminale n'a pas de fille. On considère d'autre part les liaisons ascendantes formées au moyen des pointeurs A de la manière suivante lorsqu'une même structure fille f est référencée dans une ou plusieurs cases F de cellules c du corps d'un certain nombre de structures mères, la cellules de tête f et les cellules c seront assemblées par leur pointeur A pour former un anneau dont l'origine sera f. Cet assemblage permet de passer indirectement d'une structure fille à l'une quelconque de ses mères : Partant de la cellule f et en suivant les pointeurs A, on considèrera successivement les cellules de son anneau qui sont aussi des cellules c du corps d'une des mères de f. Il suffit alors de suivre les pointeurs S pour retrouver la tête de cette mère particulière. On notera que si une structure élémentaire n'a pas de mère son anneau se réduit à sa seule cellule de tête, point que l'on vérifie immédiatement en constatant que l'indicateur A de cette cellule est à 1. Cet assemblage particulier permet avant tout de modifier les structures élémentaires par insertion ou retrait direct de cellules sans aucune contrainte de place mémoire donc sans nécessité de réécriture. Cet assemblage particulier permet aussi pour une structure élémentaire donnée de connaitre l'ensemble de ses mères et de ses filles et donc de juger immédiatement l'impact de la suppression éventuelle de cette structure à tous les niveaux de la structure complexe à laquelle elle appartient. Cet assemblage particulier permet en outre d'éliminer en une seule opération une structure élémentaire jugée périmée connaissant immédiatement son début et sa fin par les informations contenues dans sa cellule de tête. Cet assemblage particulier permet enfin de résoudre simplement le problème des doublons, problème difficile à traiter sur les ordinateurs classiques. En effet, lorsqu'une structure nouvelle est créée ou une structure ancienne modifiée il n'est pas possible sur ces ordinateurs de vérifier si une structure équivalente, donc un même objet informatique, un doublon, n'existe pas déjà en mémoire. Par la suite il ne sera plus possible de remonter d'une manière univoque d'une structure fille à l'ensemble de ses mères puisque l'opération dépendra du doublon choisi au départ, ce qui limite grandement tout mécanisme de mémoire associative particulièrement important en intelligence artificielle. Au contraire, de par l'architecture selon l'invention, cette recherche de doublons devient possible et simple. En effet, pour une structure donnée, les doublons potentiels font nécessairement partie de l'ensemble des mères d'une quelconque de ses filles, ce qui limite considérablement les recherches. Une fois repérés, les doublons sont immédiatement éliminés, ce processus pouvant éventuellement se poursuivre de structure en structure. La spécificité de l'architecture du processeur de structures complexes selon l'invention résulte également du mode de fonctionnement du processeur de traitement 20 particulièrement adapté, de par son jeu d'instructions, le mode de stockage des programmes en mémoire et les mécanismes de prise en compte des interruptions, au traitement en temps réel des structures complexes. Le jeu d'instructions comprend 32 instructions de base codées sur 13 bits (O à 8191). Ces instructions comportent outre les instructions usuelles de traitement de l'information notamment des instructions spécifiques de manipulation du contenu des cellules de la mémoire ainsi que de création, modification et élimination de structure. Ces instructions de base, à exécuter en séquence, sont rangées dans les cases F de cellules successives du corps d'une structure élémentaire pour former un programme. Le processeur de traitement peut donc exploiter toute structure élémentaire comme un programme dont il suit la progression de cellule en cellule en suivant les pointeurs S. Plus généralement, cette interprétation s'étend au niveau des structures complexes : En effet, si le processeur de traitement exploite un code d'instruction inférieur à 8192 comme une instruction de son jeu de base, il considèrera un code supérieur comme une référence à une structure élémentaire fille soit, pour un traitement, comme un appel au sous-programme défini par cette structure fille, la structure mère étant alors considérée comme un programme principal. Des mécanismes particuliers permettent dans ce cas de préserver dans la suite contexte en cours les informations nécessaires à l'enchainement des programmes (structures mères) et sous-programmes (structures filles). Ce mode particulier de fonctionnement du processeur de traitement restitue une identité parfaite entre les structures complexes considérées comme des données à traiter et les structures complexes considérées comme des programmes de traitement, avantage décisif dès lors que l'on veut aborder le domaine de la génération automatique de programme et en particulier celui de l'apprentissage automatique. Ce mode de fonctionnement joint au fait que le processeur de traitement soit un processeur à registres, c'est à dire que les instructions ne contiennent pas directement les adresses des cellules en cours de traitement mais seulement une référence au registre de travail contenant ces adresses, entraine que tout programme est naturellement réentrant. I1 en résulte que, alors que dans les ordinateurs classiques les programmes abordant le domaine de l'intelligence artificielle sont nécessairement interprétés pour préserver une réentrance qui ne leur est pas naturelle (ce qui a pour effet à la fois d'en dégrader les performances et d'accroître le problème de "garbage collection"), dans l'architecture selon l'invention les programmes peuvent être entièrement compilés et sont exécutés à la vitesse maximum du processeur. Revenons à la figure 3. Il a été précisé que le processeur de traitement 20 disposait de 8 registres généraux 21. Chacun de ces registres qui peuvent être notés de GO à G7 est typiquement réservé à une fonction particulière. Ainsi, par exemple GO contient un pointeur vers la suite contexte en cours, GI contient un pointeur vers la suite des vides, G2, G3 et G4 contiennent des données d'échange avec le bus standard et en particulier la tâche concernée et la priorité de l'échange, la priorité du bus et le code d'interruption, G5 contient un pointeur vers la structure programme de traitement des interruptions, G6 est réservé, G7 contient un pointeur vers la cellule programme en cours De même, parmi les registres de travail 22 qui peuvent être notés de RO à R15, il en est un par exemple R15 qui contient l'état du programme en cours comportant notamment la tâche en cours et la priorité de cette tâche. Ce registre joue un rale essentiel pour la prise en compte des interruptions. En effet, avant toute exécution d'une instruction, le processeur de traitement 20 examine si une interruption a été demandée par l'organe d'échange 30 et, le cas échéant, si la priorité de l'échange (registre G4) est supérieure à la priorité du traitement en cours (registre R15). Si ces conditions ne sont pas satisfaites le programme en cours se poursuit en séquence. Si les conditions sont satisfaites l'interruption est acceptée et une instruction d'appel à un sous programme est générée, le pointeur de sous-programme utilisé étant celui contenu dans le registre G5 et correspondant au programme de traitement des interruptions. Lorsque l'interruption a été exploitée, le processeur efface l'interruption et restaure alors le programme interrompu en utilisant les mêmes mécanismes que ceux utilisés pour un sous-programme normal. On notera que, contrairement aux ordinateurs classiques qui ne peuvent prendre en compte d'interruption durant une phase de "garbage collection", l'architecture selon l'invention permet la prise en compte immédiate de toute interruption prioritaire, à charge pour le programme de traitement des interruptions de gérer au mieux les divers contextes de tâches en tenant compte de leur priorité relative et de celle du message reçu. On notera de plus que comme tout programme, le programme de traitement des interruptions est totalement réentrant. Il peut donc être lui même interrompu par une nouvelle interruption plus prioritaire et ceci jusqu'à la priorité maximum. La gestion lourde et extrèmement coûteuse en temps de réponse des ordinateurs classiques est ainsi évitée autorisant une utilisation efficace du processeur de structures selon l'invention dans des applications de type temps-réel. Il apparait donc que l'architecture selon l'invention tout en résolvant définitivement le problème du garbage collection ouvre par ses particularités multiples un vaste champ de développement tant dans le domaine de l'intelligence artificielle avec notamment l'évaluation de situation, la décision, la traduction automatique, l'auto-test, l'autogénération de programmes et l'apprentissage automatique, tous domaines difficilement abordables à ce jour en temps réel, que dans celui des réseaux routiers, de commande et de contrôle, de distribution ou bien encore les réseaux électroniques. REVENDICATIONS 1. - Processeur pour la manipulation de structures complexes caractérisé en ce qu'il comporte une mémoire (10) contenant une pluralité de cellules, chaque cellule (100) étant constituée de trois mots de mémoire A,F,S référencés par une même adresse ; un processeur de traitement (20) contenant un registre d'adresse (23) permettant de référencer la totalité de ladite mémoire et trois registres d'échange (24) autorisant l'accès simultané au contenu desdits mots de mémoire A,F,S de chaque cellule ; et un organe d'échange (30) assurant les liaisons entre ledit processeur de traitement et l'extérieur. 2. Processeur selon la revendication 1, caractérisé en ce que chacun desdits mots de mémoire A,F,S comporte deux emplacements, le premier (101, 103, 105) pouvant contenir une adresse de cellule ou pointeur, le second (102, 104, 106) un indicateur. 3. Processeur selon la revendication 1 ou la revendication 2, caractérisé en ce que ladite mémoire (10) est organisée en deux zones, une zone de mémoire morte (110) et une zone de mémoire vive (120), la première correspondant aux adresses les plus faibles et n'étant utilisée que pendant une phase d'initialisation du processeur et la seconde correspondant à l'ensemble des adresses disponibles. 4. Processeur selon la revendication 1, caractérisé en ce que ledit processeur de traitement (20) comporte en outre des registres généraux (21) contenant les informations nécessaires à la gestion des tâches et des interruptions du programme en cours d'exécution et des registres de travail (22) contenant des données à traiter et des adresses de cellules, l'un au moins de ces registres de travail (22) contenant des données caractéristiques de l'état du programme en cours d'exécution. 5. Processeur selon l'une quelconque des revendications 1 à 4, caractérisé en ce que les registres généraux (21) sont au nombre de huit et les regitres de travail (22) au nombre de seize. 6. Processeur selon l'une quelconque des revendications 1 à 5, caractérisé en ce que chacun desdits mots de mémoire A,F,S et chacun desdits registres (21 à 24) comportent 32 bits. 7. Processeur selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ledit processeur de traitement (20) dispose d'un jeu d'instructions comportant outre les instructions usuelles de traitement de l'information, des instructions spécifiques de manipulation du contenu des cellules de ladite mémoire (10) ainsi que de création, modification et élimination desdites structures complexes. 8. Processeur selon la revendication 7, caractérisé en ce que lesdites instructions ne contiennent pas directement en cours de traitement les adresses des cellules de ladite mémoire (10), mais seulement une référence aux registres de travail (22) contenant ces adresses. 9. Processeur selon la revendication 1, caractérisé en ce que ledit organe d'échange (30) peut être relié à un bus standard (40) ou bien couplé à des périphériques extérieurs. 10. Processeur selon la revendication 1 ou la revendication 2, caractérisé en ce que pour former une suite de cellules dont au moins une première et une dernière cellule, lesdites cellules sont liées entres elles par leur mot de mémoire S, ledit pointeur S (105) d'une cellule donnant l'adresse de la cellule suivante de la suite et ledit indicateur S (106) étant positionné à zéro, à l'exception de ladite dernière cellule de ladite suite dont l'indicateur S (106) est positionné à un. 11. Processeur selon les revendications 1, 2 ou 10 caractérisé en ce que pour former une structure élémentaire de cellules dont au moins une première et une dernière cellule, lesdites cellules sont préalablement liées en une suite par leur mot de mémoire S, ledit pointeur S (106) de ladite dernière cellule donnant l'adresse de ladite première cellule et ledit pointeur F (103) de ladite première cellule donnant l'adresse de ladite dernière cellule. 12. Processeur selon la revendication 11, caractérisé en ce que lorsque ladite structure élémentaire ne comporte qu'une seule cellule (100), lesdits pointeurs F (103) et S (105) de ladite cellule donnent l'adresse de ladite cellule elle-même et ledit indicateur S (106) est positionné à un. 13. Processeur selon la revendication 1 ou la revendication 2 caractérisé en ce que pour former un anneau de cellules dont au moins une première et une dernière cellule, lesdites cellules sont liées entre elles par leur mot de mémoire A, ledit pointeur A (101) d'une cellule donnant l'adresse de la cellule suivante dans l'anneau et ledit indicateur A (102) étant positionné à zéro, à l'exception de ladire dernière cellule dudit anneau dont ledit pointeur A (101) donne l'adresse de ladite première cellule et dont ledit indicateur A (102) est positionné à un. 14. Processeur selon la revendication 13, caractérisé en ce que lorsque ledit anneau ne comporte qu'une seule cellule (100), ledit pointeur A (101) donne l'adresse de ladite cellule elle-même et ledit indicateur A (102) est positionné à un. 15. Processeur selon les revendication 10, 11 ou 13, caractérisé en ce que pour former une structure complexe à partir de plusieurs structures élémentaires, dont au moins une structure mère et une structure fille, lesdites structures élémentaires sont liées d'une part par leurs mots de mémoire F, autres que celui de leur première cellule ou cellule de tête, lesdits pointeurs F (103) de ladite structure mère donnant l'adresse de ladite structure fille et d'autre part par leurs mots de mémoire A de manière à ce que pour chacune desdites structures filles l'ensemble des cellules desdites structures mères dont lesdits pointeurs F désignent ladite structure fille ainsi que la cellule de tête de ladite structure fille forment un anneau dont la première cellule ou origine est la cellule de tête de ladite structure fille. 16. Procédé de gestion d'une mémoire, selon l'une quelconque des revendications 1 à 15, destinée à la manipulation de structures complexes, caractérisé qu'il comprend les étapes suivantes a) assemblage de cellules (100) non utilisées en une suite de cellules vides b) création desdites structures complexes par prélèvement sur ladite suite de cellules vides d'un nombre nécessaire et déterminé de cellules, c) réintégration desdites cellules dans ladite suite de cellules vides lorsque lesdites cellules deviennent inutiles ou périmées. 17. Procédé de rangement de programmes exécutables par un processeur selon l'une quelconque des revendications 1 à 15, caractérisé en ce que lesdits programmes sont stockés sous forme de structures complexes dans lesquelles lesdites structures mères et lesdites structures filles jouent respectivement le rôle de programme et de sous-programmes. 18. Procédé de rangement des informations nécessaires au suivi, en particulier lors d'interruptions, des tâches, programmes et sous-programmes éxécutés par un processeur selon l'une quelconque des revendications 1 à 15, caractérisé en ce que lesdites informations sont stockées sous forme d'une ou plusieurs suites de cellules de ladite mémoire.