FR2679671A1 - Processor of complex structures - Google Patents

Processor of complex structures Download PDF

Info

Publication number
FR2679671A1
FR2679671A1 FR9109463A FR9109463A FR2679671A1 FR 2679671 A1 FR2679671 A1 FR 2679671A1 FR 9109463 A FR9109463 A FR 9109463A FR 9109463 A FR9109463 A FR 9109463A FR 2679671 A1 FR2679671 A1 FR 2679671A1
Authority
FR
France
Prior art keywords
cell
cells
memory
address
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9109463A
Other languages
French (fr)
Other versions
FR2679671B1 (en
Inventor
Bernard A Aimelet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sogitec Industries
Original Assignee
Sogitec Industries
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sogitec Industries filed Critical Sogitec Industries
Priority to FR9109463A priority Critical patent/FR2679671B1/en
Publication of FR2679671A1 publication Critical patent/FR2679671A1/en
Application granted granted Critical
Publication of FR2679671B1 publication Critical patent/FR2679671B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

Processor for the manipulation of complex structures including: a memory (10) containing a plurality of cells, each cell consisting of three memory words A, F, S referenced by the same address; a data processor (20) containing an address register making it possible to reference the entirety of the said memory and three exchange registers allowing simultaneous access to the contents of the said memory words A, F, S of each cell; and an exchange unit (30) providing for the links between the said data processor and the exterior, each of the said memory words A, F, S including two locations, the first able to contain a cell address or pointer, the second an indicator. The invention also relates to a process for managing the memory and one for arranging both information and programs employed by this procedure for manipulation of complex structures.

Description

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.
Complex structure processor
The present invention relates to the architecture of a processor specialized in the manipulation of complex structures present in numerous computer applications and in particular in the fields of artificial intelligence and networks.

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. By complex structures, we mean sets of computer objects defined not only by a certain number of specific data but also by their interrelations, or references, materialized by pointers.

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. The specific orientation, towards repetitive numerical computations, of the architecture of current classical computers imposes constraints both in terms of information storage and program execution, constraints which strongly obliterate the performance of these computers in the field of treatment of 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. In fact, in these conventional computers, data and programs are stored in contiguous areas of memory, thus essentially facilitating the processing of data in numbers determined by totally fixed programs.

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. However, in many applications, and in particular in those involving manipulation of structures, the data as well as the programs are variable depending on the circumstances, both in number and in size, which makes it very difficult to locate them in contiguous memory areas.

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. These considerations impose the systematic rewriting of the modified structures in a virgin space of the memory which involves, after a certain time, a total use of this one which can then no longer accept new rewriting.

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).A cleaning of the memory, that is to say the elimination of the obsolete structures, abandoned on the spot, thus proves to be essential to restore a new blank space to this memory. This operation is known as "garbage collection".

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. One solution for achieving this reorganization of the memory consists in including in each of the objects of the structure a reference counter indicating the number of times that this particular object has been referenced by another object. When a new pointer is created, the reference counter of the designated object is incremented by one and when an existing pointer is destroyed, the reference counter is also decremented by one. Objects whose reference counter indicates zero are destroyed. However, this solution has certain drawbacks. One of them being that, in the case of a multi-processor operation, it can happen that an object is destroyed when it was actually always designated by another object.

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. Patent document EP-0 225 755 avoids this problem by proposing for each object to assign to a reference counter a determined initial value, not zero, advantageously a power of two. When a first pointer designates this object, this pointer is assigned a weight corresponding to the value of the object's reference counter.

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é.When creating a second pointer designating the same object, this pointer is assigned half the weight. Conversely, when one of the pointers is destroyed, the weight assigned to the remaining pointers is unchanged but the value of the reference counter of the designated object is in turn divided by half.

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. Thus, whatever the operations carried out on the objects, their reference counter can only be decremented which avoids any unexpected destruction of still active objects.

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. However, both methods require significant processing times and therefore in practice prohibit any real-time type application.

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. This is why, systems are known which consist in dividing this memory into pages or blocks in order to avoid its overall examination which is costly in processing time.

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. US Patent 4,797,810 describes such a system in which the memory is divided into "generations". During the operation of ugarbage collection ", it is not the whole memory but only a determined generation which is brought into play thereby reducing the time necessary for this operation.

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. However, both in this device and in the previous ones, memories and processors remain of conventional design and the "garbage collection" operation is considered to be a process independent of the data processing proper, which necessarily implies, during its execution, the interruption of the current application.

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. On the contrary, the architecture of the processor according to the invention aims to simply solve the aforementioned problems by simultaneously authorizing the processing of the data and the management of the memory.

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. This objective is achieved by a processor architecture of specific complex structures, both at the level of the memory and that of the processing processor.

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.
The memory is divided into a plurality of cells, each cell consisting of three memory words A, F and
S, referenced by the same address; the processing processor contains a single address register making it possible to reference all of said memory and three exchange registers authorizing simultaneous access to the content of said memory words A, F and 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. More particularly, when the cells are assembled to form complex structures, each of said words A, F, S is broken down into two locations, the first containing a cell address or pointer, the second an indicator.

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. The processing processor has a specific set of instructions allowing in particular the manipulation of the contents of memory cells as well as the creation, modification and elimination of complex structures. These instructions are assembled into programs kept in memory according to the same formalism as the information to be processed, that is to say in the form of complex structures.

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. Advantageously, said processor further comprises general registers for the management of tasks and interruptions -and working registers containing data 3 to be processed and addresses of cells concerned by the processing in progress.

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. Finally, said complex structures processor has an exchange member enabling it to be connected to a standard bus or else coupled to external peripherals.

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. The main characteristic of the invention relates to the method of assembling the cells together, to form structures of increasing complexity, authorized by the specific architecture of the memory and of the processing processor.

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. According to a particular characteristic of the invention to form a series of cells of which at least a first and a last cell, said cells are linked together by their memory word S, said pointer S of a cell giving the address of the next cell of the series and said indicator S being positioned at zero, with the exception of said last cell of said series whose indicator S is positioned at one and whose pointer S is not significant.

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.
According to another characteristic, to form a ring of cells of which at least a first and a last cell, said cells are linked together by their memory word
A, said pointer A of a cell giving the address of the next cell in the ring and said indicator A being positioned at zero, with the exception of said last cell of said ring whose indicator A is positioned at one and whose said pointer
A gives the address of said first cell, thus closing the ring.

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. According to yet another characteristic for forming an elementary structure of cells of which at least a first and a last cell, said cells are previously assembled by their memory word S to form a series, said pointer S of said last cell giving the address of said first cell and said pointer F of said first cell giving the address of said last cell.

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.
According to yet another characteristic, to form a complex structure from several elementary structures including at least one mother structure and one daughter structure, said elementary structures are linked on the one hand by their memory words F, other than that of their first cell or tette cell, said pointers F of said mother structure giving the address of said daughter structure and on the other hand by their memory words A so that for each of said daughter structures, all of the cells of said structures mothers whose said pointers F denote said daughter structure as well as the head cell of said daughter structure form a ring whose first cell or origin is the head cell of said daughter structure. The invention also relates to a method for managing the memory of the processor specialized in the manipulation of complex structures comprising the following steps
a) assembly of unused cells into a series of empty cells,
b) creation and modification of complex structures by removing from said series of empty cells the necessary and determined number of cells,
c) reintegration of said cells into said sequence of empty cells when said cells become useless or out of date.

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" . The organization of memory into functionally equivalent cells allows the unconstrained modification of the different structures and the elimination of expired structures as they go. It suffices in fact, when the memory is requested, to take the number of cells necessary afterwards from the empty cells and to associate them according to the structure to be modified or created without any imperative of continuity and without rewriting. Likewise, as soon as a cell or structure is no longer essential, it reintegrates the series of voids without any particular reorganization. There is no longer a "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.
collection
Other characteristics and advantages will appear more clearly on reading the description which follows, which is accompanied by drawings in which - FIG. 1 is a block diagram of the architecture of a processor according to the invention, - the Figure 2 shows the organization of the memory according to the invention, - Figure 3 is a block diagram of the processing processor according to the invention, - Figure 4 shows a type of data structure (continued) used with the processor according to the invention, - Figures 5 and 5a show another type of data structure (ring) used with the processor according to the invention, - Figures 6 and 6a show yet another type of data structure (elementary structure) used with the processor according to the invention, and - Figure 7 shows the principle of forming structures of increasing complexity.

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. Reference is firstly made to FIG. 1 which represents a block diagram of an architecture of a processor according to the invention. This comprises three main elements a memory 10, a processing processor 20 and an exchange member 30 which communicates with the outside via a standard bus 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. The memory 10 is organized into two zones: a random access memory zone 120 and a read only memory zone 110. The memory 10 is produced by means of three memory banks 11, 12 and 13, the addressing of which from the processing processor 20 is unique. The address bus 14 thus allows, for a given address, simultaneous access to a memory box of each bank, ie a complete cell.

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. The read-only memory cells 110 occupy the low memory addresses (0 to 8191) and are used only during an initialization phase of the processor. At the end of this phase, they are replaced by cells with the same address in the RAM.

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. FIG. 2 shows more precisely the structure of the memory 10. This memory is a set of cells 100. The RAM area extends from the address 0 to a maximum which can go up to 2G with a practical minimum. 16 K (this number being limited only by the choice of the size of the boxes or of the physical memories). Each elementary cell 100 is made up of three memory words each taken from a bank 11, 12 and 13. These memory words are advantageously 32 bits without however being limited to this word size (words of 16 bits or greater than 32 bits are perfectly possible). For the convenience of further development, the three words or boxes of an elementary cell will be referenced by the letters A, F and S. In each box the bits 0 to 30 referenced 101, 103, 105 can be used as address or pointer to a another cell while the bit 31 referenced 102, 104, 106 can serve as an indicator.

