FR2836732A1 - Dispositif et procedes pour interfacer une memoire cache - Google Patents

Dispositif et procedes pour interfacer une memoire cache Download PDF

Info

Publication number
FR2836732A1
FR2836732A1 FR0302333A FR0302333A FR2836732A1 FR 2836732 A1 FR2836732 A1 FR 2836732A1 FR 0302333 A FR0302333 A FR 0302333A FR 0302333 A FR0302333 A FR 0302333A FR 2836732 A1 FR2836732 A1 FR 2836732A1
Authority
FR
France
Prior art keywords
cache
processor
data
processing system
caches
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.)
Pending
Application number
FR0302333A
Other languages
English (en)
Inventor
Donald Charles Soltis Jr
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 FR2836732A1 publication Critical patent/FR2836732A1/fr
Pending 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

Un système de traitement (100) comprend un processeur (106), une mémoire principale (130), un cache (108) et une interface crossbar (120) entre le processeur et le cache. Dans un système à plusieurs processeurs (400), une pluralité de plages (138) d'adresses de la mémoire principale peuvent être cartographiées à une pluralité de caches et une pluralité de caches peuvent être cartographiés à une pluralité de processeurs. Par conséquent, un degré important de souplesse est fourni pour configurer un système de traitement.

Description

<Desc/Clms Page number 1>
DISPOSITIF ET PROCEDES POUR INTERFACER UNE MEMOIRE
CACHE
CHAMP DE L'INVENTION
La présente invention se rapporte de manière générale à des systèmes de traitement et, de manière plus particulière, à la manière d'interfacer une mémoire cache dans des systèmes de traitement.
ARRIERE PLAN DE L'INVENTION
Dans des systèmes à plusieurs processeurs, une pluralité de processeurs et d'autres agents du système tels que des caches et des mémoires peuvent être fabriqués sur une seule puce. Cependant, il peut être difficile de configurer la puce d'une manière qui convient à une variété d'applications cibles. Il pourrait être souhaitable, pour un système donné par exemple, de varier les tailles et les structures de cache conformément à la fréquence selon laquelle des données seraient demandées auprès des adresses de la mémoire principale pendant des applications cibles. Un processeur donné pourrait tirer avantage d'un grand cache, tandis qu'un autre processeur en général pourrait être ralenti par un grand cache. Bien qu'un
<Desc/Clms Page number 2>
accroissement de la taille du cache puisse améliorer la performance d'un processeur, une diminution des retours peut s'installer à mesure que la latence du cache augmente.
Il serait souhaitable d'avoir de la souplesse pour configurer la mémoire cache sur une puce à plusieurs processeurs, de sorte qu'une seule configuration de puces puisse à la fois convenir à des applications intensives au point de vue de l'utilisation du cache et à celles faisant une utilisation relativement faible du cache. En outre, il serait souhaitable de pouvoir augmenter la mémoire cache disponible pour un processeur sur une telle puce sans augmenter la latence du cache d'une manière excessive.
RESUME DE L'INVENTION
Selon un mode de réalisation, l'invention propose un système de traitement comprenant un processeur, une mémoire principale et un cache configuré pour recevoir des données d'une adresse de la mémoire principale sur une requête pour la donnée faite par le processeur, le système de traitement comprenant une interface à matrice de croisements ("crossbar"ci-dessous) entre le processeur et le cache.
Dans une variante de mode de réalisation, l'invention propose que dans ledit système de traitement la mémoire principale soit commandée par un contrôleur de mémoire, ladite interface crossbar étant alors configurée pour relier le contrôleur de mémoire, le processeur et le cache.
Dans une autre variante de mode de réalisation, l'invention propose que dans ledit système de traitement ladite interface crossbar comprenne une pluralité de ports par l'intermédiaire desquels le cache et le processeur sont liés sur la base de
<Desc/Clms Page number 3>
l'adresse en mémoire principale.
Dans une autre variante de mode de réalisation, l'invention propose que dans ledit système de traitement le processeur soit configuré pour associer au moins une plage d'adresses de la mémoire principale au cache.
Dans une autre variante de mode de réalisation, l'invention propose que ledit système comprenne en outre une pluralité de caches, le processeur comprenant une table de plages d'adresses, chaque plage d'adresses étant associée à un cache.
Dans cette variante particulière, l'invention propose aussi que dans ledit système de traitement la table de plages d'adresses soit programmable pour changer au moins une des plages d'adresses et un cache associé au processeur.
Dans une variante de mode de réalisation encore différente, l'invention propose que dans ledit système de traitement, l'interface crossbar soit configurée pour renvoyer la donnée demandée par le processeur au cache et au processeur en parallèle.
Dans une variante de mode de réalisation encore différente, l'invention propose que ledit système de traitement comprenne en outre une pluralité de processeurs reliés au cache par l'intermédiaire de l'interface crossbar.
Dans une variante de mode de réalisation encore différente, l'invention propose que dans ledit système de traitement, l'interface crossbar soit configurée pour fournir une synchronisation du signal pour une transaction asynchrone entre le cache et le processeur.
L'invention propose en outre un procédé pour configurer un système de traitement à plusieurs processeurs, ledit procédé comprenant les étapes consistant à cartographier une pluralité de plages
<Desc/Clms Page number 4>
d'adresses de la mémoire principale à une pluralité de caches (418) ; à cartographier les caches à une pluralité de processeurs (414) ; et à relier les processeurs et les caches en utilisant une interface crossbar (426).
BREVE DESCRIPTION DES DESSINS
La présente invention pourra être comprise de manière plus complète à partir de la description détaillée et des dessins d'accompagnement, dans lesquels : La figure 1 est un diagramme d'un système de traitement de la technique ancienne ; La figure 2 est un diagramme d'un système de traitement conformément à un mode de réalisation de la présente invention ; La figure 3 est un diagramme d'une conceptualisation d'un schéma pour cartographier une mémoire cache conformément à un mode de réalisation ; La figure 4 est un diagramme d'une conceptualisation d'une transaction de requête envoyée par un processeur conformément un mode de réalisation ; La figure 5 est une conceptualisation d'une transaction de retour envoyée par un cache conformément à un mode de réalisation ; La figure 6 est un diagramme d'une conceptualisation des transactions de retour envoyées par un contrôleur de mémoire conformément à un mode de réalisation ; et la figure 7 est un diagramme d'un mode de réalisation d'un système à plusieurs processeurs.
<Desc/Clms Page number 5>
DESCRIPTION DETAILLEE DES MODES DE REALISATION
PREFERENTIELS
La description qui fait suite des modes de réalisation préférentiels est uniquement exemplaire par nature et elle n'est en aucune manière destinée à limiter l'invention, son application ou ses utilisations.
Un système à plusieurs processeurs de la technique ancienne, donné à titre d'exemple, est indiqué d'une manière générale par une référence numérique 10 à la figure 1. Le système 10 comprend une pluralité de processeurs 14, chaque processeur ayant un cache 18 pour tenir des données utilisées par le processeur 14.
Chaque cache 18 est configuré pour recevoir des lignes de données demandées par le processeur associé 14 à depuis une mémoire principale 22. Un"crossbar"26 relie les caches 18 à deux contrôleurs de mémoire 30 par l'intermédiaire de ports 32. Chaque contrôleur 30 commande la lecture des données depuis, et l'écriture des données vers, une moitié de la mémoire principale 22. De manière spécifique, le contrôleur de mémoire 30a commande des adresses dans une moitié 22a et le contrôleur de mémoire 30b commande des adresses dans l'autre moitié 22b, de la mémoire principale 22.
Les adresses pour stocker des données dans les deux moitiés dans la mémoire principale 22 sont cartographiées sur chacun des caches 18. Par exemple, lorsque le processeur 14a demande une donnée à la mémoire principale 22, la demande est dirigée vers le cache associé 18a. Un arrangement d'étiquettes 34 du cache 18a fait l'objet d'une recherche pour déterminer si la donnée est déjà stockée dans un arrangement de données de cache 38 du cache 18a. Si l'opération de cache est une réussite, c'est-à-dire si l'on détermine que la donnée est déjà dans le cache 18a de
<Desc/Clms Page number 6>
l'arrangement de données 38, la donnée est renvoyée depuis le cache 18a vers le processeur 14a.
Si l'opération de cache n'est pas une réussite, c'est-à-dire si l'on détermine que la donnée n'est pas dans le cache 18a de l'arrangement de données 38, la donnée est récupérée auprès de la mémoire principale 22 par l'intermédiaire du contrôleur de mémoire 30 qui commande l'adresse de la donnée demandée. La donnée récupérée est transmise via le crossbar 26 à l'arrangement de données 38 du cache 18a. La donnée est ensuite transférée du cache 18a vers le processeur 14a.
Des données issues d'une adresse de la mémoire principale 22 peuvent être stockées dans un cache 18 et être par la suite modifiées par le processeur associé 14. De manière typique, un schéma de cohérence est utilisé pour conserver une cohérence des données, par exemple, dans le cas où le processeur met à jour son cache associé 18 avec la donnée modifiée. De tels schémas sont conçus pour assurer que la donnée la plus récente soit écrite vers la mémoire principale 22 et/ ou d'autres caches 18. De manière typique, l'information utilisée pour maintenir la cohérence du cache est stockée dans un arrangement d'étiquettes 34 de cache 18. Une telle information peut être mise à jour, par exemple, lorsque le cache 18 reçoit une donnée issue de la mémoire principale 22 et/ou du processeur associé 14.
Le crossbar 26 rend possible, pour un contrôleur de mémoire 30, de mettre à jour deux caches 18 avec la même donnée en même temps, c'est-à-dire dans le même cycle d'horloge 10 du système. Cependant, chaque processeur 14 obtient la donnée mise à jour de manière indirecte, c'est-à-dire, depuis son cache associé 18 après que le cache associé 18 ait été mis à jour par un contrôleur de mémoire 30.
<Desc/Clms Page number 7>
Accroître la taille d'un cache donné 18 permet au cache 18 de contenir, à tout instant, un nombre de lignes de données issues du stockage principal 22 plus grand qu'avant l'accroissement. Par conséquent, d'une manière générale, la performance d'un processeur 14 peut s'améliorer lorsque le cache associé 18 est agrandi. Cependant, à mesure que la taille du cache 18 s'accroît la latence, c'est-à-dire le temps nécessaire pour renvoyer la donnée vers le processeur associé 14 à partir du cache 18, augmente aussi. La latence augmente au moins en partie parce qu'un processeur 14 est configuré de manière typique, pour attendre pendant une durée temporelle fixée, une requête de données en cours. A mesure que l'on augmente la taille du cache 18, ce temps d'attente fixe du processeur est aussi augmenté d'une manière typique pour permettre de rechercher de données dans la zone de mémoire cache agrandie. De manière spécifique, le processeur 14 est typiquement reconfiguré au plan matériel pour augmenter le temps d'attente. Par conséquent la performance et la souplesse du processeur 14 peuvent être limitées par la performance du cache 18, ce qui peut aussi affecter la performance globale du système 10. Ce cas peut se présenter en particulier là où le système 10 réside sur une seule puce.
Un système de traitement conforme à un mode de réalisation de la présente invention est indiqué d'une manière générale par une référence numérique 100 à la figure 2. Le système 100 comprend une pluralité d'agents ou de modules 102 du système, interconnectés pour effectuer des fonctions du système. D'une manière générale, les modules 102 communiquent l'un avec l'autre en (a) émettant des requêtes pour des données et/ou (b) émettant des données en réponse à de telles requêtes. Comme cela sera décrit plus loin de manière
<Desc/Clms Page number 8>
détaillée, chaque module 102 est identifié dans le système 100 par un identificateur unique du module (ID de module), utilisé pour acheminer des communications ou des transactions entre un expéditeur et un destinataire.
Le système 100 est configuré sur une seule puce 104. Des modules 102 du système 100 comprennent une pluralité de processeurs 106 et une pluralité de mémoires cache ou caches 108. On envisage cependant que d'autres modes de réalisation puissent inclure aussi peu qu'un seul processeur 106 et/ou un seul cache 108 et que d'autres modes de réalisation puissent être configurés sur plus d'une puce. Chaque cache 108 comprend un arrangement d'étiquettes 110 et un arrangement de données 112.
Une interface crossbar 120 relie des agents du système 102, par exemple les processeurs 106 et les caches 108, par l'intermédiaire d'une pluralité de ports 122. De manière spécifique, les caches 108a, 108b, 108c et 108d accèdent au crossbar 120 par l'intermédiaire de ports 122c, 122d, 122e et 122f respectivement, et les processeurs 106a et 106b accèdent au crossbar 120 par l'intermédiaire des ports 122a et 122b respectivement. Lorsqu'une pluralité de modules communique les uns avec les autres par l'intermédiaire de transactions au travers du crossbar 120, des ID des modules expéditeurs et destinataires sont inclus dans chaque transaction. Les ID de modules sont vérifiés par rapport à une table de routage (non montrée) pour identifier un port de crossbar 122 pour chacun des modules qui communiquent 102. La transaction est ensuite acheminée au travers du crossbar 120 entre les ports 122 convenables. Il est possible de transmettre plus d'une transaction à un instant donné par l'intermédiaire du crossbar 120, et un module 102
<Desc/Clms Page number 9>
peut envoyer des transactions à plus d'un module récepteur 102 au cours du même cycle d'horloge 100.
Dans le cas où un module 102 envoie une transaction de manière asynchrone au crossbar 120, le crossbar 120 fournit une synchronisation pour une telle transaction.
Une mémoire principale 130 est reliée au crossbar 120 par l'intermédiaire d'un contrôleur de mémoire 132 en un port 122g. Comme cela sera décrit plus loin de manière plus détaillée, des plages d'adresses A, B, C et D de la mémoire principale 130 sont cartographiées sur les caches 108. Dans le présent mode de réalisation donné à titre d'exemple, l'ensemble des plages d'adresses A, B, C et D sont cartographiées sur chacun des caches 108. D'autres cartographies différentes sont toutefois possibles. Toutes les plages ou, en variante, un nombre inférieur à toutes les plages de la mémoire 130 peuvent être cartographiées, par exemple, sur moins que l'ensemble des caches 108. Un cache donné 108 est configuré pour recevoir des données issues des adresses de la mémoire principale 130 cartographiée à ce cache particulier, lorsqu'un processeur 106 demande des données.
D'une manière générale, un processeur donné 106 peut être associé à un ou une pluralité de caches 108 et un cache donné 108 peut être associé à un ou une pluralité de processeurs 106, comme nous allons le décrire maintenant. Chacun des processeurs 106 comprend une table programmable 134 des plages d'adresses 138 adressables par le processeur donné 106. Pour chaque plage d'adresses 138, la table 134 comprend un ID de modules 142 identifiant un cache 108 auquel la plage d'adresses 138 est cartographiée.
Par exemple, comme nous allons le décrire de manière plus détaillée plus loin, le processeur 106a obtient une donnée de cache en correspondance à des
<Desc/Clms Page number 10>
plages d'adresses A et B de la mémoire principale par l'intermédiaire du port 122c, qui assure la liaison au cache 108a. Le processeur 106a obtient une donnée de cache en correspondance aux plages d'adresses C et D par l'intermédiaire du port 122d, qui assure la liaison au cache 108b. Le processeur 106b obtient une donnée de cache pour les plages A à D à partir des caches 108a à 108d respectivement, par l'intermédiaire des ports du crossbar 122c à 122f respectivement.
Une association des caches 108 au processeur 106, telle que décrite en référence à la figure 2, est illustrée plus en détail à la figure 3, dans laquelle la cartographie de la mémoire principale 130 sur des caches 108 par des processeurs 106 est indiquée d'une manière générale par une référence numérique 200. Comme cela a été décrit plus haut, la table 138 du processeur 106a fait une association 204 des plages A et B de la mémoire avec le cache 108a et des plages C et D avec le cache 108b. La table 138 du processeur 106b fait une association 208 de la plage A de la mémoire avec le cache 108a, de la plage B de la mémoire avec le cache 108c, de la plage C de la mémoire avec le cache 108b et de la plage D de la mémoire avec le cache 108d. (Il est évident que les associations 204 et 208 et les plages A-D de la mémoire sont dessinées dans la figure 3 de manière à conceptualiser leur relation mutuelle en connexion avec la cartographie 200. Par conséquent leurs étendues relativement à la mémoire principale 130 est relativement les unes aux autres ne sont que des approximations à la figure 3.)
Lorsque le processeur 106a demande une donnée stockée dans une adresse à l'intérieur de la plage A d'adresses de la mémoire principale, une transaction de requête, par exemple une requête indiquée d'une manière générale par une référence numérique 300 à la figure 4,
<Desc/Clms Page number 11>
est envoyée au cache 108a. La requête 300 comprend une ID de module 304 identifiant le processeur expéditeur 106a. Une ID de module 308 identifiant le cache destinataire 108a est obtenue à partir de la table 134 des plages d'adresses (montrée à la figure 2) et incluse dans la requête 300. La requête 300 comprend aussi l'adresse 312 de la mémoire principale à partir de laquelle la donnée fait l'objet de la requête. Bien sûr, d'autres données peuvent être incluses dans la requête 300, par exemple, pour distinguer la requête 300 de tout autre requête qui peut être en cours d'exécution entre les deux modules 106a et 108a. On comprendra que les figures 4 à 6 représentent des conceptualisations, et que beaucoup d'éléments transactionnels, de données et de formats de commande et de protocoles de transaction sont possibles. La table de routage (non montrée) est utilisée pour faire correspondre les ID des modules 304 et 308 aux ports 122a et 122c respectivement, et le crossbar 120 relie le processeur 106a au cache 108a par l'intermédiaire des ports 122a et 122c.
Une recherche d'étiquette est effectuée dans l'arrangement d'étiquettes 110 du cache 108a, comme cela est connu dans la technique, pour déterminer si la donnée demandée est dans le cache 108a. Si l'opération de cache est une réussite, la donnée demandée est renvoyée par l'intermédiaire du crossbar 120 au processeur 106a dans une transaction de retour de données, par exemple une transaction de retour indiquée d'une manière générale par la référence numérique 320 à la figure 5. La transaction de retour 320 comprend les ID des modules 324 et 328 identifiant les modules expéditeurs et destinataires 108a et 106a, respectivement, ainsi que la donnée 332 demandée par le processeur 106a. Les ID des modules sont vérifiés par
<Desc/Clms Page number 12>
rapport à la table de routage, comme cela a été décrit plus haut, et la transaction de retour 320 est routée par l'intermédiaire des ports 122c et 122a du crossbar 120 vers le processeur 106a.
Si l'opération de cache n'est pas une réussite, la requête 300 est expédiée au contrôleur de mémoire 132 qui obtient la donnée demandée à partir de la plage A de la mémoire principale 130 (montrée à la figure 2).
Le contrôleur de mémoire 132 renvoie la donnée demandée par l'intermédiaire du crossbar 120 dans deux transactions parallèles, par exemple les transactions indiquées par les références numériques 340 et 344 à la figure 6. La transaction 340 est envoyée au cache 108a et comprend une ID de module 348 identifiant le contrôleur de mémoire expéditeur 132, une ID de module 352 identifiant le cache destinataire 108a et la donnée demandée 356. La transaction 344 est envoyée au processeur 106a et comprend le ID de module 348 du contrôleur de mémoire, la donnée demandée 356 et un ID de module 360 identifiant le processeur destinataire 106a. Le cache 108a met à jour son arrangement de données 112 à l'aide de la nouvelle donnée et met à jour son arrangement d'étiquettes 110 à l'aide de la nouvelle information d'étiquette. La cohérence du cache peut être conservée en utilisant des schémas de cohérence tels que celui qui a été décrit précédemment en connexion avec le système 10 de la technique ancienne. Par exemple, le contrôleur de mémoire 132 peut mettre à jour l'arrangement de données 112 et l'arrangement d'étiquettes 110, de tout autre cache 108 qui avait précédemment demandé la donnée à la même plage A d'adresses de la mémoire.
Lorsque l'on souhaite augmenter la mémoire principale 130 pour une configuration particulière du système de traitement, une ou plisieurs tailles de l'un
<Desc/Clms Page number 13>
ou d'une pluralité de caches 108 peuvent être modifiées de sorte que la mémoire supplémentaire puisse être cartographiée sur le ou les caches 108 sans changer l'interface crossbar 120. Des caches 108 peuvent aussi être ajoutés ou ôtés du système de traitement 100, par exemple, pour accommoder des changements des plages de mémoire qui sont en cours de cartographie vers les caches 108. La table 134 d'un processeur donné 106 est programmable pour augmenter ou réduire le nombre de caches 108 associés au processeur 106 et/ou pour changer les plages 138 de la mémoire principale qui sont cartographiées sur des caches 108.
Un système à plusieurs processeurs conforme à un autre mode de réalisation de la présente invention est indiqué d'une manière générale par une référence numérique 400 à la figure 7. Le système 400 comprend une pluralité de processeurs 414 reliés à une pluralité de caches 418 par l'intermédiaire d'une pluralité de crossbars 424 joints pour former une interface 424. Une mémoire principale 430 est cartographiée sur les caches 418 et est aussi reliée à l'interface du crossbar 424 par l'intermédiaire de deux contrôleurs de mémoire 434.
Des agents supplémentaires du système 400 sont liés à l'interface 424 et comprennent, par exemple, un système d'entrée/sortie 438.
Les modes de réalisation décrits plus haut rendent possible de modifier facilement une conception particulière de puce, pour accorder les besoins en cache de processeurs et d'applications cibles particuliers. A l'intérieur d'un système à plusieurs processeurs donné, chaque processeur peut être cartographié avec uniquement autant de caches que cela peut être avantageux (qui peuvent différer selon les différents processeurs du système). En outre, un processeur peut être cartographié pour utiliser
<Desc/Clms Page number 14>
différents caches pour des plages différentes de la mémoire principale. Par conséquent, la latence peut être minimisée.
L'interface crossbar décrite plus haut fournit une liaison à vitesse élevée entre des processeurs et des caches. L'interface crossbar rend aussi possible de fournir une communication asynchrone entre un processeur et un cache. Une recherche dans un cache, et une récupération des données dans un cache, peuvent être effectuées de manière plus rapide qu'avec des structures conventionnelles de cache. Les modes de réalisation précédents rendent possibles de mettre à jour une mémoire cache et le processeur associé en parallèle, au lieu d'avoir à déplacer les données vers le cache et de déplacer ensuite les données du cache vers le processeur. Parce que les mémoires caches précédentes peuvent être facilement modifiées en taille pour une configuration particulière à plusieurs processeurs, un processeur peut facilement être configuré avec une taille de cache convenable pour une utilisation particulière. En outre, il est possible de changer le nombre de caches, par exemple d'augmenter le nombre pour une configuration donnée sans augmenter la latence.
La capacité décrite plus haut des processeurs à partager des caches (et/ou des parties de ceux-ci) rend possible une grande variété de cartographies, de caches sur des processeurs et de la mémoire principale sur des caches. Par conséquent, il est possible de configurer une grande variété des caractéristiques d'un système de traitement sans devoir changer l'interface crossbar. Une configuration particulière de puce peut donc être utilisée pour une variété d'applications plus grande que cela ne serait possible avec des configurations ayant des processeurs et des caches
<Desc/Clms Page number 15>
intégrés de manière conventionnelle.
La description de l'invention est purement exemplaire par nature, et, par conséquent, des variantes qui ne s'éloignent pas de l'esprit de l'invention sont destinées à être dans la portée de l'invention. De telles variantes ne devront pas être considérées comme s'éloignant de l'esprit et de la portée de l'invention.

