Brevet FR2255656A1 — publié le 19750718

la présente invention concerne un ensemble de traitement de 1 'infor- ration comportant une mémoire de travail pour mots d'instruction, mots de commande et données; un registre qui reçoit les mots dtinstruction pré- levés parla mémoire de travail comprenant chacun un champ d'opFration, un champ de constante d'adresse, des champs d'indexation et des champs de code pour commande du calcul d'adresse, notamment pour l'indexation au choix de constantes d'adresse; plusieurs registres d'index; une unité de calcul pour la combinaison arithmétique du contenu des registres d'index indiqués par le champ d'index dans le registre de mots d'instruction, avec å chaque fois une constante d'adressé, un registre d'adresse pour l'adressage de la mémoire-de travail et une unité de commande du calcul d'adresse en fonction du champ de code mémorisé dans le registre de mots d'instruction. On sait que l'indexation et le remplacement d'adresses permettent une simplification notable de l'adressage et par suite de la programmation de structures de fichier complexes dans des équipements de traitement de l'information. Des indexations répétées d'une adresse de base donnée sont alors souvent nécessaires pour l'adressage de structures de fichier multidimensionnelles, telles que des matrices. Dans le cas d'indexations répétées, il est par exemple connu} pour la description des données, d'affecter aux champs de données des mots de commande qui fixent notamment les registres d'index à utiliser. Il en résulte l'inconvénient suivant: le programmeur ne peut plus disposer librement des registres d'index dans le programme, car ils sont déjà affectés de façon fixe aux données, conformément aux exigences d'autres parties du programme. Lorsque le choix des registres d'index est par contre laissé au programmeur, ce dernier a besoin de nombreuses instructions pour l'exécution d'un adressage multidimensionnel. La double indexation décrite dans le brevet de la République fédérale d'Allemagne n0 1 499 284 permet une légère réduction de L'importance du programme. La double indexation est alors rendue possible par la sélection de groupes de bits dans le registre d'index, avec utilisation successive de ces groupes pour llindexation. Cette méthode ne permet toutefois d'obtenir qu'un adressage bidimensionnel au maximum. L'invention a pour objet de réaliser, en évitant les inconvénients précités, un ensemble de traitement de l'information exécutant un adressage multidimensionnel par plusieurs indexations d'une adresse de base, en fonction d'une seule instructisn, le programmeur disposant librement de tous les registres d'index8 utiliser > -qu'il peut fixer dans ou à la suite de l'instruction. Selon une caractéristique essentielle de l'invention, un autre mot-mémoire est adressé dans la mémoire de travail, en fonction d'un bit de chassage positionné dans le registre de mots d'instruction et par incrémentation du compteur d'instructions, puis transféré dans le registre de mots d'instruction, et le contenu du registre d'index indiqué dans le mot-mémoire est utilisé pour l'indexationde l'adresse encore mémorisée dans le registre d'adresse à la suite du calcul d'adresse précédent, la fin du calcul d'adresse et de l'adressage résultant d'un mot de données dans la mémoire de travail, à l'adresse mémorisée dans le registre d'adresse, étant déterminée par le bit de chaînage effacé dans le dernier mot-mémoire adressé en fonction du bit de chatnage. Selon une autre caractéristique avantageuse de- l'invention, les motsmémoire contiennent, outre les adresses de registre d'index indiquées pour l'indexation des adresses mémorisées dans le registre d'adresse, des constantes d'adresse qui leur sont affectées et que l'unité de calcul, après l'indexation, combine de nouveau arithmétiquement avec le résultat de l'indexation, après quoi le résultat du calcul d'adresse est transféré dans le registre d'adresse. les avantages de l'invention résident en particulier dlns le fait d'adresser une matrice de données multidimensionnelle à laide d'une seule instruction, d'où une économie de programme et de temps. Le programmeur peut en outre sélecter librement tous les registres d'index nécessaires, qu'il fixe dans ou à la suite de l'instruction. La fixation dans l'ins- truction de tous les registres d'index à utiliser à chaque fois permet au programmeur une bien plus grande liberté d'utilisation des registres d'index. Il en résulte une réduction des erreurs possibles et une plus grande clarté, notamment lors de l'assemblage de systèmes de programmes multiples, par suite de la grande simplification du contrôle de l'occu- pation des registres d'index.L'utilisation spécifique des registres d'index pour les programmes évite en outre le transfert normalement néces- saire du contenu de ces registres. L'indication avantageuse des constantes d'adresse affectées aux registres d'index permet un décalage additif, clair et simple, des résultats du calcul d'adresse. Le programmeur peut par exemple ainsi corriger les décalages d'index négatifs se produisant pendant le calcul d'adresse. Un index peut par exemple etre compris entre -7 et +7 dans le cas d'une liste de 15 nombres. Cette liste se trouve dans la mémoire à partir de la position L, c'est-à-dire que la position L + O correspond à l'index -7. Une paire d arguments (X, A), avec A = +7, permet de corriger ce défaut. Il est ainsi possible de transformer, sans nouvelle instruction, des indications d'index calculées en un adressage spécifique de la mémoire. D'autres caractéristiques et avantages de l'invention seront mieux compris à l'aide de la description détaillée ci-dessous d'un exemple de réalisation et du dessin annexé sur lequel la figure 1 représente le schéma synoptique de l'exemple de réalisation; la figure 2 représente une structure d'instruction utilisable selon l'invention et la figure S représente une prolongation d'instruction selon l'invention. la mémoire de travail 1 contient une séquence de mots d'instruction, adressés dans cette mémoire par le compteur d'instructions 5. Après l'adressage, un mot d'instruction est transféré de la mémoire de travail 1 dans le registre de mots d'instruction 3. Lé mot d'instruction selon figure 2 comporte un code d'opération OP, un bit de chaînage K, un champ d'index X et par exemple une constante d'adresse A o o 1) Bit de chaînage K 1 O. Pour K = O et X = O dans le registre de mots d'instruction 3, l'unité arithmétique 8 transfère directement la constante d'adresse A du registre 3 dans le registre d'adresse 4. Le o mot-mémoire adressé dans la mémoire de trava#il I par le registre d'adresse 4 est traité en fonction du code d'opération OP présent dans le registre de mots d'instruction 3. L'indicateur du compteur d'instructions S est ensuite augmenté de 1 et par suite l'instruction suivante adressée dans la mémoire de travail 1. Pour K = O et X > O, le bloc de registres 9 est adressé par l'indication X du registre d'index et le contenu du registre d'index ainsi trouvé est combiné arithmétiquement dans l'unité de calcul 8 avec la constante d'adresse nAo provenant du registre de mots d'instruction 3, puis transféré au registre d'adresse 4. Le mot-mémoire adressé dans la mémoire de travail 1 par le registre d'adresse 4 est traité en fonction du code d'operation dans le registre de mots d'instruction 3. L'indica tion du compteur d'instructions 5 est ensuite augmentée de 1 et par suite le mot d'instruction suivant adressé dans la mémoire de travail 1. 2) Bit de chaînage K = 1. Le déroulement de l'adressage s'effectue d'abord de la façon indiquée sous 1) quand le bit de chaînage K = 1 est positionné dans le registre de mots d'instruction 3. Contrairement à ce qui se passe dans le cas précédent, le mot-mémoire suivant, adressé par le compteur d'instructions 5, n'est toutefois pas identifié comme une instruction selon figure 2, mais comme une prolongation d'instruction selon figurez3, puis mémorisé de nouveau dans le registre de mots d'instruction 3 sans destruction du code OP. Le contenu du registre de mots d'instruction 3 est alors de nouveau interprété pour le calcul d'adresse selon figure 2.Le contenu du registre d'adresse indiqué dans la prolongation d'instruction est transféré du bloc de registres 9 dans l'unité de calcul 8, qui le combine arithmétiquement avec l'adresse présente dans le registre d'adresse 4, après quoi le résultat est de nouveau transféré dans ce dernier registre 4. lorsque la prolongation d'instruction dans le registre de mots d'instruction 3 contenait une constante d'adresse An, cette dernière est également transférée dans l'unité de calcul, qui la combine arithmétiquement de nouveau avec le contenu du registre d'adresse 4. Le résultat est de nouveau transféré dans ce registre 4. L'indication du compteur d'instructions 5 est ensuite de nouveau augmentée de 1 et par suite le motmémoire suivant adressé. Lorsque le bit de chaînage K est positionné dans la dernière prolongation d'instruction ou dans le mot d'instruction, le mot-mémoire suivant est interprété comme une prolongation d'instruction. Ce phénomène se termine uniquement quand une des prolongations d'instruc- tion ne contient pas le bit de chaînage K. Le calcul adresse est alors terminé; le mot de données adressé par le registre d'adresse 4 dans la mémoire de travail 1 est traité en fonction du code d'opération OP dans le registre de mots dtins~truction 3. Pour K = O, le mot-mémoire suivant, adressé par le compteur d'instructions 5, est identifié comme une instruction complète, de la façon indiquée sous 1). 3) Unité de commande. l'unité de commande 7 est constituée en-fonction de l'algèbre logique et des modules électroniques usuels. Elle commande le déroulement décrit sous 1) et 2). Bien entendu, diverses modifications peuvent etre apportées par l'homme de lart au principe et aux dispositifs qui viennent d'être décrits uniquement à titre d'exemples non limitatifs, sans sortir du cadre de l'invention, Revendications 1, Ensemble de traitement de l'information comportant une mémc > J c e travail pour mots d'instruction, mots de commande et données; c? rLy,4.tre qui reçoit les mots d'instruction prélevés dans la mémoire de travail et comprenant chacun un champ d'opération, un champ de constante d'adresse, des champs d'index et des champs de code pour commande du calcul d'adresse, notamment pour l'indexation au choix de constantes d'adresse; plusieurs registres d'index; une unité de calcul pour la combinaison arithmétique du contenu des registres d'index indiqués par le champ d'index dans leregistre de mots d'instruction, avec à chaque fois une constante d'adresse, un registre d'adresse pour l'adressage de la mémoire de travail et une unité de commande du calcul d'adresse en fonction du champ de code mémorisé dans le registre de mots d'instruction, ledit ensemble étant caractérisé en ce qu'un autre mot-mémoire est adressé dans la mémoire de travail, en fonction d'un bit de chaînage positionné dans le registre de mots d'instruction et par incrémentation du compteur d'instructions, puis transféré dans le registre de mots d'instruction, et le contenu du registre d'index indiqué par le mot-mémoire est utilisé pour l'indexation de l'adresse encore mémorisée dans le registre d'adresse à la suite du calcul d'adresse précédent, la fin du calcul d'adresse et de l'adressage résultant d'un mot de données dans la mémoire de travail, à mémorisée dans le registre d'adresse étant déterminée par le bit de champ nage effacé dans le dernier mot-mémoire adressé en fonction du bit de chaînage. 2. Ensemble de traitement de l'information selon revendication 1, caractérisé en ce que les mots-mémoire contiennent, outre les adresses de registre d'index indiquées pour l'indexation des adresses mémorisées dans le registre d'adresse, des constantes qui leur sont affectées et que l'unité de calcul, après l'indexation,- combine de nouveau arithmétiquement avec le résultat de l'indexation, après quoi le résultat du calcul d'adresse est transféré dans le registre d'adresse.