Brevet FR2251054A1 — publié le 19750606

La présente invention concerne un ordinateur avec une mémoire de travail pour mots-instruction, mots de commande et données; un registre recevant les mots-instruction prélevés dans la mémoire de travail et comportant chacun une zone d'operation, une zone de constantes d'adresse, une zone d'index et une zone de code pour la commande du calcul d'adresse, et notamment pour l'indexation ettou la substitution d'adresses au choix; un registre de substitution recevant les mots de commande prélevés dans la mémoire de travail et comportant chacun une zone de code pour poursuite de la commande du calcul d'adresse et les constantes d'adresse correspondantes; plusieurs registres d'index; une unité de calcul pour la combinaison arithmétique du contenu des registres d'index indiqués par la zone d'index dans le registre de mots-instruction et d'une ou plusieurs constantes d'adresse provenant du registre de socs-instruction ou du registre de substitution; un registre pour l'adressage de la mémoire de travail et une unité qui commande le calcul d'adresse en fonction de la zone de code mémorisée dans le registre de mots-instruction ou de substitution. On sait que l'indexation et la substitution d'adresses permettent une simplification notable de l'adressage et par suite de la programmation de fichiers complexes en ordinateur. Ainsi que le décrit par exemple le brevet de la République fédérale d'allemagne n0 I 151 686, un avantage particulier réside dans la substitution répétée par les adresses contenues dans des mots de commande, en fonction des zones de code trouvées dans les mots-instruction ou de commande, une seule instructinn étant nécessaire pour démarrer la substitution multiple. Selon le brevet précité, le contenu d'un registre d'index servant à 1' indexation peut en outre etre remplacé exactement une fois par le contenu d'un atre registre de commande, adressé dans le registre d'index.Ce contenu ne peut toutefois etre indexé qu'une seule fois par instruction. Pour la description des données en vue de l'utilisation d'indexations répétées, il est connu d'affecter aux données des zones contenant des sots de commande qui déterminent notamment les registres d'index à employer. Il en résulte l'inconvénient suivant : le programmeur ne peut plus disposer librement des registres d'index, car ils sont déjà affectés aux données, conformément aux exigences d'autres parties du programme. L'invention a pour objet un ordinateur qui, en évitant les inconvénients précités, effectue de multiples substitutions avec des indexations au choix pour chacune, en fonction d'une seule instruction, le programmeur pouvant fixer librement tous les registres d'index à utiliser dans ou la suite de lsinstruction. Selon une caractéristique essentielle de ltínvention,de nouvelles indexations sont possibles dans le cas de substitutions répétées3 en fonction du codes des zones de code trouvées après indexation et substitution de mots adressés en mémoire, tous les registres d'index nécessaires pour les indexations étant déterminés par la zone d'index se trouvant dans le registre de mots-instructi#n. Selon une autre caractéristique avantageuse de l'invention, seul le premier registre index nécessaire est indiqué dans la zone dd'index du registre de mots -instruction3 tous les autres étant indiqués par le fonctionnement automatique d'un compteur d'adressage d'index, initialisé par le numéro du premier registre d'index. Selon une autre caractéristique avantageuse de l'invention, tous les registres d'index nécessaires et librement sélectables dans le programme sont disponibles dans la zone d'index du registre de mots-instruction. Selon une autre caractéristique avantageuse de l'invention, outre les registres du index nécessaires, les autres constantes de calcul d'adresse affectées à ces derniers dans le programme sont transférées avec les adresses de registre d'index dans le registre de mots-instruction. L'invention présente notamment les avantages suivants : il est possable dleffectuer de nombreuses substitutions avec indexation et le pro grameur peut fixer dans l'instruction les registres d'index nécessaires pour ces opdratîons. La posbibilité d'indexation en cas de substitutions répétées permet de simplifier notablement un adressage complexe de données Le progranmeur dispose en outre d'une bien plus grande liberté d'emploi des registres d'index, grâce la fixation dans l'instruction de tous les registres d'index à utiliser dans chaque cas.Il en résulte une réduction des postbilites d'erreur et une plus grande clarté, notamment lors de l'assemblage de systèmes de programmes à nombreuses parties, car le contrôle d'occupation des registres d'index se simplifie fortement. L'utilisation des registres d'index, spécifique du programme, évite en outre le transfert normalement nécessaire du contenu des registres d'index. Il en résulte par suite une réduction de l'importance du programme et du temps. 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 annax##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'in- vention; et la figure 3 représente une zone d'index introduite dans le registre de mots-ixnstruction sous forme d'un allongement d'instruction. les abréviations de la figure 1 ont la signification suivante ASP mémoire de travail D registre de données I registre de mots-instruction E registre de substitution AR registre d'adresse IAZ compteur d'adressage index ST unité de commande BZ compteur d'instructions RB groupe de registres Ri unité arithmétique. La mémoire de travail (1) contient une séquence de mots-instruction > dont les adresses sont fournies successivement par le compteur d'instructions (8) au registre d'adresse (5) de la mémoire de travail (1). Après lladressage, un mot-instruction est transféré de la mémoire de travail dans le registre de mots-instruction (3). Le mot-instruction comporte une zone de code (S), un code d'opération (OP) une zone d'index (X) et par exemple une constante d'adresse (A). La zone de code (S) contient des bits de marquage pour l'indexation (1), la substitution (E) et le mode d'adressage (K) des registres d'index selon figure 2). 1. Adressage d'index 1 (K = 1) pour K P It le premier registre d'index è utiliser est introduit dans l'instruction, tous les autres étant déterminés par incrémentation. L'adresse du registre d'index dont le contenu doit être utilisé pour la première indexation est transférée du registre de mots-instruction (3) dans le compteur d'adressage d'index (6). 1.1 lorsque I a 1 dans la zone de code (S), une indexation est effectuée avec le registre d'index indiqué dans la zone d'index (X). Le contenu du registre d'index est transféré du groupe de registres (9) dans l'unité arithmétique (10), pour addition aux constantes d'adresse (A) provenant du registre de mots-instruction (3). La constante d'adresse ainsi déterminee est transférée dans le registre d'adresse (5), pour adressage de la mémoire de travail (1) et 11 indication du compteur d'adressage d'index (6) augmente de l. 1.2 Pour I = o dans la zone de code (S3 du registre de mots-instruction (3), il n'y a d'abord aucune indexation. La constante d'adresse (A) est transférée par l'unité de calcul (10) au registre adresse (5). Lorsque la zone de code (S) du mot-instruction content le bit de commande F = O, le sot mémoire adressé dans la mémoire de travail 1 est transféré sous forme de donnée dans le registre de données (2). Dans le cas où F = l par contre, le mot mémoire adresse dans la mémoire-de travail (1) est transféré dans le registre de substitution (4), sous forme de sot de commande. 1.3 La commande du calcul d'adresse se poursuit de nouveau en fonction des bits de commande F, I et K se trouvant selon figure 2 dans la zone de code (S) du registre de substitution (4). 1.3.L Pour I = U, les constantes d'adresse A' et A" sont de nouveau transférées par l'unité aritheétique (10) dans le registre d'adresse (5), comme sous 1.2, puis adressées sous forme d'une donnée ou d'un autre mot de commande en fonction de F, et transférées dans le registre correspon dant. 1.3.2 Pour I ~ 1 dans un des mots de commande introduits dans le registre dd substitution (4), une i#ndexation des constantes d'adresse AX, A" est efectuee de la façon décrite sous 1.1. L'incrémentation de 1 du compteur d'adressage d'index (6) après chaque indexation met un nnuveau registre d'index du groupe de registres (9) à la disposition de chaque nouvelle indexation déclenchée par I = 1 dans la zone de code (S) du registre de substitution (4). L'indexation peut etre répétée à volonté et n'est finalement limitée que par le nombre de registres dlin- dex disponibles dans le groupe de registres (-9). 2. Adressage d'index 2 (R = 0) Pour K = O, tous les registres d'index nécessaires pour l'indexation sont indiqués dans le sot-instruction ou dans la prolongation d'ins- truction. Le numéro du registre d'index à utiliser pour chaque Indexation est repris dans l'instruction se trouvant dans le registre de mots- instruction (3) ou de la prolongation d'instruction dans le compteur d'adressage d'index (6). 2.1 Pour I = 1 dans la zone de code (S) du registre de mots-instruction (3), une indexation décrite sous 1.1 est effectuée, mais sans incrémen- tation de 1 du compteur d'adressage d'index (6). Le compteur d'instructions (8) est par contre incrémenté de 1, de sorte que le mot en mémoire suivant est adressé par le registre d'adresse (5). La prolongation d'instruction connue dans ce mot-mémoire, selon figure 3, est introduite dans le registre de Eots-instruction (3). 2.2 Pour I = 0 dans la zone de code (S) du registre de mots-instruction (3), il n'y a d'abord aucune indexation. les opérations se déroulent ensuite de la facon décrite sous 1.2. 2.3 La cousande du calcul d'adresse se poursuit en fonction de la zone de code (S) dans le registre de substitution (4), de la façon décrite sous 1.3. 2.3.1 Identique à l.3.#. 2.3.2 Pour I = 1 dans un des mots de commande introduits dans le registre de substitution (4), une indexation is constantes d'adresse Aí et Ail s'effectue de la façon décrite sous 2.1. lorsque le dernier numéro de registre d'index indiqué dans la prolongation d'instruction a été transféré dans le compteur d'adressage d'index (6), il en résulte une nouvelle incrémentation de 1 du compteur d'instructions (8) et par suite l'adressage du mot-mémoire suivant par le registre d'adresse (5). Après le transfert de la prolongation d'instruction selon figure 3 du mot-méoire dans le registre de mots-instruction (3) > l'adresse suivante de registre d'index est transférée dans le compteur d'adressage#d'index (6), le contenu du mot-mémoire ayant été indiqué à l'unité de commande (7) sous forme de prolongation d'instruction selon figure 3. Ce phénomène se rtpète après prélèvement de la dernière adresse de registre d'index dans la prolongation d'instruction. 2.4 Pour A1, fi , An #O sur la figure 3, la constante d'adresse ( , A2... An) affectée au registre d'index utilisé et prélevée dans la prolongation d'instruction est additionnée au résultat du calcul d'adresse par l'unité arithmétique (10), après l'indexation selon 2.1. Le résultat est transféré au registre d'adresse (5) pour adressage. Le programmeur peut par exemple ainsi corriger des décalages d'index négatif s apparaissant 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 séquentiellenent dans la mémoire, à partir de la position L, c'est-àdire que la position L + o correspond à l'index -7. Un couple d'arguments (X, A) permet de corriger ce défaut, avec A = +7. Il est ainsi possible de transférer des index calculés à un adressage spécifique de la métnoire, sans nouvelles instructions. 3. L'unité de commande (7) exécute la commande selon 1.1 à 2.4 en fonction des zones de code (S) prélevées dans les registres de motsinstruction (3) ou registres de substitution (4), avec des moyens connus des modules logiques électroniques et de l'algèbre de Boole. Bien entendu, diverses mcdifications peuvent être apportées par l'homme de l'art au principe et aux dispositifs qui viennent d'etre décrits uniquement à titre d'exemples non limitatifs, sans sortir du cadre de l'invention. Revendications 1. Ordinateur avec une mémoire de travail pour mots-instruction, mots de commande et données; un registre recevant les mots-instruction prélevés dans la mémoire de travail et comportant chacun une zone d'opérationa une zone de constantes d'adresse, une zone d'index et une zone de code pour la commande du calcul d'adresse, et notamment pour l'indexation etlou la substitution d'adresses au choix; un registre de substitution recevant les mets de commande prélevés dans la mémoire de travail et comportant tacon une zone de coda pour poursuite de la commande du calcul d'adresse et les constantes d'adresse correspondantes; plusieurs registres d'index; une unité de calcul pour la costinaison arithmétique du contenu des registres d'index indiqués par la zone d'index dans le registre de motsinstruction et d'une ou plusieurs constantes d'adresse provenant du registre de mets-instruction ou du registre de substitution; un registre pour l'adressage de la mémoire de travail et une unité commandant le travail et une unité qui commande le calcul d'adresse en fonction de la zone de code mémorisée dans dansle registre de sots-instruction ou le registre de substitution, ledit ordinateur étant caractérisé en ce que de nouvelles indexations sont possibles dans le cas de substitutions répétées, en fonction du code des zones de code trouvées après indexation et substitution de mots adressés en mémoire > tous les registres d'index nécessaires pour les indexations étant déterminés par la zone d'index se trouvant dans le registre de sots-instruction. 2. Ordinateur selon revendication 1, caractérisé en ce que seul le premier des registres d'index nécessaires est indiqué dans la zone d'index du registre de mots-instruction, tandis que tous les autres sont indiqués par le fonctionnement automatique d'un compteur d'adressage d'index, initialisé par le numéro du premier registre d'index. 3. Ordinateur selon revendication 1, caractérisé en ce que tous les registres d'index nécessaires et librement sélectables dans le vrograsae sont disponibles dans la zone d'index du registre de mots-instruction. 4. Ordinateur selon revendications 1 et 3, caractérisé en ce que, outre les registres d'index, les autres constantes de calcul d'adresse affectées è ces derniers dans le programme sont transférées avec les adresses de registre d'index dans le registre de mots-instruction.