[go: up one dir, main page]

HK1168441B - Block-based non-transparent cache - Google Patents

Block-based non-transparent cache Download PDF

Info

Publication number
HK1168441B
HK1168441B HK12109192.3A HK12109192A HK1168441B HK 1168441 B HK1168441 B HK 1168441B HK 12109192 A HK12109192 A HK 12109192A HK 1168441 B HK1168441 B HK 1168441B
Authority
HK
Hong Kong
Prior art keywords
memory
block
transparent
control unit
data
Prior art date
Application number
HK12109192.3A
Other languages
German (de)
English (en)
Chinese (zh)
Other versions
HK1168441A (en
Inventor
James Wang
Zongjian Chen
James B. Keller
Timothy J. Millet
Original Assignee
Apple Inc.
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 Apple Inc. filed Critical Apple Inc.
Publication of HK1168441A publication Critical patent/HK1168441A/en
Publication of HK1168441B publication Critical patent/HK1168441B/en

Links

Claims (15)

  1. Un procédé comprenant :
    la réception par une unité de contrôle (18A; 18B) d'une requête pour un bloc d'une mémoire non transparente (16A; 16B) à laquelle est couplée l'unité de contrôle (18A;
    18B), l'unité de contrôle (18A; 18B) gérant la mémoire non transparente (16A; 16B) comme une pluralité de blocs de mémoire non transparents, la mémoire non transparente (16A; 16B) étant directement adressée par un logiciel utilisant des adresses mémoire situées à l'intérieur d'une plage définie d'adresses mémoire (82) associées à la mémoire non transparente (16A; 16B) ;
    l'allocation (102) par l'unité de contrôle (18A; 18B) d'un premier bloc de la pluralité de blocs non transparents en réponse à la requête ;
    le renvoi (114) par l'unité de contrôle (18A; 18B) d'une première adresse du premier bloc à l'intérieur de la plage définie d'adresses mémoire, au requérant en réponse à la requête ; et
    en réponse à un type indiqué dans la requête (106), le déplacement automatique par l'unité de contrôle (18A; 18B) de données (108) vers le premier bloc à partir d'une seconde adresse mémoire hors de la plage définie d'adresses mémoire (82), la seconde adresse mémoire étant indiquée dans la requête.
  2. Le procédé tel qu'énoncé dans la revendication 1, dans lequel le type est une écriture statique.
  3. Le procédé tel qu'énoncé dans la revendication 1 ou 2, comprenant en outre :
    la réception par l'unité de contrôle (18A; 18B) d'une seconde requête pour un bloc de mémoire non transparent (16A; 16B), la seconde requête incluant un type de lecture statique ;
    l'allocation (102) par l'unité de contrôle (18A; 18B) d'un second bloc de la pluralité de blocs non transparents en réponse à la seconde requête ;
    le renvoi (114) par l'unité de contrôle (18A; 18B) d'une troisième adresse du second bloc à l'intérieur de la plage définie d'adresses mémoire (82) au requérant en réponse à la seconde requête ; et
    le déplacement non automatique (112) par l'unité de contrôle (18A; 18B) de données vers le second bloc depuis une quatrième adresse mémoire indiquée dans la seconde réponse en réponse au fait que le type est une lecture statique.
  4. Le procédé tel qu'énoncé dans la revendication 3, comprenant en outre :
    la détermination par l'unité de contrôle (18A; 18B) que le requérant en a fini avec le second bloc ; et
    l'écriture automatique par l'unité de contrôle (18A; 18B) des données dans le second bloc vers la quatrième adresse mémoire en réponse au fait que le type est une lecture statique (106).
  5. Le procédé tel qu'énoncé dans l'une des revendications 1 à 4, comprenant en outre :
    la détermination par l'unité de contrôle (18A; 18B) que le requérant en a fini avec le premier bloc ; et
    l'écriture automatique (94) par l'unité de contrôle (18A; 18B) des données dans le premier bloc vers la seconde adresse mémoire associée au premier bloc en réponse au fait que le bloc a été écrit durant le traitement par le requérant.
  6. Un appareil comprenant :
    une mémoire non transparente (16A; 16B) comprenant une pluralité d'emplacements mémoire directement adressables par un logiciel utilisant des adresses à l'intérieur d'une plage définie d'adresses mémoire (82) ; et
    une unité de contrôle (18A; 18B) configurée pour gérer la mémoire non transparente (16A; 16B) comme une pluralité de blocs de mémoire non transparents, l'unité de contrôle (18A; 18B) étant couplée pour recevoir une requête pour un bloc venant d'un requérant, et l'unité de contrôle (18A; 18B) étant configurée pour allouer un premier bloc de la pluralité de blocs de mémoire non transparents en réponse à la requête, et l'unité de contrôle (18A; 18B) étant configurée en réponse à un type indiqué dans la requête pour remplir automatiquement de façon sélective des données dans le premier bloc depuis une seconde adresse mémoire hors de la plage définie d'adresses mémoire (82), la seconde adresse mémoire étant indiquée dans la requête, ou pour évacuer les données hors du premier bloc en réponse à un type donné avec la requête, et l'unité de contrôle (18A; 18B) étant configurée pour renvoyer une adresse à l'intérieur de la plage définie d'adresses mémoire au requérant en réponse à la requête.
  7. L'appareil tel qu'énoncé dans la revendication 6, dans lequel, en réponse à un premier type, l'unité de contrôle (18A; 18B) est configurée pour remplir automatiquement des données dans le premier bloc et dans lequel, en réponse à un second type, l'unité de contrôle (18A; 18B) est configurée pour ne pas déplacer de données vers le premier bloc.
  8. L'appareil tel qu'énoncé dans la revendication 7, dans lequel le premier type est un type d'écriture statique.
  9. L'appareil tel qu'énoncé dans la revendication 7, dans lequel le second type est un type de lecture statique.
  10. L'appareil tel qu'énoncé dans l'une des revendications 7 à 9, dans lequel la requête inclut une première adresse mémoire qui n'est pas à l'intérieur de la plage prédéfinie d'adresses mémoire (82), et dans lequel l'unité de contrôle (18A; 18B) est configurée pour remplir les données stockées à la première adresse mémoire dans le premier bloc.
  11. L'appareil tel qu'énoncé dans l'une des revendications 7 à 10, dans lequel, en réponse au second type et au fait que le requérant en a fini avec le premier bloc, l'unité de contrôle (18A; 18B) est configurée pour automatiquement déplacer les données pour les évacuer du premier bloc vers un sous-système de mémoire principale (20).
  12. L'appareil tel qu'énoncé dans la revendication 11, dans lequel la requête inclut une première adresse mémoire qui n'est pas à l'intérieur de la plage définie d'adresses mémoire (82), et dans lequel l'unité de contrôle (18A; 18B) est configurée pour évacuer les données du premier bloc vers les emplacements indiqués par la première adresse mémoire.
  13. L'appareil tel qu'énoncé dans la revendication 11 ou 12, dans lequel l'unité de contrôle (18A; 18B) est configurée pour évacuer les données du premier bloc en réponse au fait que le requérant a modifié les données.
  14. L'appareil tel qu'énoncé dans l'une des revendications 6 à 13, dans lequel la mémoire non transparente (16A; 16B) est une partie d'un réseau de mémoire (34) qui comprend également une seconde partie qui est une mémoire transparente utilisée comme cache et l'appareil comprend en outre une mémoire de marqueurs de cache (32) qui correspond à la seconde partie, la mémoire de marqueurs de cache (32) étant configurée pour stocker des marqueurs pour une pluralité de blocs de cache pouvant être stockés dans la seconde partie.
  15. Un système comprenant :
    un ou plusieurs processeurs (10A-10N ; 22A-22N) configurés pour requérir des blocs de mémoire non transparente dans lesquels il y a des données à traiter ;
    un système de mémoire principale (20) ; et
    une unité de mémoire non transparente (14A, 14B) comprenant l'appareil tel qu'énoncé dans l'une des revendications 6 à 14.
HK12109192.3A 2009-07-10 2010-07-09 Block-based non-transparent cache HK1168441B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/500,810 2009-07-10

Publications (2)

Publication Number Publication Date
HK1168441A HK1168441A (en) 2012-12-28
HK1168441B true HK1168441B (en) 2019-08-02

Family

ID=

Similar Documents

Publication Publication Date Title
US10776022B2 (en) Combined transparent/non-transparent cache
EP2452265B1 (fr) Antémémoire non transparente par blocs
JP5580894B2 (ja) Tlbプリフェッチング
US8392658B2 (en) Cache implementing multiple replacement policies
US9223710B2 (en) Read-write partitioning of cache memory
US9208084B2 (en) Extended main memory hierarchy having flash memory for page fault handling
US9218286B2 (en) System cache with partial write valid states
US20140075125A1 (en) System cache with cache hint control
JP2008542948A (ja) コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
US20120131305A1 (en) Page aware prefetch mechanism
HK1168441B (en) Block-based non-transparent cache
HK1168441A (en) Block-based non-transparent cache