FR 2421441 A1 19791026 FR 7809664 A 19780331 La présente invention concerne les moyens de traitement de l'in- formation d1 scrdte dans la technique de calcul numérique ou, plus exactement, les dispositifs de décalage de l'information présentée en code binaire et inscrite dans les registres d'un ordinateur. Ces dispositifs sont des parties très importantes des dispositifs arithmétiques et des unités de traitement de l'information des ordinateurs modernes et peuvent être utilisés en qualité de dispositifs de-décalage dans leurs processeurs, dans leurs voies, dans les dispositifs de commande. Un décalage de l'information présentée en code binaire d'un certain nombre de positions dans les limites du réseau de bits des registres doit être réalisé lors de~ltexécution des opérations sur les données initiales telles que division ou multiplication, normalisation, alignement d'exposant des opérandes. On connais des dispositifs de décalage de l'information comprenant deux registres de m bits chacun. Les sorties de l'un des registres sont reliées aux entrées de l'autre. Le dispositif comprend également une bascule commandée par les signaux d'écriture d'informations dans le premier et le second - registre, des éléments logiques ET, OU, des liaisons inter-registres conçues de telle sorte qu'a chaque passage de l'information d'un registre à l'autre elle soit décalée de K positions binaires. Mais en cas d'un décalage 2k , 3k, 4k,. positions binaires, on est obligé de faire passer I'information 2, 3, 4, ... fois d'un registre à l'autre, ce qui diminue sensiblement la vitesse de fonctionnement du dispositif En outre, les liaisons inter-registres et entre bits sont conçues de telle sorte que l'on ne peut effectuer le décalage que d'un nombre fixe de positions, soit à droite, soit -à gauche. La rapidité du dispositif de décalage de l'information décrit est relativement peu élevée, car sa conception ne permet pas d'opérer en code parallèle. L'entrée et la sortie de l'information s'y fait bit à bit. D'autre part, pour les décalages à- droite et à gauche, il faut avoir des liaisons différentes dans les circuits de transfert réciproque de l'information, ce qui complique la fabrication du dispositif sur la base de circuits intégrés et augmente ses dimensions linéaires. On connaît aussi un dispositif de décalage en une unité de temps (voir le Certificat d'auteur de 1'URUS N0 364965) dont le fonctionnement est plus rapide ; sa conception permet d'opérer aussi bien en code consécutif qu'en code parallèle . Le processus d'entrée et de sortie de l'information y occupe un minimum de temps. Le dispositif de décalage de l'information précité comprend deux registres à grand nombre de bits où les sorties des iles bits de chacun des registres sont reliées aux entrées des bits (i+I) de l'autre registre par des circuits de transfert réciproque de l'information. Chacun des bits du registre constitue un élément de mémoire. Chacun des éléments de mémoire a un nombre entier k d'entrées et de sorties d'information, ainsi que des entrées de commande. Les entrées d'information des éléments de mémoire sont connectées aux lignes de code et leurs entrées de commande aux sorties d'une unité de commande. Le dispositif décrit n'assure le décalage de l'information que d'une position binaire par unité de temps, ce qui, en cas de travail en code parallèle, demande une sérieuse perte de temps quand il faut décaler cette information d'un plus grand nombre de positions. Il est à noter que la présence d'un grand nombre de portes dans chacun des bits du registre pour le décalage d'une position et une augmentation sensible du nombre d'éléments (suivant la loi linéaire}, nécessaires pour réaliser un dispositif pouvant effectuer un décalage de l'information d'un plus grand nombre de positions binaires en une seule unité de temps, entravent une diminution sensible de la rapidité du dispositif. En outre, les circuits de transfert réciproque comportent des liaisons électriques différentes pour le décalage de l'information à droite et à gauche. L'invention vise à réaliser un dispositif de décalage de l'information capable d'effectuer un décalage de l'information de départ dans n'importe quel sens de n, 2n, 3n,... positions binaires en une unité de temps, n étant égal à 2, 3, 4, ..., gracie à une organisation des liaisons entre les registres et entre bits permettant dans ces conditions de diminuer le nombre de passages de l'information d'un registre à l'autre. Le problème est résolu à l'aide d'un dispositif de décalage de l'information comprenant deux registres comportant chacun un grand nombre d'éléments de mémoire, chacun de ces éléments ayant k entrées d'information et k sorties d'information ainsi que des entrées de commande connectées aux sorties d'une unité de commande, des lignes de code étant connectées aux entrées d'information des éléments de mémoire, ce dispositif de décalage étant, suivant l'invention, caractérisé en ce que chacune des lignes de code est connectée aux entrées d'information d'ordre g, (g+l) , (g+2), ... k respectivement des éléments de mémoire d'ordre i, (i+1), (î+2),.., (î+k-l) du premier registre et aux entrées d'information d'ordre g, (g+l), (g+2) ..., k respectivement des éléments de mémoire d'ordre i, (i+n), (i+2n) [i+n(k-D] du deuxième registre, où k est le nombre d'entrées et de sorties d'information de chacun des éléments de mémoire, n = 2, -3, 4,..., g est le numéro a ordre de l'entrez d'information de l'élerrent de FFroire, i est le nmíéro d'ordre de l'elsnt de mémoire de chacun des registres, la première sortie d'information d'un élément de mémoire du premier registre étant raccordée à la première entrée d'information de l'élément de mémoire correspondant du deuxième registre et, dans chacun des éléments de mémoire des deux registres, chaque entrée d'information étant connectée à l'une des sorties d'information. L'organisation des liaisons entre registres et entre bits décrite ci-dessus, dans le dispositif de décalage d'information, permet d'augmenter sensiblement la rapidité de ce dispositif. Le caractère régulier des liaisons citées facilite l'unification des dispositifs pour le décalage de l'information, simplifie leur fabrication, surtout sur la base de circuits intégrés. Ci-dessous l'invention est expliquée par la description d'un exempl e de réalisation, en référence aux dessins annexés, dans lesquels - la Fig. 1 représente un schéma de la structure d'un dispositif de décalage de l'information, selon l'invention, - la Fig. 2 représente le schéma fonctionnel d'un élément de mémoire, selon l'invention. Le dispositif de décalage de l'information comprend des registres 1 et 2. Chacun de ce#s registres est doté d'une multitude d'éléments de mémoire 31, 32, 33 . . . , 3i. Chacun de ces éléments de mémoire 31 . . . J 3i a trois entrées d'information 4, 5, 6 et trois sorties d'information 7, 8, 9. Le nombre d'entrées et de sorties d'information dans chacun des éléments de mémoire 31,..., 3i est inférieur au nombre d'éléments de mémoire dans chacun des registres. Le paramètre n est pris dans la série 2, 3, 4,.. 4 En outre, chaque élément de mémoire 3 possède des entrées de commande 10 connectées aux sorties Il d'une unité de commande 12. Le dispositif de décala ge de l'information comporte aussi des lignes de code 131, 132, 133,... 13i, . . connectées aux entrées d'information 4, 5, 6 des éléments de mémoire 3. Selon l'invention, la ligne de code 131 est connectée aux entrées d'information 4, 5, 6 respectivement dés éléments de mémoire 31 32, 33 du registre 1. La ligne de code 132 est connectée aux entrées d'information 4, 5, 6 respec tivement des éléments de mémoire 32, 33, 34 du registre 1. La ligne de code 133 est connectée aux entrées d'information 4, 5, 6 respectivement des éléments de mémoire 33, 34, 35 du registre 1. Les autres lignes de codage 134, 13i, .. sont connectées au registre de façon analogue. L'élément de mémoire 31 du registre 1 est connecté à neuf éléments de mémoire 312 31+nJ 1+n > 3l+Zn,31+8n du registre 2 de la façon suivante. La sortie d'information 7 de l'élément de mémoire 31 du registre 1 est connectée à l'entrée d'information 4 de l'élément de mémoire 31 du registre 2, à l'entrée d'information 5 de l'élément de mémoire 31+n du registre 2, à l'entrée d'information 6 de llélément de mémoire 31+2n du registre 2, où n = 2, 3, 4, . . . La sortie d'information 8 de l'élement de mémoire 31 du registre 1 est connectée à l'entrée d'information 4 de l'élément de mémoire 31+3n du registre 2, à l'entrée d'information 5 de l'élément de mémoire 31+4n du registre 2, à l'entrée d'information 6 de l'élément de mémoire 31+5n du registre 2. La sortie 9 de l'élément de mémoire 31 du registre 1 est connectée à l'entrée d'information 4 de l'élément de mémoire 31+6n du registre 2, à l'entrée d'information 5 de l'élément de mémoire 31+7n du registre 1, à l'entrée d'information 6 de l'élément de mémoire 31+8n du registre 2. L'élément de mémoire 32 du registre 1 et les éléments de mémoire 32 32+n' 32+2n' ... du registre 2 sont interconnectês de façon analogue, de même que tous les autres éléments de mémoire des deux registres. Dans le dispositif considéré, chacune des entrées d'information d'un élément de mémoire est connectée à l'une des sorties d'information de cet élément. Ainsi, par exemple, dans l'élément de mémoire 31 du registre 1, l'entrée d'information 4 est connectée à la sortie d'information 7, l'entrée d'information 5 est connectée à la sortie d'information 8, l'entrée d'information 6 est connectée à la sortie d'information 9. Il est à noter que les éléments de mémoire 31 des registres 1 et 2 sont connectés entre eux en série grâce aux connexions inter-registres reliant l'entrée d'information 4 de l'élément de mémoire 31 du registre 2 et la sortie d'information 7 de l'élément de mémoire 31 du registre 1.Les autres éléments de mémoire 32 33, 34, ... 3# > ## des registres 1 et 2 ayant les mêmes numéros d'ordre sont connectés entre eux deux à deux de la même façon. Chacun des éléments de mémoire 31 32 33, ...3i comprend une bascule 14 de type D (Fig. 2) ayant des entrees 15 et 16 et une sortie 17. Trois éléments logiques ET 18, 19, 20 sont connectés à l'entrée 15 de la bascule D 14. L'élément ET 18 a deux entrées 4 et 10, l'élément ET 19 a également deux entrées 5 et 10, comme l'élément ET 20 dont les entrées sont 6 et 10. A l'entrée 16 de la bascule D 14 sont aussi connectés trois éléments logiques ET 21, 22, 23. Chacun des éléments 21, 22, 23 a deux entrées 24 et 10. Les entrées 24 desdits éléments logiques sont réunies et connectées à l'entrée 15 de la bascule D 14. A la sortie 17 de la bascule D 14 sont connectés par leurs entrées 25 trois éléments logiques ET 26, 27, 28 dont les entrées 10 sont connectées à l'unité de commande 12. Les sorties 7, 8, 9, respectivement, des éléments ET 26, 27, 28, sont des sorties d'in formation de l'élément de mémoire et sont connectées aux entrées d'information -4, 5, ó de cet élément. Le dispositif de décalage de l'information fonctionne de la façon suivante. Le cycle de fonctionnement du dispositif, indépendamment du sens de décalage de l'information et du nombre de positions binai res dont celle-ci est décalée, comprend deux demi-cycles: l'écri- ture du code de départ dans les registres et la lecture du code décalé par les lignes de code. Les signaux autorisant l'écriture et la lecture arrivent de l'unité de commande 12 sur les entrées de commande 10 des éléments de mémoire 31...3i, ... des registres 1 et 2. Pour décaler l'information à droite d'une position binaire, le code de départ arrivant par les lignes de code 131, ... l3## est inscrit dans les éléments de mémoire 31 3i du registre 1 par les entrées 5 des éléments de mémoire correspondants en présence du signal autorisant l'écriture aux entrées 10 des éléments logiques ET 19 desdits éléments de mémoire. La lecture du code inscrit par les lignes de code 131,... 13i... se fait par les sorties 7 des éléments de mémoire 31,... 3i, ... ... du registre 1 en présence du signal autorisant la lecture sur les entrées 10 des éléments logiques ET 26 des éléments de mémoire précités. Ainsi, l'information en provenance de la ième ligne de code 13 est inscrite dans l'(i + I) ème élément de mémoire 3 du registre 1, tandis que la lecture se fait par la ligne (i + l)ème ligne de code 13. Pour le décalage de l'information à droite de deux positions binaires, le code de départ arrivant par les lignes de code 131,... 13i,... est inscrit dans les éléments de mémoire 31 ...3i, ... du registre I aux entrées 6 des éléments de mémoire correspondants en présence du signal autorisant l'écriture sur les entrées 10 des éléments logiques ET 20 desdits éléments de mémoire. La lecture du code inscrit par les lignes de code 131,...13i,... se fait par les sorties 7 des éléments de mémoire 31,...3i,... du registre I en présence du signal autorisant la lecture aux entrées 10 des élé- ments logiques ET 26 desdits éléments de mémoire.Dans ce cas, l'information de la ieme ligne de code 13 est inscrite dans 1'élé- ment de mémoire 3i + 2 du registre 1, et la lecture se fait par la ligne de code 13i + 2 c'est-à-dire avec un décalage de deux positions binaires vers la droite. Pour le décalage de l'information d'une position binaire à gauche, l'écriture du code de départ arrivant par les lignes de code 131,... 13i, ... se fait dans les éléments de mémoire 31,~~~3i, .. du registre 1 par les entrées 4 en présence du signal autorisant l'écriture sur les entrées 10 des éléments logiques ET 18 des éléments de mémoire précités.La lecture du code inscrit sur les lignes de code 131, ...13i,... se fait par les sorties 8 des éléments de mémoire 31... 3i ... du registre 1 en cas de présence du signal autorisant la lecture sur les entrées 10 des éléments logiques ET 27 de ces éléments de mémoire. Pour le décalage de deux positions binaires vers la gauche, l'écriture du code de départ arrivant par les lignes de code 131,... 13i, ... se fait par les éléments de mémoire 31 . 3i ' du registre I par les entrées 4 en présence du-signal autorisant l'é- criture aux entrées 10 des éléments logiques ET 18 de ces éléments de mémoire. La lecture du code inscrit sur les lignes de code 13 ... 13i,... se fait par les sorties 9 des éléments de mémoire. 311 du duregistre 1 en présence du signal autorisant la lecture aux entrées 10 des éléments logiques ET 28 desdits éléments de mémoire. De cette façon l'information passe de la (i+2) eme ligne de code a la i - ème ligne de code, c'est-a-dire qu'il y a un décalage de deux positions binaires vers la gauche. Pour le décalage -de l'information de n positions binaires vers la droite, le code de départ arrivant par les lignes de code 131, . 13i, ... est inscrit dans les éléments de mémoire du registre 2 par les entrées 5 des éléments de mémoire correspondants 31, ... 3i, ... dudit registre 2. L'écriture se fait de la façon suivante: le code de départ arrivant, par exemple, par la ligne de de code 131 à l'entrée d'information 4 de l'élément de mémoire du registre 1, est transmis à sa sortie d'information 7 et arrive à l'entrée d'information 5 de l'élément de mémoire 31+nen présence du signal autorisant l'écriture à l'entrée 10 de l'élément logique ET 19 de cet élément de mémoire.De façon analogue, le code de registre 1 est appliqué aux entrées 5 des éléments de mémoire 32+n' 33+n' ... 3i+n, ... correspondants du registre 2. La lecture du code inscrit sur les li gnes de code 131, ... 13i, ... se fait par les entrées 7 desdits éléments de mémoire 31+n, 32+n' ... 3i+n' ... du registre 2 en présence de signal autorisant la lecture aux entrées 10 des éléments logiques ET 26 desdits éléments de mémoire. Pour le décalage de 2n positions binaires vers la droite, l'information de départ arrivant par les lignes de code 131, est estenregistrée dans les éléments de mémoire 31+2n' 32+2n' 33+2n' ..., 3i+2n' ... du registre 2 par les entrées 6 de ces éléments. La lecture du code décalé sur les lignes de code se sefait par les sorties 7 desdits éléments de mémoire. Lors du décalage de l'information vers la gauche, l'écriture dans les éléments de mémoire du registre 2 se fait par les entrées 4, tandis que la lecture se fait par les sorties qui sont reliées à la ligne de code 13. avec le décalage correspondant. Lors du décalage de l'information de 3n ou de 4n positions binaires vers la droite, le code est préalablement inscrit dans les éléments de mémoire 31, 32, 33' ... 3i, ... du registre 1, lu par leurs sorties 8 et inscrit dans les éléments de mémoire 31+3n' 32+3n' 33+3n' ... 3i+3n' ... du registre 2 par les entrées 5 de ces éléments de mémoire (décalage de 3n positions bipaires vers la droite), ou bien il est enregistré dans les éléments de mémoire 31+4n' 32+4n' 33+4n' ..~ 3i+4n' ... du registre 2 par les entrées 6 de ces éléments de mémoire -(décalage de 4n positions binaires vers la droite). La lecture du code décalé sur les lignes de code 131, ... I 13i, ... se fait par les sorties 7 des éléments de mémoire correspondants du registre 2. Pour le décalage de l'information de 5n ou de 6n positions binaires vers la droite, le code est préalablement inscrit dans les éléments de mémoire 31 32 33, ..., 3#1 ... du registre 1. Puis on procède à la lecture du code par les sorties 9 desdits éléments de mémoire et à son écriture dans les éléments de mémoire 31+5n' 32+5n' 33+5n' 3i+5n' ... du registre 2 par les entrées 5 de ces éléments de mémoire (décalage de 5n positions vers la droite) ou dans les éléments de mémoire 31+6n' 32+6n 33+6n 3i+6n'## du registre 2 par leurs entrées 6 (décalage de En positions binaires vers la droite). Le décalage de l'information d'un nombre de positions binai res non multiple de n, par exemple le décalage vers la droite de 5n+3 positions binaires, se fait en plusieurs étapes ou unités de temps. Pour effectuer un tel décalage, il suffit d'enregistrer 1 'in- formation dans les éléments de mémoire 31 . -. 3., ... , du regis- tre 1 avec décalage d'une position binaire (c'esF~dire par les entrées 5, puis de lire ce code en utilisant les sorties 9 de ces éléments de mémoire, puis de l'inscrire dans les éléments de mémoire 3i+5n du registre 2 par leurs entrées 5. De cette façon, on obtient un décalage de l'information de. départ de 5n+1 positions binaires vers la droite. On procède ensuite au décalage de 2 posi tions binaires vers la droite comme il a été dit plus haut. On a ainsi insrit le code de départ dans les éléments de mémoire du registre 1 avec un décalage de 5n+3 positions binaires. Le dernier temps du décalage est la lecture de l'information décalée de 5n+3 positions binaires vers la droite à partir des éléments de mémoire 31+(5n+3)' 32+(5n+3) ,3i+(5n+3)' ... du registre 1 pour la faire passer par leurs sorties 7 sur les lignes de code 131, 132, 1331 ... î3i -. connectées à ces sorties 7. Les autres types de décalage d'information se font comme il a été dit ci-dessus au moyen de diverses combinaisons d'opérations d'écriture du code dans les éléments de mémoire 3ides registres I et 2 en utilisant diverses entrées et#diverses sorties desdits éléments de mémoire et d'opérations de lecture. Le dispositif de décalage de l'information peut être réalise en utilisant des éléments logiques habituels, en particulier des éléments logiques à base de circuits intégrés. Le dispositif de décalage de l'information décrit permet d'augmenter la rapidité des dispositifs de traitement de l'information dans les ordinateurs, de diminuer le nombre de types de circuits intégrés et de simplifier leur technologie et leur fabrication. REVENDICATION Dispositif de décalage de l'information, du type comprenant deux registres dotés chacun d'une multitude d'élé- ments de mémoire, chacun de ces éléments de mémoire ayant k entrées d'information et k sortes d'information ainsi que des entrées de commande connectées aux sorties d'une unité de commande, des lignes de code étant connectées aux entrées d'information des éléments de mémoire, ce dispositif de décalage étant caractérisé en ce que la liaison des lignes de code avec les entrées d'information des éléments de mémoire est assurée par la connexion de chacune des lignes de code q,(g+1) ème (g+2)ème,..., kème aux entrées d'information respectivement des iè ème ème éléments de ième, (i+1)ème ,... (i+k-1)ème éléments de mémoire du premier registre et aux gème, (g+1)ème, (q+2)ème,..., kème entrées d'information respectivement des ieme, (i+n) ème, (i+2n)ème,...,[i+n(k-1)ème] éléments de mémoire du deuxième registre, où k est le nombre d'entrées et de sorties d'information de chacun des éléments de mémoire, i est le numéro d'ordre de l'élément de mémoire de la ligne de codage, g est le numéro d'ordre de l'entrée d'information de l'élément de mémoire, n = 2,3,4..., la première sortie d'information (7) d'un élément de mémoire (3) du premier registre (1) étant raccordée à la première entrée d'information (4) de l'élément de mémoire correspondant du deuxieme registre (2) et, dans chacun des éléments de mémoire des deux registres, chaque entrée d'information (4,5,6) étant connectée à l'une des sorties d'information (7,8,9).