Cet assemblage particulier de la mémoire est le fondement des performances du processeur dans la manipulation des structures complexes. This particular assembly of memory is the foundation of the performance of the processor in the manipulation of complex structures.

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. The structure of the processing processor 20 is described with reference to FIG. 3 which gives the block diagram thereof. The information necessary for the program in execution as well as that necessary for the management of tasks and interruptions are contained in general registers 21, typically 8 in number, without being limited to this number.

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. The current processing is carried out at the level of the working registers 22, typically 16, without also being limited to this number, one of which contains data characteristic of the state of the program in progress, the others containing either information to be processed, either addresses of elementary memory cells.

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. An address register 23 allows the addressing of the 2 G (231) cells of the memory, three memory exchange registers 24 then making it possible to receive the content of the elementary cell addressed. Like the memory, the different registers are advantageously 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. An arithmetic and logic unit 25 and a sequencer 26 ensure the running of the programs. The assembly constitutes a register processor in which the instructions do not directly contain the address of the data handled but only the indication of a register in which this address appears.

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.
Other elements not shown such as, for example, input and output buffer registers are also present but do not require any particular comments being known to those skilled in the art.
Reference is again made to FIG. 1.

L'interface entre le processeur de traitement 20 et l'environnement extérieur est assuré par l'organe d'échange 30.The interface between the processing processor 20 and the external environment is provided by the exchange member 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.This can either be, as shown in this figure 1, directly connected to a standard bus 40 or coupled to peripherals. However, in both cases, it will be advantageous to facilitate exchanges to provide this exchange member 30 with a buffer memory 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. Such a specific architecture of the memory and of the processor 20 allows a mode of operation particularly suited to the manipulation of structures whose complexity is very varied. Different structures implemented by this architecture will be described with reference to Figures 4 to 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.
FIG. 4 shows three elementary cells 100 linked together according to a type of data which will be called continuation. A series is made up of cells linked by their cell S. The pointer S 105 of a cell gives the address of the next cell in the series. The S 106 indicator in the cell is set to 0. In the last cell in the sequence, the indicator
S 106 is positioned at 1 and the pointer S 105 is not significant.

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. At the end of the initialization phase, the cells which have not yet been used, that is to say almost all of the RAM, are assembled together to form a single series which will be called the series of voids.

