Brevet FR2846765A1 — publié le 20040507

REGISTRE TAMPON DE SORTIE, CIRCUIT ELECTRONIQUE ET PROCEDE DE DELIVRANCE DE SIGNAUX L'UTILISANT La présente invention se rapporte à un registre tampon de sortie, et trouve des applications, notamment, dans les systèmes électroniques comprenant un bus système et des modules fonctionnels reliés au bus système par l'intermédiaire de ports de communication appropriés, en particulier les microprocesseurs. Un registre tampon de sortie est un circuit qui est destiné à être disposé en sortie d'un module fonctionnel, en amont d'un port de communication de type maître qui le relie au bus. Il a pour fonction de délivrer des signaux de sortie du module fonctionnel. Selon une règle de conception connue et appliquée par l'Homme du métier, on fait en sorte que la totalité des signaux de sortie soit délivrée sur les sorties de données respectives de bascules. Ceci permet de limiter la latence introduite en sortie. La micro-architecture d'un registre tampon de sortie connu, conforme 15 au schéma la figure 1, respecte cette règle de conception. Le registre tampon de sortie comprend un unique registre à bascules 436 ou registre d'entrée, et un multiplexeur d'entrée 435. Le registre 436 comprend N bascules, ayant chacune une entrée de données, une sortie de données et une entrée d'activation. Le multiplexeur 435 20 comprend N premières entrées 435a, N secondes entrées 435b, N sorties 435c et une entrée de sélection 435d. Les N entrées 435a du multiplexeur reçoivent respectivement les N signaux d'entrées datain. Les N sorties 435c du multiplexeur sont respectivement reliées aux N entrées de données du registre 436. Les N 25 sorties de données 436b des bascules respectives du registre 436 délivrent N signaux de sortie dataout, respectivement. Ces N signaux de sortie sont en outre délivrés sur les N entrées 435b du multiplexeur 435. Les N entrées d'activation 436c des bascules respectives du registre 436 reçoivent un signal d'horloge CLK. En outre, un signal update_data est reçu sur l'entrée de sélection 435d du multiplexeur 435. Ce signal est un signal d'activation qui est par exemple délivré par une machine d'état. Le registre 436 en combinaison avec le multiplexeur 435 permet de verrouiller les valeurs des signaux de sortie lorsque le signal update_data est à 0. Cet art antérieur respecte la règle de conception précitée, puisque les signaux de sortie sont délivrés par des sorties de données de bascules. Par contre, le signal updatedata attaque N entrées d'activation, à savoir les entrées 435d des N bascules du multiplexeur 435. Ceci nécessite 10 souvent d'introduire ce qu'on appelle un "arbre de bufferisation" ("buffer tree" en anglais), qui alourdit la micro-structure et introduit de la latence en entrée du registre tampon. L'invention vise à remédier à cet inconvénient de l'art antérieur. A cet effet, un premier aspect de l'invention concerne un registre 15 tampon de sortie qui comprend: - un premier registre à bascules comprenant un nombre déterminé N de bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation; - un deuxième registre à bascules comprenant N bascules, ayant 20 chacune une entrée de données, une sortie de données et une entrée d'activation; - un troisième registre à bascule comprenant une bascule ayant une entrée de données, une sortie de données et une entrée d'activation; - un multiplexeur de sortie ayant N premières entrées, N secondes 25 entrées, N sorties et une entrée de sélection. Les entrées d'activation des bascules des premier, deuxième et troisième registres reçoivent un même signal d'horloge. Les entrées de données des N bascules du premier registre reçoivent respectivement N signaux d'entrée. Les sorties de données des N bascules du premier registre 30 sont respectivement reliées aux N premières entrées du multiplexeur de sortie. Les N sorties du multiplexeur de sortie délivrent N signaux de sortie respectifs. Les entrées de données des N bascules du deuxième registre sont respectivement reliées aux N sorties du multiplexeur de sortie. Les N sorties de données des N bascules du deuxième registre sont respectivement reliées aux 5 N secondes entrées du multiplexeur de sortie. L'entrée de données du troisième registre reçoit un signal d'activation. Enfin, la sortie de données du troisième registre est reliée à l'entrée de sélection du multiplexeur de sortie. L'inconvénient du registre tampon de sortie conforme à l'art antérieur qui a été mentionné en introduction n'existe pas avec le registre tampon de 10 sortie selon l'invention. En effet, le signal d'activation entre sur l'entrée de données de la troisième bascule uniquement. Les avantages de l'invention par rapport à l'art antérieur sont particulièrement appréciables pour les valeurs élevées de N (typiquement pour N supérieur à 10). Certes le registre tampon de sortie selon l'invention nécessite 2N+1 15 bascules alors que celui selon l'art antérieur n'en comprend que N. Lorsque N est grand, ceci revient à doubler le nombre de bascules, ce qui a des conséquences sur la surface de silicium occupée par le registre de sortie. De plus, la micro-structure du registre tampon de sortie selon l'invention ne respecte par la règle de conception présentée en introduction, 20 puisque les signaux de sortie sont délivrés par un multiplexeur de sortie. Ceci introduit de la latence en sortie. Néanmoins, cette latence est acceptable eu égard au gain de temps en entrée du registre tampon. Un deuxième aspect de l'invention concerne un procédé de délivrance de signaux de sortie à l'aide d'un registre tampon de sortie, comprenant les 25 étapes consistant à: - appliquer un nombre déterminé N de signaux d'entrée sur les entrées de données de N bascules respectives d'un premier registre à bascules comprenant un nombre déterminé N de bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation; - relier les sorties de données des N bascules du premier registre respectivement à N premières entrées d'un multiplexeur de sortie ayant N premières entrées, N secondes entrées, N sorties et une entrée de sélection; - relier les entrées de données de N bascules d'un deuxième registre à 5 bascules comprenant N bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation, respectivement aux N sorties du multiplexeur de sortie qui délivrent N signaux de sortie respectifs; - relier les N sorties de données des N bascules du deuxième registre respectivement aux N secondes entrées du multiplexeur de sortie; - relier la sortie de données d'un troisième registre à bascules comprenant une bascule ayant une entrée de données, une sortie de données et une entrée d'activation, à l'entrée de sélection du multiplexeur de sortie - appliquer un signal d'activation sur l'entrée de données; et, - appliquer un même signal d'horloge sur les entrées d'activation des 15 bascules des premier, deuxième et troisième registres. Enfin, un troisième aspect de l'invention concerne un système électronique comprenant un bus système et au moins un module de système connecté audit bus système par l'intermédiaire d'un port de communication approprié. Le module de système comprend un registre tampon de sortie selon 20 le premier aspect de l'invention, qui est disposé en amont dudit port de communication. D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels: - la figure 1 est un schéma d'un registre tampon selon l'art antérieur; la figure 2 est un schéma synoptique d'un exemple de système électronique selon l'invention; et, - la figure 3 est un schéma d'un exemple de réalisation d'un registre tampon de sortie selon l'invention. A la figure 2, un système électronique 10 tel qu'un microprocesseur, comprend un bus système 12 et au moins un module de système 11. Le module de système est relié au bus système 12 par l'intermédiaire d'un port de communication approprié 44, tel qu'un port maître. Un tel module 5 système peut être un coeur de microprocesseur ("core" en anglais), une interface assurant l'accès à des ressources externes au microprocesseur (notamment des mémoires), ou tout autre module fonctionnel, ou autre. Dans un exemple, le module de système 11 comporte des éléments formant une logique combinatoire 43 ("glue", en anglais et dans le jargon de 10 l'Homme du métier), et un circuit tampon de sortie 42 disposé en aval de la logique 43 et en amont du port 44. Ce circuit 42 a pour fonction de délivrer des signaux de sortie issus de la logique 43, afin qu'ils soient transmis sur le bus 12. A la place de la logique 43, on peut prévoir tout autre élément ou toute combinaison d'éléments assurant une fonction du module de système 11. Par souci de généralité, on considère que le registre tampon de sortie 42 transmet un nombre déterminé N de signaux. De préférence, N est supérieur à 10. Dans un exemple, N est égal à 126. La figure 2 montre un exemple de mode de réalisation d'un registre tampon de sortie 42 selon l'invention. Le registre 42 comprend trois registres à 20 bascules et un multiplexeur de sortie. Le registre 42 comprend ainsi un premier registre à bascules 431 ou registre d'entrée de données. Le registre 431 comprend N bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation. Les N entrées de données 431a desdites N bascules reçoivent 25 respectivement N signaux d'entrée datain. Les N sorties de données 431b desdites N bascules sont reliées à N premières entrées respectives 434a d'un multiplexeur de sortie 434, ayant N premières entrées 434a, N secondes entrées 434b, N sorties 434c et une entrée de sélection 434d. Les N sorties 434c du multiplexeur de sortie 434 délivrent N signaux de sortie dataout. Le registre 42 comprend en outre un deuxième registre à bascules 432 ou registre de verrouillage. Le registre 432 a également N bascules, chacune ayant une entrée de données, une sortie de données et une entrée d'activation. Les N entrées de données 432a des N bascules du registre 432 sont respectivement reliées aux N sorties 434b du multiplexeur de sortie 434, pour respectivement recevoir les N signaux de sortie. De plus, les N sorties de 5 données des bascules du registre 432 sont respectivement reliées aux N secondes entrées du multiplexeur de sortie 434. Le registre 42 comprend en outre un troisième registre à bascule 433 ou registre d'activation. Le registre 433 comprend une bascule qui a une entrée de données 433a, une sortie de données 433b et une entrée d'activation 433c. 10 L'entrée de données 433a reçoit le signal d'activation updatedata délivré par une machine d'état faisant partie de la logique combinatoire 43. La sortie de données 433b est reliée à l'entrée de sélection du multiplexeur de sortie 434. Les entrées d'activation 431c, 432c et 433c des bascules respectives des registres 431, 432 et 433, respectivement reçoivent le signal CLK, c'est-à15 dire le signal d'horloge système. Le fonctionnement du registre tampon de sortie 42 de la figure 3 est le suivant. Supposons qu'à un instant déterminé, le signal updatedata passe de 0 à 1. Au coup d'horloge suivant, la valeur 1 est stockée dans le registre 20 d'activation 433. En outre, les valeurs courantes des N signaux d'entrée sont stockées dans le registre d'entrée 432. Les N premières entrées 434a du multiplexeur de sortie 434 sont sélectionnées par le signal délivré par la sortie de données 433b du registre 433. Par conséquent les valeurs courantes des N signaux d'entrée sont délivrées par les N sorties 434c du multiplexeur 434 en 25 tant que les N signaux de sortie, et ce quelles que soient les valeurs antérieures des signaux de sortie qui étaient stockées dans le registre 432. Au coup d'horloge suivant, les nouvelles valeurs des N signaux de sortie sont stockées dans le registre de verrouillage 432. Supposons maintenant que le signal updatedata repasse à 0. Au 30 coup d'horloge suivant, la valeur 0 est stockée dans le registre d'activation 433. Les secondes entrées 434b du multiplexeur 434 sont donc sélectionnées. Par conséquent, les valeurs des N signaux de sortie, qui ont précédemment été stockées dans le registre de verrouillage 432, sont délivrées par les N sorties du multiplexeur 434 en tant que les N signaux de sortie, et ce quelles que soient les (éventuellement nouvelles) valeurs des N signaux d'entrée. Dit 5 autrement les valeurs des N signaux de sortie sont verrouillées par le registre de verrouillage 432. Dans un exemple de réalisation, les bascules sont des bascules de type D ("flip-flop", en anglais). REVENDICATIONS 1. Registre tampon de sortie (42) caractérisé en ce qu'il comprend - un premier registre à bascules (431) comprenant un nombre déterminé N de bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation; - un deuxième registre à bascules (432) comprenant N bascules, ayant chacune une entrée de données, une sortie de données et une entrée d'activation; - un troisième registre à bascule (433) comprenant une bascule ayant une entrée de données, une sortie de données et une entrée d'activation; - un multiplexeur de sortie (434) ayant N premières entrées (434a), N secondes entrées (434b), N sorties (434c) et une entrée de sélection (434d); et en ce que: - les entrées d'activation (431c, 432c, 433c) des bascules des premier, deuxième et troisième registres reçoivent un même signal d'horloge (CLK); - les entrées de données (431a) des N bascules du premier registre reçoivent respectivement N signaux d'entrée; -les sorties de données (431b) des N bascules du premier registre sont respectivement reliées audites N premières entrées du multiplexeur de sortie; - les N sorties du multiplexeur de sortie délivrent N signaux de sortie respectifs; - les entrées de données (432a) des N bascules du deuxième registre sont respectivement reliées aux N sorties du multiplexeur de sortie; - les N sorties de données (432b) des N bascules du deuxième registre 25 sont respectivement reliées aux N secondes entrées du multiplexeur de sortie; - l'entrée de données (433a) du troisième registre reçoit un signal d'activation (updatedata); et, - la sortie de données (433b) du troisième registre est reliée à l'entrée de sélection du multiplexeur de sortie (434). 2. Registre tampon de sortie selon la revendication 1, caractérisé en ce que N est supérieur à 10. 3. Registre tampon de sortie selon la revendication 1 ou la revendication 2, caractérisé en ce que les bascules sont des bascules de type D. 4. Procédé de délivrance de signaux de sortie à l'aide d'un registre tampon de sortie (42) caractérisé en ce qu'il comprend les étapes consistant à: - appliquer un nombre déterminé N de signaux d'entrée sur les entrées de données (431a) de N bascules respectives d'un premier registre à bascules 15 (431) comprenant un nombre déterminé N de bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation; - relier les sorties de données (431 b) des N bascules du premier registre respectivement à N premières entrées (434a) d'un multiplexeur de sortie (434) ayant N premières entrées (434a), N secondes entrées (434b), N 20 sorties (434c) et une entrée de sélection (434d); - relier les entrées de données (432a) de N bascules d'un deuxième registre à bascules (432) comprenant N bascules ayant chacune une entrée de données, une sortie de données et une entrée d'activation, respectivement aux N sorties du multiplexeur de sortie qui délivrent N signaux de sortie respectifs; 25 - relier les N sorties de données (432b) des N bascules du deuxième registre respectivement aux N secondes entrées du multiplexeur de sortie; - relier la sortie de données (433b) d'un troisième registre à bascules (433) comprenant une bascule ayant une entrée de données, une sortie de données et une entrée d'activation, à l'entrée de sélection du multiplexeur de 30 sortie (434); - appliquer un signal d'activation (updatedata) sur l'entrée de données (433a); et, appliquer un même signal d'horloge sur les entrées d'activation (431c,432c,433c) des bascules des premier, deuxième et troisième registres. 5. Système électronique comprenant un bus système (12) et au moins un module de système connecté audit bus système par l'intermédiaire d'un port de communication (44) approprié, caractérisé en ce que le module de système comprend un registre tampon de sortie (42) selon l'une quelconque des 10 revendications 1 à 3 disposé en amont dudit port de communication (44).