Brevet FR2449927A1 — publié le 19800919

La présente invention concerne un dispositif de manipulation de données numériques, destiné plus particulierement a être incorporé dans un systeme de traitement de données numériques. Outre les opérations arithmétiques et logiques classiques, les calculateurs tant universels que spécialisés doivent réaliser différentes opérations de manipulation de données. Parmi ces opérations, on peut citer a titre d'exemple, le décalage des éléments binaires d'un mot d'un certain nombre de positions et la mise en l'état 1 ou en l'état O de certains éléments binaires, soit pour isoler une tranche a l'intérieur d'un mot, soit pour créer des constantes.On connaît dans l'art antérieur des dispositifs réalisant des décalages des éléments binaires d'un mot et des dispositifs permettant d'isoler une tranche d'éléments binaires a l'intérieur d'un mot, mais ces dispositifs sont en général spécifiques a une fonction donnée, telles les fonctions de décalage, de génération de masques, etc., et le plus souvent sont de structure complexe et prennent un temps non négligeable pour exécuter leur fonction. Par ailleurs, dans un systeme utilisant une logique microprogrammée, et lorsque le traitement nécessite l'utilisation de constantes, celles-ci sont généralement incluses dans des micro-instructions.Il est alors nécessaire de disposer dans la microinstruction d'un nombre d'éléments binaires égal au format du mot traité par le systeme et cela présente des inconvénients différents selon le type de réalisation choisi. Ainsi, Si lesdits éléments binaires ne sont utilisés que pour la création de constantes, leur nombre est grand par rapport au nombre de constantes utiles (dans le cas par exemple d'un systeme a mots de seize éléments binaires, il est possible de créer 216 constantes différentes). Par contre, si lesdits éléments binaires ne sont pas spécialisés et peuvent avoir une autre fonction, cette fonction n'est plus utilisable lorsque la micro-instruction sert a créer une constante. Aussi, un objet de la présente invention est un dispositif de manipulation de données numériques apte a réaliser des fonctions variées en un minimum de temps et en nécessitant un nombre réduit de circuits. Un autre objet de l'invention est un dispositif de manipulation de données numériques permettant d'effectuer des décalages d'un nombre de positions quelconque en même temps que des opérations de masquage et de créer des constantes. Un autre objet de l'invention est un dispositif de manipulation de données numériques pour un systeme utilisant une logique microprogrammée et permettant de créer des constantes en évitant les inconvénients mentionnés cidessus. Selon une caractéristique de l'invention, le dispositif de manipulation de données, destiné a être incorporé a un système de traitement de données numériques et permettant d'effectuer sur une donnée les fonctions de décalage et de masquage ou de créer des constantes, comporte - un réseau de circuits de décalage a deux étages - une premiere mémoire dont la sortie, constituant un masque d'un premier type, peut être mise en "OU" avec la sortie dudit réseau - une deuxième mémoire dont la sortie, constituant un masque d'un deuxième type, peut être mise en "ET" avec la sortie dudit réseau - un premier registre pour mémoriser le nombre de pas de décalage à effectuer - un deuxième registre pour mémoriser la position d'un élément binaire ; et - un troisième registre pour mémoriser, soit le type de décalage a effectuer, soit une information de longueur de tranche. Selon une autre caractéristique de l'invention, la fonction de création de constantes est réalisée par combinaison des masques du premier type et du deuxième type. D'autres objets, caractéristiques et avantages de la présente invention apparaîtront plus clairement a la lecture de la description suivante d'un exemple de réalisation particulier, ladite description étant faite a titre purement illustratif et en relation avec les dessins joints dans lesquels - la figure 1 montre un schéma général du dispositif de manipulation de données selon l'invention ; et - la figure 2 montre un exemple de réalisation des circuits de décalage, de masquage et de génération de constantes du dispositif de l'invention. Le dispositif de manipulation de données selon l'invention est conçu pour réaliser trois types de fonction. La première fonction est la fonction de décalage, c'est-à-dire que la donnée appliquée a l'entrée peut être décalée circulairement a gauche ou a droite d'un nombre quelconque de positions. La deuxième fonction réalisable est la constitution de masques. Les masques possibles sont de deux types : l'un correspondant aux masques qui doivent être mis en "0U" avec la donnée appliquée et l'autre correspondant aux masques qui doivent être mis en "ET" avec la donnée appliquée.La troisième fonction è réaliser''est la génération de constantes pour laquelle le dispositif de l'invention utilise une combinaison de deux masques de type différent ; le premier forçant tous les éléments binaires d'un mot dans l'état 1 et le deuxième effectuant une remise à l'état 0 des éléments binaires désirés. Selon une caractéristique de l'invention et comme cela apparaît clairement à la figure 1, ces trois fonctions précédemment décrites sont réalisées par les mêmes circuits. Les données d'entrée DI peuvent être décalées par les circuits 100 et 200. Des mémoires mortes 1 et 2 servent à la génération des masques qui peuvent être mis en "OU" ou en "ET" avec la donnée, éventuellement décalée, grâce aux circuits 300 et 400 respectivement. Ces différents circuits sont commandés par divers signaux de commande qui peuvent provenir du décodage des instructions de l'unité de commande (non représentée) à laquelle le dispositif de l'invention peut être associé. Trois registres 61, 71 et 81 servent à l'exécution des fonctions mentionnées ci-dessus.Le registre 61 ou compteur de décalage sert à mémoriser le nombre de pas de décalage et il peut être chargé de plusieurs manières comme il sera vu plus loin. Le registre 71 sert à mémoriser le type de décalage à opérer ou une information de longueur de tranche. Le registre 81 sert à mémoriser une position lorsqu'un traitement au niveau d'une tranche ou au niveau d'un élément binaire est requis. Le schéma de la figure 1 montre encore des circuits de sélection de données 62 et 82, des circuits d'adressage 4 et 5 des mémoires mortes 1 et 2 respectivement et un circuit de transcodage 3. La figure 2 montre plus en détail certains des circuits de la figure 1. On retrouve le circuit de transcodage 3, les circuits de décalage 100 et 200 constitués respectivement par les circuits 101 à 132 et par les circuits 201 à 232 et le circuit 400 constitué par les portes 401 à 432. Le circuit de transcodage 3 consiste en une mémoire morte qui reçoit les signaux de commande X1 à X4 et l'information de décalage (représentée par les éléments binaires G1 à G5) et délivre les signaux de commande des circuits de décalage soient SEOO et SEOl pour les circuits 101 à 132 et SEIO à SE12 pour les circuits 201 à 232.Les circuits de décalage consistent en deux étages de multiplexeurs, le premier étage comprenant les multiplexeurs à quatre entrées 101 à 132 et réalisant des décalages par pas de huit éléments binaires et le deu xième etage comprenant les multiplexeurs à huit entrées 201 à 232 et réalisant des décalages par pas de un. Les masques du premier type, c'est-à-dire ceux qui doivent être mise en "OU" avec la donnée sont appliqués directement au niveau du deuxième étage de multiplexeurs et leurs éléments binaires MKOO à M1Ç31 agissent sur les entrées d'inhibition des multiplexeurs 201 à 232 respectivement de manière à faire apparaître en sortie soit l'état de l'entrée déterminée par les signaux de commande SElO à SE12, soit un état 1.Les masques du deuxième type dont les éléments binaires sont MZ00 à MZ31 sont mis en "ET" grâce aux portes 401 à 432, avec les éléments binaires de sortie du deuxième étage de multiplexeurs. Les signaux de sortie DS00 à DS31 desdites portes 401 à 432 forment la donnée de sortie DS du dispositif de l'invention. On va maintenant étudier plus en détail le fonctionnement du dispositif de l'invention et, en premier lieu, des circuits de la figure 2. La mémoire morte 3 réalise un transcodage entre les signau#x d'entrée G1 à G5 et Xl à X4 et les signaux de commande des multiplexeurs SE00 et SEOI d'une part et SEIO à SE12 d'autre part. Les signaux G1 à G5 représentent le contenu du registre 61 ou compteur de décalage et les signaux Xi à X4 définissent le décalage à opérer conformément au tableau 1. TABLEAU 1 X1 à X4 Valeur du décalage O O 1 31 2 30 3 27 4 24 5 8 6 5 7 4 8 1 9 32 - (G) A 24 - (G) B 16 + (G) C 8 + (G) D (G) E F TABLEAU 2 SEOO SEO1 DBOO 0 O DIOO 0 1 DI08 1 0 DI16 1 1 DI24 TABLEAU 3 SE10 à SE12 MK00 W XXX 1 I 0 0 0 0 DBOO 0 0 1 0 DB01 0 1 0 0 DB02 O 1 1 0. DB03 1 0 0 0 DB04 1 0 1 O DB05 1 1 0 O DB06 1 11 0 DB07 Dans ce tableau, la première colonne indique la valeur hexadécimale que constituent les éléments binaires Xi à X4 et la deuxième colonne indique la valeur correspondante du décalage, (G) représentant le contenu du registre 61 donné par les signaux G1 à G5. Le premier étage de multiplexeurs peut effectuer des décalages par saut de huit éléments binaires et il comporte trente-deux multiplexeurs à quatre entrées chacun. Les premières entrées des multiplexeurs reçoivent dans l'ordre les éléments binaires DIOO à D131 de la donnée DI, les deuxièmes en trées reçoivent la même donnée DI décalée de huit positions soient, dans l'ordre, les éléments binaires DI08 à DI31 et DIOO à DI07, les troisièmes entrees reçoivent la donnée DI décalée de seize positions, soient les éléments binaires DI16 à DI15 et les quatrièmes entrées reçoivent la donnée DI décalée de vingt-quatre positions, soient les éléments binaires DI24 à DI23.Chaque multiplexeur reçoit deux signaux de commande SEOO et SEOI qui permettent de sélectionner l'une des quatre entrées et par suite l'une des quatre valeurs de décalage : zéro, huit, seize ou vingt-quatre positions. La sortie du premier étage représente un mot de trente-deux éléments binaires qui sont appliqués à l'entrée du deuxième étage de multiplexeurs. Ce deuxième étage comprend trente-deux multiplexeurs 201 è 232 ayant chacun huit entrées et est prévu pour opérer un décalage d'un nombre quelconque de positions compris entre un et sept. Dans ce but, les éléments binaires DBOO à DB31 de sortie du premier étage sont appliqués sur les entrées des multiplexeurs 201 à 232 de la manière suivante.Le premier multiplexeur 201 reçoit dans l'ordre les éléments binaires DBOO à DB07, le deuxième multiplexeur 202 reçoit dans l'ordre les éléments binaires DB01 à DB08 et ainsi de suite jusqu'au dernier multiplexeur 232 qui reçoit dans l'ordre les éléments binaires DB31 et DBOO à DB06. Ainsi, le deuxième étage de multiplexeurs 201 à 232 peut opérer sur la donnée, constituée par les éléments binaires DBOO à DB31, un décalage compris entre zéro et sept positions. L'ampleur du décalage est déterminée par les signaux SEIO à SE12 obtenus en sortie de la mémoire 3. Ces signaux de sortie sont fonction des signaux d'entrée X1 à X4.Les tableaux 1, 2 et 3 donnent, à titre d'exemple, d'une part la correspondance entre la valeur hexadécimale représentée par les signaux X1 à X4 et la valeur du décalage global et d'autre part la réponse des multiplexeurs des premier et deuxième étages aux signaux de commande SEOO et SEOI et SEIO à SE12 respectivement. Le tableau 3 montre que, quel que soit l'état des entrées de commande SElO à SE12, l'état de la sortie W des multiplexeurs du deuxième étage peut être mise à 1 par l'élément binaire correspondant (soit MKOO pour le multiplexeur 201).Les masques du premier type MK fournis par la mémoire morte I sont donc appliqués directement au niveau du deuxième étage de multiplexeurs, alors que les masques du deuxième type MZ, fournis par la mémoire morte 2, sont appliqués sur la sortie dudit deuxième étage au moyen des portes 401 à 432. On comprend aisément que les circuits décrits précédemment permettent d'assurer la fonction de génération de constantes mentionnées ci-dessus. En effet, on a vu que les masques du premier type MK permettent le positionnement autoritaire dans l'état 1 des sorties des multiplexeurs du deuxième étage qui constituent les premières entrées des portes 401 à 432. Or les portes 401 à 432 sont du type "NON-ET" dont on sait que, si l'une des deux entrées est dans l'état i, la sortie est dans l'état inverse de celui de la deuxième entrée.Ainsi donc, pour créer une constante quelconque, il suffit de commander la mise à 1 de toutes les sorties des multiplexeurs 201 à 232 en appliquant un masque MK dont tous les éléments binaires sont à i puis d'appliquer à l'entrée des portes 401 à 432 un masque MZ comportant des éléments binaires à 1 aux positions correspondant à l'état O de la constante à créer et des éléments binaires à O aux autres positions. Si l'on se reporte au schéma de la figure 1, le transfert des mots de donnée à trente-deux éléments binaires est représenté par une flèche à traits parallèles, le transfert de signaux de commande fournis par la donnée ou élaborés à partir du contenu des registres 51, 71 et 81 est représenté par une flèche en trait plein et le transfert des signaux de commande, provenant du décodage d'instructions de l'unité de traitement associée au dispositif de l'invention, est représenté par une flèche en pointillés. Le détail des dif fervents signaux de commande est de peu d'importance pour comprendre le fonctionnement du dispositif de traitement de données selon la présente invention. Il suffit de savoir que les registres 61 et 81 peuvent être chargés de différentes manières par l'unité de traitement associée et qu'il est donc prévu des circuits de sélection 62 et 82 en amont desdits registres 61 et 81. Par ailleurs, on a vu que les mémoires 1 et 2 nécessaires à la génération de masques du premier et du deuxième type sont adressées par des signaux de commande fournis par l'unité de traitement associée et par tout ou partie du contenu des registres 61, 71 et 81. Il est donc prévu un circuit de logique d'adresse 4 ou 5 pour chacune des mémoires 1 et 2 respectivement. Dans le cadre d'un système utilisant une logique microprogrammée, la solution choisie permet alors de réduire au minimum le nombre des éléments binaires de micro-instruction indispensables au contrôle du dispositif de l'invention. Bien que la présente invention ait été décrite dans le cadre d'un exemple de réalisation particulier, il est clair cependant qu'elle n'est pas limitée audit exemple et qu'elle est susceptible de modifications ou de variantes sans sortir de son domaine. RExENDI > NTIoNs 1. Dispositif de manipulation de données numériques, destiné à être incorporé à un système de traitement de données numériques et permettant d'effectuer sur une donnée les fonctions de décalage et/ou de masquage et/ou de créer des constantes, ledit dispositif étant caractérisé en ce qu'il com porte - un réseau de circuits de décalage à deux étages - une première mémoire dont la sortie, constituant un masque d'un premier type, peut être mise en "OU" avec la sortie dudit réseau ; - une deuxième mémoire dont la sortie, constituant un masque d'un deuxième type, peut être mise en "ET" avec la sortie dudit réseau - un premier registre pour mémoriser le nombre de pas de décalage à effectuer; - un deuxième registre pour mémoriser la position d'un élément binaire ; et - un troisième registre pour mémoriser soit le type de décalage à effectuer, soit une information de longueur de tranche. 2. Dispositif de manipulation de données selon la revendication 1, caractérisé en ce que ledit réseau est constitué d'un premier étage de multiplexeurs à quatre entrées pouvant effectuer des décalages de zéro, huit, seize ou vingt-quatre positions et d'un deuxième étage de multiplexeurs à huit en trées pouvant effectuer des décalages compris entre zéro et sept positions. 3. Dispositif de manipulation de- données selon la revendication 1 ou la revendication 2, caractérisé en ce que lesdits premier et deuxième étages du réseau de circuits de décalage sont commandés par les signaux de sortie d'un circuit de transcodage qui reçoit à l'entrée le contenu dudit premier registre et des signaux de commande fournis par ladite unité de traitement. 4. Dispositif de manipulation de données selon la revendication 3, caractérisé en ce que ledit circuit de transcodage est constituéparune mémoire morte. 5. Dispositif de manipulation de données selon l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdites première et deuxième mémoires reçoivent des adresses qui sont des combinaisons de tout ou partie du contenu desdits premier, deuxième et troisième registres et de signaux de commande fournis par ladite unité de traitement. 6. Dispositif de manipulation de données selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite fonction de création de constantes est réalisée par combinaison des#masques du premier type et du deuxième type.