FR2667706A1 - Antememoire hierarchique a circuits integres. - Google Patents

Antememoire hierarchique a circuits integres. Download PDF

Info

Publication number
FR2667706A1
FR2667706A1 FR9112239A FR9112239A FR2667706A1 FR 2667706 A1 FR2667706 A1 FR 2667706A1 FR 9112239 A FR9112239 A FR 9112239A FR 9112239 A FR9112239 A FR 9112239A FR 2667706 A1 FR2667706 A1 FR 2667706A1
Authority
FR
France
Prior art keywords
data
memory
cache
main
parallel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9112239A
Other languages
English (en)
Other versions
FR2667706B1 (fr
Inventor
Ricky C Hetherington
Francis X Mckeen
Joseph D Marci
Fossum Tryggve
Joel S Emer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of FR2667706A1 publication Critical patent/FR2667706A1/fr
Application granted granted Critical
Publication of FR2667706B1 publication Critical patent/FR2667706B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

L'antémémoire hiérarchique selon l'invention comprend une antémémoire principale rapide (81) et une antémémoire secondaire plus lente (82) de plus grande capacité de mémoire que l'antémémoire principale et un registre à décalage série/parallèle (102, 113). Les lignes d'entrée d'adresse (ADDR) des deux antémémoires sont connectées en parallèle entre elles et leurs lignes d'entrée de données (D) sont connectées en parallèle à des lignes de sortie de données du registre série/parallèle dont une entrée en parallèle (P0 ) est connectée aux lignes de sortie de données de l'antémémoire secondaire, une entrée de données en série (SIN) est connectée à une porte d'accès à une mémoire centrale. Ce registre comprend en outre deux autres entrées en parallèle (P1 , P2 ) pour la réécriture de données par un processeur de données.

Description

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.

Claims (15)

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).
FR9112239A 1990-10-05 1991-10-04 Antememoire hierarchique a circuits integres. Expired - Fee Related FR2667706B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US59376390A 1990-10-05 1990-10-05

Publications (2)

Publication Number Publication Date
FR2667706A1 true FR2667706A1 (fr) 1992-04-10
FR2667706B1 FR2667706B1 (fr) 1996-12-06

Family

ID=24376065

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9112239A Expired - Fee Related FR2667706B1 (fr) 1990-10-05 1991-10-04 Antememoire hierarchique a circuits integres.

Country Status (6)