Au cours des traitements ultérieurs, si une cellule nouvelle est nécessaire elle sera prise dans cette suite. During subsequent treatments, if a new cell is needed, it will be taken in this suite.

Inversement, les cellules qui ne sont plus utiles seront retournées à la suite des vides.Conversely, cells that are no longer useful will be returned following the voids.

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.  During the processing of a task, the processing processor is brought before the start of a subroutine or the processing of an interrupt, to preserve in memory the information necessary for monitoring the successive processing operations it performs. This information will be stored in a specific dynamically managed suite which will be called the context suite for the current task. Several context suites can be created and managed simultaneously by the processor, thus allowing multi-task activity.

La figure 5 montre quatre cellules élémentaires 100 liées entre elles selon un type de données que l'on nommera anneau. FIG. 5 shows four elementary cells 100 linked together according to a type of data which will be called ring.

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.A ring is a set of cells linked by their cell A: the pointer A 101 of a cell gives the address of the next cell in the ring. The ring closes on itself. The A indicators of the cells of a ring are set to 0 except one which indicates the end of the ring, the next cell in the ring being the origin of the ring. A ring can have only one cell. In this case (see FIG. 5a) the pointer A 101 of this cell points to the cell itself and its indicator A 102 is positioned at 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. FIG. 6 shows three elementary cells 100 linked together according to a type of data which will be called elementary structure. An elementary structure is a sequence in which the first cell or head cell played a particular role the pointer F 103 of the head cell points to the last cell of the sequence and conversely the pointer S 105 of the last cell of the sequence points towards the head cell.

