WO1995029445A1 - Cache-speichervorrichtung zum speichern von daten - Google Patents
Cache-speichervorrichtung zum speichern von daten Download PDFInfo
- Publication number
- WO1995029445A1 WO1995029445A1 PCT/EP1995/001471 EP9501471W WO9529445A1 WO 1995029445 A1 WO1995029445 A1 WO 1995029445A1 EP 9501471 W EP9501471 W EP 9501471W WO 9529445 A1 WO9529445 A1 WO 9529445A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cache
- cache memory
- memory device
- address
- group information
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
Definitions
- Modern processors require cache memories in order to compensate for the gap between fast processors and slow main memories.
- a real indexed cache does not have these disadvantages, but requires a complete address conversion step (virtual ⁇ real) of the TLB before the cache access can be initiated.
- the cache type favored today is virtually indexed and real (physically) marked. It is just as fast as a virtually indexed and virtually marked cache, but avoids most of its disadvantages, in particular problems with multiprocessor systems, synonyms, sharing and coherence.
- a more interesting technique is page coloring.
- This describes the method of always creating pages in the real memory in such a way that the low-order address bits of the virtual and real page address are identical (see FIG. 9).
- the virtual page number (vpn) and cache index (i) overlap.
- the overlapping part is in the. Fig. 9 shown in black.
- the corresponding part of the virtual address is called virtual color c, that of the real address real color c '. If the allocation is true to color, ie if the virtual and real colors match, the size limitation nx 2 P mentioned above is removed.
- the corresponding color bits can be dispensed with in the marking (real address) and only the high-value bits (r ') of the real ones are required Page number to be compared with the mark.
- a number of cache entries corresponding to the associativity of the cache memory is addressed, specifically by indexing the cache memory using the cache index and the group information, both of which are part of the virtual address or from the virtual address or derived from parts thereof (Fig. 2).
- a translation lookaside buffer (TLB) is normally used, which is indexed by a part of the virtual address - possibly modified according to a hash function - and then the part used for indexing compare the virtual address with the marking of the addressed TLB entry.
- TLB translation lookaside buffer
- the real address and the first and second group information are read from the TLB entry.
- there is a TLB miss and the conversion of the virtual address into a real address is carried out, for example, using page tables from the MMU (FIG. 1).
- the cache memory is indexed again, specifically by means of the cache index of the virtual address and the second group information. It is expedient to carry out this new indexing of the cache memory only when the virtual group information does not match the second group information assigned to the real address. Steps b) and c) are then repeated for the cache entry (s) addressed in this way (FIG. 4).
- a modification of the above access (see claim 4) consists in that if the marking of the cache entry (s) addressed by means of the cache index part and the group information does not match the real address, then only access by indexing the cache memory by means of to try the second group information and the cache index part of the virtual address if the second group information is different from the group information. In any other case, the cache access is terminated and a cache miss is signaled. A group information comparison is provided for the necessary comparison of the second group information with the group information.
- first or second group information is used to investigate whether the second group information differs from the group information or is identical to the group information is. If the second group information is different from the group information, then the first renewed indexing (second indexing) is carried out using the second group information. If this second indexing has not in turn led to a cache hit, then one becomes Third-party indexing attempted using the first group information (normal case).
- the indexing with the second group information which in fact has already been attempted with the first indexing and did not lead to success (group information and second group information are identical), are skipped , and the re-indexing of the cache memory (here also called third-party indexing analogously) is carried out using the first group information (special case).
- the third-party indexing with the first group information is preferably only carried out if the first group information is different both from the group information and from the second group information.
- the second indexing is always attempted with the first group information, in order to then carry out the third indexing using the second group information if the cache hit has not occurred. It is also possible, in the case of the first renewed indexing, to select, in particular, a random generator controlled between the two options, namely between the second indexing with the second group information and the third indexing with the first group information or the second indexing with the first group information and the third indexing with the second group information. Instead of a random generator or in addition to this, previous hits (cache hit) or non-hits (cache miss) can be taken into account when deciding between the two above possibilities.
- index the cache memory by a combination of the cache index part of the (real or virtual) address and an additional index, the additional index the address assigned, but is not part of it.
- the indexing of the cache memory can be influenced in a targeted manner by appropriate selection of the additional index, which provides a possibility for improved utilization of the occupancy.
- the additional index is e.g. B. supplied by an MMU and / or a TLB, which also provide the real address or the part of the address required to access the cache memory.
- the appended claims 12 to 15 relate to variants of a cache memory arrangement with first- and second-level cache memory devices of the types according to the invention specified above.
- FIG. 1 schematically shows the structure of a TLB as it is used for the cache memory
- FIG. 10 shows the step of checking for color fidelity in a cache memory according to FIG. 9,
- FIG. 11 shows the color correction step in a cache memory according to FIG. 9,
- FIGS. 9 and 10 shows the access step in a cache memory according to FIGS. 9 and
- FIG. 13 shows a real indexed cache with the address associated additional index.
- TLB is a direct mapped, n-way associative or fully associative TLB.
- n entries are selected at the same time, and their virtual addresses are compared in parallel with vpn.
- the hash and selection function is completely eliminated and all TLB entries are checked against vpn at the same time.
- the second color can be freely selected by the operating system, in particular also in such a way that the above invariance condition is always maintained.
- the statement applies that if two TLB entries refer to the same real page address, their secondary colors match (invariance condition).
- v virtual address vpn virtual page number c virtual color group information of the virtual address rpn real page number c 'real color, also called first color (first group information) c "second color (second group information) r' higher part of rpn (without C) c index color (the one Part that is used in addition to the index part of the virtual address to index the cache) ⁇ low-order part of the cache entry number
- a current cache line is selected by an index i, the more significant bits of which are referred to as index color c become.
- index color c the more significant bits of which are referred to as index color c become.
- Virtual, first, second and index colors each have the same number of bits.
- Step 1 At the beginning of a cache access, the index port (c, ⁇ ) is loaded from the virtual address (see Fig. 2). At the same time, the TLB starts address conversion with vpn as input.
- Step 3 No cache hit occurred in step 2 (in all cases (r ', c') ⁇ (r ⁇ ) and occurred with this cache
- bus masters that do not access via virtual addresses, for example DMA or screen processors, must also operate the two-color bus.
- the TLB cannot supply any secondary color information. Such accesses can then be processed with real color as a secondary color.
- Another possibility is to use a special secondary color for this, or to read the secondary color information from the page table entries together with the addresses for the table of the next level when the tree is parsed. Under certain circumstances, this can be used to control the allocation of the cache with page table information.
- An alternative, albeit very complex and poorly scalable method uses an RTB or a second MMU (with TLB), which derive the respective second color from the real address.
- the additional index c '''used next to the address r for indexing can be designated with a third color in accordance with the terminology used above.
- the third color can (but does not have to) be a wider bit field than the previously mentioned second color. It can also be identical to the second color or contain it as part (the whole of course also works exclusively with a third color, ie without a second color).
- the MMU or the TLB supplies the real address r and the third color c '''(see FIG. 13).
- the third color c ''' is linked (combined) in the map function with the cache index part of the real address r used for cache indexing. Simple links are e.g. B .:
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
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP95916674A EP0756729A1 (de) | 1994-04-22 | 1995-04-19 | Cache-speichervorrichtung zum speichern von daten |
| JP7527339A JPH09512122A (ja) | 1994-04-22 | 1995-04-19 | データ記憶用キャッシュ記憶装置 |
| US08/732,352 US6009503A (en) | 1994-04-22 | 1995-04-19 | Cache memory indexing using virtual, primary and secondary color indexes |
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DEP4414116.5 | 1994-04-22 | ||
| DE4414116 | 1994-04-22 | ||
| DE4416562 | 1994-05-11 | ||
| DEP4416562.5 | 1994-05-11 | ||
| DE19504483A DE19504483A1 (de) | 1994-04-22 | 1995-02-10 | Cache-Speichervorrichtung zum Speichern von Daten |
| DE19504483.5 | 1995-02-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO1995029445A1 true WO1995029445A1 (de) | 1995-11-02 |
Family
ID=27206300
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP1995/001471 Ceased WO1995029445A1 (de) | 1994-04-22 | 1995-04-19 | Cache-speichervorrichtung zum speichern von daten |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US6009503A (de) |
| EP (1) | EP0756729A1 (de) |
| JP (1) | JPH09512122A (de) |
| WO (1) | WO1995029445A1 (de) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5870550A (en) | 1996-02-26 | 1999-02-09 | Network Engineering Software | Web server employing multi-homed, moldular framework |
| US8117298B1 (en) | 1996-02-26 | 2012-02-14 | Graphon Corporation | Multi-homed web server |
| EP1158749A3 (de) * | 2000-04-07 | 2001-12-05 | E-Color, Inc. | Verfahren und vorrichtung zur verteilung eines farbkorrigierten bildes dürch ein netzwerk mit hilfe verteiltercachespeicher |
| US6654859B2 (en) * | 2001-07-26 | 2003-11-25 | International Business Machines Corporation | NUMA page selection using coloring |
| US7451271B2 (en) * | 2004-04-05 | 2008-11-11 | Marvell International Ltd. | Physically-tagged cache with virtually-tagged fill buffers |
| US8417915B2 (en) * | 2005-08-05 | 2013-04-09 | Arm Limited | Alias management within a virtually indexed and physically tagged cache memory |
| US9390031B2 (en) * | 2005-12-30 | 2016-07-12 | Intel Corporation | Page coloring to associate memory pages with programs |
| JP4783229B2 (ja) * | 2006-07-19 | 2011-09-28 | パナソニック株式会社 | キャッシュメモリシステム |
| US9158710B2 (en) * | 2006-08-31 | 2015-10-13 | Intel Corporation | Page coloring with color inheritance for memory pages |
| US9336147B2 (en) * | 2012-06-12 | 2016-05-10 | Microsoft Technology Licensing, Llc | Cache and memory allocation for virtual machines |
| US10162694B2 (en) | 2015-12-21 | 2018-12-25 | Intel Corporation | Hardware apparatuses and methods for memory corruption detection |
| US10853256B2 (en) * | 2019-01-04 | 2020-12-01 | Arm Limited | Cache operation in an apparatus supporting both physical and virtual address mapping |
| US11782816B2 (en) * | 2019-03-19 | 2023-10-10 | Jens C. Jenkins | Input/output location transformations when emulating non-traced code with a recorded execution of traced code |
| US11422935B2 (en) * | 2020-06-26 | 2022-08-23 | Advanced Micro Devices, Inc. | Direct mapping mode for associative cache |
| US12393523B2 (en) | 2022-03-31 | 2025-08-19 | Intel Corporation | Circuitry and methods for implementing micro-context based trust domains |
| US12417099B2 (en) | 2022-04-02 | 2025-09-16 | Intel Corporation | Circuitry and methods for informing indirect prefetches using capabilities |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1988009014A2 (en) * | 1987-05-14 | 1988-11-17 | Ncr Corporation | Memory addressing system |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5226133A (en) * | 1989-12-01 | 1993-07-06 | Silicon Graphics, Inc. | Two-level translation look-aside buffer using partial addresses for enhanced speed |
| US6116768A (en) * | 1993-11-30 | 2000-09-12 | Texas Instruments Incorporated | Three input arithmetic logic unit with barrel rotator |
| US5752069A (en) * | 1995-08-31 | 1998-05-12 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing away prediction structure |
-
1995
- 1995-04-19 JP JP7527339A patent/JPH09512122A/ja active Pending
- 1995-04-19 US US08/732,352 patent/US6009503A/en not_active Expired - Fee Related
- 1995-04-19 WO PCT/EP1995/001471 patent/WO1995029445A1/de not_active Ceased
- 1995-04-19 EP EP95916674A patent/EP0756729A1/de not_active Withdrawn
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1988009014A2 (en) * | 1987-05-14 | 1988-11-17 | Ncr Corporation | Memory addressing system |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0756729A1 (de) | 1997-02-05 |
| US6009503A (en) | 1999-12-28 |
| JPH09512122A (ja) | 1997-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO1995029445A1 (de) | Cache-speichervorrichtung zum speichern von daten | |
| DE68924206T2 (de) | Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. | |
| DE60320026T2 (de) | Verbessertes speichermanagement für echtzeit-anwendungen | |
| DE69819686T2 (de) | Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung | |
| DE69427625T2 (de) | Adressübersetzungsmechanismus für Rechnersystem mit virtuellen Speicher, der eine Vielzahl von Seitengrössen unterstützt | |
| DE69025302T2 (de) | Hochleistungsrasterpuffer- und -cachespeicheranordnung | |
| DE4022885C2 (de) | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem | |
| DE10002120B4 (de) | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung | |
| DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
| DE2423194A1 (de) | Vorrichtung zur adressengewinnung und -berechnung in einem segmentierten speicher | |
| DE112023003283T5 (de) | Speichercontroller mit befehlsumordnung | |
| DE69027919T2 (de) | Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher | |
| DE69726795T2 (de) | Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern | |
| EP0755541A1 (de) | Cache-speichervorrichtung zum speichern von daten | |
| DE112019000627T5 (de) | Speicherstrukturbasiertes Coherency Directory Cache | |
| DE69808628T2 (de) | Mikroprozessorcachespeicherübereinstimmung | |
| EP1352318B1 (de) | Mikroprozessorschaltung für tragbare datenträger | |
| DE3832758C2 (de) | Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers | |
| DE4114053A1 (de) | Computersystem mit cachespeicher | |
| DE3689276T2 (de) | Verfahren zur Aktualisierung der Informationen in einem Adressenübersetzungspufferspeicher. | |
| DE19516949A1 (de) | Speichervorrichtung zum Speichern von Daten | |
| DE102007055138B4 (de) | System zum Zugreifen auf einen Einzelport-Mehrwege-Cache | |
| DE19947055A1 (de) | Verfahren und Vorrichtung zur Steuerung eines Cache-Speichers | |
| DE19538961C2 (de) | Speichervorrichtung zum Speichern von Daten | |
| DE19504483A1 (de) | Cache-Speichervorrichtung zum Speichern von Daten |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 1995916674 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 08732352 Country of ref document: US |
|
| WWP | Wipo information: published in national office |
Ref document number: 1995916674 Country of ref document: EP |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 1995916674 Country of ref document: EP |