FR2804770A1 - Procede et systeme d'acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l'antemoire de premier niveau - Google Patents

Procede et systeme d'acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l'antemoire de premier niveau Download PDF

Info

Publication number
FR2804770A1
FR2804770A1 FR0012199A FR0012199A FR2804770A1 FR 2804770 A1 FR2804770 A1 FR 2804770A1 FR 0012199 A FR0012199 A FR 0012199A FR 0012199 A FR0012199 A FR 0012199A FR 2804770 A1 FR2804770 A1 FR 2804770A1
Authority
FR
France
Prior art keywords
sep
cache
level
access
request
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
FR0012199A
Other languages
English (en)
Other versions
FR2804770B1 (fr
Inventor
Terry L Lyon
Eric Delano
Dean A Mulla
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2804770A1 publication Critical patent/FR2804770A1/fr
Application granted granted Critical
Publication of FR2804770B1 publication Critical patent/FR2804770B1/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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • 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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • 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

L'invention concerne un procédé d'accès à une antémémoire à niveaux multiples. Il comprend les étapes consistant à : recevoir une demande concernant un accès à une structure d'antémémoire à niveaux multiples; déterminer (12, 16, 24, 28) si ladite demande d'accès en mémoire peut être satisfaite par un niveau (14, 26) de ladite structure d'antémémoire à niveaux multiples, ladite détermination étant effectuée en parallèle pour de multiples niveaux de ladite structure d'antémémoire à niveaux multiples; et, s'il est déterminé que ladite demande d'accès en mémoire peut être satisfaite par un niveau de ladite structure d'antémémoire à niveaux multiples, satisfaire à ladite demande d'accès en mémoire par ledit niveau de ladite structure d'antémémoire à niveaux multiples. L'invention concerne aussi un système informatique comprenant un processeur et une structure d'antémémoire à niveaux multiples où il accède pour satisfaire à des demandes d'accès en mémoire. Elle reçoit une demande d'accès en mémoire et détermine (12, 16, 24, 28) en parallèle pour des niveaux multiples de l'antémémoire si l'un d'eux peut satisfaire à la demande.

Description


Figure img00010001
Des <SEP> structures <SEP> antémémoireS <SEP> de <SEP> l'art <SEP> antérieur
<tb> destinées <SEP> à <SEP> des <SEP> processeurs <SEP> mettent <SEP> typiquement <SEP> en
<tb> oeuvre <SEP> un <SEP> ou <SEP> plusieurs <SEP> niveaux <SEP> d'antémémoire. <SEP> Plus
<tb> récemment, <SEP> des <SEP> antémemoires <SEP> à <SEP> niveaux <SEP> multiples <SEP> à
<tb> trois <SEP> niveaux <SEP> ou <SEP> davantage <SEP> ont <SEP> été <SEP> réalisées <SEP> dans
<tb> l'art <SEP> antérieur. <SEP> I1 <SEP> évidemment <SEP> souhaitable <SEP> que
<tb> l'antémémoire <SEP> soit <SEP> mise <SEP> en <SEP> application <SEP> de <SEP> manière <SEP> à
<tb> permettre <SEP> à <SEP> un <SEP> processeur <SEP> d'accéder <SEP> efficacement <SEP> à
<tb> l'antémémoire. <SEP> I1 <SEP> en <SEP> effet <SEP> souhaitable <SEP> que
<tb> l'antémémoire <SEP> soit <SEP> mise <SEP> en <SEP> application <SEP> d'une <SEP> manière
<tb> telle <SEP> que <SEP> le <SEP> processeur <SEP> peut <SEP> accéder <SEP> rapidement <SEP> à
<tb> l'antémémoire, <SEP> c'est <SEP> dire <SEP> lire <SEP> ou <SEP> écrire <SEP> rapidement
<tb> dans <SEP> l'antémémoire, <SEP> afin <SEP> que <SEP> le <SEP> processeur <SEP> puisse
<tb> exécuter <SEP> rapidement <SEP> instructions <SEP> et <SEP> que <SEP> des
<tb> instructions <SEP> dépendantes <SEP> puissent <SEP> recevoir <SEP> aussi
<tb> rapidement <SEP> que <SEP> possible <SEP> des <SEP> données <SEP> provenant <SEP> de
<tb> l'antémémoire.
<tb> Un <SEP> exemple <SEP> d'une <SEP> structure <SEP> d'antémémoire <SEP> à
<tb> niveaux <SEP> multiples <SEP> de <SEP> l'art <SEP> antérieur <SEP> est <SEP> représentée <SEP> à
<tb> la <SEP> FIG. <SEP> 1. <SEP> L'exemple <SEP> de <SEP> structure <SEP> d'antémémoire <SEP> de <SEP> la
<tb> FIG. <SEP> 1 <SEP> inclut <SEP> une <SEP> hiérarchie <SEP> d'antémémoire <SEP> à <SEP> trois
<tb> niveaux, <SEP> où <SEP> le <SEP> premier <SEP> niveau <SEP> est <SEP> appelé <SEP> L0, <SEP> le
<tb> deuxième <SEP> niveau <SEP> L1 <SEP> le <SEP> troisième <SEP> niveau <SEP> L2. <SEP> Dans <SEP> le
<tb> présent <SEP> document, <SEP> on <SEP> désignera <SEP> donc <SEP> par <SEP> LO
<tb> l'antémémoire <SEP> de <SEP> premier <SEP> niveau, <SEP> par <SEP> Ll <SEP> l'antémémoire
<tb> de <SEP> deuxième <SEP> niveau, <SEP> L2 <SEP> l'antémémoire <SEP> de <SEP> troisième
<tb> niveau, <SEP> et <SEP> ainsi <SEP> de <SEP> suite. <SEP> Il <SEP> faut <SEP> comprendre <SEP> que <SEP> des
<tb> mises <SEP> en <SEP> application <SEP> de <SEP> structures <SEP> d'antémémoires <SEP> à
<tb> niveaux <SEP> multiples <SEP> de <SEP> l'art <SEP> antérieur <SEP> peuvent <SEP> inclure
<tb> plus <SEP> de <SEP> trois <SEP> niveaux <SEP> d'antémémoire, <SEP> et <SEP> que <SEP> ces <SEP> mises
<tb> en <SEP> application <SEP> de <SEP> l'art <SEP> antérieur <SEP> sont <SEP> typiquement
<tb> sérielles, <SEP> comme <SEP> illustré <SEP> à <SEP> la <SEP> FIG. <SEP> 1.
<tb> Comme <SEP> décrit <SEP> de <SEP> façon <SEP> plus <SEP> complète <SEP> dans <SEP> ce <SEP> qui
<tb> suit, <SEP> des <SEP> antémémoires <SEP> à <SEP> niveaux <SEP> multiples <SEP> de <SEP> l'art
<tb> antérieur <SEP> sont <SEP> généralement <SEP> réalisées <SEP> d'une <SEP> manière
<tb> telle <SEP> qu'un <SEP> processeur <SEP> accède <SEP> en <SEP> série <SEP> à <SEP> chaque <SEP> niveau
Figure img00020001
d'antémémoire, <SEP> jusqu'à <SEP> ce <SEP> que <SEP> l'adresse <SEP> souhaitée <SEP> soit
<tb> trouvée. <SEP> Par <SEP> exemple, <SEP> lorsqu'une <SEP> instruction <SEP> demande
<tb> d'accéder <SEP> à <SEP> une <SEP> adresse, <SEP> le <SEP> processeur <SEP> accède
<tb> typiquement <SEP> à <SEP> l'antémémoire <SEP> LO <SEP> de <SEP> premier <SEP> niveau <SEP> pour
<tb> tenter <SEP> de <SEP> satisfaire <SEP> à <SEP> la <SEP> demande <SEP> d'adresse, <SEP> c'est-à dire <SEP> pour <SEP> tenter <SEP> de <SEP> localiser <SEP> l'adresse <SEP> souhaitée. <SEP> Si
<tb> 'adresse <SEP> n'est <SEP> pas <SEP> trouvée <SEP> dans <SEP> L0, <SEP> le <SEP> processeur
<tb> accède <SEP> ensuite <SEP> à <SEP> l'antémémoire <SEP> L1 <SEP> de <SEP> deuxième <SEP> niveau,
<tb> pour <SEP> tenter <SEP> de <SEP> satisfaire <SEP> à <SEP> la <SEP> demande <SEP> d'adresse. <SEP> Si
<tb> 'adresse <SEP> n'est <SEP> pas <SEP> trouvée <SEP> dans <SEP> Ll, <SEP> 1e <SEP> processeur
<tb> accède <SEP> ensuite <SEP> de <SEP> façon <SEP> sérielle <SEP> à <SEP> chaque <SEP> niveau
<tb> successif <SEP> d'antémémoire, <SEP> jusqu'à <SEP> ce <SEP> que <SEP> 'adresse
<tb> demandée <SEP> soit <SEP> trouvée <SEP> et, <SEP> si <SEP> l'adresse <SEP> demandée <SEP> n'est
<tb> trouvée <SEP> dans <SEP> aucun <SEP> des <SEP> niveaux <SEP> de <SEP> l'antémémoire, <SEP> le
<tb> processeur <SEP> envoie <SEP> ensuite <SEP> une <SEP> demande <SEP> à <SEP> mémoire
<tb> principale <SEP> du <SEP> système <SEP> pour <SEP> essayer <SEP> de <SEP> satisfaire <SEP> à <SEP> la
<tb> demande.
<tb> Typiquement, <SEP> lorsqu'une <SEP> instruction <SEP> demande <SEP> un
<tb> accès <SEP> à <SEP> une <SEP> adresse <SEP> particulière, <SEP> adresse
<tb> virtuelle <SEP> est <SEP> envoyée <SEP> du <SEP> processeur <SEP> au <SEP> système
<tb> d'antémémoire. <SEP> De <SEP> manière <SEP> bien <SEP> connue <SEP> dans <SEP> l'art,
<tb> cette <SEP> adresse <SEP> virtuelle <SEP> contient <SEP> typiquement <SEP> champ
<tb> d'index <SEP> et <SEP> un <SEP> champ <SEP> de <SEP> numéro <SEP> de <SEP> page <SEP> virtuelle.
<tb> L'adresse <SEP> virtuelle <SEP> est <SEP> entrée <SEP> dans <SEP> un <SEP> tampon <SEP> de
<tb> consultation <SEP> en <SEP> parallèle <SEP> de <SEP> traduction, <SEP> "TLB"
<tb> selon <SEP> les <SEP> initiales <SEP> du <SEP> terme <SEP> anglo-saxon <SEP> translation
<tb> look-aside <SEP> buffer, <SEP> 10 <SEP> pour <SEP> l'antémémoire <SEP> L0. <SEP> tampon
<tb> de <SEP> consultation <SEP> en <SEP> parallèle <SEP> de <SEP> traduction <SEP> traduit
<tb> adresse <SEP> virtuelle <SEP> en <SEP> une <SEP> adresse <SEP> physique. <SEP> Le
<tb> champ <SEP> d'index <SEP> d'adresse <SEP> virtuelle <SEP> est <SEP> entré <SEP> dans
<tb> l'ensemble <SEP> ou <SEP> les <SEP> ensembles <SEP> 12 <SEP> de <SEP> mémoire <SEP> d'étiquettes
<tb> de <SEP> LO. <SEP> Comme <SEP> représenté <SEP> à <SEP> la <SEP> FIG. <SEP> 1, <SEP> l'ensemble <SEP> 12 <SEP> de
<tb> mémoire <SEP> d'étiquettes <SEP> de <SEP> LO <SEP> peut <SEP> être <SEP> dupliqué <SEP> fois <SEP> à
<tb> l'intérieur <SEP> de <SEP> l'antémémoire <SEP> LO <SEP> pour <SEP> N <SEP> "voies"
<tb> d'associativité. <SEP> Tel <SEP> qu'il <SEP> est <SEP> utilisé <SEP> ici, <SEP> le <SEP> terme
<tb> de <SEP> "voie" <SEP> concerne <SEP> une <SEP> subdivision <SEP> de <SEP> l'antémémoire <SEP> de
Figure img00030001
niveau <SEP> inférieur. <SEP> Par <SEP> exemple, <SEP> l'antémémoire <SEP> de <SEP> niveau
<tb> inférieur <SEP> d'un <SEP> système <SEP> peut <SEP> etre <SEP> subdivisée <SEP> en <SEP> un
<tb> nombre <SEP> quelconque <SEP> de <SEP> voies. <SEP> Les <SEP> antémémoires <SEP> de <SEP> niveau
<tb> inférieur <SEP> sont <SEP> classiquement <SEP> subdivisées <SEP> en <SEP> quatre
<tb> voies. <SEP> Comme <SEP> représenté <SEP> à <SEP> la <SEP> . <SEP> 1, <SEP> l'index <SEP> d'adresse
<tb> virtuelle <SEP> est <SEP> également <SEP> entré <SEP> dans <SEP> la <SEP> structure <SEP> ou <SEP> les
<tb> structures <SEP> d'ensembles <SEP> de <SEP> données <SEP> de <SEP> L0, <SEP> appelées
<tb> aussi <SEP> "structure <SEP> (s) <SEP> de <SEP> mémoire <SEP> 14 <SEP> qui <SEP> peuvent <SEP> aussi
<tb> être <SEP> dupliquées <SEP> N <SEP> fois <SEP> pour <SEP> N <SEP> voies <SEP> d'associativité.
Figure img00030002
La <SEP> structure <SEP> ou <SEP> les <SEP> structures <SEP> 14 <SEP> d'ensembles <SEP> de
<tb> données <SEP> de <SEP> LO <SEP> comprennent <SEP> données <SEP> mémorisées <SEP> à
<tb> l'intérieur <SEP> de <SEP> l'antémémoire <SEP> L0, <SEP> qui <SEP> peuvent <SEP> être
<tb> subdivisées <SEP> en <SEP> plusieurs <SEP> voies.
<tb> L'étiquette <SEP> 12 <SEP> de <SEP> LO <SEP> envoie <SEP> une <SEP> adresse <SEP> physique
<tb> pour <SEP> chacune <SEP> des <SEP> voies <SEP> d'associativité. <SEP> Cette <SEP> adresse
<tb> physique <SEP> est <SEP> comparée <SEP> à <SEP> l'adresse <SEP> physique <SEP> envoyée <SEP> par
<tb> le <SEP> tampon <SEP> 10 <SEP> de <SEP> consultation <SEP> en <SEP> parallèle <SEP> de
<tb> traduction. <SEP> Ces <SEP> adresses <SEP> sont <SEP> comparées <SEP> dans <SEP> un <SEP> ou
<tb> plusieurs <SEP> circuits <SEP> 16 <SEP> de <SEP> comparaison <SEP> d'adresses <SEP> qui
<tb> peuvent <SEP> aussi <SEP> être <SEP> dupliqués <SEP> N <SEP> fois <SEP> pour <SEP> N <SEP> voies
<tb> d'associativité. <SEP> Le <SEP> circuit <SEP> ou <SEP> les <SEP> circuits <SEP> de
<tb> comparaison <SEP> 16 <SEP> engendrent <SEP> un <SEP> signal <SEP> de <SEP> "succès" <SEP> qui
<tb> indique <SEP> si <SEP> une <SEP> concordance <SEP> est <SEP> atteinte <SEP> entre <SEP> les
<tb> adresses <SEP> physiques. <SEP> Tel <SEP> qu'il <SEP> est <SEP> utilisé <SEP> ici, <SEP> le
<tb> terme <SEP> de <SEP> "succès" <SEP> signifie <SEP> que <SEP> les <SEP> données <SEP> associées <SEP> à
<tb> l'adresse <SEP> qui <SEP> est <SEP> demandée <SEP> par <SEP> une <SEP> instruction <SEP> sont
<tb> contenues <SEP> dans <SEP> une <SEP> antémémoire <SEP> particulière. <SEP> Supposons
<tb> par <SEP> exemple <SEP> qu'une <SEP> instruction <SEP> demande <SEP> une <SEP> adresse
<tb> pour <SEP> une <SEP> donnée <SEP> particulière <SEP> désignée <SEP> par <SEP> "A". <SEP> La
<tb> désignation <SEP> "A" <SEP> de <SEP> données <SEP> serait <SEP> contenue <SEP> à
<tb> l'intérieur <SEP> de <SEP> l'étiquette, <SEP> par <SEP> exemple <SEP> l'étiquette <SEP> 12
<tb> de <SEP> L0, <SEP> pour <SEP> l'antémémoire <SEP> particulière <SEP> éventuelle, <SEP> par
<tb> exemple <SEP> l'antémémoire <SEP> L0, <SEP> qui <SEP> contient <SEP> ces <SEP> données
<tb> particulières. <SEP> En <SEP> effet, <SEP> l'étiquette <SEP> pour <SEP> un <SEP> niveau
<tb> d'antémémoire, <SEP> par <SEP> exemple <SEP> l'étiquette <SEP> 12 <SEP> de <SEP> L0,
<tb> représente <SEP> les <SEP> données <SEP> qui <SEP> résident <SEP> dans <SEP> l'ensemble <SEP> de
Figure img00040001
données <SEP> pour <SEP> ce <SEP> niveau <SEP> d'antémémoire. <SEP> Par <SEP> conséquent,
<tb> le <SEP> circuit <SEP> de <SEP> comparaison, <SEP> par <SEP> exemple <SEP> circuit <SEP> de
<tb> comparaison <SEP> 16, <SEP> détermine <SEP> fondamentalement <SEP> si <SEP> la
<tb> demande <SEP> entrante <SEP> qui <SEP> concerne <SEP> les <SEP> données <SEP> concorde
<tb> avec <SEP> l'information <SEP> d'étiquette <SEP> contenue <SEP> à <SEP> 1 <SEP> intérieur
<tb> de <SEP> l'étiquette <SEP> d'un <SEP> niveau <SEP> particulier <SEP> d'antémémoire,
<tb> par <SEP> exemple <SEP> l'étiquette <SEP> 12 <SEP> de <SEP> L0. <SEP> En <SEP> cas <SEP> de
<tb> concordance, <SEP> ce <SEP> qui <SEP> indique <SEP> que <SEP> le <SEP> niveau <SEP> particulier
<tb> d'antémémoire <SEP> contient <SEP> les <SEP> données <SEP> désignées <SEP> par <SEP> "A",
<tb> un <SEP> succes <SEP> est <SEP> atteint <SEP> pour <SEP> ce <SEP> niveau <SEP> particulier
<tb> d'antémémoire.
<tb> Typiquement, <SEP> le <SEP> circuit <SEP> ou <SEP> les <SEP> circuits <SEP> 16 <SEP> de
<tb> comparaison <SEP> engendrent <SEP> un <SEP> signal <SEP> unique <SEP> pour <SEP> chacune
<tb> des <SEP> voies, <SEP> et <SEP> il <SEP> en <SEP> résulte <SEP> donc <SEP> N <SEP> signaux <SEP> pour <SEP> N
<tb> voies <SEP> d'associativité, <SEP> un <SEP> tel <SEP> signal <SEP> indiquant <SEP> si <SEP> un
<tb> succès <SEP> a <SEP> été <SEP> atteint <SEP> pour <SEP> chaque <SEP> voie. <SEP> Les <SEP> signaux <SEP> de
<tb> succès, <SEP> 'est-à-dire <SEP> des <SEP> "succès <SEP> de <SEP> voies <SEP> de <SEP> LO", <SEP> sont
<tb> utilisés <SEP> pour <SEP> sélectionner <SEP> les <SEP> données <SEP> dans <SEP> ensemble
<tb> ou <SEP> les <SEP> ensembles <SEP> 14 <SEP> de <SEP> données <SEP> L0, <SEP> typiquement <SEP> au
<tb> moyen <SEP> d' <SEP> multiplexeur <SEP> ou <SEP> "MUX", <SEP> 18. <SEP> Par <SEP> conséquent,
<tb> le <SEP> multiplexeur <SEP> 18 <SEP> envoie <SEP> les <SEP> données <SEP> d'antémemoire <SEP> de
<tb> l'antémémoire <SEP> LO <SEP> si <SEP> un <SEP> succès <SEP> de <SEP> voie <SEP> est <SEP> trouvé <SEP> dans
<tb> les <SEP> étiquettes <SEP> L0. <SEP> Si <SEP> les <SEP> signaux <SEP> engendrés <SEP> par <SEP> le
<tb> circuit <SEP> de <SEP> comparaison <SEP> 16 <SEP> sont <SEP> tous <SEP> des <SEP> zéros, <SEP> ce <SEP> qui
<tb> signifie <SEP> qu'il <SEP> n'existe <SEP> aucun <SEP> succès, <SEP> une <SEP> logique <SEP> 20
<tb> "d'insuccès" <SEP> est <SEP> utilisée <SEP> pour <SEP> engendrer <SEP> un <SEP> signal
<tb> d'insuccès <SEP> d'antémémoire <SEP> de <SEP> L0. <SEP> Un <SEP> tel <SEP> signal
<tb> d'insucces <SEP> d'antémémoire <SEP> LO <SEP> déclenche <SEP> ensuite <SEP> une
<tb> commande <SEP> qui <SEP> envoie <SEP> l'instruction <SEP> de <SEP> mémoire <SEP> à <SEP> la <SEP> file
<tb> d'attente <SEP> 22 <SEP> d'instructions <SEP> de <SEP> Ll <SEP> qui <SEP> en <SEP> mémoire
<tb> ou, <SEP> en <SEP> 'autres <SEP> termes, <SEP> retient <SEP> les <SEP> instructions <SEP> de
<tb> mémoire <SEP> qui <SEP> sont <SEP> en <SEP> attente <SEP> pour <SEP> accéder <SEP> à
<tb> l'antémémoire <SEP> Ll. <SEP> Par <SEP> conséquent, <SEP> s'il <SEP> déterminé
<tb> que <SEP> l'adresse <SEP> souhaitée <SEP> n'est <SEP> pas <SEP> contenue <SEP> dans
<tb> l'antémémoire <SEP> L0, <SEP> une <SEP> demande <SEP> concernant <SEP> l'adresse
Figure img00050001
souhaitée <SEP> est <SEP> ensuite <SEP> effectuée <SEP> de <SEP> façon <SEP> sérielle <SEP> à
<tb> l'antémémoire <SEP> L1.
<tb> son <SEP> tour, <SEP> la <SEP> file <SEP> d'attente <SEP> 22 <SEP> d'instructions
<tb> de <SEP> L1 <SEP> envoie <SEP> le <SEP> champ <SEP> d'index <SEP> d'adresse <SEP> physique <SEP> pour
<tb> l'adresse <SEP> souhaitée <SEP> dans <SEP> l'étiquette <SEP> ou <SEP> les <SEP> étiquettes
<tb> 24 <SEP> de <SEP> qui <SEP> peuvent <SEP> être <SEP> dupliquées <SEP> N <SEP> fois <SEP> pour <SEP> N
<tb> voies <SEP> associativité. <SEP> L'index <SEP> d'adresse <SEP> physique <SEP> est
<tb> aussi <SEP> entré <SEP> dans <SEP> l'ensemble <SEP> ou <SEP> les <SEP> ensembles <SEP> de
<tb> données <SEP> de <SEP> L1, <SEP> qui <SEP> peuvent <SEP> aussi <SEP> être <SEP> dupliqués <SEP> N <SEP> fois
<tb> pour <SEP> voies <SEP> d'associativité. <SEP> L'étiquette <SEP> ou <SEP> les
<tb> étiquettes <SEP> 24 <SEP> de <SEP> L1 <SEP> envoient <SEP> au <SEP> circuit <SEP> ou <SEP> aux
<tb> circuits <SEP> 28 <SEP> de <SEP> comparaison <SEP> Ll <SEP> une <SEP> adresse <SEP> physique
<tb> pour <SEP> chacune <SEP> des <SEP> voies <SEP> d'associativité. <SEP> Le <SEP> circuit <SEP> ou
<tb> les <SEP> circuits <SEP> 28 <SEP> de <SEP> comparaison <SEP> comparent <SEP> 'adresse
<tb> physique <SEP> envoyée <SEP> par <SEP> l'étiquette <SEP> ou <SEP> les <SEP> étiquettes <SEP> 24
<tb> de <SEP> à <SEP> l'adresse <SEP> physique <SEP> envoyée <SEP> par <SEP> la <SEP> file
<tb> d'attente <SEP> 22 <SEP> d'instructions <SEP> de <SEP> L1. <SEP> Pour <SEP> chacune <SEP> des
<tb> voies <SEP> d'associativité, <SEP> le <SEP> circuit <SEP> ou <SEP> les <SEP> circuits <SEP> 28
<tb> de <SEP> comparaison <SEP> de <SEP> L1 <SEP> engendrent <SEP> un <SEP> signal <SEP> ou <SEP> des
<tb> signaux <SEP> de <SEP> succès <SEP> de <SEP> Ll <SEP> qui <SEP> indiquent <SEP> si <SEP> une
<tb> concordance <SEP> a <SEP> été <SEP> trouvée <SEP> entre <SEP> les <SEP> adresses <SEP> physiques
<tb> pour <SEP> 'une <SEP> quelconque <SEP> des <SEP> voies <SEP> de <SEP> Ll.
<tb> Ces <SEP> signaux <SEP> de <SEP> succès <SEP> de <SEP> L1 <SEP> sont <SEP> utilisés <SEP> pour
<tb> sélectionner <SEP> les <SEP> données <SEP> dans <SEP> l'ensemble <SEP> ou <SEP> les
<tb> ensembles <SEP> 26 <SEP> de <SEP> données <SEP> de <SEP> L1 <SEP> en <SEP> utilisant <SEP> le
<tb> multiplexeur <SEP> 30. <SEP> En <SEP> effet, <SEP> en <SEP> fonction <SEP> des <SEP> signaux <SEP> de
<tb> succès <SEP> de <SEP> L1 <SEP> entrés <SEP> dans <SEP> le <SEP> multiplexeur <SEP> 30, <SEP> celui-ci
<tb> envoie <SEP> les <SEP> données <SEP> appropriées <SEP> d'antémémoire <SEP> de <SEP> L1
<tb> provenant <SEP> de <SEP> l'ensemble <SEP> ou <SEP> des <SEP> ensembles <SEP> 26 <SEP> données
<tb> de <SEP> L1, <SEP> si <SEP> un <SEP> succès <SEP> a <SEP> été <SEP> trouvé <SEP> dans <SEP> l'étiquette <SEP> ou
<tb> les <SEP> étiquettes <SEP> 24 <SEP> de <SEP> Ll. <SEP> Si <SEP> les <SEP> signaux <SEP> de <SEP> voie <SEP> de <SEP> L1
<tb> engendrés <SEP> dans <SEP> le <SEP> circuit <SEP> de <SEP> comparaison <SEP> 28 <SEP> L1 <SEP> sont
<tb> tous <SEP> des <SEP> zéros, <SEP> ce <SEP> qui <SEP> indique <SEP> qu'aucun <SEP> succès <SEP> n'a <SEP> été
<tb> engendré <SEP> dans <SEP> l'antémémoire <SEP> L1, <SEP> un <SEP> signal <SEP> d'insuccès
<tb> est <SEP> engendré <SEP> par <SEP> la <SEP> logique <SEP> 32 <SEP> d'insuccès. Un signal d'insuccès d'antémémoire L1 engendre, pour la structure 34 d'antémémoire L2, une demande concernant l'adresse souhaitée, est typiquement mise en application d'une manière semblable celle qui était décrite ci-dessus pour l'antémémoire Ll. Par conséquent, s'il est determiné que l'adresse souhaitée n'est pas contenue à l'intérieur de l'antémémoire L1, une demande concernant l'adresse souhaitée est envoyée façon sérielle à 'antémémoire L2. Dans l'art antérieur, des niveaux additionnels de hiérarchie sont ajoutés à volonté après l'antémémoire L2 d'une manière semblable à celle ' a été décrite ci-dessus pour les niveaux LO à L2, c'est-à-dire d'une manière telle que le processeur accède en série à chaque niveau d'antémémoire jusqu'à ce qu'une adresse soit trouvée dans l'un niveaux d'antémémoire.
Finalement, si aucun succès n'est atteint dans le dernier niveau de l'antémémoire, par exemple L2 de la FIG. 1, demande de mémoire est envoyée au bus de système de processeur pour accéder à la mémoire principale du système.
Des structures d'antémémoires à niveaux multiples de l'art antérieur posent des problèmes d'un premier type en que ces structures exigent d'accéder en série à chaque niveau d'antémémoire jusqu'à ce qu'un "succès" soit atteint. En effet, lorsqu'une adresse est demandée, des accès sont effectués en série à chaque niveau d'antémémoire jusqu'à ce que l'adresse demandée soit trouvée à l'intérieur de l'antémémoire, ou jusqu'à qu'il soit déterminé que l'adresse demandée ne réside pas dans l'antémémoire et qu'une demande concernant l'adresse soit finalement effectuée à la mémoire principale du système. Par conséquent, si l'adresse demandée réside dans la structure d'antémémoire L2, la demande doit d'abord être essayée de façon sérielle dans l'antémémoire L0, puis dans l'antémémoire L1 avant de pouvoir commencer à accéder à 1 antémémoire L2. En raison de la nature sérielle de l'accès à chaque niveau d'antémémoire, le laps de temps nécessaire pour accéder à une antémémoire de niveau supérieur, par exemple l'antémémoire L2 de troisième niveau ou davantage, augmente donc avec le nombre de niveaux de l'antémémoire mise en application à 1 intérieur d'une structure.
Un autre problème posé par les structures d'antémémoire à niveaux multiples de l'art antérieur est qu'elles consultent typiquement, en parallèle, l'étiquette et les données pour un niveau particulier d'antémémoire, afin de tenter d'améliorer le temps d'accès pour ce niveau d'antémémoire. Par exemple, pour tenter d'améliorer le temps d'accès, une mise en application de l'art antérieur exécute typiquement en parallèle une consultation d'étiquettes pour le niveau L1 d'antémémoire en utilisant l'étiquette 24 de et une consultation des données souhaitées de l'ensemble 26 de données de L1. De cette manière, si l'adresse souhaitée se trouve dans l'étiquette 24 de les données de l'ensemble 26 de données de L1 peuvent être directement disponibles parce que la consultation dans l'ensemble 26 de données de Ll a été exécutee en parallèle avec la consultation d'étiquettes.
Mais cette structure de l'art antérieur implique que les ensembles de données qui sont alimentés, comme l'ensemble 26 de données de L1, sont plus nombreux que ce est nécessaire. Supposons par exemple qu'une structure de données d'antémémoire associative à quatre voies soit mise en application. Une structure de 'art antérieur alimente ces quatre voies de l'ensemble de données pour consulter les données souhaitées, en parallèle avec l'exécution de la consultation d'étiquettes. Mais il faut au mieux accéder une seule des quatre voies pour l'adresse souhaitée en supposant que l'adresse souhaitée se trouve dans ce niveau d'étiquette, et il est possible qu'aucun accès, à aucune des quatre voies ne soit nécessaire pour l'adresse souhaitée si cette adresse ne se trouve pas dans ce niveau d'antémémoire. Par conséquent, ces structures de l'art antérieur dissipent de l'énergie qui est utilisée pour alimenter inutilement chaque voie d'un ensemble de données.
En outre, les ressources de l'ensemble de données sont perdues dans ces structures de l'art antérieur parce l'accès s'effectue à chaque voie de l'ensemble de données sans utiliser totalement les ressources de chaque voie de l'ensemble de données. En effet, structures de l'art antérieur accèdent typiquement à chaque voie d'un ensemble de données, en bloquant donc les ressources de chaque voie de l'ensemble de données, c'est-à-dire qu'elles empêchant d'autres instructions d'accéder à ces ressources, tout en n'utilisant au mieux qu'une seule voie de l'ensemble de données et en n'utilisant, éventuellement aucune des voies de l'ensemble de données si l'adresse souhaitée ne se trouve pas dans ce niveau d'antémémoire. Les structures de l'art antérieur bloquent inutilement des ressources d'antémémoire, en perdant donc des ressources qui peuvent éventuellement être utilisées pour satisfaire à d'autres instructions.
De plus, pour certaines instructions rencontrées dans un système, il suffit d'accéder aux étiquettes de l'antémémoire, sans qu'un accès à l'ensemble de données d'antémémoire soit nécessaire. Pour des examens de bus de système, par exemple, suffit d'accéder aux étiquettes pour trouver si certaine ligne d'antémémoire est résidente dans l'un quelconque des niveaux d'antémémoire. Tel qu'il est utilisé ici, terme "examen", qui traduit le mot "snoop" qui signifie aussi un espionnage, désigne une demande d'un premier processeur à un deuxième processeur concernant 'existence éventuelle d'une adresse particulière d'antémémoire dans le deuxième processeur. La plupart du temps, l'accès à une antémémoire pour un examen indique que la ligne d'antémémoire n'est pas présente, de sorte qu'aucun accès de données n'est necessaire. Mais les structures d'antémémoire de l'art antérieur sont typiquement mises en application, comme exposé ci-dessus, d'une manière telle que 1 accès à l'ensemble de données de l'antémémoire s'effectue en parallèle avec la consultation d'étiquette. Par conséquent, un accès d'examen de l'étiquette perd typiquement les ressources de l'ensemble de données parce qu'aucun accès n'est nécessaire, la plupart du temps, à l'ensemble de données. En outre, des examens du bus de système exigent généralement réponse très rapide. Par conséquent, la structure à accès sériel des antémémoires de l'art antérieur peut provoquer un temps de réponse supérieur à qui est requis par le système pour répondre à un examen. Les structures d'antémémoires à niveaux multiples de l'art antérieur peuvent donc exercer un impact négatif sur le temps nécessaire pour satisfaire à certaines demandes, comme des demandes d'examen, pour lesquelles suffit d'accéder aux étiquettes d'antémémoire.
C'est donc un premier but de la présente invention que de réaliser une structure d'antémémoire permette d'accéder en un temps aussi bref que possible à des antémémoires de niveaux supérieurs, par exemple de niveau deux ou plus élevé.
C'est un autre but que de réaliser une structure d'antémémoire qui n'accède pas inutilement à l'ensemble de données de l'antémémoire, et qui évite donc de perdre la puissance de ressource de l'ensemble données.
C'est un troisième but que de réaliser une structure d'antémémoire qui exécute aussi rapidement possible des demandes pour lesquelles il suffit d'accéder à des étiquettes de l'antémémoire, et ' y parvient sans perdre inutilement la puissance de ressource de l'ensemble de données de l'antémémoire.
De façon générale, ces buts sont atteints un système et un procédé qui déterminent en parallèle, pour de multiples niveaux d'une antémémoire à niveaux multiples, si l'un quelconque de ces niveaux multiples peut satisfaire à une demande d'accès en mémoire. En d'autres termes, l'accès à des étiquettes de niveaux multiples de l'antémémoire à niveaux multiples s'effectue en parallèle pour déterminer si l'adresse pour une demande d'accès en mémoire est contenue à l'intérieur de l'un quelconque des multiples niveaux. Les accès à des étiquettes pour de multiples niveaux l'antémémoire à niveaux multiples sont donc exécutés de façon précoce dans le pipe-line de la hiérarchie d'antémémoire afin de permettre consultation précoce des étiquettes. Par exemple, dans mode de réalisation préféré, l'accès aux étiquettes du premier niveau de l'antémémoire et l'accès étiquettes du deuxième niveau de l'antémémoire s'effectuent en parallèle. Il est possible aussi d'accéder en parallèle à des étiquettes d'antémémoire de niveaux additionnels, jusqu'à N niveaux, en même temps qu'aux étiquettes du premier niveau. conséquent, les accès aux étiquettes du premier niveau et d'autres niveaux s'effectuent en parallèle de sorte qu'il est connu, à la fin de l'accès aux étiquettes d'antémémoire du premier niveau, si une demande d'accès en mémoire peut être satisfaite par le premier niveau, le deuxième niveau, ou l'un quelconque N niveaux additionnels de l'antémémoire auquel l'accès 'est effectué en parallèle.
De plus, dans un mode de réalisation préféré, 'antémémoire à niveaux multiples est agencée d'une manière telle que l'accès ne s'effectue à l'ensemble données d'un niveau d'antémémoire que s'il est déterminé que c'est ce niveau d'antémémoire qu'il faut pour satisfaire à une demande reçue accès en memoire. Par conséquent, dans un mode de réalisation préféré, l'accès ne s'effectue pas nécessairement aux ensembles de données de la mémoire niveaux multiples. Par exemple, dans un mode de réalisation préféré, l'accès aux étiquettes est effectué séparément de l'accès à l'ensemble de données pour un niveau d'antémémoire, et aucun accès ne s'effectue à l'ensemble de données de ce niveau d'antémémoire en cas d'insuccès concernant les étiquettes de niveau, c'est-à-dire si les données ne sont pas présentes dans ce niveau d'antémémoire. Ceci offre l'avantage d'économiser de 'énergie parce que les ensembles de données ne sont pas alimentés inutilement. En d'autres termes, il est possible de ne pas alimenter des batteries de mémoire, ou ensembles de données, inutilisés, dans mode de réalisation préféré, ce qui réduit la consommation d'énergie. I1 est évidemment possible aussi, dans des variantes de mode de réalisation, d'alimenter les batteries de mémoire inutilisées, et tout mode de réalisation correspondant est inclus dans le cadre de la présente invention.
Préserver les ressources des ensembles de données permet aussi à ces ressources d'être utilisées par autres instructions au lieu d'être perdues inutilement par des accès effectués alors que les données ne sont pas présentes dans ce niveau antémémoire. De plus, des demandes qui n'exigent d'accéder qu'aux étiquettes d'antémémoire, comme les demandes d'examen, ne provoquent pas un accès aux ressources données puisque les accès aux étiquettes sont séparés des accès aux ensembles de données, dans un mode de réalisation préféré. Par conséquent dans un mode réalisation préféré, des demandes qui n'exigent d'accéder qu'aux étiquettes d'antémémoire sont effectuées aussi rapidement que possible et d'une manière qui préserve tant l'énergie que les ressources de l'ensemble de données parce que la mémoire mise en application d'une manière telle qu'aucun accès à l'ensemble de données n'est effectué pour de telles données.
De plus, dans un mode de réalisation préféré, l'antémémoire à niveaux multiples est subdivisée en N voies d'associativité. De façon particulièrement préférable, l'antémémoire à niveaux multiples est subdivisée en quatre voies. Dans un mode de réalisation préféré, l'accès ne s'effectue qu'à une seule voie de l'ensemble de données pour satisfaire à une demande d'accès en mémoire. En effet, dans un mode de réalisation préféré, des accès sont effectués aux étiquettes d'antémémoire pour un niveau d'antémémoire, avant tout accès à l'ensemble de données de ce niveau, afin de déterminer si une adresse de mémoire demandée se trouve à l'intérieur d'un niveau de l'antémémoire. Par conséquent, lors d'un accès à l'ensemble de données d'un niveau d'antémémoire, la voie dans laquelle résident les données souhaitées est connue. De façon correspondante, seule cette voie de 'ensemble de données est alimentée, et l'accès ne s'effectue qu'à celle-ci pour satisfaire à la demande d'accès. Puisque aucun accès n'est effectué aux autres voies de l'ensemble de données qui ne peuvent pas satisfaire à la demande, ceci permet d'économiser l'énergie et les ressources des ensembles de données. Dans un mode de réalisation plus particulièrement préféré, l'antémémoire à niveaux multiples peut être mise en application pour permettre une utilisation maximale des ensembles données d'antémémoire. Comme exposé ci-dessus, accès inutiles à des ensembles de données d'antémémoire sont évités dans un mode de réalisation préféré. Par conséquent dans un tel mode de réalisation, accès à des ensembles de données d'antémémoire qui ne peuvent pas satisfaire à l'une des demandes reste libre pour toute autre demande. Dans un mode de réalisation le plus particulièrement préféré, l'antémémoire à niveaux multiples peut être mise en application d'une manière telle que des instructions multiples peuvent être satisfaites en parallèle par les ensembles de données d'antémémoire. En effet, les ressources qui restent libres peuvent être utilisées pour satisfaire de façon efficace à d'autres demandes d'accès en mémoire.
De façon plus particulière, l'invention fournit, selon un premier aspect, un procédé d'accès à une antémémoire à niveaux multiples, caractérisé en ce qu'il comprend les étapes consistant à: recevoir une demande concernant un accès à une structure antémémoire à niveaux multiples; déterminer si ladite demande d'accès mémoire peut être satisfaite par un niveau de ladite structure d'antémémoire à niveaux multiples, ladite détermination étant effectuée en parallèle pour de multiples niveaux de ladite structure d'antémémoire à niveaux multiples; et, s'il est déterminé que ladite demande accès en mémoire peut être satisfaite par un niveau de ladite structure d'antémémoire à niveaux multiples, satisfaire à ladite demande d'accès en mémoire par ledit niveau de ladite structure d'antemémoire à niveaux multiples.
Ladite étape qui détermine si ladite demande d'accès en mémoire peut être satisfaite un niveau de ladite structure d'antémémoire à niveaux multiples peut comprendre en outre l'étape consistant à: déterminer si une adresse de mémoire à laquelle un accès est demandé est incluse à l'intérieur d'un niveau ladite structure d'antémémoire à niveaux multiples.
On peut prévoir qu'un accès à un ensemble de données 'un niveau d'antémémoire n'est effectué que s'il déterminé que ce niveau d'antémémoire peut satisfaire à ladite demande d'accès en mémoire.
Ladite antémémoire à niveaux multiples peut être subdivisee en voies multiples.
modalité préférée prévoit alors que c'est par une voie unique que s'effectue l'accès à un ensemble donné pour un niveau d'antémémoire qui a été déterminé comme susceptible de satisfaire à ladite demande d'accès mémoire.
Dans ce cas, selon une modalité avantageuse, un accès, en parallèle avec l'accès à ladite voie unique, peut être effectué à une deuxième voie dudit ensemble de données pour ledit niveau d'antémémoire qui a été déterminé comme susceptible de satisfaire à une deuxième demande d'accès en mémoire.
Selon un deuxième aspect, l'invention réalise un système informatique comprenant: un processeur qui exécute des instructions; et une structure d'antémémoire à niveaux multiples accessible par ledit processeur pour satisfaire à des demandes d'accès en mémoire, caractérisé en ce que ladite structure d'antémémoire à niveaux multiples est configurée pour recevoir une demande d'accès en mémoire et déterminer en parallèle pour niveaux multiples de ladite antémémoire à niveaux multiples si 'un desdits multiples niveaux peut satisfaire à ladite demande d'accès en mémoire.
Ladite structure d'antémémoire niveaux multiples peut comprendre en outre: un ensemble de mémoire d'étiquettes pour un premier niveau d'antémémoire, qui reçoit un index 'adresse virtuelle et envoie une adresse physique correspondante; et un ensemble de mémoire d'étiquettes pour un deuxième niveau d'antémémoire qui reçoit un index d'adresse virtuelle et envoie une adresse physique correspondante.
Ladite structure d'antémémoire à niveaux multiples peut comprendre en outre: un premier circuit de comparaison qui compare 'adresse physique envoyée par un tampon de consultation en parallèle de traduction et l'adresse physique envoyée par ledit ensemble de mémoire 'étiquette pour ledit premier niveau d'antémémoire, afin de déterminer si une concordance est atteinte pour ledit premier niveau d'antémémoire; un deuxième circuit de comparaison qui compare l'adresse physique envoyée par ledit tampon de consultation en parallèle de traduction l'adresse physique envoyée par l'édit ensemble de mémoire d'étiquette pour ledit deuxième niveau d'antémémoire, afin de déterminer si une concordance est atteinte pour ledit premier niveau d'antémémoire; et être caractérisée en ce que ledit premier circuit de comparaison et ledit deuxième circuit de comparaison déterminent en parallèle si une concordance est atteinte, soit pour ledit premier niveau d'antémémoire, soit pour ledit deuxième niveau d'antémémoire. Selon un troisième aspect, l'invention réalise une structure d'antémémoire à niveaux multiples qui est accessible à un processeur pour satisfaire ' des demandes d'accès en mémoire pour des instructions en cours d'exécution par ledit processeur, et comprend: un moyen destiné à recevoir d'un processeur une demande d'accès en mémoire; et un moyen destiné à déterminer si un niveau de structure d'antémémoire à niveaux multiples peut satisfaire à une demande reçue d'accès en mémoire et qui est caractérisée en ce que ledit moyen de détermination est configuré de manière à déterminer en parallèle, pour de multiples niveaux de ladite structure d'antémémoire à niveaux multiples, si l'un desdits multiples niveaux est susceptible de satisfaire à ladite demande reçue accès en mémoire.
Il ressort clairement à l'homme de l'art 'un mode de réalisation préféré réalise une structure antémémoire à niveaux multiples qui peut recevoir tout type de demande d'accès provenant une instruction et y satisfaire, y compris une demande de lecture, une demande d'écriture et une demande de lecture-modification-écriture. I1 ressort aussi clairement qu'un avantage technique de l'un des aspects de la présente invention est la mise en application d'une structure d'antémémoire à niveaux multiples qui permet d'accéder en parallèle à de multiples niveaux d'étiquettes de mémoire, ce qui permet de déterminer rapidement et efficacement si une demande d'accès en mémoire peut être satisfaite par 'un quelconque de ces multiples niveaux d'antémémoire. Mettre en application de façon précoce dans le pipe-line l'accès aux étiquettes d'antémémoires des niveaux supérieurs, par exemple le deuxième niveau ou un niveau supérieur, permet un accès rapide à une antémémoire de niveau supérieur ou un accès rapide au-delà de l'antémémoire, par exemple un accès à la mémoire principale. Un autre avantage technique de l'un des aspects de la présente invention est une structure d'antémémoire à niveaux multiples d'un mode de réalisation préféré n accède pas inutilement à l'ensemble de données de l'antémémoire, en economisant donc l'énergie et en préservant des ressources de l'ensemble de données. Un autre avantage technique encore de l'un des aspects de la présente invention est qu'une structure d'antémémoire à niveaux multiples d'un mode de réalisation préféré exécute, aussi rapidement que possible des demandes qui n'exigent d'accéder qu'aux étiquettes d'antémémoire, par exemple des demandes d'examen, sans perte inutile d'énergie ou de ressources de l'ensemble de données d'antémémoire.
particularités et avantages techniques de la présente invention ont été expliqués ' dessus de façon assez générale afin que la description détaillée de 'invention qui suit puisse être mieux comprise. Des particularités et avantages additionnels de l'invention seront décrits dans ce qui suit et forment l' et revendications de l'invention. L'homme de l' comprend que la conception et mode de réalisation spécifique décrits peuvent être utilisés directement comme base pour modifier ou concevoir d'autres structures qui mettent en oeuvre les mêmes fins de la présente invention. L'homme de l'art réalise aussi que ces structures équivalentes ne s'ecartent pas de l'esprit et du cadre de 1 invention, exposés dans les revendications annexées.
Les buts, particularités et avantages de la présente invention exposés ci-dessus ainsi que d'autres ressortiront davantage de la description qui suit de modes de réalisation préférés en conjonction avec les dessins dans lesquels: la FIGURE 1 représente un exemple de structure d'antemémoire à niveaux multiples de l'art antérieur; et la FIGURE 2 représente un mode de réalisation préféré d'une structure d'antémémoire niveaux multiples de la présente invention.
La FIG. 2 représente un mode de réalisation préféré de la présente invention. Dans mode de réalisation préféré, la structure LO d'antémémoire de premier niveau est mise en application de la manière décrite pour l'antémémoire LO de l'art antérieur de la FIG. 1. De façon plus spécifique, lorsqu'une instruction exige un accès à une adresse particulière, une adresse virtuelle est envoyée du processeur au système d'antémémoire. Cette adresse virtuelle contient typiquement un champ d'index et un champ de numéro de page virtuelle. De façon particulièrement préférée, l'adresse virtuelle est entrée dans le tampon de consultation en parallèle de traduction, ou TLB, 10 de l'antémémoire L0. Bien qu'un mode de réalisation préféré inclue un TLB 10 pour traduire une adresse virtuelle en une adresse physique, il faut comprendre que mettre en application un TLB n'est pas nécessaire pour la présente invention. Par conséquent, bien qu'il soit particulièrement préférable que la structure de l'antémémoire comporte un TLB 10, l'antemémoire peut être mise en application sans TLB 10 dans des variantes de mode de réalisation. Par exemple, la structure d'antémémoire peut recevoir des adresses physiques pour des demandes d'accès en mémoire, au lieu des adresses virtuelles, et n'exiger aucun TLB, ou l'antémémoire peut être mise en application de manière à accéder à la mémoire en utilisant des adresses virtuelles reçues, sans exiger traduction de ces adresses virtuelles en adresses physiques. En outre, une structure autre qu'un TLB 10 peut être utilisée pour traduire en adresse physique adresse virtuelle reçue.
Dans un mode de réalisation préféré, le TLB 10 exécute une traduction d'une adresse virtuelle en une adresse physique. Le champ d'index d'adresse virtuelle est entré dans l'ensemble ou les ensembles 12 de mémoire d'étiquette de L0. Comme représenté à la FIG. 2, l'ensemble 12 de mémoire d'étiquettes de LO peut être dupliqué N fois à l'intérieur de l'antemémoire LO pour N "voies" d'associativité. Il faut comprendre que l'antémémoire de niveau inférieur d'un système peut etre subdivisée, dans un mode de réalisation préféré, un nombre quelconque de voies. Dans mode de réalisation particulièrement préféré, les antémémoires de niveau inférieur sont subdivisées en quatre voies. Comme représenté à la FIG. 2, l'index d'adresse virtuelle est aussi entré dans la structure ou les structures de l'ensemble de données LO ou "structure(s) de mémoire" 14 qu'il est possible aussi de dupliquer N fois pour N voies d'associativité. Il faut comprendre que la structure ou les structures 14 d'ensemble de données de LO comprennent données mémorisées à l'intérieur de l'antémémoire L0, qui peut être subdivisée en plusieurs voies.
L'étiquette 12 de LO envoie une adresse physique pour chacune des voies d'associativité. Cette adresse physique est comparée à l'adresse physique sortie par TLB 10 de LO en utilisant le ou les circuits de comparaison 16, qui peuvent aussi être dupliqués N fois pour N voies d'associativité. Comme exposé en référence à la FIG. 1, le ou les circuits de comparaison engendrent un signal de "succès" qui indique s'il existe une concordance entre les adresses physiques. De façon particulièrement préférable, le ou les circuits 16 de comparaison engendrent un signal unique pour chacune des voies, d'où résultent N signaux pour. N voies d'associativité, chaque signal indiquant si un succès a été atteint pour chaque voie.
signaux de succès, c'est-à-dire les succès de voies de LO", sont utilisés pour sélectionner les données dans l'ensemble ou les ensembles 14 de données L0, de façon particulièrement préférée au moyen d'un multiplexeur ou "MUX" 18. Par conséquent, dans un mode de réalisation préféré, le multiplexeur 18 envoie les données d'antémémoire à partir de l'antémémoire LO si un succès de voie a été trouvé dans les étiquettes de L0. En revanche, si les signaux engendrés par les circuits 16 de comparaison sont tous des zéros, ce qui signifie l'absence de succès, la logique 20 insuccès" est utilisée, dans un mode de réalisation préféré, pour engendrer un signal d'insuccès d'antémémoire L0.
Dans un mode de réalisation préféré, l'ensemble de mémoire 24 d'étiquettes de L1 est mis en application de façon précoce dans le pipe-line et en parallèle avec l'accès d'antémémoire de premier niveau. L'accès à l'ensemble de mémoire 24 étiquettes de Ll s'effectue en utilisant l'index qui provient de l'entrée correspondante d'adresse virtuelle, et l'ensemble de mémoire 24 d'étiquettes de envoie une adresse physique, qui est utilisée pour le circuit de comparaison, ou comparateur, 28 pour comparer l'adresse physique engendrée par le TLB 10 et sorties de l'ensemble de mémoire 24 d'étiquettes de L1. Par conséquent, un signal précoce de succès d'étiquette de L1 est engendré en parallèle avec l'accès en antémémoire de premier niveau. Dans un mode de réalisation préféré, un signal de succès est donc engendré en parallèle à la fois pour l'étiquette 12 LO et pour l'étiquette 24 de L1. Comme représenté à la FIG. 2, si un succes est atteint dans L1, la demande peut être planifiée dans la file d'attente 22 d'instructions de L1 pour être satisfaite par l'ensemble 26 de données de L1.
Dans un mode réalisation préféré, si un succès est atteint dans l'antémémoire L0, la demande est satisfaite par l'ensemble 14 de données de L0, et cette demande n'est pas planifiée dans la file d'attente 22 d'instructions de L1. Par exemple, dans un mode de réalisation préféré, la sortie de la logique 20 d'insuccès pour l'antémémoire LO est combinée avec le signal de succès de Ll envoyé par le circuit de comparaison 28, de sorte que la demande n'est insérée dans la file d'attente 22 d'instructions de Ll qui si un insuccès est indiqué pour l'antémémoire LO et qu'un succès est atteint par l'antémémoire de Ll. Par conséquent, un signal de la logique d'insuccès 20 qui indique qu'aucun succès n'a été atteint dans l'antémémoire LO déclenche une commande d'envoi de l'instruction de mémoire à la file d'attente 22 d'instructions de Ll, si un succès est atteint dans l'étiquette 24 de Ll comme indiqué par la sortie du circuit de comparaison 28. Dans un mode de réalisation préféré, si aucun succès de voie n'est atteint dans l'antémémoire de LO alors qu'un succès de voie est atteint dans l'étiquette ou les étiquettes 24 de L1, la demande est chargée dans la file d'attente 22 d'instructions de L1 pour accéder à l'ensemble ou aux ensembles 26 de données de L1.
Compte tenu de ce qui précède, dans un mode de réalisation préféré, l'accès ne s'effectue à l'ensemble ou aux ensembles 26 de données de L1 que si un succès est atteint à l'intérieur de l'étiquette ou des étiquettes 26 de L1. L'homme de l'art doit cependant comprendre qu'il est possible de mettre en application des variantes de mode de réalisation où un accès s'effectue à l'ensemble ou aux ensembles 26 de données de Ll en parallèle avec un accès à l'étiquette ou étiquettes 21 de L1, et que toute mise en application de ce type est incluse à l'intérieur du cadre de la présente invention. Dans une variante de mode de réalisation, les accès peuvent s'effectuer par exemple en parallèle à l'étiquette ou aux étiquettes 12 de LO et à l'étiquette ou aux étiquettes de L1, et l'accès à l'ensemble ou aux ensembles 14 LO peut s'effectuer en parallèle avec l'accès à l'étiquette ou aux étiquettes 12 de L0, et l'accès à l'ensemble ou aux ensembles 26 de données de Ll peut s'effectuer en parallèle avec l'accès à l'ensemble ou aux ensembles 24 d'étiquettes de L1.
Comme exposé ci-dessus, dans un mode de réalisation préféré, une demande d'accès mémoire n'est planifiée dans la file d'attente d'instructions de L1 qu'après détermination d'un succès atteint dans l'étiquette ou les étiquettes 24 de Ll. De plus, dans un mode de réalisation préféré, une information indiquant la voie spécifique à laquelle l'accès doit s'effectuer, c'est-à-dire la voie spécifique pour laquelle un succès a été atteint, est incluse avec une demande planifiée dans la file d'attente 22 d'instruction. En effet, puisque le circuit de comparaison 28 détermine si un succès a été atteint pour l'étiquette ou les étiquettes 24 de L1 avant la planification de la demande dans la file d'attente 22 de L1, les demandes planifiées dans la file d'attente de L1 peuvent inclure une information spécifiant la voie pour laquelle un succès a été atteint. Dans un mode de réalisation préféré, la file d'attente 22 d'instructions de L1 n'envoie donc la demande qu'à l'ensemble 26 de données où l'accès doit être effectué pour satisfaire à la demande. Par conséquent, comme représenté à la FIG. 2, si un succès est atteint à l'intérieur de l'étiquette ou des étiquettes 24 de L1 pour une adresse demandée, l'accès ne s'effectue qu au seul ensemble 26A à 26D de données requis pour satisfaire la demande. Les ensembles restants de données peuvent donc être utilisés pour satisfaire à d'autres instructions, ou leur alimentation peut être supprimée ou au moins réduite pour économiser l'énergie du processeur. Dans un mode de réalisation préféré, la file d'attente d'instructions de L1 reçoit donc une information indiquant la voie particulière de l'ensemble de données qui est nécessaire pour satisfaire une instruction, ce qui permet à la file d'attente d'instructions d'envoyer de façon efficace des instructions aux quatre structures 26A à 26D de l'ensemble de données. Supposons par exemple qu' première instruction exige un accès à la voie 0 de l'ensemble de données Ll, représentée par 26A à la FIG. 2, et qu'une deuxième instruction exige un accès à la voie 1 de l'ensemble de données de L1, représentée par 26B à la FIG. 2. Dans un mode de réalisation préféré, la première et la deuxième instructions pourraient être envoyées en parallèle par la file d'attente 22 d'instructions de L1. Il serait donc possible à N instructions d'accéder en parallèle à N voies d'un ensemble de données d'un niveau d'antémémoire.
I1 y a lieu de rappeler Que les structures d'antémémoire de l'art antérieur exigent typiquement d'accéder à toutes les voies de l'ensemble de données, alors qu'une seule des voies, au mieux, est utilisée pour satisfaire à la demande. Un mode de réalisation préféré permet donc une utilisation beaucoup plus efficace des ressources de l'antémémoire en n'alimentant que la voie de l'ensemble de données nécessaire pour satisfaire à la demande et en n'accédant qu'à celle-ci, ce qui laisse la possibilité, soit de supprimer ou de réduire 1 alimentation des voies restantes de l'ensemble de données, soit d'accéder en parallèle à ces voies pour satisfaire à d'autres demandes. Dans un mode de réalisation préféré, lorsqu'un ensemble de données d'une première voie est en cours d'utilisation pour satisfaire à une première demande, une ou plusieurs des voies restantes de l'ensemble de données peuvent être utilisées pour satisfaire à une deuxième demande, en satisfaisant plus efficacement à la deuxième demande que si celle-ci devait attendre fin de l'accès de la première demande à la première voie, ce que les structures de l'art antérieur exigent typiquement.
Compte tenu de ce qui précède, dans mode de réalisation préféré, une information est envoyée pour ne valider que la voie de l'ensemble de données qui peut satisfaire à la demande qui doit accéder. L'homme de l'art doit cependant comprendre qu'il est possible aussi de mettre en application des variantes de modes de réalisation dans lesquelles des accès s effectuent à toutes les voies de l'ensemble de données d'un niveau d'antémémoire pour lequel un succès a été atteint, par exemple tous les ensembles à 26D de données, et qu'une telle mise en application est incluse à l'intérieur du cadre de la présente invention. Par exemple, dans une variante de mode de réalisation, il est possible d'accéder en parallèle à l'ensemble ou aux ensembles 12 d'étiquettes de LO et à l'ensemble ou aux ensembles 24 d'étiquettes de Ll et, si un succès est atteint pour l'étiquette ou les étiquettes de Ll, il est possible d'accéder à tous les ensembles 26A à 26D de données de Ll pour tenter de satisfaire à la demande.
Comme exposé plus haut, dans un mode de réalisation préféré, les signaux envoyés par le circuit de comparaison 28 sont combinés avec les signaux de sortie de la logique d'insuccès 20 de l'antémémoire L0. Si les signaux engendrés par le circuit de comparaison sont tous des zéros, ce qui signifie l'absence de succès, et si les signaux engendrés par la logique d'insuccès 20 indique qu'aucun succès n'est atteint pour l'antémémoire L0, la mémoire ne peut être satisfaite par aucune des deux antémémoires LO ou Ll Dans un tel cas, la demande n'est donc pas planifiée dans la file d'attente 22 d'instructions de L1, qui évite un accès inutile à l'ensemble ou aux ensembles 26 de données de L1. De plus, en absence de tout succès dans les deux antémémoires LO ou L1, logique "d'insuccès" 32 est utilisée pour engendrer, dans un mode de réalisation préféré, un signal d'insuccès d'antémémoire de Ll qui déclenche une commande envoi de la demande au niveau séquentiel suivant de l'antémémoire 50 ou, en l'absence de niveau supérieur d'antémémoire, à la mémoire principale 60 du système.
Par conséquent, si un accès à l'antémémoire L2 est nécessaire, il est atteint plus rapidement parce que mettre en application de façon précoce dans le pipe-line l'accès à 1 étiquette 24 de L1 permet un accès à l'étiquette 24 de L1 en parallèle avec l'accès à l'étiquette 12 de L0. En effet, au lieu d'accéder en série aux étiquettes LO et de Ll, de la manière typique dans l'art antérieur, les accès aux étiquettes de LO et de L1 sont parallèles, de sorte que l'accès à l'antémémoire de niveau supérieur L2 est plus rapide si la demande ne peut pas être satisfaite par les niveaux inférieurs LO ou L1 d'antémémoire. I1 faut évidemment comprendre qu'un nombre quelconque de niveaux inférieurs d'antémémoire peuvent ainsi être mis en application de manière parallèle pour permettre un accès plus rapide à un niveau supérieur d'antemémoire et que toute mise en application de ce type est incluse dans le cadre de la présente invention. Par exemple, les niveaux L0, et L2 d'antemémoire peuvent tous être mis en application en vue d'un accès parallèle, et l'accès s'effectuera en parallèle aux étiquettes de chacune ces antémémoires pour tenter de satisfaire à une demande. Il est en outre possible de mettre en application des antémémoires de niveau supérieur de manière sérielle de façon à réaliser des accès en parallèle aux antémémoires de niveaux inférieurs et ensuite des accès sériels aux antémémoires de niveaux supérieurs, et toute mise en application de ce type est incluse dans le cadre de la présente invention. Par conséquent, la case 50 de la FIG. 2 représente tous niveaux additionnels d'antémémoire, par exemple des niveaux L2 à LN d'antémémoire, qui peuvent être mis en application à l'intérieur de 1a structure d'antémémoire de façon, soit sérielle, soit parallèle. Bien évidemment, si aucun succès n'est atteint à l'intérieur de l'un quelconque des niveaux d'antemémoire, une demande doit être envoyée à la mémoire principale 60 du système pour satisfaire à la demande d'accès en mémoire des instructions.
Compte tenu de ce qui précède, dans un mode de réalisation préféré, l'antémémoire est mise en application de manière à réaliser un accès en parallèle aux étiquettes d'antémémoire de niveaux inférieurs, par exemple un accès à l'étiquette ou aux étiquettes 12 de L1 et à l'étiquette ou aux étiquettes 24 L1. Par exemple, un accès est effectué en parallèle aux étiquettes 12 d'antémémoire de premier niveau et aux étiquettes d'antémémoire d'un ou plusieurs niveaux supérieurs, par exemple l'étiquette 24 de L1. De plus, dans un mode de réalisation préféré, l'antémémoire est mise en application d'une manière telle que, si un succès est atteint pour l'antémémoire de premier niveau, la demande est satisfaite par l'ensemble 14 de données d'antémémoire LO et la demande n'est planifiée dans aucune file d'attente d'instructions d'un niveau supérieur, par exemple file d'attente 22 d'instructions de L1. En revanche, si aucun succès n'est atteint pour l'antémémoire de premier niveau et qu'un succès est atteint pour une antémémoire de niveau supérieur, par exemple l'antémémoire Ll, la demande est planifiée dans cette file d'attente d'instructions d'antémémoire de niveau supérieur, par exemple la file d'attente 22 d'instructions de L1. En outre, si aucun succes n'est atteint, ni pour l'antémémoire de premier niveau, ni pour 1 antémémoire de niveau supérieur comme l'antémémoire L1 à laquelle l'accès s'effectue en parallèle avec l'antémémoire de premier niveau aucune demande n'est planifiée dans une file d'attente d'instructions pour aucune de ces antémémoires de niveau supérieur, et une demande est envoyée au niveau immédiatement supérieur d'antémémoire ou, en l'absence d'un niveau immédiatement supérieur d'antémémoire, à la mémoire principale du système.
De plus, dans un mode de réalisation préféré, les instructions ou activités qui n'exigent qu'un accès aux étiquettes, comme une demande d'examen, ne provoquent aucun accès à des données. Par exemple, la structure d'antémémoire d'un premier procédé peut recevoir du bus du système une demande d'examen provenant du deuxième processeur et demandant si une ligne particulière d'antémémoire est présente à l'intérieur de l'antémémoire du premier processeur. Une telle demande d'examen peut amener une adresse physique ou virtuelle qui représente l'adresse souhaitée à être entrée dans un système d'antémémoire. Dans un mode de réalisation préféré, cette adresse est envoyée en parallèle tant à l'étiquette de LO qu'à l'étiquette de L1. Un avantage d'un accès simultané aux antémémoires de premier niveau et de deuxième niveau est que les résultats des comparaisons sortis par les logiques 16 et 28 peuvent être envoyés à un bloc 36 de réponse d'examen, qui peut ensuite envoyer le résultat indiquant si l'adresse souhaitée se trouve à l'intérieur de LO ou de Ll de l'antémémoire du processeur. Par conséquent, un mode de réalisation préféré permet d'envoyer une réponse d'examen vers le bus du système plus rapidement qu'une mise en application d'antémémoire qui exige un accès sériel en premier lieu à l'antémémoire LO et ensuite à l'antémémoire L1. Par conséquent, la réponse d'examen peut être atteinte aussi rapidement que possible suite de l'accès parallèle à de multiples niveaux d'étiquettes d'antémémoire.
Bien qu'un mode de réalisation ait été représente et décrit comme permettant un accès parallèle aux étiquettes d'antémémoire de premier niveau et de deuxième niveau, l'homme de l'art doit comprendre que des accès s'effectuent en parallèle à un nombre quelconque de niveaux d'étiquette d'antémémoire et toute mise en application de ce type est incluse l'intérieur du cadre de la présente invention. De plus, alors que des accès s'effectuent en parallèle à de multiples niveaux d'étiquettes d'antémémoire dans un mode de réalisation préféré, la mise en application de 1 antémémoire peut être telle que les accès à tous les autres niveaux d'antémémoire s'effectuent de manière sérielle, comme dans les mises en application de 1 art antérieur, et toute mise en application de ce type est incluse à l'intérieur du cadre de la présente invention. Il est par exemple possible d'accéder en parallèle aux deux premiers niveaux des étiquettes d'antémémoire et, si aucun succès n'est atteint, d'accéder de façon sérielle à un troisième niveau de l'antemémoire.
I1 ressort clairement aussi à l'homme de 1 art qu'un mode de réalisation préféré peut être mis en application pour une antémémoire comportant un nombre quelconque de ports. En d'autres termes, un nombre quelconque de ports peut être mis en application à l'interieur des niveaux d'antémémoire. Par exemple, la structure de l'antémémoire peut être mise en application sous forme d'antémémoire à quatre ports où quatre accès sont effectués aux étiquettes d'antémémoire de LO et quatre accès sont effectués en parallèle, c'est-à-dire simultanément, aux étiquettes d'antémémoire de L1. Par conséquent, l'antémémoire peut être mise en application comme antémémoire à port unique ou à nombre quelconque de ports. De plus, la mise en application de l'antémémoire peut être telle que nombre de ports diffère selon les divers niveaux d'antémémoire. Par exemple, une antémémoire de premier niveau peut être mise en application comme antémemoire à deux ports et deux accès par cycle, et une antémémoire de deuxième niveau peut être mise en application comme antémémoire à quatre ports et quatre accès par cycle.
Il ressort clairement à l'homme de l'art , dans un mode de réalisation préféré, la structure d'antemémoire peut recevoir un type quelconque de demande d'accès provenant d'une instruction et y satisfaire, y compris une demande de lecture, une demande d'écriture et une demande de lecture- modification-écriture. Bien qu'un mode de réalisation préféré ait été décrit ici comme incluant un TLB pour traduire une adresse virtuelle en adresse physique, il ressort clairement aussi qu'une telle mise en application de TLB n'est pas nécessaire à l'invention. Par conséquent, bien qu'il soit plus particulièrement préférable de mettre en oeuvre l'antémémoire avec TLB, l'antémémoire peut être mise en application sans un TLB. Par exemple, l'antémémoire peut recevoir des adresses physiques pour une demande d'accès mémoire, et n'exiger donc aucun TLB. L'antémémoire peut etre mise en application de manière à recevoir des adresses virtuelles sans exiger un TLB pour la traduction de ces adresses virtuelles en adresses physiques; ou une structure autre qu'un TLB peut être utilisée pour traduire une adresse virtuelle en adresse physique. Le cadre de la présente invention doit donc être compris comme incluant une mise en application d'antémémoire avec ou sans TLB.
I1 ressort en outre clairement qu'une structure d'antémémoire de la présente invention peut être mise en application à l'intérieur d'un type quelconque système informatique qui inclut un processeur, compris un ordinateur personnel ou PC, un ordinateur portable, et un assistant personnel de données, par exemple un ordinateur personnel ou PC de format calculette. I1 ressort en outre clairement qu' structure d'antémémoire de la présente invention peut être mise en application pour un processeur de réseau, par exemple un processeur de réseau qui est mis application pour Internet, Intranet, ou d'autres applications de réseaux.
Bien que la présente invention et ses avantages aient été décrits en détails, il ressort clairement l'homme de l'art que diverses modifications substitutions et altérations peuvent y être apportées sans s'écarter de l'esprit et du cadre de l'invention définis par les revendications annexées. En outre, ' faut comprendre que le cadre de la présente invention n'est pas limité à des modes de réalisation particuliers du processus, de la machine, de fabrication, de la composition des éléments, des moyens, procédes et étapes exposés à la présente description. Comme l'homme de l'art le comprend d'emblée à partir de l'exposé de la présente invention, des processus, machines, une fabrication, une composition de matière, des moyens, procédés ou étapes actuellement existants ou à développer ultérieurement ' mettent en oeuvre sensiblement la même fonction ou atteignent sensiblement les mêmes résultats que les modes de réalisation correspondants décrits ici peuvent être utilisés selon la présente invention. Les revendications annexées doivent être comprises comme incluant, à l'intérieur de leur cadre, tous ces processus, machines, fabrication, composition de matières, moyens, procédés ou étapes.

Claims (10)

<U>REVENDICATIONS</U>
1. Procédé d'accès à une antémémoire à niveaux multiples, caractérisé en ce qu'il comprend les étapes consistant à: recevoir une demande concernant un accès à une structure d'antémémoire à niveaux multiples; déterminer (12, 16, 24, 28) si ladite demande d'accès en mémoire peut être satisfaite par un niveau (14, 26) ladite structure d'antémémoire à niveaux multiples, ladite détermination étant effectuée en parallèle pour de multiples niveaux de ladite structure antémémoire à niveaux multiples; et, s'il est déterminé que ladite demande d'accès en mémoire peut être satisfaite par un niveau de ladite structure d'antémémoire à niveaux multiples, satisfaire à ladite demande d'accès en mémoire par ledit niveau de ladite structure d'antémémoire à niveaux multiples.
2. Procédé selon la revendication 1, caractérise en ce que ladite étape qui détermine si ladite demande d'accès mémoire peut être satisfaite par un niveau de ladite structure d'antémémoire à niveaux multiples comprend en outre l'étape consistant à: déterminer (12, 16, 24, 28) si une adresse mémoire à laquelle un accès est demandé est incluse l'intérieur d'un niveau de ladite structure d'antémémoire à niveaux multiples.
3. Procédé selon la revendication 1, caractérisé en outre en ce que un accès à un ensemble (26) de données d'un niveau d'antémémoire n'est effectué que s'il est déterminé que ce niveau d'antémémoire peut satisfaire à ladite demande d'accès en mémoire.
4. Procédé selon la revendication 1, caractérisé en ce que ladite antémémoire à niveaux multiples est subdivisée en voies multiples (26a à 26d).
5. Procédé selon la revendication 4, caracterisé en ce que c'est par une voie unique (26a) que s'effectue l'accès à un ensemble donné pour un niveau d'antémemoire qui a été déterminé comme susceptible de satisfaire à ladite demande d'accès en mémoire.
6 Procédé selon la revendication 5, caracterisé en outre par accès, en parallèle avec l'accès à ladite voie unique (26a), à une deuxième voie (26b) dudit ensemble de données pour ledit niveau d'antémémoire qui été déterminé comme susceptible de satisfaire à une deuxième demande d'accès en mémoire.
7. Un système informatique comprenant: un processeur qui exécute des instructions; et une structure d'antémémoire à niveaux multiples accessible par ledit processeur pour satisfaire à des demandes d'accès en mémoire, caractérisé en ce que ladite structure d'antémémoire à niveaux multiples est configurée pour recevoir une demande d'accès en mémoire et déterminer (12, 16, 24, 28) en parallèle pour des niveaux multiples (14, 26) de ladite antémémoire à niveaux multiples si l'un desdits multiples niveaux peut satisfaire à ladite demande d'accès en mémoire.
8. Système informatique selon la revendication 7, caractérisé en ce que ladite structure d'antémémoire à niveaux multiples comprend en outre: un ensemble (12) de mémoire d'étiquettes pour un premier niveau (14) d'antémémoire, qui reçoit un index d'adresse virtuelle et envoie une adresse physique correspondante; et un ensemble (24) de mémoire d'étiquettes pour un deuxième niveau (26) d'antémémoire qui reçoit un index d'adresse virtuelle et envoie une adresse physique correspondante.
9. Système informatique selon la revendication dans lequel ladite structure d'antémémoire à niveaux multiples comprend en outre: un premier circuit de comparaison (16) compare 1 adresse physique envoyée par un tampon (10) de consultation en parallèle de traduction et l'adresse physique envoyée par ledit ensemble (12) de mémoire 'étiquette pour ledit premier niveau d'antémémoire, afin de déterminer si une concordance est atteinte pour ledit premier niveau d'antémémoire- et un deuxième circuit de comparaison (28) qui compare l'adresse physique envoyée par ledit tampon (10) de consultation en parallèle de traduction et l'adresse physique envoyée par ledit ensemble (24) de mémoire d'étiquette pour ledit deuxième niveau (26) d'antémémoire, afin de déterminer si une concordance est atteinte pour ledit premier niveau d'antémémoire; et est caractérisée en ce que ledit premier circuit (16) de comparaison et ledit deuxième circuit (28) de comparaison déterminent en parallèle si une concordance est atteinte, soit pour ledit premier niveau (14) d'antémémoire, soit pour ledit deuxième niveau (26) d'antémémoire.
10. Structure d'antémémoire à niveaux multiples qui est accessible à un processeur pour satisfaire à des demandes d'accès en mémoire pour des instructions en cours d'exécution par ledit processeur, et comprend: un moyen (10, 12, 24) destiné à recevoir d'un processeur une demande d'accès en mémoire; et un moyen (12, 16, 24, 28) destiné à déterminer si un niveau de structure d'antémémoire à niveaux multiples peut satisfaire à une demande reçue d'accès memoire caractérisée en ce que ledit moyen de détermination est configuré manière à déterminer en parallèle, pour de multiples niveaux (14, 26) de ladite structure d'antémémoire à niveaux multiples, si l'un desdits multiples niveaux susceptible de satisfaire à ladite demande reçue d'accès en mémoire.
FR0012199A 2000-02-09 2000-09-26 Procede et systeme d'acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l'antemoire de premier niveau Expired - Fee Related FR2804770B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/501,396 US6427188B1 (en) 2000-02-09 2000-02-09 Method and system for early tag accesses for lower-level caches in parallel with first-level cache

Publications (2)

Publication Number Publication Date
FR2804770A1 true FR2804770A1 (fr) 2001-08-10
FR2804770B1 FR2804770B1 (fr) 2006-09-22

Family

ID=23993382

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0012199A Expired - Fee Related FR2804770B1 (fr) 2000-02-09 2000-09-26 Procede et systeme d'acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l'antemoire de premier niveau

Country Status (2)

Country Link
US (1) US6427188B1 (fr)
FR (1) FR2804770B1 (fr)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647464B2 (en) * 2000-02-18 2003-11-11 Hewlett-Packard Development Company, L.P. System and method utilizing speculative cache access for improved performance
US7802077B1 (en) 2000-06-30 2010-09-21 Intel Corporation Trace indexing via trace end addresses
US7757065B1 (en) 2000-11-09 2010-07-13 Intel Corporation Instruction segment recording scheme
US7062640B2 (en) * 2000-12-14 2006-06-13 Intel Corporation Instruction segment filtering scheme
US6845432B2 (en) * 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US7424576B2 (en) * 2001-05-02 2008-09-09 Intel Corporation Parallel cachelets
US6950903B2 (en) * 2001-06-28 2005-09-27 Intel Corporation Power reduction for processor front-end by caching decoded instructions
US7062607B2 (en) * 2001-09-24 2006-06-13 Intel Corporation Filtering basic instruction segments in a processor front-end for power conservation
US7240157B2 (en) * 2001-09-26 2007-07-03 Ati Technologies, Inc. System for handling memory requests and method thereof
US6834327B2 (en) * 2002-02-08 2004-12-21 Hewlett-Packard Development Company, L.P. Multilevel cache system having unified cache tag memory
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US7143239B2 (en) * 2003-08-07 2006-11-28 Hewlett-Packard Development Company, L.P. Cache structure and methodology
US7457940B2 (en) * 2004-11-16 2008-11-25 International Business Machines Corporation System and method for managing data
US7716424B2 (en) * 2004-11-16 2010-05-11 International Business Machines Corporation Victim prefetching in a cache hierarchy
US8347034B1 (en) 2005-01-13 2013-01-01 Marvell International Ltd. Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7685372B1 (en) * 2005-01-13 2010-03-23 Marvell International Ltd. Transparent level 2 cache controller
US7409524B2 (en) * 2005-08-17 2008-08-05 Hewlett-Packard Development Company, L.P. System and method for responding to TLB misses
US7430145B2 (en) * 2005-09-16 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for avoiding attempts to access a defective portion of memory
US20080229026A1 (en) * 2007-03-15 2008-09-18 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for concurrently checking availability of data in extending memories
US20090006777A1 (en) * 2007-06-28 2009-01-01 Donley Greggory D Apparatus for reducing cache latency while preserving cache bandwidth in a cache subsystem of a processor
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US8195881B2 (en) * 2008-02-26 2012-06-05 International Business Machines Corporation System, method and processor for accessing data after a translation lookaside buffer miss
US8341353B2 (en) * 2010-01-14 2012-12-25 Qualcomm Incorporated System and method to access a portion of a level two memory and a level one memory
US20140082252A1 (en) * 2012-09-17 2014-03-20 International Business Machines Corporation Combined Two-Level Cache Directory
US9053039B2 (en) * 2012-12-21 2015-06-09 Advanced Micro Devices, Inc. Installation cache
US10031802B2 (en) * 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
US10684951B2 (en) * 2017-08-04 2020-06-16 International Business Machines Corporation Minimizing cache latencies using set predictors
US10572389B2 (en) * 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US11422947B2 (en) * 2020-08-12 2022-08-23 International Business Machines Corporation Determining page size via page table cache

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0795828A2 (fr) * 1996-03-13 1997-09-17 Sun Microsystems, Inc. Méthode et appareil pour prédire la voie d'une antémémoire associative à plusieurs voies et à plusieurs niveaux
EP0840231A1 (fr) * 1996-10-31 1998-05-06 Texas Instruments Incorporated Microprocesseur avec antémémoire à plusieurs niveaux

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899275A (en) 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
GB8823077D0 (en) 1988-09-30 1988-11-09 Int Computers Ltd Data processing apparatus
US5513143A (en) 1992-07-31 1996-04-30 Sgs-Thomson Microelectronics, Inc. Data cache memory internal circuitry for reducing wait states
US5493660A (en) 1992-10-06 1996-02-20 Hewlett-Packard Company Software assisted hardware TLB miss handler
US5835934A (en) * 1993-10-12 1998-11-10 Texas Instruments Incorporated Method and apparatus of low power cache operation with a tag hit enablement
US6021471A (en) 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
US5745729A (en) 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
US5956752A (en) 1996-12-16 1999-09-21 Intel Corporation Method and apparatus for accessing a cache using index prediction
US6226713B1 (en) 1998-01-21 2001-05-01 Sun Microsystems, Inc. Apparatus and method for queueing structures in a multi-level non-blocking cache subsystem
US6237064B1 (en) * 1998-02-23 2001-05-22 Intel Corporation Cache memory with reduced latency
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
US6272597B1 (en) * 1998-12-31 2001-08-07 Intel Corporation Dual-ported, pipelined, two level cache system
US6272601B1 (en) 1999-05-20 2001-08-07 International Business Machines Corporation Critical word forwarding in a multiprocessor system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0795828A2 (fr) * 1996-03-13 1997-09-17 Sun Microsystems, Inc. Méthode et appareil pour prédire la voie d'une antémémoire associative à plusieurs voies et à plusieurs niveaux
EP0840231A1 (fr) * 1996-10-31 1998-05-06 Texas Instruments Incorporated Microprocesseur avec antémémoire à plusieurs niveaux

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRENZA ET AL: "Second Level Cache Fast Access", IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 26, no. 10B, 1 March 1984 (1984-03-01), pages 5488 - 5490, XP002157478, ISSN: 0018-8689 *

Also Published As

Publication number Publication date
US6427188B1 (en) 2002-07-30
FR2804770B1 (fr) 2006-09-22

Similar Documents

Publication Publication Date Title
FR2804770A1 (fr) Procede et systeme d&#39;acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l&#39;antemoire de premier niveau
US20230205702A1 (en) Efficient work unit processing in a multicore system
US20200314011A1 (en) Flexible scheme for adding rules to a nic pipeline
US7865570B2 (en) Memory server
EP2366147B1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
US20150032964A1 (en) Handling virtual memory address synonyms in a multi-level cache hierarchy structure
US10970214B2 (en) Selective downstream cache processing for data access
US10230809B2 (en) Managing replica caching in a distributed storage system
FR2809841A1 (fr) Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches
EP1619589A1 (fr) Procédé de programmation d&#39;un contrôleur de DMA dans un système sur puce et système sur puce associé
US10404823B2 (en) Multitier cache framework
FR3055715A1 (fr) Methodes et dispositifs pour contourner le cache interne d&#39;un controleur memoire dram evolue
FR3032814A1 (fr)
EP1607878B1 (fr) Procédé de traitement d&#39;une adresse virtuelle pour la programmation d&#39;un contrôleur de DMA, système sur puce et programme d&#39;ordinateur associés
FR2805368A1 (fr) Systeme et procede utilisant l&#39;acces speculatif a l&#39;antememoire pour des performances ameliorees
FR2888016A1 (fr) Systeme et procede d&#39;optimisation automatique de la memoire virtuelle disponible
EP2802992B1 (fr) Systeme et procede de gestion de correspondance entre une memoire cache et une memoire principale
EP0251861B1 (fr) Unité de gestion de mémoire
CN108062279A (zh) 用于处理数据的方法和设备
EP3557433B1 (fr) Procédé de gestion du routage de transactions entre au moins un équipement source et au moins un équipement cible, par exemple une mémoire multiports, et système sur puce correspondant
EP2666092B1 (fr) Systeme multi-coeurs et procede de coherence de donnees
Abumwais et al. Shared Cache Based on Content Addressable Memory in a Multi-Core Architecture.
EP3451179B1 (fr) Contrôleur d&#39;accès direct en mémoire, dispositif et procédé de réception, stockage et traitement de données correspondants
EP3629185A1 (fr) Procédé de gestion de la fourniture d&#39;informations, en particulier des instructions, à un microprocesseur et système correspondant
US9165088B2 (en) Apparatus and method for multi-mode storage

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20080531