Brevet FR2027784A1 — publié le 19701002

Dans les ordinateurs actuels fonctionnant à grande vitesse, le traitement des instructions est une des opérations les plus longues que doit réaliser l'ordinateur pour accomplir un travail particulier. Plus particulièrement» de nombreuses recherches en mémoire sont normalement nécessaires pour accéder 5 aux instructions et aux données suivant les instructions et les données qui sont traitées par l'ordinateur. A'cause des' progrès réalisés dans la technologie moderne, la vitesse des divers circuits logiques constituant les unités arithmétiques, etc... est bien supérieure à celle des mémoires magnétiques utilisées pour les mémoires de" grande capacité emmagasinant les séquences d'instruc-10 tions et les données. Des registres locaux ou de travail sont.utilisés dans l'unité arithmétique pour déplacer et emmagasiner des données obtenues à partir de la mémoire et dans l'unité d'instruction pour emmagasiner les instructions individuelles au fur et à mesure qu'elles sont traitées et exécutées.- Divers systèmes sont utilisés pour prévoir les instructions à exécuter, 15 et ainsi, les instructions qui seront à traiter sont recherchées par anticipation à partir de la mémoire et placées dansles emplacements d'emmagasinage temporaires pendant que les instructions à traiter sont exécutées. Ainsi, il est possible d'obtenir un certain chevauchement des opérations de la mémoire en utilisant ces techniques de prévision des instructions nécessaires. 20 Cependant, une fois que les instructions sont dans le registre d'instruc tions, il est alors nécessaire de les décoder et de' rechercher à partir de la mémoire diyers segments de données qui doivent être traités. Ainsi, par exemple, dans une opération normale, à deux opérandes, telle qu'une multiplication, les opérandes doivent être recherchée séparément à partir de la mémoire,. ;emmagasi-25 nés dans des registres locaux,la multiplication doit être réalisée et le résultat est ensuite emmagasiné dans la mémoire. Ainsi, avant que la multiplication puisse être réalisée, les opérandes doivent être recherchées et, avant que l'ins» tructiôn suivante puisse être décodée et réalisée, le résultat doit être emmagasiné. Cette situation devient plus pénible dans les opérations du type à bou-30 cle dans lesquelles, par exemple, une opération arithmétique particulière- doit se répéter un nombre considérable de fois. Ainsi, chaque fois que la boucle doit être exécutée, les instructions déterminant les diverses étapes de la boucle doivent être recherchées, on doit accéder aux données déterminées ainsi, l'opération doit être réalisée et le résultat remis en mémoire. La séquence des 35 opérations doit se poursuivre jusqu'à ce que certains critères de la boucle soient vérifiés. On connaît divers dispositifs pour conserver la série totale des instructions de la boucle dans une mémoire locale fonctionnant à grande vitesse pour réduire le retard pour revenir au début de la boucle. Cependant, la plupart 40 des systèmes actuels nécessitent la détermination des nouvelles données 69 40275 2 2027784 auxquelles an doit accéder chaque fois que la boucle est exécutée. Les instructions qui réalisent'cetta opération doivent par conséquent être décodées chaque fois que la boucle est exécutée; après quoi l'adresse dans la mémoire des nouvelles données peut être calculée et les données envoyées aux registres. Cette 5 ' même'situat-iûfi^se retrouve pour ré-emmagasiner,les résultats des calculs dans 5 la mémoire. ? r.r . . - „ - • ' "ïQhrèfe tj-ôévé,flue;. l'on peut, réaliser des économies de temps appréciables dans la réalisation d'opération du type à boucle en prévoyant en particulier . une instruction spéciale, un circuit de décodage et des champs d'emmagasinage 10 supplémentaires dans les registres-locaux fonctionnant à grande vitesse pour ' -les opérandes et les résultats et .-ainsi des opérations d'emmagasinage et dë . chargement explicitas ou particulières-peuvent être sorties de la boucle et placées dans le train des instructions avant que la boucle soit introduite. Un mécanisme est ainsi prévu pour rechercher et emmagasiner automatiquement les don* 15 nées dans la mémoire locale fonctionnant à grande vitesse pendant que* l'opération précédente est exécutée. Un objet principal de la présente invention est de réaliser un procédé en séparant la spécification du calcul d'adresse réel des instructions d'emmagasinage ou de chargement réelles qui peuvent être codées sous forme très com-20 pacte avec par exemple une opération arithmétique. Un autre objet de la présente invention est de réaliser un procédé pour accélérer l'éxecution dVinstructions dans un ordinateur. Un autre objet de l'invention est de réaliser un-tel procédé nécessitant un minimum de dispositifs supplémentaires. ■ • . - ' 25 Un autre objet de l'invention est d'utiliser une instruction spéciale grâce à laquelle les données pour une.opération ultérieure sont emmagasinées au préalable dans la mémoire-,lqcalg-pendant qu'une instruction est en cours d'exécution. •' - . • . • - Un autre objet est de réduire -la longueur des boucles de programme et ain-30 si le temps dbœcution par les moyens précédents. D'autres objets, caractéristiques et avantages de la présente invention ressortiront mieux de l'exposé qui suit fait en référence aux dessins annexés à ce texte qui représentent un. mode de réalisation préféré de celle-ci. La figuré 1 constitue un bloc diagramme d'une unité d'instruction perfec-35 tionnée pour un ordinateur représenté en détail sur la figure 2. La figure^ montre comment doivent être disposés les figures 2A-2D. Les figures 2A*-2D constituent un diagramme schématique logique et fonc-- tionnel de la réalisation préférée de la présente invention. La figure-3 représente-un organigramme de l'opération de la réalisation 40 préférée de la présente invention représenté sur les figures 2A-2D. 69 40275, 3 2027784 Les objets de la présente invention sont atteints par un ordinateur comprenant une mémoire principale, une unité de traitement d'instructions, une unité arithmétique et plusieurs registres d'emmagasinage locaux dans lesquels des moyens sont prévus pour charger initialement ces registres d'emmagasinage locaux 5 avec des données et une information de génération d'adresse. Cette unité de traitement dlnstructions comprend un moyen qui peut être actionné par une seule instruction d'exécution pour transférer les données qui se trouvent dans des registres locaux à une autre partie du système et pour que ces registres soient chargés à partir de la mémoire principale suivant l'information de formation 1Q dttdrease qu'ils contiennent. Conformément à un autre aspect de l'invention, l'instruction d'éxécution unique peut aussi provoquer 1'emmagasinage du résultat de l'instruction dans les registres locaux et dans la mémoire principale à un emplacement qui peut être déterminé par l'information de formation d'adresse. Ainsi, en utilisant la présente invention, les boucles de programme,en 15 particulier, peuvent être raccourcies, ce qui donne une réduction du travail à fournir par le programmeur et du temps d'exécution de la machine. □n doit naturellement comprendre que le fonctionnement d'un tel ordinateur n'est pas affecté par les dispositifs supplémentaires de la présente invention, En d'autres termes, on accédera aux instructions et elles seront trai-2Q tées de la même manière en ce qui concerne le fonctionnement des unités arithmétiques et logiques et aussi de la mémoire principale. La différence importante dans le fonctionnement de la présente invention est qu'il n'est pas nécessaire de déterminer explicitement les instructions d'emmagasinage et de recherche à l'intérieur d'une boucle , une fois que les registres locaux sont chargés par 25 une instruction préalable pour la séquence de la boucle. Naturellement, le programmeur devra fournir la structure correcte de l'instruction et rendre accessible les séquences de données à l'intérieur de la mémoire en utilisant divers indexes dfadresse et des adresses effectives qui peuvent devenir nécessaires par la configuration de dispositifs particuliers utilisée. 30 Les avantages de la présente invention sont indiqués par l'exemple sui vant. On va prendre l'exemple d'un système utilisant une arithmétique à trois adresses c'est à dire les adresses des deux opérandes et l'adresse du résultat ainsi qu'un code opération, on supposera que les instructions arithmétiques fondamentales occupent un demi-mot, les instructions chargement/emmagasinage 35 occupent un mot complet. Une boucle de programme pour réaliser, par exemple, l'opération suivante sera: A [i] *• B[i] x C [i] ♦ D[i] L'opération précédente impliquerait trois instructions de chargement utilisant trois mots machines, une instruction d'emmagasinage utilisant un mot, une instruction de multiplication et une instruction d'addition utilisant cha-40 cune un demi-mot et une instruction "comptage et branchement". Cependant, si 69 40275 4 2027784 an utilisé la technique d'erimagasinage et de chargement Implicite de la présente invention, on pourra appliquer les procédés suivants: 1. Utiliser des registres distincts pour A[i] * B[i], C[f], et D[i]. 2. Spécifier le rechargement des registres pour B[i] et c[i] dans l'ins-5 truction de multiplication. 3. Spécifier le rechargement du registre pour D [i], et l'eninagasinage du registre pour A[i] dans 1'instruction d'addition. En supposant que l'instruction "comptage et branchement" occupe aussi un mot complet, la longueur de la boucle sera réduite de 6 à 2 mots, c'est à dire un mot pour les Instructions de multiplication et d'addition et un mot pour l'instruction "comptage et branchement" qui évalue l'indicateur [i]. Cette économie est naturellement réalisée aux dépens du nombre des instructions nécessaires pour mettre aux conditions initiales la boucle et du fait qu'une série non nécessaire de recherches peut être réalisée au dernier passage dans la boucle. 15 Dans 1'exemple précédent une économie de 66% est offerte et on pense que de nombreuses boucles présenteront une réduction analogue de longueur bien que pas nécessairement aussi importante. Des économies de temps seront aussi possibles bien qu'elles puissent être moins Importantes, avec différents formats d'instruction tel qu'un format à deux adresses. Pour décrire particulièrement le fonctionnement détaillé de la présente invention on donnera la forme préférée suivante des mots d'instruction ADO "Y i ■y j ùt u. k Dans cette instruction, le champ marqué ADD concerne évidemment 1'opéra-25 tien à réaliser. Les champs représentés par i, j et k sont des spécifications des registres d'emmagasinage locaux dans lesquels les opérandes (i, j) et le résultat (kl doivent être emmagasinés. Les champs F^, Fj et F^ indiquent si oui ou non le registre particulier doit être chargé ou emmagasiné automatiquement pendant l'opération de l'unité arithmétique. Le mot d'instruction précé-3Q dent utilisant le code opération ADD réalise l'opération; Rk = Ri + Rj Cette instruction provoquera la transmission à l'unité arithmétique dans laquelle est réalisée une opération d'addition des opérandes apparaissant simultanément dans les registres i et j de la mémoire locale (voir figure 1). Après 35 ,cette opération, le résultat sera retransféré dans le registre k. En supposant que tous les champs F soient mis à 1, il se produira les opérations suivantes: ' En premier iieu, les données placées dans le registre local! seront transférées à l'unité arithmétique comme premier opérande. Simultanément, une adresse ermnagasinée dans la position du registre déterminant l'adresse dans la 69 40275 S 2027784 mémoire de l'opérande suivant pour le- boucle news sxtraite du registre lacsï et on accédera à cette adresse particulière et l'opérande sera placé dans le registre i et l'adresse en cours mise à jour suivant un indexe déterminé par le programmeur sera normalement augmentée de 1. La manière particulière suivant 5 laquelle cette information d'adresse est engendrée conformément à la description détaillée de la présente invention sera décrite par la suite. Cependant, on va décrire aussi une technique d'adressage généralisée car la formation d'adresse particulière peut être réalisée de différentes.façons fournissant îs formation d'adresse, l'information de diagnostique comme pourra s'en rendre compte ■jQ l'homme de l'art. De même l'opérande placé dans le registre j est transféré à l'unité arithmétique et l'adresse emmagasinée avec cet opérande dans les registres locaux est utilisé pour accéder à l'opérande suivant à partir de la mémoire principale qui est à placer dans le registre j maintenant effectivement vide. Finalement l'unité arithmétique réalise l'opération et l'instruction dans ■J5 le registre d'instructions indique que le résultat, doit être placé dans le registre k des registres d'emmagasinage locaux. Ainsi, pendant que la première série d'opérandes est en cours de traitement dans l'unité arithmétique, la recherche d'une série d'opérandes suivante a lieu simultanément. En supposant que le champ F^ est mis à 1, le résultat sera d'abord transféré dans le champ de don-20 nées du registre k et simultanément l'information d'adresse emmagasinée avec ce champ sera examinée, modifiée et utilisée pour emmagasiner le résultat de 1'opération dans l'adresse déterminée dans la partie d'adresse du registre k. Après l'opération d'emmagasinage, la partie adresse sera modifiée Cincrémentée} et ramenée dans la partie d'adresse du registre k pour établir un emplacement d'-25 emmagasinage pour le résultat suivant utilisant ce registre dans l'opération particulière de la boucle. La description précédente du format de mot d'instruction utilisé pour réaliser une opération d'exécution typique'utilisant les concepts de la présente invention explique essentiellement les procédures fondamentales de la présen-30 te invention. Ainsi, le rechargement des registres i et j-est réalisé automatiquement par la présente invention sans l'ordonner exclusivement. De même la mise en mémoire dans le registre k est impliquée automatiquement avec la présente instruction sans demander spécifiquement ce transfert. On doit naturellement comprendre que le chargement initial des registres d'emmagasinage locaux doit 35 - se produire par un moyen approprié sous commande du programmeur de sorte que le chargement des données initiales et l'information d'adresse nécessaire sont obtenus. On doit aussi comprendre que l'on peut utiliser plus de trois registres locaux dans le système. Deux registres d'opérandes et un registre de résultat, 40 c'est à dire, i, J et k respectivement, ont été représentés à titre d'exemple. 69 40275 6 2027784 Cependant5 il est évident que l'on peut utiliser B, 8 ou 10 de ces•registres dans un système et qu'ils peuvent être demandés, par le programmeur chaque fois qu'ils sont nécessaires, en gardant à l'esprit que les registres dont le fonctionnement est demandé doivent être initialement chargés avant d'être introduits 5 dans une boucle ou autre routine utilisant ces registres pour fournir les données initiales nécessaires ainsi que 1'adressa effective et les incréments d'adresse» Ea se référant maintenant particulièrement aux dessins, l'invention peut être décrite en se référant è une réalisation préférée. La figure 1 représente 10 sous forme de bloc diagramme, des éléments essentiels du système qui sont représentés plus en détail sur les figures 2A-20 tque l'on appellera par la suite, figures 2î. Le registre d'instructions 10 est un registre classique et reçoit les instructions du programme séquentiellement à partir de la mémoire principale 1S. Cependant, ces circuits de données classiques' ne sont pas représen-15 tés car ils sont bien connus de l'homme de l'art et n'apportent rien a la description de la présente invention. Seuls les circuits de commande essentiels nécessaires pour la présente invention sont décrits et représentés. Ainsi, une ligne est représentée partant du registre d'instructions 10 et allant à l'unité logique et arithmétique 12 qui transfère simplement le code opération, c'est à 20 dire, addition soustraction, multiplication etc... à l'unité arithmétique 12. Le registre d'instructions contient des emplacements de champ de bit appropriés F., F et F pour contrôler les opérations dans les divers registres locaux, X j K c'est à dire, i, j et K mentionnés dans l'instruction. On a fait allusion d'une manière générale à leur opération particulière èt ils seront décrits plus en 25 détail par la suite. Les registres d'emmagasinage locaux 14 constituent les emplacements d'emmagasinage locaux pour les opérandes et les résultats ce sont le chargement préalable automatique de ces registres et la mise en mémoire d'informations dans le registre de résultats qui constituent l'idée de la présente invention. Comme on l'a mentionné précédemment un emplacement d'emmagasinage 30 ou un champ de données est alloué dans ces registres au mot de donnée et à l'information de formation d'adresse qui, dans la présente invention, constitue un champ d'incrément et un champ d'adresse effective qui peuvent être ajoutés dans le circuit de mise à jour d'adresse 16 pour former l'adresse pour une recherche d'opérande en cours et une mise en mémoire des résultats en cours et 35 pour former les adresses des recherches ultérieures et .des étapes d'emmagasinage. La mémoire principale 18 est classique et on n'a représenté que les circuits de données qui s'appliquent à la présente invention, c'est à dire* pour rechercher des opérandes à partir de la mémoire et les transférer dans la mémoire locale 14 et pour emmagasiner les résultats provenant de la mémoire lo-40 cale 14 dans la mémoire principale 1G. L'unité de commande 20 contient princi- 69 40275 7 2027784 paiement Wiorloge de commande spéciale du système qui apparait sur la figure 2 et dont le fonctionnement est décrit en détail par la suite. C'est cette unité qui commande essentiellement la succession des opérations de la présente invention et amorce le fonctionnement des unités fonctionnelles décrites précédem-5 ment lorsque c'est nécessaire. La figure 2 constitue un bloc diagramme logique et fonctionnel mettant en.évidence les caractéristiques essentielles d'une forme préférée de la présenté inyention. Cette figure sera décrite en détail par la suite en se référant au tableau représentant la chronologie des opérations, cependant, un exa-10 men rapide permet de voir sur la figure 2A le registre d'instructions 10 et les commandes et portes de décodage associées. Sur la figure 2A est aussi représentée l'unité arithmétique et logique 12, ALU, ainsi que les bus représentant la circulation des données entre cette unité et la mémoire locale 14. Le circuit de mise à jour d'adresses est représenté sur les figures 2B et 20 et comprend 15 principalement le dispositif d'incrémentation 50, le registre de maintien 52 et l'additionneur 36. La mémoire principale 18 est représentée sur la figure 2D et comprend un registre d'adresses de mémoire classique liAR et un registre de données de la mémoire HDR. La plus grande partie de l'unité de commande est représentée sur la figure 2C et comprend essentiellement une série de monosta-20 bles pour produire les impulsions d'horloge CL-1 à CL-28. Le fonctionnement des monostables est bien connu dans la technique, leur conception étant telle que lorsqu' ils sont mis en route, une impulsion d'horloge est produite et lorsque cette impulsion cesse, un certain temps fixe après, une Impulsion de mise hors fonction est produite. Oans la convention utilisée, l'impulsion d'hor-25 loge "de mise en service", ou initiale est représentée venant du haut des monostables individuels. L'impulsion de mise hors service est représentée venant de leur côté droit. Sur la figure 3 est représenté tin organigramme pour la réalisation décrite en se référant à la figure 2 dans laquelle les registres i, j et k sont u-30 tilisés. En se référant à la figure, on peut voir que la colonne de gauche des étapes constitue la séquence principale des événements qui se produisent pour évaluer l'instruction, transférer les données dans l'unité arithmétique et logique et ramener le résultat aux registres d'emmagasinage. Il est encore à noter que les étapes d'évaluation des champs de commande F^ Fj et F^ sont amor-35 cés dans cette colonne. L'évaluation de ces champs de commande spéciaux amènera le système à réaliser les opérations d'emmagasinage et de chargement implicites indiqués dans les étapes de la colonne de droite. Les trois séquences marquées A et C respectivement représentent la recherche préalable de l'opérande suivant à partir de la mémoire principale sous commande de l'adresse emmagasi-40 née dans la mémoire locale dans la position du registre associé et aussi la mi 69 40275 8 2027784 se à jour de l'adresse de sorte que au cycle suivant, l'opérande suivant peut être recherché implicitement par le système. Les trois rectangles indiqués par la parenthèse D indiquent les étapes d'emmagasinage du contenu du registre k dans la mémoire principale àl'adresse contenue dans la partie adresse du regis-5 tre k. Ainsi, l'adresse est extraite du registre et est utilisée pour accéder à la mémoire et emmagasiner le résultat et ensuite cette adresse est mise à jour et replacée dans la mémoire locale dans le champ d'adresses approprié du registre k. □n doit aussi noter que les divers blocs contiennent les étapes d'horloge 10 indiquées qui, avec la description ultérieure de la séquence des opérations, peuvent être utilisées pour comprendre le fonctionnement âa l'invention. Après avoir décrit d'une manière générale le système en se référant aux figures 1, 2: et 3, on va maintenant décrire le fonctionnement détaillé en utilisant le tableau qui suit. Ce tableau détermine les opérations particulières rô-15 alisées par chaque impulsion d'horloge. La description suivante donnera la séquence des opérations et décrit le circuit logique associé actionné par chaque impulsion d'horloge. TABLEAU DE LA SEQUENCES DES OPERATIONS CL-1 Transfère le champ i au décodeur 20 Transfère à l'unité arithmétique et logique (partie donnée) passe à CL-2 CL-2 Teste Fj[ Si F^ ■ 1, passe à CL-3 Si F^ » 0, passe à CL-10 25 CL-3 Transfère champ i au décodeur 26 ~ Transfère incrément i à l'additionneur Transfère champ d'adresse dans à l'additionneur Passe à CL-4 CL-4 Amorce accès de recherche 30 passe à CL-5 CL-5 L'opération précédente est-elle terminée? Si non passe à CL-6 Si oui, passe à CL-7 CL-6 Retard 35 Passe à CL-5 CL-7 Transfère MDR è Transfère champ i au décodeur 26 Passe à CL-8 CL-8 Transfère champ i au décodeur 26 40 Transfère incrément dans ^i au dispositif d'incrémentation 69 40275 9 2027784 TABLEAU DE LA SEQUENCE DES OPERATIONS (suite) Passe à CL-9 CL-9 Transfère le contenu du registre maintient au champ d'incrémentation dans R.. i Tansfère champ i au décodeur 26 5 Passe à CL-10 CL-10 Transfère champ j au décodeur 26 Transfère Rj à l'unité logique et arithmétique [partie donnée) Amorce opération dans ALU Passe à CL-11 10 CL-11 Teste F. J - Si Fj = 1 passe à CL-12 Si Fj = 0 passe à CL-19 CL-12 Transfère champ j au décodeur 26 Transfère incrément dans R. à l'additionneur J - - - 15 Transfère adresse dans R. à l'additionneur .J Passe à CL-13 CL-13 Amorce accès de recherche Passe à CL-14 CL-14 Opération précédente est-elle terminée? 20 Si non, passe à CL-15 Si oui, passe à CL-16 CL-15 Retard CL-14 CL-16 Transfère NDR à R^ (champ de donnée) 25 Transfère champ j au décodeur Passe à CL-17 CL-17 Transfère champ j au décodeur Transfère incrément dans Rj au dispositif d'incrémentation Passe à CL-18 30 CL-1B Transfère contenu du registre de maintien au champ "incrément" de R. J Transfère j au décodeur Passe à CL-19 CL-19 Opération dans l'unité logique et arithmétique est-elle terminée? 35 Si non,passe à CL-20 Si oui, passe à CL-21 CL-20 Retard Passe à CL-19 69 40275 10 2027784 10 CL-21 Transfère champ Kai décodeur Transfère résultat à [champ de donnée) Passe à CL-22 CL-22 Teste F, K Si F,^ = 1, passe à CL-23 Si F^ = 0, fin de l'opération CL-23 Transfère champ K au décodeur Transfère champ d'incrémentation de R à l'additionneur K Transfère champ d'adresse de R^ à l'additionneur Transfère R^ à MDR [champ de donnée) Passe à CL-24 CL-24 Amorce accès d'emmagasinage Passe à CL-25 CL-25 Opération précédente est-elle.terminée? 15 Si non passe à CL-26 Si oui, passe à CL-27 CL-2B Retard Passe à CL-25 CL-27 Transfère champ k au décodeur 20 Transfère champ "incrément" de R^ au dispositif d'incrémentation Passe à CL-28 CL-28 Transfère k au décodeur Transfère contenu du registre de maintien au champ "incrément" de R . . K Fin des opérations 25 On supposera que la mémoire locale 14 a été chargée de façon appropriée avec les données d'entrée et l'information d'adresse et qu'une opération se trouve dans le registre d'instructions déterminant une opération d'exécution et l'utilisation des trois registres locaux i, j et k, les bits F., F. et F. é- "1 J K tant mis à 1, ce qui implique le chargement et la mise en mémoire dans ces registres pendant l'opération. L'existence d'une instruction d'exécution dans le registre d'instructions fait produire par le décodeur 21 une impulsion qui é-tablit CL-1. Cette impulsion est appliquée ajcircuit OU 22 et à la porte 24 pour transférer le champ i du registre d'instructions au décodeur 26 qui détermine que l'on doit accéder au registre R^ et placer son contenu sur le bus de sortie de la mémoire locale 14. L'impulsion CL-1 est aussi appliquée à la porte 26 pour transférer le contenu du registre de champ de donnée R^ à l'unité logique et arithmétique. L'arrêt de CL-1 amorce CL-2. CL-2 est appliqué pour conditionner le circuit 30 à tester le champ F^. Si ce champ est mis à 1 l'horloge 69 40275 11 2027784 passe à CL-3. S'il est à 0, elle passera à CL-10. On va supposer que ce champ est à 1, ce qui détermine une instruction de chargement implicite. L'Impulsion CL-3 est appliquée au circuit OU 22 et à la porte 24 pour transférer le champ i provenant du registre d'instructions au décodeur 26 qui 5 accède de nouveau à la mémoire locale 14 de la position du registre R^. CL-3 est aussi appliquée au circuit OU 32 qui fait transférer par la porte 34 le champ "incrément" du registre R^ dans l'additionneur 36. CL-3 est aussi appliqué au circuit OU 3S qui conditionne la porte 41 pour transférer le champ d'adresses effectives du registre à l'additionneur 36. La sortie de l'additionneur L'impulsion CL-4 est appliquée au circuit OU 38 qui amorce un accès de recherche dans la mémoire principale 18 à l'adresse déterminée par le registre MAR. Elle met aussi la bascule 40 à 1 et cette bascule sera restaurée lorsque 15 l'accès de recherche en mémoire est terminé. L'arrêt de CL-4 déclenche CL-5. Lx impulsion CL-5 est appliquée à la porte 42 et elle est utilisée pour déterminer si oui ou non l'accès de recherche est en fait terminé. Si la bascule 40 est encore à 1, la porte 42 fera passer le système à CL-6 qui est simplement un retard et làrrêt de cette impulsion est appliquée au circuit OU 44 dont la sortie 20 redéclenche CL-5. En supposant que la bascule 40 est maintenant mise à 0, le système passe alors à CL-7. CL-7 est appliquée au circuit OU 47 qui fait transférer à la porte 49 le contenu du registre I10R sur la ligne d'entrée des données de la mémoire locale. En même temps CL-7 est aussi appliquée au circuit OU 22 et à la porte 24 pour 25 que le contenu de MDR soit emmagasiné dans le champ des données du registre R^. L'arrêt ds CL-7 amorce CL-8. L'impulsion CL-8 est appliquée au circuit OU 22 qui fait transférer à la porte 24 le contenu du champ i du registre d'instructions au décodeur 26 pour accéder à la mémoire locale à la position du registre R^, Simultanément l'impul-30 sion CL-8 est appliquée au circuit OU 46 qui fait transférer par la porte 48 le champ "incrément" du registre R^ au dispositif d'incrémentation 50 dans lequel il est augmenté de 1 et transmis dans le registre de maintien 52 qui est un circuit à retard et qui permet à l'impulsion CL-9, à la suite de l'arrêt de CL-8 d'être.appliuée au circuit OU 55 qui fait transférer par la porte 57 l'adresse 35 incrémentée dans le registre de maintien 52 dans le champ "incrément" du registre R^, Comme précédemment le champ i du registre d'instructions est transmis par CL-9.dans le décodeur 26 et ainsi atteint le registre R^, L'arrêt de CL-9 termine l'ûpération d'emmagasinage dans le registre local R^ déterminé par le champ i du registre d'instructions. 40 L'impulsion CL-10 amorce exactement la même opération pour le champ j 40275 12 2027784 du registre d'instructions et implique l'évaluation du champ . Dans la séquence des impulsions d'horloge CL-10 à CL-18, la différence principale est que les impulsions d'horloge CL-10, CL-12, CL-16, CL-17 et CL-18 sont appliquées au circuit OU 54 qui conditionne la porte 56 pour transférer le champ j du registre 5 d'instructions au décodeur 26 qui accède maintenant à la position R dans la ^ J memolre locale 14. Les autres opérations sont essentiellement identiques, c'est à dire, CL-12 est appliquée auxcircuits OU 32 et 39 pour transférer le contenu des deux champs d'fadresse à l'additionneur 36 comme avec lès impulsions CL-3 etc... Ainsi, en supposant qu'un 1 est placé dans le champ Fj, la position du 10 registre Rj sera supposée chargée avec un nouveau mot de données provenant de la mémoire principale à la suite de l'arrêt de CL-18 qui provoque CL-19. L'impulsion CL-1S est appliquée à la porte 56 pour tester la bascule 60 qui est mise à l'état 1 lorsque l'opération de l'unité arithmétique et logique est amorcée. Ceci est réalisé par l'impulsion CL-10. La fin de l'opération par-15 ticulière dans l'unité arithmétique et logique provoque l'excitation de la ligne "opération terminée" remettant la bascule 60 à son état Si l'opération n'est pas terminée, CL-20 est amorcé, ce qui est simplement un retard et on revient à CL-19. En supposant que l'opération est terminée, CL-21 est amorcé. CL-21 est appliqué au circuit 0U-60 qui conditionne la porte 64 à transférer 20 le champ K du registre d'instruction au décodeur 26 pour accéder à la position du registre R^ de la mémoire locale 14, CL-21 est aussi appliqué à la porte 66 qui transfère le résultat provenant de l'unité arithmétique et logique dans le champ de données de la position R^. L'arrêt de CL-21 amorce CL-22. CL-22 est appliquée à la porte 68. Si un zéro est détecté, la séquence des opérations 25 est terminée et l'instruction suivante sera transférée dans le registre d'instruction, cependant, en supposant que ce champ est mis à un, l'horloge passe à CL-23. CL-23 est appliqué à la porte OU 62, ce qui conditionne la porte 64 pour transférer de nouveau le champ K du registre d'instructions au décodeur 26 pour accéder à la position R^. CL-23 est aussi appliquée à la porte OU 32 30 et à la porte 34 pour transférer le champ "incrément" de la position à l'additionneur 36. L'impulsion 23 est aussi appliquée à la porte OU 39 pour conditionner la porte 40 à transférer le champ d'adresse effective de la position R. à l'additionneur 36. La sortie de l'additionneur est ensuite transférée di-k rectement dans le registre d'adresses pour la mémoire principale 18. Simultané-35 ment, le contenu du champ de données de la position R^ est transféré par la porte 70 par l'impulsion CL-23 dans le registre de données de la mémoire principale 18. L'horloge passe ensuite à CL-24. CL-24 amorce un accès d'emmagasinage dans la mémoire principale 18 et met aussi la bascule 72 à 1. L'arrêt de CL-24 amorce CL-25. CL-25 fait un test 40 pour voir si oui ou non l'accès d'emmagasinage est terminé au moyen de la 69 40275 13 2027784 porte 74. Si l'accès n'est pas terminé, le système passe à CL-26 qui est un retard et après laquelle on revient à CL-25. En supposant que l'accès soit terminé, le système passe à CL-27. CL-27 est appliquée au circuit OU 62 pour conditionner la porte 64 et transférer le champ K du registre d'instructions dans le 5 décodeur 26 qui accède de nouveau à la position simultanément CL-27 est appliquée au circuit OU 46 pour conditionner la porte 48 qui transmet le champ "incrément" de la position R^ par le dispositif d'incrémentation 50 où il est augmenté de 1 et transmis dans le registre de maintien 52. L'arrêt de CL-27 déclenche CL-28 qui est appliquée à la porte OU 62 et à la porte 64 pour accéder 10 de nouveau au champ K du registre d'instructions pour conditionner le décodeur 26 à accéder à la mémoire locale 14 à la position R. et en appliquant l'irnpul-sion CL-28 au circuit OU 55, la porte 57 est conditionnée. Le contenu du registre de maintien 52 est emmagasiné dans le champ "incrément" de la position R. K dans la mémoire locale 14. L'arrêt de CL-28 indique la fin de la séquence d'~ 15 instructions après quoi le système amènera une nouvelle instruction dans le registre dinstructions sous une commande indépendante du système. La description précédente de l'opération de la réalisation décrite représentée sur la figure 2 avec le tableau de la succession des opérations achève la description de la réalisation de la présente invention. On verra facilement 20 que les adresses i, j et K peuvent être remplacées par d'autres indicateurs d'adresses concernant d'autres registres compris dans l'unité d'emmagasinage locale 14. Le décodeur 26 décodera automatiquement la position d'emmagasinage correcte du registre et les commandes décrites pour réaliser les opérations de chargement et d'emmagasinage seront mises en route automatiquement et réalisées 25 en chargeant de façon appropriée les champs fonctionnels indiqués par F., F. et V . Il est apparent d'après la description précédente de la réalisation préférée de l'invention ainsi que d'après la description générale des concepts de l'invention, que de nombreux changements ou modifications peuvent être apportés 30 dans le système sans sortir du cadre et de l'esprit de l'invention. Par exemple, au lieu d'avoir simplement un champ à un seul bit, transporté avec chaque adresse du registre d'instructions, un champ à deux bits peut être utilisé qui peut se brancher à une opération de chargement ou d'emmagasinage, ce qui donne une souplesse plus grande de fonctionnement. Cependant, ceci nécessitera plus de 35 circuits pour réaliser les opérations de test et de branchement. On doit naturellement comprendre qu'avec le système de l'invention, des instructions normales peuvent être traitées d'une manière habituelle, c'est à dire des instructions non disposées en boucle, ce qui fait que la miqe à 0 des bits de commande court-circuitera les circuits de la présente invention. 40 Un autre procédé pour déterminer l'adresse à utiliser dans les opérations 69 40275 14 2027784 d'emmagasinage et de recherche de la présente invention consistera à utiliser des registres d'indexe ordinaires pour conserver l'information d'adresse. Il sera simplement nécessaire de fournir des longueurs de champ dans la mémoire locale capables de déterminer l'adresse des registres d'indexe particuliers à uti-5 User. Ceci nécessitera des circuits de commutation et logique supplémentaires cependant la "longueur du champ des registres de la mémoire locale 14-peut être réduite. De même, d'autres moyens et dispositifs peuvent être utilisés pour déterminer des adresses particulières nécessaires pour, un système donné, et il est 10 évident que ces modifications peuvent être apportées par l'homme de l'art en utilisant les principes décrits ici. Bien que l'on ait décrit dans ce qui précède et représenté sur le dessin, les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci, il est évident que l'homme de l'art peut y apporter 15 toutes modifications-de forme ou de détail qu'il juge utiles sans pour autant sortir du cadre de ladite invention. 69 40275 15 2027784 REVENDICATIONS 't.- Système de traitement de données comportant en particulier une unité arithmétique et logique commandée par différentes instructions d'un programme 5 d'instructions, une mémoire principale contenant l'information nécessaire au déroulement du programme et utilisée par le système, un registre d'instructions et des moyens de transfert et d'exécution d'instructions associés, des registres dits registres locaux pouvant être chargés à partir de la mémoire principale et de l'unité arithmétique et logique, caractérisé en ce que: •jq des positions particulières du registre d'instructions indiquent si une information doit être enregistrée dans un ou plusieurs registres spéciaux ou si une information doit être transférée à partir de ce ou ces registres spéciaux; des moyens décodent l'information contenue dans ces positions particulières du registre d'instructions; 15 des positions particulières des registres locaux sont prévues pour emma gasiner une information d'adresse» des moyens de génération d'adresses associés aux registres locaux reçoivent ladite information d'adresse et génèrent les adresses de la mémoire principale correspondant aux positions de la mémoire principale dans lesquelles 20 ou à partir desquelles une information doit être entrée ou sortie en provenance ou à destination des registres spéciaux; des moyens commandent les moyens de génération d'adresses à partir des moyens de décodage des positions particulières du registre d'instructions; des moyens de transfert commandés par les moyens de génération d'adres-25 ses transfèrent les opérandes d'une opération arithmétique ou logique dans les registres locaux ou emmagasinent le résultat d'une opération arithmétique ou logique dans la mémoire principale, 2,- Système de traitement de données selon la revendication 1 dans lequel 30 les moyens de génération d'adresses comportent un additionneur pour additionner un index d'adresse et une valeur d'adresse contenus dans l'information d'adresse. 3,- Système de traitement de données selon la revendication 2 comprenant 35 des moyens de mise à jour d'adresses pour mettre à jour l'information d'adresse à la suite d'un accès à la mémoire principale et des moyens pour emmagasiner ladite information dans la position de mémoire spécifiée. 40 4.- Système de traitement de données selon la revendication 3 dans lequel les moyens de mise é jour d'adresses comportent: 69 40275 16 2027784 des moyens pour accéder à la valeur d'Index utilisée à partir de la position de mémoire spécifiée: des moyens pour modifier cette valeur d'une quantité prédéterminée; des moyens pour réintroduire la valeur d'index modifiée à la position de 5 mémoire spécifiée. 5.- Système de traitement de données selon la revendication 4 dans lequel les moyens de modification de la valeur d'index comporte un incrémenteur pour incrémenter la valeur d'index d'une quantité prédéterminée chaque fois que l'in- 10 dex est utilisé pour accéder à la mémoire. 6.- Système de traitement de données selon la revendication 1 comprenant des moyens commandés par l'information d'adressage de registres locaux contenue dans le registre d'instructions pour remplacer l'opérande d'un registre local 15 par l'opérande suivant devant être utilisé par le système à partir du même registre local et comprenant: des moyens pour accéder à l'information d'adresse du registre local spécifié; des moyens pour générer une adresse de mémoire à partir de cette informa-20 tion d'adresse; des moyens pour transférer dans le registre local spécifié l'information contenue dans la position de mémoire indiquée par cette adresse de mémoire; des moyens.pour mettre à Jour au moins une partie de l'information d'adresse à partir de laquelle l'adresse en mémoire de l'opérande suivant ou à partir 25 de laquelle l'adresse en mémoire du résultat suivant doit être déterminée; des moyens pour emmagasiner ou pour remplacer l'information d'adresse mise à jour dans le registre local spécifié. 7.- Système de traitement des données selon l'une des revendications pré-30 cédentes dans lequel, pour effectuer des boucles dans un programme, les moyens de transfert de données sont tels que les opérandes sont automatiquement chargés, dans les registres locaux et les résultats d'opérandes arithmétiques ou logiques sont inscrits dans la mémoire principale sans que ces opérations soient spécifiées dans la boucle du programme. 35 8.- Procédé permettant de réduire le nombre d'instructions exigées par le traitement d'une boucle de programme dans un système de traitement de données comportant en particulier un certain nombre de registres locaux, ledit procédé étant caractérisé par le fait qu'il comporte les étapes suivantes: 40 - spécification, dans la séquence d'instructions, avant d'introduire la 69 40275 2027784 boucle de programme, du contenu d'un des registres locaux comprenant des données et des informations d'adresse; - spécification dans la boucle de programme, d'un registre local particulier dont le contenu est à transférer au dispositif d'utilisation; 5 - utilisation de l'information d'adresse de ce registre local pour former une adresse de mémoire; - accès à la mémoira à partir de cette adresse de mémoire; - formation d'une nouvelle information d'adresse à partir de l'information contenue dans le registre local spécifié; 1Q - réintroduction de cette nouvelle information d'adresse dans le regis tre local spécifié. 9.- Procédé selon la revendication B comportant les étapes suivantes; - indication dans la boucle de programme que le résultat d'une instruc- 15 tion dans le registre d'instructions doit être emmagasiné dans un registre local; - exécution de l'instruction et emmagasinage du résultat dans le registre local spécifié; - utilisation de l'information d'adresse pour accéder à la mémoire prin- 20 cipale; - transfert du résultat du registre local spécifié à la mémoire principale; - utilisation de l'information d'adresse pour former une nouvelle information d'adresse indiquant l'adresse en mémoire à laquelle le résultat suivant 25 doit être emmagasiné et emmagasinage de cette nouvelle information d'adresse dans le registre local spécifié. 10.- Procédé selon la revendication B comportant les étapes suivantes; - spécification dans l'instruction de boucle que les données d'un regis- 30 tre local spécifié doivent être transférées au registre d*instructions et que le registre local doit être rechargé; - transfert de ces données de ce registre local à l'unité d'exécution; - utilisation de l'information d'adresse-de ce registre local pour former uue adresse de mémoire; 35 - accès à la mémoire principale à l'aide de cette adresse de mémoire et transfert des données de cette position de mémoire au registre local spécifié; - détermination d'une nouvelle information d'adresse à utiliser durant le cycle suivant d'accès à la mémoire et emmagasinage de cette nouvelle information dans le registre local spécifié. 69 40275 10 2027784 11,- Procédé selon les revendications 9 ou 10 comportant le préemmagasina-ge de l'information d'adresse dans le registre local spécifié comprenant une information d'index d'adresse et une information d'adresse effective, ledit procédé comportant les étapes suivantess 5 - accès à l'information d'index à partir du registre local spécifié; - augmentation de la valeur d'index d'une quantité prédéterminée; - restauration de l'information d'index dans le registre local spécifié, 12,- Système de traitement de données selon l'une des revendications 1 à 7 dans lequel les moyens de transfert de données sont commandés par une instruction d'exécution comportants - un code d'opération; - au moins 2 codes d'adresse spécifiant les adresses des registres locaux dans lesquels sont emmagasinés d'une part les opérandes pour effectuer l'opération spécifiée par le code opération et d'autre part le résultat de l'opération spécifiée; - des champs correspondant aux codes d'adresse et en nombre égal au nombre de codes d'adresse dans l'instruction, indiquant si les registres locaux adressés doivent être chargés automatiquement pendant l'opération spécifiée par le code opération. 13,- Procédé de traitement de données selon l'une des ravendiâations S à 11 dans lequel l'opération de transfert de données est commandée par une instruction d'éxécution comportants 25 - un code d'opération; - au moins 2 codes d'adresse spécifiant les adresses des registres locaux dans lesquels sont emmagasinés d'une part les opérandes pour effectuer l'opération spécifiée par le code opération et d'autre part le résultat de l'opération spécifiée par le code opération et d'autre part le résultat de l'opération spé- 30 cifiée; - des champs correspondant aux codes d'adresse et en nombre égal au nombre de codes d'adresse dans l'instruction, indiquant si les registres locaux adressés doiyent être chargés automatiquement pendant l'opération spécifiée par le code opération. 35 1Q 15 20