Country Link
US (1) US5285323A (fr)
JP (1) JP2505661B2 (fr)
CA (1) CA2043493C (fr)
DE (1) DE4132833C2 (fr)
FR (1) FR2667706B1 (fr)
GB (1) GB2248952B (fr)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307356A (en) * 1990-04-16 1994-04-26 International Business Machines Corporation Interlocked on-chip ECC system
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5469555A (en) * 1991-12-19 1995-11-21 Opti, Inc. Adaptive write-back method and apparatus wherein the cache system operates in a combination of write-back and write-through modes for a cache-based microprocessor system
US5813030A (en) * 1991-12-31 1998-09-22 Compaq Computer Corp. Cache memory system with simultaneous access of cache and main memories
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
DE4306077A1 (fr) * 1992-02-27 1993-09-02 Hewlett Packard Co
JPH05324468A (ja) * 1992-05-21 1993-12-07 Fujitsu Ltd 階層化キャッシュメモリ
US5809531A (en) * 1992-09-21 1998-09-15 Intel Corporation Computer system for executing programs using an internal cache without accessing external RAM
US6046753A (en) * 1992-09-25 2000-04-04 Quantel Limited Electronic image processing system for modifying initial image data
US5568442A (en) * 1993-05-17 1996-10-22 Silicon Graphics, Inc. RISC processor having improved instruction fetching capability and utilizing address bit predecoding for a segmented cache memory
US5870574A (en) * 1993-04-12 1999-02-09 Silicon Graphics, Inc. System and method for fetching multiple groups of instructions from an instruction cache in a RISC processor system for execution during separate cycles
US5689679A (en) * 1993-04-28 1997-11-18 Digital Equipment Corporation Memory system and method for selective multi-level caching using a cache level code
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
JPH07129456A (ja) * 1993-10-28 1995-05-19 Toshiba Corp コンピュータシステム
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
EP0676690B1 (fr) * 1994-03-09 2003-05-14 Sun Microsystems, Inc. Ecriture d'antémémoire retardée d'instructions de stockage
US5604889A (en) * 1994-06-15 1997-02-18 Texas Instruments Incorporated Memory management system for checkpointed logic simulator with increased locality of data
US5577227A (en) * 1994-08-04 1996-11-19 Finnell; James S. Method for decreasing penalty resulting from a cache miss in multi-level cache system
US5813031A (en) * 1994-09-21 1998-09-22 Industrial Technology Research Institute Caching tag for a large scale cache computer memory system
GB2293668B (en) * 1994-09-30 1999-09-29 Advanced Risc Mach Ltd Accessing data memories
US5694614A (en) * 1995-02-15 1997-12-02 Ast Research, Inc. Minimum latency bus interface circuit with reduced I/O pin count through multi-mode operation
US5617347A (en) * 1995-03-17 1997-04-01 Fujitsu Limited Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure
DE69635066T2 (de) * 1995-06-06 2006-07-20 Hewlett-Packard Development Co., L.P., Houston Unterbrechungsschema zum Aktualisieren eines Lokalspeichers
JPH0916470A (ja) 1995-07-03 1997-01-17 Mitsubishi Electric Corp 半導体記憶装置
US5835941A (en) * 1995-11-17 1998-11-10 Micron Technology Inc. Internally cached static random access memory architecture
US5898828A (en) * 1995-12-29 1999-04-27 Emc Corporation Reduction of power used by transceivers in a data transmission loop
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US6021467A (en) * 1996-09-12 2000-02-01 International Business Machines Corporation Apparatus and method for processing multiple cache misses to a single cache line
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
GB2339369B (en) * 1998-07-09 2003-06-18 Advanced Risc Mach Ltd Apparatus and method for controlling timing of transfer requests within a data processing apparatus
US6519682B2 (en) * 1998-12-04 2003-02-11 Stmicroelectronics, Inc. Pipelined non-blocking level two cache system with inherent transaction collision-avoidance
US6415362B1 (en) * 1999-04-29 2002-07-02 International Business Machines Corporation Method and system for write-through stores of varying sizes
KR100400957B1 (ko) * 1999-07-29 2003-10-10 마쯔시다덴기산교 가부시키가이샤 집적회로 내부신호 감시장치
GB2401967B (en) * 1999-12-30 2005-01-05 Intel Corp Dual cache system
US6591332B1 (en) * 2000-04-28 2003-07-08 Hewlett-Packard Development Company, L.P. Apparatus and method for tracking flushes of cache entries in a data processing system
US6765813B2 (en) 2000-08-14 2004-07-20 Matrix Semiconductor, Inc. Integrated systems using vertically-stacked three-dimensional memory cells
US6711043B2 (en) 2000-08-14 2004-03-23 Matrix Semiconductor, Inc. Three-dimensional memory cache system
US6768661B2 (en) * 2002-06-27 2004-07-27 Matrix Semiconductor, Inc. Multiple-mode memory and method for forming same
WO2004079597A1 (fr) * 2003-03-07 2004-09-16 Nokia Corporation Methode et dispositif pour un comptage de frequence
US8687010B1 (en) 2004-05-14 2014-04-01 Nvidia Corporation Arbitrary size texture palettes for use in graphics systems
US7868902B1 (en) * 2004-05-14 2011-01-11 Nvidia Corporation System and method for pixel data row forwarding in a 3-D graphics pipeline
US8432394B1 (en) 2004-05-14 2013-04-30 Nvidia Corporation Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline
US8711155B2 (en) * 2004-05-14 2014-04-29 Nvidia Corporation Early kill removal graphics processing system and method
US8743142B1 (en) 2004-05-14 2014-06-03 Nvidia Corporation Unified data fetch graphics processing system and method
US8860722B2 (en) * 2004-05-14 2014-10-14 Nvidia Corporation Early Z scoreboard tracking system and method
US8411105B1 (en) 2004-05-14 2013-04-02 Nvidia Corporation Method and system for computing pixel parameters
US7724263B2 (en) * 2004-05-14 2010-05-25 Nvidia Corporation System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
US8736620B2 (en) * 2004-05-14 2014-05-27 Nvidia Corporation Kill bit graphics processing system and method
US20060007234A1 (en) * 2004-05-14 2006-01-12 Hutchins Edward A Coincident graphics pixel scoreboard tracking system and method
US8416242B1 (en) 2004-05-14 2013-04-09 Nvidia Corporation Method and system for interpolating level-of-detail in graphics processors
US8736628B1 (en) 2004-05-14 2014-05-27 Nvidia Corporation Single thread graphics processing system and method
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
JP4451717B2 (ja) * 2004-05-31 2010-04-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
ATE547766T1 (de) * 2004-10-15 2012-03-15 Nxp Bv Verfahren zum betrieb eines rfid-systems
KR100798008B1 (ko) * 2005-09-07 2008-01-24 노키아 코포레이션 빈도수 카운팅을 위한 방법 및 장치
US7539819B1 (en) * 2005-10-31 2009-05-26 Sun Microsystems, Inc. Cache operations with hierarchy control
US7917685B2 (en) * 2006-05-04 2011-03-29 Micron Technology, Inc. Method for reading a multilevel cell in a non-volatile memory device
US8537168B1 (en) 2006-11-02 2013-09-17 Nvidia Corporation Method and system for deferred coverage mask generation in a raster stage
US8441497B1 (en) 2007-08-07 2013-05-14 Nvidia Corporation Interpolation of vertex attributes in a graphics processor
US9183607B1 (en) 2007-08-15 2015-11-10 Nvidia Corporation Scoreboard cache coherence in a graphics pipeline
US9256514B2 (en) 2009-02-19 2016-02-09 Nvidia Corporation Debugging and perfomance analysis of applications
US8885422B2 (en) 2009-06-12 2014-11-11 Hewlett-Packard Development Company, L.P. Hierarchical on-chip memory
US8645589B2 (en) 2009-08-03 2014-02-04 National Instruments Corporation Methods for data acquisition systems in real time applications
GB2484458A (en) * 2010-10-04 2012-04-18 Thorn Security Commissioning detector units of an alarm system by means of a remote infrared based communication tool
US20130083047A1 (en) * 2011-09-29 2013-04-04 Prashant Shamarao System and method for buffering a video signal
CN103186608B (zh) * 2011-12-30 2017-08-08 北京谊安医疗系统股份有限公司 一种队列序列化式处理数据的方法和装置
US9411595B2 (en) 2012-05-31 2016-08-09 Nvidia Corporation Multi-threaded transactional memory coherence
US9824009B2 (en) 2012-12-21 2017-11-21 Nvidia Corporation Information coherency maintenance systems and methods
US10102142B2 (en) 2012-12-26 2018-10-16 Nvidia Corporation Virtual address based memory reordering
US9477575B2 (en) 2013-06-12 2016-10-25 Nvidia Corporation Method and system for implementing a multi-threaded API stream replay
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0166192A2 (fr) * 1984-06-29 1986-01-02 International Business Machines Corporation Dispositif de mémoire-tampon à grande vitesse pour transfert rapide de données
US4594690A (en) * 1983-07-27 1986-06-10 International Business Machines Corporation Digital storage apparatus including sections exhibiting different access speeds

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4712190A (en) * 1985-01-25 1987-12-08 Digital Equipment Corporation Self-timed random access memory chip
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
US4961153A (en) * 1987-08-18 1990-10-02 Hewlett Packard Company Graphics frame buffer with strip Z buffering and programmable Z buffer location
US5157776A (en) * 1987-12-30 1992-10-20 Zenith Data Systems Corporation High speed memory for microcomputer systems
GB8805908D0 (en) * 1988-02-12 1988-04-13 Int Computers Ltd Data memory system
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JPH01217530A (ja) * 1988-02-26 1989-08-31 Hitachi Ltd キヤツシユメモリ
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US5058051A (en) * 1988-07-29 1991-10-15 Texas Medical Instruments, Inc. Address register processor system
US4992961A (en) * 1988-12-01 1991-02-12 Hewlett-Packard Company Method and apparatus for increasing image generation speed on raster displays
US5107462A (en) * 1989-02-03 1992-04-21 Digital Equipment Corporation Self timed register file having bit storage cells with emitter-coupled output selectors for common bits sharing a common pull-up resistor and a common current sink
DE4005319C2 (de) * 1989-02-22 1994-06-16 Siemens Nixdorf Inf Syst Verfahren und Anordnung zur Aufrechterhaltung der Datenkonsistenz in einem Multiprozessorsystem mit privaten Cachespeichern
US5151997A (en) * 1989-08-10 1992-09-29 Apple Computer, Inc. Computer with adaptable video circuitry

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594690A (en) * 1983-07-27 1986-06-10 International Business Machines Corporation Digital storage apparatus including sections exhibiting different access speeds
EP0166192A2 (fr) * 1984-06-29 1986-01-02 International Business Machines Corporation Dispositif de mémoire-tampon à grande vitesse pour transfert rapide de données

