Brevet FR2077935A1 — publié le 19711105

0678i» i 2077935 La présente invention se rapporte à un processeur de données digitales et, plus particulièrement, elle concerne les moyens et le procédé pour atteindre un décalage à droite du contenu des registres dans un processeur de données digitales. 5 Un calculateur de table électronique, dans lequel des nom bres sont placés ou positionnés pâr l'utilisation d'un clavier de chiffres à dix touches, a plusieurs registres qui sont emmagasinés dan" un'registre circulant comportant des registres à aéoalage et à ligne de retard, en série de bit, en série de registre à divi-10 sion dans le temps et en série de digit. Dans une opération de multiplication démarrée par l'instruction depuis le clavier de fonction, le contenu des deux registres qui maintiennent le multiplicateur et la somme du produit partiel est appelé à être décalé vers la droite. Le contenu de tout registre est décalé vers la 15 droite en forçant le signal de -sortie de la ligne à retard à shunter les registres à décalage ayant une capacité de R x B bits où R est le nombre de registres emmagasinés dans le registre circulant et B est le nombre de bits formant un digit. En conséquence, le registre circulant a une ligne à retard et un registre, à décalage long 20 dont la longueur dépend du nombre de registres et du nombre de bits formant un digit. Un tel registre circulant et de tels circuits de commande de recirculation deviennent compliqués et coûteux. La présente invention a pour objet de prévoir un registre circulant ayant des registres à décalage en une longueur inférieure 25 à celle des registres à décalage dans un registre circulant classique pour le nombre donné de registres et a également pour objet de prévoir un nouveau procédé de décalage à droite des registres. C'est un des principaux objets de la présente invention de prévoir des moyens de décalage à droite du contenu des registres 50 pour un processeur de données digitales tel qu'un calculateur de table électronique. C'est un autre objet de la présente invention de prévoir des moyens de décalage à droite d'un processeur de données digitales ayant une construction simple. 55 Ces objets et d'autres encore apparaîtront aux hommes de l'art de la description suivante faite en relation avec les dessins ci-joints dans lesquels : La figure 1 est un organigramme de l'opération de multiplication d'un calculateur de table électrique classique. 40 La figure 2 est un diagramme de blocs des moyens de déca- bad original^ 70 06784 2077935 lage à droite classiques d'un calculateur de table électronique ayant quatre registres dont chacun a une capacité de dix digits. La figure J. est un organigramme de l'opération de multiplication d'un calculateur de tablé électronique selon la présente 5 invention. La figure 4 est un diagramme de blocs des moyens de décalage à droite d'un calculateur de table électronique ayant quatre registres, dont chacun a une capacité de dix digits, selon la présente invention. 10 La figure 5 est un diagramme représentant les impulsions d'horloge dans les calculateurs de table électronique montrés dans les figures 2 et 4. La figure 6 est un diagramme représentant les données dans les registres pour l'explication des opérations des moyens de déca-15 lage à droite du calculateur de table électronique représenté dans la figure 4 selon la présente invention. Pour une compréhension aisée du cadre de la présente invention, on décrira d'abord, avec référence aux figures 1 et 2, les moyens de décalage à droite et le procédé de multiplication clas-20 siques du calculateur de table électronique. La description suivante se référera, pour la convenance, à un calculateur électronique ayant 4 registres dont chacun a une capacité de dix digits et maintient les nombres en code BCD. Le contenu de ces quatre registres est emmagasiné dans un registre circu-25 lant en série de bit, en série de registre à division dans le temps et en série de digit. Dans l'opération de multiplication, le premier registre maintient le multiplicateur, le second registre maintient le multiplicande, le troisième registre maintient le produit et le quatriè-30 me registre est utilisé en tant que registre de mémoire qui ne peut concerner l'opération de multiplication. Normalement, le multiplicande est emmagasiné dans le second registre et le multiplicateur se trouve dans le troisième registre avant l'opération arithmétique. 35 Dans la description suivante, les contenus des premier, second et- troisième registres sont désignés par Â,-B et G, respectivement . Les contenus des premier et second digits de.chaque registre sont désignés par A-l, B-l, C-l, A-2, B-2-et C-2. Les autres contenus de chaque registre sont désignés de la même manière 40 que précédemment „ BAD ORIGINAL 70 06784 ~Z S 2077935 La figure 1 est un organigramme représentant, des phases d'action variées. Chacune de ces phases variées d'action dépend des états du circuit de commande (non représenté) et est gouvernée par le circuit de commande de programme (non représenté). 5 Le circuit de commande de programme et/ou le circuit de commande vérifient si le contenu du dixième digit du second registre, c'est-à-dire B-10, est zéro dans une phase (a) d'action. Si E-10 est zéro, le circuit de commande de programme choisit dans l'ordre les phases d'action (b) et (:}. 10 Dans la phase d'action (b), un compteur K compte en avant par un. Le contenu du compteur K est utilisé pour commander le nombre de fois du produit partiel. Dans la phase (c), le contenu du second registre est décalé vers la gauche de un digit. A la fin de la phase d'action (c), le circuit de commande de programme 15 choisit de nouveau la phase (a") et, ensuite, répète la même opération que celle ci-dessus. En conséquence, le contenu du second registre est décalé vers la gauche de façon répétée jusqu'à ce que la position du digit le plus significatif de ce registre maintienne la donnée non 20 zéro. Lorsque B-10 n'est pas zéro dans la phase d'action (a), le circuit de commande de programme choisit une phase d'action (d) comme phase suivante. Dans la phase d'action (d), un multiplicateur dans le troisième registre est transféré au premier registre et le troisième 25 registre est effacé ou remis à zéro. Ensuite, dans la phase d'action (e), il est vérifié si le contenu du digit le moins significatif du premier registre est zéro. S'il n'est pas zér„>, le circuit de commande de programme choisit une phase d'action (f) comme phase suivante, dans laquelle le contenu du digit le moins signi-30 ficatif du premier registre est soustrait de un. Dans une phase (g) d'action suivante, le contenu du second registre est ajouté au contenu du troisième registre. Après la phase d'action (g), le circuit de commande de programme choisit à nouveau la phase d'action (e). 35 Ainsi, le contenu du second registre est additionné de fa çon répétée au contenu du troisième registre pour un nombre de fois égal au nombre du digit le moins significatif du multiplicateur en bouclant les phases d'action (e), (f) et (g). Si le contenu du digit le moins significatif du premier re-40 gistre est zéro dans la phase d'action (e), le circuit de commande BAD ORIGINALT 70 06784 2077935 de programme choisit les phases d'action (h), (I), (j) et (k) dans l'ordre et choisit à nouveau la phase d'action (e). Dans la phase d'action (h), le contenu du premier registre est décalé vers la droite de un digit. 5 Dans la phase d'action (i), il est vérifié si le contenu de compteur K est zéro. S'il est zéro, le circuit de commande de programme choisit la phase finale de 1'opération arithmétique. S'il n'est pas zéro, le compteur K compte en arrière de un dans la phase d'action (j) et le contenu du troisième registre est décalé 10 vers la droite de un digit dans la phase d'action (k). L'opération de multiplication est effectuée pendant que le circuit de commande de programme est en train de répéter les actions ci-dessus. De plus, le compteur K est utilisé pour décider le nombre de fois du produit partiel et est effacé ou remis à zéro 15 avant l'opération arithmétique lorsque la position de la virgule décimale est zéro. Comme représenté dans la figure 1, les contenus du premier et du troisième registre sont décalés vers la droite dans les phases d'action (h) et (k), respectivement. 20 En se référant à la figure 2, un signal de sortie d'ion re gistre à décalage 1 de série de 144 bits est alimenté à un registre à décalage 3 de 4 bits par l'intermédiaire d'un circuit de porte INHIBITION 2. Le registre à décalage 1 de série de 144 bits peut être habituellement remplacé par une ligne à retard à magnétostric-25 tion. Un signal de sortie du registre à décalage 3 de 4 bits est alimenté aux registres à décalage 4, 5 et 6 de 4 bits qui sont connectés les uns aux autres en tandem. Un signal de sortie du registre à décalage 6 de 4 bits est alimenté à une borne d'entrée du registre à décalage 1 de 144 bits par l'intermédiaire d'un circuit 30 de porte INHIBITION 7 et d'un circuit porte OU 8 de telle façon que les cinq registres à décalage 1, 3> 5 ek 6 forment un registre circulant de 160 bits. En se référant maintenant à la figure 5, CL désigne l'impulsion d'horloge principale qui est alimentée aux registres à dé-35 calage 1, 3, 4, 5 et 6 et, si nécessaire, aux autres circuits. T1, ^2* ^4 efc désignent les impulsions d'horloge spécifiant le temps des signaux de sortie depuis le registre à décalage 1 de 144 bits et correspondent au code "l", au code "2", au code "4" et au code "8" des codes BCD, respectivement. 40 T^, Tg, Tç et T^ désignent les impulsions d'horloge spéciBAD ORIGINAL 70 06784 5 2077935 fiant le temps des signaux de sortie du registre à décalage 1 de 144 bits et correspondent aux contenus des premier, second, troisième et quatrième registres, respectivement. T-l, T-2, T-10 désignent le.s impulsions d'horloge 5 spécifiant le temps des signaux de sortie du registre à décalage 1 de 144 bits et correspondent au premier digit, au second digit et ainsi de suite jusqu'au dixième digit depuis le digit le moins significatif. Comme montré dans la description ci-dessus, le registre 10 circulant dè 160 bits a les premier, second, troisième et quatrième registres qui sont agencés en série de bit, en série de registre à division dans le temps et en série de digit. Selon la phase d'action (h) représentée dans la figure 1, un générateur d'impulsions d'instruction 13 produit une impulsion 15 d'instruction ayant une largeur d'impulsion égale au temps nécessaire pour le registre circulant de 160 bits pour effectuer un cycle. En conséquence, le contenu du premier registre est décalé vers la droite de un digit : au temps de T-A et T^, les circuits de porte INHIBITION 2 et 7 sont fermés et un circuit porte ET 9 est 20 ouvert alors qu'un signal de sortie d'un circuit porte OU 10 devient logiquement "l" par le fait d'un circuit porte ET 11. De façon similaire, dans la phase d'action (k) dans la figure 1, le contenu du troisième registre est commandé par un signal de sortie d'un circuit porte ET 12 au temps de T-l et Tç et est dé-25 calé vers la droite de un digit lorsqu'un générateur 14 d'impulsions d'instruction produit une impulsion d'instruction. Dans l'exemple ci-dessus, l'opération de décalage à droite demande que les registres à décalage de 4 bits (les quatre registres à décalage de 4 bits 3> 5 et 6) soient égaux en nombre aux 30 registres emmagasinés dans le registre circulant. Une augmentation dans les nombres des registres dans le registre circulant requiert une augmentation dans les nombres des registres à décalage de 4 bits ci-dessus. En conséquence, la construction du circuit devient compliquée et coûteuse. 55 De plus, le contenu du troisième registre est requis pour être transféré au premier registre dans la phase d'action (d) pendant l'opération de multiplication selon l'organigramme représenté dans la figure 1, et, en conséquence, les moyens de circuit porte et le circuit de commande sont nécessaires pour une telle exigence. 40 La présente invention élimine les défauts ci-dessus. Un BAD ORJGfNAL 70 06784 2077935 organigramme selon la présente invention est représenté dans la figure 3 et a le même fonctionnement que l'organigramme représents dans.la figure 1. L'organigramme de la figure 3 est caractérisé en ce qde les phases d'action (d), (h) et (k) de la figure 1 sont 5 éliminées et en ce que les phases d'action (1) et (m) sont ajoutées, alors que les autres phases sont les mêmes que celles de la figure 1. Chacune des phases d'action variées dans la figure 3 est dépendante des états d'un circuit de commande (non représenté) et est gouvernée par le circuit de commande de programme (non repré-3 0 senté). - - , La description suivante se référera, pour la convenance, à un calculateur électronique ayant quatre registres dont chacun a uns capacité de. 10 digits et maintient les nombres en code BCD. Les contenus de ces quatre registres sont emmagasinés dans un re-15 gistre circulant en série de bit, en série de registre à division dans le temps et en série de digit. Dans l'opération de multiplication, le premier registre maintient le multiplicateur, le second registre maintient le multiplicande, le troisième registre maintient le produit et le quatriè-20 me registre est utilisé en tant que registre de mémoire qui ne peut concerner l'opération de multiplication. Normalement, le multiplicande est emmagasiné dans le second registre et le multiplicateur se trouve dans le troisième registre avant l'opération arithmétique. 25 Dans la description suivante, les contenus des premier, se cond, et troisième registres sont désignés par A, B et C, respectivement. Les contenus des premier et second digits de chaque registre sont désignés par A-l, B-l, C-l, A-2, B-2 et C-2. Les autres contenus de chaque registre sont représentés de la même maniè-30 re comme ci-dessus. En se.référant à la figure 3, le circuit de commande et/ou le circuit de commande de programme vérifie si le contenu du dixième digit du second registre, c'est-à-dire B-IO, est zéro dans uns phase d'action (a). Lorsque B-0L0 est zéro,, le circuit de com-35 mande de programme choisit les phases (b) et (c) dans l'ordre. Dans, la phase d'action (b), un compteur K compte en avant par un. Le contenu du compteur K est utilisé pour commander le nombre de fois du produit partiel. Dans la phase d'action (c), le contenu du second registre est décale vers la gauche■de un digit. 40 A la fin de la phase d'action (c), le circuit de commande de pro- BAD ORIGINAL 70 06784 7 2077935 graram-2 choisit à nouveau la phase d'action (a) et, ensuite, répète la même opération que celle ci-dessus. Er: conséquence, le contenu du second registre est décalé vers la gauche de façon répétée jusqu'à oe que la position du di-5 git le moins significatif du second registre maintienne la donnée non zéro. Lorsque B-iC n'est pas zéro dans la phase d'action (a), le circuit de commande ie programme choisit la phase d'action (l) comme phase suivante. Dans la phase d'action (1), le contenu du troisième regis-10 tre est transféré au premier registre et, en même temps, le contenu initial du premier registre est transféré au troisième registre par décalage vers la droite de un digit. En conséquence, au commencement de la multiplication, le contenu du troisième registre est transféré au premier registre et le troisième registre est ef-15 facé ou remis à zéro dans la première phase d'action (l) en succession à la phase d'action (a), lorsque le premier registre est effacé ou remis à zéro avant l'opération de multiplication. Ensuite, dans la phase d'action (e), il est vérifié si le contenu du digit le moins significatif du premier registre est 20 zéro. S'il n'est pas zéro, le circuit de commande de programme choisit une phase d'action (f) c crame phase suivante, dans laquelle le contenu du digit le moins significatif du premier registre est soustrait de un. Dans la phase d'action (g), le contenu du second registre est additionné au contenu du troisième registre. Après 25 la phase d'action (g), le circuit de commande de programme choisit à nouveau la phase d'action (e). Ainsi, le contenu du second registre est additionné de façon répétée au contenu du troisième registre pour un nombre de fois égal au nombre du digit le moins significatif du multiplicateur en JC bouclant les phases d'action (e), (f) et (g). Si le contenu du digit le moins significatif du premier registre est zéro dans la phase d'action (e), le circuit de commande de programme choisit les phases d'action (i), (j) et (m) dans l'ordre et choisit à nouveau la phase d'action (1). 35 Dans la phase d'action (i), il est vérifié si le contenu du compteur K est zéro. S'il est zéro, le circuit de commande de programme choisit la phase finale de l'opération arithmétique. S'il n'est pas zéro, le compteur K compte en arrière par un dans la phase d'action 'j). 40 Dans chacune des phases d'action (l) et (m), le contenu du BAD ORIGINAL ' 70 06784 g 2077935 troisième registre est transféré au premier registre et, en même temps, le contenu initial du premier registre est transféré au troisième registre par décalage vers la droite de un digit. En conséquence, les contenus du premier registre et du 5 troisième registre sont décalés vers la droite de un digit par l'intermédiaire des phases d'action (m) et (l). L'opération de multiplication est effectuée alors que le circuit de commande de programme est en train de répéter les actions ci-dessus. De plus, le compteur K est utilisé pour décider 10 le nombre de fois du produit partiel et est effacé ou remis à zéro avant l'opération arithmétique lorsque la position de la virgule décimale est zéro. En se référant à la figure 4, dans laquelle des références identiques désignent des éléments semblables à ceux de la figure 2, 15 un signal de sortie d'un registre 15 à décalage de 152 bits est alimenté aux registres à décalage 3 et 4 de 4 bits qui sont connectés l'un à l'autre en tandem par l'intermédiaire d'un circuit porte INHIBITION 2. Un signal de sortie du registre à décalage 4 de 4 bits est alimenté à une borne d'entrée du registre à décalage 15 20 de 152 bits par l'intermédiaire d'un circuit porte INHIBITION 7 et d'un circuit porte OU 8. Un registre circulant de 160 bits peut être formé en utilisant les registres à décalage 3> 11 et 15. Dans la phase d'action (l) ou (m) représentée dans la figure 4, un générateur 18 d'impulsions d'instruction produit une 25 impulsion d'instruction ayant une largeur d'impulsion égale au temps nécessaire pour le registre circulant de 160 bits pour effectuer un cycle. L'impulsion d'instruction amène le contenu du troisième registre à être transféré au premier registre par l'intermédiaire d'un circuit porte ET 9 ou temps de Tç. Au temps de Tç, 30 les circuits porte INHIBITION 2 et 7 sont fermés par l'intermédiaire d'un circuit porte OU 10 alors qu'un signal de sortie d'un circuit porte ET 17 devient logiquement "1". Au temps de T-l et- T^, le contenu du premier registre est également transféré au troisième registre par l'intermédiaire du circuit porte ET 9 lorsqu'un 35 signal de sortie d'un circuit porte ET 16 devient logiquement "l". Puisque les registres dans le registre circulant sont agencés dans un ordre du premier, second, troisième et quatrième registre, le contenu de chaque digit du premier registre est porté dans le troisième registre aux positions digitales inférieures de un 40 digit à celles du premier registre. Ainsi, le contenu du premier BAD ORIGINAL 70 06784 O 2077935 regirtre er4- tranrf5ré au troisième registre tout c-n décalant vers la droit? -'e un digit. En se référant à la figure S, la référence (A) désigne les. étatr initiaux des registres. Les états dt-s registres varient en (B) après la première opération de la phase d'action (l) ou (m). La.référence (C) désigne les états finaux 1er registres après la seconde opération de la phase d'action (l) ou (m). Ainsi, les contenus des premier et troisième registres sont décalés vers la droite de un digit au même moment. La description ci-dessus explique I'opération de décalage à droite des contenus des premier et second registres. L'opération de décalage à droite des contenus de plus de trois registres peut être effectuée de la même manière. Comme mentionné précédemment, les moyens de décalage à droite de construction simple pour un processeur de données digitales selon la présente invention réduisent les nombres des registres à décalage de 'l oits nécessaires peur les moyens de décalage à droite conventionnels. Une telle réduction peut ne pas être limitée au cas du registre à décalage de - bits. En outre, le- moyens de décalage à droite selon la présente invention ne rendent pas nécessaire 2 'emploi de moyens supplémentaires pour transférer le contenu du troisième registre au premier registre dans l'opération de multiplication. En conséquence, la construction du circuit pour l'opération de multiplication est simplifiée. La présente invention n'est pas limitée aux exemples de réalisation qui vienx.ent d'être décrits, elle est au contraire susceptible de variantes et de modifications qui apparaîtront à l'homme de l'art. BAD ORIGINAL^ 70 06784 13 2077935 REVENDICATIONS 1 - Système de décalage à droite pour un processeur de données digitales, caractérisé en ce qu'il comprend : des moyens de registre à décalage étant un nombre d'un registre circulant qui 5 a plusieurs registres emmagasinés en série de bit, en série de registre à division dans le temps et en série de digit, le contenu d'au moins deux de ces registres étant préparé pour être décalé • vers la droite de un digit; des moyens de circuit porte qui sont couplés aux moyens de registres à décalage et qui transfèrent le 10 eontenu du registre le plus proche de ces au moins deux registres au registre le plus éloigné de ces derniers à une position de digit inférieure de un digit à celle d'un digit normal du registre le plus proche en réduisant la voie au passage de circulation de signaux à travers les moyens de registre à décalage pendant chaque 15 phase d'action de l'opération de décalage à droite; d'autres moyens de circuit porte qui sont couplés aux moyens de registre à décalage et qui ont le contenu de ces au moins deux registres à l'exception du registre le plus proche transféré en avant d'une position de registre dans ces au moins deux registres en réduisant 20 le passage ou voie de circulation de signaux à travers les moyens de registre à décalage pendant chaque phase d'action de l'opération de décalage à droite; des moyens de circuit de commande qui sont couplés aux moyens de circuit porte et aux autres moyens de circuit porte et qui commandent ces deux moyens de circuit porte 25 de façon telle que l'opération de décalage à droite de contenu de ces au moins deux registres ait été effectuée en répétant l'opération de ces deux moyens de circuit porte pendant les phases d'action jusqu'à ce que tous les contenus de ces au moins deux registres soient décalés vers la droite de un digit. 30 2 - Système 'selon la revendication 1, caractérisé en ce que la pluralité de registres se compose de trois registres, c'est-à-dire un registre le plus voisin qui est effacé ou remis à zéro . avant la multiplication et maintient le multiplicateur pendant la multiplication , un registre médian qui maintient le multiplicande 35 et un registre le plus éloigné qui maintient le multiplicateur avant la multiplication' et maintient le produit partiel ou le produit pendant la multiplication, et les moyens de circuit de commandes supportent ou subissent l'opération de transfert du multiplicateur dans le troisième registre vers le premier registre et ensuite 40 l'opération de décalage à droite à la fois du multiplicateur et du produit en répétant deux fois l'opération de ces deux moyens de circuit porte pendant la multiplication, BAD ORIGINAL