FR 2841680 A1 20040102 FR 0208208 A 20020701 Dispositif de stockage de données multiports, en particulier pour une unité arithmétique et logique d'un processeur de traitement numérique du signal. L'invention concerne les dispositifs de stockage de données multiports, et notamment un système de registres adressables par une unité arithmétique et logique d'un coeur de processeur de traitement numérique du signal (processeur DSP), et plus particulièrement la lecture du contenu de certains de ces registres. Le coeur de traitement gère par exemple 16 registres qui sont regroupés pour former un dispositif de stockage. Le but de ces registres est de stocker des données utilisables dans différentes opérations. Le dispositif de stockage comporte un certain nombre de ports de sortie (ou ports de lecture), par exemple 8. De ce fait, jusqu'à 8 registres peuvent être lus dans un cycle du signal d'horloge cadençant le coeur de traitement. Ceci étant, un même registre peut être lu sur les 8 ports de sorties. Généralement, chaque port de sortie (ou port de lecture) est associé à un interrupteur (path gate) formé par exemple de 2 transistors MOS complémentaires commandés sur leur grille. Chaque registre comporte un certain nombre de points mémoire, par exemple , de façon à pouvoir stocker des données de 40 bits. Comme chaque point mémoire peut être lu simultanément sur les 8 ports de lecture, il est associé à 8 interrupteurs. Chacun de ces interrupteurs pilote une ligne sur laquelle les 16 bits homologues des 16 registres sont connectés. Aussi, pour piloter 8 ports de sortie derrière 8 interrupteurs, il est prévu un amplificateur important. Puisque cet amplificateur important a une valeur capacitive importante vue sur son entrée, un inverseur est disposé entre cet amplificateur et le point mémoire, afin de protéger ce dernier. Cependant, puisque 16 registres sont connectés sur chaque port de lecture, la capacité totale du port de lecture est très importante (capacité du port de lecture lui-même ajoutée aux 16 capacités de drain des interrupteurs). En outre, dans le pire cas, lorsqu'un même registre est lu par les 8 ports de lecture, son inverseur voit 8 lignes connectées chacune à 16 registres. Et, dans une telle configuration, la capacité totale vue par l'inverseur associé à un registre se compose de 8 capacités de ligne additionnées à 128 capacités de drain des transistors des interrupteurs. Et, dans un tel cas, le signal finalement lu sur les ports de sortie présente une pente s'étendant sur environ 7 nanosecondes pour 10 une technologie 0,18t, ce qui est pénalisant, et en général en dehors des spécifications requises qui prévoient que la durée de la pente ne dépasse pas 3 nanosecondes pour cette technologie. Il est donc nécessaire de prévoir une amplification spécifique de signal (buffer), ce qui complexifie le dispositif du point de vue encombrement et du point de vue cot de fabrication. En outre, la consommation d'un tel dispositif est importante lors de la commutation des ports de sortie. L'invention vise à apporter une solution à ces problèmes. Un but de l'invention est de proposer un système de registres comportant un nombre plus réduit de composants et présentant sur les ports de sortie une pente beaucoup plus faible que dans l'art antérieur, typiquement 2,5 fois plus faible, de façon à générer un gain de temps important. Un autre but de l'invention est de proposer un tel système présentant une consommation réduite de courant. L'invention a également pour but de proposer un décodage associé à cet ensemble de registres, qui soit beaucoup plus rapide que celui habituellement utilisé dans l'art antérieur. L'invention propose donc un dispositif de stockage de données, comportant plusieurs registres adressables par des mots d'adresses, et connecté sur p ports de sorties par des moyens de liaison configurables en réponse aux mots d'adresses de p registres sélectionnés pour la lecture respective des contenus de ces registres sur les p ports. Selon une caractéristique générale de l'invention, tous les mots d'adresses des registres comportant un bit spécifique de rang prédéterminé identique pour tous les mots d'adresses, (par exemple le bit de poids fort) et des bits restants, les registres sont connectés par paire sur chaque port de sortie, chaque paire de registres comportant deux registres dont les mots d'adresses ne diffèrent que par la valeur dudit bit spécifique. Par ailleurs, les moyens de liaison comportent pour chaque paire de registres et pour chaque port de sortie, une paire de premiers moyens de commutation commandables de façon complémentaire par le bit spécifique du mot d'adresse de l'un des deux registres, et un deuxième moyen de commutation connecté sur le port de sortie considéré et commandable à partir des bits restants des mots d'adresses des deux registres. Les deux premiers moyens de commutation sont connectés entre d'une part respectivement les deux registres et d'autre part le deuxième moyen de commutation. Ainsi, selon l'invention, on combine les registres par paires et, leur mot d'adresse, par exemple en format hexadécimal, ne diffère que d'un seul bit, par exemple le bit de poids fort. Ceci signifie que les deux registres peuvent être lus à travers le même moyen de commutation décodé par les bits restants du mot d'adresse. De ce fait, le nombre de moyens de commutation attachés à un port de lecture sera divisé par 2. Par ailleurs, la commande des deuxièmes moyens de commutation, c'est-àdire ceux qui sont directement attachés aux ports de lecture, s'effectuera de façon beaucoup plus rapide puisqu'elle ne concerne que les bits restants de chaque mot d'adresses, le bit spécifique, par exemple le bit de poids fort, servant à sélectionner directement l'un des deux registres d'une paire de registres. Selon un mode de réalisation de l'invention, les registres comportent m points mémoires de façon à stocker des données de m bits. Bien que l'invention s'applique théoriquement pour m=1, m est en général supérieur à 1, par exemple égal à 32 ou 40. Le premier moyen de commutation associé à un registre d'une paire comporte alors m premiers interrupteurs élémentaires respectivement connectés sur les m points mémoires du registre. Le premier moyen de commutation associé à l'autre registre de la paire comporte m autres premiers interrupteurs élémentaires respectivement connectés sur les m points mémoires de cet autre registre. Un premier interrupteur élémentaire connecté à un point mémoire du registre est commandé de façon complémentaire par rapport à l'autre premier interrupteur élémentaire connecté au point mémoire homologue de l'autre registre. Par ailleurs, le deuxième moyen de commutation comporte m deuxièmes interrupteurs élémentaires respectivement connectés entre ledit port de sortie considéré et m paires formées de s premiers interrupteurs élémentaires et des autres premiers interrupteurs élémentaires. Selon un mode de réalisation de l'invention, le dispositif comporte un premier inverseur élémentaire connecté entre chaque point mémoire d'un registre et les p premiers interrupteurs élémentaires associés à ce registre, et un deuxième inverseur élémentaire connecté entre chaque deuxième interrupteur élémentaire connecté à un port de sortie et la paire formée par le premier interrupteur élémentaire et l'autre premier interrupteur élémentaire associé à l'autre registre de la paire de registres. Chaque premier interrupteur élémentaire et chaque autre premier interrupteur élémentaire sont par exemple formés respectivement par des paires de transistors MOS complémentaires. Les grilles de deux transistors de type opposé (transistor NMOS et transistor PMOS) et appartenant respectivement aux deux paires, sont connectées ensemble de façon à permettre la commande complémentaire du premier interrupteur élémentaire et de l'autre premier interrupteur élémentaire. De façon à minimiser l'encombrement du dispositif, avantageusement réalisé sous la forme d'un circuit intégré, les premiers moyens de commutation associés aux deux registres d'une paire sont situés au voisinage l'un de l'autre. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de réalisation, nullement limitatif, et des dessins annexés sur lesquels: la figure 1 illustre très schématiquement un mode de réalisation d'un dispositif de stockage selon l'invention, - la figure 2 illustre plusieurs détails, le dispositif de la figure 1, - la figure 3 montre le couplage par paires des registres du dispositif selon l'invention, - la figure 4 illustre plus en détails et toujours schématiquement une partie du dispositif des figures 1 et 2, et, - la figure 5 illustre plus en détails mais toujours schématiquement, m décodage des mots d'adresses. Sur la figure 1, la référence DS désigne un dispositif de stockage de données formé d'un ensemble de registres R, ici 16 registres, associés à des moyens de commande CTL permettant d'adresser certains de ces registres en vue de la lecture de leur contenu sur un certain nombre de ports de sorties, ici 8 ports de sorties PLO-PL7. Chacun des 16 registres est ici un registre à 40 point mémoires capable donc de stocker des données de 40 bits. En conséquence, chacun des ports de sorties (ou ports de lecture) comporte 40 lignes de bits. Par ailleurs, les moyens de commande CTL sont ici gérés par un coeur de processeur de traitement numérique du signal PR, en particulier l'unité arithmétique et logique DU de ce processeur. Sur la figure 2, on a représenté les différents points mémoires Rj.i, i=0 à 39, de chaque registre Rj, j=0 à 15. Par ailleurs, tous les points mémoires ayant le même indice i, i=0 à 39, sont connectés sur les 8 lignes de bits PLO.i - PL7.i des 8 ports de lecture PLO - PL7. La façon dont ces points mémoires sont connectés sur ces lignes de bits sera détaillée ci-après. L'une des caractéristiques de l'invention, consiste à regrouper les registres par paires, et par conséquent les points mémoires homologues de ces registres par paires, comme illustré sur la figure 2. Ce regroupement par paires s'effectue en fonction de la valeur des bits du mot d'adresse MAD permettant d'adresser chaque registre Rj (j=O à15). Ce regroupement est illustré plus particulièrement sur la figure 3. Chaque mot d'adresse MAD comporte ici 4 bits puisqu'il y a 16 registres. L'un de ces bits, à savoir le bit de poids fort, référencé A, est considéré ici comme étant un bit spécifique. Les bits restants bO, bl et b2 sont les bits de poids faibles du mot d'adresse MAD. D'une façon générale, selon l'invention, les registres sont connectés par paire sur chaque port de sortie, chaque paire de registres comportant les deux registres dont les mots d'adresses ne diffèrent que par la valeur du bit spécifique A. Les bits restants des mots d'adresses des deux registres d'une paire sont par conséquent identiques. On voit donc sur la figure 3 que les registres RO et R8 vont être connectés ensemble puisqu'ils ne diffèrent que par la valeur du bit de poids fort A. Il en est de même pour les registres RI et R9, R2 et R10, R3 et RH, R4 et R12, R5 et R13, R6 et R14, R7 et R15. On se réfère maintenant plus particulièrement à la figure 4 pour détailler la connexion mutuelle des deux registres d'une paire ainsi que leur connexion sur les différents ports de sorties. A des fins de simplification, on a représenté sur la figure 4, uniquement le point mémoire RO.0 du registre RO, et le point mémoire R8.0 du registre R8. Bien entendu, ce qui va être décrit pour ces deux points mémoires est identique pour les autres points mémoires des registres. Chaque point mémoire est formé ici de façon classique par deux inverseurs montés tête-bêche. Les moyens de liaison configurables, connectés entre chaque point mémoire et les ports de lecture, comportent ici en ce qui concerne le point mémoire RO.0 et le point mémoire R8.0 qui lui est couplé, un premier interrupteur élémentaire OITAO.O connecté au point mémoire RO.O par l'intermédiaire d'un premier inverseur élémentaire IVAO.O. Par ailleurs, un autre premier interrupteur élémentaire OITA8.0 est connecté au point mémoire R8.0 par l'intermédiaire d'un autre premier inverseur élémentaire IVA8.0. Le premier interrupteur élémentaire OITAO.O et l'autre premier interrupteur élémentaire OITA8.0 sont par ailleurs connectés ensemble. La borne commune entre ces deux interrupteurs élémentaires OITAO.O et OITA8.0 est reliée à un deuxième interrupteur élémentaire OITBO.O par l'intermédiaire d'un deuxième inverseur élémentaire OIVBO.O. Le deuxième interrupteur élémentaire OITBO.O est relié à la ligne de bits PLO.O du port de lecture PLO. On remarque sur la figure 4 que les deux premiers interrupteurs élémentaires OITAO.O et OITA8.0 sont commandés de façon complémentaire. En effet, chaque premier interrupteur élémentaire est formé de deux transistors MOS complémentaires, à savoir un transistor NMOS et un transistor PMOS. Et, la grille du transistor NMOS du premier interrupteur élémentaire OITAO.O est reliée à la grille du transistor PMOS de l'autre premier interrupteur élémentaire OITA8.0. De même, la grille du transistor PMOS du premier interrupteur élémentaire OITAO.O est reliée à la grille du transistor NMOS de l'autre premier interrupteur élémentaire OITA8.0. Et, la grille du transistor NMOS du premier interrupteur élémentaire OITAO.O et la grille du transistor PMOS du premier interrupteur élémentaire OITA8.0 sont commandées par la valeur du bit de poids fort AO du mot d'adresse MADO délivré par les moyens de contrôle pour adresser en lecture les registres sélectionnés sur le port de lecture PLO. On voit donc immédiatement que la valeur 1 pour le bit AO va permettre de sélectionner le point mémoire RO.O tandis que la valeur O va permettre de sélectionner le point mémoire R8.0 (en effet, l'annotation AOn désigne la valeur complémentaire de AO). Ceci étant, une valeur logique donnée pour le bit AO va permettre également de rendre passant les premiers interrupteurs élémentaires associés aux points mémoires ayant la même valeur logique pour leur bit de poids fort. C'est pourquoi, la sélection effective de l'un des registres va s'effectuer, en combinaison avec le bit de poids fort A, par les bits restants du mot d'adresse. A cet égard, comme illustré sur la figure 5, les moyens de contrôle, élaborent non seulement les valeurs Ai et Ai-n à partir du bit de poids fort A, mais également les signaux de commande rdi et rdikn à partir des bits restants bO, bl, b2 du mot d'adresse MADi. Ces signaux de commande rdi et rdi_n, par exemple rdO et rdOn vont commander le deuxième interrupteur élémentaire OITBO.O. Puisque le dispositif comporte ici 8 ports de lecture, les premiers interrupteurs élémentaires, les deuxième interrupteurs élémentaires ainsi que les deuxièmes inverseurs élémentaires sont répétés 8 fois. Plus précisément, par exemple pour la ligne de bits PLl.O du port de lecture PLi, il est prévu un premier interrupteur élémentaire 1ITAO.O connecté au premier inverseur élémentaire IVAO.O et un autre premier interrupteur élémentaire 1ITA8.0 connecté au premier inverseur élémentaire 1IVA8.0. Ces deux premiers interrupteurs élémentaires lITAO.O et lITA8.0 sont connectés ensemble. Leur borne commune est connectée au deuxième interrupteur élémentaire lITBO.O par l'intermédiaire d'un deuxième inverseur élémentaire lIVBO.O. Le deuxième interrupteur élémentaire lITBO.O est connecté sur la ligne de bits PLIO du port de lecture PLi. Les premiers interrupteurs élémentaires lITAO.O et lITA8.0 sont commandés de façon complémentaire par le bit AI du mot d'adresse MAD1 dédié au port de lecture PLi. De même, le deuxième interrupteur élémentaire lITBO.O est commandé à partir des bits restants de ce mot d'adresse. L'invention présente de ce fait des avantages importants. En effet, par rapport à l'art antérieur, le nombre d'interrupteurs élémentaires attachés aux ports de lecture est divisé par deux. Les moyens de contrôle CTL, c'est-à-dire l'étage de décodage, sont beaucoup plus rapides puisque dans le cas présent, seuls 3 bits (les bits restants) sont décodés au lieu de 4 dans l'art antérieur. Le dernier bit, en l'espèce le bit de poids fort, commande directement le premier inverseur élémentaire sans qu'il soit nécessaire de faire décodage. Dans le cas o le même registre est lu simultanément sur les 8 ports de lecture, ce sont les premiers inverseurs élémentaires correspondants qui sont sollicités. Cependant, chaque premier inverseur élémentaire ne voit que 16 interrupteurs élémentaires et 8 deuxièmes inverseurs élémentaires. Par ailleurs, chaque deuxième inverseur élémentaire pilote une ligne de bits connectée à 8 deuxièmes interrupteurs élémentaires. Et, même si les 8 ports de lecture servent à lire le contenu du même registre (ce qui constitue le pire cas), les deuxièmes inverseurs élémentaires ne verront pas plus d'une capacité de ligne de bits (au lieu de 8 dans l'art antérieur) et 8 interrupteurs élémentaires (au lieu de 128 dans l'art antérieur). La pente du signal de sortie est par conséquent rectifiée et se situe entre 2 et 3 nanosecondes au lieu de 7 dans l'art antérieur. De ce fait, aucune amplification supplémentaire spécifique n'est nécessaire, et l'on obtient un gain de 30% en rapidité. En outre, en raison de la réduction importante de la capacité globale vue par les ports de sortie du dispositif, la consommation de courant est réduite. L'invention n'est pas limitée au mode de réalisation qui vient d'être décrit mais en embrasse toutes les variantes. Ainsi, elle peut s'appliquer à un nombre quelconque de registres avec un nombre quelconque de ports de lecture. Et, même si le nombre de registres n'est pas pair, l'invention s'applique. En effet, dans ce cas, un seul des registres sera isolé, les autres étant connectés par paires comme décrit ci30 avant. REVENDICATIONS 1 - Dispositif de stockage de données, comportant plusieurs registres adressables par des mots d'adresses, et connectés sur p ports de sorties par des moyens de liaison configurables en réponse aux mots d'adresses de p registres sélectionnés pour la lecture respective des contenus de ces registres sur les p ports, caractérisé par le fait que tous les mots d'adresses (MAD) des registres comportant un bit spécifique de rang prédéterminé (A) identique pour tous les mots d'adresses et des bits restants (bO, bl, b2), les registres sont connectés par paires sur chaque port de sortie, chaque paire de registres comportant deux registres dont les mots d'adresses ne diffèrent que par la valeur dudit bit spécifique, et par le fait que les moyens de liaison comportent pour chaque paire de registres et pour chaque port de sortie, une paire de premiers moyens de commutation (OITAO.0, OITA8.0) commandables de façon complémentaire par le bit spécifique du mot d'adresse de l'un des deux registres, et un deuxième moyen de commutation (OITBO.0) connecté sur le port de sortie considéré(PLO.0) et commandable à partir des bits restants des mots d'adresses des deux registres, les deux premiers moyens de commutation étant connectés entre d'une part respectivement les deux registres (RO.0, R8.0) et d'autre part le deuxième moyen de commutation (OTTBO.0). 2 - Dispositif selon la revendication 1, caractérisé par le fait que les registres comportent m points mémoires de façon à stocker des données de m bits, et par le fait que le premier moyen de commutation associé à un registre (RO.0) d'une paire comporte m premiers interrupteurs élémentaires (OITAO.0) respectivement connectés sur les m points mémoires du registre, par le fait que le premier moyen de commutation associé à l'autre registre (R8.0) de la paire comporte m autres premiers interrupteurs élémentaires (OITA8.0) respectivement connectés sur les m points mémoires de cet autre registre, un premier interrupteur élémentaire (OITA8.0) connecté à un point mémoire du registre étant commandé de façon complémentaire par rapport à l'autre il premier interrupteur élémentaire (OITA8.0) connecté au point mémoire homologue de l'autre registre, et par le fait que le deuxième moyen de commutation comporte m deuxièmes interrupteurs élémentaires (OITBO.0) respectivement connectés entre ledit port de sortie considéré et les m paires formées des premiers interrupteurs élémentaires et des autres premiers interrupteurs élémentaires. 3 - Dispositif selon la revendication 2, caractérisé par le fait qu'il comporte un premier inverseur élémentaire (IVAO.0) connecté entre chaque point mémoire d'un registre et les p premiers interrupteurs élémentaires associés à ce registre, et un deuxième inverseur élémentaire (OIVBO.O) connecté entre chaque deuxième interrupteur élémentaire connecté à un port de sortie et la paire formée par le premier interrupteur élémentaire et l'autre premier interrupteur élémentaire associé à l'autre registre de la paire de registres. 4 - Dispositif selon l'une des revendications 2 ou 3, caractérisé par le fait que chaque premier interrupteur élémentaire et chaque autre premier interrupteur élémentaire sont formés respectivement par des paires de transistors MOS complémentaires, les grilles de deux transistors de type opposé appartenant respectivement aux deux paires étant connectées ensemble de façon à permettre la commande complémentaire du premier interrupteur élémentaire et de l'autre premier interrupteur élémentaire. - Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les premiers moyens de commutation associés aux deux registres d'une paire sont situés au voisinage l'un de l'autre. 6 - Dispositif selon l'une des revendications précédentes, caractérisé par le fait qu'il est réalisé sous la forme d'un circuit intégré. 7 - Dispositif selon l'une des revendications précédentes, caractérisé par le fait qu'il est commandé en lecture par un processeur de traitement du signal.