Claims (10)

  1. REVENDICATIONS 1. Système de traitement (100) comprenant un processeur (106), une mémoire principale (130) et un cache (108) configuré pour recevoir des données d'une adresse de la mémoire principale sur une requête pour la donnée faite par le processeur, le système de traitement comprenant une interface crossbar (120) entre le processeur et le cache.
  2. 2. Système de traitement (100) de la revendication 1 dans lequel la mémoire principale (130) est commandée par un contrôleur de mémoire (132), l'interface crossbar (120) étant configurée pour relier le contrôleur de mémoire, le processeur (106) et le cache (108).
  3. 3. Système de traitement (100) de la revendication 1 dans lequel l'interface crossbar (120) comprend une pluralité de ports (122) par l'intermédiaire desquels le cache (108) et le processeur (106) sont liés sur la base de l'adresse en mémoire principale.
  4. 4. Système de traitement (100) de la revendication 1 dans lequel le processeur (106) est configuré pour associer au moins une plage d'adresses de la mémoire principale (130) au cache (108).
  5. 5. Système de traitement (100) de la revendication 1 comprenant en outre une pluralité de caches (108), le processeur (106) comprenant une table de plages d'adresses (134), chaque plage d'adresses (138) étant associée à un cache (108).
    <Desc/Clms Page number 17>
  6. 6. Système de traitement (100) de la revendication 5 dans lequel la table de plages d'adresses (134) est programmable pour changer au moins une des plages d'adresses (138) et un cache (108) associé au processeur (106).
  7. 7. Système de traitement (100) de la revendication 1 dans lequel l'interface crossbar (120) est configurée pour renvoyer la donnée demandée par le processeur (106) au cache (108) et au processeur en parallèle.
  8. 8. Système de traitement (100) de la revendication 1 comprenant en outre une pluralité de processeurs (106) reliés au cache (108) par l'intermédiaire de l'interface crossbar (120).
  9. 9. Système de traitement (100) de la revendication 1 dans lequel l'interface crossbar (120) est configurée pour fournir une synchronisation du signal pour une transaction asynchrone entre le cache (108) et le processeur (106).
  10. 10. Procédé pour configurer un système de traitement à plusieurs processeurs (400) comprenant les étapes consistant à : cartographier une pluralité de plages (138) d'adresses de la mémoire principale à une pluralité de caches (418) ; cartographier les caches à une pluralité de processeurs (414) ; et relier les processeurs et les caches en utilisant une interface crossbar (426).