L'adresse de la cellule de tête est l'adresse de la structure élémentaire. The address of the head cell is the address of the elementary structure.

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. Cells other than the head cell form the body of the structure. An elementary structure may have no body and be limited to its head. Such a structure will be called terminal. In this case (see FIG. 6a) the pointers S 105 and F 103 of the head point towards the head itself and the indicator S 106 is positioned at 1. At the end of the initialization phase, the cells of the RAM area 120 which replace the ROM 110 each constitutes a terminal structure.

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). Elementary structures can be linked by pointers F and A of the cells of their body and by the pointer A of their head cell to form structures of increasing complexity (see 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. One considers on the one hand the downlinks which one will call reference formed by pointers F of the body of an elementary structure (therefore other than that of the head cell). The structure comprising the pointer F will be called the parent structure and the structures whose pointers give the address will be called daughter structures. It is the fundamental link between the structures. References make it possible to pass directly from a mother structure to her daughters. Note that a terminal structure has no daughter.

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. We consider on the other hand the uplinks formed by means of pointers A in the following way when the same daughter structure f is referenced in one or more cells F of cells c of the body of a certain number of mother structures, the cells of head f and cells c will be assembled by their pointer A to form a ring whose origin will be f. This assembly makes it possible to pass indirectly from a daughter structure to any one of its mothers: Starting from cell f and following the pointers A, we will successively consider the cells of its ring which are also cells c of the body of one of the mothers of f. Then just follow the pointers S to find the head of this particular mother.

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. It will be noted that if an elementary structure does not have a mother, its ring is reduced to its only head cell, point which one checks immediately by noting that the indicator A of this cell is at 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. This particular assembly makes it possible above all to modify the elementary structures by direct insertion or removal of cells without any constraint of memory space therefore without the need for rewriting.

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. This particular assembly also allows for a given elementary structure to know all of its mothers and daughters and therefore to immediately judge the impact of the possible removal of this structure at all levels of the complex structure to which it belongs.

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. This particular assembly also makes it possible to eliminate in a single operation an elementary structure deemed obsolete immediately knowing its beginning and its end by the information contained in its head cell.

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. This particular assembly finally makes it possible to simply solve the problem of duplicates, a problem that is difficult to deal with on conventional computers. Indeed, when a new structure is created or an old structure modified it is not possible on these computers to check if an equivalent structure, therefore the same computer object, a duplicate, does not already exist in memory. Thereafter it will no longer be possible to uniquely go back from a daughter structure to all of its mothers since the operation will depend on the duplicate chosen at the start, which greatly limits any particularly important associative memory mechanism in artificial intelligence. On the contrary, by virtue of the architecture according to the invention, this search for duplicates becomes possible and simple. Indeed, for a given structure, the potential duplicates are necessarily part of the set of mothers of any of their daughters, which considerably limits searches. Once identified, the duplicates are immediately eliminated, this process possibly continuing from structure to 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. The specificity of the architecture of the complex structure processor according to the invention also results from the operating mode of the processing processor 20 which is particularly suitable, by virtue of its set of instructions, the mode of storing the programs in memory and the taking mechanisms taking into account interruptions, in real time processing of complex structures.

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. The instruction set includes 32 basic instructions coded in 13 bits (O to 8191). These instructions include, in addition to the usual information processing instructions, in particular specific instructions for handling the content of the memory cells and for creating, modifying and eliminating structure. These basic instructions, to be executed in sequence, are stored in boxes F of successive cells of the body of an elementary structure to form a program. The processing processor can therefore use any elementary structure like a program, the progress of which it follows from cell to cell by following the pointers 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).
More generally, this interpretation extends to the level of complex structures: Indeed, if the processing processor uses an instruction code lower than 8192 as an instruction of its basic set, it will consider a higher code as a reference to a elementary daughter structure or, for processing, as a call to the subroutine defined by this daughter structure, the parent structure then being considered as a main program. In this case, special mechanisms make it possible to preserve the information necessary for the sequencing of programs in the current context.
(mother structures) and sub-programs (daughter structures).

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. This particular mode of operation of the processing processor restores a perfect identity between the complex structures considered as data to be processed and the complex structures considered as processing programs, a decisive advantage when we want to approach the field of automatic generation. program and in particular that of machine learning.

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. This operating mode joined to the fact that the processing processor is a register processor, that is to say that the instructions do not directly contain the addresses of the cells being processed but only a reference to the working register containing these addresses, means that any program is naturally reentrant. It follows that, while in conventional computers programs dealing with the field of artificial intelligence are necessarily interpreted to preserve a reentrance which is not natural to them (which has the effect of both degrading performance and to increase the problem of "garbage collection"), in the architecture according to the invention the programs can be fully compiled and are executed at the maximum speed of the processor.

