FR 2667706 A1 19920410 FR 9112239 A 19911004 i ANTEMEMOIRE HIERARCHIQUE A CIRCUITS INTEGRES DESCRIPTION La présente invention concerne d'une façon générale des antémémoires et, plus particulièrement, une mémoire à circuit intégré spécialement adaptée pour exécuter des fonctions d'antémémoire Spécifiquement, la présente invention concerne un circuit intégré incluant une mémoire rapide, une mémoire lente de plus grande capa- cité, et des circuits d'interconnexion de voies de données pour réaliser une antémémoire hiérarchique. Dans le domaine du calcul rapide, la vitesse des processeurs est généralement limitée par les perfor- mances des mémoires Par exemple, une unité centrale de traitement CPU exécute des instructions à un débit pré- déterminé Similairement, la mémoire centrale exécute des opérations de lecture et d'écriture à un deuxième débit prédéterminé qui est typiquement au moins d'un ordre de grandeur inférieur au débit d'exécution de l'unité CPU Si l'unité CPU doit avoir accès directement à la mémoire centrale pendant l'exécution des instruc- tions d'accès en mémoire, l'unité CPU a ses performances diminuées par rapport au débit d'accès en mémoire Dans ce cas, l'unité CPU doit se bloquer sur une boucle tout en attendant que la mémoire centrale ait terminé son cycle d'accès pour chaque instruction d'accès en mémoire. Il est possible de réaliser une mémoire à usage spécial qui ait un temps de cycle approximativement égal au temps de cycle d'une instruction de l'unité CPU. Malheureusement, ces mémoires à usage spécial mettent en oeuvre des mémoires à accès sélectif RAM statiques rapides qui sont beaucoup plus coûteuses qu'une mémoire RAM dynamique typique mise en oeuvre dans une mémoire centrale En conséquence, beaucoup de systèmes ordi- nateurs admettent un compromis en réalisant une anté- mémoire de capacité relativement faible et rapide tout en maintenant la mémoire à semiconducteur plus lente dans la mémoire centrale. L'antémémoire est gérée par commande du matériel pour maintenir une copie d'une partie du contenu de la mémoire centrale qui doit vraisemblablement être utilisée par l'unité CPU Ainsi, tant que l'unité CPU n'a accès qu'aux emplacements de mémoire maintenus dans l'anté- mémoire, l'unité CPU fonctionnera à pleine vitesse Il est évident qu'il est inévitable que l'unité CPU essaie occasionnellement de lire dans un emplacement de mémoire non contenu dans l'antémémoire Pendant ces absences de correspondance, les données sont extraites de la mémoire centrale et mémorisées dans l'antémémoire Par conséquent, les performances de l'unité CPU diminuent en ce qui concerne le débit d'accès à la mémoire centrale pendant les absences de correspondance, mais les absences de correspondance sont relativement rares, de telle sorte que la vitesse d'ensemble du processeur est augmentée par l'emploi de l'antémémoire rapide. Récemment, on a introduit un processeur qui a des vitesses d'exécution bien supérieures au temps d'accès des mémoires RAM statiques typiques Ces processeurs ont des temps de cycle inférieurs à 10 nanosecondes, par exemple Comme cette vitesse d'exécution rapide est très peu en correspondance avec le temps d'accès des antémémoires à mémoire RAM statique,ces processeurs sont connus avec des antémémoires"sur puce" qui four- nissent un niveau supplémentaire de mémoire entre le processeur et l'antémémoire Les antémémoires sur puce éliminent le retard de transmission de données introduit entre les puces, mais elles ont une capacité de mémoire nécessairement limitée à une valeur bien inférieure à la capacité d'une seule puce ne contenant qu'une mémoire rapide Par conséquent, le taux d'absences de corres- pondance relativement élevé de l'antémémoire sur puce tend à limiter substantiellement les performances du processeur, étant donné la disparité entre la vitesse d'exécution de l'unité CPU et le temps d'accès de l'antémémoire à mémoire RAM statique. La disparité de vitesse entre le processeur rapide et l'antémémoire à mémoire RAM statique a encouragé les concepteurs d'antémémoires à placer une antémémoire "principale" de mémoire très rapide entre le processeur et l'antémémoire à mémoire RAM statique "secondaire". Cependant, la réalisation de cette antémémoire "hiérar- chique" a été irréalisable à cause du nombre considé- rable de lignes d'entrée/sortie et des circuits tampons et de multiplexage associés nécessaires pour constituer une interface entre l'antémémoire secondaire et la mémoire centrale et l'antémémoire principale, et de la nécessité de maintenir les antémémoires principale et secondaire à étroite proximité du processeur pour réduire au minimum le retard de transmission de signaux. En résumé, selon la présente invention, une anté- mémoire hiérarchique comprend une antémémoire principale rapide; une mémoire secondaire plus lente de plus grande capacité que l'antémémoire principale; des circuits à voies de données pour sélectionner des voies de données de l'antémémoire secondaire à l'antémémoire principale, et d'une porte d'accès à la mémoire centrale à l'anté- mémoire secondaire; et un circuit de commande pour transférer des données demandées de l'antémémoire secon- daire à l'antémémoire principale quand les données demandées sont absentes dans l'antémémoire principale, et pour transférer les données demandées de la porte d'accès à la mémoire centrale à l'antémémoire secondaire quand les données demandées sont absentes dans l'anté- mémoire secondaire Pour gérer un grand nombre de lignes de données dans les circuits à voies de données, l'anté- mémoire hiérarchique comprend un ensemble de circuits intégrés Chaque circuit intégré comprend une partie de l'antémémoire principale, une partie de l'antémémoire secondaire ayant une capacité de mémoire supérieure à celle de ladite partie de l'antémémoire principale, et une partie des circuits à section de voies de données pour établir des voies de données respectives de la partie de l'antémémoire secondaire à la partie de l'an- témémoire principale, et de la porte d'accès à la mé- moire centrale à la partie de l'antémémoire secondaire. Dans une réalisation préférée, la partie des cir- cuits à voies de données dans chacun des circuits inté- grés comprend un registre à décalage série/parallèle comportant une sortie parallèle connectée à des lignes d'entrée de données des parties des antémémoires prin- cipale et secondaire, une entrée de données en série recevant des données de la mémoire centrale, et une entrée en parallèle connectée à des lignes de sortie de données de la partie de l'antémémoire secon- daire Pour écrire des données dans l'antémémoire et à nouveau dans la mémoire centrale, le registre à déca- lage série/parallèle comprend également une entrée en parallèle pour recevoir des données de l'unité de trai- tement, une entrée en parallèle connectée à des lignes de sortie de données de la partie de l'antémémoire prin- cipale, et une sortie en série pour transmettre des données à la mémoire centrale La partie de l'antémé- moire principale comporte des entrées d'adresse câblées en parallèle avec des entrées d'adresse de la partie de l'antémémoire secondaire Pour permettre au processeur de données d'adresser une ligne de sortie de données sélectionnée de la partie de l'antémémoire principale, le circuit intégré comprend un multiplexeur comportant des entrées de sélection connectées à des lignes d'adresse supplémentaires, et des lignes d'entrée de données connectées aux lignes de sortie de données de l'antémémoire principale Pour permettre au processeur de données d'écrire des données dans l'antémémoire prin- cipale par une ligne d'entrée de données sélectionnée de la partie de l'antémémoire principale, le circuit intégré comprend un décodeur connecté aux lignes d'adresse supplémentaires et des sorties connectées à des entrées de validation d'écriture respectives de la partie de l'antémémoire principale, et l'entrée en pa- rallèle du registre à décalage série/parallèle comprend un ensemble de lignes de données câblées en parallèle à une ligne de données pour recevoir des données du processeur de données. D'autres caractéristiques et avantages de la pré- sente invention seront mis en évidence dans la descrip- tion suivante, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: la Figure 1 est un schéma fonctionnel d'un système de traitement de données mettant en oeuvre une antémé- moire hiérarchique de la présente invention; les Fig 2 A,2 B sont un schéma fonctionnel de l'antémé- moire hiérarchique de la Figure 1; la Figure 3 est un schéma fonctionnel d'une mémoire d'indicateurs utilisée dans l'antémémoire hiérarchique; la Figure 4 est un schéma fonctionnel d'un circuit intégré selon l'invention, incluant des parties à la fois d'une antémémoire principale et d'une antémémoire secondaire; la Figure 5 est une représentation schématique d'un regis- tre à décalage séirie/paral Ièle utilisé pour interconnecter les parties des antémémoires principale et secondaire dans le circuit intégré de la Figure 4; la Figure 6 est une représentation schématique d'une partie de l'antémémoire secondaire incluse dans le circuit in- tégré de la Figure 4; la Figure 7 est une représentation schématique d'un décodeur- d'adresse et de la partie de l'antémémoire secondaire utilisée dans le circuit intégré de la Figure 4; la Figure 8 est une représentation schématique d'un tampon d'entrée d'horloge ayant la forme d'un amplificateur différentiel pour permettre d'utiliser soit un signal d'horloge à une seule limite, soit un signal d'horloge complémentaire double pour commander par horloge le circuit intégré de la Figure 4; la Figure 9 est un organigramme de la logique de commande servant pour l'antémémoire hiérarchique de la Figure 1; la Figure 10 est un organigramme de la logique de commande servant pour arranger l'antémémoire principale quand une absence de correspondance principale se produit; la Figure 11 est un organigramme de la logique de commande servant pour arranger l'antémémoire secondaire quand une absence de correspondance secondaire se produit; la Figure 12 est une représentation schématique montrant comment est utilisé le circuit intégré de la Figure 4 dans une antémémoire hiérarchique à groupe associatif bidirectionnel; et la Figure 13 est un organigramme de la logique de commande supplémentaire servant pour l'antémémoire à groupe associatif bidirectionnel de la Figure 12. Bien que l'invention soit sujette à différentes modifications et à des formes alternatives, on a indiqué un exemple de réalisation spécifique de celle-ci à titre d'exemple dans les dessins qu'on va maintenant décrire en détail Cependant, on doit remarquer qu'on ne propose pas de limiter l'invention à la forme particulière révélée mais qu'au contraire, on propose de couvrir toutes les modifications, les équivalents et les alter- natives tombant dans l'esprit et le cadre de l'invention telle que définie par les revendications annexées. En considérant maintenant la Figure 1, on voit qu'on a représenté un schéma fonctionnel d'un système de traitement de données indiqué dans son ensemble par la référence 20 qui incorpore une antémémoire hiérar- chique 21 selon la présente invention Le système de traitement de données 20 comprend également un pro- cesseur de données 22 et une mémoire centrale 23. Le processeur de données 22, par exemple, est une unité centrale de traitement (CPU) qui exécute des instruc- tions d'un programme d'ordinateur Les instructions comprennent des instructions d'accès en mémoire qui commandent au processeur de données de lire des données à une adresse d'origine spécifiée dans la mémoire cen- trale ou d'écriture des données spécifiées à une adresse de destination spécifiées dans la mémoire centrale. Le coût de la mémoire est un facteur majeur dans le coût d'ensemble du système de traitement de données Bien que les mémoires soient devenues relativement bon marché, elles sont et seront toujours des mémoires ayant des capacités de mémoire variables et des perfor- mances caractéristiques disponibles à différents coûts. Le coût de la mémoire, par exemple, est proportionnel à la capacité de mémoire et il est en général propor- tionnel à la vitesse de la mémoire Malheureusement, la vitesse de la mémoire a une influence importante sur la vitesse d'exécution du processeur de données 22. C'est spécialement vrai dans le cas de ce qu'on appelle les ordinateurs à "jeu d'instructions réduit" (RISC) qui sont intentionnellement conçus pour exécuter un jeu d'instructions qui a été limité et rendu optimal pour la vitesse d'exécution En mettant en oeuvre, par exem- ple, une technologie à logique à émetteurs couplés (ECL), c'est une pratique de fabriquer un processeur de données sur une seule puce 22 qui ait un temps de cycle de l'ordre de trois nanosecondes Pour empêcher que le pro- cesseur de données soit bloqué sur une boucle dans ce cas pendant l'exécution d'une instruction d'accès en mémoire, il serait souhaitable que la mémoire ait un temps de cycle correspondant d'environ trois nanosecondes. Cependant, cette exigence est spécialement sévère car une technologie de circuits intégrés rapides et en con- séquence de puissance élevée telle qu'à logique ECL est nécessaire, et la mémoire devrait être sévèrement limitée en capacité en raison des contraintes de dissipation d'énergie, du temps de transmission des signaux, et enfin du coût relativement élevé de la mémoire ECL. Une solution commune à ces problèmes consiste à utiliser une mémoire tampon rapide et de faible capacité, appelée antémémoire, pour maintenir les instructions de programme et/ou les données élémentaires les plus récem- ment utilisées L'antémémoire est insérée entre le processeur de données 22 et la mémoire centrale 23. Pour les processeurs à pipeline rapides, il est courant d'utiliser deux antémémoires séparées dont une pour maintenir des instructions, et l'autre pour maintenir des données L'antémémoire hiérarchique 21 de la Figure 1, par exemple, est utilisée pour maintenir des données. Quand le processeur de données 22 exécute une instruc- tion d'accès en mémoire, le processeur de données 22 demande les données de l'antémémoire 21 Si les données demandées se trouvent dans l'antémémoire 21, les données peuvent être obtenues rapidement dans l'antémémoire sans avoir accès à la mémoire centrale 23. Cependant, une antémémoire incluant juste une mé- moire ECL fournit une solution plutêt médiocre au pro- blème de compensation de la grande disparité entre la vitesse cyclique du processeur de données 22 et la mémoire centrale 23 quand la mémoire centrale est cons- tituée de puces de mémoire RAM dynamique (DRAM) à métal- oxyde-semiconducteur à symétrie complémentaire CMOS classiques En raison des limitations de la dissipation élevée d'énergie, du retard de transmission des signaux entre le processeur de données 22 et l'antémémoire, et du coût, les performances du système de traitement de données 20 peuvent être sévèrement limitées si l'anté- mémoire ECL doit avoir accès à la mémoire centrale 23 chaque fois que se produit une absence de correspondance. Puisque l'antémémoire ECL peut avoir un taux d'absences de correspondance plutôt élevé, elle doit comporter une mémoire auxiliaire qui comporte un temps d'attente non supérieur; à environ 10 fois son propre temps d'attente La mémoire centrale 23, par exemple, a typi- quement un temps d'accès d'au moins 100 nanosecondes et, par conséquent, la pénalisation pour avoir accès à la mémoire centrale pendant une absence de correspon- dance peut être égale à au moins 30 cycles du processeur de données ou de l'antémémoire ECL Une solution à ce problème, qui est représentée sur la Figure 1, consiste à utiliser une antémémoire hiérarchique 21 comprenant à la fois une antémémoire principale 24 d'une mémoire ECL rapide, et une antémémoire secondaire 25 d'une mé- mémoire à vitesse intermédiaire telle qu'une mémoire RAM statique (SRAM) CMOS. Cependant, l'utilisation de l'antémémoire secon- daire 25 introduit un certain nombre de problèmes Pour limiter le retard de transmission de signaux, l'antémé- moire secondaire 25 doit être voisine de l'antémémoire principale 24, encore qu'il soit même plus critique de maintenir l'antémémoire principale à étroite proximité du processeur de données 22 De plus, l'antémémoire secondaire 24 doit avoir une capacité de mémoire relati- vement grande et doit avoir une dimension de bloc rela- tivement grande, de telle sorte que les performances du système ne soient pas limitées par le temps nécessaire pour regarnir l'antémémoire principale 24 à partir de l'antémémoire secondaire 25 Cela exige un nombre consi- dérable de lignes de signaux pour interconnecter l'anté- mémoire secondaire 25 à la mémoire centrale 23 et à l'antémémoire principale 24 Ces considérations ont antérieurement nécessité de placer les antémémoires secondaires sur une plaquette de circuits imprimés de câblage entre le processeur de données et la mémoire centrale, ce qui introduit beaucoup de complexité et de retard de transmission, avec une perte correspondante de fiabilité et de performances. Selon un aspect important de la présente invention, ces problèmes sont résolus en plaçant des parties à la fois de l'antémémoire principale 24 et de l'antémémoire secondaire 25 sur les mêmes circuits intégrés, de telle sorte que le nombre considérable de lignes de données inteconnectant les antémémoires principale et secondaire soit entièrement situées sur les circuits intégrés. De plus, le nombre et les dimensions d'ensemble des - boîtiers de circuits intégrés dans l'antémémoire hiérar- chique 21 sont réduits car les contraintes fondamentales sur les nombres de boîtiers de circuits intégrés sont différentes pour l'antémémoire principale 24 et l'anté- mémoire secondaire 25 Si l'antémémoire principale 24 était limitée à des circuits intégrés ECL individuels, le facteur principal déterminant le nombre de boîtiers de circuits intégrés serait la consommation d'énergie des éléments de mémoire ECL dans chaque boîtier En d'autres termes, la capacité de mémoire maximale d'une mémoire ECL sur une seule puce à circuits intégrés est principalement limitée par la consommation d'énergie du boîtier dans lequel est placé la puce D'autre part, si l'antémémoire secondaire 25 devait être entièrement intégrée sur des puces séparées, la capacité de mémoire maximale par puce serait essentiellement limitée par les dimensions maximales de la puce à circuits intégrés pour une fabrication économique des puces Par conséquent, en plaçant une certaine antémémoire secondaire et une certaine antémémoire principale sur chaque puce à cir- cuits intégrés, on peut réduire le nombre total de puces à cause de la nature complémentaire des contraintes fondamentales sur les différentes technologies des cir- cuits intégrés ou des conditions différentes de fonc- tionnement voulues pour l'antémémoire principale 24 et l'antémémoire secondaire 25. Il est possible de mettre en oeuvre des procédés de fabrication de puces à semiconducteur connus et, il en particulier, un procédé connu en tant que procédé "Bi-CMOS", pour combiner des éléments CMOS (à métal- oxyde-semiconducteur à symétrie complémentaire) de mémoire et des éléments ECL de mémoire sur la même puce à circuits intégrés Cependant, on doit noter que les mêmes contraintes complémentaires sur le nombre de boî- tiers de circuits intégrés à la fois pour l'antémémoire principale et l'antémémoire secondaire peuvent exister, même si la même technologie des éléments de circuit était mise en oeuvre pour l'antémémoire principale et l'antémémoire secondaire tant que la dissipation d'énergie est un facteur principal pour l'antémémoire principale mais non pour l'antémémoire secondaire Cela pourrait être vrai, par exemple, dans la technologie bipolaire telle qu'en logique ECL ou en logique intégrée à in- jection 12 L o le concepteur de circuits est libre de régler la consommation d'énergie des différents compo- sants logiques sur la même puce de manière à obtenir une vitesse élevée pour une dépense élevée de consommation d'énergie pour l'antémémoire principale mais peut choi- sir une faible consommation d'énergie pour l'antémémoire secondaire 25 puisqu'une vitesse élevée n'est pas né- cessaire dans ce cas Si la technologie des circuits était le seul critère de sélection des capacités de mémoire relatives de l'antémémoire principale et de l'antémémoire secondaire, par exemple, chacun des cir- cuits intégrés constituant l'antémémoire principale 24 et l'antémémoire secondaire 25 aurait des dimensions maximales imposées par les contraintes économiques et dissiperait également la quantité maximale d'énergie admise pour la mise en boîtier économique de la puce. Cependant, en plaçant une partie à la fois del'anté- mémoire principale 24 et de l'antémémoire secondaire 25 sur la même puce, on introduit des problèmes supplémen- taires relatifs à la volonté de limiter le nombre de lignes d'entréesortie de chaque puce Comme on le décrira encore ci-dessous en relation avec la Figure 2, ces problèmes sont résolus en utilisant un bus d'adresse commun pour les mémoires de données à la fois de l'anté- mémoire principale 24 et de l'antémémoire secondaire 25, et en utilisant un registre commun pour écrire des don- nées à la fois dans les antémémoires principale et secondaire En particulier, le registre d'écriture peut recevoir des données soit de l'antémémoire principale 24, soit de l'antémémoire secondaire 25, soit d'une porte d'accès au processeur de données 26 ou d'une porte d'accès à la mémoire centrale 27 Ce partage du bus d'adresse et du registre d'écriture entre l'antémémoire P r-i-nrocipale 24 et l'antémémoire secondaire 25 impose que l'antémémoire hiérarchique 21 utilise un contrôleur d'antémémoire commun 28 pour coordonner une réécriture de données et un regarnissage à la fois pour l'antémé- moire principale 24 et l'antémémoire secondaire 25. Bien que l'antémémoire hiérarchique 21 puisse com- porter une antémémoire principale 24 dont la vitesse cy- clique est en correspondance avec la vitesse cy- clique du processeur de données 22, il est encore sou- haitable d'utiliser une antémémoire sur puce 29 de faible capacité et un contrôleur d'antémémoire sur puce associé 30 Dans ce cas, il est possible que le processeur de données 22 ait accès à l'antémémoire sur puce 29 dans une fraction de cycle à cause de l'absence de retards de transmission de données entre puces. L'antémémoire sur puce 29 est similaire à un fichier registre En particulier, l'antémémoire sur puce 29 et le contrôleur d'antémémoire sur puce 30 fonctionnent d'une manière similaire à l'antémémoire principale 24 et au contrôleur d'antémémoire 28, et on les décrira encore ci-dessous en se référant aux Figures 2,9 et 10. En termes généraux, le processeur de données 22 envoie des demandes d'accès en mémoire, des adresses et des données à écrire en mémoire à l'antémémoire hiérarchique 21, et l'antémémoire hiérarchique renvoie des accusés de réception des demandes et des données correspondantes lues en mémoire A cette fin, l'antémé- moire hiérarchique 21 comporte une porte d'accès au processeur de données 26 reliée au processeur de données 22 par un bus de demande 31, un bus d'accusé de récep- tion 35, un bus d'adresse 32, et deux bus de données unidirectionnels 33 et 34 Le bus de demande, par exem- ple, comprend au moins deux lignes pour acheminer un code de demande indiquant une demande de lecture, une demande d'écriture, une demande de vidage, ou l'absence de demande (une opération ineffective) pendant chaque cycle d'une horloge de système rapide Le bus d'accusé de réception, par exemple, comprend au moins trois lignes pour acheminer un signal de blocage sur une boucle indiquant que le processeur de données ne doit pas envoyer de demandes supplémentaires, un signal de validité de données lues pour accuser réception de la fin d'une demande de lecture, et un signal de défaut de mémoire pour interrompre 1 ' exécution du programme. Pour obtenir des données demandées en mémoire cen- trale 23 quand les données demandées ne peuvent pas être trouvées dans l'antémémoire hiérarchique 21, l'antémé- moire hiérarchique comprend une porte d'accès en mémoire centrale 27 d'o s'étendent un certain nombre de bus jusqu'à la mémoire centrale Ces bus comprennent un bus de demande 36, un bus d'accusé de réception 40, un bus d'adresse 37, et deux bus de données unidirectionnels 37 et 38 Les deux bus de données sont prévus de telle sorte que les données de regarnissage et les données de réécriture peuvent être échangées simultanément, comme on le décrira encore ci-dessous. En se référant maintenant à la Figure 2, on voit qu'on a représenté plus en détail un schéma fonctionnel de l'antémémoire hiérarchique 21 L'antémémoire prin- cipale 24 comprend une mémoire 41 pour maintenir des blocs de données, une mémoire 42 pour maintenir des indicateurs d'adresse correspondants, et un comparateur 43 pour comparer les indicateurs d'adresse mémorisés dans la mémoire 42 à une partie d'index d'une adresse sur un bus d'adresse interne indiqué dans son ensemble par la référence 44 D'une manière similaire, l'anté- mémoire secondaire 25 comprend une mémoire 45 pour des blocs de données, une mémoire 46 pour des indicateurs d'adresse, et un comparateur d'indicateurs 47 Comme on ne prévoit qu'un seul comparateur d'indicateurs et une seule mémoire d'indicateurs pour chaque mémoire de données, l'antémémoire hiérarchique 21 estunemémoire à groupe associatif Lnidirection- nel_ Cependant, comme on le décrira encore ci-dessous en référence aux Figures 12 et 13, l'antémémoire hié- rarchique 21 est facilement réalisée comme une antémé- moire à plusieurs groupes associatifs en prévoyant plusieurs groupes de mémoires d'indicateurs et de com- parateurs d'indicateurs pour chacune des antémémoires principale et secondaire. De préférence, l'antémémoire hiérarchique fonc- tionne d'une manière synchrone en réponse à un signal d'horloge (CLK), et des registres de blocage sur une boucle 48,49 sont utilisés pour traiter par pipeline le flot de données entre le processeur de données et l'antémémoire hiérarchique Le registre ce blocage sur une boucle 48 maintient une adresse et le registre de blocage sur une boucle 49 maintient les données du pro- cesseur de données quand le contrôleur d'antémémoire 28 excite un signal de blocage sur une boucle Le signal de blocage sur une boucle commande des multiplexeurs 50 et 51 pour sélectionner les contenus des registres de blocage sur une boucle 48 et 49, respectivement, quand le signal de blocage sur une boucle est excité. Il est en outre souhaitable de traiter par pipeline l'accès à la mémoire d'indicateurs d'antémémoire -15 principale 42 et l'accès à la mémoire de données d'anté- mémoire principale 41 pour au moins l'écriture de données Comme le montre la Figure 2, l'antémémoire hiérarchique est directement mise en correspondance et, par conséquent, il est nécessaire de contrôler un indicateur de mise en correspondance, indiquant la"présence d'une correspondance", avant d'effectuer une écriture dans la mémoire de données, ou, autrement, les données peuvent être écrites dans un bloc d'antémémoire qui est associé à une adresse différente de l'adresse voulue. Le traitement par pipeline de l'adresse voulue de la mémoire d'indicateurs à la mémoire de données peut être fait en adressant la mémoire d'indicateurs quand l'adresse voulue apparaît sur le bus d'adresse 32, et en adressant ultérieurement la mémoire de données quand l'adresse voulue est reçue dans le registre de blocage sur une boucle 48 Cependant, pour traiter des demandes de lec- ture, il est quelquefois possible d'adresser la mémoire d'indicateurs et la mémoire de données simultanément. Les données lues dans la mémoire sont reçues dans un registre de sortie 52 et ultérieurement elles sont transmises au processeur de données quand le signal de "présence d'une correspondance" est disponible soit pour confirmer, soit pour invalider les données Quand la mémoire d'indicateurs et la mémoire de données sont adressées simultanément, un multiplexeur de contourne- ment 58 adresse la mémoire de données 41 avec l'adresse d'unité CPU provenant du bus d'adresse 32 au lieu de le faire avec l'adresse contenue dans le registre de blo- cage sur une boucle 48. Comme il est souhaitable que les blocs de données d'antémémoire soient beaucoup plus grands que le nombre de lignes de données du bus de données d'unité CPU 34, un multiplexeur 53 réagit à un certain nombre de bits d'adresse de poids faible pour sélectionner une partie d'un bloc de données à transmettre à l'unité de traitement de données Par exemple, chaque bloc de don- nées d'antémémoire comprend 1024 bits, et le multi- plexeur 53 réagit à cinq bits d'adresse de poids faible pour sélectionner un mot long de 32 bits dans le bloc d'antémémoire De préférence, l'antémémoire principale 24 et l'antémémoire secondaire 25 ont la même longueur de bloc d'antémémoire, de telle sorte que les données peuvent être transférées rapidement entre la mémoire de données 41 de l'antémémoire principale et la mémoire de données 45 de l'antémémoire secondaire Comme le montre la Figure 2, les entrées de données des deux mémoires de données 41,45 sont connectées en parallèle par un large bus 54 comportant une seule ligne pour chaque bit du *bloc d'antémémoire. Comme on le décrira encore ci-dessous, le large bus 54 est entièrement interne pour les circuits inté- grés qui sont utilisés pour réaliser les deux mémoires de données 41,45 De plus, l'antémémoire hiérarchique 21 est pourvue d'un registre série/parallèle 55 qui sert de tampon d'écriture pour les deux mémoires de données 41,45 et qui est également utilisé pour une transmission en parallèle entre les mémoires de données 41,45, ainsi que pour le regarnissage et la réécriture à partir de la mémoire centrale Les données circulent de l'anté- mémoire secondaire et par l'intermédiaire du registre série/parallèle pour regarnir l'antémémoire principale pour les consultations ayant donné une absence de cor- respondance dans l'antémémoire principale, mais une présence de correspondance dans l'antémémoire secondaire. En outre, avant qu'un bloc d'antémémoire contenant des données modifiées dans l'antémémoire principale soit regarni avec de nouvelles données, on fait circuler les données modifiées par un large bus 57 de l'antémémoire principale et par l'intermédiaire du registre série/ parallèle 55 jusqu'à l'antémémoire secondaire En outre, le registre série/parallèle fonctionne comme un registre à décalage-série pour servir à la fois de tampon de regarnis- sage et de tampon de réécriture pendant un regarnissage ou une réécriture de données entre la mémoire centrale et l'antémémoire hiérarchique Comme on le remarquera plus clairement d'après la Figure 4, les bus de données 38 et 39 interconnectant l'antémémoire hiérarchique et la mémoire centrale, par exemple, sont des bus à 32 bits et 1024 bits de données peuvent être échangés entre le registre série/parallèle 55 et la mémoire centrale en 32 cycles d'horloge. Le registre série/parallèle 55 comporte quatre modes de fonctionnement différents en réponse à unsignal de sélection à deux bits (SEL) provenant du contrôleur d'antémémoire 28 Pour le signal SEL= 0, le registre série/parallèle 55 reçoit les données en sortie de l'an- témémoire secondaire 25 pour un regarnissage de l'anté- mémoire principale 24 Pour le signal SEL= 1, le registre série/parallèle reçoit trente-deux copies du mot long de 32 bits provenant du processeurde données, comme on le décrira plus complètement ci-dessous en référence à la Figure 4 Une copie sélectionnée parmi les trente-deux copies, telle que sélectionnée par un décodeur d'adresse 56, peut être écrite à une position adressée dans le bloc d'antémémoire de la mémoire de données 41 de l'antémémoire principale Pour le signal SEL= 2, le signal de sortie de la mémoire de données 41 de l'antémémoire principale est reçu dans le registre série/parallèle 55 pour une réécriture dans l'antémé- moire secondaire 25 Pendant l'opération de réécriture, qui exige un certain nombre de cycles, l'adresse en mémoire de données 41 ne change pas, de telle sorte que le contenu du registre série/parallèle 55 ne change pas quand le registre est déclenché par horloge Pour le signal SEL= 3, le registre série/parallèle 55 fonctionne dans un mode en série pour décaler intérieurement les données de regarnissage provenant de la mémoire principale et décaler extérieurement les données de ré- écriture jusqu'à la mémoire centrale. Dans un but d'illustration, l'antémémoire prin- cipale 24 et l'antémémoire secondaire 25 sont repré- sentées chacune comme une antémémoire à mise en corres- pondance directe Quand une absence de correspondance se produit, le contenu de l'emplacement adressé voulu dans la mémoire d'indicateurs indique les bits adresse de poids fort de n'importe quelles données qui peuvent présentes dans le bloc d'antémémoire voulu La présence de données est indiquée par des indicateurs de validité (V) mémorisés dans les mémoires d'indicateurs 42, 46. L'antémémoire hiérarchique 21 est également représentée comme une antémémoire à réécriture plutôt que comme une antémémoire à double écriture Par conséquent, si les données modifiées sont présentes dans un bloc d'anté- mémoire voulu pendant une absence de correspondance, ces données peuvent être réécrites Les données modi- fiées sont indiquées par des indicateurs de modification (M) contenus dans les mémoires d'indicateurs. Comme il est en outre indiqué dans le schéma fonc- tionnel de la Figure 3, chacune des mémoires d'indica- teurs 42,46 est organisée de telle sorte que les indi- cateurs de modification (M) et les indicateurs de vali- dité (V) sont automatiquement mis à jour pendant une écriture dans la mémoire d'indicateurs et un vidage de la mémoire d'indicateurs Comme on l'a indiqué, la mémoire d'indicateurs comprend une mémoire à accès sélectif RAM statique à un seul bit 61 pour maintenir les indicateurs de modification, une mémoire RAM sta- tique à un seul bit 62 pour maintenir les indicateurs de validité, et un certain nombre de mémoires RAM sta- tiques à un seul bit 63, 64, 65 pour maintenir des bits indicateurs correspondant aux bits d'adresse de poids fort Le signal d'entrée de validation d'écriture dans la mémoire RAM statique 61 pour les indicateurs de modification est fourni par une porte OU 66 qui combine les signaux de validation d'écriture (WE) pour les mémoires d'indicateurs 42, 46 avec le signal d'entrée de modifi- cation d'écriture (WM) Les autres mémoires RAM statiques 62, 63, 64 et 65 reçoivent directement le signal de validation d'écriture pour la mémoire d'indicateurs De plus, la mémoire RAM statique 61 pour les indicateurs de modification comporte une entrée de données qui re- çoit le signal de modification d'écriture (WM) Par conséquent, le bit modifié est effacé quand la mémoire d'indicateurs est mise à jour par un signal de valida- tion d'écriture (WE), et il est établi quand le signal WM est excité pendant la modification des données. La mémoire RAM statique à un seul bit 62 pour les indi- cateurs de validité est réalisée spécialement de telle sorte que l'ensemble des bits dans la mémoire peuvent être remis à l'état initial ou effacés simultanément en réponse à un signal VIDAGE L'entrée de données de cette mémoire 62 est câblée à un niveau logique haut de ma- nière à établir l'indicateur de validité des adresses quand le signal de validation d'écriture (WE) est excité pendant un regarnissage d'antémémoire La donnée de sortie de la mémoire RAM statique 61 pour l'indicateur de modification et la donnée de sortie de la mémoire RAM statique 62 pour l'indicateur de validité sont combinées dans une porte ET 67 pour fournir un signal de modifi- cation qui n'est excité que lorsque les indicateurs de modification sont à l'état de validité. On va maintenant revenir à la Figure 2, o on peut voir que le signal de modification provenant de la mé- moire d'indicateurs 42 et un signal de présence de cor- respondance provenant du comparateur d'indicateurs 43 traversent un registre 71 et sont reçus par le contrô- leur d'antémémoire 28 D'une manière similaire,le signal de modification et le signal de présence de correspon- dance pour la mémoire d'indicateurs 46 de l'antémémoire secondaire 25 sont reçus dans un registre 72 et trans- férés jusqu'au contrôleur d'antémémoire 28 Quand le contrôleur d'antémémoire 28 détermine qu'une absence de correspondance s'est produite pendant un accès à l'anté- mémoire principale et détermine que le bloc d'antémé- moire adressé comprend des données modifiées, il déclen- che une opération de réécriture en écrivant les données modifiées de l'antémémoire principale dans l'antémémoire secondaire En raison du fait qu'une absence de corres- pondance s'est produite, l'adresse associée aux données modifiées est différente de l'adresse présente sur le bus d'adresse 44 L'adresse des données modifiées est reçue dans un registre 73 Pendant le cycle suivant, le contrôleur d'antémémoire 28 fait fonctionner un mul- tiplexeur 74 pour placer l'adresse des données modifiées sur le bus d'adresse 44 de telle sorte que cette adresse est transférée jusqu'à l'antémémoire secondaire 25 pour valider la réécriture des données modifiées dans l'anté- mémoire secondaire D'une manière similaire, l'anté- mémoire secondaire 25 comprend un registre 75 et un multiplexeur 76 qui sont mis en fonctionnement par le contrôleur d'antémémoire 28 quand une absence de corres- pondance se produit dans l'antémémoire secondaire et que des données modifiées sont réécrites dans la mémoire centrale. On va se référer maintenant à la Figure 4 qui est une représentation schématique d'un circuit intégré 80 comprenant à la fois une partie 81 de l'antémémoire principale et une partie 82 de l'antémémoire secondaire. En particulier,la mémoire de données 41, la mémoire de données 45, le registre 52, le multiplexeur 53, le bus 54, le registre série/parallèle 55, le décodeur 56, et le bus 57 tels qu'indiqués sur la Figure 2 sont intégrés dans seize circuits intégrés comme l'indique la Figure 4. Le circuit intégré 80 est fabriqué de préférence en mettant en oeuvre un procédé à Bi-OMOS, et assemblé selon une configuration TAB (par transfert automatique sur bande) à 48 fils conducteurs Comme on le décrira encore ci-dessous, le circuit intégré peut être alors appelé une mémoire RAM hiérarchique synchrone à 512 Kx 2 Bi CMOS/ 8 K x 2 ECL. La partie 81 de l'antémémoire principale comprend une mémoire ECL à 8 K bits 83 et une mémoire ECL à 8 K bits 84 Ces mémoires ECL à 8 K bits 83, 84 sont orga- nisées en matrices de 256 x 32 bits, pour fournir 256 segments de bloc d'antémémoire adressables séparément de 32 bits chacun Ces 256 segments de bloc d'antémé- moire sont adressés par huit lignes d'adresse(acheminant les bits d'adresse 17 à 10) sur un bus d'adresse 85. Dans la mémoire 83, trente-deux bits de données peuvent être écrits dans le segment de bloc d'antémémoire adressé à partir d'un bus de données 86 incluant trente- deux lignes de données, et l'ensemble des trente-deux bits d'un segment de bloc d'antémémoire adressé peuvent être lus par un bus de sortie 87 incluant trente-deux lignes de données Un bit de données particulier est sélectionné par un multiplexeur 88 comportant trente- deux lignes d'entrée et une seule ligne de sortie 89. Ce bit sélectionné est verrouillé dans une bascule à retard 90 qui fait partie du registre 52 représenté sur la Figure 2 La bascule à retard élimine toute condition de course possible -avec les circuits de verrouillage d'entrée, fournit un temps de validité de sortie maximal, et achève un segment complètement traité par pipeline quand le circuit intégré 80 est incorporé dans un sys- tème de traitement de données D'une manière similaire, le bus d'adresse 85 continue jusqu'à la mémoire 84, qui comporte un bus d'entrée de 32 bits de données 91 et un bus de sortie de 32 bits de données 92 Un bit parti- culier sur le bus de sortie 92 est sélectionné par un multiplexeur 93 et il est reçu dans une bascule à retard 94 faisant partie du registre de sortie 52 de la Figure 2. La partie 82 de l'antémémoire secondaire comprend une mémoire 95 et une mémoire 96 Chacune de ces mé- moires est une mémoire statique CMOS à 512 Kbits,agencée comme une matrice de 16 K x 32 bits Un bloc particulier des 16 K blocs dans chaque matrice est adressé par une adresse à 14 bits (bits d'adresse 23 à 10) sur un bus d'adresse commun 97 La mémoire 95 comporte un bus d'entrée de 32 bits de données 98,et un bus de sortie de 32 bits de données 99 La mémoire 96 comporte éga- lement un bus d'entrée de 32 bits de données 100 et un bus de sortie de 32 bits de données 101. Pour transférer des données entre les mémoires 83 et 95, on câble le bus d'entrée de données 86 de la mémoire 83 en parallèle avec le bus d'entrée de données 98 de la mémoire 95, et ces bus d'entrée de données sont également câblés en parallèle à la sortie du registre à décalage série/parallèle de 32 bits 102 Le registre à décalage série/parallèle 102 fait partie du registre série/parallèle 55 représenté sur la Figure 2 Le re- gistre à décalage série/parallèle 102 comporte une ligne d'entrée en série 103 recevant un bit de données de la porte d'accès en mémoire centrale ( 27 sur la Figure 1), et comporte une ligne de sortie de données en série 104 pour transmettre un bit de données jusqu'à la porte d'accès en mémoire centrale ( 27 sur la Figure 1) Le registre à décalage série/parallèle 102 comprend en outre trois entrées parallèles séparées La première entrée (PO) est connectée au bus de sortie de données 99 de la mémoire 95 La deuxième entrée parallèle (P 1) comporte trente-deux lignes d'entrée mais les lignes d'entrée sont câblées ensemble à une seule ligne 105 pour recevoir un bit de données de la porte d'accès au processeur de données ( 26 sur la Figure 1) De plus, le registre à décalage série/parallèle 102 comprend une troisième entrée parallèle (P 2) qui est connectée au bus de sortie de données 87 de la mémoire 83. En considérant un moment la Figure 5, on voit qu'elle représente un schéma détaillé du registre à décalage série/parallèle 102 Le registre 102 comprend trente-deux bascules à retard 106, 107, 108 et trente- deux multiplexeurs à quatre entrées 109,110,111 La combinaison de chaque multiplexeur et de sa bascule à retard respective est connue en tant que "registre de multiplexage et d'analyse" qui est similaire au macro- circuit de verrouillage de type H 945 dans la biblio- thèque de cellules MCA 10000 (MCA 3) de Motorola, Inc. Les multiplexeurs 109, 110,111 ont leurs entrées de sélection câblées en parallèle à un bus de commande à deux lignes 112. En reconsidérant maintenant la Figure 4, on voit que la mémoire 84 et la mémoire 96 sont interconnectées d'une manière similaire par un deuxième registre à dé- calage série/parallèle 113 qui est similaire au registre à décalage série/parallèle 102. Afin de réduire le nombre de conducteurs d'entrée et de sortie du circuit intégré 80, le circuit intégré comprend un décodeur 114 qui a une fonction identique à celle du décodeur 56 représenté sur la Figure 2. Pour réduire le caractère critique des désaligne- ments de synchronisation, le circuit intégré 80 comprend des circuits de verrouillage d'entrée 115,116,117,118 et 119 pour l'ensemble des entrées de commande et d'adresse du circuit intégré Les circuits de verrouil- lage sont des dispositifs à état de passage /maintien qui laissent passer les signaux d'entrée pendant la première moitié de chaque cycle d'horloge et maintien- nent les états d'entrée pendant la seconde moitié de chaque cycle d'horloge A la fin du cycle d'horloge, les données en sorties des parties de mémoire principale 83, 84 sont transférées par horloge dans les bascules à retard 90,94, et les données sont transférées par hor- loge dans les bascules à retard des registres série/ parallèle 102 et 113 Contrairement aux circuits de verrouillage d'entrée qui maintiennent simplement des données pendant la seconde moitié du cycle d'horloge, les bascules à retard sont des dispositifs déclenchés par front d'impulsion qui sont déclenchés à l'apparition du front d'impulsion d'horloge à la fin du cycle d'horloge. En considérant maintenant la Figure 6, on voit qu'elle représente un schéma détaillé de la partie ( 95 sur la Figure 4) de la mémoire dans l'antémémoire secon- daire La partie de la mémoire comprend trente-deux mémoires RAM statiques CMOS à 16 K x 1 bits 121, 122, 123, 124 Un lecteur non familiarisé avec la réalisa- tion des mémoires à accès sélectif statiques CMOS peut se référer à la demande de brevet des E U A de Hamid Partovi, et al NO de Série 07/508 082, déposée le 11 Avril 1990 La Figure 6 représente également un cir- cuit logique de synchronisation indiqué dans son ensemble par la référence 125 qui garantit que les mémoires RAM statiques CMOS 121, 122, 123, 124 reçoivent des signaux de validation d'écriture uniquement après qu'un temps suffisant se soit écoulé pour les éléments individuels de mémoire inclus dans les mémoires à adresser Ce cir- cuit logique de synchronisation comprend une porte ET 126 et un circuit à retard de signaux 127 Le circuit à retard de signaux est, par exemple, une chaîne d'inver- seurs CMOS qui font correspondre le retard de propa- gation à travers les décodeurs d'adresse dans les mémoires CMOS. En considérant maintenant la Figure 7, on voit qu'elle représente un schéma détaillé du décodeur d'adresse 114 et de la mémoire ECL 83 de la Figure 4. Le décodeur 114 comprend un premier niveau de portes ET 131, 132, 133, 134 qui constituent un décodeur binaire à 5 bits Le décodeur d'adresse 114 comprend en outre un deuxième niveau de portes OU 135, 136, 137 et 138 pour valider les données à écrire simultanément dans l'ensemble des trente-deux emplacements d'un segment de bloc d'antémémoire adressé Le décodeur 114 comprend en outre un troisième niveau de portes ET pour une auto- synchronisation de l'opération d'écriture Ce troisième niveau de portes 139, 140, 141, 142 est validé pendant la seconde phase d'horloge non excitée La phase d'hor- loge non excitée doit avoir une durée suffisante pour permettre dans le pire des cas la synchronisation d'écriture dans les cellules de mémoire De plus, le circuit logi- que d'auto-synchronisation comprend une porte 143 et un circuit à retard 144 garantissant que l'impulsion de validation d'écriture n'est excitée qu'après un temps suffisant pour décoder les adresses et sélectionner les cellules de mémoire adressées dans la mémoire ECL 83. La mémoire ECL 83 comprend trente-deux matrices de cellules de mémoire à 256 bits 145, 146, 147, 148 Une personne non familiarisée avec la réalisation des ma- trices de mémoire ECL peut se référer au brevet des E.U A de Guglielmi et al NO 4 712 190 et à la demande de brevet des E U A de Grundmann et al NO de Série 07/306 445, déposée le 3 Février 1989. Une différence entre la partie de la mémoire se- condaire de la Figure 6 et la partie de la mémoire prin- cipale de la Figure 7 est qu'une écriture se produit toujours dans la mémoire secondaire de la Figure 6 pour l'ensemble des matrices de mémoire secondaire 121,122, 123, 124 Dans une autre réalisation, la partie de la mémoire secondaire de la Figure 6 pourrait être pourvue d'un décodeur d'adresse similaire au décodeur 114 de la Figure 7 pour valider l'écriture dans l'ensemble des matrices de mémoire secondaire, ou pour valider l'écri- ture dans des matrices sélectionnées parmi les matrices de mémoire secondaire. En considérant maintenant la Figure 8, on voit qu'elle représente un schéma d'un tampon d'entrée d'horloge permettant au circuit intégré de la Figure 4 d'être commandé par une paire de signaux d'horloge com- plémentaires, ou par un seul signal d'horloge Le tampon d'entrée comprend un amplificateur différentiel compor- tant une paire de transistors NPN 172, 173, une paire de résistances de charge 174,175, et un puits de courant 176 Le circuit est similaire à un inverseur ECL, les signaux d'entrée étant reçus sur des conducteurs d'entrée 177, 178. Pour valider la commande du tampon 171 par un seul signal d'horloge d'entrée sur chacun des conducteurs 177, 178, le tampon d'entrée 171 comprend en outre une source de tension de polarisation 179 ayant une valeur à la moyenne des niveaux haut et bas du signal d'horloge. La source de tension de polarisation 179 est connectée aux conducteurs 177 et 178 par l'intermédiaire de résis- tances respectives 180 et 181. En considérant maintenant la Figure 9, on voit qu'elle représente un organigramme d'une séquence de commande pour l'exécution par le contrôleur d'antémé- moire 28 de la Figure 2 de la prise en charge des demandes provenant de l'unité de traitement 22 de la Figure 1 Le contrôleur d'antémémoire 28 est une machine à états séquentiels qui détermine les signaux de sortie et un état suivant comme une fonction logique combina- toire de ses signaux d'entrée et de son état présent. Dans un but d'illustration, les états et la logique combinatoire sont indiqués sous forme d'organigramme de manière à décrire plus clairement le fonctionnement de l'antémémoire hiérarchique. Le contrôleur d'antémémoire 28 entre dans un état initial en réponse à un signal de remise à l'état ini- tial du système tel qu'indiqué dans l'étape 181 Dans cet état de remise à l'état initial, le contrôleur d'antémémoire excite le signal de blocage sur une boucle dans l'étape 182, et excite également le signal de vidage dans l'étape 183 Ensuite, dans l'étape 184, le contrôleur d'antémémoire attend le cycle suivant. Dans l'étape 185, le signal de blocage est à nouveau établi et, dans l'étape 186, le contrôleur d'antémémoire attend un nombre suffisant de cycles supplémentaires pour terminer le vidage Ces cycles supplémentaires sont nécessaires à cause de la réponse relativement lente de la mémoire d'indicateurs secondaire 46. Dans l'étape 187, pendant un nouveau cycle d'horloge, le signal de vidage est effacé et, dans l'étape 188, le signal d'écriture est effacé Dans l'étape 189, le signal de blocage est effacé et, dans l'étape 190, le signal de sélection est mis à un, de telle sorte que le registre série/parallèle ( 55 sur la Figure 2) recevra n'importe quel mot long du processeur de données Pendant ce cycle d'horloge,l'antémémoire hiérarchique répondra à sa pre- mière demande provenant du processeur de données (ou à la première demande suivant un vidage) Quand cette première demande est une "opération ineffective" ou un vidage, elle est simplement ignorée Quand la première demande est une demande de lecture ou d'écriture, la mémoire d'indicateurs principale est adressée pendant ce cycle, l'adressage de la mémoire d'indicateurs secon- daire commencera ce cycle, et les données d'écriture seront reçues dans le registre série/parallèle à la fin de ce cycle Dans l'étape 191, le contrôleur d'anté- mémoire attend le cycle suivant. Dans l'étape 192, le contrôleur d'antémémoire contrôle si la demande de traitement de données antérieure était une demande de lecture ou d'écriture Si c'est non, elle a dû etre une opéra- tion ineffective ou un vidage Dans ce cas, dans l'étape 193, le contrôleur d'antémémoire efface le signal d'écriture pour éliminer toute "bulle"dans le pipeline d'adressage entre les mémoires d'indicateurs et de données principales ( 42,41,respec- tivement, sur la Figure 2) L'élimination de cette bulle peut permettre l'achèvement d'exécution d'une demande de lecture en attente pendant le cycle en cours. Ensuite, dans l'étape 194, le contrôleur d'antémémoire contrôle si la présente demande provenant de l'unité de traitement de données est un vidage S'il en est ainsi, la séquence de commande pour le contrôleurd'antémémoire retourne à l'étape 183 pour l'exécution de l'opération de vidage telle que décrite ci-dessus Autrement, la séquence de commande retourne à l'étape 189. Si, dans l'étape 192, le contrôleur d'antémémoire trouve que la demande antérieure du processeur de don- nées était une demande de lecture ou d'écriture, alors, dans l'étape 195, le contrôleur d'antémémoire examine le signal de présence de correspondance principale (HITP sur la Figure 2) provenant du registre 71 de la Figure 2 pour déterminer s'il s'agissait d'une présence de correspondance dans la mémoire d'indicateurs princi- pale ( 42 sur la Figure 2) pendant le cycle précédent. S'il en est ainsi, il est alors nécessaire de bloquer sur une boucle le processeur de données et d'arranger l'antémémoire principale avant que la demande de lecture ou d'écriture antérieure puisse être terminée A cette fin, dans l'étape 196, le contrôleur d'antémémoire éta- blit le signal d'écriture et, dans l'étape 197, établit le signal de blocage sur une boucle de telle sorte que l'antémémoire hiérarchique mettra en oeuvre l'adresse mémorisée dans le registre de blocage sur une boucle ( 48 sur la Figure 2) au lieu de l'adresse de la présente demande qui est excitée sur le bus d'adresse ( 32 sur la Figure 2) à partir de l'unité CPU Ensuite, dans l'étape 198, le contrôleur d'antémémoire exécute un certain nombre de cycles d'arrangement d'antémémoire principale, comme on le décrira encore ci-dessous en référence à la Figure 10, afin de garantir que les données voulues se trouveront dans l'antémémoire principale Ensuite, dans l'étape 199, le signal de blocage sur une boucle est effacé, car les données voulues sont en train d'être reçues ou ont été reçues dans le registre de sortie ( 51 sur la Figure 2), et les données provenant du pro- cesseur de données peuvent être écrites dans l'antémé- moire principale pendant le cycle en cours Dans l'étape , le contrôleur d'antémémoire contrôle si la demande antérieure provenant du processeur de données est une demande de lecture ayant précédemment fait l'objet d'un accusé de réception pendant un regarnissage à partir de la mémoire centrale (dans l'étape 242 de la Figure 11); dans ce cas, la séquence de commande retourne à l'étape 194 pour contrôler si la présente demande est un vidage. Dans l'étape 201, le contrôleur d'antémémoire détermine si la demande antérieure était une demande de lecture ou d'écriture Quand la demande antérieure est une demande d'écriture, le signal d'écriture est établi dans l'étape 202 pour traiter le cas o les étapes 196 à 199 sont contournées quand une présence de correspon- dance est trouvée dans l'étape 195 Ensuite, dans l'étape 203, le signal WEPW est excité de telle sorte qu'un long mot de données provenant du processeur de données est écrit du registre série/parallèle 55 dans la mémoire centrale 41 de l'antémémoire principale. Quand, dans l'étape 201, le contrôleur d'antémé- moire trouve que la demande antérieure est une demande de lecture, le contrôleur d'antémémoire contrôle, dans l'étape 204, si le signal d'écriture a été établi C'est utile dans le cas o les étapes 196 à 200 sont contour- nées au cas o une présence de correspondance d'anté- mémoire principale est trouvée dans l'étape 195 Si le signal d'écriture n'est pas établi, les données lues voulues sont alors déjà dans le registre de sortie ( 52 sur la Figure 2) Autrement, les données lues appa- raîtront dans le registre de sortie ( 52 sur la Figure 2) pendant le cycle suivant, de telle sorte que, dans l'étape 206, les données lues correctes font l'objet d'un accusé de réception pendant le cycle suivant Les étapes 205 et 206 pourraient être exécutées, par exemple, à l'aide d'une bascule de type à retard comportant des entrées de positionnement et de remise à l'état initial asynchrones Dans ce cas, les données lues correctes font l'objet d'un accusé de réception pendant le présent cycle (étape 205) par l'utilisation de l'entrée de positionnement asynchrone Les données lues correctes font l'objet d'un accusé de réception pendant le cycle suivant (étape 206) par excitation d'un signal à un logique à l'entrée de retard de la bascule à retard pendant le présent cycle La donnée en sortie de cette bascule à retard peut être un bit du signal d'accusé de réception sur le bus d'accusé de réception ( 35 sur la Figure 2) du contrôleur d'anté- mémoire Dans n'importe quel cas, la séquence de com- mande pour le contrôleur d'antémémoire se poursuit dans l'étape 194. En considérant maintenant la Figure 10, on voit qu'elle représente un organigramme des cycles de com- mande pour arranger l'antémémoire principale quand le contrôleur d'antémémoire trouve, dans l'étape 195 de la Figure 9, qu'une absence de correspondance s'est pro- duite dans l'antémémoire principale En d'autres termes, l'organigramme de la Figure 10 représente les étapes dans le bloc 198 de la Figure 9 Dans la première étape 211 de la Figure 10, le contrôleur d'antémémoire contrôle si le bloc d'antémémoire ayant été adressé dans la mémoire d'indicateurs principale ( 42 sur la Figure 2) pendant le dernier cycle a été modifié Pour le faire, le contrôleur d'antémémoire examine le signal de modi- fication provenant du registre 71 de la Figure 2 Si ce signal de modification est excité, le contrôleur d'anté- mémoire doit alors exécuter d'abord une séquence de ré- écriture pour réécrire les données modifiées dans l'anté- mémoire secondaire ou dans la mémoire centrale, avant que le bloc d'antémémoire adressé soit regarni avec les données voulues. Pour exécuter la réécriture, dans l'étape 212, le signal SEL est mis à deux de manière à placer le contenu du bloc d'antémémoire modifié dans le registre série/parallèle ( 55 sur la Figure 2) Ensuite, dans l'étape 213, le signal INADR est mis à un pour sélec- tionner l'adresse du bloc d'antémémoire modifié pour adresser l'antémémoire secondaire Ensuite, dans l'étape 214, le contrôleur d'antémémoire attend un nombre pré- * déterminé de cycles suffisant pour avoir accès à l'anté- mémoire secondaire Ensuite, dans l'étape 215, le con- trôleur d'antémémoire contrôle le signal de présence de correspondance d'antémémoire secondaire (HITS) provenant du registre 72 sur la Figure 2 Comme l'indicateur de modification contenu dans l'antémémoire principale n'est établi que par regarnissage à partir de l'antémémoire secondaire, il doit y avoir une présence de correspon- dance quand un accès est fait à l'antémémoire secondaire. Par conséquent, si une présence de correspondance ne s'est pas produite dans l'antémémoire secondaire, dans l'étape 216, le contrôleur d'antémémoire détecte alors une erreur et renvoie un code d'erreur à l'unité de traitement de données Le code d'erreur, par exemple, fait en sorte que le processeur de données identifie un défaut de mémoire, termine l'exécution du programme en cours, et remette à l'état initial le contrôleur d'antémémoire. Quand une présence de correspondance d'antémémoire secondaire est trouvée dans l'étape 215, le contrôleur d'antémémoire peut alors écrire les données modifiées dans la mémoire de données ( 45 sur la Figure 2) de l'an- témémoire secondaire A cette fin, dans l'étape 217, le contrôleur d'antémémoire met à un le signal WESD. Ensuite, dans l'étape 218, le contrôleur d'antémémoire met à un le signal MODS afin d'écrire un bit modifié dans la mémoire d'indicateurs ( 46 sur la Figure 2) de l'antémémoire secondaire Ensuite, dans l'étape 219, le contrôleur d'antémémoire attend quelques cycles pour terminer l'opération d'écriture Enfin, dans l'étape 220, le contrôleur d'antémémoire efface les signaux WESD et MODS pour terminer l'opération d'écriture, et, dans l'étape 221, le contrôleur d'antémémoire efface le signal INADR pour adresser l'antémémoire secondaire avec l'adresse des données voulues pour regarnir l'anté- mémoire principale Cela termine la séquence de réécriture. La séquence de regarnissage commence dans l'étape 222 Le contrôleur d'antémémoire met le signal SEL à zéro pour transférer les données d'antémémoire secon- daire dans le registre série/parallèle ( 55 sur la Fi- gure 2) Ensuite, dans l'étape 223, le contrôleur d'an- témémoire attend un certain nombre de cycles pour avoir accès à l'antémémoire secondaire Ensuite, dans l'étape 224, le contrôleur d'antémémoire contrôle si une pré- sence de correspondance s'est produite dans l'antémé- moire secondaire Si c'est non, dans l'étape 225, le contrôleur d'antémémoire exécute alors un certain nom- bre de cycles d'arrangement d'antémémoire secondaire comme on le décrira encore en référence à la Figure 11, afin de mettre des données de mémoire centrale dans le registre série/parallèle et d'écrire le contenu du registre série/parallèle dans les deux mémoires de données des antéméomires principale et secondaire, et pour effacer les indicateurs de modification dans les mémoires d'indicateurs des deux antémémoires principale et secondaire Ces cycles d'arrangement de mémoire secondaire permettent d'arranger également la mémoire principale. Quand une présence de correspondance est trouvée dans l'antémémoire secondaire, dans l'étape 224, alors, dans l'étape 226, le contrôleur d'antémémoire met à un le signal SEL afin de regarnir le registre série/paral- lèle 55 avec n'importe quelles données d'écriture main- tenues dans le registre de blocage sur une boucle de données ( 49 sur la Figure 2) Ensuite, dans l'étape 227, le contrôleur d'antémémoire excite le signal WEPD pen- dant le présent cycle pour écrire le contenu du registre série/parallèle dans la mémoire de données principale ( 41 sur la Figure 2) et pour effacer l'indicateur de modification dans la mémoire d'indicateurs principale ( 42 sur la Figure 2) Après avoir attendu le cycle sui- vant dans l'étape 228, le contrôleur d'antémémoire efface le signal WEPD dans l'étape 229, et retourne à l'étape 199 sur la Figure 9. En considérant maintenant la Figure 11, on voit qu'elle représente un organigramme des étapes pour arranger la mémoire secondaire Ces étapes correspondent au bloc 225 sur la Figure 10. Dans la première étape 231 de la Figure 11, le con- trôleur d'antémémoire efface le signal OUTADR pour transmettre une adresse de lecture à la mémoire centrale. Ensuite, dans l'étape 232, le contrôleur d'antémémoire contrôle si l'indicateur de modification a été établi dans le bloc d'antémémoire secondaire Si c'est non, dans l'étape 233, le contrôleur d'antémémoire envoie alors une demande de regarnissage à la mémoire centrale. Autrement, dans l'étape 234, le contrôleur d'antémémoire envoie une demande de regarnissage et de réécriture à la mémoire centrale, et, dans l'étape 235, pendant le cycle suivant, le contrôleur d'antémémoire met à un le signal OUTADR pour transmettre l'adresse d'écriture à la mémoire centrale. Ensuite, dans l'étape 236, le contrôleur d'antémé- moire attend un accusé de réception de la mémoire cen- trale, indiquant que la mémoire centrale est alors en train de transmettre les données de regarnissage voulues. Dans l'étape 237, le contrôleur d'antémémoire répond en mettant à trois le signal SEL pour un décalage série dans le registre série/parallèle ( 55 sur la Figure 2) pour transférer les données entre la mémoire centrale et le registre série/parallèle Dans l'étape 238, le contrôleur d'antémémoire attend 32 cycles d'horloge afin de terminer le transfert de données Ensuite, dans l'étape 239, le contrôleur d'antémémoire établit les signaux de commande pour écrire les données et les indi- cateurs dans les deux antémémoires principale et secon- daire En particulier, le contrôleur d'antémémoire met à un le signal WESD, met à un le signal WEST, et met à un le signal WEPD Ensuite, dans l'étape 240, le con- trôleur d'antémémoire attend le cycle suivant Dans le cycle suivant, les données de regarnissage ont été écrites dans la mémoire principale 41, et, au cours du processus, deviennent transférées dans le registre de sortie 52 Par conséquent, dans l'étape 241, le contrô- leur d'antémémoire contrôle si la demande antérieure provenant du processeur de données est une demande de lecture S'il en est ainsi, dans l'étape 242, le con- trôleur d'antémémoire accuse alors réception au proces- seur de données que les données voulues sont disponibles. Puisque l'écriture dans la mémoire principale est terminée, dans l'étape 243, le contrôleur d'antémémoire efface le signal WEPD Cependant, le regarnissage de l'antémémoire secondaire prend un nombre supplémentaire de cycles Par conséquent, dans l'étape 244, le contrô- leur d'antémmoire attend un certain nombre de cycles. Ensuite, pendant le dernier cycle pour l'écriture de données dans l'antémémoire secondaire, dans l'étape 245, le contrôleur d'antémémoire met à un le signal SEL et, dans l'étape 246, attend ensuite le cycle suivant Cela garantit que le registre série/parallèle sera rétabli avec n'importe quelles données d'écriture provenant du processeur de données, de telle sorte qu'une demande d'écriture peut être exécutée pendant le cycle suivant. Enfin, dans l'étape 247, le contrôleur d'antémémoire efface le signal WESD et le signal WEST et retourne à l'étape 199 de la Figure 9. En considérant maintenant la Figure 12, on voit qu'elle représente des modifications aux mémoires d'in- dicateurs et aux circuits associés pour rendre l'anté- mémoire hiérarchique à groupes associatifs bidirec- tionnels Par groupes associatifs bi-directionnels on entend que chaque adresse est mise directement en corres- pondance avec deux blocs d'antémémoire C'est fait en prévoyant, pour chacune de l'antémémoire principale ( 24 sur la Figure 1) et de l'antémémoire secondaire ( 25 sur la Figure 1), deux mémoires d'indicateurs adres- sables séparément, au lieu d'une, en association avec la mémoire de données La Figure 12 représente, par exemple, des mémoires d'indicateurs 301 et 302 associées à une mémoire de données 303 La mémoire de données 303 est l'une des mémoires de données principale et secondaire formées en combinant les circuits intégrés 80 de la Figure 4 Cependant, chacune des mémoires d'indicateurs comporte la moitié du nombre de blocs adressables comme mémoire de données 303, et, par conséquent, la mémoire de données comporte une ligne d'entrée d'adresse supplé- mentaire 304 Cette ligne d'entrée d'adresse 304 reçoit un signal de sélection de bfloc-ou banc de mémoire (BANC) d'un contrôleur d'antémémoire 305. Pendant une opération d'accès en mémoire, le con- trôleur d'antémémoire doit sélectionner le banc de mé- moire contenant les données associées à une adresse spécifiée en examinant les signaux de présence de cor- respondance pour chacun des deux "bancs de mémoire" de l'antémémoire Les mémoires d'indicateurs sont physi- quement séparées dans les deux bancs de mémoire car il est souhaitable de les adresser en parallèle Ce n'est pas si important pour adresser la mémoire de données, car l'adressage de la mémoire de données est exécuté par pipeline avec l'adressage, de la mémoire d'indicateurs, et la mémoire de données peut être adressée après la sélection du banc de mémoire voulu. Le signal de présence de correspondance pour la mémoire d'indicateurs 301 est fourni par un comparateur d'indicateurs 306, et le signal de présence de corres- pondance pour la mémoire d'indicateurs 302 est fourni par un comparateur d'indicateurs 307 Les signaux de présence de correspondance sont reçus ensemble dans un registre 308 et transférés jusqu'au contrôleur d'anté- mémoire 305 Les mémoires d'indicateurs 301 et 302 com- portent également des registres respectifs 309 et 310 pour recevoir l'indicateur qui est associé à chaque bloc d'antémémoire Pendant une opération de réécriture, l'indicateur associé aux données modifiées à réécrire est sélectionné par un multiplexeur 311 et excité sur le bus d'adresse 312 conduisant à l'antémémoire secondaire ou à la mémoire centrale Quand l'antémémoire est re- garnie ou qu'elle reçoit des données modifiées, seule la mémoire d'indicateurs est mise à jour pour le banc sé- lectionné C'est réalisé en décodant les signaux de validation d'écriture (WM, WE) avec le signal de sélec- tion de banc (BANC) par la mise en oeuvre d'un inverseur 313 et de portes ET 314, 315, 316, 317. Quand une absence de correspondance se produit dans les deux blocs d'antémémoire qui sont directement mis en correspondance avec une adresse spécifiée, il est nécessaire de choisir un des blocs d'antémémoire pour un regarnissage A cette fin, une mémoire adressable 318 garde en mémoire le bloc d'antémémoire qui a été regarni en dernier. Les étapes supplémentaires de la séquence de con- trôleur d'antémémoire pour l'antémémoire à groupes asso- ciatifs bidirectionnels de la Figure 12 sont indiquées dans l'organigramme de la Figure 13 Dans une première étape 321, le contrôleur d'antémémoire contrôle s'il y a une présence de correspondance dans le banc sélec- tionné Si c'est non, dans l'étape 322, le contrôleur d'antémémoire contrôle alors s'il y avait une présence de correspondance dans l'autre banc Si c'est le cas, dans l'étape 323, le contrôleur d'antémémoire change le signal de sélection de banc, et met également à un l'indicateur d'écriture, de telle sorte qu'une lecture ou une écriture sera exécutée pendant le cycle en cours par la mise en oeuvre du banc pour lequel une présence de correspondance s'est produite S'il ne s'agissait pas d'une présence de correspondance dans chacune des mémoires d'indicateurs, un des blocs d'antémémoire doit alors être regarni Dans l'étape 324, le banc incluant le bloc d'antémémoire le moins récemment regarni est sélectionné, et des cycles de regarnissage d'antémémoire sont exécutés dans l'étape 325 Pour la mémoire prin- cipale, les cycles de regarnissage 325 peuvent inclure, par exemple, les étapes 196 à 200 de la Figure 9. Compte-tenu de ce qui précède, on a décrit une antémémoire à circuit intégré dans laquelle deux niveaux de mémoire à accès sélectif sont inclus dans un seul circuit intégré Les deux niveaux de mémoire sont inter- connectés par des bus de données comportant un grand nombre de lignes en parallèle, mais ces bus de données sont contenus entièrement dans le circuit intégré Cela donne des taux de présence de correspondance extrêmement élevés, un temps d'attente très petit, un temps d'accès très rapide, et un assemblage très dense qui permet de placer la plupart des circuits intégrés aussi près que possible d'un processeur de données Dans la réalisation préférée du circuit intégré, les deux niveaux de mémoire à accès sélectif sont interconnectés par un tampon série/parallèle qui peut fonctionner sélectivement comme un tampon d'écriture, un tampon de regarnissage, un tampon de réécriture, ou comme un registre à décalage série/parallèle pour l'échange des données de réécriture et de regarnissage vers et à partir d'une mémoire centrale. Par conséquent, le circuit intégré est un composant tout à fait fonctionnel pour réaliser les voies de données d'une antémémoire hiérarchique, et il est applicable à un large éventail d'organi- sations d'antémémoire et de systèmes de traitement de données. REVENDICATIONS 1 Antémémoire hiérarchique comprenant: une antémémoire principale rapide ( 24); une antémémoire secondaire plus lente ( 25) ayant une plus grande capacité de mémoire que ladite antémé- moire principale; une porte d'accès à un processeur de données ( 26); une porte d'accès à une mémoire centrale ( 27); des circuits à voies de données ( 53-57,31-35,36-40) interconnectant l'antémémoire principale ( 24) à la porte de processeur de données ( 26), l'antémémoire secondaire ( 25) à l'antémémoire principale ( 24), et la porte de mémoire centrale ( 27) à l'antémémoire secondaire ( 25); lesdits circuits à voies de données incluant un moyen de sélection de voies de données ( 55) pour sélectionner des voies de données de l'antémémoire secondaire à l'an- témémoire principale, et de la porte de mémoire centrale à l'antémémoire secondaire; et un moyen de commande ( 28) connecté auxdites anté- mémoires et audit moyen de sélection de voies de données pour transférer des données demandées de l'antémémoire secondaire à l'antémémoire principale quand les données demandées sont absentes dans l'antémémoire principale, et pour transférer les données demandées de la porte de mémoire centrale à l'antémémoire secondaire quand les données demandées sont absentes de l'antémémoire secon- daire; caractérisée en ce qu'elle comprend une pluralité de circuits intégrés ( 80), chacun desdits circuits intégrés incluant: une partie ( 81) de l'antémémoire principale ( 24), une partie ( 82) de l'antémémoire secondaire ( 25) ayant une plus grande capacité de mémoire que ladite partie de l'antémémoire principale, une partie ( 86,87,98,99) des circuits à voies de données interconnectant lesdites parties des antémémoires principale et secondaire, et une partie ( 102,113) du moyen de sélection de voies de données ( 55) pour sélectionner des voies de données de ladite partie de l'antémémoire principale à ladite partie de l'antémémoire secondaire, et de la porte de mémoire centrale à ladite partie de l'antémémoire secon- daire. 2 Antémémoire hiérarchique selon la revendication 1, caractérisée en ce que ledit moyen de sélection de voies de données ( 55) comprend un moyen ( 102,113) pour sélectionner des voies de données de la porte de proces- seur de données à ladite antémémoire principale, de ladite antémémoire principale à ladite antémémoire secondaire, et de ladite antémémoire secondaire à ladite porte de mémoire centrale; ledit moyen de commande ( 28) comprend en outre un moyen ( 71-76) pour exécuter une opération de réécriture,quand un emplacement de données dans l'antémémoire principale est nécessaire,en trans- férant des données modifiées dudit emplacement de données de l'antémémoire principale dans l'antémémoire secon- daire, et,quand un emplacement de données de l'antémé- moire secondaire est nécessaire,en transférant des données modifiées dudit emplacement de données de l'antémémoire secondaire jusqu'à ladite porte de mémoire centrale; et ladite partie ( 102,113) du moyen de sélection de don- nées ( 55) de chacun desdits circuits intégrés ( 80) comprend une partie ( 102,113) dudit moyen ( 55) pour sélectionner des voies de données de ladite porte de processeur de données à ladite partie de l'antémémoire principale, de ladite partie de l'antémémoire principale à ladite antémémoire secondaire, et de ladite partie de l'antémémoire secondaire à ladite porte de mémoire centrale. 3 Antémémoire hiérarchique selon la revendication 2, caractérisée en ce que ledit moyen de sélection de voies de données ( 55) comprend un registre à décalage série/parallèle comportant une première entrée de don- nées en parallèle(P 0)connectée à des lignes de sortie de données de ladite antémémoire secondaire, une deuxième entrée de données en parallèle(P 1)connectée à ladite porte de processeur de données, une troisième entrée de don- nées en parallèle(P 2 connectée à des lignes de sortie de données de ladite antémémoire principale, une sortie de données en paral Ièle(Q) connectée en parallèle à des lignes d'entrée de données de ladite antémémoire prin- cipale et à des lignes d'entrée de données de ladite antémémoire secondaire, une entrée de données en sér-ie SIN) connectée à ladite porte de mémoire centrale, et une sortie de données en série (- SOUT)connectée à ladite porte de mémoire centrale. 4 Antémémoire hiérarchique selon la revendication 2, caractérisée en ce que lesdits circuits à voies de données comprennent en outre un multiplexeur ( 53) com- portant des lignes de sortie de données connectées à ladite porte de processeur de données, un plus grand nombre de lignes d'entrée de données connectées aux lignes de sortie de données de ladite antémémoire prin- cipale, et des entrées de commande de sélection con- nectées à des lignes d'adresse. Antémémoire hiérarchique selon la revendication 4, comprenant en outre un décodeur ( 56) comportant des entrées connectées auxdites lignes d'adresse, et des sorties connectées à des entrées de validation d'écri- ture de ladite antémémoire principale. 6 Antémémoire hiérarchique selon la revendication 1, comprenant en outre un bus d'adresse ( 44) comportant des lignes d'adresse qui relient des entrées d'adresse de l'antémémoire principale en parallèle avec des entrées d'adresse respectives de l'antémémoire secondaire. 7 Antémémoire hiérarchique selon la revendication 1, caractérisée en ce que ladite antémémoire principale ( 24) comprend des éléments de mémoire ECL (logique à émetteurs couplés) ( 41,42), et ladite antémémoire secon- daire ( 25) comprend des éléments de mémoire MOS-FET (à transistors à effet de champ à métal-oxyde-semicon- ducteur) ( 45,46). 8 Antémémoire hiérarchique selon la revendication 7, caractérisée en ce que lesdits éléments de mémoire MOS-FET sont des éléments de mémoire CMOS (MOS à sy- métrie complémentaire) statique. 9 Circuit intégré, caractérisé en ce qu'il com- prend en combinaison: une mémoire à accès sélectif RAM rapide principale ( 81); une mémoire RAM plus lente secondaire ( 82) de plus grande capacité de mémoire que ladite mémoire principale; une première porte d'accès de données ( 26); une deuxième porte d'accès de données ( 27); et des circuits à voies de données (( 86,87,98,99, 103-105,102,113) interconnectant la mémoire principale à la première porte d'accès de données, la mémoire secondaire à la mémoire principale, et la deuxième porte d'accès de données à la mémoire secondaire; les- dits circuits à voies de données incluant un moyen de sélection de voies de données ( 102,113) pour sélection- ner des voies de données de la mémoire secondaire à la mémoire principale pour transférer des données de la mémoire secondaire à la mémoire principale, et de la deuxième porte d'accès de données à la mémoire secon- daire pour transférer des données de la deuxième porte d'accès de données à la mémoire secondaire. 10 Circuit intégré selon la revendication 9, caractérisé en ce que ledit moyen de sélection de voies de données comprend en outre un moyen ( 102,113) pour sélectionner des voies de données de ladite première porte d'accès de données à ladite mémoire principale pour transférer des données de ladite première porte d'accès de données à la mémoire principale, de ladite mémoire principale à ladite mémoire secondaire pour transférer des données de ladite mémoire principale à ladite mémoire secondaire, et de ladite mémoire secon- daire à ladite deuxième porte d'accès de données pour transférer des données de ladite mémoire secondaire à ladite deuxième porte d'accès de données. 11 Circuit intégré selon la revendication 10, caractérisé en ce que ledit moyen de sélection de voies de données comprend un registre à décalage série/paral- lèle ( 102,113) comportant une première entrée de données en parallèle(P 0) connectée à des lignes de sortie de données de ladite mémoire secondaire, une deuxième entrée de données en parallèle(P 1) connectée à ladite porte d'accès de processeur de données, une troisième entrée de données en parallèle(P 2) connectée à des lignes de sortie de données de ladite mémoire secondaire, une sortie de données en parallèle ( 8-6, 91)connectée en parallèle à des lignes d'entrée de données de ladite mémoire principale et à des lignes d'entrée de données de ladite mémoire secon- daire, une entrée de données en série(SIN)connectée à ladite deuxième porte d'accès de données, et une sortie de données en série(SOUT) connectée:àia 3 lite deuxième porte d'accès de données. 12 Circuit intégré selon la revendication 10, caractérisé en ce que lesdits circuits à voies de don- nées comprennent en outre un multiplexeur ( 88,93) com- portant des lignes de sortie de données connectées à la- dite première porte d'accès de données, un plus grand nombre de lignes d'entrée de données connectées à des lignes de sortie de données de ladite mémoire principale, et des entrées de commande de sélection connectées à des lignes d'adresse. 13 Circuit intégré selon la revendication 12, comprenant en outre un décodeur ( 114) comportant des entrées connectées auxdites lignes d'adresse, et des sorties connectées à des entrées de validation d'écriture de ladite mémoire principale,(WE). 14 Circuit intégré selon la revendication 9, ca ractérisé en ce qu'il comprend en outre un bus d'adresse ( 85,97) comportant des lignes d'adresse qui relient des entrées d'adresse de la mémoire principale en parallèle avec des entrées d'adresse respectives de la mémoire secondaire. Circuit intégré selon la revendication 9, caractérisé en ce qu'il comprend en outre des conduc- teurs d'entrée pour des signaux d'adresse et de com- mande; des circuits de verrouillage à passage/maintien ( 115-119) comportant des entrées d'horloge connectées en parallèle à une:ligne d'horloge(CLK), une entréede données (D) connectées auxdits conducteurs d'entrée, et des sorties de données(Q) connectées à des entrées d'adresse et de commande desdites mémoires principale et secon- daire ( 81,82) et dudit moyen de sélection ( 102,113); et en ce que lesdits circuits à voies de données compren- nent au moins une bascule déclenchée par front d'im- pulsion ( 90,94) comportant une entrée de-données-(D) con- nectée à une sortie de données de ladite mémoire prin- cipale, une sortie de données(Q) connectée à ladite pre- mière porte d'accès de données, et une entrée d'horloge (CLK)connectéeàiadite ligne d'horloge en parallèle avec les entrées d'horloge desdits circuits de verrouillage à passage/maintien, lesdits circuits de verrouillage maintenant ainsi lesdits signaux d'adresse et de com- mande pendant un état de signal d'horloge excité et la- dite bascule déclenchée par front d'impulsion changeant d'état pendant des transitions de signal d'horloge dudit état excité du signal d'horloge à un état non-excité du signal d'horloge. 16 Circuit intégré selon la revendication 9, ca- ractérisé en ce que lesdits circuits à voies de données comprennent un moyen pour transférer des données en synchronisme avec un signal d'horloge, ledit circuit intégré comprenant en outre un tampon d'entrée d'horloge ( 171) comportant une sortie fournissant ledit signal d'horloge et comportant également des entrées différen- tielles connectées à deux conducteurs d'entrée respec- tifs, et une source de tension de polarisation connectée à au moins un desdits conducteurs d'entrée, pour fournir ainsi des conducteurs d'entrée d'horloge pour accepter soit une paire de signaux d'horloge complémentaires, soit un seul signal d'horloge, pour synchroniser ledit moyen de transfert de données( 177,178). 17 Circuit intégré selon la revendication 9, ca- ractérisé en ce que ladite mémoire principale ( 81) com- prend des éléments de mémoire ECL ( 83,84), et ladite mémoire secondaire ( 82) comprend des éléments de mémoire CMOS ( 95,96). 18 Circuit intégré,caractérisé en ce qu'il com- prend en combinaison: une mémoire à accès sélectif RAM rapide principale ( 81), ladite mémoire principale comportant un ensemble d'entrées d'adresse(ADDR),un ensemble d'entrées de don- nées (-D), un ensemble de sorties de données (Q) et un ensemble d'entrées de validation d'écriture (WE); une mémoire RAM plus lente secondaire ( 82) de plus grande capacité de mémoire que ladite mémoire principale, ladite mémoire secondaire comportant un ensemble d'en- trées d'adresse (ADDR), un ensemble d'entrées de données (D)et un ensemble de sortie de données (Q); une première porte d'accès de données ( 26) incluant au moins une ligne d'entrée de données et au moins une ligne de sortie de données; une deuxième porte d'accès de données ( 27) incluant au moins une ligne d'entrée de données et au moins une ligne de sortie de données; des lignes d'adresse ( 97,85) connectant les entrées d'adresse de ladite mémoire principale en parallèle avec des entrées respectives desdites entrées d'adresse de ladite mémoire secondaire; un multiplexeur ( 88,93) comportant des entrées de commande de sélection, des entrées de données connectées aux sorties de données de ladite mémoire principale, et au moins une sortie de données connectée à ladite ligne de sortie de données de ladite première porte d'accès de données; un décodeur ( 114) comportant des entrées connectées en parallèle avec les entrées de commande de sélection dudit multiplexeur, et des sorties connectées à des entrées respectives desdites entrées d'écriture de la- dite mémoire principale; et un registre à décalage série/parallèle ( 102, 113) comportant une sortie de données en parallèle ( 86,91) connectée en parallèle aux entrées de données (D) de ladite mémoire principale et aux entrées de données de ladite mémoire secondaire, une première entrée de don- nées en parallèle ( P 0) connectée aux sorties de données de ladite mémoire secondaire, une deuxième entrée de données en parallèle (Pl) connectée à ladite ligne d'entrée de données de ladite première porte d'accès de données, une troisième entrée de données en parallèle (P 2) connectée à la sortie de données de la- dite mémoire principale, une entrée de données en série (SIN) connectée à la ligne d'entrée de données de ladite deuxième porte d'accès de données, et une sortie de données en série (SOUT) connectée à la ligne de sortie de données de ladite deuxième porte d'accès de données. 19 Circuit intégré selon la revendication 18, caractérisé en ce qu'il comprend en outre des conduc- teurs d'entrée pour des signaux d'adresse et de commande, des circuits de verrouillage à passage/maintien( 115-119) comportant des entrées d'horloge connectées en paral- lèle à une ligne d'horloge(CLK), des entrées de données (D)connectées à des conducteurs respectifs desdits conducteurs d'entrée, et des sorties de données (Q) connectées à des entrées d'adresse et de commande des- dites mémoires principale et secondaire et dudit moyen de sélection; au moins une bascule déclenchée par front d'impulsion ( 90,94) comportant une entrée de données (D) connectée à la sortie de données dudit multiplexeur, une sortie de données (Q) connectée à ladite première porte d'accès de données, et une entrée d'horloge (CLK) connectée à ladite ligne d'horloge en parallèle avec les entrées d'horloge desdits circuits de verrouillage à passage/maintien; et un tampon d'entrée d'horloge ( 171) comportant une sortie connectée à ladite ligne d'horloge et comportant également des entrées différen- tielles connectées à deux conducteurs d'entrée respec- tifs, et une source de tension de polarisation connectée à au moins un desdits conducteurs d'entrée. Circuit intégré selon la revendication 18, caractérisé en ce que ladite mémoire principale ( 81) est constituée essentiellement d'éléments logiques ECL ( 83,84) et la dite mémoire secondaire ( 82) est consti- tuée essentiellement d'éléments logiques CMOS ( 95,96).