Brevet FR2779843A1 — publié le 19991217

COMPOSANT MEMOIRE MULTIPORT SERIE ET APPLICATION A UN ORDINATEUR L'invention concerne un composant mémoire multiport série, permettant de réaliser une mémoire centrale de système informatique. Les mémoires centrales des systèmes informatiques sont réalisées à partir de composants mémoire qui disposent d'un unique port parallèle de données, constitué par un ensemble de 1, 2, 4, 8, 16 ou 32 broches de données, selon le composant. Ces composants sont généralement associés en parallèle de o0 façon à obtenir un ensemble de broches de données en nombre correspondant à la largeur d'un mot de données (nombre de bits transférés en parallèle à chaque cycle mémoire), typiquement 32, 64, 128 et 256 ou 512 pour les systèmes très haut de gamme. La réception et la transmission de mots de données s'effectuent en parallèle sur un bus de données connecté à toutes les broches de données de la mémoire. Un composant mémoire est caractérisé par sa capacité (donné usuellement en mégaoctet: MO), son débit (défini en MO/s) et sa latence d'accès (en ns), ces trois paramètres étant en partie corrélés. La capacité des composants mémoire est multipliée par 4 tous les deux ans environ, alors que la latence d'accès ne s'améliore que de 7% par an environ, le débit, plus complexe à caractériser, étant fonction du temps d'accès, du nombre de broches de données du composant et des interfaces mémoire associées. L'évolution des performances des mémoires centrales réalisées à partir de tels composants mémoire ne suit pas le besoin lié à l'évolution des performances des processeurs (performances augmentant d'environ 50% l'an), ce besoin étant qu'en partie satisfait par la présence d'une hiérarchie de mémoires cache. Les chiffres ci-dessus montrent que le besoin en composants mémoire performants est de plus en plus critique. Pendant plus de 10 ans les composants mémoire FPM DRAM ont satisfait le besoin. Ils ont évolué vers des architectures plus complexes: tout d'abord les composants mémoire DRAM EDO, puis les composants mémoire SDRAM. Le temps d'accès a été amélioré avec les composants mémoire EDRAM, les composants mémoire CDRAIM, et les composants mémoire MDRAM. L'interface mémoire a été amélioré dans les composants mémoire RamBUS. 2 2779843 Trois types de composants mémoire ont été développés pour les générations de la fin des années 1990: les SDRAM-DDR, les Direct Rambus DRAM et les SLDRAM. On trouvera dans la publication: "Yasunao Katayama (IBM) Trends in semiconductors memories, IEEE MICRO, pages 10 à 17, nov/dec 97", les particularités des composants mémoire mentionnés cidessus. Compte tenu de l'évolution de la capacité des composants mémoire, le temps d'accès ne peut être amélioré que par une architecture interne multibanc, ce qui est le cas de tous les composants mémoire actuels. Mais le nombre nécessairement limité de broches de données et un débit qui reste insuffisant conduisent à un "temps de remplissage" de la mémoire de plus en plus long. Ces composants mémoire sont utilisés pour réaliser des mémoires centrales de système informatique, caractérisées par l'utilisation d'un unique bus de donnée parallèle, dont la fréquence de fonctionnement évolue très lentement et qui est typiquement de 100 MHz aujourd'hui. Ainsi, avec un bus de données de 64 bits de large, le débit théorique de la mémoire est de 800 MO/sec. Augmenter la largeur de ce bus pose de nombreux problèmes: augmentation du nombre de broches de tous les composants qui y sont connectés, augmentation de l'énergie électrique nécessaire pour faire fonctionner les "drivers" d'entrée- sortie (amplificateurs électriques), augmentation de la granularité de la mémoire (capacité mémoire minimale réalisable avec des composants mémoire donnés, compte tenu de la largeur de bus imposée). A titre d'exemple, les circuits dits "core logic" utilisés dans un ordinateur personnel (de type "PC") ont des ports pour le processeur de traitement, le processeur graphique, un ou plusieurs bus d'E/S (entrée/sortie) et une interface mémoire de 64 bits. Ces circuits ont aujourd'hui près de 500 broches. Doubler le nombre de broches de l'interface mémoire conduit aussi à une surface de silicium plus importante pour prendre en compte les nouvelles broches, à une augmentation du coût de conditionnement, et une augmentation du bruit sur les lignes internes d'alimentation. Elargir le bus de données conduit également à augmenter la granularité mémoire. Avec un bus de 128 bits et des composants mémoire de 64 Mbits organisés en 4 mégamots de 16 bits, la taille 3 2779843 mémoire minimum est de 64 MO. Avec la prochaine génération de mémoire à 256 Mbits, la granularité est dégradée dans un facteur 4, critère essentiel dans des applications nécessitant une large bande passante mais une capacité mémoire moyenne ou faible. Par ailleurs, il a été proposé dans le brevet européen n 0.346.420 une architecture de système multiprocesseur utilisant, comme mémoire centrale, une mémoire multiport série et un réseau d'interconnexion processeurs/mémoire centrale constitué par des liaisons série à haut débit. Un tel système bénéficie d'une bande passante de communication par le réseau de 1o liaisons série, qui est très supérieure aux solutions parallèles traditionnelles ci- dessus évoquées (à complexité égale). Le composant mémoire décrit dans ce brevet européen est adapté pour être utilisé dans cette architecture et consiste en un composant multiport série apte à assurer le transfert série des données, via le réseau de liaisons série précité. La présente invention se propose de fournir un nouveau composant mémoire multiport série ayant un mode de fonctionnement externe série de même nature que le composant mémoire du brevet européen précité et dont l'organisation interne conduit à un niveau de performance significativement supérieur en terme de bande passante, et qui peut être utilisé dans tout système informatique, mono ou multiprocesseur, pour réduire les défauts des systèmes traditionnels évoqués précédemment qui fonctionnent grâce à des bus de données parallèles. A cet effet, le composant mémoire multiport série visé par l'invention comprend (de façon connue pour les composants actuels des mémoires centrales fonctionnant en parallèle) un ensemble de -n- bancs- mémoire à accès aléatoire (RAM1... RAM,... RAMn), chacun de largeur correspondant à un bloc d'informations (bi), ces bancs étant juxtaposés pour fonctionner de façon indépendante et augmenter la bande passante mémoire. Conformément à la présente invention, le composant comprend, associé à cet ensemble de bancs-mémoire: - un ensemble d'au moins -n- registres à décalage (RDMI... RDMi... RDMn), chacun de capacité correspondant à un bloc 4 2779843 d'informations (bi) et comprenant une entrée de commande de chargement (ch), une interface parallèle de lecture/écriture (/e) et une interface d'entrée/sortie série (e/s), chaque registre à décalage (RDMi) étant associé à un banc-mémoire (RAMi) et relié à celui-ci par son interface parallèle (/e), - une logique cross-bar bidirectionnelle (CB) ayant une première interface, dite interne, et une seconde interface, dite externe, l'interface interne possédant n ports d'entrée/sortie (Pl... Pi... Pn), chacun connecté à l'interface d'entrée/sortie série d'un registre à décalage (RDMi), l'interface externe possédant n' ports d'entrée/sortie (P'l... P'i... P'n) - un ensemble de ports externes d'entrée/sortie de données (Bdl... Bdi,... Bdn,), chaque port externe comprenant au moins une broche de connexion, ledit ensemble étant connecté aux ports d'entrée/sortie (p'l.. . p'i... P',,) de l'interface externe de la logique cross-bar (CB) en vue de permettre pour chaque port externe (p'r,) un transfert série de blocs d'information (bi) indépendant des transferts séries des autres ports externes, - un ensemble de broches externes d'entrée d'adresses (Ba), - un ensemble de broches externes d'entrée/sortie de commandes et d'états (Bce), - une logique de commande (COMJ) de la logique cross-bar (CB), reliée aux broches externes d'entrée d'adresses (Ba), aux broches externes d'entrée/sortie de commandes et d'états (Bce) en vue d'établir les interconnexions temporaires de la logique cross-bar (CB), - un ensemble de -n- logiques de commande (COM1... COMi... COMn) toutes reliées aux broches externes d'entrée d'adresses (Ba) et aux broches externes d'entrée/sortie de commandes et d'états (Bce), chaque logique de commande (COMi) étant reliée à un banc-mémoire (RAMi), au registre à décalage correspondant (RDMi) et à la logique de commande (COMc) en vue d'engendrer les transferts de blocs d'informations (bi) entre le banc- mémoire concerné (RAMi) et son registre à décalage (RDMi), et les transferts entre ledit registre à décalage (RDMi) et les ports externes d'entrée/sortie de données (Bdl... Bdi,... Bdn.) via la logique cross-bar (CB). 2779843 La structure du composant mémoire conforme à l'invention permet de combiner, en terme de bande passante, les avantages provenant de la présence de multiples bancs-mémoire et de l'existence de multiples chemins d'accès série à ces bancs-mémoire. La logique cross-bar permet d'établir un lien temporaire approprié au transfert en cours entre les ports externes d'entrée/sortie de données et les bancs-mémoire, via les registres à décalage qui ont la même fonction que dans le brevet précité EP 0.346.420. Chaque port externe d'entrée/sortie de données Bdi, peut comprendre 1, 2, 4 ou 8 broches de connexion qui seront chacune reliées par une liaison aux autres unités fonctionnelles du système informatique (unités externes au composant mémoire). Dans le composant mémoire conforme à l'invention, les données sont donc reçues ou transmises en série, sur ou par les ports d'entrée/sortie (P'l. P'n). Les adresses peuvent être reçues, soit en parallèle sur les broches externes (Ba) pour être directement transmises aux logiques de commande (COM,... COMa), soit en série sur les broches de données (Bdl... Bdn), auquel cas les broches d'adresses et les broches de données sont communes, les adresses étant transmises directement aux logiques de commande..DTD: (COM1...COMa). Le cas échéant, il est possible de combiner les deux solutions. Le composant mémoire conforme à l'invention, généralement constitué par un circuit intégré, peut être utilisé dans tout type de système informatique, désigné également par "ordinateur", possédant au moins un microprocesseur de traitement. Le ou les composants mémoire conformes à l'invention sont reliés à chaque microprocesseur de traitement par des liaisons série adaptées pour permettre le transfert de bloc d'information (bi) à un débit de transfert au moins égal à I gigabit par seconde. Pour permettre de mieux comprendre cette organisation et ses avantages, on a schématisé à la figure I des dessins l'architecture de base d'un tel système informatique monoprocesseur dont la mémoire centrale est constituée par un composant mémoire conforme à l'invention, désigné SMDRAM ("serialy multiported dynamic random access memory"). Le système comprend de façon usuelle un composant processeur de traitement (PE), une mémoire cache L1 de 6 2779843 premier niveau, en général intégrée au composant processeur de traitement, une mémoire cache L2 de second niveau quelquefois également intégrée au composant processeur de traitement, un composant processeur graphique (GP), au moins un composant passerelle (BRG) pilotant un bus d'E/S dans un standard donné, comme PCI par exemple, et enfin le composant mémoire centrale multiport série SMDRAM. Le bus d'adresse (BDR) permet aux unités concernées de fournir des adresses de bloc de données à la mémoire SMDRAM, les données correspondantes transitant par des liaisons série LS1, LS2,.... Sur la figure 1, le cache L2 est relié à la mémoire SMDRAM par k liaisons série (de type électrique ou optique), une valeur typique de k pour un processeur actuel étant de 4, correspondant à un cache L2 non bloquant d'ordre 4 (nombre qui va évoluer vers des valeurs 8 et 16 avec les prochaines générations de processeurs de traitement). Les autres unités fonctionnelles GP, BRG, sont reliées à un composant mémoire SMDRAM par au moins une liaison série LSg, LSb (de type électrique ou optique). Le cache L2 est également organisé de façon multiport série; en particulier, il peut être constitué par un composant mémoire du type de celui décrit dans le brevet précité EP-0 346 420. Un premier avantage apporté par le composant mémoire multiport série de l'invention est de permettre pour chaque unité fonctionnelle de disposer de un ou de plusieurs ports d'accès de données privés à la mémoire, autorisant des transferts de données simultanés, c'est-à-dire l'exécution simultanée de lecture et d'écriture de blocs de données dans les bancs mémoire. Un second avantage est apporté par la connexion correspondante, en point à point, qui autorise le plus haut niveau de performance possible en terme de fréquence de fonctionnement. Un composant comportant 8 ports est suffisant pour réaliser un ordinateur de type PC ou de type console de jeu. Un composant comportant 16 ports est bien adapté pour un système multiprocesseur symétrique à 2 ou 4 processeurs. L'association de tels composants mémoire pour réaliser des mémoires plus importantes en capacité et comportant davantage de ports permet de réaliser la mémoire centrale de tous types de systèmes informatiques. 7 2779843 Un troisième avantage est lié au nombre réduit de broches nécessaire pour les données, qui conduit à un circuit intégré avec une surface de puce moindre, à un encombrement plus réduit, à une plus grande simplicité de mise en oeuvre sur un support donné. Enfin, un dernier avantage est de permettre une connexion directe de chaque unité fonctionnelle à la mémoire centrale SMDRAM: le cache L2 est relié directement à ladite mémoire, à l'inverse par exemple de la solution traditionnelle des ordinateurs PC o les données transitent par un circuit intermédiaire. Dans l'invention, un circuit d'interface de type disque ou réseau l0 peut être relié directement à la mémoire SMDRAM sans passer par une passerelle de type PCI (ce qui toutefois n'exclut pas cette dernière solution). A titre d'exemple, si l'on considère un composant mémoire multiport série de 256 Mbits de capacité et 8 ports d'E/S, sa structure interne est organisée en n=8 bancs mémoire RAMi de largeur bi=1024 bits, et les registres à décalage RDMi correspondants ont une fréquence de décalage supposée de 8 Gbits/s. Ainsi, chaque port à un débit crête de 1 GO/s et le composant un débit total de 8 GO/s. Il faut alors 128 ns pour remplir ou vider un registre. Afin de maintenir le composant occupé à 100%, il est nécessaire de fournir 8 adresses de bloc de données dans le temps de transfert d'un bloc de données dans un registre, soit 16 ns en moyenne pour une adresse, ce qui fixe la fréquence de fonctionnement du bus d'adresse BDR. Augmenter le nombre n de bancs mémoire permet de diminuer de façon classique les conflits d'accès sur un même banc, les adresses de blocs étant entrelacées sur les bancs. Dans le composant conforme à l'invention, il est fait état de fréquence de décalage et de transmission de 8 Gb/s. Pour faciliter l'obtention de telles fréquences de fonctionnement, un mode de réalisation préféré consiste à découper chaque registre RDMi en r sous- registres RDM1j synchronisés sur la même horloge de décalage dont la fréquence est divisée dans un rapport r. A titre d'exemple, r=16 va conduire à une fréquence de décalage des registres RDMij 16 fois plus faible, soit 500 Mhz. Le crossbar qui met en relation les registres RDMi avec les ports d'entrée/sortie Bd, est lui-même décomposé en r crossbars identiques permettant de mettre en relation n'importe 8 2779843 quel ensemble de r sous-registres RDMij avec n'importe quel port d'entrée/sortie Bdi. Comme l'interface de communication peut accepter une fréquence de transmission différente de cette fréquence interne, un multiplexeur- démultiplexeur placé entre le crossbar et les ports d'entrée/sortie permet de moduler cette fréquence de transmission. Dans l'exemple ci- dessus, les données des 16 registres RDMij peuvent par exemple être recombinées dans les multiplexeurs-démultiplexeurs par paquets de 4 conduisant à un port d'E/S à 4 broches supportant chacune une fréquence de fonctionnement de 2 Ghz. La logique des multiplexeurs-démultiplexeurs doit alors fonctionner à cette o0 fréquence, possible compte tenu de la nature simple de ces fonctions. Dans les ordinateurs, les transferts de blocs dans le sens mémoire vers le dernier niveau de cache se font toujours avec le mot demandé en tête. Ce mode de fonctionnement préférentiel peut être mis en place de façon simple dans le composant SMDRAM conforme à l'invention. Le bloc d'information bi étant constitué de m mots, les m bits, têtes de mot dans le registre à décalage RDMi, sont présentés à l'entrée d'un multiplexeur MUX2i à m voies vers une. Afin de pouvoir transférer tout le bloc de façon circulaire sur les mots, la sortie du registre RDMi est rebouclée sur son entrée, via un multiplexeur MUXii à deux voies vers une, afin de permettre également le transfert de bloc dans le sens dernier niveau de cache vers mémoire (qui se fait sans faire appel à cet agencement de mot demandé en tête). Dans les ordinateurs, un transfert de bloc en lecture de la mémoire vers le cache peut entraîner un transfert de bloc en écriture du cache vers la mémoire afin de libérer un emplacement de bloc dans le cache. Le cas conventionnel d'un unique bus parallèle de données réalise la lecture puis l'écriture dans cet ordre, le bloc à écrire étant temporairement stocké dans un "buffer d'écriture" du cache. Ces transferts peuvent être réalisés de façon identique dans un système informatique comportant une mémoire SMDRAM conforme à l'invention, dans un mode de fonctionnement bidirectionnel à l'alternat ("half-duplex"). Ces deux transferts peuvent cependant avoir lieu quasi simultanément dans un mode de fonctionnement bidirectionnel simultané ("full- duplex"). Un dédoublement du registre RDMi, (un registre spécialisé pour la lecture de bloc, l'autre pour l'écriture de bloc) autorise en outre ces deux transferts simultanés sur le même banc-mémoire. Une des broches Bce du composant mémoire SMDRAM est en particulier reliée à une horloge H permettant notamment de réaliser le décalage des bits contenus dans les registres RDMi. A cet effet, une logique CSRi délivre exactement bi tops d'horloge H permettant soit la sortie des bi bits du registre RDMi dans le cas d'une opération de lecture, soit d'introduire bi bits dans le registre RDMi dans le cas d'une opération d'écriture. Dans le cas de la lecture, la logique de commande COMi réalise de façon classique une lecture de bloc de 0o donnée dans le mémoire RAMi, puis transfèere ce bloc de donnée dans le registre RDMi et enfin envoie un signal de départ à la logique CSRi qui déclenche son fonctionnement. A l'issue des bi tops d'horloge, la logique CSRi délivre un signal STi de fin de transfert en lecture qui libère le banc-mémoire RAMi. L'écriture peut être traitée de différentes façons. Dans tous les cas, le décalage d'écriture est is réalisé par la même logique CSRi de la même façon que le décalage de lecture. Dans le fonctionnement le plus conventionnel, le déclenchement de la logique CSRi est réalisé à la suite de la détection d'un "bit de start" placé en tête du bloc de données à écrire. Dans ce mode de fonctionnement conventionnel, la longueur des liaisons qui relient la mémoire SMDRAM aux unités fonctionnelles qui y sont attachées est ajustée en fonction de la fréquence de transmission des bits. En effet, si l'on considère à titre d'exemple une fréquence de décalage série de 1 Gbits par seconde, alors deux bits sont "séparés" par une distance de 20 cm (vitesse de l'onde électrique dans un support centré ou de l'onde lumineuse dans une fibre optique de l'ordre de 2.10 10 cm/s), et la distance qui sépare un registre à décalage du composant SMDRAM de l'unité fonctionnelle considérée doit être égale exactement soit à cette valeur, soit à un multiple de cette valeur. Il est possible de lever cette contrainte soit en mettant en place une logique de recouvrement de la phase de l'horloge sur le bit de start, soit en mettant en place une logique de recouvrement de l'horloge à partir des données elles-mêmes (utilisée de façon classique pour les communications distantes). Dans ces divers cas, la détection de début de transfert de bloc déclenche le fonctionnement de la logique CSRi, qui délivre alors exactement bi tops d'horloge puis un signal de fin 2779843 de transfert en écriture qui va permettre d'enclencher la suite des opérations, à savoir de façon classique, réaliser l'écriture du bloc de donnée contenu dans le registre RDMi dans la mémoire RAMi. La description qui suit en référence aux dessins annexés illustre des modes de réalisation de l'invention; sur ces dessins: - la figure 1, déjà commentée, est un schéma synoptique d'un ordinateur de type PC dont la mémoire centrale est constituée par un composant mémoire multiport série conforme à l'invention, - la figure 2 est un schéma fonctionnel d'un mode de io réalisation d'un composant mémoire conforme à l'invention, - la figure 3 est un schéma fonctionnel d'un mode de réalisation d'un sous-ensemble du composant mémoire, - la figure 4 est un schéma fonctionnel d'un mode de réalisation préféré d'un registre à décalage, - la figure 5 est un schéma fonctionnel partiel d'un autre mode de réalisation du composant mémoire fonctionnant de façon bidirectionnelle simultanée ("full duplex"), -la figure 6 est une variante du composant mémoire, permettant de réaliser une lecture et une écriture simultanément sur un même banc, - la figure 7 est un schéma fonctionnel partiel d'un mode de réalisation de composant mémoire fonctionnant en bidirectionnel à l'alternat ("half duplex"), - la figure 8 est un schéma fonctionnel d'un mode de réalisation de la logique de comptage CRSi apparaissant sur le schéma d'ensemble de la figure 2, - la figure 9 est un schéma fonctionnel d'un mode de réalisation du composant mémoire comportant une logique de recouvrement de phase pour recaler l'horloge, - la figure 10 est un schéma fonctionnel d'une variante du composant de la figure 9, récupérant l'horloge à partir des données, - la figure 11 est un schéma fonctionnel d'un ordinateur de type PC pourvu d'un composant mémoire conforme à l'invention. Le schéma fonctionnel d'un composant mémoire multiport série SMDRAM conforme à l'invention est présenté à la figure 2. Il comprend un ensemble de n bancs mémoire à accès aléatoire RAM1.. RAMi... RAMn tels qu'on les trouve dans les composants mémoire DRAM actuels (16 bancs par exemple comme dans le composant "Direct RamBus", ou de 16 à 80 bancs comme dans les composants de "MoSyS",...), chacun de largeur correspondant à un bloc d'information bi dont une valeur typique est égale à 512 ou 1024 bits, cette valeur peut être doublée ou quadruplée pour suivre l'évolution des capacités de mémoire utilisées par banc; ces bancs sont juxtaposés pour fonctionner de façon indépendante et augmenter la bande passante mémoire. Associé à cet ensemble de bancs mémoire, on trouve un ensemble de n registres à décalages RDMi. RDMi... RDMn, chacun de capacité correspondante à un bloc d'information bi, et comprenant une entrée de commande de chargement ch, une interface parallèle de lecture/écriture 1/e et une interface d'entrée/sortie série e/s. Chaque registre à décalage RDMi est associé à un banc-mémoire RAMi et relié à celui-ci par son interface parallèle e/e. De cette façon, la lecture d'un bloc d'information dans un banc-mémoire RAMi est réalisée en un cycle mémoire, le registre à décalage RDMi étant chargé avec le bloc lu à l'issue de la lecture; de façon symétrique, l'écriture d'un bloc est réalisée en un cycle mémoire et permet de transférer le contenu du registre RDMi dans le banc-mémoire RAMi. Le composant comprend une logique crossbar bidirectionnelle CB qui possède une première interface, dite interne, et une seconde interface, dite externe. L'interface interne possède n ports d'entrée/sortie Pl..Pi..Pn, chacun connecté à l'interface d'entrée/sortie série e/s d'un registre à décalage RDMi, l'interface externe possédant n' ports d'entrée/sortie P'l...P'i'...P'n. De cette façon il est possible, dans le cas d'une lecture de bloc, d'établir un chemin temporaire entre la sortie série s d'un registre RDMi et un port quelconque p'i' de l'interface externe, et dans le cas d'une écriture de bloc, 12 2779843 d'établir un chemin temporaire entre un port quelconque p'i' de l'interface externe et l'entrée série e d'un registre RDMi. Le composant comprend des ports externes d'entrée/sortie de données Bd... .Bdi,....Bdn' constitués en l'exemple par une broche de connexion par port. Chaque port d'entrée/sortie de donnée Bdi, est connecté au port d'entrée/sortie externe correspondant p'i. de l'interface externe de la logique crossbar CB. De cette façon il est possible d'établir, via le crossbar CB, un chemin temporaire entre chaque registre à décalage RDMi et chaque port d'entrée/sortie de donnée Bdi, permettant de réaliser des transferts de blocs de données concurremment. En l'exemple, des broches externes d'entrée d'adresse Ba fournissent de façon classique au composant les paramètres d'adresse d'une requête mémoire: numéro du banc-mémoire, numéro du bloc dans le banc, numéro du mot dans le bloc et numéro du port externe d'entrée/sortie. Des broches externes d'entrée/sortie de commandes et d'états Bce fournissent également de façon classique les signaux de service associée à toute requête mémoire: validation de la requête (traditionnellement AS: Address Strobe), nature de la requête (traditionnellement R/W: Read ou Write), acquittement de la prise en compte de la requête (traditionnellement ACK: acknowledge), signal de sélection du circuit (traditionnellement CS: Chip Select) et enfin signal d'horloge H. Une logique de commande COMC est reliée aux broches externes d'entrée d'adresse Ba, aux broches externes d'entrée/sortie de commandes et d'états Bce, et à la logique crossbar CB pour commander cette logique. Elle est chargée de gérer les services communs du composant: prise en compte des signaux de commande et activation des signaux d'état Bce, gestion des servitudes de rafraîchissement des bancs mémoire RAMi et commande du crossbar CB. Les n logiques de commande COMI... COMi... COMn sont toutes reliées aux broches externes d'entrée d'adresse Ba, aux broches externes d'entrée/sortie de commandes et d'états Bce, à la logique COMC, chaque logique de commande COMi étant elle-même reliée à un banc-mémoire RAM1, au 13 2779843 registre à décalage correspondant RDMi, et à une logique de commande de décalage du registre CSRj, dite logique de comptage, qui est classiquement associée à chaque registre. Une opération de lecture bloc comporte les opérations suivantes. L'unitéfonctionnelle à l'origine de la requête a placé les paramètres d'adresse du transfert sur les broches Ba et le type de requête -lecture ici - sur la broche correspondante de l'ensemble Bce, puis activé la requête en positionnant le signal de validation de la requête sur la broche correspondante de l'ensemble Bce. Si le banc-mémoire RAMi concerné par l'opération est libre, l'opération peut continuer. Dans le cas contraire, elle est retardée jusqu'à la fin de l'opération en cours. L'unité fonctionnelle est prévenue de cet état de fait par non- activation immédiate du signal d'acquittement sur la broche correspondante de l'ensemble Bce. Dès que le banc est libre, la logique COMi associée au banc- mémoire RAMi effectue la lecture du bloc, l'adresse bloc étant prélevée sur les broches d'adresses Ba, puis charge le bloc lu dans le registre RDMi en activant l'entrée de commande de chargement ch du registre. Dans le même temps la logique COMC, à partir du numéro de banc-mémoire et du numéro du port externe d'entrée/sortie prélevés sur les broches d'adresses Ba, établit un chemin temporaire dans la logique crossbar CB mettant en relation la sortie s du registre RDMi avec le port externe d'entrée/sortie Bdi, concerné par l'opération. La logique de commande COMi active ensuite la logique de commande de décalage du registre CSR,, qui délivre exactement bi impulsions de décalage au registre RDMi, permettant de sortir en série les bi bits du bloc d'information contenus dans le registre RDMi sur le port externe d'entrée/sortie Bdr. La dernière impulsion de décalage met fin à l'opération de lecture et libère le banc RAMi pour une nouvelle opération. Une opération d'écriture bloc comporte les mêmes phases au départ, seul le type de requête étant différent, écriture ici. Dès que le banc est libre, la logique COMC, à partir du numéro de banc-mémoire et du numéro du port externe d'entrée/sortie prélevées sur les broches d'adresse Ba, établit un chemin temporaire dans le crossbar mettant en relation le port externe 14 2779843 d'entrée/sortie Bdi, concerné par l'opération et l'entrée e du registre RDMi, puis signale la réalisation de l'établissement du chemin par désactivation du signal d'occupation. L'unité fonctionnelle concernée par l'opération envoie alors exactement bi bits d'information sur le port externe d'entrée/sortie Bdi, qui sont mémorisés dans le registres RDMi, la logique CSRi délivrant exactement bi impulsions de décalage au registre RDMi, permettant de rentrer en série les bi bits du bloc d'information du port externe d'entrée/sortie dans le registre RDMi La dernière impulsion de décalage met fin à l'opération de transfert, et l'écriture du bloc d'information contenu dans le registre RDMi peut alors se faire dans le 1o banc RAMi sous le contrôle de la logique COMi. La fin de l'opération d'écriture libère le banc RAMi pour une nouvelle opération. Cette description détaillée d'une opération de lecture et d'écriture bloc permet de comparer le fonctionnement d'un composant mémoire SMDRAM et d'un composant mémoire conventionnel type. Tous deux comprennent un ensemble de bancs mémoire à accès aléatoire de même nature, un ensemble de broches externes d'adresses et de broches externes d'entrée/sortie de commandes et d'états de même nature, et un ensemble de broches externes d'entrée/sortie de donnée dont le fonctionnement est fondamentalement différent. Dans le cas d'un composant mémoire conventionnel, les broches externes d'entrée/sortie de données constituent un unique port d'entrée/sortie et chaque opération de lecture ou d'écriture sur cet unique port correspond à une donnée comportant un nombre de bits égal au nombre de broches de ce port, opération qui ne concerne qu'une seule unité fonctionnelle à la fois, unités fonctionnelles connectées à cette mémoire par un bus parallèle multipoint ou via un circuit de routage. Dans le cas du composant mémoire SMDRAM, les broches externes d'entrée/sortie de données constituent autant de ports d'entrée/sortie série indépendants, chaque port étant relié par une liaison série point à point à une unité fonctionnelle particulière, une même unité fonctionnelle pouvant par ailleurs disposer de plusieurs liaisons série indépendantes avec le composant mémoire SMDRAM. L'agencement interne du composant mémoire SMDRAM est conçu de façon à assurer le parallélisme interne des transferts de blocs, rendu possible par la présence de multiples ports d'entrée/sortie série de données. 2779843 L'utilisation de registres à décalages et d'un chemin établi pour la durée du transfert d'un bloc entre un banc-mémoire interne du composant mémoire SMDRAM et une unité fonctionnelle particulière, permet un transfert sans aucune rupture de rythme et autorise les débits les plus élevés rendus possible par la technologie mise en oeuvre dans le composant SMDRAM. Absence de rupture de rythme et liaison point à point permettent d'envisager des fréquences de transmission supérieures d'un ordre de grandeur au moins aux solutions parallèles multipoint. Les temps de servitude d'accès à une mémoire, à savoir le temps de transfert de l'adresse d'un bloc sur les broches externes d'adresses et le temps de lo lecture ou d'écriture du bloc dans le banc-mémoire interne ont un effet moindre lorsque la taille du bloc de données transféré augmente, puisque ces deux opérations concernent un ensemble de bits plus grand, le bloc étant lu ou écrit en un cycle mémoire dans tous les cas. La tendance à l'augmentation de la taille du bloc est pénalisante pour un composant mémoire conventionnel, puisque ce bloc transite par un unique port d'entrée/sortie de donnée dont la largeur est un sous- multiple de la taille du bloc, ce qui nécessite autant d'opérations de lecture ou d'écriture sur cet unique port. Les blocs doivent alors être transmis les uns derrière les autres sur cet unique port d'entrée/sortie, une unité fonctionnelle particulière devant attendre "son tour" pour être servie. Cette tendance à l'augmentation de la taille du bloc est par contre sans effet dans le cas du composant mémoire SMDRAM, puisque chaque unité fonctionnelle dispose d'une liaison privée autorisant des transferts simultanés de blocs. Il est à remarquer de plus que dans la plupart des cas, il n'est pas nécessaire que le bloc soit intégralement transmis à l'unité fonctionnelle pour libérer cette dernière de l'attente de ces données: l'arrivée du premier mot du bloc suffit à relancer son activité. La figure 3 présente un mode de réalisation préféré de l'ensemble des registres RDMI... RDMi... RDMn, du crossbar CB et de l'ensemble des ports d'entrée/sorties Bd,... Bdr... Bdn. Chaque registre à décalage RDMi est constitué par r sous-registres RDMil... RDMij.... RDMir, chacun de taille bi/r. La logique crossbar CB est constituée de r crossbars identiques CB 1... CBj...CBr et possède une interface interne à r voies 16 2779843 pi,....pij....pir par port d'entrée/sortie pi et une interface externe à r voies P'....i P'i'j...P'ir par port d'entrée/sortie p'r. Chaque entrée/sortie série d'un sous- registre RDMij est reliée à une voie Pij du port correspondant pi de l'interface interne de la logique crossbar et toutes les voies P'i'l.... P'i'j.. P'i'r de chaque port d'entrée/sortie p'r sont reliées à un port externe d'entrée/sortie Bdr via un multiplexeur-démultiplexeur MDr dont le rôle est de multiplier la fréquence de transmission sur ledit port externe dans un rapport r (ou sous-multiple de r). Une multiplication par r du nombre des registres RDMi (chaque exemplaire RDMij étant de taille réduite par un rapport r) et du crossbar CB ainsi que la mise en place des multiplexeurs-démultiplexeurs MDj, permet d'adapter la fréquence de transmission des bits à la technologie du composant. En effet, considérons un composant mémoire SMDRAM constitué de 16 bancs mémoire RAMi avec un temps de cycle de 60 nanosecondes (valeur actuelle), une taille de bloc bi de 512 bits, et 16 ports externes d'entrée/sortie Bdi. Le débit théorique maximum de ce composant est de (512x16) / 60x10-9, soit 17 GO/s. Pour obtenir ce débit il faut que les 512 bits de chaque registre RDMi soient décalés en 60 ns, ce qui donne une fréquence de transmission d'environ 8 Gigabits par seconde. Au lieu de décaler un seul registre de 512 bits à 8 Gigabits par seconde, un débit identique est obtenu en décalant, par exemple, 16 registres de 32 bits à 500 Mégabits par seconde chacun, ce qui nécessite alors autant de logiques crossbars. Cependant une fréquence de fonctionnement plus élevée peut être envisagée sur les broches d'entrée/sortie Bdi,, grâce au multiplexeur- démultiplexeur MDi (utilisation en multiplexeur pour le cas de la lecture d'un bloc, et en démultiplexeur dans le cas de l'écriture d'un bloc). Ainsi, les 16 voies (P'i'....P'r'j.... P'i'16) de chaque port d'entrée/sortie p', de l'interface externe de la logique crossbar peuvent être recombinées dans un rapport r, conduisant à un port externe d'entrée/sortie ne comportant qu'une seule broche mais fonctionnant avec un débit de 8 Gigabits par seconde. Dans le cas d'un rapport sousmultiple de r, par exemple r/2, le port externe d'entrée/sortie Bdi. comporte deux broches fonctionnant avec un débit de 4 Gigabits par seconde par broche. Le cas du sous- multiple r/16 correspond à une connexion directe: aucun multiplexeur- démultiplexeur MD, n'est nécessaire, mais le nombre de broches par port 17 2779843 d'entrée/sortie externe Bdi, est alors de 16. Ainsi il est possible d'adapter les fréquences de fonctionnement interne et de réduire autant que possible le nombre de broches des ports d'entrée/sortie externe Bdr en fonction de la technologie utilisée. La figure 4 présente un mode de réalisation de l'ensemble des registres RDMI... RDMi... RDMn qui est en particulier intéressant si le système informatique comporte une hiérarchie de mémoire cache. Un bloc d'information de taille bi est constitué de w mots (mots typiquement de 32 ou 64 bits, ce qui conduit à une valeur de w égale à 16 et 8 respectivement, pour une taille de bloc bi de 512 bits). La position de chaque registre RDMi en regard du premier bit de chaque mot est reliée à l'entrée d'un multiplexeur MUXii à w entrées. La sortie de ce multiplexeur MUXli associé au registre RDMi est connectée au port pi de l'interface interne du crossbar CB. Chaque registre à décalage RDMi est rebouclé sur lui-même via un multiplexeur à 2 voies MUX21, la seconde voie d'entrée étant connectée au port pi. Avec cet agencement, le mot demandé en lecture peut être transmis de façon simple en tête du bloc (ce mécanisme connu sous le nom de "wrapparound" est systématiquement mis en place dans les transferts entre mémoire centrale et cache de dernier niveau des processeur de traitement). Le fonctionnement de ce mode de réalisation est le suivant. Lors d'une requête de lecture, le bloc est lu et chargé dans le registre RDM,. Les paramètres d'adresse fournis sur les broches externes Ba comportent le numéro du mot demandé, ce qui permet à la logique COMi de déterminer la voie à ouvrir sur le multiplexeur MUXli, voie fixée pour toute la durée du transfert. Le rebouclage permet de faire suivre le reste des mots du bloc de façon circulaire. Ce mécanisme n'a pas lieu d'être pour une écriture. Le multiplexeur MUX2i est donc commandé par la logique COMi en fonction de la nature de l'opération, lecture ou écriture. Il faut noter que les modes de réalisation présentés aux figures 3 et 4 peuvent se combiner. Il suffit pour cela d'adjoindre un couple MUXlij, MUX2ij à chaque sous-registre RDMij, le mot étant considéré comme de taille divisée par un rapport r. 18 2779843 La figure 5 détaille une architecture possible pour la logique crossbar CB dans le cas o chaque port externe d'entrée/sortie p'i de cette logique crossbar CB et chaque port correspondant d'entrée/sortie de données Bdr ont des fonctions d'entrée et des fonctions de sortie séparées sur des broches différentes pour fonctionner de façon bidirectionnelle simultanée ("full duplex"). La logique crossbar CB comprend n multiplexeurs MUXel....MUXei....MUXen à n' entrées, et n' multiplexeurs MUXs1... MUXsr, ...DTD: MUXsn' à n entrées. La sortie de chaque multiplexeur MUXei est connectée au port de sortie ei de l'interface interne pi.... Pi..... pn de la logique crossbar, et toutes les n' entrées de tous les n multiplexeurs sont connectées aux entrées e'j de tous les ports d'entrée p'i....P'i.... P'n' de l'interface externe de la logique crossbar. De façon symétrique, la sortie de chaque multiplexeur MUXsr est connectée au port de sortie s'r de l'interface externe P'l....P'i....P'n' de la logique crossbar, et toutes les n entrées de tous les n' multiplexeurs MUXs, sont connectées aux sorties si de tous les ports de sortie Pi....Pi.....pn de l'interface interne de la logique crossbar. Les entrées de commande de chaque multiplexeur MUXei sont connectées aux sorties d'un registre Rej, et de façon symétrique les entrées de commande de chaque multiplexeur MUXs, sont connectées aux sorties d'un registre Rsj,. Un bus nREQ relie la logique COMC à toutes entrées de tous les registres Rej ainsi qu'aux entrées d'un décodeur DECe, et de façon symétrique, un bus nBANK relie la logique de commande COMC à toutes entrées de tous les registres Rsi ainsi qu'à un décodeur DECs. Le décodeur DECe comporte n sorties, chacune reliée à l'entrée de chargement d'un registre Rej. Le décodeur DECs comporte n' sorties, chacune reliée à l'entrée de chargement d'un registre Rs,. Enfin un signal nREQL relie la logique de commande COMC à l'entrée de validation du décodeur DECs, et de façon symétrique, un signal nBANKE relie la logique de commande COMC à l'entrée de validation du décodeur DECe. Dans le cas o la logique crossbar CB est constituée de r crossbars identiques CB1... CB,... CBr, alors chaque port externe d'entrée/sortie de données Bd, comprend 2h paires de broches de connexions, o h=0,1,2 ou 3, les deux broches d'une paire assurant respectivement l'une la fonction d'entrée, l'autre la fonction de sortie. 19 2779843 Le fonctionnement de la logique crossbar ci-dessus décrite est le suivant. Dans le cas d'une requête de lecture, la logique crossbar CB met en relation la sortie si du port pi de l'interface interne à n ports P... .i.....Pn avec la sortie s'r du port p'r de l'interface externe à n' ports p'....P'....P'n'. A cet effet, le numéro du banc-mémoire prélevé sur les broches d'adresses Ba est placé sur le bus nBANK par la logique de commande COMC et le numéro du port externe d'entrée/sortie mémoire prélevé sur les broches d'adresses Ba est placé sur le bus nREQ par la logique de commande COMC, puis le signal nREQL est activé, ce qui a pour effet de charger dans le seul registre Rsr pilotant le multiplexeur MUXsr l'information délivrée par le bus nBANK et représentant le numéro de port pi à aiguiller et laisser passer vers le port p'r,. Un raisonnement identique permet de façon symétrique de mettre en relation le port p'r avec le port pi, le signal d'activation étant dans ce cas nBANKE. Ce fonctionnement montre qu'il est possible d'établir simultanément un grand nombre de liens temporaires entre les registres RDMi et les ports externes d'entrée/sortie de données Bd, afin de réaliser concurremment et indifféremment des opérations de lecture ou d'écriture de bloc, sous réserve que toutes ces opérations concernent des bancs mémoire différents dans le temps de leur opération. On notera qu'il est possible qu'un même port externe d'entrée/sortie de données Bdr soit simultanément en train de participer à une lecture et une écriture, à condition que ces opérations concernent des bancs mémoire différents. Cette dernière contrainte est levée par la modification représentée à la figure 6, dans laquelle chaque registre à décalage RDM, avec sa logique de comptage CSRi est doublé d'un second registre RDM, avec sa logique de comptage CSR,.. Le premier registre RDMi est connecté par la sortie série s de son interface e/s au port pi correspondant de l'interface interne de la logique crossbar CB, le second registre RDMr étant connecté audit port pi par l'entrée série e de son interface e/s, de façon à autoriser des transferts simultanés, sur un même banc- mémoire, l'un en lecture et l'autre en écriture, de blocs bi entre lesdits registres et des ports externes d'entrée/sortie de données Bd,... Bdr,... Bdn'. 2779843 La figure 7 représente une variante dans laquelle chaque port externe d'entrée/sortie de données Bdi. a des fonctions entrée et des fonctions de sortie multiplexées pour fonctionner en bidirectionnel à l'alternat ("half duplex"). A cet effet, la sortie s'r de chaque port d'entrée/sortie pr de l'interface externe de la logique crossbar CB est connectée à l'entrée d'une porte trois-états TS.i,, la sortie de cette dernière étant reliée à l'entrée el, de chaque port d'entrée/sortie pi, de l'interface externe de la logique crossbar, elle- même reliée au port externe d'entrée/sortie de données Bdi,. Ainsi chaque broche de connexion du port externe d'entrée/sortie de données Bdi, fonctionne soit en io mode entrée, soit en mode sortie. L'entrée de commande de la porte trois-états TSr1 est connectée à la sortie Q d'une bascule DIRi,. L'entrée S de cette bascule est connectée à la sortie i du décodeur déjà cité DECs, et l'entrée R est connectée à la sortie d'un multiplexeur MUXSsi,. Ce multiplexeur MUXSsi, possède n entrées qui sont chacune connectée au signal STi issu de chaque logique de commande CSRi. Enfin l'entrée de commande de ce multiplexeur MUXSs, , est connectée à la sortie du registre Rsi. déjà cité. Le fonctionnement est alors le suivant. Un état repos est défini comme étant le mode entrée pour le port externe d'entrée/sortie de données Bdi, , c'est à dire que la porte trois états TSi, est bloquée et que le fonctionnement est le même que dans le cas bidirectionnel simultané correspondant à une écriture. Dans le cas d'une lecture, la porte trois- états TSi, est débloquée par la mise à un de la bascule DIR,, opération réalisée en même temps que l'établissement du chemin dans le crossbar CB, c'est à dire en utilisant le signal de chargement du registre Rsr comme signal de mise à un sur l'entrée S de la bascule DIR,,. Le port externe d'entrée/sortie de données Bdi, est alors en mode sortie. La logique de comptage CSR, du registre concerné par l'opération de lecture génère un signal STi à l'issue du décalage des bi bits du bloc de donnée contenus dans le registre RDMi. Ce signal est aiguillé à travers le multiplexeur MUXSsi,, opération d'aiguillage préétablie en même temps que l'établissement du chemin dans le crossbar CB grâce au chargement dans le registre Rsi, du numéro de banc-mémoire concerné par l'opération de lecture, vers l'entrée R de mise à zéro de la bascule DIRi: l'opération de lecture est 21 2779843 terminée et le port externe d'entrée/sortie de données Bdi, repasse en mode entrée. Dans le cas o la logique crossbar CB est constituée de r crossbars identiques CBi....CBi....CBr, alors chaque port externe d'entrée/sortie de données Bdi, comprend 2h broches de connexions, ou h=0,1,2 ou 3, et chaque broche a sa propre barrière trois-états, la sortie Q de la bascule DIRi, commandant alors l'ensemble des barrières trois-états du port externe d'entrée/sortie de données Bdi,. Le dédoublement des registres représenté à la figure 6 et décrit plus haut peut être combiné à cette variante pour permettre o0 d'opérer simultanément sur un même banc-mémoire une lecture et une écriture provenant de deux ports d'entrée/sortie Bdi, différents. La figure 8 représente une réalisation possible d'un sous- ensemble du composant, dans laquelle une broche externe d'entrée/sortie de commandes et d'états Bce dite broche d'horloge H, destinée à recevoir un signal i5 d'horloge, est reliée, à travers la logique de comptage CSRi, à l'entrée de commande de décalage de chaque registre à décalage RDMi, en vue de distribuer le signal d'horloge vers lesdits registres. A cet effet, la broche d'horloge H est reliée à l'entrée d'une porte ET ETHi et à une logique de détection de début de bloc. L'ensemble marqué PHi ne comporte ici pas d'éléments autres que ceux signalés à la phrase précédente, mais va permettre d'illustrer plus clairement le rôle des logiques décrites aux figures suivantes. L'autre entrée de la porte ET ETHi est connectée à la sortie Q d'une bascule ENHi. La sortie de la porte ET ETHi est connectée à l'entrée d'horloge de décalage du registre RDMi et à l'entrée de décomptage d'un compteur modulo bi DCPi. La sortie de la porte OU OUHi est reliée à l'entrée S de mise à un de la bascule ENHi. La porte OU OUI-i reçoit sur l'une de ses entrée un signal de la logique COMi et sur l'autre entrée un signal de la logique de détection de début de bloc. La sortie de passage à zéro "borrow" du compteur DCPi est reliée à l'entrée R de remise à zéro de la bascule ENH, et fournit à la logique COMi un signal STi. Le fonctionnement de cette logique est le suivant. 22 2779843 Dans le cas de la lecture d'un bloc, et lorsque ce dernier a été chargé dans le registre RDMi, la logique de commande COMi met à un la bascule ENHi à travers la porte OU OUHi, ce qui a pour effet de laisser passer les impulsions de l'horloge H à travers la porte ET ETHi. A l'issue d'exactement bi tops d'horloge, le décompteur DCPi émet un signal qui remet la bascule ENHi à zéro. Ainsi exactement bi tops d'horloge ont été envoyés sur l'entrée de décalage du registre RDMi, ce qui a permis de "sortir" en série le bloc d'information contenu dans le registre. Le cas de l'écriture enclenche le même mécanisme, mais activé par la logique de détection de bloc qui met à un la bascule ENHi à travers l'autre entrée de la porte OU OUHi. Le bloc en écriture est précédé d'un bit de start, détecté de façon classique par une logique de détection de début de bloc DDBi, le signal de donnée en provenance de l'entrée e de l'interface interne du port d'entrée/sortie pi de la logique crossbar CB étant également reliée à ladite logique. Ainsi exactement bi tops d'horloge ont été envoyés sur l'entrée de décalage du registre RDMi, ce qui a permis de "rentrer" en série le bloc d'information en provenance de l'entrée e de l'interface interne du port d'entrée/sortie Pi de la logique du crossbar CB. Dans les deux cas, le signal STi indique la fin de l'opération de décalage. La figure 9 représente une logique de recouvrement de phase de l'horloge PHi qui peut être disposée sur la liaison reliant la broche d'entrée d'horloge H et l'entrée de commande de décalage. Ladite logique de recouvrement de phase PHi est reliée à l'interface d'entrée/sortie série e/s du registre pour identifier chaque début de bloc d'information bi et fournir la phase. A cet effet, l'horloge H est reliée sur une entrée d'une porte ET ETC3j, puis sur une entrée d'une porte ET ETC2i après avoir été retardée de un tiers de sa période, puis sur une entrée d'une porte ET ETC1, après avoir été retardée à nouveau de un tiers de sa période. En regard de chaque porte ET ETCji, ETC2i, ETC3i sont placées trois bascules Bli, B2i, B3I, la sortie Q de chacune de ces bascules étant connectée sur une entrée des deux portes ET qui ne lui sont pas en regard. L'entrée e de l'interface interne du port d'entrée/sortie Pi du crossbar CB est reliée à l'entrée D des trois bascules Bli, B2i, B3i. La sortie de chaque porte ET ETC1j, ETC2i, ETC3i est reliée respectivement à l'entrée d'horloge C de chaque 23 2779843 bascule Bli, B2i, B3i, ainsi qu'à une entrée de la porte OU OUCi, la sortie de cette dernière fournissant le signal d'horloge mis en phase. Comme déjà signalé, ce mécanisme n'est activé qu'en cas d'écriture de bloc, le cas de la lecture conduisant à utiliser directement l'horloge H comme indiqué en commentaire de la figure précédente. L'objectif de cette logique PHi est de fournir des impulsions de décalage au registre RDMi dont les transitions coïncident avec le milieu des bits reçus afin de les échantillonner correctement. Ce mécanisme permet de s'affranchir de la longueur des connexions entre la mémoire SMDRAM et les unités fonctionnelles qui y sont connectées. Il suppose que toutes les unités fonctionnelles constituant le système informatique soient synchrones d'une même horloge centrale, la détection du milieu du premier bit entraînant automatiquement le cadrage de tous les bits qui suivent. Lors de l'arrivée du bit de start, la prochaine transition de l'horloge H ou H+T/3 ou H+2T/3 va mettre la bascule en regard à l'état "un" et empêcher les is5 deux autres bascules de faire de même, le temps de traversée des couches logiques devant être inférieure au 1/3 de la période T de l'horloge. Ainsi la bascule active laisse passer les impulsions d'horloge qui sont en regard, impulsions que l'on retrouve sur la sortie du OU OUCi, avec une phase corrélée au bit de start. La figure 10 présente l'utilisation d'un circuit DHi de recouvrement de l'horloge à partir des données, disposée sur la liaison reliant la broche d'entrée d'horloge et l'entrée de commande de décalage. Ladite logique de recouvrement d'horloge DHi est reliée à l'entrée e de l'interface interne du port d'entrée/sortie Pi pour identifier chaque début de bloc d'information bi, fournir et maintenir la phase. Ce type de circuit est utilisé de façon classique dans le cas de communications distantes o les horloges des systèmes en communication sont indépendantes. A titre d'exemple, on peut citer les circuits émetteur- récepteur de chez "VITESSE TECHNOLY" (référence "VSC 7125/VSC7126" pour 1 gigabit par seconde) ou de chez "HEWLETT PACKARD" (référence "HDMP- 1002/HDMP-1004" pour 1,4 gigabit par seconde). Dans ce cas, le bloc est précédé d'une en-tête de synchronisation permettant de synchroniser l'horloge réception sur l'horloge émission, ce qui 24 2779843 signifie que ce circuit identifie également le début de bloc. De plus l'information est encodée, par exemple en code 4B/5B ou 8B/1OB, afin de permettre le maintien de la phase de l'horloge réception sur l'horloge émission. Il est à noter que ce type de circuit assure le multiplexage, en lecture, et le démultiplexage, en écriture, des données sur 4 ou 8 bits selon le circuit, et peut être utilisé de façon préférentielle comme logique de multiplexage/démultiplexage MDi représentée à la figure 3, assurant ainsi la multiplication de la fréquence de transmission sur le port externe Bdi, dans un rapport 4 ou 8. La figure 11 présente l'architecture d'un ordinateur de type 0o possédant des microprocesseurs de traitement (en l'exemple deux PE et PE') et les hiérarchies de mémoires cache correspondantes L1, L2 et LI', L2'. Cet ordinateur est équipé d'un composant mémoire multiport série conforme à l'invention SMDRAM, le cache de dernier niveau L2, L2' de chaque microprocesseur de traitement étant relié audit composant mémoire par des liaisons série adaptées pour permettre le transfert de blocs d'information bi à un débit de transfert au moins égal à 1 gigabit par seconde par liaison. Dans ce qui suit, chaque microprocesseur et ses mémoires caches sont assimilés et les liaisons avec l'extérieur sont faites sur la mémoire cache de dernier niveau L2 ou L2' comme indiqué à la figure 11. Chaquemicroprocesseur PE, PE' (en fait le cache de dernier niveau L2, L2' de celui-ci) possède des entrées/sorties série de données reliées par des liaisons série LS1, LS2..., LS'l, LS2... à des ports externes d'entrée/sortie de données Bdr... Bdn du composant mémoire SMDRAM. Les sorties d'adresses de chaque microprocesseur sont reliées par un bus d'adresse BDR à l'ensemble des broches externes d'entrée d'adresses Ba du composant mémoire SMDRAM. De façon analogue, les signaux de commandes et d'états correspondant aux opérations de transfert transitent sur un bus BCE (confondu sur la figure 11 avec le bus BDR) relié à l'ensemble des broches externes de commandes et d'états Bce. L'ordinateur comprend en outre, d'une part, un processeur graphique GP possédant des entrées/sorties série de données et des sorties d'adresses, d'autre part, au moins une interface d'entrée/sortie de périphérique BRG, possédant des entrées/sorties série de données et des sorties d'adresses, qui sont reliées à des ports externes d'entrée/sortie de données 2779843 Bdl,...Bdn. du composant mémoire SMDRAM par des liaisons série LSg, LSb adaptées pour permettre le transfert de blocs d'information à un débit de transfert au moins égal à 1 gigabit par seconde par liaison. Les sorties d'adresses desdits processeur graphique GP et interface de périphérique BRG sont reliées au bus d'adresse BDR. A titre d'exemple, un processeur de traitement PE peut être un processeur de la famille "INTEL" équipant préférentiellement un PC, un processeur "SPARC" ou "HP" équipant préférentiellement une station de travail, ou un processeur "MIPS" équipant préférentiellement une console de jeu, les trois exemples de type d'ordinateur cités présentant une architecture générale identique à celle présentée à la figure 11. Processeurs de traitement et hiérarchies de caches correspondants ne sont pas affectés par la mise en oeuvre d'un composant mémoire de type SMDRAM, à l'exception du dernier niveau de cache qui doit être organisé de façon multiport série, en particulier, ce composant peut être constitué par un composant mémoire du type de celui décrit dans le brevet précité EP-0 346 420. Le fonctionnement du couple: dernier niveau de cache L2/composant mémoire SMDRAM est le suivant. Un défaut d'information sur le cache L2 entraîne une demande de lecture de bloc à la mémoire SMDRAM, l'adresse de ce bloc étant transmise à la mémoire via le bus d'adresses BDR. Le cache étant non bloquant, le processeur de traitement poursuit son exécution, ce qui peut conduire à d'autres défauts d'information sur le cache L2, et entraîne à chaque fois un transfert d'adresse à la mémoire via le bus BDR. Ainsi un maximum de k transferts, k étant le nombre de liaisons série de données entre le cache L2 et la mémoire SMDRAM, peuvent être en cours simultanément, et à des degrés d'avancement divers. On notera l'intérêt de ces multiples chemins d'accès à la mémoire. Dans une architecture conventionnelle ne comportant qu'un seul bus de données, les blocs sont transmis un par un, les uns à la suite des autres. Par exemple, sur un bus de données parallèle de 64 bits de large, un bloc est en général transmis en 4 cycles bus, mot demandé en tête. Un dispositif de "by-pass" dans le cache L2 permet de fournir sans délai le mot demandé au processeur, sans attendre l'arrivée complète du bloc. Mais il faut attendre 26 2779843 l'arrivée complète du premier bloc pour disposer du premier mot du second bloc, et ainsi de suite. Dans le cas de l'architecture précitée comportant un composant mémoire multiport série SMDRAM, les mêmes mécanismes de transfert mot demandé en tête et de "by-pass" permettent de fournir le premier mot de chaque bloc en recouvrement de transfert, assurant ainsi un meilleur niveau de performances. Dans le cas o le bus de données parallèle comporterait un bus de 256 bits de large, on retrouverait bien sûr au moins le même niveau de performance, mais avec des conséquences sur les bus et la mémoire qui rendent cette solution quasiment impraticable, pour des raisons déjà mentionnées. Sur la figure 11, une liaison série LSg relie le processeur graphique à la mémoire SMDRAM. On retrouve avec un débit de 2 gigabits par seconde un débit équivalent au tout nouveau bus "AGP" apparu dans les ordinateurs PC. De façon identique, la liaison série LSb qui relie l'interface de périphérique BRG (réalisant une passerelle avec, par exemple, un bus à la norme PCI), et la mémoire SMDRAM, dispose avec un débit de 1 gigabit par seconde d'un débit équivalent au bus PCI fonctionnant à 33 MHz et sur 32 bits. On notera que la mise en oeuvre d'un composant mémoire multiport série SMDRAM facilite la mise en oeuvre de liaisons mémoire directes, comme par exemple dans le cas du développement du bus "AGP" dont le but a été de déplacer le processeur graphique du bus PCI vers une liaison privée avec la mémoire, afin d'obtenir un meilleur niveau de performances. Ainsi le contrôleur disque ou le contrôleur de réseau peuvent de la même façon être déplacés du bus d'entrées/sorties PCI vers une interface privée avec la mémoire SMDRAM, réalisée par le biais de liaisons série LS'b. Le processeur graphique GP et l'interface d'entrées/sorties de périphérique BRG sont connectés au bus d'adresse BDR, comme le montre la figure 11, pour fournir les adresses de blocs de données. Cependant, dans le cas d'un multiprocesseur, le bus d'adresse BDR joue, de façon classique, un rôle supplémentaire lié au maintien de la cohérence des données dans les caches. Afin de limiter la charge du bus BDR, il est possible, pour les blocs de données qui ne sont pas concernés par ce maintien de la cohérence, de transmettre les adresses de blocs par les liaisons série elles-mêmes. Ceci peut concerner le processeur graphique et l'interface d'entrées/sorties de périphérique, pour lesquels le 27 2779843 maintien de la cohérence des données peut être réglé de façon simple et classique par logiciel. Ceci peut également concerner les processeurs PE, PE', pour la purge de blocs depuis les caches de dernier niveau des processeurs de traitement vers la mémoire SMDRAM. Il est à noter que la mémoire SMDRAM est adaptée au transfert de blocs de données de taille bi, et qu'il n'existe plus de liaison directe du processeur de traitement vers le processeur graphique et l'interface d'entrées/sorties de périphérique. La gestion de ces composants peut nécessiter des opérations de lecture ou d'écriture de mots, ce qui peutêtre réalisé par la o0 mise en place d'un bus série dans le standard IEEE P1795 comme le montre la figure 1 1. Finalement, il faut noter que les liaisons séries LSI, LS2 peuvent être réalisées de façon indifférente par des liaisons électroniques ou des liaisons optiques, ce dernier cas nécessitant de façon classique la mise en place de transducteurs électronique/optique et optique/électronique. 28 2779843 REVENDICATIONS 1/- Composant mémoire multiport série, caractérisé en ce qu'il comprend en combinaison: - un ensemble de -n- bancs-mémoire à accès aléatoire (RAMI... RAMi...RAMn), chacun de largeur correspondant à un bloc d'informations (bi), - un ensemble d'au moins -n- registres à décalage (RDM1... RDMi... RDMn), chacun de capacité correspondant à un bloc d'informations (bi) et comprenant une entrée de commande de chargement (ch), une interface parallèle de lecture/écriture (/e) et une interface d'entrée/sortie série (e/s), chaque registre à décalage (RDMi) étant associé à un banc-mémoire (RAMi) et relié à celui-ci par son interface parallèle (e/e), - une logique cross-bar bi-directionnelle (CB) ayant une première interface, dite interne, et une seconde interface, dite externe, l'interface interne possédant n ports d'entrée/sortie (pl p... Pi n), chacun connecté à l'interface d'entrée/sortie série d'un registre à décalage (RDMi), l'interface externe possédant n' ports d'entrée/sortie (p'l... P'i... P'n), - un ensemble de ports externes d'entrée/sortie de données (Bdl... Bdi.... Bdn,), chaque port externe comprenant au moins une broche de connexion, ledit ensemble étant connecté aux ports d'entrée/sortie (P'... P'i... P'n,) de l'interface externe de la logique cross-bar (CB) en vue de permettre pour chaque port externe (p'r) un transfert série de blocs d'information (bi) indépendant des transferts séries des autres ports externes, - un ensemble de broches externes d'entrée d'adresses (Ba), - un ensemble de broches externes d'entrée/sortie de commandes et d'états (Bce), - une logique de commande (COMe) de la logique cross-bar (CB), reliée aux broches externes d'entrée d'adresses (Ba), aux broches externes d'entrée/sortie de commandes et d'états (Bce) en vue d'établir les interconnexions temporaires de la logique cross- bar (CB), 29 2779843 -un ensemble de -n- logiques de commande (COM1... COMi... COMn) toutes reliées aux broches externes d'entrée d'adresses (Ba) et aux broches externes d'entrée/sortie de commandes et d'états (Bce), chaque logique de commande (COMi) étant reliée à un banc-mémoire (RAMi), au registre à décalage correspondant (RDMi) et à la logique cross-bar (CB) en vue d'engendrer les transferts de blocs d'informations (bi) entre le banc-mémoire concerné (RAMi) et son registre à décalage (RDMi), et les transferts entre ledit registre à décalage (RDMi) et les ports externes d'entrée/sortie de données (Bdl... Bdi,... Bdn,) via la logique cross-bar (CB). 2/- Composant mémoire multiport série selon la revendication 1, caractérisé en ce que: - chaque registre à décalage (RDMi) est constitué par r sous-registres (RDMil... RDMir), chacun de taille bi/r, - la logique cross-bar (CB) est constituée de r cross-bars identiques (CBl... CB,) et possède une interface interne à r voies (pi. pij.... Pir) par ports d'entrée/sortie (pi) et une interface externe à r voies (P'i'... p'ij... P 'i'r) par ports d'entrée/sortie (p'i'), - chaque entrée/sortie série d'un sous-registre (RDMij) est relié à une voie (pij) du port correspondant pi de l'interface interne de la logique cross-bar, - toutes les voies (P'i'... P'ij'... P'ir') de chaque port d'entrée/sortie (p'i) de l'interface externe de la logique cross-bar sont reliées à un port externe d'entrée/sortie (Bdi,) via un multiplexeur-démultiplexeur (MDi) en vue de multiplier la fréquence de transmission sur ledit port externe dans un rapport r ou sous-multiple de r. 3/- Composant mémoire multiport série selon l'une des revendications 1 ou 2, dans lequel chaque bloc d'information (bi) est composé d'unités d'information désignées "mot", caractérisé en ce que chaque registre à décalage (RDMi) est du type rebouclé sur lui-même via un premier multiplexeur (MUX1i), ledit registre étant associé à un second multiplexeur (MUX2i) en vue de transmettre le mot demandé en tête de bloc. 2779843 4/- Composant mémoire multiport série selon l'une des revendications 1, 2 ou 3, dans lequel chaque registre à décalage (RDMi) est doublé d'un second registre (RDM'i) de même capacité, le premier registre (RDMi) étant connecté par la sortie série (s) de son interface (e/s) au port (pi) correspondant de l'interface interne de la logique cross-bar (CB), le second registre (RDM'i) étant connecté audit port (pi) par l'entrée série (e) de son interface (e/s), de façon à autoriser des transferts simultanés des blocs (bi) entre lesdits registres et un ou des ports externes d'entrée/sortie de données (Bd,... Bdi... Bdn,). 5/- Composant mémoire multiport série selon l'une des revendications 1, 2, 3 ou 4, dans lequel chaque port externe d'entrée/sortie (p'i) de la logique cross-bar (CB) et chaque port externe correspondant d'entrée/sortie de données (Bdi) ont des fonctions d'entrée et des fonctions de sortie séparées sur des broches différentes pour fonctionner de façon bidirectionnelle simultanée ("full duplex").. 6/- Composant mémoire multiport série selon la revendication 5, dans lequel chaque port externe d'entrée/sortie de données (Bdi,) comprend 2h paires de broches de connexion, o h = 0, 1, 2 ou 3, les deux broches d'une paire assurant respectivement l'une la fonction d'entrée, l'autre la fonction de sortie. 7/- Composant mémoire multiport série selon l'une des revendications 1 à 4, dans lequel chaque port externe d'entrée/sortie de données (Bd,) a des fonctions d'entrée et des fonctions de sortie multiplexées pour fonctionner en bidirectionnel à l'alternat ("half duplex"). 8/- Composant mémoire multiport série selon la revendication 7, dans lequel chaque port externe d'entrée/sortie de données (Bdi,) comprend 2h broches de connexion, o h = 0, 1, 2, ou 3. 9/- Composant mémoire multiport série selon l'une des revendications 1 à 8, dans lequel une broche externe d'entrée/sortie de commandes et d'états (Bce), dite broche d'entrée d'horloge (H), destinée à recevoir un signal d'horloge, est reliée à une logique de comptage (CSRi) adaptée pour délivrer bi impulsions d'horloge vers ledit registre à décalage (RDMi). 31 2779843 /- Composant mémoire multiport série selon la revendication 9, dans lequel chaque registre à décalage (RDMi) est associé à une logique de recouvrement de phase de l'horloge (PHi) disposée sur la liaison reliant la broche d'entrée d'horloge (H) et l'entrée de commande de décalage, ladite logique de recouvrement de phase (PHi) étant reliée à l'interface d'entrée/sortie série (e/s) du registre pour identifier chaque début de bloc d'information (bi) et fournir la phase. 11/- Composant mémoire multiport série selon la revendication 9, dans lequel chaque registre à décalage (RDMi) est associé à une logique (DHi) de recouvrement de l'horloge à partir des données, disposée sur la liaison reliant la broche d'entrée d'horloge et l'entrée de commande de décalage, ladite logique de recouvrement de l'horloge (DHi) étant reliée à l'interface d'entrée/sortie série (e/s) du registre pour identifier chaque début de bloc d'information (bi), fournir et maintenir la phase. 1 5 12/- Composant mémoire multiport série conforme à l'une des revendications 1 à 11, constitué par un circuit intégré. 13/- Ordinateur du type possédant au moins un microprocesseur de traitement (PE, PE') avec sa hiérarchie de mémoires caches (L1, L2..., LI', L2'...), caractérisé en ce qu'il comprend au moins un composant mémoire multiport série (SMDRAM) conforme à l'une des revendications 1 à 12, chaque microprocesseur de traitement (PE, PE') étant relié à chaque composant mémoire par des liaisons séries (LS1, LS2..., LS'l, LS'2... )adaptées pour permettre le transfert de blocs d'information (bi) à un débit de transfert au moins égal à 1 gigabit par seconde par liaison. 14/- Ordinateur selon la revendication 13, dans lequel chaque microprocesseur (PE, PE') possède des entrées/sorties séries de données et des sorties d'adresses, caractérisé en ce que les entrées/sorties séries de données de chaque microprocesseur sont reliées par les liaisons séries à des ports externes d'entrée/sortie de données (Bd,... Bdn.) du composant mémoire (SMDRAM), et en ce que les sorties d'adresses dudit microprocesseur sont reliées par un bus d'adresse (BDR) à l'ensemble des broches externes d'entrée d'adresses (Ba) dudit composant mémoire. 32 2779843 /- Ordinateur selon la revendication 14 du type comprenant, d'une part, un processeur graphique GP possédant des entrées/sorties séries de données et des sorties d'adresses, d'autre part, au moins une interface d'entrée/sortie de périphérique, dite interface de périphérique (BRG), possédant des entrées/sorties séries de données et des sorties d'adresses, caractérisé en ce que les entrées/sorties série de données du processeur graphique (GP) et de chaque interface de périphérique (BRG) sont reliées à des ports externes d'entrée/sortie de données (Bdl.. . Bdn,) du composant mémoire (SMDRAM) par des liaisons série (LSg, LSb) adaptées pour permettre le transfert de blocs d'information (bi) à un débit de transfert au moins égal à 1 gigabit par seconde par liaison, et en ce que les sorties d'adresses desdits processeur graphique et interface de périphérique sont reliées au bus d'adresses (BDR).