FR0302333A 2002-03-01 2003-02-26 Dispositif et procedes pour interfacer une memoire cache Pending FR2836732A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/086,494 US20030167379A1 (en) 2002-03-01 2002-03-01 Apparatus and methods for interfacing with cache memory

Publications (1)

Publication Number Publication Date
FR2836732A1 true FR2836732A1 (fr) 2003-09-05

Family

ID=27753831

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0302333A Pending FR2836732A1 (fr) 2002-03-01 2003-02-26 Dispositif et procedes pour interfacer une memoire cache

Country Status (2)

Country Link
US (1) US20030167379A1 (fr)
FR (1) FR2836732A1 (fr)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076609B2 (en) * 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US7440960B2 (en) * 2003-09-03 2008-10-21 International Business Machines Corporation Result set management
WO2007110898A1 (fr) * 2006-03-24 2007-10-04 Fujitsu Limited Système multiprocesseur et procédé d'exploitation de système multiprocesseur
US8766995B2 (en) * 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US8605099B2 (en) * 2008-03-31 2013-12-10 Intel Corporation Partition-free multi-socket memory system architecture
US8234450B2 (en) * 2009-07-10 2012-07-31 Via Technologies, Inc. Efficient data prefetching in the presence of load hits
WO2011032593A1 (fr) * 2009-09-17 2011-03-24 Nokia Corporation Mémoire cache à multi-canaux
US10528345B2 (en) * 2015-03-27 2020-01-07 Intel Corporation Instructions and logic to provide atomic range modification operations
GB2571538B (en) * 2018-02-28 2020-08-19 Imagination Tech Ltd Memory interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392184A2 (fr) * 1989-04-12 1990-10-17 International Business Machines Corporation Organisation de mémoire hiérarchique
US6182112B1 (en) * 1998-06-12 2001-01-30 Unisys Corporation Method of and apparatus for bandwidth control of transfers via a bi-directional interface

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
GB2275119B (en) * 1993-02-03 1997-05-14 Motorola Inc A cached processor
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett-Packard Company (A Delaware Corporation), Palo Alto Anordnung mit Duplikat des Cache-Etikettenspeichers
US6725343B2 (en) * 2000-10-05 2004-04-20 Hewlett-Packard Development Company, L.P. System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system
US6532519B2 (en) * 2000-12-19 2003-03-11 International Business Machines Corporation Apparatus for associating cache memories with processors within a multiprocessor data processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0392184A2 (fr) * 1989-04-12 1990-10-17 International Business Machines Corporation Organisation de mémoire hiérarchique
US6182112B1 (en) * 1998-06-12 2001-01-30 Unisys Corporation Method of and apparatus for bandwidth control of transfers via a bi-directional interface

