FR2805368A1 - Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees - Google Patents

Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees Download PDF

Info

Publication number
FR2805368A1
FR2805368A1 FR0012522A FR0012522A FR2805368A1 FR 2805368 A1 FR2805368 A1 FR 2805368A1 FR 0012522 A FR0012522 A FR 0012522A FR 0012522 A FR0012522 A FR 0012522A FR 2805368 A1 FR2805368 A1 FR 2805368A1
Authority
FR
France
Prior art keywords
cache
memory
data
access
memory access
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
FR0012522A
Other languages
English (en)
Other versions
FR2805368B1 (fr
Inventor
Reid James Riedlinger
Dean A Mulla
Tom Grutkowski
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 FR2805368A1 publication Critical patent/FR2805368A1/fr
Application granted granted Critical
Publication of FR2805368B1 publication Critical patent/FR2805368B1/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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline

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 système et procédé qui prévoient une structure d'antémémoire permettant d'accéder en avance aux données de la structure d'antémémoire (20) sont présentés. En réponse à la réception d'une demande d'accès en mémoire, le modèle d'antémémoire (200) commence à accéder aux données du niveau d'antémémoire avant qu'une détermination n'ait été effectuée pour savoir si une vraie coïncidence a été réalisée pour ce niveau d'antémémoire. Le modèle d'antémémoire (200) présenté permet donc d'accéder de façon spéculative aux données en antémémoire avant qu'une détermination n'est été effectuée pour savoir si une adresse en mémoire est vraiment présente dans l'antémémoire. Un mode de réalisation préféré met en oeuvre un chemin parallèle en commençant l'accès aux données en antémémoire tandis qu'une détermination est effectuée pour savoir si une vraie coïncidence d'antémémoire a été réalisée. Ainsi, les données en antémémoire sont rappelées en avance de la structure d'antémémoire et sont disponibles en temps voulu.

Description

présente invention concerne en général les accès à l'antémémoire dans un processeur, et en particulier un système et procédé pour accéder de façon spéculative aux données dans une antémémoire avant de vérifier une cofn- cidence d'étiquette pour cette antémémoire.
systèmes informatiques peuvent utiliser une hiérarchie de mémoire à plusieurs niveaux, avec une mémoire relativement rapide, coûteuse mais de capacite limitée au plus haut niveau de la hiérarchie et en continuant avec une mémoire relativement plus lente, moins coûteuse mais de plus grande capacité au plus bas niveau de la hiérarchie. La hiérarchie peut inclure une petite mémoire rapide appelée antémémoire, soit intégrée physiquement dans un processeur, soit installée physiquement à proximité du processeur dans un souci rapidité. Le système informatique peut utiliser des antémémoires d'instructions et des antémémoires de données séparées. De plus, le système informatique peut utiliser plusieurs niveaux d'antémémoires. L'utilisation d'une antémémoire est généralement transparente pour un programme informatique au niveau des instructions et peut ainsi être ajoutée à une architecture informa tique sans modifier le jeu d'instructions ou nécessiter la modification des pro- grammes existants.
processeurs informatiques incluent typiquement une antémémoire pour stocker des données. Lors de l'exécution d'une instruction nécessite un acces à la mémoire (par exemple, lecture ou écriture en mémoire), un processeur accède typiquement à l'antémémoire pour essayer de satisfaire l'instruction. Bien sûr, il est souhaitable de mettre en oeuvre l'antémémoire d'une manière qui permet au processeur d'accéder à l'antémémoire de manière efficace. C'est-à-dire, il est souhaitable de mettre en oeuvre l'anté- mémoire d'une manière telle que le processeur soit capable d'accéder à l'anté- mémoire (c'est-à-dire, lecture ou écriture en antémémoire) rapidement de sorte que le processeur puisse être capable d'exécuter les instructions rapidement.
Les modèles d'antémémoire de l'art antérieur pour les processeurs infor matiques nécessitent typiquement que des "données de commande" soient disponibles avant le début d'un accès aux données en antémémoire. Ces "don nées de commande" indiquent si une adresse souhaitée (c'est-à-dire, une adresse, nécessaire à une demande d'accès en mémoire) est contenue dans l'antémémoire. Par conséquent, les antémémoires de l'art antérieur sont typiquement mises en oeuvre en série, où après que l'antémémoire a reçu une demande d'accès en mémoire, des données de commande sont obtenues pour la demande, et ensuite, si les données de commande indiquent que l'adresse souhaitée est contenue dans l'antémémoire, le tableau de données de Parité- mémoire fait l'objet d'un accès pour satisfaire à la demande d'accès en mémoire. Ainsi, modèles d'antémémoire de l'art antérieur génèrent typique ment des données de commande indiquant si une vraie "coïncidence" d'anté- mémoire a eté réalisée pour un niveau d'antémémoire, et uniquement lorsqu'une vraie coïncidence d'antémémoire a été réalisée, les données en antémémoire font-elles réellement l'objet d'un accès pour satisfaire à la demande d'accès en mémoire. Une vraie "cofncidence" d'antémémoire a lieu lorsqu'un processeur demande un item d'une antémémoire et l'item est effectivement présent dans l'antémémoire. Un "accès manqué" à Vanté- mémoire survient lorsqu'un processeur demande un item d'une antémémoire et l'item n'est pas présent dans l'antémémoire. Les données de commande indiquant si une "vraie" cofncidence d'antémémoire a été réalisée pour un niveau d'antémémoire comprennent typiquement un signal correspondance d'étiquette. Le signal de correspondance d'étiquette indique si une corres pondance a été effectuée pour une adresse demandée dans étiquettes d'un niveau d'antémémoire. Cependant, un tel signal de correspondance d'étiquette à lui tout seul n'indique pas si une vraie cofncidence d'antémémoire a été réalisée.
À titre d'exemple, dans un système multiprocesseur, correspondance d'étiquette peut être réalisée pour un niveau d'antémémoire, mais la ligne d'antémémoire particulière pour laquelle la correspondance été réalisée peut être erronée. Par exemple, la ligne d'antémémoire particulière peut être erronée parce qu'un autre processeur a inspecté cette ligne d'antémémoire particulière. Par conséquent, dans des systèmes multiprocesseurs, un signal MESI est aussi utilisé typiquement pour indiquer si une ligne en antémémoire est "Modifiée et Exclusive, Partagée ou Erronée". Donc, les données de commande indiquent si une vraie cofncidence d'antémémoire a été réalisée pour un niveau d'antémémoire comprennent typiquement un signal MESI, ainsi que le signal de correspondance d'étiquette. Uniquement si une corres pondance d'étiquette est trouvée pour un niveau d'antémémoire et que le protocole MESI indique que cette correspondance d'étiquette est valable, les données de commande indiquent-elles qu'une vraie coïncidence d'anté- mémoire a été réalisée ? En raison de ce qui précède, dans les modèles d'anté- mémoire de l'art antérieur, une détermination est d'abord effectuée pour savoir si une correspondance d'étiquette est trouvée pour un niveau d'anté- mémoire, et ensuite une détermination est effectuée pour savoir si le protocole MESI indique qu'une correspondance d'étiquette est valable. Ensuite, si une détermination a été effectuée indiquant qu'une vraie coïncidence d'étiquette a été réalisée, l'accès aux données en antémémoire réelles demandées commence. Typiquement, dans les modèles d'antémémoire à plusieurs niveaux, on accède d'abord au premier niveau d'antémémoire (c'est-à-dire, LO) pour déterminer si une vraie coïncidence d'antémémoire pour une demande d'accès en mémoire est réalisée. Si une vraie coïncidence d'antémémoire n'est pas réalisée pour l'antémémoire de premier niveau, alors une détermination est effectuée pour le deuxième niveau d'antémémoire (c'est-à-dire, L1 ), et ainsi de suite, jusqu ' ce que la demande d'accès à la mémoire soit satisfaite par un niveau d'antémémoire. Si l'adresse demandée n'est trouvée dans aucun niveaux d'antémémoire, alors le processeur envoie une demande à fa mémoire principale du système pour essayer de satisfaire à fa demande. Dans nombreux modèles de processeur, le temps nécessaire pour accéder à un item pour une vraie coïncidence d'antémémoire est l'un des principaux facteurs limitation de fréquence d'horloge du processeur si le concepteur recherche un temps d'accès à l'antémémoire en un seul cycle. Dans d'autres modèles, temps d'acces à l'antémémoire peut prendre plusieurs cycles, mais les performances d'un processeur peuvent être améliorées dans la plupart des cas lorsque le temps d'accès à l'antémémoire en cycles est réduit. Donc, l'optimi sation du temps d'accès pour les coïncidences d'antémémoire est essentielle pour les performances du système informatique.
En se 'férant à la Figure 1, elle montre un exemple d'un modèle d'anté- mémoire typique de l'art antérieur. Typiquement, lorsqu'une instruction doit accéder à une adresse particulière, une adresse virtuelle est fournie par le processeur au système d'antémémoire. Comme il est bien connu dans l'art, une telle adresse virtuelle contient typiquement un champ d'indexation et un champ de numéro de page virtuel. L'adresse virtuelle est entrée dans un tampon de traduction à consultation séparée ("TLB") 10. Le TLB 10 est un composant courant des architectures d'antémémoire modernes qui est bien connu dans l'art. Le TLB 10 assure une traduction de l'adresse virtuelle reçue en une adresse physique. Dans un système informatique, l'espace d'adressage virtuel typiquement nettement plus grand que l'espace d'adressage physi que. L'espace d'adressage physique est l'adresse en mémoire physique, réelle d'un systeme informatique, qui comprend l'antémémoire, la mémoire princi pale, un disque dur, et tout autre élément auquel l'ordinateur peut accéder pour rappeler des données. Ainsi, pour qu'un système informatique soit capable d'accéder à l'ensemble de l'espace d'adressage physique, un mappage physique complet entre adresses virtuelles et adresses physiques est typique ment prévu. Une fois l'adresse virtuelle reçue traduite en une adresse physique par le TLB 10, champ d'indexation de cette adresse physique est entré dans la ou les étiquettes 12 du niveau d'antémémoire, qui peut/peuvent être dupli quées) fois pour N "voles" d'associativité. Tel qu'utilisé ici, le terme "voie" se réfère à une partition de l'antémémoire. Par exemple, l'antémémoire système peut être partagée en un nombre quelconque de voies. Les anté mémoires sont normalement partagées en quatre voies. L'index d'adresse physique est également entré dans le(s) tableau(x) 16 du niveau d'anté mémoire, qui peut/peuvent également être dupliqué(s) N fois pour N voies d'associativité.
À partir de l'étiquette/ des étiquettes 12 du niveau d'antémémoire, un signal de correspondance d'étiquette de voie est généré pour chaque voie. Le signal de correspondance d'étiquette de vole indique si une correspondance pour l'adresse physique a été effectuée dans le(s) étiquette(s) du niveau d'antémémoire 12. Comme évoqué ci-dessus, dans les systèmes multiproces seurs, un protocole MES( est utilisé typiquement pour indiquer si une ligne en antémémoire est modifiée et exclusive, partagée ou erronée. Par conséquent, dans de tels systèmes multiprocesseurs, le protocole MES( est combiné avec le signal correspondance d'étiquette de voie pour indiquer si une "vraie" coïncidence d'étiquette a été réalisée pour un niveau d'antémémoire. Ainsi dans systèmes multiprocesseurs, une vraie coïncidence d'étiquette réalisée lorsque à la fois une correspondance d'étiquette est trouvée pour la ou les étiquettes 12 et que le protocole MES( indique que cette correspondance d'étiquette est une correspondance valable. Par conséquent, sur la Figure 1, les circuits MESI 14 sont utilisés pour calculer un signal de "vraie" coïncidence d'étiquette pour déterminer si une vraie coïncidence d'étiquette a été réalisée pour ce niveau d'antémémoire. Dés qu'il a été déterminé par le MES[ 14 qu'une "vraie" coïncidence d'étiquette a été réalisée pour ce niveau d'antémémoire, alors on accède au(x) tableau (x) de données<B>16</B> de ce niveau d'antémémoire, qui peut/ peuvent aussi être dupliqué(s) N fois pour N voies d'associativité, pour satisfaire à fa demande d'accès en mémoire reçue. Plus spécifiquement, le signal de vraie coïncidence d'étiquette peut être utilisé pour commander un multiplexeur ("MUX") 18 pour sélectionner la voie de tableau de données appropriée pour sortir des données satisfont à la demande d'accès en mémoire reçue. Les données sélectionnées à partir du ou des tableaux de données 16 sont délivrées au noyau la puce, qui est l'unité d'exécution particulière (par exemple, une unité d'exécution à base d'entiers ou une unité d'exécution en virgule flottante) emis fa demande d'accès en mémoire pour l'antémémoire. En raison de ce qui précède, les antémémoires de l'art antérieur sont typiquement mises en oeuvre en série, où l'adresse physique est déterminée d'abord, ensuite il est déterminé si une correspondance d'étiquette est réalisée pour l'adresse physique demandée à l'intérieur niveau d'antémémoire particulier, ensuite il est déterminé si une "vraie" coïncidence d'antémémoire est réalisée à l'intérieur du niveau d'antémémoire particulier et enfin on accède au(x) tableau(x) de données pour le niveau d'antémémoire particulier si une "vraie" coïncidence d'antémémoire a été réalisée. Ainsi, même si les anté- mémoires de l'art antérieur déterminent l'adresse physique relativement tôt, les données de I'antémémoire ne font pas l'objet accès jusqu'à ce qu'il ait été déterminé si une "vraie" coïncidence d'antémémoire a été réalisée pour l'antémémoire. Un tel accès série aux données en antémémoire est peu avantageux en ce qu'il est lent. Une telle mise en oeuvre d'antémémoire série ajoute en général de un à deux cycles d'horloge de latence d'accès aux données parce que les étiquettes d'antémémoire le MES[ doivent d'abord terminer la détermination pour savoir si une coïncidence valable a été réalisée pour l'antémémoire avant de commencer l'accès données. Ainsi, un tel accès série aux données en antémémoire nécessite un délai d'une durée longue indésirable pour accéder aux données en antémémoire. Donc les modèles d'antémémoire série de l'art antérieur augmentent la latence fiée au rappel des données de l'antémémoire, ce qui ralentit l'unité d'exécution à l'intérieur du noyau d'une puce. C'est-à-dire, pendant que l'unité d'exécution attend les données provenance de l'antémémoire, elle est bloquée, ce qui aboutit à des performances inférieures nettes pour le processeur d'un système. En raison de ce qui précède, il existe le souhait d'un modèle d'anté- mémoire permet d'accéder aux données en antémémoire en temps voulu. C'est-à-dire il existe le souhait d'un modèle d'antémémoire qui diminue la latence liée au rappel des données de l'antémémoire qui existe dans les modèles d'antémémoire de l'art antérieur. 1I existe un souhait supplémentaire d'un modèle d'antémémoire qui permet d'accéder aux données en anté- mémoire en temps voulu, tout en vérifiant encore qu'une vraie coïncidence d'étiquette a été réalisée pour l'antémémoire afin d'assurer que les données appropriées font l'objet d'un accès pour satisfaire à une demande d'accès en mémoire. conséquent, il existe le souhait d'un modèle d'antémémoire qui permet d'accéder rapidement aux données en antémémoire, réduisant ainsi le nombre blocages nécessaires dans les unités d'exécution qui demandent un accès en memoire et améliorant les performances globales du système. Ceux ' ainsi que d'autres objets, caractéristiques et avantages techniques sont réalisés par un système et procédé prévoyant un modèle d'antémémoire qui, en réponse à la réception d'une demande d'accès en mémoire, commence à accéder aux données d'un niveau d'antémémoire avant qu'il n'ait été déterminé si une vraie coïncidence a été réalisée pour le niveau d'anté- mémoire. C'est-à-dire, un système et procédé sont prévus qui permettent d'accéder manière spéculative aux données en antémémoire avant qu'il ne soit déterminé si une adresse en mémoire nécessaire pour satisfaire à une demande d'accès en mémoire est vraiment présente dans I'antémémoire.
Dans mode de réalisation préféré, une structure d'antémémoire est prévue reçoit des demandes d'accès en mémoire en provenance d'au moins un processeur d'un système informatique. En réponse à la réception d'une telle demande d'accès en mémoire, la structure d'antémémoire commence à accéder à son/ses tableau(x) de données pour essayer de satis- faire à la demande reçue, sans déterminer d'abord si une adresse en mémoire nécessaire pour satisfaire à la demande d'accès en mémoire reçue est vraiment présente dans la structure d'antémémoire. Dans le mode réalisation préféré entre tous, une telle structure d'antémémoire est un niveau d'une anté- mémoire à plusieurs niveaux mise en oeuvre pour un système informatique. Dans un mode de réalisation préféré, l'antémémoire mise en oeuvre de sorte qu'une détermination est effectuée pour savoir si une adresse en mémoire nécessaire pour satisfaire à une demande d'accès en mémoire reçue est vraiment présente dans la structure d'antémémoire. C'est-à-dire, un mode de réalisation préféré détermine si une vraie coïncidence d'antémémoire est réalisée dans la structure d'antémémoire pour une demande d'accès en mémoire reçue. Toutefois, une telle détermination n'est pas effectuée avant le début de l'accès aux données en antémémoire. Au lieu cela, dans un mode de réalisation préféré, une détermination pour savoir si vraie coïncidence d'antémémoire est réalisée est effectuée dans la structure d'antémémoire en parallèle avec l'accès aux données de la structure d'antémémoire pour une demande d'accès en mémoire reçue. C'est-à-dire, un mode de réalisation préféré détermine si une correspondance d'étiquette réalisée pour les étiquettes de la structure d'antémémoire et si un protocole MESI vérifie qu'une correspondance d'étiquette réalisée est une correspondance valable en parallèle avec l'accès au(x) tableau(x) de données de la structure d'anté- mémoire. Donc, plutôt que le chemin série des modèles d'antémémoire de l'art antérieur dans lesquels une correspondance d'étiquette est d'abord déterminée, ensuite une correspondance est vérifiée par un protocole MESI, ensuite les données en antémémoire font l'objet d'un accès pour satisfaire à une demande d'accès en mémoire reçue, un mode de réalisation préféré met en oeuvre un chemin parallèle en commençant l'accès aux données en antémemoire pendant qu'une détermination est effectuée pour savoir si une vraie coïncidence d'antémémoire a été réalisée. Ainsi, les données en antémemoire sont rappelées en avance de la structure d'antémémoire et sont disponibles en temps voulu pour être utilisées par une unité d'exécution interrogatrice, dès qu'il a été déterminé qu'une vraie coïncidence d'anté- mémoire a été réalisée pour la structure d'antémémoire. Dans un mode de réalisation préféré, l'accès aux données commence avant de déterminer si une vraie coïncidence d'antémémoire est réalisée uni quement pour des demandes d'accès en mémoire qui sont des demandes de lecture de données. Ainsi, pour les demandes "d'écriture", un mode de réalisation préféré détermine d'abord si une vraie coïncidence d'antémémoire est réalisée avant de commencer l'écriture demandée. 1I convient d'apprécier qu'un avantage technique d'un aspect de la présente invention est qu'une structure d'antémémoire est mise en oeuvre pour permettre un accès plus rapide aux données de la structure d'antémémoire en commençant l'accès aux données avant qu'il ne soit déterminé si une vraie coïncidence d'antémémoire est réalisée pour la structure d'antémémoire. Par conséquent, le modèle d'antémémoire permet d'accéder aux données en antémémoire en temps voulu. Un autre avantage technique d'un aspect de la présente invention est qu'une structure d'antémémoire est mise en oeuvre qui permet d'accéder aux données en antémémoire en temps voulu, tout en vérifiant toujours qu'une vraie coïncidence d'étiquette a été réalisée pour l'antémémoire afin d'assurer que les données appropriées font l'objet d'un accès pour satisfaire à une demande d'accès en mémoire reçue. Cependant, un autre avantage technique d'un aspect de la présente invention qu'une structure d'antémémoire est mise en oeuvre de sorte que les données de la structure d'antémémoire font l'objet d'un accès en parallèle avec déter mination de savoir si une vraie coïncidence d'antémémoire est réalisée pour la structure d'antémémoire, diminuant ainsi la latence liée au rappel des données de l'antémémoire qui existe dans les modèles d'antémémoire de l'art antérieur. C'est-à-dire, une structure d'antémémoire est mise en oeuvre permet d'accéder rapidement aux données en antémémoire, réduisant ainsi le nombre de blocages nécessaires dans les unités d'exécution qui demandent accès en mémoire et améliorant les performances globales du système.
Ce précède a exposé dans les grandes lignes les caracteristiques et avantages techniques de la présente invention de façon à ce que la description détaillée l'invention qui suit soit mieux comprise. Des caracteristiques et avantages supplémentaires de l'invention seront décrits ci-après qui constituent l'objet revendications de l'invention. Ceux compétents dans l'art devraient apprécier que la conception et le mode de réalisation spécifique présentés peuvent être facilement utilisés comme une base pour modifier ou concevoir d'autres structures pour réaliser les mêmes buts de la presente invention. L'homme du métier devrait également réaliser que de telles constructions équivalentes ne s'éloignent pas de l'esprit et du domaine l'invention tels qu'exposés dans les revendications ci-jointes. Pour une compréhension plus complète de la présente invention, et de ses avantages, nous nous référons maintenant à la description suivante prise en conjonction avec le dessin ci-joint, où - la Figure 1 montre un modèle d'antémémoire typique l'art antérieur, qui détermine si une "vraie" coïncidence d'étiquette est réalisée pour un niveau d'antémémoire et accède ensuite en série aux données en anté- mémoire ; - la Figure 2 montre un mode de réalisation préféré pour un modèle d'antémémoire de la présente invention ; - la Figure 3 montre un TLB mis en oeuvre dans un mode de réalisation préféré ; - la Figure 4 montre les circuits mis en oeuvre pour un accès aux étiquettes d'antémémoire d'un mode de réalisation préféré ; et - la Figure 5 montre les circuits mis en oeuvre dans un mode de réalisation préféré pour indiquer si une vraie coïncidence d'antémémoire est réalisée pour le niveau d'antémémoire. En se référant à la Figure 2, elle montre un mode de réalisation préféré de la présente invention. Comme montré, l'exécution d'un mode de réalisation préféré d'un modèle d'antémémoire 200 est représentée en conjonction avec un signal d'horloge 40 pour représenter le flux d'exécution à travers divers étages de pipeline. En général, un "étage de pipeline" est un cycle d'horloge individuel qui est utilisé pour l'occurrence de certain(s) événement(s) d'un accès en mémoire. Étant donné que l'utilisation des étages de pipeline est bien connue dans l'art, elle ne sera pas évoquée plus en détail dans ce document. La Figure 2 représente un mode de réalisation préféré mis en oeuvre pour le niveau L1 de l'antémémoire. Cependant, il convient de comprendre qu'un tel modèle peut être mis en oeuvre pour un niveau d'antémémoire quelconque et n'est pas prévu pour se limiter uniquement à Ll. À l'étage de pipeline REG 0, le niveau Ll de l'antémémoire 200 reçoit une adresse virtuelle pour une demande d'accès en mémoire d'un niveau d'antémémoire L0, qui est entrée dans un tampon de traduction à consultation séparée ("TLB") 10 au début de l'étage de pipeline LOM. Au cours de la première phase d'horloge (la phase haute de l'horloge) de LOM, le TLB 10 traduit l'adresse virtuelle reçue en une adresse physique. Comme évoqué ci-dessus, le TLB 10 est un composant courant des architectures d'antémémoire modernes qui est bien connu dans l'art. En se référant brièvement à la Figure 3, une mise en oeuvre préférée pour le TLB 10 est représentée. Comme le montre la Figure 3, dans un mode de réalisation préféré, une adresse virtuelle sur 64 bits (VA[63:0]) est reçue par le TLB 10, et une adresse physique sur 45 bits (PA[44:0]) est sortie par le TLB 10. Toutefois, dans d'autres modes de réalisation, un nombre quelcon que de bits peut être utilisé pour l'adresse virtuelle et l'adresse physique. Comme représenté sur la Figure 3, leTLB l Oreçoit une adresse virtuelle (VA[63-0]) et traduit cette adresse virtuelle en une adresse physique (PA[44:0]). Dans la plupart des architectures d'antémémoire, les bits d'adresse inférieurs de l'adresse virtuelle et de l'adresse physique correspondent. Comme le montre la Figure 3, dans un mode de réalisation préféré, les douze inférieurs de l'adresse virtuelle (VA[11:0]) correspondent aux douze bits inférieurs l'adresse physique (PA[11:0]). Toutefois, dans d'autres modes de réalisation, un nombre quelconque de bits de l'adresse virtuelle et de l'adresse physique peut correspondre. Étant donné que les douze bits inférieurs de l'adresse virtuelle et de l'adresse physique correspondent dans un mode de réalisation 'féré, le TLB 10 traduit les bits non correspondants de l'adresse virtuelle (VA[63:12]) en l'adresse physique appropriée PA[44:12]. C'est-à- dire, le TLB 10 effectue une consultation pour déterminer le mappage pour l'adresse virtuelle reçue. En général, il existe un seul mappage dans le TLB 10 pour l'adresse virtuelle reçue. Étant donné que PA[] 1:0] correspond à VA[1 .0] et le TLB 10 traduit VA[63:12] en PA[44:12], toute l'adresse physique PA[44:0] est déterminée et délivrée par le TLB 10. En se référant à nouveau à la Figure 2, au cours de fa deuxième phase d'horloge (la phase basse de l'horloge) de l'étage de pipeline LOM, la ou étiquettes du niveau d'antémémoire font l'objet d'un accès, ce qui est représenté comme l'accès 12 aux étiquettes de Ll (accès aux étiquettes du niveau d'antémémoire un). L'accès 12 aux étiquettes de LI sert à accéder à l'étiquette/ aux étiquettes du niveau d'antémémoire et à déterminer une correspondance d'étiquette de voie pour la demande d'accès en mémoire. En se référant brièvement à la Figure 4, un mode de réalisation préféré pour l'accès 1 aux étiquettes de Ll est montré plus en détail. Dans un mode de réalisation préféré, les bits d'adresse physique sont utilisés pour l'accès aux étiquettes dès que ces bits d'adresse physique sont connus. Comme évoqué ci- dessus, dans un mode de réalisation préféré, les douze bits inférieurs de l'adresse physique (PA[1 1:0]) sont les mêmes que les douze bits inférieurs de l'adresse virtuelle (VA[ 1 1:0]). Ainsi, ces bits ne nécessitent aucune traduction par le . Donc, les douze bits inférieurs de l'adresse physique (PA[1 1:0]) sont connus très tôt. C'est-à-dire, les douze bits inférieurs de l'adresse physique (PA[ l :0]) sont connus un cycle entier plus tôt que l'ensemble de l'adresse physique (PA[44:0]) parce que les douze bits inférieurs sont connus dès que l'adresse virtuelle est reçue. Un mode de réalisation préféré utilise ces données connues en commençant le chemin d'accès 12 aux étiquettes de L en avance.
Le TLB 10 nécessite typiquement environ un cycle pour terminer. Au cours de la deuxième moitié de ce cycle (la phase basse de l'horloge), l'accès à l'étiquette/aux étiquettes de l'antémémoire commence, dans mode de réalisation préféré. Comme le montre la Figure 4, les bits d'adresse physique PA[ 11:7] sont entrés dans les circuits de décodage 402. Toutefois, dans d'autres modes de réalisation, l'un quelconque des bits d'adresse physique connus peut être utilisé pour ce décodage. Les circuits de décodage 402 déco dent les d'adresse physique PA[1 l:7] pour déterminer l'adresse physique nécessaire pour la demande d'accès en mémoire reçue, et ensuite les lignes de mots sont amorcées. Dès que les lignes de mots sont amorcées, la ou les étiquettes 404 sont extraites. Dans un mode de réalisation préféré, les étiquettes sont dupliquées 8 fois pour 8 voies d'associativité. Ainsi, dans un mode réalisation préféré, lorsque les lignes de mots sont amorcées, huit étiquettes différentes sont extraites des étiquettes 404. Bien sûr, dans d'autres modes de realisation, un nombre quelconque de voies peut être mis en oeuvre pour l'antémémoire. Comme le montre la Figure 4, le décodage de PA[<B>11:</B> 7] et l'extraction des étiquettes 404 sont effectués à l'étage de pipeline LOM. Ainsi, tandis que le TLB 10 est toujours en train de terminer, l'accès aux étiquettes 404 d'anté- memoire de L 1 commence, dans un mode de réalisation préféré. Par consé quent, dans un mode de réalisation préféré, l'accès au et l'accès aux étiquettes d'antémémoire sont effectués en parallèle. 11 sera rappelé que les modèles d'antémémoire de l'art antérieur accèdent typiquement en série au et aux étiquettes d'antémémoire. C'est-à-dire, les modèles d'antémémoire de l'art antérieur accèdent typiquement d'abord au et commencent ensuite à accéder aux étiquettes d'antémémoire uniquement après achèvement du TLB. Ainsi, un mode de réalisation préféré réduit latence liée à la détermination pour savoir si une correspondance d'étiquette est réalisée en accédant en avance à l'étiquette/ aux étiquettes du niveau d'antémémoire.
À l'étage de pipeline LOM, une étiquette est extraite pour chaque voie. Donc, dans un mode de réalisation préféré, huit étiquettes (étiquette de voie 0 à etiquette de voie 7) sont extraites à l'étage de pipeline LOM. Dans un mode de réalisation préféré, les étiquettes sont conservées jusqu 'l'étage de pipeline . À l'étage de pipeline LOD, le TLB 10 a terminé sa traduction et l'adresse physique souhaitée PA[44:0] est connue. C'est-à-dire, a l'étage de pipeline le TLB 10 a terminé son mappage de l'adresse virtuelle pour déterminer les bits de l'adresse physique qui étaient inconnus initialement (PA[44:12]). Dans un mode de réalisation préféré, les bits [l4:12] de l'adresse physique (c'est-à-dire, PA[14:12]) sont utilisés à l'étage de pipeline LOD pour sélec tionner l'une des huit étiquettes extraites du tableau d'étiquettes 404 à l'étage de pipeline LOM. Dans d'autres modes de réalisation, l'un quelconque des bits de l'adresse physique qui résulte du mappage du TLB 10 (par exemple l'un quelconque des bits PA[44:12]) peut être utilisé pour sélectionner l'une des étiquettes extraites à l'étage de pipeline LOM. Dans un mode de réalisation préféré, les huit étiquettes extraites du tableau d'étiquettes 404 sont entrées dans un MUX 406, et les bits PA[14:12] sont utilisés pour commander le MUX 406. Ainsi, les bits PA[14:121 sont utilisés pour sélectionner l'étiquette de voie appropriée à sortir par le MUX 406. Ainsi, à l'étage de pipeline LOD, un signal de correspondance d'étiquette de voie est généré par le MUX 406. 1I convient de comprendre qu'il ne s'agit dans ce cas pas d'un "vrai" signal de coïncidence d'étiquette parce que les informations MES1 n'ont pas été combinées avec le signai de correspondance à ce moment-là. Au lieu de cela, l'accès aux étiquettes 12 génère strictement un signal de correspondance d'étiquette de vole. se référant à nouveau à la Figure 2, elle montre qu'au cours de la première phase (la phase haute de l'horloge) de LOD, l'accès 12 aux étiquettes Ll termine le chemin de correspondance d'étiquette, comme évoqué ci-dessus en se référant à la Figure 4. En parallèle avec l'achèvement de l'accès 2 aux étiquettes de L1, la première phase (la phase haute de l'horloge) de LOD est utilisée pour faire sortir les données d'adresse physique du TLB 0 vers le(s) tableau(x) de données en antémémoire. Ainsi, dans un mode de réalisation préféré, on commence à accéder au(x) tableau(x) de données du niveau d'antémémoire pour une adresse avant qu'il ne soit déterminé si une "vraie" coïncidence d'antémémoire est réalisée pour le niveau d'antémémoire. II sera rappelé que les modèles d'antémémoire de l'art antérieur déterminent typiquement si une vraie coïncidence d'antémémoire est réalisée pour un niveau d'antémémoire et commencent ensuite à accéder en série au(x) tableau(x) de données du niveau d'antémémoire. C'est-à-dire, les modèles d'antémémoire de l'art antérieur déterminent typiquement d'abord si une vraie coïncidence d'antémémoire est réalisée pour un niveau d'antémémoire, et commencent un accès au(x) tableau(x) de données du niveau d'antémémoire uniquement après qu'il a été déterminé qu'une vraie coïncidence d'antémémoire a été réalisée. Ainsi, un mode de réalisation préféré réduit la latence liée à l'accès aux données du niveau d'antémémoire en accédant en avance de façon spéculative aux données.
Plus spécifiquement, dans un mode de réalisation préféré, le TLB 10 sort une adresse physique au cours de la deuxième phase (la phase basse de l'horloge) de LOM. Dans un mode de réalisation préféré, les bits [14:8] de l'adresse physique sont entrés dans un MUX 1 Toutefois, dans d'autres modes de réalisation, l'un quelconque des bits l'adresse physique peut être utilisé. Dans le mode de réalisation préféré entre tous, une antémémoire de 256 kilo-octets est mise en oeuvre, qui est répartie sur 16 bancs de 128 lignes par banc. Ainsi, dans le mode de réalisation préféré entre tous, les bits [ 14:8] de l'adresse physique peuvent être décodés pour identifier l'une quelconques des 128 lignes d'un banc. De plus, dans le mode de réalisation préféré entre tous, les bits [7:4] de l'adresse physique sont décodés pour sélectionner à quel banc un accès doit être émis. Étant donné que ces bits de l'adresse physique sont connus en avance (par exemple, ils sont connus lorsque l'adresse virtuelle est reçue), le banc qui doit faire l'objet d'un accès peut être sélectionné en avance. Ainsi, un mode de réalisation préféré permet aux circuits de com mande d'être configurés en avance, augmentant ainsi l'efficacité de l'accès en mémoire. Bien sûr, dans d'autres modes de réalisation, une taille d'anté- mémoire quelconque peut être mise en oeuvre. De plus, dans d'autres modes de réalisation, un nombre quelconque de bancs (c'est-à-dire, de 0 banc N bancs) peut être mis en oeuvre pour I'antémémoire, En général, il est souhaitable de disposer du plus grand nombre possible de bancs mis en oeuvre pour l'antémémoire. Comme le montre la Figure 2, les PA[14:8] du résultat de TLB 10 sont entrés dans un MUX dynamique 14 au cours de la deuxième phase (la phase basse l'horloge) de LOM. Ensuite, au cours de la première phase (la phase haute de l'horloge) de l'étage de pipeline LOD, le MUX 14 sort les PA[14:8], qui sont entrés dans les circuits de décodage 18. Par conséquent, dans un mode de réalisation préféré, les circuits de décodage 18 commencent leur décodage pour le(s) tableau(x) de données 20 en parallèle avec la détermination de la correspondance d'étiquette pendant l'accès 12 aux étiquettes de Ll au cours de la première phase (la phase haute de l'horloge) de LOD. Au fur et à mesure que les circuits de décodage 18 décodent les PA[14:8], les données de correspondance d'étiquette de l'accès 12 aux étiquettes de L1 se terminent à la fin de la première phase (la phase haute de l'horloge) de LOD. Ces données de correspondance d'étiquette de l'accès 12 aux étiquettes de Ll sont entrées dans un MUX dynamique 16, qui délivre ces données de correspondance d'étiquette au cours de la deuxième phase de LOD (la phase basse de l'horloge). Donc, le MUX 16 est utilisé dans un mode de réalisation préféré pour sélectionner le banc approprié pour une corres pondance d'étiquette de voie. Plus spécifiquement, les PA[7:4] commandent le fonctionnement du MUX 16 pour acheminer la correspondance d'étiquette de voie vers le banc approprié. Le MUX 14 d'un mode de réalisation préféré est commandé par les PA[7:4] pour acheminer les adresses physiques vers le banc approprié. Au cours de la première phase (la phase haute de l'horloge) de LOW, les circuits de décodage 18 ont terminé et l'accès au tableau de données 20 commence pour l'adresse décodée. C'est-à-dire, au cours de la première phase de LOW, le décodage d'adresse physique est disponible à partir des circuits de décodage 18, et les lignes de mots sont amorcées, entraînant l'extraction de huit voies de données du tableau de données 20 selon cette adresse physique décodée. Par conséquent, au cours de la première phase de LOW, on accède de façon spéculative aux tableaux de données avant qu'une détermination n'ait été réalisée pour savoir si une vraie coïncidence d'étiquette a été réalisée pour l'antémémoire de Ll . Ensuite, plus tard au cours de la première phase de l'étage de pipeline LOW, la sélection de voie est entrée par les circuits de sélection de voie 22 dans le(s) tableau(x) de données 20. Ces données de sélection de voie sont reçues ultérieurement parce qu'elle subissent l'accès d'un demi-cycle supplé mentaire à travers les étiquettes pendant l'accès 12 aux étiquettes L1. Donc, dans un mode de réalisation préféré, les données de sélection de voie ne sont pas reçues par le tableau de données 20 jusqu'à fa fin de la première phase (la phase haute de l'horloge) de l'étage de pipeline LOW. Une seule des huit voies l'antémémoire sera à l'état haut, et les circuits, tels qu'un (non représenté), sont utilisés pour sélectionner la ligne de données extraite du tableau données en antémémoire 20 pour la voie qui est à l'état haut. C'est-à-dire, l'une des huit lignes de données extraites du tableau de données en antémemoire 20 est sélectionnée sur la base du signal de sélection voie provenant des circuits de sélection de voie 22, et ces données sélectionnées sont envoyées à l'unité d'exécution interrogatrice. Par exemple, un dynamique 24 peut être mis en oeuvre pour fournir les données sélectionnées pendant première phase (la phase haute de l'horloge) de l'étage de pipeline LI D à l'unité d'exécution interrogatrice. Par exemple, le MUX 24 peut sortir les données sélectionnées pour l'unité en virgule flottante interrogatrice une unité d'instructions L0128, ou l'unité d'exécution à base d'entiers LOD 30. Dans un mode de réalisation préféré, une détermination est effectuée pour savoir si une vraie coïncidence d'antémémoire est réalisée pour le niveau d'antémémoire. Ainsi, même si l'accès au(x) tableau(x) de données du niveau d'antémémoire commence avant qu'une détermination ne soit effectuée pour savoir si une vraie coïncidence d'antémémoire est réalisée pour le niveau d'antémémoire, cette détermination est effectuée ultérieurement. En se réfé- rant maintenant à la Figure 5, elle montre un mode de réalisation préféré pour déterminer si une vraie coïncidence d'antémémoire est realisée pour un niveau d'antémémoire. Comme montré, l'accès LIT 12 est terminé au cours de fa première phase (la phase haute de l'horloge) de l'étage pipeline LOD. Dans un mode de réalisation préféré, les données de correspondance d'étiquette de voie sorties par l'accès LIT 12 sont combinées avec le signal MES( 50 au cours de la deuxième phase (la phase basse de l'horloge) de LOD. Ainsi, dans un mode de réalisation préféré, un signal de vraie coïncidence/accès manqué est généré au cours de la deuxième phase de LOD en combinant les informations MES( avec la correspondance d'étiquette. Le signal de vraie cdincidence/accès manqué est entré dans les tableaux de données de L1 20 à l'étage de pipeline LOW. De plus, un signal de "code opération" valable est entré dans les tableaux de données de Ll 20, qui indique si l'instruction reçue était une opération valable. Dans un mode de réalisation préféré, le signal de code opération valable est combiné avec le signal de vraie cotncidence/accès manqué pour produire un signal d'accès valable, qui est ensuite envoyé à l'unité d'exécution interrogatrice par l'intermédiaire du 24 au cours de la première phase de LID. Par exemple, le MUX 24 peut envoyer le signal d'accès valable à une unité en virgule flottante 26, une unite d'instructions L01 28, ou une unité d'exécution à base d'entiers LOD 30. Ce signal d'accès valable indique aux unités d'exécution que les données, dont l'accès a commencé en LOD, sont effectivement valables.
convient de comprendre que dans le mode de réalisation préféré entre tous, l'accès spéculatif aux données en antémémoire tel décrit ici est mis en oeuvre uniquement pour un chemin de chargement. C'est-à-dire, dans le mode de réalisation préféré entre tous, l'accès spéculatif aux données en antémemoire est utilisé uniquement pour les demandes d'accès en mémoire reçues souhaitant lire des données à partir de l'antémémoire. Ainsi, pour le mode réalisation préféré entre tous, une détermination pour savoir si une vraie coïncidence a été réalisée pour le niveau d'antémémoire est effectuée avant l'accès aux données du niveau d'antémémoire pour un chemin de stockage (c'est-à-dire, pour une demande d'accès en mémoire reçue souhaitant écrire données en antémémoire). Les lectures peuvent être effectuées de façon spéculative avec uniquement un risque de gaspiller de l'énergie en accédant aux données du niveau d'antémémoire et déterminant que le niveau d'antémémoire a produit un accès manqué (c'est-à-dire, que l'adresse demandée est pas dans le niveau d'antémémoire). Cependant, si une écriture est effectuée de façon spéculative, alors les données de l'antémémoire peuvent être corrompues si un accès manqué se produit. Par conséquent, le mode de réalisation préféré entre tous réduit la latence nécessaire pour accéder aux données en antémémoire afin de satisfaire à une demande de lecture de données reçue.
De plus, dans le mode de réalisation préféré entre tous, plusieurs niveaux d'une antémémoire à plusieurs niveaux peuvent faire l'objet d'un accès en parallèle. exemple, dans le mode de réalisation préféré entre tous, l'adresse physique du TLB 10 peut être envoyée à l'antémémoire de L2 pour commencer l'accès au(x) tableau(x) de données en antémémoire de L2 en parallèle avec le(s) tableau(x) de données en antémémoire de L1 20 à l'étage de pipeline LOD. Par exemple, l'antémémoire peut être mise en oeuvre de façon à accéder à plusieurs niveaux en parallèle de la manière exposée dans la demande de brevet américain, numéro de série [bordereau n <B>10971</B>421 ], intitulée "METHOD AND SYSTEM FOR EARLY TAG ACCESSES FOR LOWER-LEVEL CACHES IN PARALLEL WITH FIRST-LEVEL CACHE". Ainsi, dans le mode de réalisation préféré entre tous, l'antémémoire peut être mise en oeuvre de façon à se couvrir, de sorte que si l'antémémoire de L1 produit un accès manqué, un accès a déjà commencé vers l'antémémoire de L2. Si Ll produit une coïncidence, alors un signal peut être envoyé à l'antémémoire de L2, amenant l'antémémoire de L2 à abandonner son accès aux données.
Dans le mode de réalisation préféré entre tous, mise en oeuvre des bancs décrite dans la demande de brevet américain, numéro de série [bordereau n 10971l78], intitulée "METHOD AND SYSTEM FOR PROVIDING A HIGH BANDWIDTH CACHE THAT ENABLES SIMULTA- NEOUS READS AND WRITES WITHIN THE CACHE", peut être mise en oeuvre dans cette architecture pour permettre une utilisation de bande passante accrue. C'est-à-dire, la bande passante accrue exposée dans "METHOD AND SYSTEM FOR PROVIDING A HIGH BANDWIDTH CACHE THAT ENABLES SIMULTANEOUS READS AND WRITES WITHIN CACHE" peut être mise en oeuvre avec le modèle à accès spéculatif aux données en antémémoire exposé ici pour augmenter encore les performances système. Comme évoqué ci-dessus, dans un mode de réalisation préféré, une antémémoire associative à huit voies est mise en oeuvre. Cependant, il convient de comprendre que divers modes de réalisation peuvent être mis en oeuvre avec un nombre quelconque de voies, et toute mise en oeuvre de ce type est prévue pour tomber dans le domaine de la présente invention. En outre, il convient de comprendre qu'aucune pénalité de temps n'est infligée en effectuant l'accès spéculatif aux données d'un mode de réalisation préféré. C'est-à-dire, dans un mode de réalisation préféré, les données sont extraites en avance de façon spéculative sans qu'aucune pénalité de temps ne soit infligée si un accès manqué se produit. Si un accès manqué se produit sur chemin d'un mode de réalisation préféré, un accès manqué se serait également produit sur le chemin série de l'art antérieur, mais sur le chemin série, les unités d'exécution ne seraient pas notifiées aussi rapidement d'un tel accès manqué. 11 convient de comprendre également qu'une structure d'antémémoire de la présente invention peut être mise en oeuvre dans tout type de système informatique disposant d'un processeur, y compris sans y etre limité, un ordinateur individuel (PC), un ordinateur portable, et un organiseur (par exemple un ordinateur de poche).
Bien que la présente invention et ses avantages aient été décrits en détail, convient de comprendre que diverses modifications, substitutions et altérations peuvent y être apportées sans s'éloigner de l'esprit du domaine l'invention tels que définis par les revendications ci-jointes De plus, le domaine de la présente demande ne doit pas être limité modes de realisation particuliers du processus, de la machine, de la fabrication, de la composition de matière, des moyens, des procédés et étapes décrits dans la spécification. Comme une personne normalement compétente dans l'art appréciera facilement d'après l'exposé de la présente invention les processus, machines, la fabrication, les compositions de matière, moyens, les procédés ou étapes existant actuellement ou qui vont être développés ultérieurement, qui effectuent sensiblement la même fonction ou atteignent sensiblement le même résultat que les modes de réalisation correspondants décrits ici, peuvent être utilisés selon la présente invention. Par conséquent, les revendications ci-jointes sont prévues pour être incluses dans le cadre du domaine de ces processus, ces machines, cette fabrication, ces compositions de matière, ces moyens, ces procédés ou ces étapes.

Claims (5)

<U>REVENDICATIONS</U>
1. Procédé d'accès en antémémoire, ledit procédé comprenant les étapes consistant à - entrer une demande d'accès en mémoire dans une structure d'anté- mémoire; et - commencer un accès aux données de ladite structure d'antémémoire pour ladite demande d'accès en mémoire sans déterminer d'abord si une adresse en mémoire nécessaire pour satisfaire à ladite demande d'accès en mémoire est vraiment présente dans ladite structure d'antémémoire.
2. Système informatique comprenant - au moins un processeur qui exécute des instructions et - une structure d'antémémoire accessible par ledit processeur pour satisfaire aux demandes d'accès en mémoire, dans lequel ladite structure d'antémémoire est configurée pour commencer un accès aux données de ladite structure d'antémémoire (20) pour une demande d'accès en mémoire reçue sans déterminer d'abord si une adresse en mémoire nécessaire pour satisfaire à ladite demande d'accès mémoire reçue est vraiment présente dans ladite structure d'antémémoire.
3. Structure d'antémémoire qui est accessible pour au moins un proces seur informatique pour satisfaire aux demandes d'accès en mémoire pour des instructions exécutées par ledit au moins un processeur informatique, ladite structure d'antémémoire comprenant - des moyens (10) pour recevoir une demande d'accès en mémoire provenant d'au moins un processeur; et - des moyens (14, 18, 20) pour commencer un accès aux données de ladite structure d'antémémoire pour une demande d'accès en mémoire reçue sans avoir déterminé d'abord si une adresse en mémoire nécessaire pour satisfaire à ladite demande d'accès en mémoire reçue est vraiment présente dans ladite structure d'antémémoire.
4. Procédé selon la revendication 1 ou système informatique selon la revendication 2, caractérisé en ce que ladite structure d'antémémoire est un niveau d'une antémémoire à plusieurs niveaux.
5. Procédé selon la revendication 4 comprenant en outre les étapes consistant à commencer un accès de données en parallèle pour plusieurs niveaux de ladite antémémoire à plusieurs niveaux sans avoir déterminé d'abord si une adresse en mémoire nécessaire pour satisfaire à ladite demande d'accès en mémoire est vraiment présente dans l'un quelconque desdits plusieurs niveaux de ladite antémémoire à plusieurs niveaux. Procédé selon la revendication 1, système informatique selon la revendication 2 ou structure d'antémémoire selon la revendication 3, caracterisé(e) en ce que ladite demande d'accès en mémoire est une demande de lecture de données. 7. Procédé selon la revendication 1, comprenant en outre l'étape consistant à déterminer si l'adresse en mémoire nécessaire pour satisfaire à ladite demande d'accès en mémoire est vraiment présente dans ladite structure d'antémémoire. 8. Système informatique selon la revendication 2, caractérisé ce que ladite structure d'antémémoire comprend en outre un TLB (10) qui reçoit une adresse virtuelle pour ladite demande d'accès en mémoire et sort adresse physique correspondante. 9. Système informatique selon la revendication 2, caractérise en ce que ladite antémémoire comprend en outre des circuits de correspondance d'étiquette (12) qui déterminent si une coïncidence d'étiquette est réalisée pour ladite structure d'antémémoire pour ladite demande d'accès en mémoire, et des circuits MESI (50) qui déterminent si ladite coïncidence d'étiquette est une vraie coïncidence d'étiquette. 10. Système informatique selon la revendication 9, caractérisé en ce que ladite antémémoire est mise en oeuvre de telle sorte que lesdits circuits de décodage commencent leur exécution avant que lesdits circuits MES] ne déterminent si ladite coïncidence d'étiquette est une vraie coïncidence d'étiquette.
FR0012522A 2000-02-18 2000-10-02 Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees Expired - Fee Related FR2805368B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/507,546 US6647464B2 (en) 2000-02-18 2000-02-18 System and method utilizing speculative cache access for improved performance

Publications (2)

Publication Number Publication Date
FR2805368A1 true FR2805368A1 (fr) 2001-08-24
FR2805368B1 FR2805368B1 (fr) 2006-09-22

Family

ID=24019062

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0012522A Expired - Fee Related FR2805368B1 (fr) 2000-02-18 2000-10-02 Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees

Country Status (2)

Country Link
US (1) US6647464B2 (fr)
FR (1) FR2805368B1 (fr)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US20050193172A1 (en) * 2004-02-26 2005-09-01 Anoop Mukker Method and apparatus for splitting a cache operation into multiple phases and multiple clock domains
US7944876B2 (en) * 2004-06-02 2011-05-17 Integrated Device Technology, Inc Time slot interchange switch with bit error rate testing
US20050270870A1 (en) * 2004-06-02 2005-12-08 Sangho Shin Time slot interchange switch with cache
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
US8127082B2 (en) * 2006-02-01 2012-02-28 International Business Machines Corporation Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations
US7702858B2 (en) * 2007-06-05 2010-04-20 Apple Inc. Latency reduction for cache coherent bus-based cache
US20090049249A1 (en) * 2007-08-16 2009-02-19 International Business Machines Corporation Transparent cache system and method
US8713277B2 (en) 2010-06-01 2014-04-29 Apple Inc. Critical word forwarding with adaptive prediction
US8683129B2 (en) * 2010-10-21 2014-03-25 Oracle International Corporation Using speculative cache requests to reduce cache miss delays
US9384131B2 (en) * 2013-03-15 2016-07-05 International Business Machines Corporation Systems and methods for accessing cache memory
US10579522B2 (en) * 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10366774B2 (en) * 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398382A2 (fr) * 1989-05-19 1990-11-22 Kabushiki Kaisha Toshiba Processeur pipeline et méthode de traitement en pipeline pour microprocesseur
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5835934A (en) * 1993-10-12 1998-11-10 Texas Instruments Incorporated Method and apparatus of low power cache operation with a tag hit enablement

Family Cites Families (17)

* 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
US5737569A (en) * 1993-06-30 1998-04-07 Intel Corporation Multiport high speed memory having contention arbitration capability without standby delay
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
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US5956752A (en) * 1996-12-16 1999-09-21 Intel Corporation Method and apparatus for accessing a cache using index prediction
US6065101A (en) * 1997-06-12 2000-05-16 International Business Machines Corporation Pipelined snooping of multiple L1 cache lines
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
US6427188B1 (en) * 2000-02-09 2002-07-30 Hewlett-Packard Company Method and system for early tag accesses for lower-level caches in parallel with first-level cache
US6507892B1 (en) * 2000-02-21 2003-01-14 Hewlett-Packard Company L1 cache memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398382A2 (fr) * 1989-05-19 1990-11-22 Kabushiki Kaisha Toshiba Processeur pipeline et méthode de traitement en pipeline pour microprocesseur
US5835934A (en) * 1993-10-12 1998-11-10 Texas Instruments Incorporated Method and apparatus of low power cache operation with a tag hit enablement
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches

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
FR2805368B1 (fr) 2006-09-22
US6647464B2 (en) 2003-11-11
US20020169929A1 (en) 2002-11-14

Similar Documents

Publication Publication Date Title
US10635593B2 (en) Create page locality in cache controller cache allocation
US5737750A (en) Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions
US10176099B2 (en) Using data pattern to mark cache lines as invalid
FR2805368A1 (fr) Systeme et procede utilisant l&#39;acces speculatif a l&#39;antememoire pour des performances ameliorees
CN104756090B (zh) 提供扩展的缓存替换状态信息
EP2710472B1 (fr) Mémoire avec métadonnées enregistrées dans une partie des pages de mémoire
JP2016105299A (ja) 先読み技術を利用して行われる、システムのオペレーティングシステムのブート、ストレージデバイス、システム、方法、プログラム、及び、コンピュータ可読記録媒体
EP1619590B1 (fr) Procédé de programmation d&#39;un contrôleur de DMA dans un système sur puce et système sur puce associé
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
US20150220436A1 (en) Power Efficient Level One Data Cache Access With Pre-Validated Tags
US8639889B2 (en) Address-based hazard resolution for managing read/write operations in a memory cache
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
WO2018046850A1 (fr) Methodes et dispositifs pour contourner le cache interne d&#39;un controleur memoire dram evolue
EP0392932B1 (fr) Procédé et dispositif pour accélérer les accès mémoire, utilisant un algorithme LRU modifié
EP4035089A1 (fr) Procédés et appareil de traitement de modèle d&#39;apprentissage automatique dans un environnement de navigateur web
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
US8019968B2 (en) 3-dimensional L2/L3 cache array to hide translation (TLB) delays
FR2835937A1 (fr) Identification d&#39;entrees perimees dans un cache informatique
TW200304594A (en) System and method of data replacement in cache ways
WO2019206260A1 (fr) Procédé et appareil de lecture de cache de fichier
CN112925632B (zh) 处理方法及装置、处理器、电子设备及存储介质
US8661169B2 (en) Copying data to a cache using direct memory access
US8019969B2 (en) Self prefetching L3/L4 cache mechanism
CN106649143B (zh) 一种访问缓存的方法、装置及电子设备
FR2645987A1 (fr) Dispositif d&#39;acceleration des acces memoire dans un systeme informatique

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20090630