FR2637708A1 - Dispositif pour le traitement de donnees - Google Patents
Dispositif pour le traitement de donnees Download PDFInfo
- Publication number
- FR2637708A1 FR2637708A1 FR8913353A FR8913353A FR2637708A1 FR 2637708 A1 FR2637708 A1 FR 2637708A1 FR 8913353 A FR8913353 A FR 8913353A FR 8913353 A FR8913353 A FR 8913353A FR 2637708 A1 FR2637708 A1 FR 2637708A1
- Authority
- FR
- France
- Prior art keywords
- registers
- instruction
- register
- group
- code
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Le dispositif de traitement de données est pourvu de différents groupes de registres composés chacun d'une pluralité de registres généraux ou de registres d'adresse ou autres, et utilise une seule instruction pour désigner une pluralité des registres pour effectuer des opérations de stockage simultanées dans le dispositif de mémoire centrale. Application aux ordinateurs.
Description
DISPOSITIF POUR LE TRAITEMENT DE DONNEES
La présente invention concerne un dispositif pour le traitement de données fonctionnant selon une instruction servant à désigner une pluralité de registres appartenant a différents groupes de registres, chacun de -ces groupes étant composé d'une pluralité de registres de différents types tels que des registres généraux et des registres d'adresse, afin d'exécuter l'instruction de l'opération de stockage dans un dispositif de mémoire principale, et concerne plus particulièrement le dispositif pour le traitement de données du type contenant des premier et deuxième groupes de registres, chacun de ces groupes étant composé d'une pluralité de registres numérotés par codes séquentiels et dont la zone de données pour l'opération de stockage dans le dispositif de mémoire est identique.
La présente invention concerne un dispositif pour le traitement de données fonctionnant selon une instruction servant à désigner une pluralité de registres appartenant a différents groupes de registres, chacun de -ces groupes étant composé d'une pluralité de registres de différents types tels que des registres généraux et des registres d'adresse, afin d'exécuter l'instruction de l'opération de stockage dans un dispositif de mémoire principale, et concerne plus particulièrement le dispositif pour le traitement de données du type contenant des premier et deuxième groupes de registres, chacun de ces groupes étant composé d'une pluralité de registres numérotés par codes séquentiels et dont la zone de données pour l'opération de stockage dans le dispositif de mémoire est identique.
Un dispositif de ce type pour le traitement de données présente une pluralité de registres appelés registres de base qui stockent principalement des informations d'adresses servant à désigner un mot d'instruction dans le dispositif de mémoire principale et à désigner des données utilisées dans l'instruction, et une pluralité de registres appelés registres généraux qui stockentprincipalement des données pour le traitement et des informations de données d'index utilisées avec des registres de base, ces registres étant utilisés librement en fonction du programme.
Les registres de base et généraux sont numérotés respectivement de #manière séquentielle grâce à des codes indépendants les uns des autres.
En désignant ces codes, les registres peuvent être utilisés facilement selon le programme; cependant, comme leur nombre est limité, il est nécessaire de dériver temporairement les registres en cours d'utilisation dans le programme principal lorsque des registres en cours sont nécessaires dans un sous-programme, puis de récupérer les registres dérivés lorsqu'on revient au programme principal.
Durant cette opération, les instructions utilisées comprennent l'instruction Chargement
Multiple : Load Multiple (désignée ci-après comme '!instruCtiOn LM") et l'instruction Stockage
Multiple : Store Multiple (désignée ci-après comme "instruction STM"). L'instruction LM et l'instruction STM ont un format d'instruction tel qu'illustré dans la figure 4.Le format d'instruction a une section de code opération OP indiquant s'il s'agit de l'instruction LM ou de l'instruction STM, un champ dTADR indiquant, dans le cas de l'instruction LM, une adresse dans le dispositif de mémoire principale à partir de laquelle les données stockées sont chargées dans le registre et indiquant, dans le cas de l'instruction STM, une adresse dans le dispositif de mémoire principale dans laquelle le contenu du registre est stocké, un champ Nb/Ng indiquant le nombre sous lequel les registres de base et registres généraux devant être chargés sont stockés, et un champ Bi/Gi indiquant les premiers codes des registres de base et des registres généraux devant être chargés ou stockés.Les registres généraux devant être chargés ou stockés selon l'instruction LM ou l'instruction STM se composent d'un nombre Nb de registres numérotés séquentiellement depuis Bi et, de la même manière, les registres généraux se composent d'un nombre Ng de registres numérotés séquentiellement a partir de Gi.
Multiple : Load Multiple (désignée ci-après comme '!instruCtiOn LM") et l'instruction Stockage
Multiple : Store Multiple (désignée ci-après comme "instruction STM"). L'instruction LM et l'instruction STM ont un format d'instruction tel qu'illustré dans la figure 4.Le format d'instruction a une section de code opération OP indiquant s'il s'agit de l'instruction LM ou de l'instruction STM, un champ dTADR indiquant, dans le cas de l'instruction LM, une adresse dans le dispositif de mémoire principale à partir de laquelle les données stockées sont chargées dans le registre et indiquant, dans le cas de l'instruction STM, une adresse dans le dispositif de mémoire principale dans laquelle le contenu du registre est stocké, un champ Nb/Ng indiquant le nombre sous lequel les registres de base et registres généraux devant être chargés sont stockés, et un champ Bi/Gi indiquant les premiers codes des registres de base et des registres généraux devant être chargés ou stockés.Les registres généraux devant être chargés ou stockés selon l'instruction LM ou l'instruction STM se composent d'un nombre Nb de registres numérotés séquentiellement depuis Bi et, de la même manière, les registres généraux se composent d'un nombre Ng de registres numérotés séquentiellement a partir de Gi.
Lorsqu'un sous-programme est appelé dans le programme principal, le contenu des registres de base et des registres généraux utilisés dans le programme principal sont transférés dans le dispositif de mémoire principale en application de l'instruction STM. Ensuite, ces registres de base et registres généraux peuvent être utilisés librement dans le sous-programme. Lorsqu'on revient au programme principal d'origine après avoir achevé le traitement du sous-programme, les registres de base et les registres généraux, dont le contenu précédent a été transféré dans le.
dispositif de mémoire principale, sont récupérés en application de l'instruction LM à l'état dans lesquels ils étaient juste avant l'appel du sousprogramme pour continuer le traitement selon le programme principal.
L'instruction LM et l'instruction STM sont caractérisées en ce qu'il n'est pas nécessaire de fournir des instructions individuelles pour chaque registre lors de la dérivation et de la récupération d'une pluralité de registres, contrairement à des instructions de chargement et de stockage normales, ce qui simplifie le programme. Toutefois, les registres devant être chargés et stockés ne sont pas identifiés individuellement dans le mot d'instruction, un circuit de commande du dispositif de traitement de données doit générer des codes d'identification individuels des registres selon les premiers codes
Bi et Gi donnés et le nombre Nb et Ng donné des registres de manière à commander la lecture et l'écriture des registres.
Bi et Gi donnés et le nombre Nb et Ng donné des registres de manière à commander la lecture et l'écriture des registres.
En.général, dans un dispositif polyvalent rapide de traitement de données, pour réaliser le traitement rapide de différentes tailles de données, la zone de données de lecture dans le dispositif de mémoire principale et d'écriture dans celui-ci est prévue pour être la plus vaste possible afin d'obtenir une plus grande efficacité. Normalement, cette zone de données à mémoriser est au moins le double de celle du registre de base et du registre général.
Cependant, lors de l'exécution de l'instruction LM et de l'instruction STM, du fait de la commande compliquée des codes d'identification des registres chargés et stockés mentionnée ci-dessus, le bus de données entre le dispositif de mémoire principale et le dispositif de traitement de données ne peut pas être utilisé efficacement.
En outre, dans le dispositif conventionnel de traitement de données, il existe une instruction permettant d'effectuer des opérations entre les registres généraux, telles qu'une addition entre un registre général a et un registre général b et le stockage du résultat obtenu dans le registre a. Afin de réaliser des opérations rapides de ce type, une paire de registres généraux peut être lue en même temps.
Cette fonction non plus n'est pas exécutée efficacement pour exécuter l'instruction STM du fait de la raison invoquée ci-dessus.
Donc, un des objectifs de la présente invention est de charger et de stocker efficacement une pluralité de registres par rapport au dispositif de mémoire principale.
Dans un dispositif de traitement de données pourvu d'une mémoire et de premier et deuxième groupes de registres, chaque groupe de registres étant composé d'une pluralité de registres numérotés par codes séquentiels et ayant une zone de données d'enregistrement identique, le dispositif pouvant exécuter une opération de stockage des registres individuels dans la mémoire sur une zone de données de mémorisation donnée qui correspond à un nombre multiple des zones de données d'enregistrement, le dispositif pouvant exécuter une instruction de manière à réaliser simultanément l'opération de stockage d'un nombre donné de registres ayant des codes donnés et choisis parmi le premier groupe de registres, et l'opération de stockage d'un nombre de registres donné ayant des codes donnés et choisis parmi le deuxième groupe de registres, le dispositif de l'invention étant caractérisé en ce qu'il présente un moyen de comptage chargeable avec un certain nombre de registres désignés par l'instruction et appartenant au premier groupe de registres, et fonctionnant à chaque opération de stockage en mémoire pour effectuer la diminution de la valeur fixée du moyen de comptage par un multiple qui est un rapport entre la zone de données de mémorisation et la zone de données d'enregistrement de chaque registre; un troisième groupe de registres étant composé dudit nombre multiple de registres de codes servant à contenir les codes permettant de désigner chacun des registres choisis dans les premier et deuxième groupes pour réaliser l'opération de stockage en mémoire; et un moyen de commande servant à rentrer, lorsque la valeur du moyen de comptage est égale ou supérieure audit multiple, dans une première opération-de stockage après le lancement de l'instruction, un premier code, grâce à des codes continus ultérieurs de chaque registre désigné par l'instruction et appartenant au premier groupe de registre, à chacun des registres de code du troisième groupe de registres de manière séquentielle, et servant à rentrer à chacun des registres de code du troisième groupe de registres, dans l'opération suivante de stockage et les opérations de stockage ultérieures après le lancement de l'instruction, un nouveau contenu qui est une somme du contenu immédiatement antérieur d'un registre de code et dudit multiple, le moyen de commande fonctionnant lorsque la valeur du moyen de comptage est inférieure à celle dudit multiple et égale ou supérieure à zéro pour rentrer, dans une première opération de stockage après le lancement de l'instruction, un premier code et des codes ultérieurs de chacun des registres désignés par l'instruction et appartenant au premier groupe de registres aux premiers registres de codes et suivants du troisième groupe de registre dont un des nombres correspond à la valeur du moyen de comptage et attribuant des premiers codes et suivants de chacun des registres désignés par l'instruction et appartenant au deuxième groupe de registre aux registres de code restants, et pour rentrer, dans l'opération suivante et les opérations ultérieures après le lancement de l'instruction, un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple au premier registre de code et aux codes ultérieurs appartenant au troisième groupe de registres dont un nombre correspond à la valeur du moyen de comptage et attribuant le premier code et aux codes ultérieurs de chacun des registres désignés par l'instruction et appartenant au deuxième groupe de registres aux registres de codes restants, le moyen de commande fonctionnant lorsque la valeur du moyen de commande est négative pour rentrer un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple à chacun des registres de code du troisième groupe de registres.
Dans la présente invention, le dispositif de traitement de données contient différents groupes de registres, chacun de ces groupes étant composé d'une pluralité de registres généraux ou de registres d'adresse ou autres, et fonctionne selon une unique instruction pour désigner une pluralité des registres pour effectuer l'opération de stockage dans le dispositif de mémoire principale.
- la figure 1 est un synoptique illustrant un mode de réalisation de la présente invention; - la figure 2 est un diagramme expliquant le fonctionnement d'un décodeur de masque de mémoire; - la figure 3 est un diagramme des temps pour.
expliquer le fonctionnement du mode de réalisation de la figure i; - la figure 4 est un diagramme schématique illustrant le format du mot d'instruction de l'instruction LM et de l'instruction STM utilisé dans la présente invention; et - la figure 5 est une vue explicative du fonctionnement de registres et d'un circuit d'alignement dans le mode de réalisation de la figure 1.
Des modes de réalisation de la présente invention vont maintenant être décrits en détail en se référant aux dessins. La figure 1 est un synoptique illustrant un mode de réalisation de la présente invention. Dans la figure, le chiffre 7 désigne une unité de commande d'instruction, le chiffre 2 désigne un dispositif de mémoire principale (mémoire), les chiffres 5 et 9 désignent un circuit d'alignement, les chiffres 6, 7, 8, 11, 12, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 39 et 40 désignent un registre, et le chiffre 10 désigne une unité de registres opérationnels.L'unité de registres opérationnels 10 comprend des premier et deuxième groupes de registres, chacun de ces groupes étant composé d'une pluralité de registres individuels présentant une zone de données d'enregistrement identique lorsqu'ils sont stockés dans la mémoire et étant numérotés par des codes séquentiels. La paire de registres 16 et 17 constitue un troisième groupe de registres qui contient des codes servant à désigner des registres individuels appartenant aux premier et deuxième groupes pour l'opération de stockage dans le dispositif de mémoire principale 1 et qui se compose d'un nombre donné de registres de codes correspondant à un nombre multiple qui est le rapport entre une zone de données de mémorisation de la mémoire et la zone de données d'enregistrement d'un registre individuel.Le chiffre 13 désigne un sélecteur, le chiffre 14 désigne une UAL (Unité Arithmétique et
Logique) et les chiffres 31, 32, 33, 34, 36, 37 et 38 désignent un additionneur. L'additionneur 37 et le registre 22 constituent un moyen de comptage chargeable avec un nombre de registres appartenant au premier groupe de registres désignés par l'instruction pour 1! opération de stockage en mémoire, et fonctionnant à chaque opération de stockage pour effectuer la diminution de son contenu dudit multiple qui est le rapport entre la zone de données de mémorisation de la mémoire et la zone de données d'enregistrement du registre individuel.
Logique) et les chiffres 31, 32, 33, 34, 36, 37 et 38 désignent un additionneur. L'additionneur 37 et le registre 22 constituent un moyen de comptage chargeable avec un nombre de registres appartenant au premier groupe de registres désignés par l'instruction pour 1! opération de stockage en mémoire, et fonctionnant à chaque opération de stockage pour effectuer la diminution de son contenu dudit multiple qui est le rapport entre la zone de données de mémorisation de la mémoire et la zone de données d'enregistrement du registre individuel.
Lors de l'exécution de l'instruction pour effectuer l'opération de stockage d'un nombre donné de registres sélectionnés parmi le premier groupe de registres et numérotés par des codes donnés et d'un nombre donné de registres sélectionnés dans le deuxième groupe de registres et numérotés par des codes donnés dans la mémoire, le dispositif de traitement de données est conçu de telle sorte que l'unité de commande d'instruction fonctionne lorsque la valeur du moyen de comptage est égale ou supérieure audit multiple pour rentrer, dans une première opération de stockage après le lancement de l'instruction, un premier code par des codes ultérieurs continus des registres individuels désignés par l'instruction et appartenant au premier groupe de registres séquentiellement à chacun des registres de codes appartenant au troisième groupe de registre, et pour rentrer, dans l'opération suivante de stockage et suivantes après le lancement de l'instruction, un nouveau contenu qui est la somme du contenu immédiatement antérieur d'un registre de code et dudit multiple à chacun des registres de code appartenant au troisième groupe de registres, l'unité de commande d'instruction fonctionnant également lorsque la valeur du moyen de comptage est inférieure audit multiple et égale ou supérieure à zéro pour rentrer, dans une première opération de stockage après le lancement de l'instruction, un premier code et des codes ultérieurs continus des registres individuels désignés par l'instruction et appartenant au premier groupe de registre au registre de code de tête et au suivant des registres de codes du troisième groupe dont un nombre correspond à la valeur du moyen de comptage et attribuant le premier code et les codes ultérieurs des registres individuels désignés par l'instruction et appartenant au deuxième groupe de registres aux registres de codes restants, et pour rentrer, dans l'opération de stockage suivante et les opérations de stockage ultérieures après le lancement de l'instruction, un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple au registre de code de tête et au suivant appartenant au troisième groupe de registres dont un nombre correspond à la valeur du moyen de comptage et l'attributiondu premier code et des codes ultérieurs des registres individuels désignés par l'instruction et appartenant au deuxième groupe de registres au registres de codes restants, et l'unité de commande d'instruction fonctionne en outre lorsque la valeur du moyen de comptage est négative pour rentrer un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple à chacun des registres de codes du troisième groupe d'enregistrement.
On va ensuite décrire le fonctionnement du mode de réalisation illustré dans la figure 1. Au départ, l'unité de commande d'instruction 1 décode le mot d'instruction pour envoyer à toutes les parties du dispositif de traitement de données les signaux d'informations et de commande nécessaires pour exécuter les instructions. Le dispositif de mémoire principale 2 reçoit les instructions exécutées par le dispositif de traitement de données et différentes sortes de données. Dans ce mode de réalisation de la figure 1, un bus pour l'envoi des instructions à l'unité de commande d'instruction 1 n'est pas illustré, dans un but de simplification. 8 octets de données peuvent être lus simultanément depuis les adresses 8n à 8n+1 du dispositif de mémoire principale 2.Cependant, différents types d'opérandes stockés dans le dispositifs de mémoire principale 2 sont situés dans des adresses aléatoires, le circuit d'alignement 5 sert à trier les données de lecture selon leur type pour écrire les données alignées dans le registre 6 à des positions prédéterminées pour faciliter le traitement. Ensuite, concernant les informations sur l'alignement des données de lecture, trois bits de poids le plus faible de la première adresse de l'opérande sont envoyés de l'unité de commande d'instruction 1 aux registres 39 et 40, et, grâce à ces informations, on peut reconnaître l'endroit où est situé le premier opérande dans les données des 8 octets lus dans le dispositif de mémoire principale 2.
Les données devant être stockées dans le dispositif de mémoire principale 2 (données à stocker) se composent également essentiellement de 8 octets d'adresse 8n a#8n+7. Donc, pour écrire des données dans une position d'octets données, les données à stocker sont attribuées aux registres 7 et 8. Ensuite, la position de tête des données est changée et passe à la position d'octet donnée grâce au circuit d'alignement 9, puis les données sont stockées. Pour les informations sur l'alignement des données à stocker, de la même manière que pour l'opération de lecture, les trois bits de poids le plus faible de la première adresse sont envoyés de l'unité de commande d'instruction 1 aux registres 27 à 30.Dans cette opération, le registre 8 a pour fonction de servir de mémoire-tampon pour écrire séquentiellement des données égales ou supérieures à 8 octets dans le dispositif de mémoire principale 2 dans l'ordre, et les données stockées dans le registre 7 et exclues du fait de l'alignement sont envoyées par le registre de mémoire-tampon 8 pour le stockage, comme illustré dans la figure 5. La figure 5 explique le fonctionnement des registres 7 et 8 et du circuit d'alignement 9 du mode de réalisation de la figure 1. Dans cette figure, la partie (a) illustre le format des données stockées et la partie (b) le fonctionnement des registres 7 et 8 et du circuit d'alignement 9. La partie (I) indique l'adresse du dispositif de mémoire principale 2 et la partie (II) une position d'octet de la première données à stocker.
Une structure similaire est nécessaire pour la lecture de données dans le dispositif de mémoire principale 2. Cependant, une telle structure n'a pas de relation avec l'instruction
STM expliquée dans ce mode de réalisation et donc elle n'est pas expliquée en détail. Les données à stocker dans le dispositif de mémoire principale 2 ne sont pas forcément au nombre de 8 octets. Dans ce cas, le décodeur de masque de mémoire 35 génère des informations concernant le masque de mémoire permettant de désigner des octets parmi les 8 octets, qui sont deja stockés, et les informations concernant les masques de mémoire sont envoyées au registre 26 puis au dispositif de mémoire principale 2 avec les données enregistrées. La raison en est la suivante.Par exemple, comme illustré dans la figure 5, lorsque on commence à stocker les octets O à 5 des données à stocker, il faut éviter la ré-écriture de données originales des 2 premiers octets parmi les données des 8 octets dans le dispositif de mémoire principale 2 après le stockage de données, ou, lors du stockage des octets 14 et 15 des dernières données stockées, il faut éviter la ré-écriture de données originales des 6 derniers octets parmi les données des 8 octets même après le stockage des données.
STM expliquée dans ce mode de réalisation et donc elle n'est pas expliquée en détail. Les données à stocker dans le dispositif de mémoire principale 2 ne sont pas forcément au nombre de 8 octets. Dans ce cas, le décodeur de masque de mémoire 35 génère des informations concernant le masque de mémoire permettant de désigner des octets parmi les 8 octets, qui sont deja stockés, et les informations concernant les masques de mémoire sont envoyées au registre 26 puis au dispositif de mémoire principale 2 avec les données enregistrées. La raison en est la suivante.Par exemple, comme illustré dans la figure 5, lorsque on commence à stocker les octets O à 5 des données à stocker, il faut éviter la ré-écriture de données originales des 2 premiers octets parmi les données des 8 octets dans le dispositif de mémoire principale 2 après le stockage de données, ou, lors du stockage des octets 14 et 15 des dernières données stockées, il faut éviter la ré-écriture de données originales des 6 derniers octets parmi les données des 8 octets même après le stockage des données.
Le décodeur de masques de mémoire 35 va être décrit en détail plus tard.
Ensuite, l'unité de registres opérationnels 10 comprend 8 nombres des registres de base ayant une zone de données d'enregistrement de 4 octets et 8 nombres des registres généraux ayant une zone de données d'enregistrement de 4 octets. Chaque registre de base et chaque registre général reçoit respectivement un code numérique séquentiel particulier, et les registres sont individualisés les uns par rapport aux autres par les codes dans le même type de registres.
Concernant l'unité de registres opérationnels 10, parmi 16 nombres représentant la totalité des registres de base et généraux, un registre particulier désigné par un code particulier contenu dans le registre 19 peut être stocké avec des données de 4 octets contenues dans le registre 15. D'autre part, concernant l'opération de lecture, on peut lire simultanément une paire constituée d'un registre de base et d'un registre général désignés par des codes contenus respectivement dans les registres 16 et 17 pour permettre ainsi d'effectuer une opération mathématique rapide entre les registres généraux.
En outre, les données lues dans l'unité de registres opérationnels 10 peuvent être stockées dans le dispositif de mémoire principale 2 par le registre 7 et le circuit d'alignement 9.
L'UAL 14 effectue des opérations logiques et des opérations arithmétiques pour la lecture de données dans l'unité de registres opérationnels 10 et pour les autres données lues dans l'unité de registres opérationnels 10 ou les données lues dans le dispositif de mémoire principale 2 et sélectionnées au moyen du sélecteur 13 pour écrire ainsi le résultat dans le registre opérationnel 10 par l'intermédiaire du registre 15.
Ensuite, le registre 16 contient un code pour le registre appelé par l'unité de registres opérationnels 10, et l'autre registre 17 contient un autre code du registre appelé dans l'unité de registres opérationnels 10 et est utilisé pour commander les codes de chaque registre devant être écrit dans l'unité de registres opérationnels 10, où on fait circuler les codes dans les registres 18 et 19.
Les additionneurs 31, 32, 33 et 34 sont reliés à ces registres de codes 16 et 17. Les registres 16 et 17 peuvent recevoir des valeurs des registres 20 et 21, en l'occurence, qui contiennent des codes de registres fournis par l'unité de commande d'instruction 1, ou peuvent recevoir les valeurs des registres 20 et 21 plus 1. En outre, ils peuvent recevoir leur propre valeur plus 2. Pour cette attribution, l'addition de 1 au code du registre signifie que les registres 16 et 17 désignent le code suivant du registre de base ou du registre général.
Cependant, il faut remarquer que, comme les registres de base et les registres généraux sont, respectivement, composés de huit- nombres de registres, les registres suivant le registre de base et le registre général ayant les codes les plus élevés deviennent le registre de base et le registre général ayant les codes les moins élevés, et donc les additionneurs 31, 32, 33 et 34 agissent en conséquence.
Le registre 22 a pour seule fonction de commander l'exécution de l'instruction STM, et reçoit la valeur du champ Nb du mot d'instruction, c'est-a-dire un nombre de registres de base â stocker, qui est entré dans l'unité de commande d'instruciton 1. Le contenu du registre 22 est diminué de 2 par l'additionneur chaque fois que les contenus de l'unité de registres opérationnels 10 sont stockés dans le dispositif de mémoire principale 2. Le registre 22 sert, selon son contenu, à commander les codes de registres a rentrer aux registres de codes 16 et 17 pour l'unité de registres opérationnels 10.Comme illustré dans le tableau annexé, les valeurs des registres 16 et 17 sont déterminées selon le contenu du registre 22 en fonction de la première opération de stockage ou de la seconde opération de stockage et suivantes par l'instruction STM.
Le registre 23 a pour fonction de commander l'opération de stockage. Lors de l'exécution de l'instruction STM, l'unité de commande d'instruction 1 envoie des valeurs de champ Nb et de champ Ng du mot d'instruction. Ces valeurs sont ajoutées les unes aux autres par l'additionneur 36, pour indiquer le nombre des registres de base et des registres généraux à stocker. La valeur obtenue est attribuée au registre 23 et est diminuée de 2 par l'additionneur 38 chaque fois que le contenu de l'unité de registres opérationnels 10 est stockée dans le dispositif de mémoire principale 2. La valeur du registre 23 qui est diminuée de 2 à chaque opération de stockage est entrée dans le décodeur de masques de mémoire 35 via les registres 24 et 25.
Le décodeur de masques de mémoire 35 sert, en fonction des informations contenues dans les 3 bits de poids le plus faible de la première adresse envoyée dans l'unité de commande d'instruction 1 via les registres 27, 28 et 29 pour l'opération de stockage dans le dispositif de mémoire principale 2, en fonction de la valeur envoyée depuis le registre 23 via les registres 24 et 25, c'est-à-dire le nombre de registres restant à stocker et en fonction des informations indiquant si l'opération de stockage en cours est la première opération de stockage de l'instruction
STM ou non, à générer des informations de masques de mémoire et à les envoyer via le registre 26 au dispositif de mémoire principale 2 en synchronisation avec le transfert de données à stocker dans le circuit d'alignement 9. La figure 2(a) montre une configuration de génération du masque de mémoire.
STM ou non, à générer des informations de masques de mémoire et à les envoyer via le registre 26 au dispositif de mémoire principale 2 en synchronisation avec le transfert de données à stocker dans le circuit d'alignement 9. La figure 2(a) montre une configuration de génération du masque de mémoire.
Dans la configuration opérationnelle de #la figure 2(a) du décodeur de masques de mémoire 35 illustré en figure 1 et dans l'exemple d'utilisation objet de la figure 2(b), une configuration de masque A est utilisée lorsque le nombre des registres restants est 2 ou plus dans la première opération de stockage, une configuration de masque B est utilisée lorsque le nombre de registres restants est 1 dans la première opération de stockage, une configuration de masque C est utilisée lorsque le nombre de registres restants est 2 ou plus dans la deuxième opérations de stockage et suivantes, une configuration de masque D est utilisée lorsque le nombre de registres restants est 1 dans la deuxième opération de stockage et suivantes, une configuration de masque E est utilisée lorsque le nombre de registres restants est Q dans la deuxième opération de stockage et suivantes, et une configuration de masque F est utilisée dans la deuxième opération de stockage et suivante lorsque le nombre de registres restants est passé à 1 dans l'opération de stockage précédente. Dans chacune des configurations de masques, le bit "1" correspond à un octet déjà écrit dans le dispositif de mémoire principale.
La figure 2(b) illustre un nombre des registres devant être déjà stockés pour le stockage et montre comment les configurations de masques de mémoire peuvent être utilisées en fonction de la première adresse du stockage.
Le nombre S des opérations de stockage à effectuer véritablement dans le dispositif de mémoire principale 2 est déterminé par la somme
R=Nb+Ng, c'est-à-dire le nombre total des registres de base et des registres généraux à stocker, et par les trois bits A de poids le plus faible de la première adresse qui désignent la destination dans le dispositif de mémoire principale selon la relation suivante
S = (4R + A + 7)/8 ..,.... (1) où le résultat du calcul est tronqué. Les opérations de stockage pour S fois sont effectuées selon la commande de l'unité de commande d'instruction 1.
R=Nb+Ng, c'est-à-dire le nombre total des registres de base et des registres généraux à stocker, et par les trois bits A de poids le plus faible de la première adresse qui désignent la destination dans le dispositif de mémoire principale selon la relation suivante
S = (4R + A + 7)/8 ..,.... (1) où le résultat du calcul est tronqué. Les opérations de stockage pour S fois sont effectuées selon la commande de l'unité de commande d'instruction 1.
On a donné ci-dessus l'explication des fonctions de chaque partie du dispositif de traitement de données de la figure 1. Ensuite, on décrit le fonctionnement détaillé du dispositif de traitement de données en se référant au diagramme des temps de la figure 3 qui montre une exécution de l'instruction STM donnée à titre d'exemple.
Dans la figure 3, le chiffre 1 désigne l'unité de commande d'instruction 1, comme déjà mentionné ci-dessus. Nb, Ng, Bi et Gi désignent également les informations envoyées dans l'unité de commande d'instruction 1 et récupérées dans le mot d'instruction, respectivement. Les chiffres 23, 22, 17, 16, 11, 12, 7, 8 et 26 désignent les registres 23, 22, 17, 16, Il, 12, 7, 8 et 26 respectivement. to, ta, t2, t3, t, t5, ts, t7 ta et t désignent des cycles de machine. Dans la figure, les codes de registres des registres de base et généraux et les contenus lus dans les registres respectifs sont représentés respectivement par Bj(j=0...7) et GGj(j=0.. .7).
Dans ce mode de réalisation, les registres de base à stocker sont Bs et les cinq suivants et les registres généraux à stocker sont G3 et les quatres suivants. Donc, le nombre total des registres est égal à 9, et les trois bits du poids le plus faible de l'adresse de stockage font 6.
Donc, selon la relation (t), le nombre de l'opération de stockage est 6.
On va expliquer ci-deSsous les opérations dans l'ordre. Au départ, au cours du cycle machine to, l'unité de commande d'instruction 1 décode l'instruction STM et envoie des informations telles que Nb, Ng, Bi et Gi prises dans le mot d'instruction (figure 4). Ensuite, ces informations sont entrées, dans le cycle machine t,, dans les divers registres de telle sorte que le registre 23 reçoit Nb+Ng=9, le registre 22 reçoit Nb=5, le registre 21 reçoit Bi=B5 et le registre 20 reçoit Gi=G3. Ensuite, les contenus des registres 21 et 22 sont conservés tels quels jusqu'à l'achèvement de l'instruction STM.D'autre part, les informations de Nb+Ng et de Nb entrées dans les registres 23 et 22 sont diminuées séquentiellement de 2 jusqu a la fin de l'instruction de STM et sont utilisées pour commander la génération du masque de mémoire et pour commander la désignation de codes de l'unité de registres opérationnels.
Ensuite, lorsque les codes de désignation de l'unité de registres opérationnels 10, qui sont contenus dans les registres 17 et 16, sont attribués pour la première fois durant le cycle machine t2 pour lire les données dans l'unité de registres opérationnels 10, des paires de registres de base sont désignées séquentiellement durant le cycle machine t3 telles que (B51 B6), (B71 Bor. Durant le cycle machine ts, lorsqu'on reconnaît que le nombre du registre restant est 1 selon la valeur du registre 22 = 1, la commande est effectuée durant le temps d'exécution suivant tz pour désigner le registre restant Bî et pour désigner le registre de tête G3 du groupe de registres généraux suivant.Ensuite, les codes de registres sont désignés de manière à lire séquentiellement (G4, G5), (G6, rien).
Après le cycle machine t2, les registres de base et généraux appelés paire par paire dans l'unité de registres opérationnels 10 sont stockés dans l'unité de mémoire principale 2 via les registres 11, 12, 7, 8 et le circuit d'alignement 9 pour achever le stockage en 6 opérations.
D'autre part, en synchronisation avec le transfert de données, le masque de mémoire est généré selon les informations sur le nombre des registres restants envoyé via les registres 24 et 25 dans le registre 23 et selon les informations sur les 3 bits du poids le plus faible de l'adresse de stockage par rapport à la position d'octet des données à stocker alignées par le circuit d'alignement 9.
Comme décrit ci-dessus, selon la présente invention, concernant des groupes de registres composés chacun d'une pluralité de registres de différents types tels que des registres généraux et des registres d'adresse, plusieurs nombres des registres sont désignés par une seule instruction pour exécuter l'instruction permettant de stocker les registres désignés dans le dispositif de mémoire principale (mémoire). La mémoire dispose d'une zone de données de mémorisation qui est un multiple d'une zone de données d'enregistrement de chaque registre de telle sorte que plusieurs registres peuvent être stockés simultanément dans la mémoire par une seule opération de stockage. En outre, un avantage supplémentaire est que le stockage peut se dérouler en continu même lors du passage entre différents types de registres.
<tb> <SEP> valeur <SEP> pour <SEP> première <SEP> valeur <SEP> pour <SEP> seconde
<tb> registre <SEP> 22
<tb> <SEP> Registre <SEP> 171Ragis3re <SEP> 16 <SEP> Registre <SEP> 17 <SEP> Registre <SEP> 16
<tb> <SEP> 2 <SEP> Bi <SEP> nu <SEP> Bi+1 <SEP> valeur <SEP> du <SEP> valeur <SEP> du
<tb> <SEP> (contenu <SEP> du(contenu <SEP> du <SEP> registre <SEP> registre
<tb> <SEP> registre <SEP> 21 <SEP> registre <SEP> 17+2 <SEP> 16+2
<tb> <SEP> 21+1)
<tb> <SEP> =1 <SEP> Bi <SEP> Gi <SEP> valeur <SEP> du <SEP> Gi
<tb> <SEP> (contenu <SEP> du <SEP> registre
<tb> <SEP> 20) <SEP> 17+2 <SEP>
<tb> <SEP> =o <SEP> <SEP> Gi <SEP> Gi+1 <SEP> Gi <SEP> Gi+1
<tb> <SEP> (contenu <SEP> du
<tb> <SEP> registre
<tb> <SEP> 20.+1) <SEP>
<tb> <SEP> O <SEP> valeur <SEP> du <SEP> valeur <SEP> du
<tb> <SEP> registre <SEP> registre
<tb> <SEP> 17+2 <SEP> 16+2
<tb>
<tb> registre <SEP> 22
<tb> <SEP> Registre <SEP> 171Ragis3re <SEP> 16 <SEP> Registre <SEP> 17 <SEP> Registre <SEP> 16
<tb> <SEP> 2 <SEP> Bi <SEP> nu <SEP> Bi+1 <SEP> valeur <SEP> du <SEP> valeur <SEP> du
<tb> <SEP> (contenu <SEP> du(contenu <SEP> du <SEP> registre <SEP> registre
<tb> <SEP> registre <SEP> 21 <SEP> registre <SEP> 17+2 <SEP> 16+2
<tb> <SEP> 21+1)
<tb> <SEP> =1 <SEP> Bi <SEP> Gi <SEP> valeur <SEP> du <SEP> Gi
<tb> <SEP> (contenu <SEP> du <SEP> registre
<tb> <SEP> 20) <SEP> 17+2 <SEP>
<tb> <SEP> =o <SEP> <SEP> Gi <SEP> Gi+1 <SEP> Gi <SEP> Gi+1
<tb> <SEP> (contenu <SEP> du
<tb> <SEP> registre
<tb> <SEP> 20.+1) <SEP>
<tb> <SEP> O <SEP> valeur <SEP> du <SEP> valeur <SEP> du
<tb> <SEP> registre <SEP> registre
<tb> <SEP> 17+2 <SEP> 16+2
<tb>
Claims (1)
1. Dispositif de traitement de données pourvu d'une mémoire et de premier et deuxième groupes de registres, chaque groupe de registres étant composé d'une pluralité de registres numérotés par codes séquentiels et ayant une zone de données d'enregistrement identique, le dispositif pouvant exécuter une opérat#ion de stockage des registres individuels dans la mémoire sur une zone de données de mémorisation donnée qui correspond à un nombre multiple des zones de données d'enregistrement, le dispositif pouvant exécuter une instruction de manière à réaliser simultanément l'opération de stockage d'un nombre donné de registres ayant des codes donnés et choisis parmi le premier groupe de registres, et l'opération de stockage d'un nombre de registres donné ayant des codes donnés et choisis parmi le deuxième groupe de registres, le dispositif de l'invention étant caractérisé en ce qu'il présente un moyen de comptage chargeable avec un certain nombre de registres désignés par l'instruction et appartenant au premier groupe de registres, et fonctionnant à chaque opération de stockage en mémoire pour effectuer la diminution de la valeur fixée du moyen de comptage par un multiple qui est un rapport entre la zone de données de mémorisation et la zone de données d'enregistrement de chaque registre; un troisième groupe de. registres étant composé dudit nombre multiple de registres de codes servant à contenir les codes permettant de désigner chacun des registres choisis dans les premier et deuxième groupes pour réaliser l'opération de stockage en mémoire; et un moyen de commande servant à rentrer, lorsque la valeur du moyen de comptage est égale ou supérieure audit multiple, dans une première opération de stockage après le lancement de l'instruction, un premier code, grâce à des codes continus ultérieurs de chaque registre désigné par l'instruction et appartenant au premier groupe de registre, à chacun des registres de code du troisième groupe de registres de manière séquentielle, et servant à rentrer à chacun des registres de code du troisième groupe de registres, dans l'opération suivante de stockage et les opérations de stockage ultérieures après le lancement de l'instruction, un nouveau contenu qui est une somme du contenu immédiatement antérieur d'un registre de code et dudit multiple, le moyen de commande fonctionnant lorsque la valeur du moyen de comptage est inférieure à celle dudit multiple et égale ou supérieure à zéro pour rentrer, dans une première opération de stockage après le lancement de l'instruction, un premier code et des codes ultérieurs de chacun des registres désignés par l'instruction et appartenant au premier groupe de registres aux premiers registres de codes et suivants du troisième groupe de registre dont un des nombres correspond à la valeur du moyen de comptage et attribuant des premiers codes et suivants de chacun des registres désignés par l'instruction et appartenant au deuxième groupe de registre aux registres de code restants, et pour rentrer, dans l'opération suivante et les opérations ultérieures après le lancement de l'instruction, un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple au premier registre de code et aux codes ultérieurs appartenant au troisième groupe de registres dont un nombre correspond à la valeur du moyen de comptage et attribuant le premier code et aux codes ultérieurs de chacun des registres désignés par l'instruction et appartenant au deuxième groupe de registres aux registres de codes restants, le moyen de commande fonctionnant lorsque la valeur du moyen de commande est négative pour rentrer un nouveau contenu qui est la somme du contenu immédiatement antérieur et dudit multiple à chacun des registres de code du troisième groupe de registres.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63256845A JPH0748179B2 (ja) | 1988-10-12 | 1988-10-12 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2637708A1 true FR2637708A1 (fr) | 1990-04-13 |
FR2637708B1 FR2637708B1 (fr) | 1992-10-23 |
Family
ID=17298212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR8913353A Expired - Fee Related FR2637708B1 (fr) | 1988-10-12 | 1989-10-12 | Dispositif pour le traitement de donnees |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPH0748179B2 (fr) |
FR (1) | FR2637708B1 (fr) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0375950A2 (fr) * | 1988-12-29 | 1990-07-04 | International Business Machines Corporation | Méthode et mise en oeuvre sous forme matérielle d'instructions de transfert de données complexes |
EP0764900A2 (fr) * | 1995-09-22 | 1997-03-26 | Matsushita Electric Industrial Co., Ltd. | Appareil de traitement d'information pour le transfert de données à/d'une pluralité de registres à l'aide d'instructions à mot de longueur courte |
EP0809180A2 (fr) * | 1996-05-22 | 1997-11-26 | Seiko Epson Corporation | Circuit de traitement de données, micro-ordinateur et dispositif électronique |
WO1998057256A1 (fr) * | 1997-06-10 | 1998-12-17 | Arm Limited | Controle d'acces de donnees dans un coprocesseur |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US7035997B1 (en) | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
US7020879B1 (en) | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US7237093B1 (en) | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
US6389449B1 (en) | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
JP2004518183A (ja) | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3916388A (en) * | 1974-05-30 | 1975-10-28 | Ibm | Shifting apparatus for automatic data alignment |
-
1988
- 1988-10-12 JP JP63256845A patent/JPH0748179B2/ja not_active Expired - Lifetime
-
1989
- 1989-10-12 FR FR8913353A patent/FR2637708B1/fr not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3916388A (en) * | 1974-05-30 | 1975-10-28 | Ibm | Shifting apparatus for automatic data alignment |
Non-Patent Citations (2)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 19, no. 1, Juin 1976, NEW YORK US pages 55 - 56; J. W. PLANT, E. R. WASSEL: 'Data Length Calculation Hardware ' * |
IBM TECHNICAL DISCLOSURE BULLETIN. vol. 27, no. 1A, Juin 1976, NEW YORK US pages 95 - 100; W. R. FARELL, R. FRENCH: 'Dynamic Boundary Algorithm for a Data Movement Mechanism ' * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0375950A2 (fr) * | 1988-12-29 | 1990-07-04 | International Business Machines Corporation | Méthode et mise en oeuvre sous forme matérielle d'instructions de transfert de données complexes |
EP0375950A3 (fr) * | 1988-12-29 | 1991-12-18 | International Business Machines Corporation | Méthode et mise en oeuvre sous forme matérielle d'instructions de transfert de données complexes |
EP0764900A2 (fr) * | 1995-09-22 | 1997-03-26 | Matsushita Electric Industrial Co., Ltd. | Appareil de traitement d'information pour le transfert de données à/d'une pluralité de registres à l'aide d'instructions à mot de longueur courte |
EP0764900A3 (fr) * | 1995-09-22 | 2002-11-06 | Matsushita Electric Industrial Co., Ltd. | Appareil de traitement d'information pour le transfert de données à/d'une pluralité de registres à l'aide d'instructions à mot de longueur courte |
EP0809180A2 (fr) * | 1996-05-22 | 1997-11-26 | Seiko Epson Corporation | Circuit de traitement de données, micro-ordinateur et dispositif électronique |
EP0809180A3 (fr) * | 1996-05-22 | 1999-01-07 | Seiko Epson Corporation | Circuit de traitement de données, micro-ordinateur et dispositif électronique |
US6560692B1 (en) | 1996-05-22 | 2003-05-06 | Seiko Epson Corporation | Data processing circuit, microcomputer, and electronic equipment |
WO1998057256A1 (fr) * | 1997-06-10 | 1998-12-17 | Arm Limited | Controle d'acces de donnees dans un coprocesseur |
US6002881A (en) * | 1997-06-10 | 1999-12-14 | Arm Limited | Coprocessor data access control |
Also Published As
Publication number | Publication date |
---|---|
JPH02103630A (ja) | 1990-04-16 |
FR2637708B1 (fr) | 1992-10-23 |
JPH0748179B2 (ja) | 1995-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CH616252A5 (fr) | ||
FR2637708A1 (fr) | Dispositif pour le traitement de donnees | |
EP0558125B1 (fr) | Processeur neuronal à cellules synaptiques reparties | |
FR2568698A1 (fr) | Simulateur logique ayant une capacite de memoire aussi reduite que possible | |
FR2828294A1 (fr) | Procede pour generer une image en memoire morte | |
EP1290554B1 (fr) | Systeme informatique modulaire et procede associe | |
FR2608807A1 (fr) | Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme | |
EP0006478B1 (fr) | Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données | |
EP3503103A1 (fr) | Système comportant une mémoire adaptée à mettre en oeuvre des opérations de calcul | |
EP0439855A1 (fr) | Microcontrôleur pour l'exécution rapide d'un grand nombre d'opérations décomposables en séquences d'opérations de même nature | |
CH621201A5 (fr) | ||
FR2476367A1 (fr) | Appareil et procede d'adressage de memoire | |
EP0251861B1 (fr) | Unité de gestion de mémoire | |
FR2595474A1 (fr) | Dispositif de controle et de verification du fonctionnement de blocs internes a un circuit integre | |
FR2533736A1 (fr) | Unite de gestion de memoire pour un ordinateur numerique | |
EP0520579A2 (fr) | Dispositif de traitement de l'information plus particulièrement adapté à un langage chaîné, du type FORTH notamment | |
EP0845787B1 (fr) | Dispositif de protection après une écriture de page d'une mémoire électriquement programmable | |
EP0112427B1 (fr) | Dispositif de commande logique programmable | |
EP0006485B1 (fr) | Dispositif d'adressage de pages dans un système de traitement de données | |
WO2014195141A1 (fr) | Accelerateur materiel pour la manipulation d'arbres rouges et noirs | |
EP0306357A1 (fr) | Unité de gestion d'accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données | |
BE660817A (fr) | ||
FR2491233A1 (fr) | Systeme de commande de microprogramme | |
FR2824154A1 (fr) | Procede et dispositif pour generer des mots d'instruction pour la commande d'unites fonctionnelles dans un processeur | |
FR2740236A1 (fr) | Dispositif de controle de l'utilisation d'un logiciel, systeme comprenant plusieurs de ces dispositifs et procede de controle correspondant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |