[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR2778254A1 - Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache - Google Patents

Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache Download PDF

Info

Publication number
FR2778254A1
FR2778254A1 FR9805420A FR9805420A FR2778254A1 FR 2778254 A1 FR2778254 A1 FR 2778254A1 FR 9805420 A FR9805420 A FR 9805420A FR 9805420 A FR9805420 A FR 9805420A FR 2778254 A1 FR2778254 A1 FR 2778254A1
Authority
FR
France
Prior art keywords
address
value
cache memory
lines
write
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
FR9805420A
Other languages
English (en)
Other versions
FR2778254B1 (fr
Inventor
Gerard Chauvel
Serge Laserre
Inverno Dominique Benoit Jac D
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.)
Texas Instruments France SAS
Original Assignee
Texas Instruments France SAS
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 Texas Instruments France SAS filed Critical Texas Instruments France SAS
Priority to FR9805420A priority Critical patent/FR2778254B1/fr
Priority to US09/187,118 priority patent/US6321299B1/en
Priority to EP19980309958 priority patent/EP0929039A3/fr
Publication of FR2778254A1 publication Critical patent/FR2778254A1/fr
Application granted granted Critical
Publication of FR2778254B1 publication Critical patent/FR2778254B1/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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Un procédé pour la mise en oeuvre d'un procédé (50) d'exploitation d'un système de calcul comprenant une mémoire cache, consiste en une écriture de données (en 64) dans la mémoire cache en un emplacement correspondant à chacune des adresses d'écriture, le nettoyage (en 70) d'un nombre sélectionné (en 68) de lignes dans la mémoire cache, avec évaluation d'un indicateur d'état altéré d'une ligne, correspondant à des données de la ligne et copiage de données de cette ligne dans une autre mémoire si l'indicateur d'état altéré indique que des données de la ligne sont altérées.Application notamment à des systèmes de calcul contenant une mémoire cache.

Description

La présente invention a trait à des environne-
ments de calcul mettant en oeuvre une ou plusieurs mémoires caches.
Des circuits de mémoires caches sont des compo-
sants importants, qui sont fréquemment utilisés dans des
systèmes de calcul actuels (par exemple des microproces-
seurs et analogues) de manière à accroître la performance du système en réduisant le temps potentiel nécessaire pour accéder à l'information. De façon typique, un circuit de mémoire cache comprend différents composants, comme par exemple une mémoire d'étiquettes, qui est habituellement une mémoire à accès direct (dite "RAM"). La mémoire RAM d'étiquettes mémorise ce qu'on appelle une information d'étiquette, qui correspond aux données mises en mémoire cache, qui sont habituellement mémorisées dans une mémoire RAM séparée de données de la mémoire cache. L'information d'étiquette peut comprendre différentes caractéristiques correspondant aux données mises en mémoire cache, telles que l'adresse réelle, à laquelle les données mises en mémoire cache peuvent être trouvées dans un certain autre dispositif de mémoire (par exemple une structure de mémoire externe). Un autre composant d'un circuit de mémoire cache est le circuit de détection de coups au but ou succès,
associé à la mémoire RAM d'étiquettes. Le circuit de détec-
tion de succès (N circuits de ce type étant prévus dans un circuit de mémoire cache associatif par ensembles à N voies) compare une adresse arrivante à l'adresse actuelle
mémorisée en tant que partie de l'information d'étiquette.
Si la comparaison a un résultat positif, on dit qu'il existe un "succès" dans le circuit de la mémoire cache, c'est-à-dire que les données recherchées dans l'adresse arrivante peuvent être récupérées directement à partir de la mémoire RAM de données de la mémoire cache; d'autre part, si la comparaison n'aboutit pas, on dit qu'il s'agit
d'un "insuccès" dans le circuit de la mémoire cache, c'est-
à-dire que les données recherchées à l'adresse arrivante ne sont pas présentes, ou pour une autre raison ne sont pas fiables, dans la mémoire ROM de données de la mémoire cache. Dans le cas d'un insuccès dans la mémoire cache, alors les données doivent être récupérées à partir d'une mémoire située à un niveau plus élevé dans la hiérarchie de
mémoire, comme par exemple la mémoire principale (c'est-à-
dire souvent extérieure) ou dans une autre mémoire cache située à un niveau plus élevé dans le système. Ainsi, l'accès à des données à la suite d'un insuccès dans la
mémoire cache requiert un intervalle de temps plus impor-
tant que lorsqu'un succès dans la mémoire cache se produit
et, en réalité, si l'accès provient de la mémoire exté-
rieure, la durée nécessaire peut être considérable par rap-
port au temps d'accès dans le cas d'un succès dans la
mémoire cache.
Bien que ce qui a été indiqué précédemment montre que les mémoires caches sont en général considérées comme avantageuses, lorsque des dispositifs de calcul et des environnements de calcul deviennent plus complexes, il est
nécessaire d'examiner d'une manière plus détaillée des opé-
rations dans la mémoire cache pour déterminer si l'on peut obtenir un rendement additionnel. A cet égard, les auteurs à la base de la présente invention ont constaté que l'on peut supprimer un certain nombre de cycles d'horloge dans le contexte de certaines opérations de circuits de la mémoire cache. La réduction de cycles d'horloge étendus associés à des opérations de la mémoire cache accroît la vitesse du système. En outre, cette réduction de cycles
d'horloge réduit également la consommation totale de puis-
sance du système, qui est un point critique dans de nom-
breux systèmes contemporains comme par exemple dans des
systèmes de calcul portables.
Dans une forme de réalisation préférée, l'inven-
tion porte sur un procédé d'exploitation d'un système de calcul. Le système de calcul comprend une mémoire cache, et
cette dernière possède un nombre prédéterminé de lignes.
Tout d'abord le procédé pour une pluralité d'adresses d'écriture écrit des données dans la mémoire cache en un emplacement correspondant à chacune de la pluralité
d'adresses d'écriture. En second lieu, le processeur net-
toie un nombre sélectionné de lignes dans la mémoire cache.
Pour chaque ligne du nombre sélectionné de lignes, le pas
de nettoyage évalue un indicateur d'état altéré correspon-
dant à des données situées dans la ligne et copie les don-
nées depuis cette ligne dans une autre mémoire si l'indi-
cateur d'état altéré indique que les données dans la ligne sont altérées. Enfin, le nombre sélectionné de lignes, qui sont nettoyées, est inférieur au nombre prédéterminé de
lignes de la mémoire cache.
De façon plus précise, selon un premier aspect l'invention concerne un procédé pour faire fonctionner un système de calcul comprenant une mémoire cache possédant un nombre prédéterminé de lignes de mémoire cache, caractérisé en ce qu'il comprend les étapes consistant à: tout d'abord, pour une pluralité d'adresses d'écriture, écrire des données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture; et en second lieu nettoyer un nombre sélectionné de lignes dans la mémoire cache; l'étape de nettoyage pour chaque ligne du nombre sélectionné de lignes comprenant:
l'évaluation d'un indicateur d'état altéré cor-
respondant à des données dans la ligne; et le copiage de données depuis cette ligne dans une autre mémoire si l'indicateur d'état altéré indique que les données contenues dans la ligne sont altérées; et le nombre sélectionné de lignes étant inférieur
au nombre prédéterminé de lignes de la mémoire cache.
Selon une autre caractéristique de l'invention, le procédé comprend en outre les étapes consistant à: mémoriser une valeur dans l'indicateur d'adresse; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture; et le nombre sélectionné de lignes étant sensible à
la valeur finale.
Selon une autre caractéristique de l'invention, l'étape de nettoyage d'un certain nombre de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes
dans la mémoire cache à partir de la première adresse jus-
qu'à et y compris la valeur finale.
Selon une autre caractéristique de l'invention, la première adresse se situe à l'adresse zéro de la mémoire cache. Selon une autre caractéristique de l'invention, le système de calcul comprend un système d'exploitation, le système d'exploitation maintenant une adresse maximale de ligne de la mémoire cache correspondant à un contexte d'opération pour le système de calcul, et il est en outre prévu l'étape consistant à régler le nombre sélectionné en réponse à l'adresse maximale de la ligne de la mémoire cache. Selon une autre caractéristique de l'invention, l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache s'effectue en réponse à une commutation de
contexte exécutée par le système de calcul.
Selon une autre caractéristique de l'invention, le procédé comprend en outre les étapes consistant à: mémoriser une valeur dans un indicateur d'adresse; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture; et le nombre sélectionné de lignes est fonction de
la valeur finale.
Selon une autre caractéristique de l'invention, le procédé comporte en outre les étapes consistant à: mémoriser une valeur dans un premier indicateur d'adresse; mémoriser une valeur dans un second indicateur d'adresse; en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une première
valeur finale lors de l'achèvement du traitement de la plu-
ralité d'adresses d'écriture; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le deuxième indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le deuxième indicateur d'adresse, la valeur dans le deuxième indicateur d'adresse représentant une seconde
valeur finale lors de l'achèvement du traitement de la plu-
ralité d'adresses d'écriture; et le nombre sélectionné de lignes est fonction des
première et seconde valeurs finales.
Selon une autre caractéristique de l'invention, l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes de la mémoire cache depuis la première valeur finale jusqu'à et y compris la seconde valeur finale. Selon une autre caractéristique de l'invention, le système de calcul comprend un système d'exploitation, le système d'exploitation maintient une adresse maximale de ligne de la mémoire cache correspondant à une adresse maximale au-delà de laquelle aucune écriture n'est
effectuée dans la mémoire cache pour un contexte de fonc-
tionnement pour le système de calcul, et il est en outre prévu les étapes consistant à: mémoriser une valeur dans un premier indicateur d'adresse, en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes dans la mémoire cache depuis la valeur finale jusqu'à et y compris l'adresse maximale de ligne de
la mémoire cache.
Selon une autre caractéristique de l'invention,le système de calcul comprend un système d'exploitation, le système d'exploitation maintient une adresse minimale des lignes de la mémoire cache correspondant à une adresse minimale, au-delà de laquelle il ne se produit aucune écriture dans la mémoire cache pour un contexte de fonctionnement pour le système de calcul, et il est prévu en outre les étapes consistant à: mémoriser une valeur dans un premier indicateur d'adresse, en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes dans la mémoire cache depuis l'adresse minimale de lignes de la mémoire cache jusqu'à et y compris
la valeur finale.
Selon un second aspect, l'invention a trait à un procédé d'exploitation d'un système de calcul comprenant une mémoire cache possédant un nombre prédéterminé de
lignes, caractérisé en ce qu'il comprend les étapes consis-
tant à: mémoriser une valeur dans un indicateur d'adresse; et pour une pluralité d'adresses d'écriture, les étapes consistant à: écrire des données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'adresse d'écriture représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en réponse à une commutation de contexte par le système de calcul, nettoyer un nombre sélectionné de lignes dans la mémoire cache, et que, pour chaque ligne du nombre sélectionné de lignes, l'étape de nettoyage comprend:
l'évaluation d'un indicateur d'état altéré cor-
respondant aux données contenues dans la ligne, et le copiage de données depuis la ligne dans une autre mémoire si l'indicateur d'état altéré indique que les données dans la ligne sont altérées, et que l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes dans la mémoire cache depuis une adresse zéro de la mémoire cache jusqu'à et y compris la valeur
finale.
Selon un troisième aspect, l'invention a trait à un système de calcul, caractérisé en ce qu'il comporte:
une mémoire cache possédant un nombre prédéter-
miné de lignes, un circuit, sensible à une pluralité d'adresses d'écriture, pour écrire des données dans la mémoire cache
en un emplacement correspondant à chaque adresse de la plu-
ralité d'adresses d'écriture, un circuit pour nettoyer un nombre sélectionné de
lignes dans la mémoire cache, le circuit de nettoyage com-
prenant, pour chaque ligne du nombre sélectionné de lignes: un circuit pour évaluer un indicateur d'état altéré correspondant à des données dans la ligne, et un circuit pour copier des données depuis la ligne dans une autre mémoire, si cet indicateur d'état altéré indique que les données dans la ligne sont altérées, et
que le nombre de lignes sélectionnées est infé-
rieur au nombre prédéterminé de lignes de la mémoire cache.
Selon une autre caractéristique de l'invention, le système comporte en outre: un indicateur d'adresse pour mémoriser une valeur, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et que le nombre sélectionné de lignes est fonction
de la valeur finale.
Selon une autre caractéristique de l'invention, le circuit de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes de la mémoire cache depuis une première
adresse jusqu'à et y compris la valeur finale.
Selon une autre caractéristique de l'invention, le système de calcul comprend un système d'exploitation, le système d'exploitation conserve une adresse maximale de ligne de la mémoire cache, correspondant à un contexte de fonctionnement pour le système de calcul, et le circuit de calcul comprend en outre un circuit pour régler le nombre sélectionné en réponse à l'adresse
maximale de ligne de la mémoire cache.
Selon une autre caractéristique de l'invention, le circuit utilisé pour nettoyer un nombre sélectionné de lignes dans la mémoire cache est sensible à une commutation
de contexte par le système de calcul.
Selon une autre caractéristique de l'invention, le système de calcul comporte en outre: un indicateur d'adresse pour mémoriser une valeur, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et que le nombre sélectionné de lignes est fonction
de la valeur finale.
Selon une autre caractéristique de l'invention, le circuit de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes de la mémoire cache depuis une première
adresse jusqu'à et y compris la valeur finale.
Selon une autre caractéristique de l'invention, le système de calcul comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un second indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la
valeur contenue dans le premier indicateur d'adresse repré-
sentant une première valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le deuxième indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le deuxième indicateur d'adresse, la valeur contenue dans le deuxième indicateur d'adresse représentant une seconde valeur finale lors de l'achèvement l1 du traitement de la pluralité d'adresses d'écriture, et que le nombre sélectionné de lignes est fonction
des première et seconde valeurs finales.
Selon une autre caractéristique de l'invention, le système de calcul comprend un système d'exploitation, le système d'exploitation conserve une adresse maximale de ligne de la mémoire cache correspondant à une adresse maximale au-delà de laquelle aucune écriture n'est
réalisée dans la mémoire cache pour un contexte de fonc-
tionnement pour le système de calcul, et le système de calcul comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans
le premier indicateur d'adresse égale à l'adresse d'écri-
ture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur contenue dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, le circuit de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis la valeur finale jusqu'à et y compris l'adresse maximale de
ligne de la mémoire cache.
Selon une autre caractéristique de l'invention, le système de calcul comporte un système d'exploitation, le système d'exploitation maintient une adresse minimale de ligne de la mémoire cache correspondant à une adresse minimale, au-delà de laquelle aucune écriture
n'arrive dans la mémoire cache pour un contexte de fonc-
tionnement pour le système de calcul, et il comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la
valeur contenue dans le premier indicateur d'adresse repré-
sentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, le circuit de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis l'adresse minimale de ligne de la mémoire cache jusqu'à et
y compris la valeur finale.
Selon une autre caractéristique de l'invention, la mémoire cache est accessible à partir d'un seul noyau de processeur. Selon une autre caractéristique de l'invention, la mémoire cache est accessible au moyen d'une pluralité de
noyaux de processeurs.
Selon un autre aspect l'invention a trait en
outre à un système de calcul, caractérisé en ce qu'il com-
porte:
une mémoire cache possédant un nombre prédéter-
miné de lignes, un indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à une pluralité d'adresses d'écriture, pour l'écriture de données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale à la fin du traitement de la pluralité d'adresses d'écriture, et un circuit apte à répondre à une commutation de contexte par le système de calcul pour nettoyer un nombre sélectionné de lignes dans la mémoire cache, que pour chaque ligne du nombre sélectionné de lignes, le circuit de nettoyage comprend: un circuit pour évaluer un indicateur d'état altéré correspondant à des données dans la ligne, et un circuit pour copier des données d'une ligne dans une autre mémoire si l'indicateur d'état altéré
indique que les données présentes dans la ligne sont alté-
rées, et que le circuit utilisé pour nettoyer un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis une adresse zéro de la mémoire cache jusqu'à
et y compris la valeur finale.
D'autres caractéristiques et avantages de la pré-
sente invention ressortiront de la description donnée ci-
après prise en référence aux dessins annexés, sur les-
quels: - la figure 1 représente un schéma-bloc d'une plate-forme de traitement de données sans fil, dans laquelle les présentes formes de réalisation peuvent être mises en oeuvre; - la figure 2 représente un schéma-bloc d'une architecture de mémoire cache, qui peut être utilisée dans la plate-forme de la figure 1 et dans d'autres dispositifs de traitement;
- la figure 3 représente un schéma-bloc de par-
ties du contrôleur de mémoire cache de la figure 2, ces
parties concernant une méthodologie de mise en oeuvre pré-
férée de nettoyage de la mémoire cache; - la figure 4 représente un organigramme d'un premier mode de mise en oeuvre pour réduire les cycles d'horloge en liaison avec un nettoyage de la mémoire cache,
qui se produit pendant une commutation de contexte du pro-
cesseur à usage général de la figure 1, dans lequel le degré de nettoyage de la mémoire cache est déterminé par l'adresse maximale écrite dans la mémoire cache avant la commutation de contexte; et - la figure 5 représente un organigramme d'un second mode de mise en oeuvre pour réduire des cycles d'horloge requis en liaison avec un nettoyage de la mémoire cache qui apparaît pendant une commutation de contexte du processeur à usage général de la figure 1, dans lequel le degré de nettoyage de la mémoire cache est déterminé par l'adresse maximale disponible dans le système d'exploitation pour l'écriture dans la mémoire cache avant
la commutation de contexte.
La figure 1 représente une forme de réalisation préférée d'une plateforme générale 10 de traitement de données sans fil, dans laquelle les différentes formes de réalisation de la mémoire cache, décrites dans ce document peuvent être utilisées, et qui pourrait être utilisée par
exemple dans la réalisation d'un téléphone à microproces-
seur (dit Smartphone) ou un dispositif de calcul portable.
La plate-forme 10 de traitement de données sans fil com-
prend un processeur (central) à usage général 12 comportant une mémoire cache d'instructions 12a et une mémoire cache
de données 12b, qui correspondent chacune à une unité cor-
respondante de gestion de la mémoire d'instructions ("MMU") 12c et 12d et illustre en outre le circuit tampon 12e et finalement un noyau d'exploitation 12f, toutes ces unités
communiquant avec un bus SBUS du système. Le bus SBUS com-
prend un conducteur de bus SBUSd de transmission de don-
nées, un conducteur de bus SBUSa de transmission d'adresses et un conducteur de bus de commande SBUSc. Un processeur de signaux numériques ("DSP") 14a, qui comporte sa propre mémoire cache interne (non représentée) et une interface périphérique 14b sont couplés au bus SBUS. Bien que ceci ne soit pas représenté, différents dispositifs périphériques
peuvent par conséquent être couplés à une interface péri-
phérique 14b, y compris un convertisseur numérique/analogi-
que ("DAC") ou une interface de liaison au réseau. Le pro-
cesseur DAC 14a et l'interface périphérique 14b sont cou-
plés à une interface 16 d'accès direct à la mémoire (DMA),
qui est en outre couplée à un contrôleur DMA 18. Le contrô-
leur DMA 18 est également couplé au bus SBUS ainsi qu'à un
contrôleur vidéo ou LCD 20, qui communique avec un disposi-
tif d'affichage LCD ou vidéo 22. Le contrôleur DMA 18 est couplé par l'intermédiaire d'un bus 24a de transmission d'adresse, d'un bus 24b de transmission de données et d'un bus de commande 24c à une mémoire principale qui, dans la forme de réalisation préférée, est une mémoire dynamique synchrone à accès direct ("SDRAM") 24. De façon similaire, le contrôleur DMA 18 est couplé par l'intermédiaire d'un
bus 26a de transmission d'adresse, d'un bus 26d de trans-
mission de données et d'un bus de commande 26c à une
mémoire flash (ou à des mémoires flashes) 26.
Les aspects opérationnels généraux de la plate-
forme 10 de traitement de données sans fil seront appréciés en référence aux présents concepts inventifs, en notant que
ce dernier utilise à la fois un processeur 12 à usage géné-
ral et un processeur DSP 14a. Par conséquent, il existe de multiples noyaux se partageant l'utilisation d'une seule
mémoire, et on notera que la méthodologie selon l'inven-
tion, qui sera décrite plus loin, fournit différentes amé-
liorations de la performance du système pour un tel système à noyaux multiples (ce qui peut être le cas également pour des systèmes autres que la plate-forme 10). En outre, on notera que de nombreux aspects de l'invention, qui seront
décrits ci-après, permettent également d'améliorer les opé-
rations dans un système à un seul processeur.
En considérant maintenant les aspects relatifs à la mémoire cache de la forme de réalisation préférée, la figure 2 représente à titre d'exemple l'architecture d'une mémoire cache de données 12b dans un processeur à usage général 12 de la figure 1. Avant de décrire de façon détaillée cette structure, il faut comprendre que diffé-
rents enseignements parmi les présents enseignements selon l'invention peuvent être mis en oeuvre en liaison avec d'autres mémoires caches telles qu'une mémoire cache d'instructions 12a, et l'une ou l'autre ou les deux mémoires caches du processeur DSP 14a ou dans d'autres mémoires caches (par exemple une mémoire cache modifiée) dans la plate- forme 10). En outre, différents enseignements selon l'invention, qui vont être décrits ci-après, peuvent
être utilisés en liaison avec tous les dispositifs de trai-
tement qui tirent avantage d'une mémoire cache, incluant
des téléphones à processeurs, des dispositifs PDA, c'est-à-
dire des assistants personnels de communication, des ordi-
nateurs de poche, des ordinateurs blocs-notes, des ordina-
teurs de bureau, etc. Enfin, bien que l'on donne ci-après différents détails concernant la mémoire cache 12b, on notera également qu'un grand nombre de ces détails (par exemple l'association par ensembles, les tailles de réseaux, les longueurs d'adresses et de stockage) sont
indiqués uniquement à titre illustratif.
En considérant maintenant les détails de la mémoire cache 12b représentée sur la figure 2, on voit qu'elle comprend un contrôleur 28 qui reçoit une adresse de mémoire qui dans ce cas est une partie d'une adresse de données à 32 bits DA[31:0], dans laquelle la partie reçue inclut les bits "[11:4]" indiquant que le contrôleur 28 de la mémoire cache reçoit des bits "4" à "11" de l'adresse à 32 bits, et en outre reçoit des bits DA[l:0], auquel cas de
façon similaire la notation "I[1:0]"I indique que le contrô-
leur 28 de la mémoire cache reçoit les bits "0" à "1" de l'adresse à 32 bits. Le contrôleur 28 de la mémoire cache est couplé dans le réseau virtuel d'étiquettes 30V qui mémorise des étiquettes qui correspondent à des lignes dans un réseau de données 32. A cet égard, à titre indicatif
pour la description qui va suivre, un réseau d'étiquettes
virtuelles 30V mémorisent un bit altéré pour chaque ligne dans le réseau de données 32, dans lequel on sait qu'une indication de données altérées dans la mémoire cache indique que des données, qui ont été introduites dans le réseau de données 32, ont été modifiées, mais qu'une copie modifiée n'a pas été délivrée à une mémoire située à un niveau plus élevé dans le système de mémoire (par exemple la mémoire principale). De même des indications contenues, qui correspondent à chaque ligne dans le réseau de données 32, sont les bits les moins récemment utilisés ("LRU") dans un réseau 34 d'indicateurs LRU et des bits de validité dans
un réseau d'indicateurs de validité 36.
Dans la forme de réalisation préférée, la mémoire de données 12b est agencée sous la forme d'une mémoire
cache associative par ensembles, à deux voies; par consé-
quent le réseau d'étiquettes 30V possède respectivement deux plans 30aV et 30bV. De façon similaire, le réseau de données 32 possède deux plans de mémoire 32a et 32b. Dans la forme de réalisation représentée, chaque plan 32a et 32b comporte 1024 x 32 bits (c'est-à-dire 4 octets) et par conséquent requiert quatre adresses successives pour former une ligne de 16 octets. Les signaux de sortie des plans av et 30bV sont envoyés à des comparateurs respectifs 38a et 38b. Les adresses DA[31:12] sont également appliquées aux deux comparateurs 38a et 38b. Chaque comparateur 38a et 38b produit un signal de sortie à un bit désigné respectivement par Hit wayl et Hit way2. Les signaux Hit wayl et Hit way2 sont appliqués aux entrées de commande de portes respectives de transfert 40a et 40b, dont chacune délivre en tant que signal de sortie les
données adressées à 32 bits DD[31:0].
Le fonctionnement d'une mémoire cache associative par ensembles est bien connu dans la technique et est résumé ici pour une opération de lecture, simplement pour présenter un contexte pour des détails devant être compris
lors d'une description ultérieure concernant plus particu-
lièrement un processus de nettoyage de la mémoire cache. En considérant l'opération de lecture, lorsqu'une adresse DA[31:0] est reçue pour un accès à la mémoire, les bits d'adresses DA[11:4] sont utilisés en tant qu'adresse dans chaque plan 30aV et 30bV du réseau d'étiquettes virtuelles 30V. Chaque plan 30aV et 30bV délivre des bits d'étiquette TagDA[31:12] en réponse à l'adresse, o cette étiquette inclut une indication de l'adresse des données mémorisées dans le réseau de données 32. Ensuite, les bits DA[31:12] sont comparés par l'intermédiaire de comparateurs 38a et 38b aux étiquettes de manière à déterminer s'il existe une correspondance (c'est-à-dire un succès), et si de ce fait le signal de sortie de l'un des comparateurs 38a et 38b
réalise respectivement le signal Hit wayl ou Hit way2. Pen-
dant le même processus, on notera qu'une partie formant indice de l'adresse, dans laquelle l'indice dans le présent exemple est formé par les bits DA[11:4], est appliqué à des plans 32a et 32b du réseau de données. Par conséquent les deux plans délivrent une information à partir de cet indice et la validation du signal Hit wayl ou du signal Hit way2 conduit à la présentation du signal de sortie de l'un de ces deux plans sous la forme des données de sortie DD[31:0]. Naturellement s'il se produit un insuccès dans la mémoire cache (c'est-à-dire si ni le signal Hit wayl, ni le signal Hit way2 ne sont validés), alors l'information adressée est recherchée à partir d'une mémoire à un niveau plus élevé que la mémoire cache 12b, dans la hiérarchie des mémoires. Enfin, on se rappellera que chaque adresse de mémoire dans la mémoire d'étiquettes possède un bit valide correspondant dans l'indicateur de réseau 36. Ces bits indiquent si les données situées à l'emplacement correspon- dant dans la mémoire cache sont valables. Les bits situés dans l'indicateur 34 du réseau LRU déterminent quelle ligne de plans 32a et 32b est mise à jour après un insuccès dans
la mémoire cache.
La mémoire cache de données 12b comprend égale-
ment une caractéristique de nettoyage de la mémoire cache,
qui permet d'améliorer grandement le rendement du fonction-
nement de la mémoire cache, comme cela va être maintenant indiqué de façon détaillée du point de vue fonctionnel au moyen du schéma-bloc de la figure 3. De façon spécifique, la figure 3 représente un contrôleur 28 de la mémoire cache
d'une manière plus détaillée en ce qui concerne la caracté-
ristique de nettoyage de la mémoire cache. Le contrôleur 28
de la mémoire cache comprend un registre d'adresses 42 ser-
vant à mémoriser une valeur d'adresse désignée par I_MAX et qui, comme on le notera plus loin, mémorise certaines copies de l'indice d'adresse de données (c'est-à-dire
DA[11:4]), tel qu'il est commandé par un circuit addition-
nel que l'on va décrire ci-après. L'entrée d'adresses du registre d'adresses 42 est connectée à la sortie d'une
porte de transfert 44, dont l'entrée de données est connec-
tée de manière à recevoir l'indice d'adresse DA[11:4]. En outre l'indice d'adresse DA[11:4] est appliqué à l'entrée d'un comparateur 46, qui est en outre connecté de manière à recevoir la valeur de IMAX telle que mémorisée dans le registre 42. Pour des raisons qui seront décrites plus loin de façon détaillée, lorsqu'un succès dans la mémoire cache se produit en réponse à une écriture faite dans la mémoire cache de données 12b, le comparateur 46 détermine si la
valeur de I_MAX est supérieure à un indice d'adresse arri-
vant DA[11:4] et s'il en est ainsi, valide l'entrée de com-
mande de la porte de transfert 44 de sorte que l'indice d'adresse DA[11:4], qui arrive alors, est copié dans le registre 42, ce qui réalise la mise à jour de la valeur de
IMAX.
Pour compléter la description concernant la
figure 3, le contrôleur 28 de la mémoire cache comprend également un circuit 48 de traitement de nettoyage de la mémoire cache, qui est connecté de manière à recevoir, à une entrée, des bits altérés tels qu'ils sont délivrés par le réseau d'étiquettes virtuelles 30V, et qui est en outre
connecté de manière à recevoir un signal CACHECLEAN ser-
vant à valider sa fonctionnalité comme cela va être décrit plus loin de façon plus détaillée. En réalité on notera en outre que le signal CACHECLEAN est également appliqué de
manière à effacer la valeur de IMAX dans le registre 42.
En outre, la valeur de IMAX dans le registre 42 est égale-
ment un signal d'entrée envoyé au circuit 48 de traitement de nettoyage de la mémoire cache. La structure du circuit 48 de traitement de nettoyage de la mémoire cache peut être
choisie par un spécialiste de la technique parmi diffé-
rentes variantes en fonction de sa fonctionnalité, comme on
le notera à partir de la lecture de la description qui va
suivre des figures 4 et 5.
La figure 4 est un organigramme d'un procédé désigné d'une manière générale par 50 et qui illustre le fonctionnement préféré du contrôleur 28 de la mémoire cache en rapport avec des écritures dans le réseau de données 32, lors de laquelle un tel procédé est mis en oeuvre dans une
partie étendue au moyen du fonctionnement des blocs de cir-
cuits représentés sur la figure 3. Le procédé 50 commence par un pas 52, lors duquel la valeur I_MAX (située dans le registre 42) est effacée pour prendre une valeur zéro. Dans la forme de réalisation préférée, on notera que ce pas peut être obtenu par activation du signal CACHE_CLEAN. En outre
à cet égard on notera, en tant que conclusion de la des-
cription du procédé 50, que le présent mode de mise en
oeuvre fournit des améliorations en liaison avec des opéra-
tions mettant en oeuvre des commutations de contexte. En réalité, bien que ce ne soit pas représenté, le pas 52 peut faire partie d'une procédure d'initialisation de la mémoire cache de données 12b, comme par exemple en réponse à une première commutation de contexte. Après avoir noté ces variantes, il peut être utile d'examiner ce que l'on désigne par commutation de contexte, pour certains lecteurs
de la présente description, bien qu'une telle terminologie
soit connue dans la technique. Une commutation de contexte se produit en réponse à différents événements, comme par exemple une interruption extérieure ou l'expiration de la durée d'une minuterie, telle qu'elle est souvent maintenue par un système d'exploitation. Cette commutation a trait à un changement dans le processus, qui est noté dans la
plate-forme 10 ou dans d'autres systèmes commandés par pro-
cesseurs, dans lesquels les opérations sont scindées en processus. Chaque processus est défini de différentes manières, et ces manières incluent souvent la zone de mémoire utilisée par le processus, la configuration
d'entrée/sortie du processus, la gestion de mémoire du pro-
cessus telle qu'une traduction d'adresses, et d'autres valeurs caractéristiques du processus sont mémorisées de façon typique dans des registres à usage général. On obtient une commutation du contexte lors de la commutation
du processus actuel sur un nouveau processus, et par consé-
quent lorsqu'il est nécessaire de mémoriser une information décrivant chacun de ces aspects du processus actuel de sorte qu'après l'achèvement du processus lui-même (ou après
l'achèvement de plusieurs autres processus, cette informa-
tion peut être récupérée lorsque ce qui est maintenant le processus actuel est à nouveau commuté de sorte qu'il
devient à nouveau le processus actuel.
En se référant maintenant au procédé 50, après le pas 52,la procédure passe au pas 54. Le pas 54 montre qu'une adresse d'écriture est envoyée au système de mémoire qui inclut une mémoire cache des données 12b. En consultant rapidement la figure 1, par exemple un exemple du pas 52 apparaît lorsque le noyau 12f délivre une adresse à des données d'écriture à la mémoire SDRAM 24, et on notera que la mémoire SDRAM 24 est située à un niveau plus élevé dans
un système de mémoire qui inclut la mémoire cache de don-
nées 12b située à un niveau plus bas. Ensuite le procédé 50
passe du pas 54 au pas 56.
Le pas 56 détermine si un succès se produit dans la mémoire cache de données 12b en réponse à l'adresse d'écriture délivrée lors du pas 54. Si un succès dans la
mémoire cache ne se produit pas (c'est-à-dire s'il se pro-
duit un insuccès dans la mémoire cache), alors le procédé passe du pas 56 au pas 58. Inversement si un succès dans la mémoire cache se produit, alors le procédé 50 passe du pas 56 au pas 60. Chacun de ces autres trajets va être
*décrit ci-après.
En considérant le cas du pas 58 et en constatant qu'il apparaît en réponse à un insuccès dans la mémoire cache, ce pas agit uniquement de la même manière que cela est connu dans la technique des mémoires caches. De façon spécifique le pas 58 écrit les données à l'emplacement d'adresse dans un circuit de mémoire autre que la mémoire cache de données 12b. Par exemple dans la plate-forme 10, cette écriture s'effectue à l'adresse appropriée dans la
mémoire SDRAM 24.
En considérant le cas du pas 60, qui, on se le rappellera, est atteint lorsqu'il se produit un succès dans la mémoire cache, ce pas détermine si la valeur de l'indice actuel d'adresse DA[11:4] est supérieure à la valeur de I MAX. En se référant à nouveau brièvement à la figure 3, on notera que l'opération du pas 60 peut être réalisée par un comparateur 46. Si la valeur de l'indice d'adresse
DA[11:4] est supérieure à la valeur de IMAX, alors le pro-
cédé 50 passe du pas 60 au pas 62, et si ce n'est pas le cas, le procédé 50 saute alors au pas 64, qui sera décrit plus loin, après avoir tout d'abord considéré le fonction- nement intervenant lors du pas 62. Le pas 62, qui a été atteint étant donné que la valeur de l'indice d'adresse DA[11:4] dépasse la valeur de I_MAX, mémorise l'indice d'adresse actuel DA[11:4] en tant que nouvelle valeur de I_MAX. A cet égard, on notera deux points. Tout d'abord, étant donné que la valeur de IMAX a été effacée lors du pas 52, alors le premier pas temporel 60 est atteint et l'indice d'adresse DA[11:4] n'est pas nul, le pas 60 fait alors passer le procédé au pas 62, et la valeur de IMAX est de ce fait accrue à l'indice d'adresse actuelle. En second lieu, en se référant à nouveau à la figure 3, on notera que le pas 62 est atteint par le signal de sortie du
comparateur 46 et la commande de sa porte de transfert 44.
De façon spécifique si le comparateur 46 lors de l'exécu-
tion du pas 60 établit que DA[11:4] dépasse la valeur de
I_MAX, alors son signal de sortie valide la porte de trans-
fert 44 de sorte que l'indice DA[11:4] est copié dans le registre 42, de manière à devenir la nouvelle valeur de
I_MAX. Ensuite, le procédé 50 passe du pas 62 au pas 64.
Le pas 64 écrit les données lors de leur déli-
vrance dans le réseau de données 32 à l'adresse spécifiée lors du pas 54. En outre le bit situé dans le réseau d'étiquettes virtuelles 30V et correspondant à la ligne de données écrites dans la mémoire cache est réglé dans un état altéré. Ensuite le procédé 50 passe du pas 64 au pas 66. Le pas 66 représente un état d'attente, dans lequel le procédé 50 attend l'un de deux événements, à savoir la
délivrance d'une autre adresse d'écriture ou une commuta-
tion de contexte. Si une autre adresse d'écriture est déli-
vrée, alors le procédé 50 revient du pas 66 au pas 54. Dans ce cas, un spécialiste de la technique notera que les pas précédents apparaissent à nouveau et, si l'indice de l'adresse d'écriture nouvellement délivrée est supérieur à
la valeur actuelle de I MAX, alors l'indice devient la nou-
velle valeur de I_MAX. En réalité cette opération en boucle peut se produire pour de nombreuses opérations successives d'écriture, lors desquelles chaque fois les pas précédents agissent de telle sorte que la valeur I_MAX peut être accrue. En considérant maintenant l'effet d'une commutation actuelle de contexte, le procédé 50 continue du pas 66 au pas 68 et, à partir de ce qui précède, on notera que la valeur de I_MAX à cet instant représente la valeur maximale de l'indice d'adresse qui a été écrit depuis la dernière commutation de contexte et avant la commutation de contexte
actuelle.
Le pas 68 représente un processus de nettoyage de la mémoire cache et, comme cela apparaîtra plus loin, c'est un processus qui peut améliorer fortement la performance et le rendement par rapport à l'art antérieur. En particulier le pas 68 illustre ceci pour une boucle de L, en baissant d'une valeur de L égale à I_MAX jusqu'à une valeur de L égale à 0, un pas 70 est exécuté, lors duquel chaque ligne de la mémoire cache possédant une adresse égale à L est nettoyée. En d'autres termes, pour chaque cas du pas 68, L est réduite en commençant par I_MAX et pendant chaque durée o la valeur de L est égale à 0, la procédure se poursuit par une opération de nettoyage lors du pas 70, puis revient au pas 68 pour l'itération suivante. En considérant le pas , le nettoyage d'une ligne de la mémoire cache est connu dans la technique et implique l'évaluation de l'étiquette (ou des étiquettes) pour la ligne de manière à déterminer si des données quelconques de la ligne sont altérées. Dans
la présente forme de réalisation, cette opération est com-
mandée par le circuit 48 d'exécution du processus de net-
toyage de la mémoire cache de la figure 3, tel qu'il est validé par le signal CACHE_CLEAN. Le processus détermine si la ligne contient des données altérées et, s'il en est ainsi, ces données (ou l'ensemble de la ligne) sont écrites dans une mémoire de rang supérieur. Au contraire, si pour une ligne donnée son(ses) bit(s) altéré(s) indique(nt) que la ligne complète est propre, alors la ligne de données correspondant au(x) bit(s) altéré(s) n'est pas écrite dans
la mémoire de rang plus élevé.
A partir de ce qui précède et en particulier à partir de l'effet de I_MAX des pas 68 et 70, un spécialiste de la technique notera qu'après une commutation de contexte, la mémoire cache de données 12b est nettoyée, mais que le processus de nettoyage s'étend seulement depuis l'adresse 0 de la mémoire jusqu'à l'adresse maximale de la mémoire cache, dans laquelle une écriture a été réalisée avant la commutation de contexte (comme cela est mémorisé dans IMAX. Cette méthodologie pourra être par exemple mieux comprise sur la base d'un exemple. On suppose qu'après le pas 52, il existe cinq écritures successives effectuées aux adresses respectives d'indices 0, 2, 4, 6 et 8 dans la mémoire cache et qu'à la suite de ces écritures, il se produit une commutation de contexte. Par conséquent à cet instant la valeur de I_MAX est égale à 8 et en réponse à la commutation de contexte, les pas 68 et 70 nettoient le réseau de données 32 uniquement de l'adresse 0 jusqu'à l'adresse 8. On notera alors qu'une telle opération est
entièrement différente de l'art antérieur. De façon spéci-
fique, dans l'art antérieur, en réponse à une commutation
de contexte, l'ensemble de la mémoire cache est nettoyé.
Par conséquent chaque ligne de la mémoire cache est évaluée de manière à déterminer si son contenu est altéré et, s'il en est ainsi, ces contenus altérés sont écrits dans une mémoire de rang supérieur. Compte tenu de cette différence, un spécialiste de la technique notera que le présent mode de mise en oeuvre selon l'invention est nettement plus efficace. A titre d'illustration et en revenant à l'exemple de cinq adresses successives, on suppose que la mémoire cache contient des adresses jusqu'à 255. Dans un tel cas,
la technique antérieure dépenserait un temps supplémen-
taire, qui peut être parfaitement un seul cycle d'horloge par ligne adressable pour évaluer et nettoyer chacune des
adresses 9 à 255. Au contraire la forme de réalisation pré-
férée arrête l'opération de nettoyage en un point qui se situe à un niveau inférieur à la totalité de la mémoire cache, auquel cas dans le mode de mise en oeuvre que l'on vient de décrire, l'arrêt s'effectue après l'achèvement
d'un nettoyage de l'adresse maximale décrite avant le chan-
gement de contexte (cette adresse est 8 dans le présent exemple). Par conséquent, le nombre de cycles complets d'horloge nécessaires pour l'opération de nettoyage peut être fortement réduit, et cette réduction réduit également la consommation totale d'énergie. En outre, on notera que
dans des environnements, qui présentent de fréquentes com-
mutations de contexte, comme cela peut être le cas pour la plate-forme 10, les rendements de la forme de réalisation
préférée s'accumulent pour chaque commutation de contexte.
Ce rendement global est même plus accentué lorsqu'il existe seulement un petit nombre d'écritures dans la mémoire cache
entre les instants de commutations de contexte.
De même à partir de la description précédente du
pas 68, on notera qu'il réduit le processus de nettoyage jusqu'à l'adresse 0. Cette solution est préférable étant donné qu'elle est indépendante de la taille de la mémoire cache. Dans tous les cas, on suppose par conséquent pour
une telle solution que l'achèvement de l'opération de net-
toyage jusqu'à l'adresse 0 provoque l'écriture de lignes
possédant des données altérées, dans la mémoire principale.
Cependant, dans le cadre de cette observation, on notera que deux autres solutions peuvent être utilisées si les données situées au niveau ou à proximité de l'adresse 0 ne sont pas susceptibles d'avoir été changées. Chacune de ces
variantes va être décrite ci-après.
Dans une première variante relative à la solution de IMAX telle que décrite précédemment, une seconde valeur d'adresse est établie pour déterminer l'indice d'adresse le plus faible, qui provoque un succès dans la mémoire cache pour une commutation donnée de contexte, et cette seconde
valeur est utilisée conjointement avec la valeur de IMAX.
Par conséquent, en supposant que cette seconde valeur d'adresse est désignée par I_MIN, elle peut initialement être réglée à une valeur élevée (par exemple l'adresse maximale de la mémoire cache) et être réduite à la valeur d'indice d'adresse la plus faible qui conduit à un succès dans la mémoire cache lors d'une commutation de contexte donnée. C'est pourquoi, à titre d'exemple, on suppose que l'adresse d'indice la plus élevée de la mémoire cache est 255 et qu'il existe cinq écritures successives dans la mémoire cache aux adresses d'indices respectifs 8, 16, 24, 32 et 40, et à la suite de ces écritures, il se produit une commutation de contexte. Dans cet exemple, initialement I_MAX est égal à zéro et I_MIN est égal à 255. Sur la base des cinq accès, I_MAX augmenterait pour chaque accès jusqu'à ce qu'il soit égal à 40. D'autre part, le premier accès à l'adresse d'indice 8 réduirait la valeur de IMIN à une valeur 8, et les autres accès n'affecteraient pas cette valeur étant donné que ce sont des adresses ayant un indice plus élevé que la valeur mise à jour de I_MIN. Pour
conclure la description de cette variante, le pas 60 est
modifié de sorte que le pas 70 nettoie toutes les lignes entre et y compris l'adresse à partir de I_MIN et jusqu'à l'adresse de I_MAX, ce qui nettoie de ce fait le nombre de lignes de la mémoire cache entre l'adresse modifiée la plus faible et l'adresse modifiée la plus élevée, et de ce fait nettoie à nouveau un nombre de lignes inférieur au nombre
entier de lignes dans la mémoire cache.
Dans une seconde variante à la solution de IMAX
telle que décrite précédemment, une valeur d'adresse diffé-
rente est établie pour déterminer l'indice d'adresse le plus faible qui provoque l'apparition d'un succès dans la mémoire pour une commutation de contexte donnée, et cette valeur différente est utilisée seule et pour nettoyer l'adresse maximale de la mémoire cache. En termes simples, c'est une opération exécutée en sens opposé du processus d'utilisation de la valeur de I_MAX. En supposant à nouveau que cette valeur d'adresse différente est désignée par
I_MIN, elle peut être réglée initialement à une valeur éle-
vée (par exemple l'adresse maximale de la mémoire cache) et être réduite à la valeur d'indice d'adresse la plus faible,
ce qui conduit à un succès dans la mémoire pendant une com-
mutation de contexte donnée. Cependant, lorsque le pas 68 est mis en oeuvre, il est modifié de telle sorte que le pas efface toutes les lignes depuis la valeur d'adresse de I_MIN jusqu'à la partie supérieure de la mémoire cache, c'est-à-dire jusqu'à l'adresse maximale de la mémoire
cache.
Pour l'opération donnée en boucle de limitation compte tenu de la valeur de I_MAX, le cadre de la présente invention inclut une autre forme de réalisation illustrée sur la figure 5. Dans cette autre forme de réalisation
indiquée en tant que procédé 50a, on n'utilise pas la fonc-
tionnalité du comparateur 46 de la figure 3, mais au lieu de cela, une valeur d'adresse conservée par le système d'exploitation comme associée à un contexte actuel, pour déterminer la valeur de I MAX au moment de la commutation de contexte. Cette différence va être indiquée ci-après en référence au pas 72, alors que les autres pas représentés sur la figure 5 sont identiques aux pas représentés sur la
figure 4.
En se référant au procédé 50a, les pas 52 à 66 ne sont pas décrits ici de façon détaillée étant donné qu'ils ont été décrits précédemment. Par conséquent en considérant le pas 72, on notera qu'il règle la valeur de I_MAX, mais qu'ici cette valeur est réglée sur la base d'une valeur qui
est accessible dans certaines formes de réalisation de sys-
tèmes d'exploitation. De façon spécifique, certains sys- tèmes d'exploitation maintiennent une valeur maximale de lignes de la mémoire cache pour un contexte donné. Par
conséquent, une fois que le pas 66 a été exécuté, le sys-
tème d'exploitation dispose alors d'une adresse maximale de ligne de la mémoire cache, qui correspond au contexte qui est terminé (c'est-à-dire à partir duquel la commutation s'effectue). Le pas 72 règle la valeur de I_MAX égale à
l'adresse maximale de ligne de la mémoire cache. Par consé-
quent, lorsque le procédé 50a continue avec le pas 68 et pourvu que cette adresse maximale de ligne de la mémoire cache soit inférieure au nombre total de lignes dans la mémoire cache, alors l'opération de fonctionnement en boucle produit par le pas 68 et le pas 70 conduit à nouveau à un nettoyage de lignes dans la mémoire cache de données,
et à nouveau le nombre de lignes, dans lesquelles est réa-
lisé l'effacement, est inférieur au nombre total de lignes
dans la mémoire cache.
A partir de ce qui précède, on peut noter que les formes de réalisation indiquées précédemment réduisent le nombre de cycles d'horloge associés à des opérations de nettoyage dans la mémoire cache, après une commutation de contexte, et fournissent différentes améliorations par rap-
port à l'art antérieur. En plus des enseignements donnés précédemment, on notera que, bien que les présentes formes de réalisation soient décrites de façon détaillée, on peut produire différentes substitutions ou modifications dans
les descriptions indiquées précédemment sans sortir du
cadre de l'invention. Par exemple, bien que dans la forme de réalisation préférée, l'apparition d'une commutation de contexte soit ce qui déclenche la remise à l'état initial
de I_MAX et en limite ultérieurement sa réponse à une com-
mutation de contexte suivante, un spécialiste de la tech-
nique peut garantir un autre événement ou certains autres
événements, ce qui a pour effet que l'apparition d'un pre-
mier événement ramène à zéro la valeur de IMAX et que l'apparition d'un second événement arrête ensuite les réglages croissants de la valeur de I_MAX, à la suite de quoi à nouveau la mémoire cache est nettoyée depuis une
certaine adresse minimale jusqu'à la dernière valeur sauve-
gardée de I_MAX. Comme autre exemple, bien que les figures 4 et 5 illustrent un procédé essentiellement séquentiel au
moyen d'organigrammes, on comprendra que différents cir-
cuits peuvent être utilisés pour réaliser une opération, comme par exemple un automate fini pour exécuter ces pas et que par conséquent la procédure peut conduire à d'autres
états à partir de chaque état, plutôt que selon une procé-
dure séquentielle comme représenté dans l'organigramme.
Comme autre exemple, bien que l'on ait utilisé ici la mémoire cache 18b pour démontrer différents aspects, un grand nombre des enseignements de la présente invention s'appliquent à différentes autres architectures de la mémoire cache. Comme exemple final, la plate-forme 10 est uniquement donnée à titre d'illustration, et on comprendra qu'on peut la modifier de façon supplémentaire et également que de nombreux aspects de l'invention peuvent être mis en oeuvre dans d'autres systèmes ayant une ou plusieurs
mémoires caches. Par conséquent la description précédentes,
les exemples et les autres éléments pouvant être envisagés par un spécialiste de la technique compte tenu des présents enseignements contribuent à illustrer la portée de
l'invention telle qu'elle est définie par les revendica-
tions données ci-après.

Claims (25)

REVENDICATIONS
1. Procédé pour faire fonctionner un système de calcul (10) comprenant une mémoire cache (12b) possédant un nombre prédéterminé de lignes de mémoire cache, caractérisé en ce qu'il comprend les étapes consistant à: tout d'abord, pour une pluralité d'adresses d'écriture, écrire (64) des données dans la mémoire cache (12b) en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture; et
en second lieu nettoyer (70) un nombre sélec-
tionné de lignes dans la mémoire cache; l'étape de nettoyage pour chaque ligne du nombre sélectionné de lignes comprenant:
l'évaluation d'un indicateur d'état altéré cor-
respondant à des données dans la ligne; et le copiage de données depuis cette ligne dans une autre mémoire si l'indicateur d'état altéré indique que les données contenues dans la ligne sont altérées; le nombre sélectionné de lignes étant inférieur
au nombre prédéterminé de lignes de la mémoire cache.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes consistant à: mémoriser une valeur dans l'indicateur d'adresse; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture; et le nombre sélectionné de lignes étant sensible à
la valeur finale.
3. Procédé selon la revendication 2, caractérisé en ce que l'étape de nettoyage d'un certain nombre de lignes dans la mémoire cache (12b) comprend le nettoyage de toutes les lignes dans la mémoire cache à partir d'une
première adresse et jusqu'à et y compris la valeur finale.
4. Procédé selon la revendication 3, caractérisé en ce que la première adresse se situe à l'adresse zéro de
la mémoire cache (12b).
5. Procédé selon la revendication 1, caractérisé en ce que: le système de calcul (10) comprend un système d'exploitation, le système d'exploitation maintenant une
adresse maximale de ligne de la mémoire cache (12b) corres-
pondant à un contexte d'opération pour le système de cal-
cul, et il est en outre prévu l'étape consistant à régler le nombre sélectionné en réponse à l'adresse maximale de la
ligne de la mémoire cache.
6. Procédé selon la revendication 1, caractérisé en ce que l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache s'effectue en réponse à une
commutation de contexte exécutée par le système de calcul.
7. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes consistant à: mémoriser une valeur dans un indicateur d'adresse; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture; et en ce que le nombre sélectionné de lignes est
fonction de la valeur finale.
8. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre les étapes consistant à: mémoriser une valeur dans un premier indicateur d'adresse; mémoriser une valeur dans un second indicateur d'adresse; en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une première
valeur finale lors de l'achèvement du traitement de la plu-
ralité d'adresses d'écriture; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le deuxième indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le deuxième indicateur d'adresse, la valeur dans le deuxième indicateur d'adresse représentant une seconde
valeur finale lors de l'achèvement du traitement de la plu-
ralité d'adresses d'écriture; et en ce que le nombre sélectionné de lignes est
fonction des première et seconde valeurs finales.
9. Procédé selon la revendication 8, caractérisé en ce que l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache (12b) comprend le nettoyage de toutes les lignes de la mémoire cache depuis la première valeur finale jusqu'à et y compris la seconde valeur finale.
10. Procédé selon la revendication 1, caractérisé en ce que: le système de calcul (10) comprend un système d'exploitation, le système d'exploitation maintient une adresse maximale de ligne de la mémoire cache (12b) correspondant à une adresse maximale au-delà de laquelle aucune écriture n'est effectuée dans la mémoire cache pour un contexte de fonctionnement pour le système de calcul, et en ce qu'il est en outre prévu les étapes consistant à: mémoriser une valeur dans un premier indicateur d'adresse, en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et
en ce que l'étape de nettoyage d'un nombre sélec-
tionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes dans la mémoire cache depuis la valeur finale jusqu'à et y compris l'adresse maximale de
ligne de la mémoire cache.
11. Procédé selon la revendication 1, caractérisé en ce que le système de calcul (10) comprend un système d'exploitation, le système d'exploitation maintient une adresse minimale des lignes de la mémoire cache (12b) correspondant à une adresse minimale, au-delà de laquelle il ne se produit aucune écriture dans la mémoire cache pour un contexte de fonctionnement pour le système de calcul, et
en ce qu'il est prévu en outre les étapes consis-
tant à: mémoriser une valeur dans un premier indicateur d'adresse, en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en ce que l'étape de nettoyage d'un nombre sélec-
tionné de lignes dans la mémoire cache comprend le netto-
yage de toutes les lignes dans la mémoire cache depuis l'adresse minimale de lignes de la mémoire cache jusqu'à et
y compris la valeur finale.
12. Procédé d'exploitation d'un système de calcul (10) comprenant une mémoire cache (12b) possédant un nombre prédéterminé de lignes, caractérisé en ce qu'il comprend les étapes consistant à: mémoriser une valeur dans un indicateur d'adresse; et pour une pluralité d'adresses d'écriture, les étapes consistant à: écrire des données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture; et en réponse à chaque adresse de la pluralité d'adresses d'écriture, régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui
est mémorisé dans l'indicateur d'adresse, la valeur conte-
nue dans l'adresse d'écriture représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en réponse à une commutation de contexte par le système de calcul (10), nettoyer un nombre sélectionné de lignes dans la mémoire cache,
et en ce que, pour chaque ligne du nombre sélec-
tionné de lignes, l'étape de nettoyage comprend:
l'évaluation d'un indicateur d'état altéré cor-
respondant aux données contenues dans la ligne, et le copiage de données depuis la ligne dans une autre mémoire si l'indicateur d'état altéré indique que les données dans la ligne sont altérées, et que l'étape de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend le nettoyage de toutes les lignes dans la mémoire cache depuis une adresse zéro de la mémoire cache jusqu'à et y compris la valeur finale.
13. Système de calcul (10), caractérisé en ce qu'il comporte: une mémoire cache (12b) possédant un nombre prédéterminé de lignes, un circuit, sensible à une pluralité d'adresses d'écriture, pour écrire des données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture, un circuit (48) pour nettoyer un nombre sélectionné de lignes dans la mémoire cache, le circuit de nettoyage comprenant, pour chaque ligne du nombre sélectionné de lignes: un circuit pour évaluer un indicateur d'état altéré correspondant à des données dans la ligne, et un circuit pour copier des données depuis la ligne dans une autre mémoire, si cet indicateur d'état altéré indique que les données dans la ligne sont altérées, et en ce que le circuit (48) comprend un circuit pour nettoyer un nombre de lignes sélectionné inférieur au
nombre prédéterminé de lignes de la mémoire cache.
14. Système selon la revendication 13, caractérisé en ce qu'il comporte en outre: un indicateur d'adresse pour mémoriser une valeur, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en ce que le circuit (48) comprend un circuit pour nettoyer un nombre de lignes sélectionné fonction de la valeur finale.
15. Système de calcul (10) selon la revendication 14, caractérisé en ce que le circuit (48) de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes de la mémoire cache depuis une première
adresse jusqu'à et y compris la valeur finale.
16. Système de calcul (10) selon la revendication 13, caractérisé en ce que: le système de calcul (10) comprend un système d'exploitation, le système d'exploitation conserve une adresse maximale de ligne de la mémoire cache, correspondant à un contexte de fonctionnement pour le système de calcul, et le circuit de calcul comprend en outre un circuit pour régler le nombre sélectionné en réponse à
l'adresse maximale de ligne de la mémoire cache.
17. Système de calcul selon la revendication 13, caractérisé en ce que le circuit (48) utilisé pour nettoyer un nombre sélectionné de lignes dans la mémoire cache est sensible à une commutation de contexte par le
système de calcul.
18. Système de calcul selon la revendication 13, caractérisé en ce qu'il comporte en outre: un indicateur d'adresse pour mémoriser une valeur, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en ce que le circuit (48) comprend un circuit pour nettoyer un nombre sélectionné de lignes fonction de
la valeur finale.
19. Système de calcul selon la revendication 18, caractérisé en ce que le circuit (48) de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes de la mémoire cache depuis une première adresse jusqu'à et y
compris la valeur finale.
20.Système de calcul selon la revendication 13, caractérisé en ce qu'il comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un second indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur contenue dans le premier indicateur d'adresse représentant une première valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le deuxième indicateur d'adresse égale à l'adresse d'écriture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le deuxième indicateur d'adresse, la valeur contenue dans le deuxième indicateur d'adresse représentant une seconde valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en ce que le circuit (48) comprend un circuit pour nettoyer un nombre sélectionné de lignes fonction des
première et seconde valeurs finales.
21. Système de calcul selon la revendication 13, caractérisé en ce que le système de calcul (10) comprend un système d'exploitation, en ce que le système d'exploitation conserve une adresse maximale de ligne de la mémoire cache correspondant à une adresse maximale au-delà de laquelle aucune écriture n'est réalisée dans la mémoire cache (12b) pour un contexte de fonctionnement pour le système de calcul, et en ce que le système de calcul (10) comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans
le premier indicateur d'adresse égale à l'adresse d'écri-
ture si l'adresse d'écriture est inférieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur contenue dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, et en ce que le circuit de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis la valeur finale jusqu'à et y compris
l'adresse maximale de ligne de la mémoire cache.
22. Système de calcul selon la revendication 13, caractérisé en ce que: il comporte un système d'exploitation, le système d'exploitation maintient une adresse minimale de ligne de la mémoire cache correspondant à une adresse minimale, au-delà de laquelle aucune écriture
n'arrive dans la mémoire cache pour un contexte de fonc-
tionnement pour le système de calcul, et en ce qu'il comporte en outre: un premier indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur dans le premier indicateur d'adresse égale à l'adresse d'écri- ture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans le premier indicateur d'adresse, la valeur contenue dans le premier indicateur d'adresse représentant une valeur finale lors de l'achèvement du traitement de la pluralité d'adresses d'écriture, le circuit (48) de nettoyage d'un nombre sélectionné de lignes dans la mémoire cache comprenant un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis l'adresse minimale de ligne de la mémoire
cache jusqu'à et y compris la valeur finale.
23. Système de calcul selon la revendication 13, caractérisé en ce que la mémoire cache (12b) est accessible
à partir d'un seul noyau de processeur (12f).
24. Système de calcul selon la revendication 13, caractérisé en ce que la mémoire cache (12b) est accessible
au moyen d'une pluralité de noyaux de processeurs.
25. Système de calcul, caractérisé en ce qu'il comporte:
une mémoire cache (12b) possédant un nombre pré-
déterminé de lignes, un indicateur d'adresse pour mémoriser une valeur, un circuit apte à répondre à une pluralité d'adresses d'écriture, pour l'écriture de données dans la mémoire cache en un emplacement correspondant à chaque adresse de la pluralité d'adresses d'écriture, et un circuit, apte à répondre à chaque adresse de la pluralité d'adresses d'écriture, pour régler la valeur égale à l'adresse d'écriture si l'adresse d'écriture est supérieure à ce qui est mémorisé dans l'indicateur d'adresse, la valeur de l'indicateur d'adresse représentant une valeur finale à la fin du traitement de la pluralité d'adresses d'écriture, et un circuit apte à répondre à une commutation de contexte par le système de calcul pour nettoyer un nombre sélectionné de lignes dans la mémoire cache, en ce que pour chaque ligne du nombre sélectionné de lignes, le circuit de nettoyage (48) comprend: un circuit pour évaluer un indicateur d'état altéré correspondant à des données dans la ligne, et un circuit pour copier des données d'une ligne dans une autre mémoire si l'indicateur d'état altéré
indique que les données présentes dans la ligne sont alté-
rées, et en ce que le circuit utilisé pour nettoyer un nombre sélectionné de lignes dans la mémoire cache comprend un circuit pour nettoyer toutes les lignes dans la mémoire cache depuis une adresse zéro de la mémoire cache jusqu'à
et y compris la valeur finale.
FR9805420A 1997-12-05 1998-04-29 Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache Expired - Fee Related FR2778254B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR9805420A FR2778254B1 (fr) 1998-04-29 1998-04-29 Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
US09/187,118 US6321299B1 (en) 1998-04-29 1998-11-05 Computer circuits, systems, and methods using partial cache cleaning
EP19980309958 EP0929039A3 (fr) 1997-12-05 1998-12-04 Circuits, systèmes et procédés d'ordinateurs utilisant le nettoyage partiel d'antémémoire

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9805420A FR2778254B1 (fr) 1998-04-29 1998-04-29 Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache

Publications (2)

Publication Number Publication Date
FR2778254A1 true FR2778254A1 (fr) 1999-11-05
FR2778254B1 FR2778254B1 (fr) 2002-02-15

Family

ID=9525845

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9805420A Expired - Fee Related FR2778254B1 (fr) 1997-12-05 1998-04-29 Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache

Country Status (2)

Country Link
US (1) US6321299B1 (fr)
FR (1) FR2778254B1 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1030243B1 (fr) * 1999-02-18 2002-10-30 Texas Instruments France Fonction optimisée matérielle de nettoyage pour antémémoire de données à index et étiquettes virtuelles
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
EP1182565B1 (fr) 2000-08-21 2012-09-05 Texas Instruments France Antémémoire et DMA à bit de validité global
GB0207296D0 (en) * 2002-03-28 2002-05-08 Koninkl Philips Electronics Nv Method and appartus for context switching in computer operating systems
US7197605B2 (en) * 2002-12-30 2007-03-27 Intel Corporation Allocating cache lines
US20060195662A1 (en) * 2005-02-28 2006-08-31 Honeywell International, Inc. Method for deterministic cache partitioning
US8584131B2 (en) 2007-03-30 2013-11-12 International Business Machines Corporation Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
EP2304572A1 (fr) * 2008-06-17 2011-04-06 Nxp B.V. Circuit de traitement à circuit de cache et détection de séries d'adresses mises à jour dans des lignes de cache
US10552153B2 (en) * 2017-03-31 2020-02-04 Intel Corporation Efficient range-based memory writeback to improve host to device communication for optimal power and performance
KR20200008759A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 캐시 메모리 및 이를 포함하는 메모리 시스템, 캐시 메모리의 축출 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984002409A1 (fr) * 1982-12-09 1984-06-21 Sequoia Systems Inc Systeme de sauvegarde de memoire
US5045996A (en) * 1986-11-12 1991-09-03 Xerox Corporation Multiprocessor cache memory housekeeping
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4426682A (en) * 1981-05-22 1984-01-17 Harris Corporation Fast cache flush mechanism
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
US5826057A (en) * 1992-01-16 1998-10-20 Kabushiki Kaisha Toshiba Method for managing virtual address space at improved space utilization efficiency
US5526511A (en) * 1993-12-23 1996-06-11 Unisys Corporation Enhanced least recently used round robin cache management method and apparatus for allocation and destaging of cache segments
JP2916420B2 (ja) * 1996-09-04 1999-07-05 株式会社東芝 チェックポイント処理加速装置およびデータ処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984002409A1 (fr) * 1982-12-09 1984-06-21 Sequoia Systems Inc Systeme de sauvegarde de memoire
US5045996A (en) * 1986-11-12 1991-09-03 Xerox Corporation Multiprocessor cache memory housekeeping
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer

Also Published As

Publication number Publication date
FR2778254B1 (fr) 2002-02-15
US6321299B1 (en) 2001-11-20

Similar Documents

Publication Publication Date Title
EP1619589B1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees.
FR2621407A1 (fr) Systeme de reaffectation des adresses et de purge des blocs d'antememoire pour station de travail a antememoire a adressage virtuel et a reinscription
EP3182292B1 (fr) Procédé de prédiction d'une donnée a précharger dans une mémoire cache
FR2904128A1 (fr) Systeme et procede pour changer dynamiquement un fichier.
FR2913785A1 (fr) Gestion de memoire tampon circulaire
FR2778254A1 (fr) Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache
EP0837396B1 (fr) Opération atomique sur mémoire distante et dispositif permettant d'effectuer cette opération
FR2645986A1 (fr) Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede
FR2632092A1 (fr) Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
JPH07249063A (ja) 階層形チェックポイントを使用する論理シミュレータ
EP1617335A1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
EP1619590A1 (fr) Procédé de programmation d'un controleur de DMA dans un système sur puce et système sur puce associé
EP1748355B1 (fr) Dispositif d'interfaçage unidirectionnel de type FIFO entre un bloc maître et un bloc esclave et bloc esclave correspondant
FR2899985A1 (fr) Dispositif de commande d'une memoire tampon
EP0435718A1 (fr) Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
EP0278196A1 (fr) Procédé de gestion d'antémémoires dans un système multiprocesseur
EP1607878A1 (fr) Procédé et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA et système sur puce associé
FR2674044A1 (fr) Agencement pour predire une adresse d'instruction resultant d'un branchement dans un systeme de traitement numerique des donnees.
EP0908828B1 (fr) Procédé et système contrôle d'accès partagés à une mémoire vive
EP1596286A2 (fr) Dispositif et procédé de gestion d'un état d'attente d'un microprocesseur
US20190018726A1 (en) Cleanup of unpredictable test results
EP0842465B1 (fr) Systeme d'organisation et procede de sequencement des circuits d'un microprocesseur
FR2778256A1 (fr) Circuit de memoire cache, procede pour inserer des donnees dans une memoire cache et dispositif de traitement utilisant une telle memoire

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20141231