Also Published As

Publication number Publication date
DE4132833A1 (de) 1992-04-09
GB2248952A (en) 1992-04-22
GB2248952B (en) 1994-08-10
GB9113583D0 (en) 1991-08-14
CA2043493C (fr) 1997-04-01
JPH04230551A (ja) 1992-08-19
JP2505661B2 (ja) 1996-06-12
FR2667706B1 (fr) 1996-12-06
CA2043493A1 (fr) 1992-04-06
DE4132833C2 (de) 1997-12-18
US5285323A (en) 1994-02-08

Similar Documents

Publication Publication Date Title
FR2667706A1 (fr) Antememoire hierarchique a circuits integres.
EP0151653B1 (fr) Dispositif de sérialisation/désérialisation de configuration de bits de longueur variable
US5872802A (en) Parity generation and check circuit and method in read data path
FR2472784A1 (fr) Matrice de traitement de donnees en parallele, notamment pour l'analyse d'images prises par un satellite
FR2487561A1 (fr) Systeme de memoire dynamique
FR2474721A1 (fr) Dispositif de memoire d'antememoire
EP0063071B1 (fr) Procédé et dispositif de transmission de données numériques
FR2633749A1 (fr) Systeme microprocesseur avec une memoire morte programmable effacable electriquement ayant une fonction de prevention des erreurs d'ecriture et circuit de memoire
EP0063972A1 (fr) Procédé et dispositif d'allocation d'une ressource dans un système comportant des unités de traitement de données autonomes
FR2533738A1 (fr) Dispositif de memoire a semiconducteurs
FR2513410A1 (fr) Microprocesseur et procede pour imbriquer les acces en memoire de ce microprocesseur
FR2480458A1 (fr) Dispositif pour transferer des informations entre des unites d'un systeme de traitement de donnees
FR2487548A1 (fr) Systeme de memoire avec dispositif de diagnostic
EP3259674B1 (fr) Circuit dram muni d'un processeur integre
FR2528195A1 (fr) Systeme de communication entre ordinateurs
FR2480459A1 (fr) Systeme de traitement de donnees a un dispositif d'appariement d'adresses de memoire de controle
FR2629248A1 (fr) Procede de test de memoire a programmation unique et memoire correspondante
FR2653915A1 (fr) Dispositif de controle de demandes d'acces a des blocs dans un systeme de traitement de donnees numeriques.
US4326290A (en) Means and methods for monitoring the storage states of a memory and other storage devices in a digital data processor
US6112268A (en) System for indicating status of a buffer based on a write address of the buffer and generating an abort signal before buffer overflows
FR2473753A1 (fr) Dispositif pour fournir des groupes de donnees corriges a un circuit de destination
FR2849228A1 (fr) Dispositif de transfert de donnees entre deux sous-systemes asynchrones disposant d'une memoire tampon
FR2595474A1 (fr) Dispositif de controle et de verification du fonctionnement de blocs internes a un circuit integre
MX2007002013A (es) Aparato de archivo de registro y metodo que incorpora bloqueo de lectura-despues-de-escritura utilizando celdas de deteccion.
EP1772808B1 (fr) Dispositif et procédé de lecture d'informations dans un ensemble de composants électroniques reliés à un bus de communication, appliqué à la lecture d'une matrice de pixels

Legal Events

Date Code Title Description
ST Notification of lapse