Brevet FR2642194A1 — publié le 19900727

APPAREIL DE TRAITEMENT DE L'INFQRMATION ARRIERE-PLAN DE L'INVENTION La présente invention se un appareil de traitement de l'information pour des demandes mémoire en fonctionnement La commande des demandes mémoire être accomplie par exemple , par le système des instructions "MOVE " (terminologie anglo-saxonne bien connue de l'homme de métier et sans traduction bien définie en langue française), par lesquelles les données dans une mémoire , indiquée par un premier -opérande , sont transférées octet par octet vers une position d'enregistrement dans une autre mémoire , indiquée par un second opérande .Dans 1'exécutiqF d'une telle mémoire MOVE , le transfert réel des d#ées a lieu dans une pluralité d'octets en un temps dans le but d'améliorer la performance de l'appareil de traitemefl# de l'information. Dans un tel système , la pu once ou l'absence de- recouvrement destructif entre les d 'eux opérandes est détectée suivant la différence entre l'adresse en tête du premier opérande et celle du second opérande . En réponse è la détection d'un recouvrement d'opérande , une adresse de lecture pour 1 a mémoire de commande est générée . de façon conforme à l'étendue du retard de nçCeuvrement , et l'adresse pour désigner à la mémoire de cR mande de découvrir l'étape suivante à exécuter est modifée en conséquence pour demander un accès mémoire Comme exemple d'un tel système de 'art antérieur référence peut être faite au brevet des Etats-Unis N0 4. 652. 991. qui décrit un système ayant des moyens de calcul pour calculer la différence entre les adresses issues des moyens de mémoire d'adresse du côté origine du transfert et celles issues des moyens de mémoire d'adresse côté réception du transfert pour calculer le retard de reproduction entre l'adresse effective des données du côté origine du transfert et celle des données du caté réception du transfert , et de ce fait , calculer la différence entre les données du côté origine du transfert et les données du côté réception du transfert . Dans cette opération de calcul , la différence d'adresse est calculée par les moyens de calcul après que les adresses sont enregistrées dans les moyens de mémoire d'adresse .Pour cette raison , un appareil de traitement de l'information capable de générer l'adresse des données de l'opér ande par qualification d'adresse telle que qualification de base ou qualification d'index, peut calculer la différence entre les données du côté origine du transfert et les données du côté réception du transfert seulement après soumission des deux données à une qualification d'adresse et élaboration des adresses effectives RESUME DE L'INVENTION Un but de la présente invention est de fournir un appareil de traitement de l'information sans l'inconvénient précédent et capable d'augmenter la vitesse de traitement en détectant la différence entre la donnée du côté origine du transfert et la donnée du côté réception du transert avant de générer les adresses effectives Un appareil selon un aspect de l'invention est un appareil de traitement de l'information à commande à architecture pipeline pour générer une adresse effective chacune pour un premier opérande et un second opérande, et modifier la commande des demandes d'accès mémoire en changeant l'adresse de lecture d'une mémoire de commande en réponse à la présence ou à 1' absence de recouvrement entre les deux opérandes , comprenant :: des moyens de détection d'identité pour détecter la présence ou l'absence d'identité dans le nombre du registre à utiliser dans l'élaboration d'adresse au moment de générer les adresses effectives pour lesdits premier et second opérandes des moyens de détection de différence pour détecter toute différence en déplacement entre lesdits premier et second opérandes ;; et des moyens de modification pour modifier l'adresse de lecture de ladite mémoire de commande en accord avec le résultat de la détection par lesdits moyens de détection de différence si l'identité est détectée par lesdits moyens de détection d'identité RREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de la présente invention deviendront plus apparents à partir de la description détaillée suivante quand elle est prise en conjonction avec les dessins d'accompagnement dans lesquels: La Figure 1 illustre un mode préféré de réalisation de l'invention La Figure 2 illustre un exemple du circuit 41 d'élaboration d'adresse môn'tré en Figure 1 et les circuits l'environnant La Figure 3 est un diagramme pour expliquer le fonctionnement du mode préféré de réalisation de l'invention; et La Figure 4 montre la forme de l'instruction MOVE 11 à utiliser dans la description du mode préféré de réalisation. Dans les dessins , les mêmes numéros de référence désignent respectivement les mêmes éléments constitutifs DESCRIPTION DU MODE PREFERE DE REALISATION En se référant à un mode préféré de réalisation de la présente invention , l'exécution d'une instruction MOVE selon laquelle la donnée dans une mémoire indiquée par un - premier opérande est transférée octet par octet vers une position d'enregistrement dans une autre mémoire indiquée par un second opérande sera décrite à titre d'exemple .Pour faciliter la compréhension , l'instruction "MOUE" à exécuter dans ce mode de réalisation est supposée avoir une longueur d'opérande de 36 octets et un retard d'un octet entre l'adresse en tête al du premier opérande et l'adresse en tête a2 du second opérande , et les mémoires de l'appareil de traitement de l'information utilisées ici sont supposées être accessibles par unités de huit octets chacune En se référant à la Figure 4 t l'instruction "MOUE " appliquée au mode préféré de réalisation de l'invention comprend une zone du code d'opérande OP , des zones du nombre du registre de base BR1 et BR2 , des zones du nombre du registre d'index Ixl et 1x2 , des zones de déplacement D1 et D2 , et une zone de longueur d'opérande L . Les zones 8R1 ,Ixl et D1 sont traitées comme l'opérande 1 , et les zones BR2 , 1x2 et D2 comme l'opérande 2. Le mode de réalisation de l'invention opère sous un système de commande pipeline comprenant une pluralité de systèmes . Parmi ces étapes , une étape (I) du registre d'instruction , une étape (R) d'adressage de registre et une étape (A) d'élaboration d'adresse fonctionnent avec synchronisme entre la ligne de commande et la ligne de données . L'étape (A) est suivie par une étape (OD) de détection de recouvrement et une étape (OA) d'élaboration d'adresse de recouvrement , les deux fonctionnant avec la la ligne de commande seule L'étape I inclut les registres 4 , 5 , 40 et 31, une bascule 38 et les éléments au-dessus d'elle. L'étape R inclut ces registres 4 , 5 , 40 et 31 , les éléments allant de la bascule 38 et des registres 11 à 16 , 42 et 33 à une bascule 43 et les éléments au-dessus d'elle. L'étape A inclut ces registres 11 à 16 , 42 et 43 et les éléments de la bascule 43 à une ALU 19 . L'étape OD inclut les registres 20 à 22 et une ALU 23 . L'étape OA inclut un registre 24 et un circuit d'opération logique 25 Se référant maintenant à la Figure 1 , le mode préféré de réalisation de la présente invention comprend un registre d'instruction 1 pour enregistrer les instructions incluant une instruction "MOVE" ; un sélecteur 3 pour sélectionner l'un ou l'autre du premier ou du second opérande de toute instruction enregistrée dans le registre d'instruction 1 ; un registre 4 pour enregistrer le résultat de la sélection par sélecteur 3 et le contenu de la zone L de longueur d'opérande ; les registres 2 et 5 pour enregistrer les adresses de base et les adresses d'index fournies à partir de l'extérieur ; un fichier de registre de base 6 pour enregistrer et extraire une adresse de base dans une position indiquée par le nombre du registre de base BR1 à partir du registre 4 ; un fichier du registre de base 7 pour enregistrer et extraire une adresse d'index dans une position indiquée par le nombre du registre d'index Ixl à partir du registre 4 ; un additionneur de sauvegarde de report à trois entrées (CSA) 8 pour additionner l'adresse de base du fichier du registre de base 6 , l'adresse d'index du fichier du registre d'index 7 et un déplacement à partir de la zone de déplacement D1 du registre 1 , et fournir une somme locale et un report ; un registre 13 pour enregistrer la somme locale à #partir du CSA à trois entrées 8 ; un registre 14 pour enregistrer le report à partir du CSA 8 à trois entrées ; un registre 15 pour enregistrer la longueur d'opérande à partir du registre 4 ; un sélecteur 29 pour sélectionner un code OP à partir du registre 1 ; une mémoire de commande 30 pour extraire une micro-instruction à partir d'une position indiquée par le contenu sélectionné par le sélecteur 29 ; un registre de micro-instruction 31 pour enregistrer la micro-instruction extraite de la mémoire de commande 30 ; un registre 16 pour enregistrer une partie de la sortie du registre 31 ; un sélecteur 17 capable de sélectionner la somme locale à partir du registre 13 comme instruit par le registre 16 ;; un sélecteur 18 capable de sélectionner le .report à partir du registre 14 comme instruit par le registre 16 ; une unité logique arithmétique. (ALU) 19 pour# générer une adresse effective basée sur la somme locale et le report à partir de ces sélecteurs 17 et. 18 respectivement ; des sélecteurs 9 et 10 pour sélectionner l'adresse effective générée par 1'ALU 19 soit cette fois-ci soit la fois dernière comme instruite par la partie de la sortie du -registre 31 ; des registres 11 et 12 pour enregistrer les sorties des sélecteurs 9 et 10 ; des registres 20 , 21 et 22 pour enregistrer des adresses générées par 1'ALU 19 ; une ALU 23 pour calculer et fournir la différence entre l'adresse effective du premier opérande trouvée la dernière fois et celle du second opérande trouvée cette fois-ci sur la base des adresses à partir des registres 21 et 22 ; un circuit d'opération logique 25 pour détecter tout recouvrement entre les premier et second opérandes sur la base de la différence enregistrée dans le registre 24 et détecter la possibilité d'enregistrer consécutivement après cela les seconds opérandes sans lire les données du premier -opérande ; un registre 26 pour enregistrer la sortie du circuit d'opération locale 25 ; une ALU 39 pour détecter une différence qui est le retard entre le déplacement du premier opérande et celui du second opérande à partir du registre 1 ; un registre 40 pour enregistrer la différence ; un circuit 41 d'élaboration d'adresse de changement pour générer une adresse de changement pour utilisation dans l'information de commande de sortie , à partir du retard entre les premier et second opérandes enregistré dans le registre 40 , répondant audit retard ; un registre d'adresse 42 pour enregistrer l'adresse générée par le circuit 41 d'élaboration d'adresse de changement ; un comparateur 35 pour comparer les nombre#s du registre de base des premier et second opérandes enregis très dans le registre 1 ;; un comparateur 36 pour comparer les nombres du -registre d'index des premier et second opérandes enregistrés dans le registre 1 ; une porte ET 37 pour obtenir l'opération ET des sorties des comparateurs 35 et 36 et détecter la présence ou l'absence de recouvrement entre les opérandes : des bascules 38 et 43 pour enregistrer la sortie de la porte ET 37 ; un circuit 45 d'élaboration d'une adresse - pour -recouvrement de la mémoire de commande pour fournir une adresse de changement au moment du recouvrement d'opérande selon les sorties de la bascule 43 et du registre d'adresse 42 ; un sélecteur 27 pour sélectionner l'une de chacune des sorties du circuit 45 d'élaboration , du registre 26 et de la mémoire de commande 30 en accord avec l'autre sortie de la mémoire de commande 30 ; et un registre 28 pour enregistrer les résultats de la sélection par le sélecteur 27 Dans la suite sera décrit en détail le fonctionnement du mode préféré de réalisation de l'invention avec référence aux dessins .La description suivante concernera à titre d'exemple , l'exécution d'une instruction "MOVE" pour transférer , octet par octet , des données d'une mémoire indiquée par le premier opérande vers une position d'enregistrement dans une autre mémoire indiquée par le second opérande . Pour faciliter la compréhension , l'instruction "MOVE " à exécuter par ce mode de réalisation est supposée avoir une longueur d'opérande de 32 octets et un retard d'un octet entre l'adresse en tête al du premier opérande et l'adresse en tête a2 du second opérande De plus , l'unité d'accès mémoire dans ce mode de réalisation , qui est un appareil de traitement de l'information, est supposée être de huit octets Maintenant seront expliquées les demandes idéales pour l'accès à la mémoire quand les opérandes se recouvrent avec un retard d'un octet quand I'instruction"MOVE" est à exécuter . D'abord il y a une demande de contrôle de lecture/lecture (alR) qui est de façon simultanée une demande de contrôle pour contrôler si oui ou non lire la donnée en tête indiquée par le premier opérande et la donnée elle-même sont disponibles . Ensuite il y a une demande de contrôle d'écriture (a2WC) pour contrôler si oui ou non la partie en tête de la position de mémoire de la donnée indiquée par le second opérande est disponible dans la mémoire centrale .Puis il y a une demande de contrôle de lecture (all tRC) pour contrôler si oui ou non la partie de queue du premier opérande est disponible dans la mémoire centrale . Ensuite il y a la demande de contrôle d'écriture (a2+ lWC) pour contrôler si oui ou non la partie queue de la position de mémoire de la donnée est disponible dans la mémoire centrale .A la ~suite de ces demandes il y a des demandes d'écriture (a2U , a2+8W , a2+ 16W et a2+24W) pour enregistrer la donnée du premier opérande dans la position de mémoire totale de 32 -octets puisque le retard de l'opérande est d'un octet Dans un cas normal ou aucun recouvrement n'est présent , les demandes de mémoire ont lieu usuellement après que celle pour ladite a2+ tWC est faite , dans la séquence al+8R , a2W , al+16R , a2+8W , a1+24# , a2+16W et a2+ 24W .Une opération réelle sera maintenant décrite sur la base des hypothèses précédentes Se référant maintenant aux Figures l et 3 d'abord le mot d'instruction de l'instruction "MOVE" est enregistré dans le registre 1 , qui garde le mot d'instruction , suivi par l'enregistrement du premier opérande OPl et de longueur d'opérande dans le regsitre 4 . A ce moment la mémoire de commande 30 est activée avec le code OP dans la zone du code OP du registre 1 comme l'adresse de commande , et l'information de commande est extraite Une commande de branchement hors de l'information de commande extraite , qui commande le branchement de la mémoire de commande , provoque une zone (NA) d'adresse suivante indiquant l'adresse de lecture de I'étape suivante dans un cas normal , pour être enregistrée dans le registre 28 . Simultanément à l'action ci-avant mentionnée nombres de registre de base des premier et second opérandes dans le registre 1 sont comparés l'un à l'autre par le comparateur 35 , et de même sont comparés les nombres de registre d'index des mêmes par le comparateur 36 .Les résultats des comparaisons sont traités en opération ET par la porte ET 37 , et le résultat de la détection d'un recouvrement d'opérande. est enregistré dans le registre 38 En même temps , la différence entre les zones de déplacement des premier et second opérandes est chiffrée par un additionneur à deux entrées 39 . Dans ce mode de réalisation , il est supposé que les zones du nombre du registre de base sont identiques l'une à l'autre et il en est de même des zones du nombre du registre d'index tandis que la différence entre les zones de déplacement est de un octet Ensuite , comme indiqué par le nombre du registre de base et le nombre du registre d'index du premier opérande entré dans le registre 4 , l'information générant l'adresse est extraite du fichier du registre de base 6 et du fichier du registre d'index 7 et , ensemble avec le déplacement , est introduite dans le CSA8 à trois entrées , qui génère la somme locale et le report et les enregistre dans les registres 13 et 14 En dehors du retard entre les premier et second opérandes enregistré dans le re gistre 40 est générée par le circuit 41 une adresse de changement pour extraire l'information de commande répondant audit retard , et cette adresse est enregistrée dans le registre 42 . Une micro-instruction pour générer l'adresse en tête al du premier opérande extraite dans le registre 31 , est fournie à et décodée par un décodeur 32 pour générer les codes pour les demandes d'accès aux mémoires . A l'étape I , simultanément à l'accomplissement du traitement précédent à l'étape R , le second opérande OP2 est enregistré dans le registre 4 , et la -micro-ins truction suivante est extraite de la mémoire de commande 30 par la zone NA enregistrée dans le registre 28 , et enregistrée dans le registre 31 .D e cette façon , l'infor- motion générant l'adresse pour A1R , a2WE et Ai + BRC est successivement extraite de ia mémoire de commande30, et les adresses effectives sont générées pour dem ander des accès aux mémoires Alors , simultanément avec la lecture de l'information de commande pour aî+t l'adresse de l'étape ayant l'adresse d'enregistrement pour l'inform ation de commànde al+8R de aZiQWC , à une demande d'accès usuelle est envoyée au registre 28 . Ici , une adresse de changement de lecture pour la mémoire de commande , générée par le circuit 41 quand l'instruction "MOVE" implique un recouvrement , est envoyée du registre 42 au registre 28. A ce point , dans ce mode préféré de réalisation le recouvrement des opérandes est déecté à partir des résultats des comparateurs 35 et 36 et de l'additionneur 39. Par conséquent , le sélecteur 27 sélectionne la sortie du registre 42 et l'enregistre dans le registre 28 . De plus -, l'information de commande indiquée par ladite adresse a une adresse NA indiquant la zone dans laquelle enregistrer l'information de commande pour a2+QWC et celle pour alW Ainsi ,dans ce mode de réalisation de l'invention, l'adresse de lecture pour la mémoire .de commande 30 peut être déconnectée du programme usuel en détectant l'identité entre les nombres du registre de base et entre les nombres du registre d'index du premier opérande OPI et du second opérande OP2 et la différence entre les zones de déplacement des mêmes .Cette commutation rend possible l'émission successive des demandes idéales d'accès aux mémoires quand il y a un recouvrement entre opérandes La suite décrira en détail un exemple spécifique du circuit générant l'adresse 41 , qui est un des traits caractéristiques de la présente invention , et son fonctionnement Se référant à la FIgure 2 , il est supposé dans la description suivante que la commutation vers le traitement de haute vitesse montré en Figure 3 a lieu quand le retard de recouvrement entre les zones Dl et D2 qui sont des demandes d'élaboration pour les adresses de tête al et a2 des premier et second opérandes , respectivement , est d'un octet , de deux octets ou de quatre octets Il est supposé que I'ALU 39 traite la soustraction de la zone D2 de la zone D1 , et le solde est enregistré d-ns le registre 40 . Alors la valeur du registre 40 est contrôlée par les comparateurs A , B et C pour l'identité avec 1 g 2 et 4 . Si la sortie de l'un quelconque des comparateurs arrive à être "1" à une porte OU D , la porte OU D sortira "1" De plus , l'identité est détectée par les comparateurs 35 et 36 montrés en Figure 1 , et "t" , indiquant l'identité , est mis en place dans le registre 38 . En outre , l'adresse de la mémoire de commande pour le recouvrement est générée par la sortie du registre ayant reçu ladite valeur à un temps de-T cycles et le circuit 45 d'élaboration de l'adresse de la mémoire de commande pour générer l'adresse de la mémoire de commande pour le recouvrement, et est transmise vers la section la moins significative du sélecteur 27 . Dans ce mode de réalisation de l'invention , le circuit 45 d'élaboration de l'adresse de la mémoire de commande comprend une porte ET 44 .Le sélecteur 27 extrait la micro-instruction pour l'étape suivante en réponse à la NA indiquée par la mémoire de commande 30. Dans la mémoire de commande , il y a une zone qui rendeffective la sortie de la porte ET 44 , et la sortie de la porte ET 44 est sélectionnée ici quand ladite zone est "1" . Si , par exemple , la NA est XXXXO et le retard de duplication entre les zones D1 et D2 n'est pas 1 , 2 ou 4 , l'adresse de la mémoire de commande 30 sera XXXXO , ou elle sera XXXX1 si le retard est 1 , 2 ou 4 . Maintenant , un micro-programme dans la mémoire de commande 30 peut être mis en place si en avance que les valeurs NA montrées en Figure 3 peuvent être successivement enregistrées dans les sections suivant la section d'adresse XXXXI indiquant la position de mémoire de la mémoire de commande 30 Accessoirement , les registres 43 et 44 sont prévus pour harmoniser la synchronisation La présente invention remarque le haut degré de corrélation entre recouvrement d'opérandes et l'identité entre les nombres de registre des opérandes utilisés au moment de l'élaboration de l'adresse effective , Un des traits caractéristiques de l'invention consiste dans la détection ,si exécutant une opération telle qu'une instruction "MOVE" qui modifie les demandes d'accès aux mémoires suivant la présence ou 1 absence de duplication entre deux opérandes , de la présence ou l'absence d'identité entre les nombres des registres qui sont utilisés en générant les adresses effectives des premier et second opérandes et y au même moment , dans la détection de la différence entre les zones de déplacement des premier et second opérandes . Selon la détection de l'identité entre les nombres de registres et de la différence entre les zones de déplacement , la présence ou l'absence du recouvrement des opérandes et le retard du recouvrement , s'il existe , peut -être détecté à haute vitesse . Par conséquent , les demandes d'accès mémoire non utilisées dans les cas spécifiques de recouvrement d'opérandes peuvent être distribuées , aboutissant à l'avantage d'un traitement plus rapide Une autre caractéristique de l'invention repose dans le contrôle , avant l'élaboration des adresses effectives, de l'identité entre les nombres des registres des registres qualifiant l'adresse , qui sont les éléments d'élaboration de l'adresse effective pour les données du côté origine du transfert et les données du côté réception du transfert Ainsi , en traitant cette identité du nombre du registre comme la détection d'une différence entre les données du côté origine du transfert et les données du côté réception du transfert , l'adresse pour désigner à la mémoire de commande de désigner ltétape suivante à exécuter est changée avant l'élaboration des adresses effectives , et les accès mémoire sont demandés sur cette base , aboutissant dans la réalisation d'un traitement de l'information plus rapide. REVENDICATION Un appareil de traitement de l'information à commande pipeline pour générer une adresse effective chacune pour un premier opérande et un second opérande , et changer la commande des demandes pour accès à la mémoire en changeant l'adresse de lecture d'une mémoire de commande en réponse à la présence ou à l'absence de recouvrement entre lesdits premier et second opérandes , comprenant des moyens de détection d'identité pour détecter la présence ou l'absence d'identité dans le nombre du registre à utiliser dans l'élaboration d'adresse au moment de générer les adresses effectives pour lesdits premier et second opérandes des moyens de détection de différence pour détecter toute différence en déplacement entre lesdits premier et second opérandes ; ; et des moyens de changement pour changer l'adresse de lecture de ladite mémoire de commande en accord avec le résultat de la détection par lesdits moyens de détection de différence si l'identité est détectée par lesdits moyens de détection d'identité