Revenons à la figure 3. Il a été précisé que le processeur de traitement 20 disposait de 8 registres généraux 21. Returning to FIG. 3. It has been specified that the processing processor 20 has 8 general registers 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.
Each of these registers which can be noted from GO to G7 is typically reserved for a particular function. So for example
GO contains a pointer to the current context suite,
GI contains a pointer to the rest of the gaps,
G2, G3 and G4 contain exchange data with the
standard bus and in particular the task concerned and
the priority of the exchange, the priority of the bus and the
interrupt code,
G5 contains a pointer to the program structure of
processing of interruptions,
G6 is reserved,
G7 contains a pointer to the program cell in
Classes
Similarly, among the work registers 22 which can be noted from RO to R15, there is one for example R15 which contains the state of the program in progress comprising in particular the task in progress and the priority of this task. This register plays an essential role in taking into account interruptions. Indeed, before any execution of an instruction, the processing processor 20 examines whether an interruption has been requested by the exchange member 30 and, if necessary, if the priority of the exchange (register G4) is higher. the priority of the processing in progress (register R15). If these conditions are not satisfied, the current program continues in sequence. If the conditions are satisfied, the interrupt is accepted and an instruction to call a subroutine is generated, the subroutine pointer used being that contained in the register G5 and corresponding to the interrupt processing program.

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. When the interrupt has been used, the processor clears the interrupt and then restores the interrupted program using the same mechanisms as those used for a normal subroutine.

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. It will be noted that, unlike conventional computers which cannot take an interruption into account during a "garbage collection" phase, the architecture according to the invention allows immediate taking into account of any priority interruption, at the expense of the handling of interruptions to better manage the various task contexts, taking into account their relative priority and that of the message received. It should also be noted that, like any program, the interrupt processing program is completely reentrant. It can therefore itself be interrupted by a new, higher priority interruption, up to the maximum priority. The heavy and extremely costly management in response time of conventional computers is thus avoided, allowing efficient use of the structure processor according to the invention in real-time type applications.

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.  It thus appears that the architecture according to the invention while definitively solving the problem of garbage collection opens by its multiple particularities a vast field of development both in the field of artificial intelligence with in particular the evaluation of situation, the decision, machine translation, self-test, program self-generation and machine learning, all areas that are difficult to approach today in real time, as in that of road networks, command and control, distribution or even electronic networks.

Claims (18)