Also Published As

Publication number Publication date
US20030167379A1 (en) 2003-09-04

Similar Documents

Publication Publication Date Title
FR2836732A1 (fr) Dispositif et procedes pour interfacer une memoire cache
CN113766035B (zh) 一种业务受理及共识的方法及装置
US7506009B2 (en) Systems and methods for accessing a shared storage network using multiple system nodes configured as server nodes
EP1233342B1 (fr) Contrôleur de cohérence pour ensemble multiprocesseur, module et ensemble multiprocesseur à architecture multimodule intégrant un tel contrôleur
CN1578320B (zh) 利用主机状态信息进行网络负载平衡
JP4990244B2 (ja) インターネット処理加速システムおよびデータを処理するための方法
US6651131B1 (en) High bandwidth network and storage card
CN101088074B (zh) 用于具有不同高速缓存位置长度的高速缓存中高速缓存一致性的系统和方法
US20150127649A1 (en) Efficient implementations for mapreduce systems
FR2862147A1 (fr) Reconfiguration dynamique de liaisons de type pci-express
EP0755013B1 (fr) Système informatique multinodal et procédé de transfert de messages dans ledit système informatique multinodal
FR2870957A1 (fr) Systeme et procede informatique d&#39;interconnexion de peripheriques de type pci express advanced switching
JPH10320337A (ja) 分散データ管理方法
CN110442532A (zh) 用于与主机相链接的设备的全球可存储存储器
KR20130101572A (ko) 디렉토리 기반의 멀티코어 아키텍처 상에서 캐시 상태 전송의 가속화
CN105721538A (zh) 数据访问的方法和装置
CN105653198A (zh) 数据处理方法及装置
EP2864891B1 (fr) Systeme et procede de traitement de donnees a gestion d&#39;une coherence de caches dans un reseau de processeurs munis de memoires caches
US20030163442A1 (en) FFS search and edit pipline separation
KR20160037792A (ko) 고 대역폭 피어-투-피어 스위치드 키-밸류 캐싱
EP2088511A1 (fr) Système informatique multiprocesseur
WO2000052574A3 (fr) Procede et appareil de traitement de donnees par procuration
EP1049018B1 (fr) Architecture d&#39;interconnexion modulaire pour machine multiprocesseur extensible, mettant en oeuvre une hiérarchie de bus virtuelle à plusieurs niveaux et la même brique de base pour tous les niveaux
EP3217290A1 (fr) Systeme sur puce et procede d&#39;echange de donnees entre noeuds de calculs d&#39;un tel systeme sur puce
FR2493562A1 (fr) Systeme d&#39;utilisation de disques en commun et d&#39;intercommunication entre disques