Brevet FR2624631A1 — publié le 19890616

SYSTEME MULTIPROCESSEUR, PROCEDE D'ECHANGE D'INFORMATIONS MIS EN OEUVRE ET COMPOSANT MéMOIRE MULTIPORT SERIE SUSCEPTIBLE D'EOUIPER LEDIT SYSTEME L'invention concerne un système multiprocesseur de type comprenant une mémoire centrale, des processeurs de traitement et des mémoires-caches associées aux processeurs de traitement. Elle s'étend à un procédé d'échange d'informations entre mémoire centrale et processeurs de traitement via la mémoire-cache associée è chacun de ces processeurs. Elle vise également un nouveau composant circuit intégré, susceptible d'équiper le système multiprocesseur. On sait que, dans les systèmes muit iprocesseurs connus les plus usuels, toutes les informations (données, adresses) transitent par un bus commun parallèle de communication entre la mémoire centrale et les divers processeurs de traitement, qui constitue un goulot d'étranglement : son débit est en effet insuffisant pour alimenter tous les processeurs à plein rendement, à partir d'une mémoire centrale commune. Pour augmenter le débit de transfert d'informations, une première solution consiste à associer à chaque processeur de traitement une mémoire-cache qui, par la localité de l'information, permet de réduire les demandes vers la mémoire centrale. Toutefois, dans le cas ou le volume de données partagées entre processeurs est substantiel, le maintien de la cohérence des données entre mémoires engendre un trafic d'informations complémentaire sur le bus de communication qui s'oppose à une réduction significative du débit global sur ce bus et, donc, enlève une grande partie de son intérêt à cette solution. Une autre solution consiste è réaliser le bus de communication sous la forme d'un réseau maillé désigné par "crossbar", qui permet une communication directe entre chaque processeur de traitement et chaque sous-ensemble de la mémoire centrale (banc-mémoire). Toutefois, cette solution est très lourde et très coûteuse à réaliser du fait du nombre très élevé d'interconnexions, et elle devient totalement irréaliste au-delà d'une dizaine de processeurs de traitement. De plus, en cas de demandes multiples de plusieurs processeurs sur un même banc-mémoire, une telle solution implique des conflits d'accès, source de ralentissement des échanges. Une autre solution plus courante en raison de sa simplicité architecturale consiste 8 associer une mémoire locale h chaque processeur de traitement pour stocker des données spécifiques à celui-ci, et à mémoriser les données partagées dans la mémoire centrale commune. Toutefois, le gros défaut de cette architecture est sa non-transarence, c'est-à- dire la nécessité pour le programmeur d'organiser le détail des affectations des données dans les diverses mémoires, de sorte que cette solution est d'utilisation très contraignante. De plus, en cas de volume élevé de données partagées, elle peut conduire comme précédemment à une saturation du bus d'accès à la mémoire centrale. Par ailleurs, une solution dite "architecture aquarius" a été proposée par l'Université de Berkeley et consiste à améliorer la solution crossbar précitée en combinant au réseau crossbsr, d'une part, pour les données non partagées, des mémoires-caches qui sont connectées au réseau crossbar, d'autre part, pour les données partagées, des mémoires-caches distinctes' qui sont connectées à un bus commun de synchronisation. Cette solution apporte un gain en rapidité d'échanges mais demeure très lourde et très coûteuse à réaliser. La présente invention se propose de fournir une nouvelle solution, permettant d'augmenter considérablement les débits d'échange d'informations, tout en gardant une architecture transparente pour l'utilisateur, beaucoup plus simple que l'architecture crossbar. Un objectif de l'invention est ainsi de permettre d'augmenter notablement le nombre de processeurs de traitement du système, tout en bénéficiant d'un rendement élevé pour chaque processeur. Un autre objectif est de fournir une structure de composant circuit intégré, permettant une réalisation très simple de l'architecture de ce nouveau système multiprocesseur. A cet effet, le système multiprocesseur visé par l'invention est du type comprenant une mémoire centrale (RAM) organisée en blocs d'informations (bi), des processeurs de traitement (CPUl... CPUj... CPUn), une mémoire-cache (MCj) reliée à chaque processeur de traitement (CPUj) et organisée en blocs d'informations (bi) de même taille que ceux de la mémoire centrale, un répertoire (RGj) et son processeur de gestion (PGj) associés à chaque mémoire-cache (MCj), des moyens de communication d'adresses deblocs entre processeurs (CPUj) et mémoire centrale (RAM) ; selon la présente invention, ledit système multiprocesseur es-t doté d'un ensemble de registres a décalage, dit registres à décalage mémoire (RDM1... RDMj...ROMn), chaque registre (RDMj) de cet ensemble étant connecté à la mémoire centrale (RAM) de façon à permettre, en un cycle de cette mémoire, un transfert parallèle en lecture ou écriture d'un bloc d'informations (bi) entre ledit registre et ladite mémoire centrale, de registres à décalage, dits registres à décalage processeur (RDP1... RDPj... RDP@), chaque registre a décalage processeur (RDPj) étant relié à la mémoire cache (MCj) d'un processeur (CPUj) -de façon à permettre un J J transfert parallèle en lecture ou écriture d'un bloc d'informations (bi) entre ledit registre à décalage (RDPj) et ladite mémoire-cache (MCj), d'un ensemble de liaisons séries (LS1... LSj... LSn) chacune reliant un registre à décalage mémoire (RDMj) et un registre à décalage processeur (RDPj) et adaptée pour permettre le transfert de blocs d'informations (bi) entre les deux registres considérés (RDMj, RDPj) Ainsi, dans le système multiprocesseur conforme à l'invention, les échanges entre mémoires-caches et processeurs associés s'effectuent comme dans les systèmes classiques équipés de mémoires-caches. Par contre, les échanges entre mémoire centrale et mémoires-caches s'effectuent de façon entièrement originale Chaque transfert de bloc d'informations (bi) depuis la mémoire centrale (RAM) vers la mémoire-cache (MCj) d'un processeur donné (CPUj) consiste . à transférer, en un cycle de mémoire centrale, le bloc (bi) de ladite mémoire centrale (RAM) vers le registre à décalage mémoire (RDl-lj) (de la taille d'un bloc) qui est directement connecté a la mémoire centrale et qui correspond au processeur (CPU.) considéré, . à transférer sur la liaison série correspondante (LSj) le contenu de ce registre à décalage mémoire (RDMj) vers le registre à décalage processeur (RDPj) (de même capacité) qui est associé à la mémoire-cache (MCj) du processeur considéré (CPUj), . à transférer le contenu dudit registre à décalage processeur (RDPj) vers ladite mémoire-cache (MCj). Dans le sens opposé, chaque transfert de bloc d'informations (bi) depuis la mémoire-cache (llCj) d'un processeur donné (CPUj) vers la mémoire centrale (RAM) consiste . à transférer le bloc (bi) de ladite mémoire-cache considérée (MCj) vers le registre à décalage processeur (RDPj) qui est associé à ladite mémoire-cache (MCj), . à transférer sur la liaison série correspondante (LSj) le contenu du registre à décalage processeur (RDPj). vers le registre à décalage mémoire (RDMj), affecté au processeur considéré (parmi l'ensemble de registres à décalage (RDMl... RDMj... RDtin) connectés à la mémoire centrale (RAM)), . à transférer, en un cycle de mémoire centrale, le contenu du registre à décalage mémoire (ROMj) vers ladite mémoire centrale (RAM). Dans ces conditions, le transfert de chaque bloc d'informations (bi) s'effectue, non plus à travers un bus parallèle comme c'est le cas dans les systèmes connus, mais par des liaisons séries à haut débit. Ces liaisons séries permettent d'obtenir des temps de transfert de chaque bloc (bi) comparables et même inférieurs aux temps de transfert dans les systèmes connus à bus parallèle. L'exemple comparatif ci-dessous donné avec des valeurs de paramètre courantes pour la technoloqie actuelle, illustre clairement ce fait qui semble paradoxal. On suppose que chaque bloc d'informations (bi) est d'une taille égale à 6a octets. Dans le système de l'invention, le temps de transfert entre la mémoire centrale et une mémoire-cache se décompose en - un temps de transfert mémoire centrale (RAM)/registre à décalage mémoire (RDMj) : lnn nanosecondes (performance d'une mémoire centrale à accès aléatoire de type courant), - un temps de transfert série sur la liaisonsérie correspondante : 64 x 8 x 1/500.li6, soit 1 024 nanosecondes, en supposant une fréquence de transfert de 50n Méaahertz (non exceptionnelle avec les technologies actuelles qui autorisent des fréquences atteignant 3 000 Mégahertz), - un temps de transfert registre à décalage processeur (RDPj)/mémoire-cache (MC) : 50 nanosecondes (mémoire-cache de type très courant). Le temps de transfert total d'un bloc est donc de l'ordre de 1 200 nanosecondes (en intégrant des délais d'enchaînement de second ordre). Dans les systèmes connus à mémoires-caches dans lesquels les échanges d'informations s'effectuent directement en parallèle par mots de 4 octets (systèmes les plus courants conduisant à des bus de type habituel à 32 fils de données), le temps de transfert d'un bloc est égal au temps de transfert des 16 mots de 4 octets qui constituent ce bloc, c'est-à-dire : 16 x 100 = 1 600 nanosecondes. On voit donc que, avec des hypothèses moyennes dans les deux solutions, ces temps sont comparables. Or, si l'on compare l'architecture du système conforme à Irinvantion et celle à bus parallèle -commun avec.mémoirescaches (première solution évoquée précédemment), l'on constate que dans la solution classique (bus commun parallèle), la mémoire centrale et le bus commun sont occupés à 100 S pendant le transfert, puisque des informations circulent entre les deux pendant toute la durée du transfert, dans le système conforme a l'invention, la liaison série est occupée à 100 S pendant le transfert, mais la mémoire centrale est occupée moins de 10 S du temps de transfert (temps de lecture mémoire et de chargement du registre à décalage mémoire (RDMj)), de sorte que la mémoire centrale peut servir 10 fois plus de processeurs que dans le cas précédent (l'occupation de la liaison série étant sans importance puisqu'elle est privée et affectée au processeur). Il faut souligner, par ailleurs, que dans le système de l'invention, chaque liaison série qui relie chaque processeur de façon individuelle à la mémoire centrale est une liaison simple (a un ou deux fils de données), de sorte que le réseau série ainsi constitué n'est pas comparable sur le plan de la complexité avec, par exemple, un réseau crossbar dont chaque liaison est une liaison parallèle à multiplicité de fils (32 fils de données dans l'exemple comparatif précité), avec tous les commutateurs nécessaires. En outre, comme on le verra plus loin sur les courbes comparatives, le système conforme h l'invention possède des performances très améliorées par rapport aux systèmes traditionnels à bus commun et permet en pratique la mise en oeuvre d'un nombre de processeurs de traitement beaucoup plus élevé (de plusieurs dizaines à une centaine de processeurs) ; ces performances sont compatibles à celles d'un système crossbar, mais le système conforme a l'invention est d'une simplicité architecturale beaucoup plus grande. Dans le système de l'invention, chaque liaison série peut en pratique être réalisée soit au moyen de deux liens-sér.ies unidirectionnels de transfert bit à bit, soit au moyen d'un seul lien bidirectionnel. Dans le premier cas, chaque registre à décalage mémoire (RDMj) et chaque registre à décalage processeur (RDPj) sont dédoublés en deux registres, l'un spécialisé pour le transfert dans un sens, l'autre pour le transfert dans l'autre sens. Les deux liens-séries unidirectionnels sont alors connectés au registre à décalage mémoire (RDtlj) dédoublé et au registre à décalage processeur correspondant (RDPj) dédoublé, de façon à permettre, l'un un transfert dans un sens, l'autre un transfert dans l'autre sens. Ce mode de réalisation à deux liens unidirectionnels présente l'avantage de ne nécessiter aucune gestion de transfert sur lien, mais l'inconvénient de doubler les ressources nécessaires (lien, registres). Dans le second cas, une logique de validation du sens de transfert est associée au lien bidirectionnel de façon à permettre un transfert alterné dans les deux sens sur ledit lien. Cette logique peut être intégrée au processeur de gestion (PGj) associé à la mémoire-cache (MCj) à laquelle est relié ledit lien bidirectionnel. Bien entendu chaque liaison série peut éventuellement être réalisée avec un nombre plus élevé de liens séries Dans le système multiprocesseur conforme à l'invention, les moyens de communication d'adresses peuvent revêtir essentiellement deux formes de réalisation : en premier lieu, ils peuvent consister en un bus de communication parallèle d'adresses de blocs (BlJSA), commun à tous les processeurs (CPUj) et reliant ces derniers et la mémoire centrale (RAM) avec de façon classique un arbitre de bus (AB) adapté pour gérer les conflits d'accès audit bus. -Il faut noter que ce .bus diadresses n'est utilisé que pour la communication des adresses de blocs:: sur le plan de la structure, ce bus est identique au bus de communication parallèle d'adresses des systèmes connus, pour lequel ne se pose aucun problème de saturation, puisqu'il peut être libéré aussitôt après transfert de l'adresse de bloc. Ce mode de réalisation sera préféré en- pratique, car il associe performance et simplicité. Toutefois, un autre mode de réalisation de ces moyens de communication d'adresses peut être envisagé dans le système multiprocesseur de l'invention, consistant à exploiter les liaisons séries de transfert des blocs d'informations (bi) pour transférer les adresses de ces blocs. Dans ce cas, un registre à décalage complémentaire (RDCj) est connecté sur chaque liaison série (LSj) en parallèle avec le registre à décalage mémoire correspondant (RD M j) : les adresses transmises par ladite liaison série sont ainsi chargées dans chacun de ces registres eomplémentaires Par ailleurs, le système multiprocesseur conforme à l'invention est particulièrement bien adapté pour aérer de facon performante les problèmes de cohérence des données partaqées entre processeurs de- traitement. En effet, les solutions classiques pour gérer ces données partagées trouvent leur limite dans les systèmes connus du fait du goulot d'étranglement au niveau de la communication des informations, mais deviennent au contraire parfaitement satisfaisantes et performantes dans le système de l'invention où un tel goulot n'existe plus, de sorte que ce système peut être guipé de moyens de gestion des données partagées de conception analogue à ceux des systèmes connus. Par exemple, une solution traditionnelle de gestion des données partagées consiste à éviter que celles-ci transitent par les mémoires-caches : de façon classique, une logique de partition (LPj) est associée à chaque processeur de traitement (CPUj) en vue de différencier les adresses des données partagées et celles des données non partagées de façon à aiguiller les premières directement vers la mémoire centrale (RAM) et les secondes vers la mémoire-cache correspondante (MCj). Dans une première version de l'architecture conforme à l'invention, le système comprend un bus spécial de communication parallèle de mots (BUSD) reliant les processeurs (CPUj) et la mémoire centrale (RAM), une logique de partition (LPj), associée å chaque processeur (CPUj) et adaptée pour différencier les adresses des données partagées et celles des données non partaqées de façon å transmettre celles-ci sur les moyens de communication d'adresses avec leur identification, une logique de décodage (DEC) associée a la. mémoire centrale (RAM) et adaptée pour recevoir les adresses avec leur identification et aiguiller les données en sortie mémoire soit vers le registre à décalage mémoire correspondant (RDMj) pour les données non partagées, soit vers le bus spécial de communication de mots (BUSD) pour les données partagées. Cette solution présente l'avant-age d'être très simple sur le plan architectural ; la présence du bus spécial de communication parallèle (BUSD) conduit à de meilleures performances par rapport à une solution qui consisterait à utiliser les liaisons séries pour transférer non seulement les blocs de données non partagées mais également les mots de données partagées. Il est à noter que cette dernière solution peut, le cas échéant, être envisagée en cas de faible taux de données partagées. Dans une autre version, le système est doté d'un bus spécial de communication parallèle de mots (BUSD) et d'un bus spécial commun de communication d'adresses de mots (BU SA M), reliant les processeurs (CPUj) et la mémoire centrale (RAM). La logique de partition (LPj) aiguille les adresses des données partagées vers le bus spécial commun (gUSAM) en vue du transfert des données par la bus. spécial de mots (BUSD), et aiguille les données non partagées vers les moyens de communication d'adresses (que ceux-ci soient constitués par un bus parallèle de communication ou que la communication s'effectue via les liaisons séries). La présence d'un bus spécial de communication d'adresses de mots permet, dans cette version, de reculer la limite de saturation des moyens de communication d'adresses, en cas de demandes élevées de données partagées. Une autre version qui sera préférée en pratique dans le cas ou les moyens de communication d'adresses sont constitués par un bus parallèle de communication d'adresses {RUSA), consiste å équiper le système d'un processeur de gestion mémoire (PCM) associé à la mémoire (RAM) et d'un processeur espion de bus (PEj) associé à chaque processeur de traitement (CPUj) et au répertoire de gestion correspondant (RGj) ; le processeur de gestion mémoire (PGM) et chaque processeur espion de bus (PEj), de structures connues en soi, sont connectés au bus de communication d'adresses (BUSA) en vue respectivement de surveiller et de traiter les adresses de blocs transmises sur ledit bus de façon à permettre une mise à jour de la mémoire centrale (RAM) et de la mémoire-cache associée (MCj) en cas de détection d'une adresse de bloc présente dans le répertoire associé (RGj). Le processeur de gestion mémoire (PGM) et chaque processeur espion (PEj) associent des bits d'état à chaque bloc d'informations, les tiennent å jour en fonction de la nature (lecture ou écriture) des demandes de bloc qui transitent sur le bus (BUSA) et assurent la cohérence des données partagées en utilisant ces bits d'états qui leur permettent de forcer ou non l'écriture d'un bloc en mémoire centrale au moment des demandes sur le bus (BUSA). Dans le cas évoqué précédemment où les communications d'adresses se font par les liaisons séries, la gestion des données partagées peut également être assurée de façon centralisée, par un processeur de gestion mémoire (PGM) associé a la mémoire centrale (RAM) et un processeur de maintien de la cohérence des données partagées (PMCj) associé à chaque processeur de traitement (CPUj) et au répertoire de gestion correspondant (RGj), chaque processeur de maintien de cohérence (P M C j) étant connecté à un bus de synchronisation (SYNCHRO) piloté par le processeur de gestion mémoire (PGM), de façon à permettre une mise à jour de la mémoire centrale (RAt1) et de la mémoire-cache associée (MCj) en cas de détection d'une adresse de bloc, une mise à jour de la mémoire centrale (RAM) et des mémoires-caches (MCj) à chaque prélève ne n t d'adresses dans les registres à décalage complémentaires (RDCj). Comme précédemment, cette mise à jour est assurée grâce à des bits d'état associés à chaque bloc d'information par le processeur (PGM). Il est à noter qu'un bus de synchronisation. du type ci-dessus défini peut le cas échéant être prévu sur l'architecture précédente où les adresses de blocs transitent sur un bus commun d'adresses RUSA. Dans ce cas, les processeurs espions (PEj) sont sollicités par le processeur de gestion mémoire (P C tiY via le bus de synchronisation, et ce, uniquement lorsau'ils sont concernés par le transfert. On évite ainsi des accès inutiles vers les mémoires-caches . les processeurs espions deviennent alors passifs (puisque sollicités par le processeur PGM) et on les désignera plutôt par l'expression plus appropriée de "processeur de maintien de la cohérence" selon la terminologie ci-dessus utilisée. Une autre solution consiste à réserver le bus parallèle de communication d'adresses (BUSA) au transfert des adresses des blocs de données partagées et à utiliser les liaisons séries pour le transfert des blocsade données non partagées. Par ailleurs, le système multiprocesseur conforme à l'invention se rrête à des regroupements de processeurs de traitement sur une même liaison série, de façon à limiter les liaisons séries et les registres a décalage mémoire correspondant (RD:lj) nécessaires. Le nombre de registres à décalage mémoire (RDMj) peut correspondre au nombre de liaisons séries (LSj), auquel cas chaque registre à décalage mémoire (RDMj) est connecté de façon. statique à une liaison série (LSj) spécifiquement affectée audit registre. Le nombre de registres à décalage mémoire (RDM;) peut également être différent de celui des liaisonsséries (LSj) et notamment inférieur, auquel cas ces registres sont connectés de façon dynamique aux liaisons séries (LSj) J par l'entremise d'un réseau d'interconnexion En outre, comme dans les systèmes classiques, la mémoire centrale (RAM) peut être divisée en m bancs mémoires (RAM1... RAMp... RAMm) agencés en parallèle Chaque registre à décalage mémoire-(RDMj) est alors constitué de m registres élémentaires (RDMjI... ROM jp RDMj ) reliés en jm parallèle à la liaison série correspondante (LSj). Par ailleurs, pour présenter des performances de transfert au moins égales à celles des systèmes classiques à bus parallèle, le système conforme à l'invention est de préférence synchronisé par une horloge de fréquence F au moins égale à 100 mégahertz. Les registres h décalage mémoire (RDMj) et registres à décalage processeur (RDPj) peuvent très simplement être d'un type adapté pour présenter une fréquence de décalage au moins égale à F. Dans le cas de très hautes fréquences (notamment supérieures à 509 mégahertz avec la technologie actuelle), on peut diviser ces registres en sous-registres de fréquence de décalage plus faible, et les multiplexer. L'invention s'étend à un composant mémoire multiport série, srie, susceptible d'équiper le syst8me multiprocesseur précédemment défini, en vue d'en simplifier la fabrication. Ce composant, qui peut par ailleurs avoir des applications différentes, est constitué par un circuit intégré comprenant une mémoire à accès aléatoire (RAM) de largeur prédéterminée correspondant h un bloc d'informations (bi), un ensemble de registres à décalage (RDMl... RDMj...RDMn), chacun de capacité correspondant à la largeur de la mémoire, un bus parallèle interne (BUSI) reliant l'accès de la mémoire et les registres à décalage, une logique de sélection d'un registre à décalage (LSR) adaptée pour valider la liaison sur le bus interne entre la mémoire et un registre à décalage prédéterminé, et un ensemble de broches externes d'entrée/sortie pour l'entrée d'adresses vers la mémoire (RAM), pour l'entrée d'adresses vers la logique de sélection (LSR), pour l'entrée et la validation de commandes de transfert en lecture ou écriture d'un bloc d'informations (bi) entre la mémoire (RAM) et les registres à décalage (RDMj), pour l'entrée d'un signal d'horloge vers J chaque registre à décalage (RDMj), pour l'entrée bit à bit d'un bloc d'informations (bi) vers chaque registre à décalage (RDMj) et pour la sortie bit à bit d'un bloc d'informations de chaque registre à décalage (RDMj). Ce composant peut être rendu paramétrable par l'adjonction de registres de configuration (RC1, RC2, ...) permettant notamment un choix de taille des blocs d'informations (bi) et de divers modes de fonctionnement des registres h décalage. L'invention ayant été exposée dans sa forme générale est illustrée par la description qui suit en référence aux dessins annexés qui en présentent, à titre non limitatif, plusieurs modes de ré a Il sa t ion ; sur ces dessins qui font partie intégrante de la présente description :: - la figure 1 est un schéma synoptique d'un premier mode de réalisation du système multiprocesseur conforme a l'invention, - la figure 2 est un diagramme donnant la courbe calculée de performance de ce système (A) et, à titre de comparaison, la courbe (B) correspondante pour une architecture multiprocesseur conventionnelle à bus commun, - les figures 3, 4 et 5 sont des schémas logiques détailles d'unités fonctionnelles du système de la figure 1, - la figure -6 est un schéma synoptique d'un autre mode de réalisation du système, - la figure 7 est un schéma synoptique d'un système du type de celui de la figure 1, doté de moyens de gestion des données partagées, - la figure 8 est un schéma logique détail d'un sous-ensemble du système de la figure 7, - la figure 9 est un schéma synoptique d'un système analogue à celui de la figure 7 avec une variante de moyens de gestion de données partagées, - la figure 10 est un schéma synoptique d'un système analogue, doté de moyens de gestion de données partagées différents, - les figures 11, 12a, 12b, 12c, 1Zd, 13, 14, -15, lfi, 17 sont des schémas logiques détaillés d'unités fonctionnelles du système processeur de la figure 10, - la figure 18 est un schéma synoptique d'un système du type de celui de la figure 6, doté de moyens de gestion de données partagées, - la figure 19 est un schéma synoptique simplifié d'une variante de système, dans laquelle plusieurs unités centrales partagent un même lien-série, - la figure 20 est un schéma synoptique d'un mode de réalisation préféré, dans lequel la mémoire centrale est organisée en plusieurs bancs mémoires, - les figures 21a et 21b schématisent une autre structure de mémoire RAM susceptible d'équiper ledit système, - la figure 22 est un schéma synoptique présentant la structure d'un composant mémoire multiport série, susceptible d'équiper le système. Le dispositif présenté sous forme de synoptique à la figure 1 est un système multiprocesseur possédant n processeurs de traitement CPU1... CPU.... CPU n On a représenté à cette figure deux processeurs de traitement CPU1 et CPU j avec leur logique associée. Chacun de ces processeurs de traitement est d'un type traditionnel par exemple "MOTOROLA 6802O" ou "INTEL 80386"... et peut comporter des ressources locales en mémoires et en interfaces périphériques et être équipé d'un dispositif de mémoire virtuelle. Le dispositif comprend une mémoire centrale à accès aléatoire RAM réalisée de façon classique à partir de circuits intéqrés mémoires : en particulier RAM dynamique "INTEL" "NEC" "TOSHIBA"... de 256 Kbits, 1 bits, 4 Mbits... selon l'application. Cette mémoire est organisée en blocs d'informations bo... bi... de taille t déterminée (habituellement.256 bits à 2 Kbits) et le front d'accès de ladite mémoire correspond à la taille d'un bloc. La mémoire centrale est reliée en parallèle à n registres h décalage RDM1... ROM ROM n dits registresmémoire, chaque registre-mémoire ayant la taille t d'un bloc d'informations ; chacun de ces registres est réalisé en technologie très rapide ("ASCA"), un bloc pouvant être chargé ou décharqé en un cycle de la mémoire centrale RAM. Le nombre n de registres est égal nu nombre de processeurs CPUj. Par ailleurs, une mémoire-cache MCj est associée de façon connue en soi à chaque processeur CPUj chaque mémoire-cache est constituée de façon classique par une mémoire rapide, à accès aléatoire, de faible capacité par rapport h la mémoire centrale RAM. Un répertoire RGj et un processeur de gestion PGj sont de façon traditionnelle reliés à la mémoire-cache et au processeur de traitement pour gérer les informations transitant dans la mémoire-cache. En outre, dans le système de l'invention, un registre à décalage RDPj dit registre-processeur, est relié par son part parallèle, à chaque mémoire-cache MCj ; chaque registre-processeur RDPj est de taille correspondant à celle d'un bloc hi et de structure similaire à celle des registres mémoire RDMj. Chaque registre-mémoire RDMj est relié par son port série, au part série d'un registre-processeur RDPi par une liaison série LSj. Des exemples de réalisation de cette liaison série qui peut comporter un lien bidirectionnel ou deux liens unidirectionnels sont illustrés aux figures 4 et 5. Le contrôle du transfert des blocs bi entre registres correspondants ROM j et RDPj est assuré par des logiques de transfert TFRj et TFR'j qui sont associées de façon symétrique au registre-mémoire RDllj et au registre-processeur RDPj un exemple de réalisation de ces logiques de transfert (en ellemêmes classiques) est détaillé a la figure 3. L'ensemble mémoire centrale RAM, registres à décalages mémoires Ri:11 ... RDtn et logiques de transfert associées TFR1 ... TFR n constituent un ensemble fonctionnel dénomme "mémoire multiport série MMS. L'ensemble processeur de traitement CPUj, mémoire-cache MCj, répertoire de gestion du cache RC j, processeur de gestion du cache PGj, registre à décalage processeur RDPj et logique de transfert associée TFR'j constitue un ensemble "fonctionnel" dénommé "unité centrale UC;. Par ailleurs, le système comprend des moyens de communication d'adresses de blocs des processeurs CPUj vers la mémoire centrale RAM, constitués en l'exemple par un bus commun de communication parallèle BUSA sur lequel se connectent les processeurs CPUj (par l'entremise de leur processeur de gestion PGj) et la mémoire centrale RAM. L'accès au bus BUSA est réglementé de façon classique-par un arbitre de bus AB. Le fonctionnement général de l'architecture ci-dessus définie est le suivant Un processeur CPU j exécute un programme propre constitué d'instructions, qui se trouvent sous forme de mots en mémoire centrale RAM avec des extraits dans la mémoire-cache associée MCj. Sur les instructions du programme, le processeur CPU j est amené soit à lire des mots de. données qui elles-mêmes se trouvent dans la mémoire centrale RAM ou dans la mémoire-cache MCj sous forme d'extraits, soit à écrire des mots de données dans la mémoire centrale RAM et dans la mémoire-cache MCj. Chaque opération d'un processeur CPUj (désignée "demande") nécessite la fourniture de l'adresse adr du mot concerné, la nature r,w de l'opération (lecture, écriture) et l'échange (data) du mot concerné. Chaque demande de mot active le processeur P5j qui consulte alors de façon classique le répertoire du cache RCj lequel indique si le bloc bi contenant le mot concerné est présent dans la mémoire-cache MCj et, le cas échéant, le cadre de bloc dans la mémoire-cache où se trouve le bloc recherché. Si le bloc hi contenant le mot concerné est dans la mémoire-cache Cj, alors en cas de lecture ce mot est lu dans ladite mémoire-cache et envoyé au processeur CPU. : en cas d'écriture le mot fourni par le processeur CPUj est écrit dans la mémoire-cache : la transaction mémoire est terminée. Si le bloc contenant le mot concerné n'est pas dans la mémoire-cache MCj, alors une lecture de bloc bi en mémoire centrale RAM est nécessaire. Deux cas peuvent se produire. Premier cas La mémoire-cache MCj dispose d'au moins un emplacement de bloc libre, déterminé par le processeur PGj à laide de bits d'états associés à chaque entrée du répertoire RC Dans ce cas, le processeur PGj requiert, de façon classique, le bus BUSA en soumettant sa demande à l'arbitre de bus AB. Ce dernier accorde, son tour venu, le bus BUSA au processeur PGj qui accède en lecture à la mémoire centrale RAM, le bloc lu en mémoire étant chargé dans le registre RDH;, identifié par l'origine j de l'appel. La fin du cycle de lecture se traduit par la libération du bus BUSA et l'activation du transfert avec la liaison série LSj permettent de transférer le contenu du registre-mémoire ROM j dans le registre-processeur RDPj.La fin du transfert active l'écriture dans la mémoire-cache MCj du contenu du registre processeur dans l'emplacenent de bloc réservé à cet effet et la transaction peut se terminer comme précédemment. Deuxième cas L a mémoire-cache MCj ne dispose pas d'emplacement de libre alors, par un algorithme classique, un emplacement de cache est rendu candidat pour recevoir le bloc demandé. Deux situations peuvent se rencontrer - le bloc contenu dans l'emplacement candidat n'a pas été modifié depuis son installation : il est simplement éliminé en libérant le cadre de bloc par une simple écriture d'un bit d'état dans le répertoire (RGj) et la transaction peut se poursuivre comme précédemment, - le bloc contenu dans l'emplacement candidat a été modifié et une mise à jour de la mémoire centrale RAM est nécessaire.Pour ce faire, le processeur de gestion PGj transfère le bloc candidat dans le registre-processeur RDPj, active le transfert du registre-processeur RDPj au registremémoire RDMj, puis requiert le bus commun BUSA en soumettant sa demande å Arbitre AB. Lorsque l'arbitre accorde le bus au processeur de gestion PGJ, ce dernier active une commande d'écriture qui a pour effet de transférer le contenu du registre-mémoire RDMj à son emplacement en mémoire centrale RAM. La mise à jour mémoire RAM est terminée et la transaction peut se poursuivra comme précédemment. Ainsi, dans le dispositif de l'invention, les échanges entre les processeurs de traitement CPUj et leur mémoire-cache MCj et logiques associées RGj , PGj , s'effectuent de façon classique ; par contre, les transferts de blocs entre mémoire centrale RAM et mémoire-caches MCj passent, non plus par un bus parallèle commun mais par des liaisons-séries LSj dédiées à chaque processeur de traitement CPUj, le bus commun BUSA ne servant qu'au transfert des adresses et ayant ainsi un trafic considérablement allégé. On sait que, pour les architectures classiques à bus commun, une modélisation étudiée par "PATEL" (analysis of multiprocessors with private cache, JANAK H. PATEL - IEEE Transactions on computers vol. C.31, N0 4 APRIL 1982) a conduit à la formule approchée suivante donnant le rendement U en fonction du nombre de processeurs en présence 1 U = ------------ 1 + m (W+tf) où le rendement U est le taux moyen d'utilisation de chaque processeur de traitement, m est la probabilité pour qu'un processeur de traitement fasse une requête mémoire, non présente dans sa mémoire-cache (cette probabilité m = i .Pa est proportionnelle à la probabilité d'absence Pa de l'information dans la mémoire cache et à un facteur i fonction de la puissance du processeur de traitement ramené à un pourcentage de requêtes mémoire), W est le temps moyen d'attente du bus commun, qui est fonction du nombre n de processeurs, tf est le temps de transfert d'un bloc de la mémoire centrale vers une mémoire-cache. Les hypothèses à partir desquelles a été établie cette formule montrent que celle-ci est applicable à 1 'a r c h i t e c t u r e c o n f o r m e à I'i'n v e n t i o n , avec un niveau d'approximation comparable au niveau d'approximation de la formule pour des architectures classiques à bus commun. Il est ainsi possible de comparer les performances des deux types d'architecture en supposant que les composants communs aux deux architectures sont de caractéristiques identiques. La figure 2 donne les courbes obtenues du rendement U en fonction du nombre n de processeurs pour les paramètres suivants, les paramètres communs aux deux dispositifs étant identiques, et tous de valeur usuelle - taille du bloc bi = 64 octets, - taille du mot pour le transfert parallèle sur bus commun 4 octets, - temps d'accès mémoire centrale RAM = 100 nanosecondes, - temps du cycle bus BUSA' : 50 nanosecondes, - fréquence de transfert série = 500 Mhz, - probabilité d'absence Pa = 0,005 (mémoire-cache de 16 Koctets), - facteur de puissance des processeurs :: On constate en comparant les courbes A (architecture de l'invention) et B (architecture classique) que l'architecture conforme à l'invention possède un rendement nettement supérieur h l'architecture classique l'architecture de l'invention permet de mettre en place un nombre de processeurs très supérieur aux architectures classiques à bus commun qui en pratique ne peuvent dépasser la dizaine de processeurs. Par exemple, dans le cas classique, un rendement de n,75 est obtenu dès le dizième processeur, alors qu'il est obtenu pour plus de BO processeurs dans le cas de l'invention. La figure 3 présente un mode de réalisation d'une loqique de transfert TFRj ou TFR'j permettant de transférer un bloc bi d'information d'un registre-mémoire RDMj vers un registre-processeur RDR; (le transfert inverse est assuré par des moyens symétriques non représentés a cette figure). Chaque logique TFRj ou TFR'j comporte une partie de contrôle de l'émission TFREj et TFRE'j et une partie de contrôle de la réception TORR; et TFRR'j qui sont activées de façon croisée (émission TFRE activée en synchronisme avec la j réception TFRR'j).Le système comporte un générateur d'horloge H dont la fréquence fixe la vitesse de transmission et fournit le signal d'horloge h à la partie émission TFREj et à la partie réception TFRR'j. Dans la partie émission TFRE un registre j décompteur DC recevant par son entrée de chargement load2 le signal de lecture r du processeur de gestion PGj permet delaisser passer t + 1 impulsions d'horloge h à travers une porte logique ET1 commandée par un signal de passage à zéro "borrow", la sortie de cette porte ET1 étant reliée à l'entrée de décomptage "down" du décompteur OC et à l'entrée de décalage shiftl du registre-mémoire RDMj. Dans la partie réception TFRR'j, une bascule R est reliée par son entrée de donnée D à la sortie série du registre-processeur RDPj, l'entrée horloge clk de cette bascule étant reliée a l'horloge H pour recevoir le signal h. Un signal d'initialisation "initt' fourni par le processeur de gestion PGj est relit à l'entrée S de la bascule P et à l'entrée de chargement load3 du registre-processeur RDPj. La sortie Q de la bascule transmet un signal de commande fin~transfert à la porte logique ET2, permettant de laisser passer le signal d'horloge h vers l'entrée de décalage shift2 du registre-processeur RDPj. Ce signal de commande est également délivré vers le processeur de gestion P5j pour indiquer la fin de transfert de bloc. Le fonctionnement de l'ensemble est le suivant : le processeur de gestion PCj, après avoir obtenu l'accès à la mémoire centrale RAM via le bus BUSA, effectue sa lecture de bloc bi en fournissant l'adresse du bloc concerné et le signal de lecture r. Ce signal déclenche l'activation de la partie émission TFREj : le front final du signal de lecture r provoque le chargement du bloc bi dans le registre-mémoire RDM j en activant le signal loadl et le chargement de la valeur t + 1, correspondante à la taille en bits du bloc bi plus un bit supplémentaire dit de "start", dans le registre décompteur DC par le signal load2. ; ceci a pour effet de remettre a 1 le signal borrow et d'autoriser l'horloge de transfert H à fournir, à travers la porte logique ET1 conditionnée par ce signal borrow, t. + 1 impulsions d'horloge h : ces impulsions ont pour effet de décaler par l'entrée s.hiftl t + 1 bits du registre-mémoire RDM; et de faire atteindre la valeur 0 par l'entrée down au décompteur DC : le signal borrow est remis à zéro et verrouille le fonctionnement de la partie émission TFRE j. Ainsi, la liaison série LSj, initialement à l'état repos logique 1, transmet le bit 0 dit de start, puis les t bits du bloc bi, et repasse ensuite à l'état repos logique 1, le dernier bit émis étant la valeur 1 forcée sur l'entrée série du registre-mémoire RDMj. En préalable à la demande de lecture, le processeur de gestion PGj a ini.tialisé la partie réception TFRR'j en activant le signal init qui a pour effet de charger le registre-processeur RDPj avec t bits à 1 par l'entrée load3 et de mettre la sortie 0 de la bascule B à l'état logique 1 par l'entrée S. Cette sortie n valide alors la porte lo-gique ET2 qui laisse passer le signal d'horloge h vers l'entrée shift2 du registre-processeur RDPj. A chaque impulsion d'horloge ce registre-processeur fournit un bit sur sa sortie série qui est mémorisé dans la bascule B. Le premier bit 0 qui se présente a pour effet de mettre à zéro la sortie q de la bascule B et verrouiller le signal d'horloge h sur la porte ET2.Ce premier bit O étant le bit de start qui précède le bloc bi, ce dernier est donc piégé dans le registre-processeur RDPj lorsque le processeur de gestion PGj est prévenu du change ment d'ii tat de la bascule B par Le signal fin~transfert : le processeur de gestion PC j n'a plus qu'à venir lire ce bloc bi sur la sortie parallèle du registre ROP j. L'écriture d'un bloc bi vers la mémoire centrale RAM nécessite la présence d'une logique TFRE'j, identique à la logique TFREj, associée au registre-processeur RDPj, et d'une logique TFRRj, identique à la logique TFRRtj > associée au registre-mémoire RDMj. Dans ce cas, le signal init de la logique TFRRj est relié au signal d'écriture w : la libération du registre-mémoire RDMj réarme automatiquement 1a logique de réception TFRRj. Ce mode de réalisation de la logique de contrôle du transfert n'est qu'un exemple possible : le registre émetteur peut être en décalage permanent lui aussi, et le registre récepteur activé pour t impulsions d'horloge sur détection du bit de start en début de transfert L'horloge H peut être connectée aux deux registres, ou deux horloges locales indépendantes peuvent être utilisées, la synchronisation étant obtenue de façon classique par un préambule dit de synchronisation Le système représenté à la figure 4 comprend un registre h décalage mémoire dédoublé RDMlj et RDM2j, un registre à décalage processeur dédoublé RDPlj et RDP2j, deux liens séries unidirectionnels LSlj et LS2j, l'un reliant le registre-mémoire RDM1j au registre-processeur RDP1; de façon a transmettre le contenu du premier vers le second, l'autre reliant le registre-mémoire RDM2j au registre-processeur RDP2j de façon a transmettre le contenu du second vers le premier, et des logiques associées pour le contrôle du transfert TFRElj pour RDM1j, TFRR2j pour RDM2j, TFRE2j pour RDPoj, TFRRlj pour RDPlj. Pour liVe un bloc d'information bi en mémoire centrale RAM, le processeur de gestion PGj initialise par le signal init la logique TFRRlj associée au registre-processeur RDPlj puis active sa demande de lecture à la mémoire RAM par le signal de lecture W. Ce signal active la logique TFRElj associé e au registre-mémoire RDMlj : celle-ci assure le transfert sur le lien LSlj du bloc bi d'information. La fin du transfert est détectée par la logique TFRRlj associée au registre-processeur R O P 1 j qui prévient le processeur de gestion PGj de l'arrivée du bloc bi par le signal fin transfert. Le processeur de gestion PGj transfère alors le contenu du registre-processeur RDPlj dans la mémoirecache MCj. Pour écrire un bloc mémoire bi, le processeur de gestion PGj charge le registre-processeur RDP2j avec le bloc bi concerné extrait de la mémoire-cache M C j, ce qui active le transfert de ce bloc sur le lien LS2j La logique de transfert TFRR2j associée au registre-mémoire RDM2j assure la bonne réception de ce bloc.Le processeur de gestion PGj est prévenu de la fin du transfert par le changement d'état du signal borrow issu de la logique de transmission TFREZJ. Le processeur de gestion PGj effectue alors sa demande d'écriture qui devient effective lors de l'activation du signal d'écriture w ; celui-ci a pour effet de transférer le contenu du registre R O M 2 j d a n s la mémoire centrale RA et de réinitialiser pour un prochain transfert la logique TFRR2j. Ce dispositif autorise un transfert simultané de blocs dans les deux sens et permet de traiter plus rapidement les défauts de blocs bi dans la mémoire cache MCj lorsque cette dernière est saturée ; il autorise également la mise en place d'un mécanisme classique d'anticipation de lecture de blocs. Dans un autre mode de réalisation présenté à la figure 5, la liaison LSj comprend un seul lien bidirectionnel doté à chaque extrémité d'une logique de validation LV1 et LV2 constituée par une porte logique à 2. entrées à collecteur ouvert OC1 et OC2, l'une des entrées étant reliée à la sortie série du registre-mémoire RDMj pour la porte ncl et du registre-processeur RDPj pour la porte OC2, l'autre entrée étant reliée à la sortie C d'une bascule de commande BC1 et BC2 ; chacune de celles-ci est reliée par ses entrées S et R a la logique de transfert TFR pour la bascule Ecl et TFR' pour la bascule BC2. Lectures et écritures sont effectuées de façon exclusive, à la seule initiative du processeur de gestion PGj. Une lecture mémoire active le signal de lecture r qui provoque la mise à 1 de la bascule BC1 par son entrée S, la remise à zéro étant commandée, sur l'entrée R, par la logique de transfert TFR à la fin du transfert du bloc. Une écriture mémoire déclenche un mécanisme identique sur la logique de validation LV2. D'autres combinaisons registres/liens sont possibles, et dans le cas d'un lien b i-direct i onel, on peut notamment utiliser des registres à décalage bi-directionnels recevant un signal de sens de transfert. Cette solution conduit à l'utilisation de registres à décalaqe plus complexes en loqique, donc a priori moins performants en vitesse de transfert. .La vitesse de transfert devant être très élevée, les registres a décalages RDMj et ROPj, leurs logiques de commandes associées TFR et TFR', les logiques de validations LV1 et LV2, sont choisis dans une technologie rapide (ECL, ASCA), et synchronisés par une horloge de fréquence F au moins égale à On MHz Une autre solution à registres multiplexés présentée à la figure 21 permet, comme on le comprendra plus loin, de réduire considérablement la quantité de logique performante, donc coûteuse, nécessaire. Le système multiprocesseur de la figure 1 était doté, .à la fois, d'un bus commun de communication d'adresses de bloc et de liaisons-séries de transfert de données. La figure 6 présente, en- variante, un système multiprocesseur de même principe général, mais dans lequel données et adresses transitent par les liaisons séries, en l'absence de bus commun. Ce système comprend, en plus des registres mémoires ROtij, des reqistres à décalages complémentaires RDCj aptes à mémoriser les adresses des blocs demandés et contrôlés par une logique de type TFRj. En outre, un arbitre de gestion d'accès ABt1 est relié à la mémoire centrale RAM et aux registres complémentaires RDCj par leur sortie parallèle. Chaque logique TFRj est reliée à cet arbitre ABM de structure classique. Le processeur de gestion PC j de chaque mémoirecache MCj est relié à une partie de l'entrée parallèle du registre-processeur RDPj, en vue d'avoir accès à celui-ci en écriture. Pour lire un bloc bi en mémoire centrale Rait, le processeur de gestion PCj place l'adresse du bloc demandé et la nature de la demande (par un bit de préfixe i = lecture, O= écriture) dans la partie qui lui est accessible du registre-processeur RDPj, ce qui a pour effet d'initialiser le transfert de cette information.La logique de transfert TFRj détecte la fin de transfert sur le registre complémentaire ROC j et active une demande d'opération vers l'arbitre A 1 ; celui-ci est chargé de sérialiser et de traiter les demandes de lecture de bloc en mémoire centrale RAI en allant lire l'adresse du bloc demandé dans le registre complémentaire RDCj correspondant à la logique de transfert élue par l'arbitre ARM, puis en allant lire le bloc en mémoire centrale RAI qui sera ensuite chargé dans le registre-mémoire RDMj et transmis comme précédemment. Pour écrire un bloc en mémoire centrale RAM, le processeur de gestion PC j enchaîne la transmission de l'adresse puis du bloc à écrire à travers le registreprocesseur RDPj. Le registre complémentaire RnCj reçoit ainsi tout d'abord l'adresse et la nature de la demande. La logique de transfert TFRj analyse cette demande et valide la réception du bloc dans le registremémoire RDMj du fait de la nature de la demande (écriture). La logique de transfert TFRj est prévenue de la fin de transfert du bloc bi et transmet alors sa requête de service à l'arbitre ABM. Cette demande est traitée, son tour venu, par ledit arbitre qui active l'écriture du bloc bi en mémoire. Par ail l'eurs, le système multiprocesseur représenté à la figure 7 comprend des moyens de gestion des données partagées, permettant de traiter, de façon statique, le problème classique du maintien de la cohérence des données partagées. Ce système comprend les ressources du système de la figure 1 (mêmes désignations) avec les logiques et les ressources supplémentaires suivantes Un bus spécial de communication parallèle- de mots BUSO relie les processeurs CPU j et la mémoire centrale RAM.Une logique de partition LPj est associée à chaque processeur CPU; ; chaque logique LPj est constituée de façon classique par un ensemble de couples registres-comparsteurs connectés en parallèle sur le bus adresse adr du processeur CPUj, en vue de réaliser une partition de l'espace mémoire de la mémoire centrale RAM en zone de données non partagées et de données partagées, ladite logique LP j délivrant à cet effet un signal p (indiquant la nature des données, partagées ou non). Une logique de décodage DEC est associée à la mémoire centrale RAM, elle-même aménagée pour être commandée en écriture par mot ou par bloc par ladite logique DEC. La loaiaue de décodage DEC est détaillée à la fiqure B et comporte un decodeur DECL, recevant sur son entrée de donnée la partie adresse mot adrm de l'adresse adr, et relié par son entrée de validation a la sortie d'une porte logique ET3, chaque sortie i dudit décodeur étant reliée à un "buffer" de validation de sortie BFSi. La porte logique ET3 reçoit sur ses entrées le signal p et le signal r inversé. Un décodeur DECE est relié lui aussi par son entrée de- donnée au bus adrm, et par son entrée de validation à la sortie d'une porte logique ET4, ses sorties étant reliées à un ensemble de portes logiques OUli en nombre égal au nombre de mots dans un bloc.La porte logique ET4 reçoit sur ses entrées le signal p et le signal w inversai. La sortie de la porte ET4 est également reliée à un ensemble de "buffers" de validation d'entrées ELFE1, BFEi... La mémoire centrale RAM peut être commandée en écriture par mot. Chaque "tranche" mot ainsi définie a son entrée de commande d'écriture wi. La sortie de chaque porte logique nUlì est reliée à l'entrée wi de chaque "tranche" mot de la mémoire centrale RAM. La figure 8 présente en outre le détail de l'adressage des registres mémoires RDMj, qui comprend en premier lieu un décodeur DECEB relié par son entrée de donnée eu bus commun B J S A, en vue de recevoir le numéro j du processeur concerne par la requête de l'unité centrale J ; ce décodeur DECEB est relié par son entrée de validation à la sortie d'une porte logique ET5 et par ses sorties 1, 2... j à des "buffers" de validation RV1, BVj... La porte logique ET5 reçoit sur ses entrées les signaux p et w inversés.De même, un décodeur DECLB est relié par son entrée de donnée au champ j du bus commun BUSA et par son entrée de validation à la sortie d'une porte logique ET6 ; les sorties 1, 2... j de ce décodeur DECLB sont reliées aux entrées de chargement ldl, ldj des registres à décalages mémoire RDMj. La porte logique ET6 recoit sur ses entrées les signaux p et r inversés. Le fonctionnement du système est le suivant : h chaque référence mémoire, le processeur CPUj fournit une adresse sur son bus adresse adr, et la nature de la requête : lecture r ou écriture W. Il attend une donnée en cas de lecture et fournit une donnée en cas d'écriture. L'adresse adr traverse la loginue de partition LPj, laquelle indique, par le signal p, si l'adresse adr appartient à une zone de données non partagées (p = 0) ou de données partagées (p = 1). Dans le premier cas, la demande est aiguillée vers le processeur de gestion PC j et est traitée selon le mode de fonctionnement décrit en référence à la figure 1.Dans le second cas, la requête est directement aiguillée vers le bus commun BUSA ; le bus adresse adr comporte des fils supplémentaires d'adresse permettant d'identifier le mot concerné : l'adresse adr est constituée d'une partie adresse bloc adrb et d'une partie adresse mot adrm. Ainsi, après accord de l'arbitre de bus AB, la mémoire centrale RAM reçoit soit une demande de transaction bloc (p = O) et dans ce cas, seule la partie bloc adrb de l'adresse adr est significative, soit une demande de transaction mot (p = 1) et, dans ce cas, toute l'adresse adr (bloc adrb et mot adrm) est significative. En cas de lecture bloc, p = 0 et r = O, la porte loqique ET6 valide le décodeur DECLB qui délivre un signal de chargement LDj sur le registre à décalage RDMj, j' permettant de charger dans ce dernier le bloc lu en mémoire centrale RAI1 h l'adresse adrb par le signal de lecture r. En cas d'écriture bloc, p = O et w = n, la porte loqique ET5 valide le décodeur DECER qui délivre un signal de validation sur le "buffer" BVj, permettant au contenu de ce registre d'être présenté à la mémoire centrale RAM et d'être ainsi éc-rit à l'adresse adrb, la sortie de La porte logique ET5 fournissant le signal d'écriture bloc. Ce dernier est- diffusé sur les entrées d'écriture wl, wi, ... aux "tranches" mot de la mémoire centrale RAM à travers les portes logiques OUi1. En cas de lecture mot, p = 1 et r = O, la porte logique ET3 valide le décodeur DECL qui délivre un signal de validation sur le "buffer" BFSi, permettant au mot demandé (d'adresse adrm dans le bloc adrb) dont la lecture est assurée par le signal r, d'étre aiguillé vers le bus spécial de communication BUSO. Ce mot est récupéré directement par le processeur CPU sur son entrée de donnée data. En cas d'écriture mot, p = 1 et w = O, la porte logique ETO valide le décodeur DECE qui fournit sur sa sortie i un signal aiguillé à travers la porte logique OUli vers l'entrée d'écriture wi de la "tranche" mot de la mémoire centrale RAIl concernée ; ce signal présent à l'entrée wi permet d'écrire dans cette seule "tranche" mot le mot fourni par le processeur CPU j sur le bus de donnée BUSD. Le contenu de ce bus est présenté en parallèle sur toutes les "tranches" mot de la mémoire centrale RAM, grâce à une ecti.vation des "buffers" RFEi par le signal issu de la porte logique ET4. Une caractéristique essentielle de l'architecture de l'invention est de présenter une charge minimale de requêtes sur le bus commun BUSA. Dans l'architecture schématisée à la figure 7, le bus commun BUSA est sollicité par des adresses de bloc et par des adresses de mot. La fréquence. des demandes en adresses de mot- est. fonction du taux de données partagées et peut conduire à une saturation du bus commun BUSA. La figure 9 présente en variante une solution pour réduire cette charge. Le système visé comprend, en plus des ressources de la figure 7, un bus RUSAM pour les adresses de mot, un arbitre AB' pour arbitrer les conflits d'accès au bus RUSA M, un arbitre ABM chargé d'arbitrer les conflits d'accès en provenance des bus BUSA et BU SA M, relié a un multiplexeur MUX lui-même relié par ses entrées aux deux bus RUSA et BUSA. Le fonctionnement de ce système est le suivant : comme précédemment, la logique de partition LPj fournit le signal p permettant d'identifier la nature des données manipulées. Si la demande concerne des données non partagées (p = 0), tout défaut d'information entraîné une requête mémoire de type bloc qui transite par le bus commun BUSA. Si la demande concerne des données partagées (p = 1), la requête est aiguillée vers le bus commun RUSA M. Ainsi, la mémoire centrale RAM peut recevoir des demandes simultanées sur les deux bus RUSA et BUSAM, qui doivent donc être arbitrée s. L'arbitre AR M alloue, de façon classique, l'accès à la mémoire centrale RAM à l'une des deux requêtes et reconstitue le signal p à partir de l'origine de la demande (p = n pour RUSA, p = 1 pour RUSA M). Le signal p commande alors, d'une part, le multiplexeur MIJX qui laisse passer les signaux du bus concerné par la requête, d'autre part, la logique de décodage DEC : on se retrouve dans la situation du système précédent. On notera que la charge s'est déplacée du bus commun vers la mémoire centrale RAM, puisque le taux de requête au niveau de cette dernière reste le même et que son temps de cycle est du même ordre de grandeur ou même supérieur à celui du cycle bus. Cette solution n'est donc intéressante que Si la mémoire centrale RAM est constituée de bancs mémoire centrale indépendants organisés selon la description donnée plus loin en référence h la figure 20 : plusieurs transactions peuvent dans ce cas, si elles affectent différents bancs mémoires, avoir lieu simultanément. La figure 10 présente un schéma synoptique d'un mode de réalisation d'architecture conforme à l'invention, dans lequel le problème des données partagées est traité de façon dynamique. A cet effet, le dispositif conforme à ce mode de réalisation comporte un processeur espion de bus PEj, couplé à un processeur de gestion du lien parallèle PGP;. Un processeur de gestion du lien série PSj est lié au processeur espion PEj par une file d'attente FIFOj Un processeur de gestion de requêtes de l'unité centrale PCUj est lié, -d'une part, au processeur de traitement CPU. d'autre part, aux processeurs de gestion du lien parallèle PGPj et de gestion du lien série Pr.S La logique correspondant au processeur de gestion Pj de chaque mémoire-cache est dans ce mode de réalisation éclatée dans les divers processeurs présentés ci-dessus.L'accès à la mémoire-cache MC et à son répertoire RGj est rèqlementé par un processeur de gestion du répertoire et du cache PGRj. Enfin, un processeur de gestion PGM de la mémoire centrale RAM est connecté au bus BUSA et à la mémoire centrale RAM, et à ses registres à décalages RDMj. Le fonctionnement de l'ensemble est le suivant Chaque transaction sur le bus commun BUSA correspond h une demande de lecture ou d'écriture de bloc bi. Les processeurs espions de bus PEj sont activés par chaque demande de lecture de bloc de données. Cette opération réalisée dans le même cycle par tous les processeurs espions va permettre de garantir l'unicité de valeur des données partagées. Le processeur. espion PEj dispose d'un accès au répertoire RGj. La fonction d'application utilisée pour la gestion de la mémoire-cache MCj est dans le mode de réalisation décrit du type application directe.Chaque élément du répertoire est un descripteur de bloc qui contient un champ "tag" (adresse du bloc), des bits classiques d'états du bloc un bit de validation v et un bit de modification m et deux bits supplémentaires a pour noter que le bloc est connu de la mémoire-cache mais encore en cours de transfert sur la liaison série, f pour indiquer que le.bloc est dans la file d'attente FIFO et éviter ainsi qu'il y soit placé plusieurs fois. Le processeur de gestion mémoire PCM dispose, d'une part, d'une file d'attente AFIFO d'adresses de blocs bi et d'adresses de processeurs, accessible de façon associative, d'autre part, d'un répertoirc- d'état des blocs constitué de 2 bits par bloc ro et rw indiquant les états possibles de bloc suivant ro = rw = n : bloc non encore diffusé, ro = 1 ; rw = O : bloc déjà diffusé en lecture : une ou plusieurs copies de ce bloc se trouvent dans les mémoires-caches, ro = O ; rw = 1 : bloc diffusé en écriture : la copie a jour de ce bloc se trouve dans une mémoire-cache. L'évolution des bits d'états de blocs est la suivante, différente selon la nature de la demande du processeur de traitement CPUj : - si le processeur CPUj fait une demande de lecture de données non partagées (espace programme ou de données explicitement non partagées) : le bloc est marqué déjà diffusé en lecture (ro = 1 ; rw = D) caté mémoire centrale lors du transfert dudit bloc de la mémoire centrale RAM vers le registre Roi et marqué non modifié (m = O) coté mémoirecache dans le même cycle de mise à jour du répertoire R C j de la mémoire-cache (bloc valide). Les espions n'ont pas réagi à la requête sur le bus commun (la demande ayant été faite avec l'indication "données non partagées"). - si le processeur CPUj fait une demande de lecture de données (a priori partagées), le bus commun BUSA est occupé pour le temps du passage des informations d'adresses et de type de requête, le temps de leur traitement par le processeur PGM et les espions du bus commun PEj. En mémoire centrale RAM, ce bloc peut être 1. Non encore diffusé : ro = rw :' O. Il est alors transmis à l'unité centrale UCj et prend l'état non modifié, 2. Déjà diffusé en lecture : ro = 1 ; rw = 0. Il est alors transmis à l'unité centrale UC-. Son état ne change pas, 3. Déjà diffusé en écriture : ro = O rw = 1. La copie à jour de ce bloc se trouve dans une mémoirecache MCi Le processeur espion PEi associé à cette mémoirecache a note la demande de l'unité centrale UC j lors du passage de l'adresse sur le bus commun et a entrepris son transfert en mémoire centrale RAM dès que possible sur sa liaison série LS1. En attendant son transfert effectif, le processeur de gestion mémoire PCM met la demande en attente dans la file d'attente associative qui comporte un nombre d'éléments égal au nombre de processeurs. Lors de la demande de lecture sur le bus commun BUSA, tous les processeurs espions PEi ont réagi en consultant le répertoire R- associé à leur mémoire-cache MCi. Le bus commun 8 IRISA n'est libéré que lorsque tous les processeurs espions PEi ont eu leur accès au répertoire de gestion RGi, ce qui garantit le même état du bloc dans tout le système. Le processeur qui possède la copie à jour dans sa mémoire-cache effectue dès que sa liaison série est libre, le transfert de ce bloc dans le registre RDtfli et fait une demande d'écriture de bloc sur le bus commun qui aura pour effet de libérer la demande en attente dans la file associative AFIFO et d'effectuer la mise à jour des bits d'états du bloc. La mise a jour du bloc n'a donc nécessité qu'une écriture en mémoire centrale R A M sans activation d'esnion. - si le processeur CPU demande l'écriture d'une donnée dans un bloc présent dans sa mémoire-cache MCj avec l'état non modifié, une demande d'écriture informative doit être émise sur le bus commun BUSA car il est possible que d'autres mémoires-cache MCi possèdent ce bloc avec le même état. Ces autres me moires doivent être informées du changement d'état. A cet effet, tous les processeurs espions PEi (activés par l'écriture informative diffusée sur le bus commun RUSA) consultent leur répertoire de gestion RGi et invalident ce bloc, cependant que la mémoire centrale note dans le même temps le changement d'état de ce bloc ainsi que le processeur de gestion parallèle PGPj, dans le répertoire de gestion RGj. La libération du bus commun BUSA par tous les processeurs espions et la.mémoire centrale RAM permet au processeur CPUj de réaliser l'écriture dans sa mémoire-cache ITCj, la mise à jour du bit d'état du répertoire de gestion RGj ayant été effectuée. Si une unité centrale est en attente d'accès au bus BUSA pour la même requête sur le même bloc, sa demande se transforme en écriture simple et suit alors le protocole de demande de bloc en écriture. - si le processeur CPU j demande l'écriture d'une donnée dans un bloc absent de la mémoire-cache 'lC;, ce bloc est lu en mémoire centrale RAM et amené dans la mémoirecache MCj pour que l'écriture soit rendue effective. En mémoire centrale RAM, ce bloc peut être 1. Non encore diffusé : ro = rw = o. Le bloc est alors émis sur la liaison série LSj vers la mémoire cache MCj. Il prend les états ro = O ; rw = 1 en mémoire centrale et l'état modifié (m = 1) dans la mémoire-cache, 2. Déjà diffusé en lecture : ro = 1 ; rw = n. Le bloc est émis sur la liaison série LS j vers la mémoire-cache MC Il prend les états ro = n ; rw = 1 en mémoire centrale et l'état modifié (m = 1) dans la mémoirecache. Lors de la demande sur le bus commun BUSA, les processeurs espions PEi ont noté la requête et invalidé ce numéro de bloc dans leur mémoire-cache MCi, 3. Déjà diffusé en écriture : ro = 0 rw = 1.La demande est mise dans la file d'attente associative AFIFO et le bus commun RUSA est libéré. Le processeur espion PEi de la mémoire-cache MCi, détenteur de la copie à jour, active dès que possible le transfert du bld c demandé de sa mémoire-cache MCi vers la mémoire centrale RAM. Ce bloc est ensuite invalidé dans la mémoire-cache MCi L'unité centrale UCj fait une demande d'écriture de mise à jour de bloc dans les deux cas suivants : a) la mémoire-cache est saturée et la purge d'un bloc nécessite la mise à jour de ce bloc en mémoire centrale, b) une unité centrale UCi est en attente d'un bloc dont la seule copie à jour se trouve dans la mémoirecache MCj. Le processeur espion PEj note la demande et réalise dès que possible la purge de ce bloc. Côté mémoire centrale RAM, chaque demande d'écriture de mise à jour entraîne une consultation de la file d'attente associative AFIFO et, en cas de découverte d'une unité centrale UCi en attente de ce bloc, le chargement de ce bloc dans le registre à décalage RDtti et la mise à jour des bits d'états correspondant à ce bloc. Ce type de demande d'écriture ne sollicite donc pas les processeurs espions. Le processeur de gestion du répertoire PCR qui est ajouté dans ce mode de réalisation, permet le déroulement de l'algori-thme évoqué ci-dessus, en coordonnant les accès au répertoire de la mémoire-cache MCj qui recoit des requêtes de trois unités fonctionnelles asynchrones 1. Le processeur de traitement CPüj, en vue de lire les instructions du programme en cours d'exécution et de lire ou écrire les données manipulées par ce programme, 2. Le bus commun RUSA, en vue de maintenir la cohérence des données dans la mémoire-cache MCj, 3. La liaison série LSj, en vue de charger/décharger un bloc d'information de/vers la mémoire centrale RAM. Chacune de ces requêtes accède au répertoire de gestion RC j de la mémoire-cache. La sérialisation de ces accès sur ledit répertoire de gestion permet d'assurer le bon fonctionnement de l'algorithme sus-évoqué de cohérence de l'information dans les mémoires-caches.On obtient ainsi un couplage fort des requêtes au niveau du répertoire de gestion RC j mais la synchronisation qui doit exister au niveau du traitement de ces requêtes est suffIsamment faible pour envisager un fonctionnement asynchrone de la logique de traitement de ces requêtes, ce qui conduit au découpage fonctionnel suivant L'interface de chaque processeur CPUj et de ses auxiliaires (PGSj, PGUj) avec le bus commun BUSA est composée de deux parties ayant un fonctionnement mutuellement exclusif : le processeur de gestion du lien parallèle PCPj est chargé de requérir le bus commun BUSA à la demande' du processeur de gestion de requêtes PGUj ou du processeur de gestion du lien série PGSj et de piloter le bus commun RUSA en écriture. Le processeur espion de bus PEJ assure la fonction d'espionnage, ce qui revient à piloter le bus commun RUSA en lecture. Il accède de façon fréquente au répertoire RGj de la mémoire-cache MCj Le processeur de gestion du lien série PGSj gère l'interface avec la liaison série LSj. I1 assure le chargement et le déchargement de blocs d'informations bi à la demande du processeur de gestion de requêtes PGUj et du processeur espion de bus PEj. Il accède de façon peu fréquente à la mémoire-cache MCj et au répertoire de qestion RG correspondant. Le processeur de gestion de requêtes PGUj assure le suivi des requêtes issues du processeur CPUj. Il accède de façon très fréquente à la mémoire-cache MCj et au répertoire de gestion RC Cette interface inclut l'éventuelle logique de "01MU" ("Memory Management Unit") habituellement associée au processeur de traitement CPU Le processeur de gestion PCRj du répertoire de gestion RGj - est l'arbitre chargé d'allouer l'accès à la mémoire-cache MCj. Les figures 11, 12, 13, 14, 15, 16 et 17 représentent à titre d'exemples des modes de réalisation des diverses unités fonctionnelles du dispositif de la figure 10. Les désignations des signaux ou entrées et sorties des unités sont choisies de façon habituelle. Les signaux de même fonctionnalité qui sont engendrés dans chaque unité fonctionnelle à partir d'un signal de base seront désignés par la même référence, par exemple : dnp = données non partagées, dl = demande de. lecture, maj = mise à jour, de = demande d'écriture, ei = écriture informative. Le dispositif possède plusieurs processeurs et l'indice j utilisé jusqu'à présent visait un processeur courant et ses auxiliaires ; pour alléger la description, cet indice a été omis sur ces figures et il est bien entendu que la description qui suit vise chacune des unités fonctionnelles qui se rattachent à chaque processeur de traitement.Par ailleurs, les signaux notés x~YZ définissent le nom et l'origine du signal dans le cas où YZ = RG, MC, UC, et la source et la destination du signal dans les' autres cas, avec Y et- Z représentant : U = PGU, R = PGR, P = PGP ou PE, S = PGS. La mémoire-cache MC présentée à la figure 11 a par exemple une capacité de 16 K. Elle est organisée en 16 modules de mémoire vive rapide de 1 KQ MCU, ... MC15, chacun accessible sur un front de 4 octets : le bus adresse de la mémoire-cache MC (noté adr MC) comporte une partie adresse de bloc adr~bloc et une partie adresse de mot dans le bloc adr~mot. Le bus adresse adr~MC est constitué de 14 fils, permettant d'adresser les 16 K# de la mémoire-cache MC.La partie adr~bloc comporte 8 fils permettant d'adresser les 256 emplacements de blocs de la mémoire-cache MC, et la partie adr mot 6 fils permettant d'adresser un mot dans le bloc dont la taille est dans l'exemple de 64 octets. La partie adresse adr~bloc est reliée à l'entrée adresse de chacun des modules mémoires MC0... MC15. La partie adresse mot adr mot est reliée à l'entrée de deux décodeurs CFCO et DEC1 (seuls les 4 bits de forts poids du bus adresse adr~mot sont utilisés : l'adresse est une adresse octet et le cache a une unité d t accès qui est un mot de 4 octets). Le signal de lecture r~MC est délivré à chacune des entrées de lecture des modules mémoires MC0... MC15 et à l'une des entrées d'une porte logique OU1. L'a.utre entrée de cette porte logique Olil reçoit le signal bloc inversé. Le signal d'écriture w~MC est délivré à l'une des deux entrées- de portes logiques 0U2 et OU3. La porte logique OU2 reçoit sur son autre entrée le signal bloc inversé.La porte logique OU3 reçoit sur son autre entrée le signal bloc. La sortie de la porte logique OIJ1 est reliée à l'entrée de validation eni du décodeur DEC1 et la sortie de rang i de ce décodeur DEC1 active un "buffer" de validation BVL de ranci) i. La sortie de la porte logique OU2 est reliée à l'entrée de validation enO du décodeur DECO et à des "buffers" de validation BVE. La sortie de la porte logique OU3 est reliée à des portes logiques ET10... ET115, qui reçoivent sur leur autre entrée la sortie de rang correspondant du décodeur DECO.La sortie i de chaque porte logique ET1... ET115 est reliée à l'entrée d'écriture w0... w15 de chaque module mémoire MC0...- MC15. Un bus de donnée relie chaque module mémoire MC0... MC15 à l'un des buffers de validation BVL et à l'un des buffers de validation BVE. La sortie des buffers BVL et I'entrJée des buffers BVE reçoivent en parallèle un bus de donnée datamot~MC (relié au processeur de gestion des requêtes PCU). Le fonctionnement de l'exemple de la mémoirecache ci-dessus décrit est le suivant Cas I La demande provient du processeur de gestion du lien série PAS. Ce cas est signalé par la présence d'un état logique zéro sur le signal bloc. En lecture mémoire-cache, le processeur de gestion du lien série PC S présente sur le bus adresse adr MC l'adresse de l'emplacement de bloc à lire (dans ce cas, seule la partie adr~bloc du bus adr MC est utilisée) et active le signal de lecture e MC. A l'issue des temps d'accès, le a c c è s, 1 e bloc est disponible sur le bus datahloc MC. En écriture mémoire-cache, le processeur de gestion du lien série présente sur le bus adresse adr~MC l'adresse de l'emplacement du bloc à écrire, sur le bus de donnée databloc MC la donnée à y inscrire, et active la ligne w MC. L'état zéro du signal bloc aiguille le signal w~MC vers les entrées de commande d'écriture des modules de la mémoire cache MC0... MC15, via via les portes logiques OU3 et ETIi. L'information présente sur le bus de donnée databloc t4C est inscrite en mémoire-cache à l'issue du temps d'écriture. Cas 2 La demande provient du processeur de gestion de requête PGU du processeur de traitement CPU. Ce cas est signalé par la présence d'un état logique un sur le signal bloc. En lecture mémoire-cache, le processeur de gestion PGU présente sur le bus adr MC l'adresse du mot demandé, et active le signal de lecture r MC. Le bloc correspondant à-la partie adr hloc est lu en mémoire-cache, et le mot demandé est aiguillé, via l'un des buffers de validation BVL, vers le bus de donnée datamot MC. Le buffer de validation BVL concerné est activé par la sortie du décodeur DFC1 correspondant à l'adresse mot adr mot demandée. En écriture mémoire-cache, le processeur de gestion PGU présente sur le bus adr~MC l'adresse du mot à écrire, sur le bus de données datamot MC la donnée à écrire, et active le signal d'écriture w~MC. La donnée présente sur le bus datamot~MC est diffusée sur chaque module mémoire-cache, via les buffers BVE validés par le signal d'écriture. Le signal d'écriture w ~MC est ensuite présenté au seul module mémoire concerné. Il est délivra à la sortie du décodeur DECO correspondant à l'adresse adr~mot concernée. Dans le mode de réalisation ci-dessus décrit, les problèmes d'accès en octet et double octet, et d'accès en double octet et mot à cheval sur deux modules mémoires sont résolus de la même façon que dans les systèmes informatiques traditionnels et ne sont pas décrits ici. Les figures 12a, 12b, 12c, 12d présentent, à titre d'exemple, les caractéristiques d'un répertoire de gestion du cache RG et d'un processeur de gestion associé PSR. La figure 12a illustre la structure logique de l'adresse adr RG dans l'hypothèse d'un espace d'adressage sur 32 bits et avec les caractéristiques de la mémoire-cache décrite précédemment. Le champ -tag-, composante de l'adresse bloc, est codé sur 18 bits. Le champ -cadre- est codé sur 9. bits et permet d'adresser les 256 emplacements de bloc de laemémoire- cache M C. Les 6 derniers bits définissent l'adresse mot dans le bloc, en unité octet. La figure 12b présente la structure du répertoire de gestion du cache RG, qui est une simple mémoire rapide vive de 256 mots de 22 bits. Chaque mot d'adresse i contient le descripteur du bloc inscrit dans l'emplacement -i de la mémoire-cacbe. La figure 12c schématise la structure du descripteur qui comoorte - un champ tag de 18 bits, définissant l'adresse du bloc dans l'emplacement ou cadre de bloc courant, - le bit de validation v, - le bit de modification m, - le bit d'attente de fin de transfert a, - le bit d'attente de purge f. La figure 12d fournit la structure du processeur PG-R, qui n'est autre qu'un arbitre classique avec priorité fixe. Cet arbitre comprend un registre LATCH, dont trois entrées recoivent respectivement des signaux rqstUR, rqst PR, rqst SR, étalement délivrés respectivement vers des portes logiques ET2, ET3, ET4. Les sorties correspondantes du registre LATCH sont reliées aux entrées d'un encodeur de priorité PRI, dont les sorties sont reliées aux entrées d'un décodeur DECPRI. Les sorties de rang correspondant à ceux du registre LATCH sont reliées aux signaux grnt UR, grnt PR, grnt~SR ainsi que, de façon inversée, respectivement aux entrées des portes logiques ET2, ET3, ET4.Les sorties des portes logiques ET2, ET3, ET4 sont reliées aux entrées de la porte logique Nous. La sortie de la porte logique NOU1 est reliée à une bascule Bi, qui reçoit sur son entrée D la sortie eO de l'encodeur de priorité PRI. L'ensemble du dispositif est synchronisé par une horloge générale qui délivre un signal h à l'une des entrées clk d'une porte logique ET5 et, de façon inversée, sur l'entrée horloge de la bascule B1. La sortie Q de la bascule B1 est reliée à l'autre entrée de la porte logique ET5. La sortie de la porte logique ET5 est'reliée à l'entrée load du registre LATCH. Le fonctionnement de cet arbitre est le suivant : en l'absence de toute requête sur les lignes rqst, la bascule B1 mémorise en permanence l'état de la ligne en, inactive, et valide ainsi 3 travers la porte logique ET5 le chargement du registre.LATCH. L'arrivée d'un signal rqst provoque le verrouillage de l'horloge et l'activation du signal grnt associé au signal rqst, jusqu a désactivation de ce dernier l'arbitre est figé dans son état pendant toute la durée de la transaction en cours. Le processeur de gestion des requêtes PGU, représenté à la figure 13, constitue une interface entre le processeur de traitement CPU et - d'une part, les divers processeurs avec lesquels il doit échanger des informations : processeur de gestion parallèle PGP, processeur de gestion série PGS, processeur de gestion du répertoire du cache PGR, - d'autre part, le répertoire de gestion de la mémoire-cache RC et la mémoire-cache MC. Le processeur de traitement CPU déclenche l'activité du processeur de gestion des requêtes PCU en activant le signal as ("address strobe"). Ce signal valide le bus adresse adr~CPU, les signaux de lecture r~CPU et d'écriture w CPU ainsi que les lignes fonction fc~CPU du processeur de traitement CPU. Le processeur de traitement CPU se met alors en attente jusqu ta acquittement de la requête par le signal dtack~CPU. Le siqnal as est relié à l'entrée d'un circuit différenciateur 010. La sortie de ce circuit est connectée à l'une des trois entrées d'une porte logique ET12, les deux autres entrées recevant respectivement des signaux ack~US et ack~UP. Ce dernier signal est également délivré à l'entrée R d'une bascule 813.L'entrée S de la bascule R13 reçoit la sortie d'une porte logique NET 10. La sortie de la porte logique ET12 est reliée à l'entrée S d'une bascule Bll, à l'entrée S de la bascule B10 et à l'entrée clearlO d'un registre à décalages SRIO. La sortie Q de la bascule 811 fournit le signal rqst IJR. La bascule 811 reçoit sur son entrée R la phase 013 inversée et la bascule B10 la phase inversée. La sortie n de la bascule Rln est reliée à l'entrée série sérial~inlO du du registre SR10.Le registre à décaLage SR10 reçoit sur son entrée c1k10 le signal horloge -h- et sur son entrée de validation enlO le signal grnt~UR. L'activation du signal as déclenche sle fonctionnement du circuit de différenciation D10. L'impulsion produite par ce circuit traverse la porte logique ET12, met à l'état logique un les bascules B10 et Ril par leur entrée S, et effectue également la remise à zéro du registre à décalage SR10 par son entrée clearlO. La bascule 810 et le registre à décalage SR10 constituent le sous-ensemble logique "distributeur de phases" DP~U. L'activation de ce distributeur de phases est déclenchée par la mise à un de la bascule B10 et la remise à zéro du registre à décalage SR10. Si le registre à décalage est validé par la présence d'un niveau zéro sur son entrée enlO, alors la prochaine impulsion d'horloge h sur l'entrée clk du registre à décalage produit le décalage d'un pas dudit registre. L'état logique un de la bascule 810 est répercuté sur la sortie 011 du registre à décalage SR10 par son entrée série serialinlO. La sortie 011, appelée phase 411, inversée, remet la bascule B10 à zéro par son entrée R. Ainsi, un bit unique est introduit dans le registre à décalages SRIO h chaque activation du distributeur de phases DP U. A chaque impulsion d'horloge h, ce bit va se décaler dans le registre à décalage SR10 et produire les phases consécutives disjointes 011, 12, G13. La mise à l'état logique un de la bascule Bll provoque l'activation du signal rqst~UR. Ce signal est émis à destination du processeur de gestion du répertoire PCR. Ce dernier, dès que possible, va accorder l'accès au répertoire de gestion RC et à la mémoire-cache MC en activant le signal grnt~UR, qui va valider l'ensemble des buffers de passage BV10, BVll et BV12 situés respectivement sur les bus du répertoire de gestion et sur les bus de la mémoire-cache. Ce signal grnt~UR valide également le distributeur de phases qui va donc produire sêquentiellement les phases 911, G12, 013. La phase Q 1 1 correspond à une temporisation permettant de lire le descripteur du bloc demandé par le processeur de traitement CPU dans le répertoire de gestion RG, adressé par le champ cadre de l'adresse adr~CPU et relié au bus ad ru à travers des buffers de passage BV10. Le signal rRG est toujours actif à l'entrée d'un buffer BV10, le signal t; RG toujours inactif à l'entrée d'un buffer BV10. A l'issue de la temporisation, le descripteur est retourné au processeur PCU via le bus data~RG.La partie tag de ce descripteur et le bit de validation v sont délivrés à l'une des entrées de comparaison d'un comparateur COMPO, l'autre entrée étant reliée à la partie tag de l'adresse edr CPU. Le bit en regard du bit de validation v est toujours à un. Le comparateur COMPlO est validé en permanence par la présence d'un niveau un sur son entrée fenil. Temps d'accès au répertoire de gestion Ri; et fréquence d'horloge h sont en rapport tel, qu'à la fin de la phase 011, la sortie eglO du comparateur COMPlO est positionnée et fournit l'information "le bloc demandé est présent dans la mémoire-cache ou absent de la mémoire-cache". Si le bloc demandé est présent dans la mémoire-cache MC (eglO = 1) alors le signal agiO, délivre à l'une des deux entrées de la porte logique ET10, fournit un signal calibré par la phase G12, présente sur l'autre entrée de la porte logique ET10. Ce signal calibré présent sur la sortie de la porte logique ET 10, est relié aux entrées des portes logiques NET10, NET11, NET12. La porte logique NETIO reçoit sur ses entrées, outre la sortie de la porte logique ET10, le bit inversé d'état m issu du descripteur, et le signal inversé de demande d'écriture w~CPU. L'activation de la porte logique NET10 correspond à l'état "demande d'écriture d'un mot dans un bloc présent dans le cache et qui n'a pas encore été modifié (m = O)". La sortie de la porte logique NET10 est reliée à l'entrée S d'une bascule 813. L'activation de la porte logique NET10 met la bascule B13 dans l'état logique un, ce qui déclenche une requête d'écriture informative par la ligne rqst~UP au processeur de gestion du lien parallèle PGP. L'adresse du bloc concerné est fournie par les lignes adr~bIocUP, dérivée des lignes adr CPUI Le processeur de gestion des requêtes PGU a terminé la première partie de sa tache : le répertoire de gestion RG et la mémoire-cache sont libérés par désactivation du signal rqst UR, conséquence de l'arrivée de la phase G13 inversée sur l'entrée R de la bascule Bill. Le mécanisme de l'écriture informative est décrit au paragraphe "processeur de gestion du lien parallèle PGP", et a pour effet de mettre le bloc demandé dans l'état modifié (m = 1) ou invalide (v = 0). On notera que la libération du répertoire de gestion RG et de la mémoire-cache M C par le processeur de gestion des requêtes PGU est nécessaire afin que le processeur de gestion du lien parallèle PGP puisse y avoir accès.La fin de l'opération "écriture informative" est signalée au processeur de gestion des requêtes PGU par l'activation du signal ackUF, qui a pour effet de remettre à zéro la bascule 813 et d'activer, à travers la porte logique -ET12, la bascule 1311 et le distributeur de phases : le cycle initialement lancé par le signal as se reproduit, mais la séquence conséquence de l'activation de la porte NET10 ne se reproduira pas une seconde fois dans ce cycle de requête. La porte logique NET11 reçoit sur ses entrées, outre la sortie de la porte logique ET10, le bit d'état m issu du descripteur, et le signal inversé de demande d'écriture w CPU. L'activation de la porte NET11 correspond à l'état "demande d'écriture dans un bloc présent dans le cache et qui a déjà été modifié". La sortie de la porte ET11 est reliée, à travers un des buffers BV11, au signal d'écriture w~MC de la mémoire-cache MC. Ce signal permet d'écrire dans la mémoirecache, à l'adresse présente sur le bus adr~MC, relié au bus adr CPU, via les buffers BV11, la donnée présente sur le bus data, relié au bus data via les buffers bidirectionnels BV12.'Le sens d'activation de ces buffers est fourni par le signal w~MC. La sortie de la porte NET11 est également reliée à l'une des entrées de la porte logique ET11, qui renvoie ainsi le signal dtack~CPU au processeur de traitement CPU. L'opération d'écriture dans le cache se fait en parallèle avec l'activation du signal dtsck CPU, ce qui est conforme aux spécifications habituelles des processeurs de traitement. L'opération se termine par la libération du répertoire de gestion RG et de la mémoire-cache MC par désactivation du signal rqst UR, conséquence de l'arrivée de la phase P13 inversée sur la bascule B11. La porte logique NE T12 reçoit sur ses entrées, outre la sortie de la porte logique Etiû, le signal inversé de demande de lecture r~CPU. L'activation de la porte logique NET12 correspond à l'état "demande de lecture d'un mot dans un bloc présent dans le cache". La suite des opérations est identique à l'opération précédente, à la seule différence du signal activé (r~MC plutôt que wMC) associé au sens de transit des données sur les bus date CPU et data~MC. Si le bloc demandé est absent de la mémoire cache (eglO = O), alors le signal eglO, inversé, relié à l'une des deux entrées de la porte logique NET13, fournit un signal calibré par -la phase 912, présente sur l'autre entrée de la porte logique NET13. La sortie de la porte logique NET13 est reliée à l'entrée S de la bascule 812. Ce signal calibré force la bascule 812 à un, ce qui a pour effet d'émettre une requête de service rqst~US vers le processeur de gestion du lien série PGS. Ce processeur reçoit également l'adresse du bloc a requérir sur les lignes adr~blocUS et la nature de la requête sur les lignes -US, r~US et fc~US. Le pro.cesseur de gestion'des requêtes PGU a terminé la première partie de sa tâche : le répertoire de gestion RG et la mémoire-cache MC sont libérés par désactivation de la ligne rqst UR, conséquence de l'arrivée de la phase R13 inversée sur la bascule 811. Le mécanisme de mise à jour du cache est décrit au paragraphe "processeur de-gestion de la liaisonsérie PCS1t. On notera que la libération du répertoire de gestion RG et de la mémoire-cache MC est nécessaire pour que le processeur de gestion de la liaison série PGS puisse y avoir accès. La mise à jour du cache est signalée au processeur de requête PGU par l'activation du signal sck US. Ce signal est délivré à l'entrée R de la bascule 812 et à l'entrée de la porte ET12. Il a ainsi pour effet de remettre à zéro la bascule 812 et d'activer à travers la porte logique ET12, la bascule Bll et le distributeur de phases : le cyc-le initialement lancé par le signal as se reproduit, mais cette fois avec succès du fait de la présence du bloc dans la -mémoire-cache. Le processeur de gestion série PGS représenté à titre d'exemple à la figure 14 est chargé de gérer la liaison série LS et à ce titre de réaliser les demandes de transfert de blocs entre mémoire centrale RAM et mémoire-cache MC et de réaliser les mises à jour correspondantes dans le répertoire de gestion RG. Il traite en priorité les demandes issues du processeur espion PE en attente dans une file d'attente FIFO. Il traite également les demandes issues du processeur de requêtes PCU. Ce processeur de gestion de la liaison série PGS comprend une bascule B20 qui reçoit sur son entré de donnée D le signal empty issu de la file d'attente FIFO et sur son entrée horloge la sortie Q d'une bascule 822. Une bascule 821 reçoit sur son entrée de donnée la sortie d'une porte logique OU20. Cette porte logique OU20 valide le signal rqst US, reçu à l'une de ses deux entrées, l'autre entrée étant reliée au signal empty. L'entrée horloge de la bascule 21 provient de la sortie Q de la bascule 822. La sortie q de la bascule 822 est rebouclée sur son entrée de donnée D, ce qui la conditionne en diviseur par deux.L'entrée d'horloge de la bascule 822 est connectée à la sortie d'une porte logique ET20, laquelle reçoit sur l'une de ses entrées l'horloge générale de fonctionnement h et sur l'autre entrée un signal de validation. Ce signal de validation provient de la sortie d'une porte logique ET24, qui reçoit respectivement sur ses deux entrées les sorties Q et n des bascules 820 et 821. La bascule 820 reçoit sur son entrée R la phase Q25, inversée, issue d'un distributeur de phases DP~S. La bascule B21 reçoit sur son entrée S la sortie d'une porte logique NOU20. Cette porte logique NOS20 reçoit sur ses deux entrées les sorties respectives de portes logiques ET22 et ET23. La porte logique ET22 reçoit sur ses entrées la phase G25 issue du distributeur de phases et le- signal maj issu d'une porte logique ET29. La porte logique ET23 reçoit sur ses entrées la phase G27 issue du distributeur de phases et le signal maj inversé. L'ensemble des circuits 820, 821, 822, ET20, ET22, ET23, OU20, ET24, NOU20 constitue un arbitre à priorité fixe ARE S. Son fonctionnement est le suivant : la bascule 822 fournit sur ses sorties Q et Q des signaux alternés de fréquence moitié de celle de l'horloge générale. Ces signaux valident alternativement les bascules 820 et 821. Si une requête de service est présente sur l'une des entrées des bascules 820 ou 821, alors ces signaux alternés mémorisent la demande dans la bascule correspondante (B20 pour le processeur espion PE, 821 pour le processeur de gestion de requête PGU) qui, en retour, verrouille le fonctionnement alterné.On notera que le signal rqst~US en provenance du processeur de gestion de requêtes PGU est conditionné par le signal empty à travers la porte OU20 : ce signal n'est ainsi pris en compte que si la file d'attente FIFO est vide. La bascule 820 (respectivement B21) n'est remise à zéro que lorsque la transaction à effectuer est terminée. L'échantillonnage d'une demande sur l'une ou autre des bascules B20 et 821 se traduit par un changement d'état de la sortie de la porte logique ET24. La sortie de la porte logique ET24 est également reliée à un circuit différenciateur D20 qui délivre une impulsion lors du changement d'état de la sortie de la porte logique ET24. La sortie du circuit différenciateur est reliée d'une part au distributeur de phases DP S (entrée S d'une bascule 836 et clr20 d'un registre à décalage SR20) du processeur de gestion de la liaison-série et d'autre part à l'une des deux entrées de la porte logique OU22. La sortie de la porte logique est reliée aux entrées S de deux bascules 824 et 825.La bascule B24 reçoit sur son entrée R la sortie d'une porte logique NOU2l et la bascule 825 le signal grntSR. La porte logique NOU21 reçoit sur ses deux entrées les sorties de portes logiques ET36 et ET37. La porte logique E36 reçoit sur ses entrées la phase 023 issue du distributeur de phases et le signal maj, et la porte logique E37 la phase 827 issue du distributeur de phases et le signal maj inversé. L'impulsion issue du circuit différenciateur D20 initialise ainsi le distributeur de phases et met à l'état logique un les bascules 824 et 825 à travers la porte logique OU22. Le distributeur de phases DP~S est constitué du registre à décalages SR20 et de la bascule 836. Son fonctionnement est identique à celui décrit dans le paragraphe concernant le processeur de gestion de requêtes PCU. La sortie Q de la bascule 824 est reliée au signal rqstSR, à destination du processeur de gestion du répertoire PGR. Son activation déclenche une demande de service à ce processeur, qui répond par la ligne grnt SR, reliée à entrée R de la bascule B25. La sortie Q de la bascule 1325 est reliée à l'une des entrées d'une porte logique OU23. La sortie de la porte logique OU23 est reliée à l'entrée en20 du registre à décalages SR20. L'ensemble logique 824 et '825 constitue une logique de resynchronisation RESYNC S entre unités asynchrones. Son fonctionnement est le suivant Une demande de service rqst SR vers le processeur de gestion du répertoire PGR se fait par activation des bascules 824 et 825 à travers la porte logique OU22, ce qui autorise deux origines d'activations. La logique propre au processeur de gestion du répertoire PGR assure une réponse grnt~SR dans un temps indéterminé, qui remet à zéro la bascule 825. La bascule R24 maintient sa demande jusqu'à sa remise à zéro par activation de son entrée R.En retour, le processeur de gestion du répertoire PCR désactive sa ligne grnt SR : la la logique de resynchronisation est prête à fonctionner pour une prochaine demande de service. La sortie Q de la bascule B25 sert à bloquer le distributeur de phases par action sur son entrée en2O via la porte logique OU23 : la remise à zéro de la bascule B25 libère le distributeur de phases qui fournira la première phase G21 lors de la prochaine transition active de l'horloge générale h, connectée à l'entrée clkon du distributeur de phases. La ligne grnt SR est également reliée aux buffers de validation BV20, 8V25 et BV21, BV22 qui ouvrent l'accès respectivement au répertoire de gestion RG et à la mémoire-cache MC. Si la bascule 820 est active, alors la transaction en cours est une purge de bloc demandée par le processeur espion PE via la file d'attente FIFO. La sortie Q de la bascule 820 est reliée à des buffers de validation BV24. Ces buffers reçoivent sur leur entrée la sortie d'un registre REG20. La sortie O de la bascule 820 est reliée à l'une des deux entrées d'une porte logique OU21, qui reçoit sur son autre entrée la sortie du circuit différenciateur 020. La sortie de la porte logique OU21 est reliée à l'entrée load20 du registre REG20 et à l'entrée read20 de la file d'attente FIFO. Ainsi, l'activation de la bascule 820 provoque 1. L'initialisation du distributeur de phases, 2. Une demande d'accès au répertoire de gestion RG et à la mémoire-cache MC, 3. Le chargement de l'élément en tête de la file d'attente FIFO dans le registre REG20 et l'avance de la file d'attente, 4. La validation du buffer BV24 : le bus adr X contient l'adresse du bloc à purger. La nature de l'opération (mise à jour) sera retrouvée à partir de la combinaison des bits v et m (signal maj). Si la bascule 821 est active, alors la transaction an cours provient d'un défaut d'information dans la mémoire-cache MC. La sortie Q de la bascule B21 est reliée à 8 des buffers de validation BV23. Ces buffers reçoivent sur leur entrée les informations en provenance du processeur de gestion de requête PGU. Ainsi l'activation de la bascule 821 provoque 1. L'initialisation du distributeur de phases, 2. Une demande d'accès au répertoire de gestion RG et à la mémoire-cache MC, 3. La validation des buffers BV23 : le bus adr~X contient l'adresse du bloc qui a provoqué le défaut d'information dans la mémoire-cache MC, et la nature de la requête lecture ou écriture, données partagées ou non partagées (lignes fc~US). Le champ "cadre" du bus adr~X est relié aux lignes d'adresses adr~RC -du répertoire de gestion RG à travers des buffers de validation BV20. Les sorties Q de bascule 826 et 827 sont respectivement reliées aux lignes RG et w~RG du répertoire de gestion à travers les buffers de validation BV20. La bascule 826 reçoit sur son entrée S la sortie de la porte logique OU22 et sur son entrée R la phase Q22 inversée issue du distributeur de phases. La bascule 827 reçoit sur son entrée S la sortie d'une porte logique N0U22 -et sur son entrée R la sortie d'une porte logique NOU23.La porte logique NOU22 reçoit sur ses deux entrées les sorties respectives de portes logiques ET 25 et ET26, eiles-mêmes recevant sur leurs entrées, pour la porte ET25 la phase 922 et le signal maj et pour la porte ET26 la phase S26 et le signal maj. La porte logique NOU23 reçoit sur ses deux entrées les sorties respectives de portes logiques ET27 et ET28, elles-mêmes recevant sur leurs entrées, pour la porte ET27 la phase 23 et le signal maj inversé et pour la porte ET28 la phase 927 et le signal maj inversé. Le champ tag du bus adr X est relié au champ. tag des lignes data~RG à travers des buffers de validation BV25. Ces derniers reçoivent sur leur entrée de validation la sortie d'une porte logique OU24 qui reçoit sur ses entrées le signal grnt~SR et la sortie Q de la bascule 827. Les entrées D de bascules 828 et 829 sont respectivement reliées aux lignes bit de validation v et bit de modification m du bus data. Les entrées horloges de ces bascules B28 et 829 sont reliées à la phase 922 du distributeur de phases. La sortie Q de la bascule 828 et la sortie Q de la bascule 829 sont reliées aux deux entrées d'une porte logique ET29, qui fournit sur sa sortie le signal maj. Une porte logique OU25 reçoit sur ses entrées le signal maj et la sortie Q d'une bascule 830. La sortie de la porte logique OU25 est reliée à l'entrée de sélection se120 d'un multiplexeur MUX20, qui reçoit sur ses deux entrées de données la sortie Q de la bascule 828 (bit v) et la constante 0, la constante zéro étant choisie lorsque l'entrée de sélection se120 est à l'état logique un. La sortie du multiplexeur MUX20 est reliée à la ligne bit de validation v du bus adr X. La ligne bit d'attente -a- du bus adr X est forcée à l'état logique zéro.Le bit de modification -m- est relié à la ligne de lecture r edr x du bus adr X. L'ensemble logique décrit ci-dessus constitue la logique d'accès et de mise à jour du répertoire de gestion RG. Son fonctionnement est le suivant : l'activation du'signal grnt SR, autorisant l'accès au répertoire de gestion et à la mémoire-cache, valide les buffers de validation Bu20. La lecture du descripteur concerné est commandée du début de l'autorisation d'accès jusqu'à l'arrivée de la phase P22, instant de mémorisation des bits -v- et -m- dans les bascules 828 et 829. L'état combiné de ces deux bits produit, à travers la porte logique ET29, le signal maj qui conditionne la suite des opérations. ler cas : maj = 1. Ce cas se produit lorsque le bit de validation est égal à 1 et le bit de modification est égal à 1. Ce cas correspond soit à une demande de purge de bloc du processeur espion PE, soit à un défaut d'information constaté par le processeur de gestion de requêtes PGU sur un emplacement de bloc occupé et modifié : dans les deux cas, le bloc concerné doit être écrit en mémoire centrale RAM. A cet effet, le champ cadre du bus adr~X est relié aux lignes adr~MC via les buffers de validation BV21. Les sorties Q des bascules 830 et 831 sont respectivement reliées aux lignes r~MC et w MC de la mémoirecache MC, à travers les buffers de validation BV21. La ligne bloc est forcée à zéro via un des buffers de validation BV21, Les lignes de données data MC de -la mémoire-cache sont reliées, via les buffers de validation bi-directionnels BV22, aux entrées du registre à décalage RDP et aux sorties des buffers de validation BV26, qui reçoivent sur leurs entrées les lignes de sortie du registre à décalage RDP.Les buffers BV22 sont validés par la ligne grnt~SR, et leur sens de validation commandé par la sortie W de la bascule 831. La bascule B30 reçoit sur ses entrées S et R respectivement les phases 821 et g23, inversées, en provenance du distributeur de phases. La bascule 831 reçoit sur ses entrées S et R respectivement les sorties de portes logiques ET32 et ET33. La porte logique ET32 reçoit sur ses entrées la phase 926 et le signal maj inversé, la porte logique ET33 la phase 827 et le signal maj inversé. Une porte logique MET20 reçoit sur ses entrées la phase 923 et le signal maj.La sortie d'une porte logique ET35 commande les buffers de validation BV26, et reçoit sur ses deux entrées respectivement le signal maj inversé et la sortie Q de la bascule 831. La sortie de la. porte logique NET20 est reliée au signal load21 du registre å décalage RDP et à l'entrée S d'une bascule 832. L'entrée R de cette bascule B32 reçoit le signal fin transfert~maj issu de la logique TFR associée au registre à décalage RDP. La sortie Q de la bascule 832 est reliée à l'une des entrées de la porte logique où23. La logique décrite ci-dessus permet de purger un bloc de la mémoire-cache. Son fonctionnement est le suivant En parallèle avec l'accès au répertoire de gestion RE, une lecture de la mémoire-cache MC est activée par la ligne r MC, issue de la bascule 830, durant les phases S21 et 622. A l'issue de cette lecture, les données lues, représentant le bloc à décharger, sont présentes à l'entrée du registre à décalage RDM. L'activation du signal maj, dont l'état est connu en début de la phase 622, provoque 1.L'invalidation du bloc dans le répertoire de gestion : l'entrée se120 du multiplexeur MUX20 étant å l'état logique un, la valeur zéro est forcée sur le bit de validation, le descripteur étant écrit dans le répertoire de gestion RG avec l'activation du signal w RG, commandée par la bascule 827 durant le cycle G22, 2. Le chargement du registre à décalage RDM et l'activation du transfert, lors du passage de la phase G22 à la phase 23, 3. La mise à l'état logique un de la bascule 832, qui va bloquer le distributeur de phases sur la phase 923 jusqu'à la fin du transfert, signa-lde par le signal fin~transfert~maj issu de la logique TFR, 4.La libération du répertoire de gestion RG et de la mémoire-cache MC par remise à zéro de la bascule 824 sur la phase 823. Ainsi, l'accès au répertoire est libéré (donc accessible pour le processeur espion PE), le transfert de mise à jour est en cours, et le distributeur de phases bloqué sur 823. Dès que le transfert est terminé, le bloc est en attente dans le registre à décalage RDM et il faut activer le processeur de gestion du lien parallèle pour que l'écriture en mémoire centrale RAM soit effective. A cet effet, la bascule 1333 est reliée par sa sortie Q à la ligne de requête de service rqst~SP à destination du processeur de gestion du lien parallèle PGP. La sortie Q est reliée à l'une des entrées de la porte logique OU23, l'entrée S à la phase 024 inversée du distributeur de phases et l'entrée R au signal eck SP. Le bus adr~X est relié au bus adr~bloc~SP du processeur de gestion du lien parallèle Prao. Une des lignes du bus adr~bloc~SP reçoit le signal maj afin d'indiquer la nature de la requête : mise à jour. Dès libération du distributeur de phases par le signal fin~transfert~maj, la prochaine transition active de l'horloge générale h provoque le passage de la phase R23 à la phase 24. La phase 824 provoque une requête de service su processeur de gestion du lien parallèle PGP (activation de la ligne rqst SP) et le blocage du distributeur de phases jusqu'à l'acquittement de la requête par le signal ack~SP. A ce moment, l'écriture en mise à jour aura été effectivement réalisée par le processeur de gestion. du lien parallèle PGP. Le distributeur de phases, sur la prochaine transition active de l'horloge h, va passer de la phase 024 à la phase 825. La mise à jour de la mémoire centrale RAM est terminée : la bascule 820 est mise à zéro par activation de son entrée R par la phase 025 inversée. La bascule 821 est mise à un par activation de son entrée S par la phase ES25, conditionnée par le signal maj au moyen de la porte logique ET22 via la porte logique NOU22. En cas de défaut d'information dans la mémoire-cache, la purge d'un bloc ne ~constitue que la première partie de la requête : la demande rqst~US est toujours présente, mais la libération de la bascule 821 va permettre de prendre en compte d'éventuelles demandes de mises à jour en attente dans la file d'attente FIFO.Dès que la file d'attente FIFO est vide (empty = 0), tout le cycle décrit précédemment se reproduit, avec cette fois le bit de validation à zéro. On se retrouve alors dans le cas suivant. 2ème cas : maj = O. Ce cas se produit lorsque le bit de validation est égal à zéro (par suite, peut-être, d'une purge de bloc) ou lorsque le bit de validation est égal à un mais le bit de modification est égal à zéro : la copie à jour de ce bloc est déjà en mémoire centrale RAM. Ainsi, la requête de service rqst~SR va entratner en retour un accord d'accès au répertoire dé gestion RG et à la mémoire-cache MC avec lecture du descripteur, mémorisation des bits m et v, génération du signal maj, réécriture du descripteur avec v f O (maj est à l'état logique zéro, la bascule 831 est à l'état logique zéro et sa sortie 0 vaut donc un, ce qui impose un signal logique à l'état un sur l'entrée se120 du multiplexeur MUX2tl et donc force la constante 0) et libération de l'accès au répertoire de gestion RG et de la mémoire-cache MC. Ces opérations sont effectives dès activation de la phase 923. Le bloc demandé doit maintenant être lu dans la mémoire centrale RAM. A cet effet,' le signal maj inversé est reçu à l'une des entrées d'une porte logique NET2î, qui reçoit sur son autre entrée la phase 925. La sortie de la porte logique NET21 est reliée aux entrées S des bascules B34 et 835. La bascule 834 reçoit sur son entrée R le signal fin réception en provenance de la logique de transfert TFR. Sa sortie 0 est reliée au circuit différenciateur D21. Ce circuit est relié à la porte logique OU22. L'entrée R de la bascule 835 est reliée au signal grnt~SR et la sortie P à l'une des entrées de la porte logique OU23. La lecture d'un bloc en mémoire centrale RAM et son transfert dans la mémoire-cache sont réalisés de la façon suivante : l-a transition de la phase 923 à la phase G24 déclenche une requête de service au processeur de gestion du lien parallèle par activation de la ligne rqst SP, issue de la bascule 833. Le type d'opération est cette fois une lecture (r~adr~X = O) ou une écriture (w~adr~X = O) et le bus adr,X fournit l'adresse du bloc demandé sur le bus adr~bloc~SP.Le distributeur de phases est bloqué jusqu'à arrivée du signal d'acquittement ack~SP : la demande de lecture ou d'écriture a été faite à la mémoire centrale RAM par le processeur de gestion du lien parallèle PGP, et le bloc a été en même temps validé et marqué "en attente" par ce né me processeur. Le transfert est donc en cours, de la mémoire centrale RAM vers le registre à décalage RDP. Le distributeur de phases, libéré, fournit ensuite la phase 925. Cette phase, par l'intermédiaire de la porte logique NET21 qui reçoit sur son autre entrée le signal maj inversé, va mettre à l'état logique un les bascules 834 et B35. La bascule 835 bloque le distributeur de phases. La bascule 831 est remise à zéro dès arrivée du bloc demandé dans le registre RDP, signalé par l'activation de la ligne fin~réception issuede la logique de transfert TFR, ce qui déclenche l'activation du circuit différenciateur D21 et une demande d'accès au répertoire de gestion RG et à la mémoirecache MC, par activation de la ligne rqst SR issue de la bascule 1324. L'accord d'accès, signalé par la ligne grmtSR, libère le distributeur de phases par remise à zéro des bascules B25 et 835 et ouvre l'accès au répertoire de gestion RC et à la mémoire-cache MC. Le distributeur de phases, sur la prochaine transition active de l'horloge générale h, fournit la phase 026. La bascule B27, reliée au signal w~RG du répertoire de gestion, est active de 026 à 927, ce qui permet de réaliser la mise à jour du répertoire de gestion avec - champ tag-du bus. data~RG = champ tag du bus adr~X, - hit de validité v = 1 (maj = O et la sor-tie 0 de la bascule 831 est à zéro: le multiplexeur MUX20 laisse passer v, qui a été forcé à un par le processeur de gestion du lien parallèle PGP, ou déjà remis à zéro par le processeurespion PE), - bit de modification m = état de la ligne r~adr~X du bus adr~X (demande écriture entrai ne m = 1, demande de lecture m = 0), - bit d'attente de transfert a = 0, -~ bit f = 0. La bascule B31 active le signal w~MC de la mémoire-cache MC de 026 à 927, ce qui permet d'écrire le contenu du registre à décalage RDM (les buffers BV26 sont validés par la sortie 0 de la bascule B31 et- le signal maj inverse dans le bon emplacement (champ -cadre- du bus adr~X relié au bus adr~MC) de la mémoire-cache, via les buffers de validation BV22, commandés an sens de transfert par la bascule B31. A l'arrivée de la phase 927, la mise à jour du répertoire de gestion et de la mémoire-cache est terminée. L'arrivée de la phase 927 provoque la remise à zéro de la bascule 1324, ce qui libère l'accès au répertoire de gestion RG et à la mémoire-cache MC et l'activation de la sortie- de la porte logique ET23, remettant à un la bascule 1321 et activant le signal ack~US à destination du processeur de gestion des requêtes FCU la requête est terminée. Par ailleurs, le processeur espion PE est chargé du maintien de la cohérence des données dans la mémoire-cache MC ; à titre d'exemple, on a représenté à la figure 15 une architecture de ce processeur. Celui-ci est déclenché à chaque transition active du signal valid du bus commun BUSA. Si le signal valid est activé par un processeur de gestion du lien parallèle PGP autre que celui associé au processeur espion PE, alors la tâche de ce dernier est la suivante, fonction du type de requête - requête en lecture de bloc de données non partagées 'ou requête d'écriture de mise à jour du bloc néant, - requête en lecture de bloc de données partagées bloc absent : néant, bloc présent et non modifié : néant, bloc présent et modifié : demande de purge du bloc (que ce bloc soit présent ou en cours de transfert de la mémoire centrale RAM vers la mémoire-cache MC, état signalé par le bit -a- du descripteur), - requête en écriture de bloc de données partagées . . bloc absent i néant, bloc présent non modifié : invalider le bloc, bloc présent modifié : demande de purge de bloc (même remarque que ci-dessus), - requête d'écriture informative de bloc bloc absent : néant, bloc présent non modifié : invalider le bloc, bloc présent modifié : cas impossible, si une demande d'écriture informative est en attente sur ce même bloc, elle est transformée en requête en écriture de bloc, car ce bloc a été invalidé ; à cet effet, la requête en cours est annulée et un acquittement est renvoyé au processeur de gestion des requêtes FCU. Ce dernier consulte le répertoire RG et va trouver le bloc absent : une requête est émise vers le processeur de gestion PGS. Cette opération est prise en compte par le processeur de gestion parallèle PGP. Si le signal valid est activé par le processeur de gestion du lien parallèle PGP associé au processeur espion, alors la tâche de be dernier est la suivante, fonction du type de requête (dite requête locale) - requête en lecture de bloc de données- non partagées ou requête d'écriture de mise à jour de bloc néant, - requête en lecture de bloc de données partagées : marquer le bloc valide, en attente de transfert et non modifié (v = a = 1 et m = 0), - requête en écriture de bloc de données partagées : marquer le bloc valide, en attente de transfert ét modifié (v = m : a = 1), - requête d'écriture informative de bloc marquer le bloc "modifié" (m = 1). Pour assurer les fonctions ci-dessus décrites, le processeur espion PE comprend un distributeur de phases DP~E, constitué d'un registre à décalage SR40 et d'une bascule 840. La sortie d'un circuit différenciateur D40 est reliée à l'entrée S de la bascule 840 et à l'entrée clear40 du registre SR4O, ainsi qu'à l'entrée S d'une bascule 841. La sortie O de la bascule 840 est reliée à l'entrée serial~in40 du registre SR4t). L'entrée clk40 du registre SR40 reçoit le signal h dthorloge générale et l'entrée de validation en40 est reliée à la sortie O de la bascule 843. La phase 041, inversée, issue du registre SR40 est reliée à l'entrée R de la bascule 840. Le fonctionnement du distributeur de phases est conforme à la description faite dans le processeur de gestion des requêtes PGU. Le signal valid du bus BUSA est relié à l'entrée du circuit différenciateur D40 et à l'entrée de validation en41 d'un décodeur DEC41. La bascule 1341 reçoit sur son entrée R la sortie de la porte logique NOU40. La sortie Q de la bascule 841, à collecteur ouvert, est reliée au signal done du bus BUSA. Les signaux valid et done assurent la synchronisation du processeur espion PE avec les autres processeurs espions du système multiprocesseur : la transition négative du signal valid déclenche le circuit différenciateur D 40 qui produit une impulsion permettent d'activer le distributeur de phases et de mettre le signal done à l'état logique zéro par l'intermédiaire de la bascule 841. La fin du travail de l'espion est signalée par un changement d'état sur la sortie de la porte logique NOU40, qui produit la mise à l'état logique un du signal done par l'intermédiaire de la bascule 841. Le travail de l'espion est fonction de la nature de la demande et, à cet effet, le champ type du bus RUSA est connecté à l'entrée du décodeur DEC4l. Les sorties dnp et dmaj du décodeur DEC41 sont reliées aux entrées d'une porte logique OU40. Les sorties dl, de, dei du décodeur DEC41 sont reliées aux entrées d'une porte logique OU41, les sorties de et dei étant étalement reliées aux entrées d'une porte logique QU42. La sortie de la porte logique OU40 est reliée à l'une des entrées de la porte logique NOU40 par l'intermédiaire d'une porte logique ET40, qui reçoit sur son autre entrée le signal 641. La sortie de la porte logique OU41 est reliée respectivement à l'une des entrées de portes logiques ET42, ET43, qui reçoivent sur leur autre entrée respectivement le signal de phase 641 et 044. Les sorties des portes logiques ET42 et ET43 sont reliées respectivement aux entrées S et R d'une bascule R44. La sortie de la porte logique ET42 est également reliée aux entrées S de bascules R42 et 843.Une porte logique NOU41 reçoit sur ses entrées le signal de phase 645 et la sortie d'une porte logique ET45, qui reçoit sur ses deux entrées la phase 644 et la sortîe.inversée d'une porte logique 0U43-. La sortie de la porte logique NOU41 est reliée à l'entrée R de la bascule 842. La sortie Q de la bascule 842 est reliée au signal rqst PR et le signal grntPR est délivré à l'entrée R de la bascule 843, aux entrées de validation de buffers de passage BV40, et à l'une des entrées de la porte logique OU44.La porte logique OU44 reçoit sur son autre entrée la sortie W d'une bascule 845, et sa sortie valide les buffers de passage BV41. La sortie de la porte logique ET45 est également reliée à l'une des entrées de la porte logique NOU40 qui reçoit sur une autre entrée le signal de phase 045.La sortie de la porte logique OU42 est reliée aux entrées de portes logiques ET46 et ET47, qui reçoivent également sur leurs entrées la sortie d'une porte logique OU43 et respectivement les phases 944 et 945. La sortie Q de la bascule 1344 délivre le signal r RG via un- buffer BV40, la sortie Q de la bascule 1345 délivre le signal w RG via un buffer BV40.Le champ cadre du bus commun BUSA est relié au bus adr RG via un buffer BV40. Le bus data ru est relié aux sorties des buffers de validation BV41 -et à l'entrée du registre REG40, qui reçoit sur son entrée load40 le signal de phase 943. La sortie du registre REG40 est reliée, pour la partie tag, aux entrées des buffers BV41 et à l'une des entrées d'un comparateur COMP40. Le comparateur COMP40 reçoit sur son autre entrée la partie tag du bus BUSA. Le bit de validation v, issu du registre REG40, connecté au comparateur COMFa0 a en regard la valeur constante 1.Les bits v, a, m, f en sortie du registre REG40 sont reliés respectivement à l'une des entrées des multiplexeurs MUX40, MUX41, MUX42, MUX43. Les sorties de ces multiplexeurs fournissent l'état de ces mêmes bits à l'entrée des buffers BV4î. Le multiplexeur MUX40 reçoit sur ses autres entrées les constantes zéro et un, les entrées se 140 sont reliées à la sortie d'une porte logique ET48 et à un signal dalle. Le multiplexeur MUX41 reçoit sur son autre entrée la constante un, sélectée lorsque son entrée sel41, recevant un signal dlle issu du processeur de gestion PGP, est à l'état logique un.Le multiplexeur MUX42 reçoit sur ses autres entrées la constante un et le signal r~adrblocSR, ses entrées se142 reçoivent les signaux dlei et dlle issus du processeur de gestion PGP. Le multiplexeur MUX43 reçoit sur son autre entrée la constante un, sélectée lorsque son entrée se143, reliée à la sortie d'une porte logique ET49, est à l'état logique un. La porte logique ET 49. reçoit sur ses entrées la sortie eg40 du comparateur COMP40, le signal f inversé et le signal m. La porte logique ET48 reçoit sur ses entrées la sortie eg40, le signal m inverse, le signal dlei et la sortie de la porte logique OU42. La porte logique nu43 reçoit sur l'une de ses entrées le signal eg40, et sur son autre entrée le signal dlle. La sortie de la porte logique ET49 est également reliée à l'entrée load41 de la file d'attente FIFO, déjà décrite dans le processeur de gestion du lien série PGS. Les champs cadre et tag du bus BUSA sont reliés à l'entrée de la file d'attente FIFO. Les signaux dlei, dlle et r~adrblocSP proviennent du processeur de gestion du lien parallèle PCP, qui reçoit par ailleurs le signal dei du décodeur DEC41. Le fonctionnement de l'ensemble est le suivant l'activation du signal valid initialise le distributeur de phases DP~E et valide le décodeur DEC41 qui produit l'activation d'une sortie fonction de l'information type codant la nature de la demande en cours sur le bus commun BUSA. La sortie active peut être - dnp requête en lecture de données non partagées. Le signal done est désactivé à l'apparition de la phase R41 ; - dmaj : requête d'écriture de mise à jour de bloc. Le signal done est désactivé à la phase 041 ; - dl : requête de lecture de bloc - de : requête d'écriture de bloc - dei : requête d'écriture informative. Ces trois cas nécessitent un accès en lecture au répertoire RC, et les deux derniers une réécriture éventuelle du répertoire. A cet effet, une requête d'accès est émise vers le processeur de gestion du répertoire PGR par la bascule B42 (signal rqst~PR), la bascule 843 inhibant le distributeur de phases jusqu'à accord d'accès, signifié par le signal grnt PR. La lecture s'effectue donc de 841 à 844 (bascule 844) et l'éventuelle écriture de 944 à 845 (bascule 845) avec mémorisation du descripteur dans le registre REG40 lors de la phase 943. Si le bloc est absent de la mémoirecache MC (eg411 = 0), alors le signal done est désactivé sur la phase 844.Si le bloc est présent dans le cache (eg40 = 1), alors - si m = 1, une demande de purge est activée (activation porte logique ET49) à condition que ce bloc ne soit pas déjà dans la file (f = 0) ; le seul bit modifié est f, mis à un, lors de la réécriture du descripteur, - si m = O, le bloc est invalidé par le multiplexeur MUX40 (activation de la porte logique ET48), - si la demande est locale (dlle ou dlei actif), alors 1) en cas de lecture ou d'écriture, les bits v et a sont mis à 1 et m est mis à n (lecture) ou 1 (écriture) (état du signal radrbloc~SP), 2) en cas d'écriture informative, le bit m est forcé à 1. Dans ces derniers cas qui demandent une réécriture dans le répertoire de gestion RG, le signal done est désactivé sur la phase 845. Le processeur de gestion du lien parallèle PGP, dont un exemple est représenté à la figure 16, est chargé de requérir le bus commun BUSA et de réaliser la transaction demandée, soit par le processeur de gestion des requêtes PGU, soit par le processeur de gestion de la liaison série PGS. Une demande issue du processeur de gestion des requêtes PCU ne peut être qu'une requête d'écriture informative. Une demande issue du processeur de gestion de la liaison série PGS est, .soit une demande de lecture ou d'écriture de bloc, soit une demande de mise à jour de bloc. Le processeur de gestion du lien parallèle PGP comprend une bascule 860, reliée par son entrée de donnée D au signal rqstUP. Une bascule 861 est reliée par son entrée de donnée D au signal rqst~SP. Les sorties Q et Q d'une bascule R62 sont reliées respectivement aux entrées horloges des bascules 860 et B61. La sortie Q de la bascule 862 est rebouclée sur son entrée de donnée. Les sorties Q des bascules 860 et B61 sont reliées aux entrées d'une porte logique OU60. La sortie de la porte logique OU60 est reliée, d'une part, à un circuit différenciateur D60, d'autre part et de façon inversée, à une entrée d'une porte logique ET 60, qui reçoit sur son autre entrée le signal d'horloge générale h. La sortie de la porte logique ET60 est reliée à l'entrée horloge de la' bascule 862. La sortie du circuit différenciateur D6n est reliée à 1'entrée S d'une bascule B63.La sortie Q de la bascule B63 délivre un signal rqsti à destination de l'arbitre AB, et son entrée R est reliée à la sortie d'une porte logique ET62. Le signal grnti issu de l'arbitre AB est relié à des portes logiques OU62 et NOU60. La porte logique OU62 reçoit sur son autre entrée le signal valid inversé, et sa sortie est reliée à l'entrée d'un circuit différenciateur D61.La sortie de ce circuit D61 est reliée à l'une des entrées de la porte logique ET62 et à l'entrée S d'une bascule 864. La sortie Q de cette bascule 864 est reliée à l'entrée de validation de buffers de passage BV60 et de façon inversée, à travers un inverseur à collecteur ouvert I60, au signal valid. Le signal done est relié à l'entrée d'un circuit différenciateur D62. La sortie de ce circuit D62 est reliée à l'entrée R de la bascule 864 et à l'une des entrées de la porte logique NOU60. La sortie de cette porte logique NOU60 est reliée à l'une des entrées de portes logiques NET60 et NET61, qui reçoivent sur leur autre entrée, respectivement les sorties W des bascules R60 et 861.Les sorties W des bascules 860 et 861 sont également reliées respectivement aux entrées de validation des buffers de passage BV61 et BV62. La sortie de la porte logique NET60 est reliée, d'une part, à l'entrée S de la bascule 860, d'autre part, à l'une des entrées d'une porte logique ET63; qui reçoit sur son autre entrée la sortie d'un circuit différenciateur D63. La sortie de la porte logique ET63 délivre le signal acq UP vers le processeur de gestion PCU.La sortie de la porte logique NET61 est reliée à l'entrée S de la bascule B61 et fournit le signal ack SP. Le bus edr bloc UP est relié à l'entrée des buffers de validation BV61 et à l'une des entrées d'un comparateur COMPO. Le bus adr~bloc~SP est relié à l'entrée des buffers de validation BV62. Les sorties des buffers BV61 et 8V62 sont reliées ensemble et à l'entrée des buffers de validation BV60. La sortie des buffers BV60 est reliée au bus commun BUSA. Des portes logiques OU63 et OU64 reçoivent sur leurs entrées respectives les sorties O des bascules 860 et 861, le signal logique grnti et le signal maj pour OU64. La sortie de la porte logique OU63 délivre le signal dlei, et la sortie de la porte logique OU64 le signal dlle. L'autre entrée du comparateur COMP60 reçoit les champs tag et cadre du bus commun BUSA. L'entrée en60 du comparateur COMP6O est reliée à la sortie de la porte logique ET61, qui reçoit sur ses entrées le signal grnti inversé, le signal dei et le signal rqst UP inversé. La sortie eg6tl du comparateur COMP60 est reliée å l'entrée du circuit différenciateur D63. La sortie de ce circuit est également reliée aux entrées R des bascules 860 et 861 et à l'autre entrée de la porte logique ET62. Le fonctionnement de l'ensemble est le suivant Les bascules 860, 861 et 862 associées aux portes logiques ET60 et OU60 constituent un arbitre local. Cet arbitre examine alternativement les requêtes UP et rqst SP, et les répercute vers l'arbitre AB du bus commun BUSA par le signal rqsti. L'accord d'accès est fourni par la validation du signal grnti et le cycle bus a lieu dès désactivation du signal valid qui libère l'arbitre AB. L'activation du signal done libère l'arbitre local la transaction est terminée. Si la requete provient du processeur de gestion de la liaison série PCS, alors les signaux dlei et dlle indiquent au processeur espion PE associé la nature de la mise à jour des bits d'états du bloc à effectuer dans le répertoire RG. Si la requête provient du processeur de gestion des requêtes PCU, alors en cas de détection d'écriture informative sur le même bloc (signal dei en provenance du processeur espion PE), une libération immédiate a lieu: le processeur de gestion des requêtes PGU, après consultation du répertoire (le bloc a été invalidé) aiguillera sa demande vers le processeur de gestion de la liaison série PGS. Le processeur de gestion mémoire PCM dont un exemple est représenté à la figure 17, est chargé d'assurer la lecture ou l'écriture de bloc en mémoire centrale RAM et de participer au maintien de la cohérence de l'information dans les diverses mémoires-caches MC du système multiprocesseur. A cet effet, il comprend un circuit différenciateur DRO recevant sur son entrée un signal valid et relié par sa sortie aux entrées S de bascules BBO et 881 ainsi qu'à 1'entrée cor 80 d'un registre à décalages SR80. Sur la sortie W de la bascule 880, à collecteur ouvert, est délivré le signal done. La sortie Q de la bascule 881 est reliée à l'entrée serial~in80 du registre SRBO ; cette bascule B81 est reliée par son entrée R à la sortie 681, inversée, du registre SR80. Le registre SR80 reçoit sur son entrée clk80 le signal d'horloge générale h et son entrée de validation en80 est toujours active.La bascule 881 et le registre à décalage SR8n constituent un distributeur de phases DP~M. Le signal valid est également délivré sur l'entrée de validation en81 d'un décodeur DEC80. Ce décodeur est relié par son entrée de donnée à la partie type du bus commun BUSA, et fournit les signaux dnp, dl, de, ei et maj. line mémoire vive RAllFG de largeur 2 bits (dénommés respectivement ro et rw) redoit sur son bus adresse les champs taq et cadre du bus commun BUSA. Le bus de donnée de cette mémoire, constitué des bits ro et rw, est relié d'une part à une logique PAL80, d'autre part à une porte logique ET80, en direct pour rw, de façon inversée pour ro.La logique PAL80 est reliée au champ type et reçoit des signaux logiques cl, r / w, s/n, mff et en82 : le siqnal cl est issu d'une bascule F382, les signaux r/w et s/n d'une file d'attente associative AFIrn, le signal mff d'une porte logique ET81, et le signal enR2 d'une bascule B83, qui reçoit sur ses entrées S et P respectivement des signaux 082 et P81 inversés du distributeur de phases DP~M.La logique PAL câble sur ses sorties ro-rw les équations logiques suivantes : dnp = 10 ; dl.mff = 10 ; dl .mff = Ol ; de = ni ; maj.cl = 00 ; ei = Ol ; maj.cl.s/ .r/w = 10 ; maj.cl.s/n.r/w = 01. La sortie de la porte logique ET80 est reliée à l'entrée D d'une bascule R84, qui reçoit sur son entrée horloge la phase 082. La sortie n de cette bascule est reliée à l'une des entrées de la porte logique ET81, qui reçoit sur son autre entrée la sortie de la porte logique OU80. Les deux entrées de cette porte logique OURO sont reliées aux sorties de et dl du décodeur DECBO. L'entrée de lecture r de la mémoire RAMFG est reliée à la phase ;81, et l'entrée d'écriture w à la sortie d'une porte logique ET82. La porte logique ET82 reçoit sur ses entrées le signal 983 et la sortie d'une porte logique ET83, dont les entrées sont reliées au signal s/ et à la phase G87. La sortie dnp du décodeur DEC80 est reliée h des portes logiques ET84 et ET85, qui reçoivent sur leur autre entrée respectivement les phases 081 et 085.Le signal s/n est également délivré vers des portes logiques ET86 et ET87 qui reçoivent sur leur autre entrée respectivement les phases 086 et Gon. La sortie mff de la porte logique ET81 est également reliée à une porte logique ET88, qui reçoit sur son autre entrée la phase G83, et de façon inversée à des portes logiques ET89 et ET90 qui reçoivent sur leur autre entrée respectivement les phases 983 et 887. La sortie de la porte loqique ET88 est reliée à l'entrée wff de la file AFIFO. Les sorties des portes logiques ET84, ET86, ETR9 sont reliées aux entrées d'une porte logique OU81, dont la sortie est reliée à l'entrée S d'une bascule B85.Les sorties des portes logiques ET85, ET 87, ET90 sont reliées aux entrées d'une porte logique OU82, dont la sortie est reliée à Entrée R de la bascule 1385. Le signal s/ est également relié, de façon inversée, à une porte logique ET9 1 qui recoit sur son autre entrée la phase 089. La sortie de la porte logique ET91 est reliée à l'entrée d'une porte logique NOU80 qui reçoit sur son autre entrée la sortie de la porte logique OU82. La sortie de la porte logique NOU80 est reliée à l'entrée R de la bascule Bsn. La sortie maj du décodeur DECBO est reliée à l'entrée de portes loqiques ET92, ET93, ET94, ET95, qui reçoivent sur leur autre entrée respectivement les phases 981, P85, 85, Q91. Les sorties des portes logiques ET92 et ET93 inversées sont reliées respectivement aux entrées S et R d'une bascule B86, et celles des portes logiques ET94 et ET95 aux entrées S et R d'une bascule 882. La sortie 0 de la bascule B82 produit le signal logique cl également délivré à l'entrée off de la file AFIFO et à l'entrée de commande seIBO d'un multiplexeur MUXBO. La partie tag, cadre du bus commun BUSA est reliée à l'entrée de donnée de la file AFIFO et à l'une des entrées de données du multiplexeur t-UXB0. La sortie dl du décodeur DEC80 est également reliée à l'une des entrées de données de la file AFIFO afin de produire le signal de lecture/écriture l/e. La sortie de donnée de la file AFIFO est reliée à l'autre entrée du multiplexeur MUXBO. La sortie du multiplexeur MUX80 est reliée au bus adresse de la mémoire centrale RAM pour la partie tag.cadre, et aux entrées de décodeurs DEC81 et DEC82 pour la partie champ cpu. La sortie 0 de la bascule 886 est reliée h l'entrée d'écriture-de la mémoire centrale RAM et à l'entrée en84 du décodeur DEC82. La sortie Q de la bascule B85, légèrement retardée, est reliée à l'entrée de lecture de la mémoire centrale RAM et à l'une des entrées d'une porte logique ET96, qui reçoit sur son autre entrée la sortie de la porte logique OU82.La sortie de la porte logique ET96 est reliée à l'entrée en83 du décodeur DEC81. La sortie j du décodeur DEC 81 est reliée à l'entrée de validation des buffers de passaqe du registre à décalage mémoire RDM j et la sortie j du décodeur DEC82 à l'entrée de chargement dudit registre à décalage mémoire RDMj. Le fonctionnement de cet ensemble est le suivant L'activation du signal valid provoque le déclenchement du distributeur de phases DP~M, et la validation du décodeur DECBO, qui va permettre de déterminer la nature de la requête. La phase ;81 est utilisée pour lire l'état des bits correspondant au bloc demandé dans la mémoire RAMFG, et la combinaison ro.rw est mémorisée dans la bascule 884. Une première écriture a lieu dans la mémoire RAMES sur la phase R83, qui permet de mettre à jour les bits d'états.Leur valeur est fournie par la loqique PAL80 et permet d'obtenir les enchatnements suivants - en cas de requête de bloc de données non partagées (dnp) alors quel que soit l'état des bits ro.rw (rw est forcément à zéro), l'état 10 est forcé ("bloc diffusé-en lecture") ; - en cas de demande de bloc en lecture (dl) ou en écriture (de), si ro.rw = nl, alors la requête est mise en file d'attente sur la phase 083 et l'état 01 est forcé (en fait, c'est l'état précédent), sinon l'état 10 est forcé en cas de lecture ("bloc diffusé en lecture") et l'état 01 est forcé en cas d'écriture ("bloc diffusé en écriture") ; - en cas de demande de mise à jour (maj), l'état vue est forcé ("bloc non diffusé").Dans ces divers cas, une lecture ou une écriture en mémoire centrale RAM est opérée, vers ou å partir du registre à décalage mémoire RDMj identifié par le champ cpu du bus commun BUSA. Dans l'exemple choisi, la durée du cycle mémoire RAM est de LL périodes de l'horloge générale h.En cas de lecture de données non partaqées, le cycle s'effectue de G81 à 085, dans les autres cas de 1483 à QR7. L'écriture s'effectue de 981 à 085 ; - en cas d'écriture informative, celle-ci ne provoque pas de mouvement de données, mais force les bits d'états à la valeur Ol (l'état de départ est dans ce cas forcément in) - en cas de demande de mise à jour, une consultation de la file d'attente AFIFO est systématiquement opérée. Cette consultation peut entraîner la lecture d'un bloc, dans le cas où une unité centrale CPU est en attente dans la file AFIFO de mise à jour de ce bloc. La lecture s'effectue de R86 à 90 et l'état des bits est forcé à 10 (demande pour une lecture) ou 01 (demande pour une écriture). La fin de toute opération se traduit par la remise à zéro de la bascule 880 qui active le signal done. Cette désactivation peut se produire sur les phases R85, P87 ou 091 selon l'opération demandée, ou sur 089 si la consultation de la file donne un résultat né.gatif. La file d'attente associative n'est pas détaillée. Elle est constituée de façon classique d'une mémoire associative utilisée en file d'attente. Le nombre de mots de cette mémoire est égal au nombre d'unité centrale CPUdu système multiprocesseur. Un "daisy-chain" interne identifie sur chaque phase R81 le prochain mot candidat à une écriture, qui se produit le cas échéant sur la phase I;B3 par le signal wff.Le signal cff déclenche une comparaison å partir de la phase 985, les bascules de la mémoire de réponse ayant été remises à zéro sur la phase 9B. Le résultat de la comparaison est répercuté sur le signal s/ (someinone) et le contenu du mot concerné est disponible sur la sortie de données à partir de la phase C186. Ce mot est ensuite invalidé sur la phase 4390. Dans l'architecture ci-dessus décrite, les processeurs espions PEj sont sollicités à chaque transfert d'adresses sur le bus commun RUSA, avec consultation éventuelle de leur mémoire-cache MCj. Cette consultation est la plupart du temps inutile (faible probabilité de présence de l'adresse du bloc correspondant au transfert, dans les mémoires-caches). Il est à noter que le processeur de gestion mémoire POIl maintient des bits d'état des blocs et rend possible une gestion centralisée du maintien de cohérence. A cet effet, l'on peut rajouter à l'architecture ci-dessus décrite (figure ln) un bus parallèle de synchronisation fonctionnant selon le même algorithme que le bus de synchronisation SYNCHRO de la variante qui est décrite ciaprès. Les processeurs-espions ne sont plus alors à proprement parler des eschions (puisque connectés sur le bus de synchronisation et non sur le bus commun BUSA), et sont désignés par processeurs de maintien de cohérence (PMCj pour la variante de la figure 18).Ainsi, le processeur de gestion mémoire PG;tl demeure sollicité à chaq-ue transfert sur le bus commun BUSA, mais les processeurs de maintien de cohérence sont sollicités par le processeur PCI1 uniquement lorsqu'ils sont concernés par le transfert. La figure 18 présente une variante dans laquelle la cohérence est maintenue selon le principe cidessus évolué. Cette variante reprend l'architecture générale de la figure 6, avec des adresses de blocs qui transitent par les liaisons séries LSj. Ce système comprend un bus parallèle de synchronisation SYYCHRO, de même structure logique que le bus commun RUSA, mais piloté à la seule initiative du processeur de gestion mémoire PGM. La structure de l'unité centrale UCj est conforme à celle présentée à la figure 10, avec quelques modifications - la structure de la mémoire-cache MCj reste la même, ainsi que la structure du répertoire de gestion RGj, - le processeur de gestion parallèle PGPj disparait, puisque le bus commun BUSA n'existe plus et les fonctions qui lui étaient attribuées sont reportées sur le processeur de gestion de la liaison série PGSj ; ; - le processeur espion PEj est remplacé par un processeur de maintien de cohérence PMC j qui s'occupe du maintien des bits d'états des blocs dans la mémoire-cache MCj en vue d'en assurer la cohérence et qui est activé à la seule initiative du processeur de gestion mémoire PGMj via le bus de synchronisation SYNCHRO - le processeur de gestion des requêtes PCU ne connaît -plus qu'un seul partenaire : le processeur de gestion de la liaison série P(;Sj, sur lequel il reporte toutes ses requêtes ; - le processeur de gestion de la liaison série PICS J est chargé du transfert des adresses et des données, conformément au principe décrit pour le système de la figure 6, chaque adresse étant préfixée par la nature de la requête ; - les fonctionnalités du processeur de gestion mémoire-PGM sont celles décrites en référence à la figure 17, son activation n'étant plus assurée par le signal valid, qui disparaît (puisqu'auparavant associé au bus commun BUSA), mais par l'arbitre ARH décrit dans le système de la figure 6, lequel sérialise les demandes de service qui transitent par les liaisons séries.La mémoire RAMFG est éqalement constituée d'un champ supplémentaire cpu associé aux bits d'états ro.rw. Le fonctionnement général du mode de réalisation représenté à la figure 18 est le suivant rque requête du processeur de traitement CPU active le processeur de gestion des requêtes PGUj avec l'indication lecture ou écriture et code ou données. Ce processeur requiert un accès au répertoire de gestion RCj auprès du processeur de question du répertoie PGRj. La consultation du répertoire conduit à l'un des cas suivants - le bloc est présent dans la mémoire-cache t-$C;, avec l'état non modifié (m = 0) ; si la demande est une lecture, l'information demandée est extrait-e de la mémoirecache MCj et fournie au processeur de traitement CPUj Si la demande est une écriture, alors une requête d'écriture informative ei est transmise au processeur de gestion de laliaison série PGSj ; - le bloc est présent dans la mémoire-cache t-tCj, avec l'état modifié (m = 1) ; la demande, lecture ou écriture, est satisfaite ; - le bloc est absent de la mémoire-cache MCj; une requête de bloc en lecture ou écriture est transmise au processeur de gestion de la liaison série PISS; Ainsi, les requêtes faites au processeur de gestion de la liaison série peuvent être : une demande de lecture de données non partagées (code) : dnp, une demande de lecture de bloc : dl, une demande de lecture de bloc en vue d'y effectuer une écriture : de, une demande d'écriture informative : ei. A ces divers états, il faut ajouter l'état mise à jour maj correspondant à la purge d'un bloc, soit å la demande du processeur de maintien de cohérence PMCj, soit pour libérer un emplacement de bloc dans la mémoire-cache. Les adresses ainsi préfixées transitent par les liaisons séries LSj, et conformément au principe énoncé lors de la description de l'architecture de la figure 6, sollicitent l'arbitre ABM lorsque : - en cas de lecture bloc, l'adresse est transmise, - en cas d'écriture bloc, l'adresse et la donnée sont transmises. Ces requêtes sont traitées séquentiellement par le processeur de qestion mémoire P r, M, de même structure générale que celle décrite à la figure 17. Leur traitement est le suivant : 1/ dnp : demande de données non partagées. Le bloc est transmis et prend l'état ro.rw = 10. 2/ dl : demande de lecture d'un bloc. Si le bloc est dans l'état "non diffusé" ( ro.rw = 00) ou "diffusé en lecture" (ro.rw = 10), il est transmis et prend ou garde l'état ro.rw = 01. Si le bloc est dans l'état "diffusé en écriture", la demande est mise dans la file d'attente AFIFO. Le processeur de gestion mémoire PGM Il trouve alors dans le champ cpu de la mémoire RAMFG l'adresse de la mémoire-cache MCi qui contient la version à jour du bloc demandé. Une requête de purge est alors émise sur le bus de synchronisation SyCHRO, à seule destination du processeur de maintien de cohérence PMCi associé à la mémoire-cache MCi concernée. Cette demande peut être qualifiée de commande adressée. On notera que le processeur de maintien de cohérence PMCi n'a pas à consulter le répertoire de gestion RCi associé puisque le processeur de gestion mémoire P C M a connaissance du fait qu'il est seul possesseur de la copie à jour. Son rôle consiste simplement a prélever la requête et à la déposer dans la file FIF0i associée. 3/ de : demande de lecture d'un bloc en vue d'y faire une écriture. Si le bloc est dans l'état "non diffusé" (ro.rw = nn), il est transmis et prend l'état "diffusé en écriture" (ro.rw = 01). Si le bloc est- dans l'état "diffusé en lecture" (ro.rw = 10), alors le processeur de gestion mémoire émet une commande universelle d'invalidation de bloc, puis transmet le bloc avec l'état "diffusé en écriture" (ro.rw = 01). La commande universelle provoque l'activation de tous les processeurs de maintien de cohérence PMCj qui exécutent strictement les mêmes opérations que celles décrites pour le système de la figure 1. Si le bloc est dans l'état "diffusé en écriture11, la demande est mise en file d'attente AFIFO. Comme précédemment, le processeur de gestion mémoire PGt-l émet une commande adressée au seul possesseur de la copie à jour. 4/ maj demande d'écriture d'un bloc par suite d'une purge. L'alaorithme de fonctionnement est dans ce cas strictement le même que celui décrit en référence à la figure 17 pour le processeur PGM. Il est à noter que le problème de l'acquittement de l'écriture trouve naturellement sa solution dans ce mode de réalisation par une commande adressée d'acquittement. 5/ ei : écriture informative. Ce cas est traité directement sur le bus commun RUSA dans l'architecture présentée à la figure 10. Dans le mode de réalisation visé ici, et afin de garantir la synchronisation, cette opération est prise en charge par le processeur de gestion mémoire PGM. Si le bloc est dans l'état "diffusé en lecture", alors une commande, à la fois universelle et adressée, est émise : adressée en ce sens que le processeur de maintien de cohérence PF1Cj concerné note l'acquittement de la demande d'écriture informative et passe le bloc concerné dans l'état "modifié" dans le répertoire de gestion RCj , universelle en ce sens que tous les autres processeurs PMC doivent invalider ce bloc dans leur répertoire. Le bloc dans l'état "diffusé en écriture" indique qu'une demande d'écriture informative a été traitée sur ce même bloc pendant le temps d'attente de traitement de la requête. Dans ce cas, la demande d'écriture informative est transformée en demande d'écriture de, et suit le même traitement que dans le cas correspondant de l'écriture. La figure 19 présente un schéma synoptique partiel d'une architecture conforme à l'invention, dans laquelle plusieurs unités centrales UCk... sont réunies en grappe ("cluster") et partagent une même liaison série LSk. Dans ce but, un arbitre local ABLk associé à la grappe est chargé d'arbitrer les conflits d'accès aux moyens de communication d'adresses de blocs, et partage avec le processeur mémoire PGFI, aménagé à cet effet, un signal busyk indiquant en permanence l'état libre ou occupé de la liaison série LSk. Des moyens de codage et de décodage d'un en-tête d'identification du processeur concerné à l'intdrieur d'une grappe sont associés aux logiques d'émission et de réception des blocs de données. Dans le cas ofi les moyens de communication d'adresses de blocs sont constitués par le bus commun BUSA, le fonctionnement est le suivant Si l'unité centrale CPUk+j désire faire un transfert de bloc dans le sens mémoire centrale RAM vers mémoire-cache M C k +j (cas dnp, .dol, de) ou effectuer. un e écriture informative ei, alors elle requiert l'accès vers le bus commun BUSA à l'arbitre local ABLk, qui répercute la demande, son tour venu, à l'arbitre AR. L'accord d'accès au bus commun RUSA est renvoyé sur l'unité centrale CPUk+j et le transfert- s'effectue de la façon décrite en référence à la figure 10.Tout bloc transmis dans le sens mémoire centrale RAM vers mémoire-cache MC k+j doit alors être identifié, car l'ordre des demandes n'est pas respecté du fait de la possibilité de mise en attente dans la file AFIFO du processeur de gestion mémoire PCM. Si l'unité centrale CPUk+j désire faire un transfert de bloc dans le sens mémoire-cache MC+i vers la mémoire centrale RAM (cas maj), alors elle requiert tout d'abord de l'arbitre local ABLk l'accès à la liaison série LSk.L'arbitre local ABLk et le processeur de gestion mémoire PGtt sont susceptibles tous deux de s'attribuer la liaison série LSk : la contention est évitée en synchronisant la modifiction du signal bu-syk avec le signal valid (le processeur de gestion mémoire PCM ne peut lancer ou relancer un transfert qu'au cours d'une transaction mémoire) L'accord d'occupation de la liaison série LSk conduit l'unité centrale CPUk+j à transférer son bloc d'information vers le registre à décalage mémoire RDMk, puis à requérir de l'arbitre local ABLk l'accès au bus commun BUSA afin d'y effectuer la demande de mise à jour, qui s'effectue selon l'algorithme décrit en référence à la figure 10.L'écriture de mise à jour peut entraîner une libération de bloc dans la file d'attente AFIFO du processeur de gestion mémoire PCM et requérir un reqistre à décalages RD M j occupé. Dans ce cas, le transfert demandé est retardé et chaîné au transfert en cours. Dans le cas où les moyens de communication d'adresses de blocs sont les liaisons séries elles-mêmes, le fonctionnement est alors i den tique au cas précédent pour ce qui est de la préemption de la liaiscn série, et identique pour l'algorithme général de fonctionnement à celui présenté en référence à la figure 1-7. Par exemple, une demande de lecture de bloc issue de l'unité centrale CPük+j nécessite tout d'abord un accord d'accès à la liaison série LSk, accord donné par l'arbitre local ABL k en concertation avec le processeur de gestion mémoire PGM. L'accord d'accès entraîne le transfert de l'adresse du bloc demandé sur la liaison série LSk, qui est aussitôt libérée elle est disponible pour toute autre transaction si nécessaire. Une demande d'écriture de bloc suit le même protocole pour l'accès à la liaison série LSk. Dans les architectures décrites en référence aux figures 1 à 19, il existait autant de registres à décalages mémoires RDMj que d'unités centrales CPU- : une liaison série LSj était affectée de façon statique à un couple (RDMj, CPUj) S'il doit à l'évidence exister au moins une liaison série LSj entre une unité centrale et la mémoire centrale RAM, le nombre de registres à décalages RD peut être inférieur. En effet, si tacc est le temps d'accès à la mémoire centrale RAM et ttfr le temps de transfert d'un bloc, il n'est pas possible de maintenir plus de n = ttfr/tacc registres à décalages simultanément occupés. Par exemple, pour tacc = 100 ns et ttfr = 1 200 ns, on obtient n = 12. Tacc et ttfr sont alors des critères caractéristiques de la performance du système multiprocesseur conforme à l'invention et la mise en place de n registres à décalages mémoires RDMj est compatible avec un nombre supérieur de liaisons séries LSj qu'à la condition d'intercaler une logique de type réseau d'interconnexion RI entre registres et liaisons, l'affectation d'un registre mémoire RDMj à une liaison série LSj étant réalisée de façon dynamique par le processeur de gestion mémoire PGM. Par ailleurs, la mémoire centrale RAM sera généralement constituée par m bancs mémoires RAM1, . RAM0, RAMm agencés en parallèles, chaque banc mémoire comportant n registres à décalages RDMj reliés par un réseau d'interconnexion RIp à l'ensemble des liaisons séries LSj. Il est alors possible, sous ré serve que les adresses de blocs soient uniformément distribués sur les bancs mémoires RAM0, d'obtenir une performance théorique de m x n registres à décalages simultanément actifs. La distribution uniforme des adresses est assurée par des mécanismes classiques dlentrelaçages des adresses. Sur la figure 20, on a représenté partiellement une architecture conforme à l'invention, comportant m bancs mémoires RAM avec n registres à décalages RDMj par bancs mémoires et q unités centrales UCj. Chaque banc mémoire est de type à accès aléatoire doté d'une entrée/sortie de données de largeur correspondant à un bloc d'informations bi, cette entrée/sortie étant (comme précédemment pour la mémoire RAM) reliée par un bus parallèle à l'ensemble des registres élémentaires RDM1p... RDMjp. Le réseau d'interconnexion est de structure connue en soi ("cross-bar", "delta", "banyan"...). On notera qu'un réseau multi-étage est bien adapté dans la mesure où le temps d'établissement du chemin est négligeable devant son temps d'occupation (le temps de transfert d'un bloc) et qu'il ne concerne qu'un bit par liaison. Le processeur de gestion mémoire PGM est adapté pour pouvoir assurer l'allocation dynamique d'une sortie à une entrée du réseau, c'est-à-dire mettre en relation un registre à décalage mémoire RDMj et une liaison série LSi. Dans le cas où les moyens de commmunication d'adresses de blocs sont constituées par le bus commun BUSA, le fonctionnement est le suivant En cas de demande de lecture d'un bloc de la part de l'unité centrale CPUj, le processeur de gestion mémoire pr!lp concerné alloue un registre à décalage ROM1, commande le réseau d'interconnexion RI en conséquence et initialise le transfert. En cas de demande d'écriture d'un bloc de la part de l'unité centrale CPIJi, un chemin doit au préalable être établi. A cet effet, une première requête d'établissement de chemin est émise sur le bus commun RUSA, suivie de la demande d'écriture effective dès transfert du bloc de la mémoire-cache MCj au registre à décalage RDtli. Lors de la première demande, le processeur de gestion mémoire PGIZ est chargé d'allouer un chemin et de commander le réseau d'interconnexion RI. Dans le cas où les moyens de communication d'adresses de blocs sont les liaisons séries elles-mêmes, un chemin doit être établi à tout préalable de transfert. Ce problème est identique au problème classique du partage d'un ensemble de n ressources par m utilisateurs et peut être réglé par des solutions classiques d'arbitrages de conflits d'accès (protocoles de communication, signaux supplémentaires). Dans l'exemple d'architecture représenté à la figure 5, les registres à décalages RDMj et RDPj, leurs logiques de validation LV1 et LV2 étaient réalisées dans une technologie rapide, l'ensemble étant synchronisé par une horloge de fréquence F au moins égale à 100 z. fin a représenté aux figures 21a et 21b une autre structure de mémoire RAM qui comprend 2u plans mémoires, chaque plan mémoire présentant un front de t/2u informations binaires (pour des raisons de clarté, l'on a représenté à la figure 21a les moyens nécessaires à la lecture d'un bloc bi, et à la figure 21b les moyens nécessaires a l'écriture). Les registres à décalages RDMj ou RDPj sont constitués de 2u sousregistres à décalages élémentaires RDlfjp à t/2U bits de capacité.L'exemple présenté à la figure 20 est une réalisation à 8 plans mémoires (u = 3). (Pour la clarté du dessin, il a été représenté un seul reqistre à décalage RDMj formé pour l'ensemble des sous-registres RDMjp). Chaque plan mémoire R Ail comporte en regard de son front d'accès un ensenble de registres à décalages élémentaires ROM et est capable de fonctionner avec une fréquence de décalage d'au moins F/2LJ. Le fonctionnement de l'ensemble en cas de lecture est illustré à la figure 21a. Un bloc est lu de façon synchrone dans l'ensemble des 2u plans mémoires et chargé de même dans les registres élémentaires de même rang. Les sorties séries de ces registres sont connectées aux e n t r é e s d'un multiplexeur I'.UXR réalisé en technologie rapide (ASGA). lin- circuit de ce type, parfaitement adapté, est disponible chez "GIGARIT LOCIC", sous la référence "lOG040", et est capable de délivrer un signal logique à une fréquence de 2,7 GHz. Il fournit par ailleurs une horloge de fréquence divisée par huit, qui constitue l'horloge de décalage des registres élémentaires RDMjp. En cas d'écriture, un fonctionnement symétrique, présenté à la figure 21b, est obtenu avec un circuit de multiplexeur DMUXR du même fabricant (référencé "10G41"), avec les mêmes caractéristiques de performances. On obtient ainsi une fréquence de transfert de 500 MHz avec 8 registres élémentaires fonctionnant à une fréquence de 500/8 = 62,5' MHz, ce qui les rend réalisables dans une technologie plus conventionnelle ("MOS" par exemple). Les circuits multiplexeurs et démultiplexeurs référencés ci-dessus sont combinables en ensembles de 16, 32, ... bits. Ainsi, en associant respectivement 16, 32 plans mémoires fonctionnant à 62,5 MHz, il est possible d'obtenir des débits de 1 et 2 GHz, soit un niveau de performances 2 à a fois supérieur. Il est à noter que la logique TFR peut être réalisée sur l'un des registres élémentaires, et que la logique de validation LV est intégrée aux circuits "ASrJA" (sortie à collecteur ouvert). La figure 22 présente la structure générale d'un composant de type circuit intégré "VLSI", dénommé "mémoire multiport série" et susceptible d'équiper un système multiprocesseur conforme à l'invention. Ce composant peut être utilisé dans l'architecture multi-processeurs décrite précédemment, soit pour réaliser la mémoire centrale RAM et les registres à décalage RDMj associés, soit pour réaliser chaque mémoire-cache MCj et son registre à décalage ROPj -Pour simplifier les notations, on a gardé dans la description qui suit les symboles relatifs à la mémoire centrale RAM et les registres à décalage associés. La liste des broches de ce circuit avec les signaux correspondants est- la suivante - adbloc}-adhlocm~l: m bits d'adresses de bloc bi, - admot0-admotk-1 : k bits d'adresses de mots dans le bloc, - numreg0-numregn-1 : n bits d'adresses de registres rd, - - cs : "chip select" : signal de sélection du circuit, - wr : "write" : signal d'écriture, - rd : "read" : signal dé lecture, - bit/bloc : signal de commande de la fonction multiport, - normal/config : signal de mode de fonctionnement, - data0-data1-1 : 1 bits de données, - h1-hn : n signaux d'horloge, - dl-dn: n signaux de données. Les valeurs m, n, 1 sont fonctions de l'état courant de technologie. Des valeurs actuelles pourraient être les suivantes - m = 16 soit 216 blocs bi de 64 bits chacun (soit 4 Mbits), - n = 3 soit 8 registres rd, - 1 = 8 soit un interface parallèle" de type octets, - k = 3 du fait de la présence de 8 octets par bloc. Le composant visé comporte une cinquantaine de broches. Ce circuit mémoire multiport série est composé d'une mémoire vive à accès aléatoire RAM, de largeur prédéterminée t, susceptible d'être commandée en écriture sur des fronts indépendants de largeur t/4 (valeur choisie à titre d'exemple sur la figure 22) et t/l. Les lignes de données de cette mémoire RAM sont reliées aux entrées d'une logique de type "barillet" BS ("Barrel shifter"), ou de multiplexage MT, selon la version de composant, la logique de multiplexage MT pouvant être considérée comme offrant un sous-ensemble des possibilités de la logique "barillet" et donc plus simple à réaliser.Les signaux d'adresses et de commande de cette mémoire RAI, à savoir csi, wri, rdi, adbloci, sont délivrés à partir d'une logique de commande Coti. Cette logique COtl reçoit en outre les signaux d'informations des broches cs, vir, r-d, bit/bloc, norrnal/config, numreg et est reliée, d'une part, par des lionnes de commande "format" à la logique de type "barillet" RS, d'autre part, à la sortie d'un registre de configuration RC1, et à l'entrée d'une logique de sélection LSR fournissant des signaux srdn,... srdn 1 et srcl, src2, src3.Les sorties de la logique de type barillet ns constituent un bus interne de communication parallèle BUSI, relié à un ensemble de registres à décalages RDO, ... RD n-i' d'une part, sur leurs entrées parallèles et, d'autre part, sur leurs sorties parallèles à travers des buffers de validation BV1000,... BV100n-1 et à l'entrée parallèle des registres de configuration RC1, RC2... RCi. Les I bits de faible poids du bus BUSI sont également reçus sur les 1 broches data0... datas 1 Chaque registre à décalage RDi et des portes logiques associées constituent une unité fonctionnelle ELRDi, pilotée par un ensemble d'éléments logiques qui constituent une logique de forçage LFi. Chaque unité fonctionnelle ELRDi comporte des portes logiques ET100i et ET101i, reliées sur l'une de leur entrée à la sortie srdi de la logique de sélection LSR, et recevant sur leur autre entrée respectivement les signaux rdi et wri.La sortie de la porte logique ET100i est reliée à l'entrée load100i du registre à décalage RDí, ainsi qu'à l'entrée load101i et à l'entrée S respectivement d'un compteur CPTlO et d'une bascule Bl0Oi appartenant à la logique de forçage LFi. La sortie de la porte logique ETîPli est reliée à l'entrée de commande des buffers de validation FV100i. La sortie di est connectée à la sortie d'une porte logique PLi, qui reçoit sur son entrée de donnée la sortie série du registre à décalage RDi et sur son entrée de commande la sortie d'une porte logique OU100i.Le signal issu de la broche @i est délivré à l'entrée clk100i du registre RDi ainsi qu'a l'entrée do\!wninni du compteur CPTlnOi. La sortie zéro du compteur CPTlO0i est reliée à l'entrée R de la bascule BlOOi. La logique de forçage LFi comporte en outre un multiplexeur MUXlOOi qui reçoit sur ses entrées de données les valeurs t et t/4. La sortie de donnée du multiplexeur MUX100i est reliée à l'entrée de donnée du compteur CPTlOO1, et la commande de sélection sellOOi du multiplexeur MUXlOOi est reliée à la sortie 1 du registre RC1. La sortie q de la bascule Blini est reliée à l'une des entrées d'une porte logique ET102i, qui reçoit sur son autre entrée le signal issu de la broche i d'un registre RC2.La sortie de la porte logique ET102i est reliée à l'une des entrées de la porte logique OU100i, qui reçoit sur son autre entrée le signal issu de la broche i d'un registre RC. Les entrées de chargement des registres RC1, RC2, RC3 reçoivent respectivement les signaux src1, src2, src3. issus de la logique de sélection LSR. Ce composant présente une dualité de fonctionnement: si le signal bit/bloc est dans l'état "bit11, alors le fonctionnement de ce composant est celui d'une mémoire à semi-conducteur conventionnelle: les signaux adbloc associés aux signaux admot constituant le bus d'adresse en unité mot (8 bits dans ltexemple), les signaux os, rd, wr ont le sens habituel attribué à ces signaux, et les broches data véhiculent les données. De façon interne, en -lecture le bloc d'information désigné par adbloc est lu en mémoie RAtl et présenté à l'entrée de la logique de barillet BS ou de multiplexage MT. La combinaison des signaux admot et bit/bloc permettent à la logique de commande COM de fournir à la logique de barillet BS ou de multiplexage MT les signaux "format". Le mot concerné est alors cadré à droite en sortie de la logique de barillet ou de multiplexage et présenté ainsi sur les broches de donnée data. De façon interne, en écriture le mot présenté sur les lignes de donnée data est cadré par la logique de barillet LS ou de multiplexage MT par les mêmes signaux de commande format qu'en lecture, en regard de sa position dans le bloc. La logique de commande C COM émet alors un signal d'écriture wri partiel sur le seul "tronçon" de mémoire concerné, et à l'adresse désignée par les signaux adbloc. Si le signal bit/bloc est dans l'état "bloc", alors le fonctionnement dépend de l'état du signal normal/config. Le mode config programme les registres de configuration RC1, RC2, RC3 adressés par les signaux numregj et programmés à partir des lignes de données data. Le registre RC1 permet de modifier la taille du bloc : t et t/4 dans l'exemple, soit 64 bits et 16 bits. De façon interne, le fonctionnement est similaire à celui décrit dans le mode de fonctionnement "bit" : t ou t/4 bits sont cadrés sur le bus interne BUSI (en lecture), ou en regard du "tronçon" de bloc concerné (en écriture). Des tailles de blocs multiples peuvent être envisagées (t, t/2, t/4...). Le registre RC3 permet de choisir pour chaque registre un sens permanent de fonctionnement t soit en entrée (RC3i = O) soit en sortie (RC3i = 1). Ce sens permanent permet d'adapter le composant aux liaisons séries à liens unidirectionnels permanents. Le registre RC2 permet de choisir pour chaque registre, sous réserve que le bit correspondant de RC3 soit à l'état logique O, un mode de fonctionnement à liens bidirectionnels alternés : sur une lecture mémoire RAM, le registre b décalage RDi concerné "passe" en mode sortie pour le temps de la transmission du bloc, puis revient à l'état de repos en mode "entrée".De façon interne, la bascule B100i, qui pilote la porte logique PLi, est mise à 1 sur un signal de chargement du registre RDMi et remise à zéro à l'issue du transfert des t ou t/4 bits, par l'intermédiaire du compteur CPTlOOi, initialisé à t ou t/4 selon l'état du registre RC1, et qui reçoit sur son entrée de décomptage les impulsions d'horloge hi. En fonctionnement normal (signal normal/config dans l'état normal) pour une lecture, le bloc adressé par les broches adbloc est chargé dans le registre RDi adressé par les broches numreg. Si le bloc est partiel (t/4), alors il est transmis en position faible poids sur le bus interne BUSI par la logique de type barillet ES ou de multiplexage MT. Ce bloc est alors transmis dès activation du signal d'horloge hi. En fonctionnement normal pour une écriture, le contenu du registre RDi adressé par les broches numreg est écrit dans le bloc mémoire RAM d'adresse adbloc. Si le bloc est partiel, il est transmis en position fortpoids sur le bus interne BUSI, puis cadré en "regard" du tronçon de bloc concerné par la logique de type barillet BS ou de multiplexage MT, et enfin un signal partiel d'écriture wri est émis sur le tronçon concerné. Il est à noter que si un bloc partiel est en service, alors l'adresse de ce bloc partiel dans le bloc est fournie par les lignes d'adresse admot. Ce composant est parfaitement adapté aux diverses variantes d'architectures décrites. Associés en parallèle, 8, 16... circuits de ce type permettent de réaliser le dispositif décrit aux figures 20a, 20b. Si la mémoire- RAM est en technologie rapide, alors ce composant peut également être utilisé au niveau de la mémoire-cache, en multiplexant, selon le dispositif décrit aux figures 20e, 20b, les registres internes d'un même composant. REVENDICATIONS: 1/ - Système multiprocesseur, du type comprenant une mémoire centrale (RAM) organisée en blocs d'informations (bi), des processeurs de traitement (CPU1... CPUj... CPU@), une mémoire-cache (MCj) reliée à chaque processeur de traitement (CPUj) et organisée en blocs d'informations (bi) de même taille que ceux de la mémoire centrale, un répertoire (RGj) et son processeur de gestion (PGj) associé à chaque mémoire-cache (MCj), des moyens de communication d'adresses de blocs entre processeurs (CPU -) et J mémoire centrale (RAM), ledit système multiprocesseur étant caractérisé en ce qu'il est doté d'un ensemble de registres à décalage, dit registres-mémoire (ROM1... RDMj... RDM@), chaque registre (RDMj) de cet ensemble étant connecté à la mémoire centrale (RAM) de façon à permettre, en un cycle de cette mémoire, un transfert parallèle en lecture ou écriture d'un bloc d'informations (bi) entre ledit registre et ladite mémoire centrale, . des registres à décalage, dits registresprocesseur (RDP1... RDPj... RDPn), chaque registre à décalage processeur (RDPj) étant relie à la mémoire-cache (MCj) d'un processeur (CPU j) de façon à permettre un transfert parallèle en lecture ou écriture d'un bloc d'informations (bi) entre ledit registre à décalage (RDPj) et ladite mémoirecache (MCj), un ensemble de liaisons séries (LS1... LSj... LSn), chacune reliant un registre à décalage mémoire (RDMj) et un registre à décalage processeur (RDPj) et adapté pour permettre le transfert de blocs d'informations (bi) entre les deux registres considérés (RDMj, RDPj). 2/ - Système multiprocesseur selon la revendication 1, caractérisé en ce que - chaque registre à décalage mémoire (RDMj) et chaque registre à décalage processeur (RDPj) sont dédoublés en deux registres, l'un spécialisé pour le transfert dans un sens, l'autre pour le transfert dans l'autre sens, - chaque liaison série (LSj) comprend deux liens séries unidirectionnels de transfert bit à bit, reliant le registre à décalage mémoire (RDMj) dédoublé et le registre à décalage processeur correspondant (RDPj) dédoublé, ces liens étant connectés auxdits registres pour permettre, l'un un transfert dans un sens, l'autre un transfert dans l'autre sens. .3/ - Système multiprocesseur selon la revendication 1, c-a rac tér i sé en ce que chaque liaison série (LSj) comprend un lien bidirectionnel de transfert bit à bit, connecté au registre à décalage mémoire (RDMj) et au registre à décalage processeur correspondant (RDPj) et une logique (LvY) de validation du sens de transfert de façon à permettre un transfert alterné dans les deux sens. 4/ - Système multiprocesseur selon l'une des revendications 1, 2 ou 3, caractérisé en ce que les moyens de ammunication d'adresses comprennent un bus commun de communication parallèle d'adresses de blocs (BUSA) reliant les processeurs (CPUj) et la mémoire centrale (RAM) et un arbitre de bus (AB) adapté pour gérer les conflits d'accès audit bus. 5/ - Système multiprocesseur selon l'une des revendications 1, 2 ou 3, caractérisé en ce que les moyens de communication d'adresses comprennent un registre à décalage complémentaire (ROCi) connecté sur chaque liaison série (LSj) en parallèle avec le registre à décalage mémoire correspondant (RDMj) de façon à permettre la transmission des adresses par les liaisons séries et leur chargement dans lesdits registres à décalage complémentaires (RDCj), un arbitre de gestion d'accès (ABM) étant relié auxdits registres à décalage complémentaires (RDCj) et à la mémoire centrale (RAM) en vue de prélever les adresses contenues dans lesdits registres ('RDCj) et de gérer les conflits d'accès à la mémoire centrale (RAM). 6/ - Système multiprocesseur selon l'une des revendications 1, 2, 3, 4 ou 5-, co.mprenant des moyens de gestion des données partagees entre processeurs, en vue d'en assurer la cohérence. 7/ - Système multiprocesseur selon la revendication 6,caractérisé en ce que les moyens de gestion des données partagées comprennent un bus spécial de communication parallèle de mots (BUSD) reliant les processeurs (CPUj) et la mémoire centrale (RAM), une logique de partition (LPj), associée à chaque processeur (CPU et adaptée pour différencier les adresses des données partagées et celles des données non partagées de façon à transmettre celles-ci sur les moyens de communication d'adresses avec leur identification, une logique de décodage (DEC) associée à la mémoire centrale (RAM) et adaptée pour recevoir les adresses avec leur identification et aiguiller les données en sortie mémoire soit vers le registre à décalage mémoire correspondant (RDMj) pour les données non partagées, soit vers le bus spécial de communication de mots (BUSD) pour les données partagées. 8/ - Système multiprocesseur selon la revendication 6, caractérisé en ce que les moyens de gestion des données partagées comprennent, d'une part, un bus spécial de communication parallèle de mots (BUSE) et un bus spécial commun de communication d'adresses de mots (BUSAM) reliant les processeurs (CPUj) et la mémoire centrale (RAM), d'autre part, une logique de par t i t i on (LPj), associée à chaque processeur (CPUj) et adaptée pour différencier les adresses des données partagées et celles des données non partagées, de façon à aiguiller les premières vers le bus spécial commun (BUSAM) et les secondes vers les moyens de communication d'adresses de bloc. 9/ - Système multiprocesseur selon les revendications 4 et 6 prises ensemble, caractérisé en ce que les moyens de gestion des données partagées comprennes un processeur de gestion mémoire (PGM) associé à la mémoire centrale (RAM) et un processeur espion de bus (PEj) associé à chaque processeur de traitement (CPUj) et au répertoire de gestion correspondant (RGj), chaque processeur espion de bus (PEj) et île processeur de gestion mémoire (PGM) étant connectés au bus de communication d'adresses (BUSA) en vue respectivement de surveiller et de traiter les adresses de blocs transmises sur ledit bus de façon à permettre une mise à jour de la mémoire centrale (RAM) et de la mémoire-cache associée (MCj) en cas de détection d'une adresse de bloc présente dans le répertoire associé (RGj). 10/ - Système multiprocesseur selon les revendications 4 et 6 prises ensemble, caractérisé en ce que les moyens de gestion des données partagées comprennent un processeur de gestion mémoire (PGM) associé à la mémoire centrale (RAM) et un processeur de maintien de la cohérence des données partagées (PMCj) associé à chaque processeur de traitement (CPUj) et au répertoire de gestion correspondant tRGj), chaque processeur de maintien decohérence (PMCj) étant connecté à un bus de synchronisation (SYNCHRO) piloté par le processeur de gestion mémoire (Pr,M), de façon à permettre une mise à jour de la mémoire centrale (RAM) et de la m moire- cache associée (MCj) en cas de détection d'une adresse de bloc, une mise à jour de la mémoire centrale (RAM) et des mémoires-caches (MCj) à chaque prélèvement d'adresses sur -le bus commun- d'adresses BUSA. 11/ - Système multiproce-sseur selon les revendications 5 et 6 prises ensemble, caractérisé en ce que les moyens de gestion des données partagées comprennent un processeur de gestion mémoire (PGM) associé à la mémoire centrale (RAM) et un processeur de maintien de la cohérence des données partagées (PMCj) associé à chaque processeur de traitement (CPUj) et au répertoire de gestion correspondant (RGj), chaque processeur de maintien de cohérence (PMCj) étant connecté à un bus de synchronisation (SYNCHRO) piloté par le processeur de gestion mémoire (PGM), de façon à permettre une mise à jour de la mémoire centrale (RAM) et d.e la mémoirecache associée (MCj) en cas de détection d'une adresse de bloc, une mise à Jour de la mémoire centrale (RAM) et des mémoires-caches (MCj) à chaque prélèvement d'adresses dans les J registres à décalage complémentaires (RDCj). 12/ - Système multiprocesseur selon l'une des revendications 1 à 11, caractérisé en ce que - plusieurs registres à décalage processeur (RDPk, RDFk+î...) correspondant à un ensemble de processeurs déterminé (CPUk, CPUk+1...) sont connectés en parallèles à une même liaison série (LSk), un arbitre local (ABLk) étant associé à chaque ensemble de processeurs (CPUk, CPUk+î...) en vue d'arbitrer les conflits d'accès à la liaison surie (LSk), - un processeur de gestion mémoire (PGM) est relié aux moyens de communication d'adresses de blocs et à la mémoire centrale (RAM) et comprend des moyens de codage adaptés pour associer à chaque bloc d'informations (bi) un entête d'identification du processeur concerné parmi chaque ensemble (CPUk, CPUkl...) partageant une liaison série donnée (LSk), - les processeurs de gestion (PGk, PGk+1...) associés aux mémoires-caches (MCk, MCk+l...) des processeurs de l'ensemble précité (CPUk, CPUk+l...) comprennent des moyens de décodage de l'en-tête d'identification. 13/ - Système multiprocesseur selon l'une des revendications 1 à 12, caractérisé en ce que chaque registre à décalage mémoire (RDMj) est connecté de façon statique à une liaison série (LSj) spécifiquement affectée audit registre. 14/ - Système multiprocesseur selon l'une des revendications 1 à 12, caractérisé en ce que - un processeur de gestion mémoire (PGM) est associé à la mémoire centrale (RAM) et comprend une logique (ALLOC) d'affectation des registres à décalage mémoire aux. liaisons séries, - les registres à décalage mémoire (Roti1... ROM RDMn) sont connectés de façon dynamique aux liaisons séries (LS1... LSj...) par l'entremise d'un réseau d'interconnexion (RI) commandé par le processeur de gestion mémoire (PGM). 15/ - Système multiprocesseur selon l'une des revendications 1 à 14, dans lequel la mémoire centrale (RAM) est constituée par m bancs mémoires (RAM1... RAM RAMm) agencés en parallèle, caractérisé en ce que chaque registre à décalage mémoire (RDMj) est constitué par m registres à J décalage élérentaires (RDMjl... RDM RDMjm) reliés en parallèles à la liaison série correspondante (LSj), chaque regist-re élémentaire (RDMjp) étant connecté à un banc mémoire (RAM p) de façon à permettre, en un cycle dudit banc mémoire, un transfert parallèle en lecture ou écriture d'un bloc d'informations (bi) entre ledit registre élémentaire et ledit banc mémoire. 16/ - Système multiprocesseur selon la revendication 15, dans lequel chaque banc mémoire (RAM p) est du type à accès aléatoire doté d'une entrée/sortie de données de largeur correspondant à un bloc d'informations (bi), caractérisé en ce que ladite entrée/sortie de chaque banc mémoire (RAMp) est reliée par un bus parallèle à l'ensemble des registres élémentaires (RDM1p... RDMjp). 17/ - Système multiprocesseur selon l'une des revendications 15 ou 16, synchronise par une horloge de fréquence F au moins égale à 100 mégahertz, caractérisé en ce que chaque registre à décalage élémentaire mémoire (RDMjp) et Jp chaque registre à décalage processeur (RDPj) sont d'un type - a adapté pour présenter une fréquence de décalage au moins égale à F. 18/ - Système multiprocesseur selon l'une des. revendications 15 ou 16 synchronisé par une horloge de fréquence F au moins égale à 100 mégahertz, caractérisé en ce que chaque registre à décalage élémentaire mémoire et/ou chaque registre à décalage processeur est constitué d'un ensemble de 2u sous-registres multiplexés (RDMjp, RDPjp), chacun apte à présenter une fréquence de décalage au moins égale à F/2u. 19/ - Procédé d'échange d'informations entre une mémoire centrale (RAM) organisée en blocs d'informations (bi) et des processeurs (CPU1... CPüj... CPU0) chacun doté d'une mémoire-cache (MCj) organisée en blocs de moeme taille (bi), et d'un répertoire (RGj) et de son processeur de gestion (PGj), de façon que l'échange entre mémoire centrale (RAM) et chaque processeur (CPU j) s'effectue via la mémoire-cache (MCj) de ce dernier, ledit procédé étant caractérisé en ce que chaque transfert de bloc d'informations (bi) depuis la mémoire centrale (RAM) vers la mémoire-cache (MCj) d'un processeur donné (CPUj) consiste . à transférer, en un cycle de mémoire centrale, le bloc (bi) de ladite mémoire centrale (RAM) vers un registre à décalage mémoire (RDMj) de la taille d'un bloc, faisant partie d'un ensemble de registres à décalage (RDM1... ROM RDMn) connectés à la mémoire centrale, à à transférer sur une liaison série (LSj) le contenu du registre à décalage mémoire (RDMj) vers un registre à décalage processeur (RDPj) de même capacité, associé à la J mémoire-cache (MCj) du processeur considéré (CPUj), . à transférer le contenu dudit registre à décalage processeur (RDPj) vers ladite mémoire-cache (MCj). 20/ - Procédé d'échange d'informations entre une mémoire centrale (RAM) organisée en blocs d'informations (bi) et des processeurs (CPU1... CPUj... CPU chacun doté d'une mémoire-cache (MCj) organisée en blocs de mêmes tailles (bi), et d'un répertoire (RGj) et de son processeur de gestion (PGj), de façon que l'échange entre mémoire centrale (RAM) et chaque processeur (CPUj) s'effectue via la mémoire-cache (MCj) de ce dernier, ledit procédé étant J caractérisé en ce que chaque transfert de bloc d'informations (bi) depuis la mémoire-cache (MCj) d'un processeur donné (CPUj) vers la mémoire centrale (RAM) consiste à transférer le bloc (bi) de ladite mémoire-cache considérée (MCj) vers un registre à décalage J processeur (RDPj) de la taille d'un bloc, associé à ladite mémoire-cache (MCj), . à transférer sur une liaison série (LS j) le:: contenu du registre à décalage processeur (RDPj) vers un registre à décalage mémoire (RDMj) de même capacité, affecté au processeur considéré dans un ensemble de registres à décalage (RDM1... RDMj... RDMn) connectés à la mémoire centrale (RAM), . à transférer, en un cycle de mémoire centrale, le contenu du registre à décalage mémoire (RDMj) vers ladite mémoire centrale (RAM). 21/ - Composant memoire multiport série, susceptible d'équiper un système multiprocesseur conforme à l'une des revendications 1 à 18, caractérisé en ce qu'il est constitué par un circuit intégré comprenant une mémoire à accès aléatoire (RAM) de largeur prédéterminée correspondant à un bloc d'informations (bi), un ensemble de registres à décalage (RDM1...ROM R O RDMn), chacun de capacité correspondant à la largeur de la mémoire, un bus parallèle interne (BUSI) reliant accès de la mémoire et les registres à décalage, une logique de sélection d'un registre à décalage (LSR) adaptée pour valider la liaison sur le bus interne entre la mémoire et un registre à décalage prédéterminé, et un ensemble de broches externes d'entrée/sortie (adbloc, admot, numreg, cs, wr, rd, bitbloc, normal/config, hi, di) pour l'entrée d'adresses vers .la mémoire (RAM), pour l'entrée d'adresses vers la logique de sélection (LSR), pour l'entrée et la validation de commandes de transfert en lecture ou écriture d'un bloc d'informations (bi) entre la mémoire (RAM) et les registre; à décalage (RDMi), pour l'entrée d'un signal d'horloge vers chaque registre à décalage (RDMj), pour l'entrée bit à bit d'un bloc d'informations (bi) vers chaque registre à décalage (RDMj) et pour la sortie bit à bit d'un bloc d'informations de chaque registre à décalage (RDMj). 22/ - Composant selon la revendication 21, caractérisé en ce qu'il comprend au moins un registre -de configuration (RC1, RC2...) possédant des entrées de programmation, chaque registre de configuration étant relié à une logique de forçage (LF) connectée à la mémoire (RAM) et aux registres à- décalage -(RDMjt -) en vue d'assurer le forçage J d'états de ladite mémoire et desdits registres à décalage. 23/ - Composant selon la revendication 22, permettant le choix de la taille des blocs d'informations (bi) traités, caractérisé en ce que - la mémoire (RAM) est découpée en zones combinables pour permettre la mémorisation des diverses tailles possibles de blocs d'informations, - chaque registre à décalage (RDMj) est découpé en tronçons combinables pour permettre de charger les diverses tailles possibles de blocs d'informations, avec des dérivations aptes à assurer le décalage correspondant à chaque taille, - le bus interne (BUSI) est doté d'une logique de multiplexage (MT) pour. permettre les transferts de blocs d'informations (bi) des diverses tailles entre les combinaisons de zones de la mémoire (RAM) et les combinaisons correspondantes de tronçons des registres B décalage (RDMJ), . - un registre de configuration (RC1) est prévu de capacité correspondant au nombre de tailles de blocs possibles, - la logique de forçage (LF) reliée au registre (RC1) comprend une unité logique adaptée pour commander la logique de multiplexage (MT) en vue de valider les transferts de blocs d'informations (bi) dans une taille donnée correspondant au paramètre contenu dans le registre de configuration (RC1). 24/ - Composant selon l'une des revendications 22 ou 23, caractérisé en ce que - l'entrée et la sortie de chaque registre à décalage (RDM;) sont reliées à une même broche externe par l'intermédiaire d'une porte logique (PL j ), - un registre de configuration (RC2) est prévu de capacité correspondant su nombre de registres à décalage - la logique de forçage (LF) reliée au registre de configuration (RC2) comprend une unité logique adaptée pour commander les portes logiques (PL j) en vue ce forcer le fonctionnement de chaque registre à décalage (RDMj) en node entrée ou en mode sortie en fonction d'un bit contenu dans le registre de configuration (RC2) affecté audit registre à décalage (RDtlj). 25/ - Composant selon l'une des revendications 22, 23 ou 24, caractérisé en ce que - l'entrée et la sortie de chaque registre à décalage (RDM j) sont reliées à une même broche externe par l'intermédiaire d'une porte logique (PLj), - un registre de configuration (RC3) est prévu de capacité correspondant au nombre de registres à décalage (RDMj), - la logique de forçage (LF) reliée au registre de configuration (RC3) comprend une unité logique reliée à la commande de lecture de la mémoire (RAM) et adaptée pour commander chaque porte logique (PL j) soit en mode sortie au moment de la lecture de la mémoire (transfert de la mémoire RAM vers le registre correspondant RDMj) pendant toute la durée du vidage dudit registre à décalage (RDMj), soit en mode entrée, le reste du temps. 26/ - Composant selon l'une des revendications 22, 23, 24 ou 25, caractérisé en ce qu'il: comprend une broche externe d'entrée (bit/bloc), une ou des broches externes d'entrée/sortie d'informations (data), une logique de commande (COM) reliée à la broche d'entrée (bit/bloc), aux broches d'entrée/sortie (data), à la mémoire. (RAM) et à la logique de sélection (LSR) et adaptée selon l'état de l'entrée (bit/bloc) pour engendrer soit les transferts de blocs d'informations (bi) entre mémoire (RAM) et registres a décalage (RDMj), soit des transferts de bits directement entre la mémoire (RAM) et les broches (data). 27/ - Composant selon les revendications 22 et 26 prises ensemble, caractérisé en ce que les registres de configuration (RC1, RC2...) sont reliés - d'une part à la logique de sélection (LSR) laquelle est adaptée pour sélectionner lesdits registres de configuration pour des adresses prédéterminées affectées auxdits registres, - d'autre part, à la logique de commande (COM) laquelle est adaptée pour transmettre les données en provenance des broches d'entrée/sortie (data) vers lesdits registres de configuration en vue de leur programmation. 28/ - Composant selon l'une des revendications 21 à 27, dans lequel sur le bus interne (BUSI) reliant l'accès de la mémoire (RAM) et les registres à décalage (RDMj) est interposée une logique de type "barillet" (B S) ("barrel s h i f t e r") apte à assurer une permutation circulaire sur les bits de chaque bloc d'informations, ladite logique (BS) possédant une entrée de commande du pas de glissement en unité mot connectée à des broches d'entrée (admot).