REVENDICATIONS 1. - Processeur pour la manipulation de structures complexes caractérisé en ce qu'il comporte1. - Processor for the manipulation of complex structures characterized in that it comprises une mémoire (10) contenant une pluralité de cellules, chaque cellule (100) étant constituée de trois mots de mémoire a memory (10) containing a plurality of cells, each cell (100) consisting of three memory words 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.A, F, S referenced by the same address; a processing processor (20) containing an address register (23) making it possible to reference all of said memory and three exchange registers (24) authorizing simultaneous access to the content of said memory words A, F, S of each cell; and an exchange member (30) providing the connections between said processing processor and the outside. 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.2. Processor according to claim 1, characterized in that each of said memory words A, F, S has two locations, the first (101, 103, 105) possibly containing a cell address or pointer, the second (102, 104 , 106) an indicator. 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.3. Processor according to claim 1 or claim 2, characterized in that said memory (10) is organized into two zones, a read only memory zone (110) and a random access memory zone (120), the first corresponding to the addresses the weakest and being used only during an initialization phase of the processor and the second corresponding to all of the available addresses. 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.4. Processor according to claim 1, characterized in that said processing processor (20) further comprises general registers (21) containing the information necessary for the management of the tasks and of the interrupts of the running program and of the registers work (22) containing data to be processed and cell addresses, at least one of these work registers (22) containing data characteristic of the state of the program being executed. 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.5. Processor according to any one of claims 1 to 4, characterized in that the general registers (21) are eight in number and the working registers (22) are sixteen. 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.6. Processor according to any one of claims 1 to 5, characterized in that each of said memory words A, F, S and each of said registers (21 to 24) comprise 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.7. Processor according to any one of claims 1 to 6, characterized in that said processing processor (20) has a set of instructions comprising, in addition to the usual information processing instructions, specific handling instructions. of the content of the cells of said memory (10) as well as of creation, modification and elimination of said complex structures. 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.8. Processor according to claim 7, characterized in that said instructions do not contain directly during processing the addresses of the cells of said memory (10), but only a reference to the working registers (22) containing these addresses. 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.9. Processor according to claim 1, characterized in that said exchange member (30) can be connected to a standard bus (40) or else coupled to external peripherals. 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.10. Processor according to claim 1 or claim 2, characterized in that to form a series of cells of which at least a first and a last cell, said cells are linked together by their memory word S, said pointer S (105 ) of a cell giving the address of the next cell of the sequence and said indicator S (106) being positioned at zero, with the exception of said last cell of said sequence whose indicator S (106) is positioned at a. 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.11. Processor according to claims 1, 2 or 10 characterized in that to form an elementary structure of cells of which at least a first and a last cell, said cells are previously linked in a sequence by their memory word S, said pointer S (106) of said last cell giving the address of said first cell and said pointer F (103) of said first cell giving the address of said last cell. 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.12. Processor according to claim 11, characterized in that when said elementary structure comprises only one cell (100), said pointers F (103) and S (105) of said cell give the address of said cell itself- same and said indicator S (106) is positioned at one. 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.13. Processor according to claim 1 or claim 2 characterized in that to form a ring of cells of which at least a first and a last cell, said cells are linked together by their memory word A, said pointer A (101) of a cell giving the address of the next cell in the ring and said indicator A (102) being positioned at zero, with the exception of said last cell of said ring whose said pointer A (101) gives the address of said first cell and of which said indicator A (102) is positioned at one. 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.14. Processor according to claim 13, characterized in that when said ring comprises only one cell (100), said pointer A (101) gives the address of said cell itself and said indicator A (102) is positioned at one. 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.15. Processor according to claims 10, 11 or 13, characterized in that to form a complex structure from several elementary structures, including at least one mother structure and one daughter structure, said elementary structures are linked on the one hand by their memory words F, other than that of their first cell or head cell, said pointers F (103) of said mother structure giving the address of said daughter structure and on the other hand by their memory words A so that that for each of said daughter structures, all of the cells of said mother structures, of which said pointers F denote said daughter structure, as well as the head cell of said daughter structure form a ring, the first cell or origin of which is the head cell of said daughter structure . 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 suivantes16. A method of managing a memory, according to any one of claims 1 to 15, intended for the manipulation of complex structures, characterized in that it comprises the following steps a) assemblage de cellules (100) non utilisées en une suite de cellules vides a) assembly of unused cells (100) into a series of empty cells 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, b) creation of said complex structures by sampling from said series of empty cells a necessary and determined number of cells, c) réintégration desdites cellules dans ladite suite de cellules vides lorsque lesdites cellules deviennent inutiles ou périmées. c) reintegration of said cells into said sequence of empty cells when said cells become useless or out of date. 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.17. A method of storing programs executable by a processor according to any one of claims 1 to 15, characterized in that said programs are stored in the form of complex structures in which said parent structures and said daughter structures respectively play the role of program and subroutines. 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. 18. A method of storing the information necessary for monitoring, in particular during interruptions, of the tasks, programs and subroutines executed by a processor according to any one of claims 1 to 15, characterized in that said information is stored under form of one or more sequences of cells of said memory.
FR9109463A 1991-07-25 1991-07-25 PROCESSOR OF COMPLEX STRUCTURES. Expired - Fee Related FR2679671B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9109463A FR2679671B1 (en) 1991-07-25 1991-07-25 PROCESSOR OF COMPLEX STRUCTURES.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9109463A FR2679671B1 (en) 1991-07-25 1991-07-25 PROCESSOR OF COMPLEX STRUCTURES.

Publications (2)

Publication Number Publication Date
FR2679671A1 true FR2679671A1 (en) 1993-01-29
FR2679671B1 FR2679671B1 (en) 1995-04-14

Family

ID=9415556

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9109463A Expired - Fee Related FR2679671B1 (en) 1991-07-25 1991-07-25 PROCESSOR OF COMPLEX STRUCTURES.

Country Status (1)

Country Link
FR (1) FR2679671B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0169018A2 (en) * 1984-07-12 1986-01-22 Texas Instruments Incorporated Computer memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0169018A2 (en) * 1984-07-12 1986-01-22 Texas Instruments Incorporated Computer memory system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COMPUTER, vol. 14, no. 7, Juillet 1981, LOS ALAMITOS, US; pages 10 - 21; G. J. SUSSMAN ET AL: 'Scheme-79 - Lisp on a Chip' *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 17, no. 2, Juillet 1974, NEW YORK, US; pages 361 - 364; G. M. ABSHIRE: 'Dynamic Quickshell' *
PROCEEDINGS OF THE ANNUAL SYMPOSIUM ON COMPUTER ARCHITECTURE, SYMP. 7, Mai 1980, LONG BEACH, US; pages 105 - 112; J. P. SANSONNET ET AL: 'M3L: A List-Directed Architecture' *
PROCEEDINGS OF THE LISP-80 CONFERENCE, Août 1980, STANFORD,US; pages 128 - 135; T. J. W. CLARKE ET AL: 'SKIM - The S, K, I Reduction Machine' *

Also Published As

Publication number Publication date
FR2679671B1 (en) 1995-04-14

Similar Documents

Publication Publication Date Title
EP0020983B1 (en) Memory system comprising a serial storage device
EP0421845B1 (en) Virtual addressing method to operate a memory in a computer system and device for carrying out said method
EP0020202B1 (en) Multiprocessing system for signal treatment
FR2583541A1 (en) HIGH SPEED Z BUFFER WITH DYNAMIC RANDOM ACCESS MEMORY
WO1999012099A1 (en) Method for allocating memory in a multiprocessor data processing system
FR2680891A1 (en) TRANSPARENT INTERRUPTIONS FOR THE SYSTEM WITH ADDRESSING OF THE INTEGRATED EXTENDED MEMORY.
FR2608807A1 (en) MULTIPROCESSOR SYSTEM AND LOAD BALANCING METHOD FOR SAID SYSTEM
EP0006478B1 (en) Programmable control latch mechanism for a data processing system
FR3075444A1 (en) SYSTEM COMPRISING A MEMORY ADAPTED TO IMPLEMENT CALCULATION OPERATIONS
FR2645986A1 (en) METHOD FOR ACCELERATING MEMORY ACCESS TO A COMPUTER SYSTEM AND SYSTEM FOR IMPLEMENTING THE METHOD
EP0228329A1 (en) Electronic device constituting high-speed stable memory
FR2645987A1 (en) DEVICE FOR ACCELERATING MEMORY ACCESS IN A COMPUTER SYSTEM
FR2679671A1 (en) Processor of complex structures
FR2600441A1 (en) MEMORY MANAGEMENT UNIT
EP0520579B1 (en) Data processing apparatus particularly adapted for threaded languages, notably FORTH
FR2662281A1 (en) Processor comprising a file of addressable registers as several sets of registers contained in windows
WO2003027851A1 (en) Method and device for optimized code checker
FR2607607A1 (en) COMPUTER MACHINE FOR THE EXECUTION OF SYMBOLIC PROCESSES FOR THE APPLICATIONS OF ARTIFICIAL INTELLIGENCE
EP0520572B1 (en) Information processing apparatus
EP0733977B1 (en) Computer system having hierarchical memories
EP0407295A1 (en) Method for observing the execution of a program loaded into a computer system and apparatus for implementing said method
EP0557197B1 (en) Access time sharing system to a memory shared by a processor and other applications
US11615109B1 (en) Efficient deserialization from standardized data files
FR2851349A1 (en) METHOD FOR MANAGING A MICROPROCESSOR STACK FOR BACKING UP CONTEXTUAL DATA
EP0020931B1 (en) Programme interrupt processor for computer with instruction pre-fetch

Legal Events

Date Code Title Description
ST Notification of lapse