DE19512745A1 - Cache memory device for storing data - Google Patents

Cache memory device for storing data

Info

Publication number
DE19512745A1
DE19512745A1 DE19512745A DE19512745A DE19512745A1 DE 19512745 A1 DE19512745 A1 DE 19512745A1 DE 19512745 A DE19512745 A DE 19512745A DE 19512745 A DE19512745 A DE 19512745A DE 19512745 A1 DE19512745 A1 DE 19512745A1
Authority
DE
Germany
Prior art keywords
cache
address
group information
real
virtual
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.)
Withdrawn
Application number
DE19512745A
Other languages
German (de)
Inventor
Jochen Liedtke
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.)
GMD-FORSCHUNGSZENTRUM INFORMATIONSTECHNIK GMBH, 53
Original Assignee
MATHEMATIK und DATENVERARBEITU
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 MATHEMATIK und DATENVERARBEITU filed Critical MATHEMATIK und DATENVERARBEITU
Priority to DE19512745A priority Critical patent/DE19512745A1/en
Priority to US08/727,660 priority patent/US5913222A/en
Priority to PCT/EP1995/001378 priority patent/WO1995028678A1/en
Priority to EP95915872A priority patent/EP0755541A1/en
Priority to JP7526710A priority patent/JPH09512117A/en
Publication of DE19512745A1 publication Critical patent/DE19512745A1/en
Withdrawn 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

Abstract

In a virtually indexed cache memory with a real label, the colour assigned to a cache input during colour allocation of the virtual and real pages can be altered by assigning colour information to each cache input. This ensures that, after a first unsuccessful cache address operation, a second cache address operation takes place. If there is still no cache hit, a further cache address operation is attempted by colour correction, i.e., by indexing of the cache memory with the aid of, among other things, the real colour. If this cache address operation also fails, a cache miss is registered.

Description

Die Erfindung betrifft eine Cache-Speichervorrichtung mit einem Cache-Speicher, der virtuell indiziert wird und dessen Cache-Einträge mit physischen (realen) Adressen markiert sind.The invention relates to a cache memory device with a cache memory that is indexed virtually and its cache entries with physical (real) Addresses are marked.

Moderne Prozessoren benötigen Cache-Speicher, um die Lücke zwischen schnellen Prozessoren und langsamen Hauptspeichern auszugleichen.Modern processors need cache memory in order to Gap between fast processors and slow ones Main memory to balance.

Bekannt sind real und virtuell indiziertes Caches. Beim real indizierten Cache (Fig. 7) wird die vom Prozessor gelieferte virtuelle Adresse zuerst vom Translation Lookaside Buffer (TLB) in eine Realadresse umgesetzt. Danach wird der Cache mit dieser Realadresse ange­ sprochen.Real and virtually indexed caches are known. In the real indexed cache ( FIG. 7), the virtual address supplied by the processor is first converted into a real address by the translation lookaside buffer (TLB). Then the cache is addressed with this real address.

Beim virtuell indizierten Cache (Fig. 8) wird der Cache direkt mit der virtuellen Adresse angesprochen. Eine Umsetzung in die entsprechende Realadresse erfolgt nur bei einem Cache-Miss. Der Vorteil eines virtuell indi­ zierten Caches ist die höhere Geschwindigkeit, da der Umsetzschritt durch den TLB entfällt. Sein Nachteil tritt bei Synonymen bzw. Aliasing auf.In the case of the virtually indexed cache ( FIG. 8), the cache is addressed directly with the virtual address. A conversion to the corresponding real address only takes place in the event of a cache miss. The advantage of a virtually indexed cache is the higher speed, since the conversion step by the TLB is not necessary. Its disadvantage occurs with synonyms or aliasing.

Bei direct-mapped Caches wird (wie in den Fig. 7 und 8 gezeigt) mit Hilfe einer map-Funktion aus der realen oder virtuellen Adresse a ein Cache-Index berechnet und damit eine Zeile des Caches angewählt. Dann wird a mit der Adresse des augenblicklich mit dieser Cache-Zelle assoziierten Speicherbereichs (der Markierung des Cache-Eintrags) verglichen. Bei Gleichheit liegt ein Treffer vor (und die Cache-Zeile wird anstelle des Hauptspeichers benutzt), sonst ein Miss.In direct-mapped caches (as shown in FIGS . 7 and 8), a cache index is calculated from the real or virtual address a with the aid of a map function and a row of the cache is thus selected. Then a is compared to the address of the memory area currently associated with that cache cell (the cache entry marker). If there is a match, there is a hit (and the cache line is used instead of the main memory), otherwise a miss.

Meistens wird (a mod Cache-Größe)/Zeilengröße als map- Funktion benutzt. Dazu braucht im Cache nicht die voll­ ständige virtuelle Adresse gespeichert zu werden, son­ dern es reicht a/Cache-Größe.Mostly (a mod cache size) / line size is used as map- Function used. It doesn't need the full cache permanent virtual address to be stored, son because a / cache size is enough.

Direct-mapped Caches sind einfacher, führen aber zu höheren Miss-Raten als n-Wege Caches. Diese bestehen prinzipiell aus n entsprechend kleineren direct mapped Cache-Blöcken. Dabei wird sichergestellt, daß sich jedes Hauptspeicherelement in höchstens einem Block befindet. Da die map-Funktion jeweils n Cache-Zellen indiziert, können jeweils bis zu n Elemente mit map- äquivalenten Adressen im Cache enthalten sein. Diese n- fache Assoziativität verringert die Wahrscheinlichkeit von Clashes und vergrößert entsprechend die Treffer­ rate.Direct-mapped caches are simpler, but they do higher miss rates than n-way caches. These exist principally from n correspondingly smaller direct mapped Cache blocks. This ensures that each main storage element in at most one block located. Because the map function has n cache cells each indexed, up to n elements with map- equivalent addresses in the cache. This n- fold associativity reduces the probability by Clashes and increases the hits accordingly rate.

Der heutzutage favorisierte Cache-Typ ist virtuell in­ diziert und real (physisch) markiert. Er ist genauso schnell wie ein virtuell indizierter und virtuell mar­ kierter Cache, vermeidet aber die meisten seiner Nach­ teile, insbesondere Probleme mit Multiprozessorsyste­ men, Synonymen, Sharing und Kohärenz.The cache type favored today is virtually in marked and real (physically) marked. It is the same as fast as a virtually indexed and virtually mar cache, but avoids most of its after  parts, especially problems with multiprocessor systems men, synonyms, sharing and coherence.

Ein real indizierter Cache hat diese Nachteile zwar auch nicht, verlangt aber einen vollständigen Adreßum­ setzungsschritt (virtuell → real) des TLBs bevor der Cache-Zugriff eingeleitet werden kann. Ein virtuell indizierter und real markierter Cache erlaubt es dem­ gegenüber, ALB- und Cache-Zugriff parallel ablaufen zu lassen (siehe Fig. 9). Die Befehls-Pipeline des Prozes­ sors ist deshalb kürzer, so daß die Latenzzeit eines Befehls in der Regel um einen Takt verkürzt ist und die Prozessorleitung entsprechend ansteigt.A real indexed cache does not have these disadvantages either, but requires a complete address conversion step (virtual → real) of the TLB before the cache access can be initiated. In contrast, a virtually indexed and real marked cache allows ALB and cache access to run in parallel (see FIG. 9). The instruction pipeline of the processor is therefore shorter, so that the latency of an instruction is usually reduced by one clock and the processor line increases accordingly.

Der Mechanismus bleibt einfach, solange die für die Indizierung des Caches benötigten Adreßbits (i) alle im Bereich des Adreßoffsets (Adresse innerhalb einer Sei­ te) liegen. Da dieser Adreßteil durch die Umsetzung der virtuellen in die Realadresse nicht verändert wird, kann der Cache damit auch schon vor dem Umsetzschritt des TLBs adressiert (indiziert) werden. Erst am Ende von Cache-Zugriff und parallelem TLB-Umsetzschritt wird geprüft, ob die mit dem Cache-Eintrag assoziierte Real­ adresse (die Markierung) mit der vom TLB gelieferten Realadresse übereinstimmt. Hierbei brauchen nur die sich an den Indexteil (i) anschließenden höherwertigen Bits der Adresse verglichen zu werden, da der durch (i) indizierte Cache-Eintrag nur mit Adressen assoziiert werden kann, deren Indexbits den Wert (i) haben. Dem­ entsprechend brauchen im Cache auch nur die höher­ wertigen Bits als Markierung (reale Adresse) ge­ speichert zu sein.The mechanism remains simple as long as that for the Indexing the cache required address bits (i) all in Area of the address offset (address within a screen te). Since this address section through the implementation of the virtual into the real address is not changed, the cache can also do this before the conversion step of the TLB are addressed (indexed). Only at the end of cache access and parallel TLB conversion step checked whether the real associated with the cache entry address (the marking) with the one supplied by the TLB Real address matches. Only those need following the index part (i) higher Bits of the address to be compared because the by (i) indexed cache entry only associated with addresses whose index bits have the value (i). The accordingly only the higher ones need in the cache significant bits as a marker (real address) saves being.

Ein n-Wege assoziativer Cache dieses Typs kann ledig­ lich bis zu n × 2p groß sein, wobei 2p die Seitengröße ist. Eine Vergrößerung des Caches kann durch größere Seiten oder erhöhte Assoziativität erreicht werden.An n-way associative cache of this type can be as small as n × 2 p , with 2 p being the page size. The cache can be enlarged by larger pages or increased associativity.

Eine interessante Technik zur Cache-Adressierung ist das Page Coloring. Damit wird das Verfahren bezeichnet, Seiten stets derart im Realspeicher anzulegen, daß die niederwertigen Adreßbits von virtueller und realer Seitenadresse identisch sind (siehe Fig. 10). Virtuelle Seitennummer (vpn) und Cache-Index (i) überschneiden sich hierbei. Der überlappende Teil ist in der Fig. 10 schwarz dargestellt. Der entsprechende Teil der vir­ tuellen Adresse wird virtuelle Farbe c, der der realen Adresse reale Farbe c′ genannt. Bei farbtreuer Alloka­ tion, d. h. wenn virtuelle und reale Farbe übereinstim­ men, wird die oben erwähnte Größenbegrenzung n × 2p aufgehoben.An interesting technique for cache addressing is page coloring. This describes the method of always creating pages in real memory in such a way that the low-order address bits of the virtual and real page address are identical (see FIG. 10). The virtual page number (vpn) and cache index (i) overlap. The overlapping part is shown in black in FIG. 10. The corresponding part of the virtual address is called virtual color c, the real address is called real color c '. In the case of color-true allocation, ie if virtual and real color match, the size limit n × 2 p mentioned above is removed.

Wenn, wie in Fig. 11 gezeigt, virtuelle und reale Farbe zusätzlich verglichen werden, kann bei der Markierung (reale Adresse) auf die Speicherung der entsprechenden Farb-Bits verzichtet werden und es brauchen nur die höherwertigen Bits (r′) der realen Seitennummer mit der Markierung verglichen zu werden.If, as shown in Fig. 11, virtual and real color are additionally compared, the marking (real address) does not require the storage of the corresponding color bits and only the higher-order bits (r ') of the real page number are required the mark to be compared.

Der Erfindung liegt die Aufgabe zugrunde, eine Cache­ speichervorrichtung mit einem virtuell indizierten und real markierten Cache-Speicher zu schaffen, der auch bei nicht farbtreu allokierten Seiten einen schnellen Cache-Zugriff erlaubt. Synonyme sollen ohne Alignment- Einschränkung zulässig sein, wobei allerdings nur die Ansprache über eine Adresse (Hauptadresse) schnell sein muß. Zugriff über andere Adressen (Synonyme) dürfen verlangsamt sein; allerdings muß wahlfrei jede der synonymen Adressen Hauptadresse sein können, insbeson­ dere soll sich die virtuelle Farbe der Hauptadresse von der Realfarbe unterscheiden können.The invention has for its object a cache storage device with a virtually indexed and to create real marked cache memory that too a fast one for pages that are not color-correct allocated Cache access allowed. Synonyms should be without alignment Restriction may be permitted, although only the Addressing via an address (main address) be quick got to. Access via other addresses (synonyms) is allowed to be slowed down; however, each of the synonymous addresses can be the main address, in particular  the virtual color of the main address of the real color can distinguish.

Zur Lösung dieser Aufgabe wird eine Cache-Speichervor­ richtung mit den Merkmalen des Anspruchs 1 vorgeschla­ gen, wobei die Merkmale vorteilhafter Weiterbildungen dieser Cache-Speichervorrichtung jeweils in den Unter­ ansprüchen angegeben sind.A cache memory is provided to solve this task direction proposed with the features of claim 1 gene, the features of advantageous developments this cache memory device each in the sub claims are specified.

Wie weiter oben bereits dargelegt ist, wird beim soge­ nannten Page Coloring der virtuelle Adreßraum in ver­ schiedene Gruppen von Seiten ("Farben" genannt) unter­ teilt, wobei die Allokation von virtuellen Seiten zu realen Seiten grundsätzlich farbtreu ist. D.h. eine rote virtuelle Seite wird auf eine rote reale Seite abgebildet. So, wie die virtuelle Farbe in der virtuel­ len Adresse enthalten ist, ist die reale Farbe in der Realadresse enthalten. Die erfindungsgemäße Cache­ speichervorrichtung löst nun das Problem, eine vir­ tuelle Adresse, die zu einer virtuellen Seite mit einer ersten Farbe gehört, in einen Cache-Eintrag abzubilden, der zu einer realen Seite mit einer anderen als der ersten Farbe gehört.As already explained above, the so-called called Page Coloring the virtual address space in ver different groups of pages (called "colors") under allocates, allocating virtual pages to real pages is basically true to color. I.e. a red virtual page changes to a red real page pictured. Just like the virtual color in the virtual len address is included, the real color is in the Real address included. The cache according to the invention storage device now solves the problem of a vir current address that leads to a virtual page with a the first color belongs in a cache entry, that to a real page with a different one than that heard first color.

  • 1) Bei einer Cache-Adressierung im Falle des erfin­ dungsgemäßen Cache-Speichers wird dieser zunächst mittels des Cache-Indexteils der virtuellen Adres­ se und deren Gruppeninformation (virtuelle Farbe), die Teil des die virtuelle Seitennummer repräsen­ tierenden Seitennummer-Adreßteils ist, indiziert und damit pro Weg (der Cache-Speicher kann ent­ weder ein- oder mehrweg-assoziativ sein) ein Cache-Eintrag adressiert. Pro adressiertem Cache- Eintrag wird dann die Markierung auf Übereinstim­ mung mit dem Rest-Realadreßteil der realen Seiten­ nummer der Realadresse, die aus der virtuellen Adresse umgesetzt worden ist (was beispielsweise durch einen TLB erfolgt), untersucht. Pro Weg des Cache-Speichers existiert also ein Markierungsver­ gleicher. Pro Weg des Cache-Speichers existiert aber auch ein Gruppeninformationsvergleicher, der die Gruppeninformation der realen Adresse (reale Farbe) mit der Gruppeninformation des pro Weg adressierten Cache-Eintrags vergleicht. Desweite­ ren weist jeder Cache-Eintrag eine Zustandsflagge auf. Ist diese Zustandsflagge gesetzt, so handelt es sich bei dem Cache-Eintrag um einen Haupt-Ein­ trag, während bei nicht gesetzter Zustandsflagge über die Gruppeninformation dieses Cache-Eintrags auf einen Haupt-Eintrag verwiesen wird. Stimmt für einen adressierten Cache-Eintrag die Markierung mit der Rest-Realadresse und die Gruppeninforma­ tion mit der Gruppeninformation der realen Seiten­ nummer der Realadresse überein und ist zusätzlich die Zustandsflagge gesetzt, so liegt ein Cache-Hit vor, womit die Cache-Adressierung beendet ist und Daten in das durch die Markierung spezifizierte Datenfeld des betreffenden Cache-Eintrags schreib­ bar bzw. aus diesem auslesbar sind. In diesem Fall ist man also auf einen Haupt-Eintrag gestoßen.1) With cache addressing in the case of the invent The cache memory according to the invention is initially by means of the cache index part of the virtual addresses se and their group information (virtual color), which represent part of the virtual page number tating page number address part is indexed and thus per way (the cache memory can be neither be one-way or multi-way associative) Addressed cache entry. Per addressed cache The entry will then mark the match with the remaining real address part of the real pages  number of the real address, which results from the virtual Address has been implemented (for example done by a TLB). Per way of So there is a marker memory in the cache same. Exists per path of the cache memory but also a group information comparator that the group information of the real address (real Color) with the group information of each way addressed cache entry compares. Furthermore Each cache entry has a status flag on. If this status flag is set, act the cache entry is a main on lazy while the flag is not set about the group information of this cache entry to a main entry. Vote for an addressed cache entry with the rest of the real address and the group information tion with the group information of the real pages number of the real address and is additional if the status flag is set, there is a cache hit before, with which the cache addressing is ended and Data in the specified by the marking Write data field of the relevant cache entry cash or can be read from it. In this case So you came across a main entry.
  • 2) Stimmt hingegen für einen der adressierten Cache- Einträge zwar die Markierung mit dem Rest-Real­ adreßteil überein, ist jedoch die Zustandsflagge nicht gesetzt und gilt ferner, daß die virtuelle Gruppeninformation (Gruppeninformation der vir­ tuellen Adresse) gleich der realen Gruppeninforma­ tion (Gruppeninformation der Realadresse) ist, so liegt ein farbtreuer Zugriff auf einen Verweis- Eintrag des Cache-Speichers vor, wobei die Grup­ peninformation dieses Verweis-Eintrags auf den Haupt-Eintrag verweist. Um an diesen Haupt-Eintrag des Cache-Speichers zu gelangen, wird der Cache- Speicher erneut indiziert, und zwar mittels des Cache-Indexteils der virtuellen Adresse und der Gruppeninformation des Verweis-Eintrags. Zur Ab­ speicherung der Gruppeninformationen können pro Cache-Eintrag bestimmte Bitstellen vorgesehen wer­ den; alternativ ist es aber auch möglich, die Gruppeninformation im Datenfeld selbst abzulegen, da dieses Datenfeld in dem Fall, in dem der be­ treffende Cache-Eintrag ein Verweis-Eintrag ist, nicht zum Schreiben oder zum lesen benötigt wird. Nach dieser erneuten Cache-Indizierung werden wie­ derum die adressierten Cache-Einträge auf Überein­ stimmung ihrer Markierungen mit dem Rest-Real­ adreßteil und auf Übereinstimmung der realen Grup­ peninformation mit der Gruppeninformation der adressierten Cache-Einträge verglichen. In jedem Fall existiert unter den jetzt adressierten Cache- Einträgen einer, der eine gesetzte Zustandsflagge aufweist und dessen Markierung mit dem Rest-Real­ adreßteil und dessen Gruppeninformation mit der realen Gruppeninformation übereinstimmt. Damit liegt ein Cache-Hit vor.2) On the other hand, it is correct for one of the addressed cache Entries are marked with the rest real address part matches, however, is the state flag not set and also applies that the virtual Group information (group information of the vir current address) is the same as the real group information tion (group information of the real address) is so there is color-accurate access to a reference Entry of the cache memory before, the Grup  peninformation of this reference entry to the Main entry points. To add to this main entry of the cache memory, the cache Memory indexed again using the Cache index part of the virtual address and Group information of the reference entry. To Ab group information can be saved per Certain bit positions are provided in the cache entry the; alternatively, it is also possible to use the Store group information in the data field itself, since this data field in the case where the be matching cache entry is a reference entry is not needed for writing or reading. After this cache re-indexing will be like the addressed cache entries match matching your markings with the rest real address part and on correspondence of the real group peninformation with the group information of addressed cache entries compared. In each Case exists among the now addressed cache Entries one that set a state flag and its marking with the rest real address part and its group information with the real group information matches. In order to there is a cache hit.
  • 3) Ist bisher kein Cache-Hit aufgetreten und unter­ scheidet sich die virtuelle Gruppeninformation von der realen Gruppeninformation, so wird eine "Farb­ korrektur" versucht, in dem der Cache-Speicher mittels des Cache-Indexteils der virtuellen Adres­ se und der Gruppeninformation der Realadresse (Realfarbe) indiziert und die derart adressierten Cache-Einträge auf Übereinstimmung ihrer Markie­ rungen mit dem Rest-Realadreßteil sowie auf Über­ einstimmung ihrer Gruppeninformationen mit der Gruppeninformation der realen Adresse untersucht. Danach wird entsprechend dem obigen Mechanismus verfahren (s. oben ab 1) und ggf. mit 2)). Wenn auch dieser Cache-Zugriff nicht zu einem Cache-Hit führt, wird die Adressierung insgesamt abgebrochen und ein Cache-Miss signalisiert.3) Has no cache hit occurred so far and under the virtual group information differs the real group information, so a "color correction "attempted in the cache by means of the cache index part of the virtual addresses se and the group information of the real address (Real color) and those addressed in this way Cache entries matching their markie with the rest of the real address part and over  agreeing your group information with the Group information of the real address examined. After that, according to the above mechanism proceed (see above from 1) and if necessary with 2)). If even this cache access does not become a cache hit addressing is canceled altogether and signals a cache miss.

Mittels der erfindungsgemäßen Cache-Speichervorrichtung läßt sich der Cache-Speicher dynamisch anpassen, was die Colorierung der virtuellen und realen Seiten bzw. die Farballokation betrifft. Infolge dieser dynamischen Anpassung sind verschiedene Cache-Einträge einer ge­ meinsamen Realseite unter verschiedenen "Farben" (Grup­ peninformationen) schnell ansprechbar, und zwar stets über eine einzige Farbe, die aber frei wählbar und ins­ besondere anpaßbar ist.By means of the cache memory device according to the invention the cache memory can be dynamically adjusted, what the coloring of the virtual and real pages or concerns the color allocation. As a result of this dynamic Adaptation are different cache entries of a ge common real page under different "colors" (group information) can be addressed quickly and always about a single color, but freely selectable and ins is particularly customizable.

Nachfolgend wird anhand der Zeichnung ein Ausführungs­ beispiel der Erfindung näher erläutert. Im einzelnen zeigen:An execution is based on the drawing example of the invention explained in more detail. In detail demonstrate:

Fig. 1 den Vorbereitungsschritt für einen Falschfar­ ben-Cache nach der Erfindung, Fig. 1 shows the preparation step for a Falschfar ben cache according to the invention,

Fig. 2 den Zugriffsschritt auf den Falschfarben-Cache, Fig. 2 shows the accessing step to the false-color cache,

Fig. 3 den Umleitungs-/Verweisschritt eines Falschfar­ ben-Cache, Fig. 3 shows the detour / reference step of Falschfar ben cache,

Fig. 4 den Farbkorrekturschritt, Fig. 4 shows the color correction step,

Fig. 5 den allgemeinen Farbkorrektur-Schritt bei einem Cache-Speicher, Fig. 5 shows the general color correction step in a cache memory,

Fig. 6 den Zugriffsschritt bzw. farbkorrigierten Zu­ griffsschritt bei einem Cache-Speicher, Fig. 6 shows the access step and color corrected to handle step in a cache memory,

Fig. 7 den Aufbau eines real indizierten Cache- Speichers, Fig. 7 shows the structure of a real-indexed cache memory,

Fig. 8 den Aufbau eines virtuell indizierten und vir­ tuell markierten Cache-Speichers, Fig. 8 shows the construction of a virtually indexed and vir TULLE labeled cache memory,

Fig. 9 den Aufbau eines virtuell indizierten und real markierten Cache-Speichers, Fig. 9 shows the construction of a virtually indexed and physically tagged cache memory,

Fig. 10 den Aufbau eines auf farbtreuer Allokation basierenden Cache-Speichers und Fig. 10 shows the structure of a system based on color fidelity allocation cache memory and

Fig. 11 den Schritt der Prüfung auf Farbtreue bei einem Cache-Speicher nach Fig. 10. Fig. 11 shows the step of testing for color fidelity in a cache memory of Fig. 10.

Für die nachfolgende Beschreibung gelten folgende Be­ zeichnungen (s. auch die Figuren):The following terms apply to the following description drawings (see also the figures):

v virtuelle Adresse
vpn virtuelle Seitennummer
c virtuelle Farbe
rpn reale Seitennummer
 reale Farbe
 höherwertiger Teil von rpn (ohne )
 Indexfarbe
 niederwertiger Teil der Cache-Eintrags-Nummer
v virtual address
vpn virtual page number
c virtual color
rpn real page number
real color
higher part of rpn (without)
Index color
least significant part of the cache entry number

Jeder Cache-Eintrag (Zeile) enthält als Markierung je ein Feld ri und ci, ein 1-bit Feld maini, ein Datenfeld di sowie weitere nicht aufgeführte Statusfelder. Each cache entry (line) contains a field r i and c i , a 1-bit field main i , a data field d i and other status fields not listed.

Eine aktuelle Cache-Zeile wird jeweils durch einen In­ dex i ausgewählt, dessen höherwertige Bits als Index­ farbe bezeichnet werden. Virtuelle, reale und Index­ farbe haben jeweils gleichviele Bits.A current cache line is indicated by an In dex i selected, its more significant bits as an index color. Virtual, real and index color each have the same number of bits.

Im Cache werden Haupteinträge und Verweiseinträge unterschieden. Bei Haupteinträgen (gekennzeichnet durch gesetztes maini) enthält di die aktuellen Daten, ci die Realfarbe und ri den höherwertigen Teil der Realadresse der dem Cache-Eintrag zugeordneten Daten. Haupteinträge werden über die oben erwähnte virtuelle Hauptadresse schnell adressiert. Verweiseinträge (gekennzeichnet durch i) halten demgegenüber keine Daten, sondern in ci einen Verweis auf den zugehörigen Haupteintrag, nämlich seine Indexfarbe. ri enthält aber auch bei Ver­ weiseinträgen den höherwertigen Teil der Realadresse zu zugeordneten Daten.A distinction is made between main entries and reference entries in the cache. In the case of main entries (identified by a set main i ), d i contains the current data, c i the real color and r i the higher-order part of the real address of the data assigned to the cache entry. Main entries are quickly addressed via the virtual main address mentioned above. In contrast, reference entries (marked by i ) do not hold any data, but in c i a reference to the associated main entry, namely its index color. However, r i also contains the higher-order part of the real address for assigned data for reference entries.

Unabhängig davon werden Farbtreue und Falschfarben-Ein­ träge unterschieden. Bei farbtreuen Einträgen stimmen Index- und Realfarbe überein, bei Falschfarben-Einträ­ gen nicht.Regardless of this, color fidelity and false color on lazily differentiated. Correct for color-true entries Index and real color match, for false color entries not enough.

Es gibt farbtreue Haupteinträge, Falschfarben-Hauptein­ träge und farbtreue Verweiseinträge. Falschfarben-Ver­ weiseinträge treten nicht auf.There are color-true main entries, false color main entries lazy and color-accurate reference entries. False color ver wise entries do not occur.

Es gelten folgende Invarianzen:The following invariants apply:

  • 1. Enthält der Cache einen farbtreuen Verweiseintrag, enthält er auch den entsprechenden Falschfarben- Haupteintrag, und zwar an der Stelle, auf die ver­ wiesen wird. 1. If the cache contains a color-accurate reference entry, it also contains the corresponding false color Main entry, at the point at which ver will be shown.  
  • 2. Zu jedem Falschfarben-Haupteintrag gibt es genau einen farbtreuen Verweiseintrag, der auf ihn ver­ weist.2. There are exact details for each false color main entry a color-accurate reference entry that ver points.

Anhand der Fig. 1 bis 4 wird nachfolgend die Adressie­ rung eines direct-mapped Cache beschrieben.Referring to Figs. 1 to 4 which will be described below Adressie tion of a direct-mapped cache.

  • 1. Zu Beginn eines Cache-Zugriffs wird der Indexport (, ) aus der virtuellen Adresse geladen (siehe Fig. 1). Gleichzeitig startet der TLB eine Adreß­ umsetzung mit vpn als Input.1. At the beginning of a cache access, the index port (,) is loaded from the virtual address (see Fig. 1). At the same time, the TLB starts address conversion with vpn as input.
  • 2. Der durch (, ) adressierte Cache-Eintrag wird ausgelesen. ci wird mit und ri mit verglichen (Fig. 2). Falls es sich um einen Haupteintrag han­ delt, d. h. maini gesetzt ist, und beide Vergleiche Gleichheit ergeben, handelt es sich um einen Cache-Treffer, d. h. die Daten des Caches werden übernommen (Lesezugriff) oder die neuen Daten in den Cache geschrieben (Schreibzugriff). Der Cache- Zugriff ist damit beendet.2. The cache entry addressed by (,) is read out. c i is compared with and r i with ( FIG. 2). If it is a main entry, ie main i is set, and both comparisons result in equality, it is a cache hit, i.e. the cache data is accepted (read access) or the new data is written to the cache (write access ). This ends the cache access.
  • 3. Wurde in Schritt 2 ein farbtreuer Verweiseintrag ausgelesen,. d. h. i, und die höherwertigen Teile der Realadresse stimmen mit der Markierung überein (ri=) und es handelt sich um einen farbtreuen Zugriff (Indexfarbe = Realfarbe, =), dann wird mit dem ausgelesenen ci geladen (Fig. 3). Anschließend wird wiederum ein Schritt 2 ausgeführt (Umleitungsschritt). (Variante (a) oder in dem Fall, daß nicht nur der Verweisindex son­ dern auch der Verweisweg beispielsweise im Daten­ feld gespeichert ist - nur bei direct-mapped- Cache -: Bei diesem Umleitungsschritt werden keine Prüfungen (von Realadresse, Farbe und auf Haupteintrag) mehr durchgeführt. Variante (b): Der Verweis wird nicht aus ci sondern di gelesen.)3. If a color-accurate reference entry was read out in step 2. ie i , and the higher-order parts of the real address match the marking (r i =) and the access is true to color (index color = real color, =), then the read c i is used for loading ( FIG. 3). Then step 2 is carried out again (redirection step). (Variant (a) or in the event that not only the reference index but also the reference path, for example, is stored in the data field - only with direct-mapped cache -: In this redirection step, no checks (from real address, color and for main entry Variant (b): The reference is not read from c i but d i .)
  • 4. Wurde in Schritt 2 ein Haupteintrag ausgelesen, d. h. maini, aber die Realadresse stimmt nicht (ri ≠ oder ci≠) und es handelt sich um einen Falschfarbenzugriff (≠), dann wird eine Farb­ korrektur versucht (Fig. 4): wird mit der Real­ farbe geladen und es wird wiederum ein Schritt 2 ausgeführt.4. If a main entry was read out in step 2, ie main i , but the real address is incorrect (r i ≠ or c i ≠) and it is a false color access (≠), then a color correction is attempted ( Fig. 4) : is loaded with the real color and step 2 is carried out again.
  • 5. In jedem anderen Fall wird der Cache-Zugriff abge­ brochen und Miss signalisiert.5. In any other case, cache access is denied broken and signaled miss.

Der obige Vorgang läßt sich auf einen mehrweg-assozia­ tiv (n-Wege assoziativen) Cache entsprechend übertra­ gen. Beim n-Wege assoziativen Cache werden gleichzeitig jeweils n Einträge angewählt. Die einzelnen Einträge werden in der folgenden Beschreibung durch den zusätz­ lichen Index j unterschieden, z. B. ci,j.The above process can be transferred to a multi-way associative (n-way associative) cache accordingly. With n-way associative cache, n entries are selected at the same time. The individual entries are distinguished in the following description by the additional index j, z. B. c i, j .

Im folgenden sind jeweils links von → die Voraussetzun­ gen für die rechts davon beschriebenen Operationen auf­ geführt. Zur Anwahl einer Alternative müssen alle dafür aufgeführten Voraussetzungen erfüllt sein (logische und-Verknüpfung). Alle durch Komma getrennte Operationen erfolgen parallel. Überstreichung (wie ) be­ zeichnet die Negation eines Signals bzw. eines Bits und "!" (wie step2!) das Setzen eines Signals bzw. eines Bits. Das Zurücksetzen eines Signals bzw. Bits wird durch "!" angewandt auf das negierte Signal (wie !) notiert. D bezeichnet den Datenbus.The following are the requirements to the left of → for the operations described on the right guided. To select an alternative, everyone must do so listed requirements must be met (logical and link). All operations separated by commas take place in parallel. Sweep (how) be draws the negation of a signal or a bit and "!" (like step2!) setting a signal or one Bits. The resetting of a signal or bit will by "!" applied to the negated signal (like !) written down. D denotes the data bus.

Für alle j von 1 bis n wird dann parallel folgendes durchgeführt:The following then becomes parallel for all j from 1 to n carried out:

All n-Blöcke zusammenfassend wird geschaltet:In summary, all n blocks are switched:

Hierbei bedeutet den Abschluß der Cache-Behandlung. Danach liegt ein Treffer (hit) vor oder nicht (). Falls keine Alternative angewählt wird, die mit ab­ schließt, wird im nächsten Takt nach demselben Verfah­ ren weitergearbeitet.Here, the completion of the cache handling means. Then there is a hit (hit) or not (). If no alternative is selected, start with closes, the next bar follows the same procedure continued to work.

Sofern bei dem n-Wege assoziativen Cache im ersten Takt für einen Eintrag eines Weges in dem oben unter B be­ schriebenen Schritt ein "Hit" signalisiert wird, ge­ langt man in dem obigen Diagramm A nach dem ersten Schritt an die mit "(*)" gekennzeichnete Stelle. An­ schließend wird entsprechend der ersten Zeile des Diagramms B verfahren, und an der mit "(**)" gekenn­ zeichneten Stelle ist der Cache-Zugriff (erfolgreich) beendet. Man hat also bei der Erstadressierung des Cache-Speichers sofort den Haupt-Eintrag gefunden.If the n-way associative cache in the first measure for an entry of a way in the above under B be written step a "hit" is signaled, ge one reaches after the first in diagram A above Step to the position marked with "(*)". On is then closed according to the first line of the Move diagram B and identify it with "(**)" is the cache access (successful) completed. So when you first address the Cache immediately found the main entry.

Stößt man bei der Erstadressierung des Cache-Speichers hingegen auf einen Verweis-Eintrag (s. oben unter Schritt 3), so gelangt man nach dem ersten Takt bis zu der mit "(***)" bezeichneten Stelle und fährt dann für alle Wege des Cache-Speichers erneut mit dem Diagramm A fort. Wenn dann nach nochmaliger Adressierung des Cache-Speichers gemäß dem oberen Diagramm A das Hit- Signal weiterhin nicht gesetzt worden ist, wird der Cache-Zugriff abgebrochen.One comes across when addressing the cache memory for the first time however, to a reference entry (see above under Step 3), you get up to after the first bar  the position marked with "(***)" and then drives for all paths of the cache memory again with the diagram A away. If after addressing the Cache memory according to diagram A above the hit Signal has not yet been set, the Cache access canceled.

Wenn nach der Adressierung des Cache-Speichers ent­ sprechend dem obigen Verfahren A das Hit-Signal und das Step2-Signal beide nicht gesetzt sind, so wird, falls die Indexfarbe mit der realen Farbe übereinstimmt, der Cache-Zugriff mit Miss abgeschlossen (s. die mit "(****)" gekennzeichnete Stelle). Stimmen hingegen Indexfarbe und reale Farbe nicht überein, so wird eine Farbkorrektur durchgeführt (s. "(*****)" in der unteren Zeile von Diagramm B). Danach läuft der Zugriff mit Beginn des Diagramms A erneut ab.If after addressing the cache memory ent speaking of method A above, the hit signal and that Step2 signal are both not set, so if the index color matches the real color that Missed cache access (see those with "(****)" marked place). Votes against Index color and real color do not match, so a Color correction carried out (see "(*****)" in the lower one Row of diagram B). After that, the access runs Start of diagram A again.

Aus Gründen der Übersichtlichkeit wurde nur das Aus­ lesen und Schreiben ganzer Cache-Einträge beschrieben. Unter Berücksichtigung niederwertiger Adreßbits können natürlich nach dem üblichen und bekannten Verfahren auch nur Teile eines Eintrags gelesen oder geschrieben werden. Auswirkungen auf die hier beschriebene Steuer­ logik des Falschfarben-Cache treten nicht auf.For reasons of clarity, only the end read and write entire cache entries. Taking into account low-order address bits, you can naturally by the usual and known method read or wrote only parts of an entry become. Effects on the tax described here Logic of the false color cache does not occur.

Eine Erweiterung des oben beschriebenen Caches besteht darin, auch Falschfarben-Verweiseinträge und mehrere Verweiseinträge pro Haupteintrag zuzulassen. Mindestens einer der Verweiseinträge hält dann eine Liste aller zusammengehörender Einträge in seinem Datenfeld (das bei einem Verweiseintrag nicht für Daten benötigt wird). There is an expansion of the cache described above in it, also false color reference entries and several Allow reference entries per main entry. At least one of the reference entries then holds a list of all related entries in its data field (the not required for data in a reference entry becomes).  

Alternativ bzw. zusätzlich kann auch ein Verweiseintrag die Daten enthalten, so daß sie beim Lesen direkt, ohne Umleitungsschritt, ausgeliefert werden können. Bei Schreibzugriffen muß dann entweder der jeweils andere Eintrag ebenfalls aktualisiert oder sein Datenfeld als ungültig gekennzeichnet werden.Alternatively or additionally, a reference entry can also be made contain the data so that it can be read directly without Redirection step can be delivered. At Write access must then either be the other Entry also updated or its data field as be marked invalid.

Das obige Page Coloring-Verfahren zur Cache-Adressie­ rung soll selbstverständlich auch dann funktionieren, wenn die Allokation nicht perfekt farbtreu ist. Erfin­ dungsgemäß wird in dem Fall, daß der erste Cache-Zu­ griff mittels Cache-Indexteil und Gruppeninformation der virtuellen Adresse zu einem Cache-Miss geführt hat und die vom TLB gelieferte reale Farbe c′ sich von der virtuellen Farbe c unterscheidet, ein farbkorrigierter Cache-Zugriff versucht (siehe Fig. 5). Dabei erfolgt die erneute (farbkorrigierte) Cache-Indizierung mittels des Cache-Indexteils der virtuellen Adresse und der der Realadresse zugeordneten Gruppeninformation . Falsch kolorierte Seiten können also benutzt werden, benötigen aber einen zusätzlichen Schritt beim Cache-Zugriff (siehe Fig. 6).The above page coloring procedure for cache addressing should of course also work if the allocation is not perfectly true to color. Invention is in the event that the first cache access by means of cache index part and group information of the virtual address has led to a cache miss and the real color c 'supplied by the TLB differs from the virtual color c, a color-corrected cache Access attempted (see Fig. 5). The new (color-corrected) cache indexing takes place by means of the cache index part of the virtual address and the group information assigned to the real address. Incorrectly colored pages can therefore be used, but require an additional step in cache access (see FIG. 6).

Unter gewissen Umständen ist eine nicht farbtreue Allo­ kation zwingend notwendig, z. B. wenn zwei virtuelle Seiten unterschiedlicher Farbe auf dieselbe Realseite abgebildet werden müssen. Damit kann es immer wieder zu nicht farbtreuen Seiten-Allokationen kommen, die vom Cache-Speicher verarbeitet werden müssen.Under certain circumstances, an Allo is not true to color cation absolutely necessary, e.g. B. if two virtual Pages of different colors on the same real page must be mapped. With that, it can keep going not color-accurate page allocations come from the Cache memory need to be processed.

Gemäß einer ersten Variante wird bei der Cache- Adressierung zunächst mittels des Cache-Indexteils und der Gruppeninformation der virtuellen Adresse der Cache-Speicher indiziert und pro Weg des Cache- Speichers ein Cache-Eintrag adressiert. Die Markierun­ gen sämtlicher nun adressierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Real­ adreßteil der realen Seitennummer der aus der virtuel­ len Adresse umgesetzten Realadresse ausgelesen. Ferner wird die Gruppeninformation der virtuellen Adresse mit der Gruppeninformation der Realadresse verglichen. Sind diese beiden Gruppeninformationen gleich, so wird untersucht, welche der Markierungen der adressierten Cache-Einträge mit dem Rest-Realadreßteil der aus der virtuellen Adresse umgesetzten Realadresse überein­ stimmt, wobei für den Cache-Eintrag mit mit dem Rest- Realadreßteil übereinstimmender Markierung ein Cache- Hit vorliegt, so daß die Cache-Adressierung beendet ist und Daten in das Datenfeld dieses Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind. Existiert kein adressierter Cache-Eintrag mit einer mit dem Rest- Realadreßteil übereinstimmender Markierung, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor. Unterscheiden sich dagegen die beiden Gruppenin­ formationen voneinander (was bei dem obigen Vergleich festgestellt wird), so wird der Cache-Speicher indi­ ziert, und zwar mittels des Cache-Indexteils der vir­ tuellen Adresse und der Gruppeninformation der Real­ adresse. Nun wird untersucht, welche der Markierungen der jetzt adressierten Cache-Einträge mit dem Rest- Realadreßteil der aus der virtuellen Adresse umge­ setzten Realadresse übereinstimmt, wobei für den Cache- Eintrag mit mit dem Rest-Realadreßteil übereinstimmen­ der Markierung ein Cache-Hit vorliegt, so daß die Cache-Adressierung beendet ist und Daten in das Daten­ feld dieses Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind. Existiert hingegen auch jetzt kein Cache-Eintrag mit einer Markierung, die mit dem Rest- Realadreßteil übereinstimmt, so wird die Cache-Adres­ sierung beendet und es liegt ein Cache-Miss vor. According to a first variant, the cache Addressing first using the cache index part and the group information of the virtual address of the Cache memory indexed and per way of cache Memory addressed a cache entry. The marking  against all now addressed cache entries to examine for correspondence with the rest real address part of the real page number from the virtual len address converted real address read out. Further the group information of the virtual address the group information of the real address is compared. are these two group information the same, so examines which of the marks of the addressed Cache entries with the remaining real address part from the virtual address converted real address true, whereby for the cache entry with the rest- Real address part matching mark a cache Hit is present, so that the cache addressing is finished and data in the data field of this cache entry are writable or readable from this. Exists no addressed cache entry with one with the remaining Realadressteil matching marking, so the Cache addressing ended and there is a cache miss in front. However, the two groups differ formations of each other (what with the comparison above is determined), the cache memory is indi adorned, namely by means of the cache index part of the vir current address and the group information of the Real address. Now it is examined which of the markings of the now addressed cache entries with the remaining Real address part of the from the virtual address set real address matches, whereby for the cache Match entry with the rest of the real address part there is a cache hit in the marker so that the Cache addressing is finished and data in the data field of this cache entry is writable or from this are readable. However, none exists now Cache entry with a marker that matches the remaining Realadressteil matches, so the cache address ended and there is a cache miss.  

Bei der zweiten Alternative des Cache-Zugriffs mit der Möglichkeit einer farbkorrigierten Cache-Indizierung wird zunächst (ohne Farbkorrektur) die Cache-Adressie­ rung mittels des Cache-Indexteils und der Gruppeninfor­ mation der virtuellen Adresse versucht, wobei pro Weg des Cache-Speichers ein Cache-Eintrag adressiert wird. Die Markierungen sämtlicher nun adressierter Cache- Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Realadreßteil der realen Seitennummer der aus der virtuellen Adresse umgesetzten Realadresse aus­ gelesen. Ferner werden die Gruppeninformationen sämt­ licher nun adressierter Cache-Einträge zur Untersuchung auf Übereinstimmung mit der Gruppeninformation der aus der virtuellen Adresse umgesetzten Realadresse ausge­ lesen. Danach wird untersucht, welcher der adressierten Cache-Einträge eine mit dem Rest-Realadreßteil der rea­ len Seitennummer der aus der virtuellen Adresse umge­ setzten Realadresse übereinstimmende Markierung und eine mit der Gruppeninformation der Realadresse übereinstim­ mende Gruppeninformation aufweist, wobei für diesen Cache-Eintrag ein Cache-Hit vorliegt, so daß die Cache- Adressierung beendet ist und Daten in das Datenfeld dieses Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind. Existiert dabei kein Cache-Eintrag, dessen Markierung mit dem Rest-Realadreßteil und dessen Gruppeninformation mit der Gruppeninformation der Real­ adresse übereinstimmt, so wird die Gruppeninformation der virtuellen Adresse mit der Gruppeninformation der Realadresse verglichen. Stimmen hierbei beide Gruppen­ informationen überein, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor. Unterscheiden sich hingegen beide Gruppeninformationen voneinander, so wird der Cache-Speicher erneut indiziert, und zwar mittels des Cache-Indexteils der virtuellen Adresse und der Gruppeninformation der Realadresse. Die Markierun­ gen und die Gruppeninformationen sämtlicher nun adres­ sierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Realadreßteil bzw. der Gruppeninformation der Realadresse ausgelesen. Danach wird wiederum untersucht, welcher der adressierten Cache-Einträge eine mit dem Rest-Realadreßteil der rea­ len Seitennummer der aus der virtuellen Adresse umge­ setzten Realadresse übereinstimmende Markierung und eine mit der Gruppeninformation der Realadresse übereinstim­ mende Gruppeninformation aufweist, wobei für diesen Cache-Eintrag ein Cache-Hit vorliegt, so daß die Cache- Adressierung beendet ist und Daten in das Datenfeld dieses Cache-Eintrags schreibbar bzw. aus diesem aus­ lesbar sind. Existiert auch jetzt kein Cache-Eintrag, dessen Markierung mit dem Rest-Realadreßteil und dessen Gruppeninformation mit der Gruppeninformation der Real­ adresse übereinstimmt, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor.In the second alternative of cache access with the Possibility of color-corrected cache indexing first the cache address (without color correction) by means of the cache index part and the group information mation of the virtual address tried, being per way a cache entry is addressed in the cache memory. The markings of all now addressed cache Entries are used to check for match with the remaining real address part of the real page number of real address converted from the virtual address read. Furthermore, the group information is all now addressed cache entries for examination according to the group information from real address converted from the virtual address read. Then it is examined which of the addressed Cache entries one with the rest of the real address part of the rea len page number from the virtual address set real address matching mark and a matches the group information of the real address has group information, for this Cache entry there is a cache hit so that the cache Addressing is finished and data in the data field of this cache entry writable or from this are readable. If there is no cache entry, its marking with the remaining real address part and its Group information with the group information of the real If the address matches, the group information the virtual address with the group information of the Real address compared. Both groups agree information matches, so is the cache addressing ended and there is a cache miss. Differentiate however, the two group information differ from each other, so the cache is indexed again by means of the cache index part of the virtual address and the group information of the real address. The marking  gen and the group information of all addresses now cached entries are used for examination Agreement with the remaining real address part or Group information of the real address read out. After that it is again examined which of the addressed Cache entries one with the rest of the real address part of the rea len page number from the virtual address set real address matching mark and a matches the group information of the real address has group information, for this Cache entry there is a cache hit so that the cache Addressing is finished and data in the data field of this cache entry is writable or from this are legible. If there is no cache entry, its marking with the remaining real address part and its Group information with the group information of the real address matches, so the cache addressing ended and there is a cache miss.

Claims (4)

1. Cache-Speichervorrichtung zum Speichern von Daten, mit
  • - einem ein- oder mehrweg-assoziativen Cache- Speicher, der durch eine virtuelle Adresse in­ dizierbar ist, die einen Cache-Indexteil sowie einen eine virtuelle Seitennummer repräsentie­ renden Seitennummer-Adreßteil mit einer Grup­ peninformation umfaßt, die eine von mehreren Gruppen angibt, zu der die durch den Seitennum­ mer-Adreßteil der virtuellen Adresse repräsen­ tierte virtuelle Seite gehört,
    • - wobei die virtuelle Adresse in eine Real­ adresse umsetzbar ist, die einen eine reale Seitennummer repräsentierenden Seitennummer- Adreßteil aufweist, welcher eine Gruppen­ information und einen Rest-Realadreßteil um­ faßt, wobei die Gruppeninformation eine von mehreren Gruppen angibt, zu der die durch den Seitennummer-Adreßteil der Realadresse repräsentierte reale Seite gehört,
    • - und wobei der Cache-Speicher mehrere durch den Cache-Indexteil und die Gruppeninforma­ tion der virtuellen Adresse indizierbare Cache-Einträge aufweist, von denen jeder mindestens eine Markierung, eine Gruppen­ information, eine setzbare und rücksetzbare Zustandsflagge und mindestens ein Datenfeld umfaßt,
  • - wobei eine Cache-Adressierung gemäß folgender Schritte versucht wird:
    • a) mittels des Cache-Indexteils und der Grup­ peninformation der virtuellen Adresse wird der Cache-Speicher indiziert, wobei pro Weg des Cache-Speichers ein Cache-Eintrag adres­ siert wird,
    • b) die Markierungen sämtlicher nun adressierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Realadreßteil der realen Seitennummer der aus der virtuel­ len Adresse umgesetzten Realadresse ausgele­ sen,
    • c) die Gruppeninformationen sämtlicher nun adressierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit der Gruppeninformation der aus der virtuellen Adresse umgesetzten Realadresse ausgelesen,
    • d) es wird untersucht, welcher der in den Schritten b) und c) ausgelesenen Cache-Ein­ träge eine gesetzte Zustandsflagge aufweist,
    • e) existiert in Schritt d) ein Cache-Eintrag, dessen Zustandsflagge gesetzt ist und dessen Markierung mit dem Rest-Realadreßteil der Realadresse und dessen Gruppeninformation mit der Gruppeninformation der Realadresse übereinstimmt, so liegt ein Cache-Hit vor und die Cache-Adressierung ist beendet, wobei Daten in das Datenfeld des betreffen­ den Cache-Eintrags schreibbar bzw. aus die­ sem auslesbar sind, andernfalls
    • f) wird untersucht, ob die Gruppeninforma­ tion der virtuellen Adresse gleich der Gruppeninformation der Realadresse ist und ob einer der adressierten Cache-Ein­ träge eine mit dem Rest-Realadreßteil der realen Seitennummer übereinstimmende Mar­ kierung und eine nicht gesetzte Zustands­ flagge aufweist,
    • g) wenn die Bedingungen in Schritt f) für einen Cache-Eintrag gegeben sind, so wird der Cache-Speicher mittels des Cache- Indexteils und der Gruppeninformation dieses Cache-Eintrags indiziert, wobei pro Weg des Cache-Speichers ein Cache- Eintrag adressiert wird, und es werden die Schritte b), c) und d) ausgeführt,
    • h) für denjenigen der nun adressierten Cache-Einträge, dessen Zustandsflagge gesetzt ist und dessen Markierung mit dem Rest-Realadreßteil der Realadresse und dessen Gruppeninformation mit der Grup­ peninformation der Realadresse überein­ stimmt, liegt ein Cache-Hit vor, wobei die Cache-Adressierung beendet ist und Daten in das Datenfeld des betreffenden Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind,
    • i) ist mindestens eine der Bedingungen in Schritt f) nicht gegeben, so wird unter­ sucht, ob die Gruppeninformation der vir­ tuellen Adresse von der Gruppeninforma­ tion der Realadresse verschieden ist,
    • j) wenn die Bedingung in Schritt i) gegeben ist, so wird der Cache-Speicher mittels des Cache-Indexteils und der Gruppenin­ formation der Realadresse indiziert, wobei pro Weg des Cache-Speichers ein Cache-Eintrag adressiert wird, und es werden die Schritte b) bis h) ausgeführt, wobei die Cache-Adressierung beendet ist und ein Cache-Miss vorliegt, wenn hierbei ein Schritt f) ausgeführt wird und min­ destens eine der Bedingungen des Schritts f) nicht erfüllt ist,
    • k) ist die Bedingung in Schritt i) nicht erfüllt oder ist in Schritt h) kein Cache-Hit gegeben, so wird die Cache- Adressierung beendet und es liegt ein Cache-Miss vor.
1. cache memory device for storing data, with
  • - A one-way or multi-way associative cache, which can be indicated by a virtual address which comprises a cache index part and a virtual page number representing page number address part with group information indicating one of several groups which belongs to the virtual page represented by the page number address part of the virtual address,
    • - Wherein the virtual address can be converted into a real address, which has a real page number representing page number address part, which comprises a group information and a remaining real address part, the group information indicating one of several groups to which the by the page number -Address part of the real address belongs to the real page,
    • and the cache memory has a plurality of cache entries which can be indexed by the cache index part and the group information of the virtual address, each of which comprises at least one marker, group information, a settable and resettable status flag and at least one data field,
  • - where cache addressing is attempted according to the following steps:
    • a) the cache memory is indexed by means of the cache index part and the group information of the virtual address, one cache entry being addressed per path of the cache memory,
    • b) the markings of all now addressed cache entries are read out for examination for correspondence with the remaining real address part of the real page number of the real address converted from the virtual address,
    • c) the group information of all now addressed cache entries are read out for examination for agreement with the group information of the real address converted from the virtual address,
    • d) it is examined which of the cache entries read in steps b) and c) has a set status flag,
    • e) If there is a cache entry in step d), the status flag of which is set and the marking of which corresponds to the remaining real address part of the real address and the group information of which corresponds to the group information of the real address, then there is a cache hit and the cache addressing has ended , data in the data field of the cache entry concerned being writable or readable therefrom, otherwise
    • f) it is examined whether the group information of the virtual address is equal to the group information of the real address and whether one of the addressed cache entries has a marking which corresponds to the remaining real address part of the real page number and an unset status flag,
    • g) if the conditions in step f) are given for a cache entry, the cache memory is indexed by means of the cache index part and the group information of this cache entry, one cache entry being addressed per path of the cache memory , and steps b), c) and d) are carried out,
    • h) for those of the now addressed cache entries whose status flag is set and whose marking matches the rest of the real address part of the real address and whose group information matches the group information of the real address, there is a cache hit, and the cache addressing ends and data can be written to or read from the data field of the cache entry in question,
    • i) if at least one of the conditions in step f) does not exist, then a check is made as to whether the group information of the virtual address is different from the group information of the real address,
    • j) if the condition in step i) is given, the cache is indexed by means of the cache index part and the group information of the real address, one cache entry being addressed per path of the cache, and the steps become b) to h), the cache addressing having ended and a cache miss present, if step f) is carried out and at least one of the conditions of step f) is not met,
    • k) If the condition in step i) is not met or if there is no cache hit in step h), the cache addressing is ended and there is a cache miss.
2. Cache-Speichervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß bei einem Direct-mapped-Cache- Speicher mit einem einzigen Weg in Schritt h) die Untersuchung der Zustandsflagge, der Markierung und der Gruppeninformation des einzigen adressier­ ten Cache-Eintrags nicht erfolgt und für diesen einzigen adressierten Cache-Eintrag ein Cache-Hit vorliegt.2. Cache memory device according to claim 1, characterized characterized in that with a direct-mapped cache Memory with a single path in step h) the Examination of the state flag, the marking and the group information of the single address th cache entry was not made and for this only addressed cache entry a cache hit is present. 3. Cache-Speichervorrichtung zum Speichern von Daten, mit
  • - einem ein- oder mehrweg-assoziativen Cache- Speicher, der durch eine virtuelle Adresse in­ dizierbar ist, die einen Cache-Indexteil sowie einen eine virtuelle Seitennummer repräsentie­ renden Seitennummer-Adreßteil mit einer Grup­ peninformation umfaßt, die eine von mehreren Gruppen angibt, zu der die durch den Seitennum­ mer-Adreßteil der virtuellen Adresse repräsen­ tierte virtuelle Seite gehört,
    • - wobei die virtuelle Adresse in eine Real­ adresse umsetzbar ist, die einen eine reale Seitennummer repräsentierenden Seitennummer- Adreßteil aufweist, welcher eine Gruppen­ information und einen Rest-Realadreßteil um­ faßt, wobei die Gruppeninformation eine von mehreren Gruppen angibt, zu der die durch den Seitennummer-Adreßteil der Realadresse repräsentierte reale Seite gehört,
    • - und wobei der Cache-Speicher mehrere durch Cache-Indexteil und Gruppeninformation der virtuellen Adresse indizierbare Cache-Ein­ träge aufweist, von denen jeder mindestens eine Markierung und mindestens ein Datenfeld umfaßt,
  • - wobei eine Cache-Adressierung gemäß folgender Schritte versucht wird:
    • a) mittels des Cache-Indexteils und der Grup­ peninformation der virtuellen Adresse wird der Cache-Speicher indiziert, wobei pro Weg des Cache-Speichers ein Cache-Eintrag adres­ siert wird,
    • b) die Markierungen sämtlicher nun adressierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Realadreßteil der realen Seitennummer der aus der virtuel­ len Adresse umgesetzten Realadresse ausge­ lesen,
    • c) die Gruppeninformation der virtuellen Adres­ se wird mit der Gruppeninformation der Real­ adresse verglichen,
    • d) sind in Schritt c) beide Gruppeninformatio­ nen gleich, so wird untersucht, welche der Markierungen der adressierten Cache-Einträge mit dem Rest-Realadreßteil der aus der vir­ tuellen Adresse umgesetzten Realadresse übereinstimmt, wobei für den Cache-Eintrag mit mit dem Rest-Realadreßteil übereinstim­ mender Markierung ein Cache-Hit vorliegt, so daß die Cache-Adressierung beendet ist und Daten in das Datenfeld dieses Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind,
    • e) existiert in Schritt d) keine Übereinstim­ mung, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor,
    • f) unterscheiden sich in Schritt c) beide Grup­ peninformationen voneinander, so wird der Cache-Speicher indiziert, und zwar mittels des Cache-Indexteils der virtuellen Adresse und der Gruppeninformation der Realadresse,
    • g) es wird untersucht, welche der Markierungen der adressierten Cache-Einträge mit dem Rest-Realadreßteil der aus der virtuellen Adresse umgesetzten Realadresse überein­ stimmt, wobei für den Cache-Eintrag mit mit dem Rest-Realadreßteil übereinstimmender Markierung ein Cache-Hit vorliegt, so daß die Cache-Adressierung beendet ist und Daten in das Datenfeld dieses Cache-Eintrags schreibbar bzw. aus diesem auslesbar sind,
    • h) existiert in Schritt g) wiederum keine Über­ einstimmung, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor.
3. cache storage device for storing data, with
  • - A one-way or multi-way associative cache, which can be indicated by a virtual address which comprises a cache index part and a virtual page number representing page number address part with group information indicating one of several groups which belongs to the virtual page represented by the page number address part of the virtual address,
    • - Wherein the virtual address can be converted into a real address, which has a real page number representing page number address part, which comprises a group information and a remaining real address part, the group information indicating one of several groups to which the by the page number -Address part of the real address belongs to the real page,
    • the cache memory has a plurality of cache entries which can be indexed by the cache index part and group information of the virtual address, each of which comprises at least one marker and at least one data field,
  • - where cache addressing is attempted according to the following steps:
    • a) the cache memory is indexed by means of the cache index part and the group information of the virtual address, one cache entry being addressed per path of the cache memory,
    • b) the markings of all now addressed cache entries are read out for examination for correspondence with the remaining real address part of the real page number of the real address converted from the virtual address,
    • c) the group information of the virtual address is compared with the group information of the real address,
    • d) in step c) both group information are identical, it is examined which of the markings of the addressed cache entries corresponds to the remaining real address part of the real address converted from the virtual address, whereby for the cache entry with the remaining There is a cache hit in the real address part of the corresponding marking, so that the cache addressing is ended and data can be written to or read from the data field of this cache entry,
    • e) if there is no match in step d), the cache addressing is ended and there is a cache miss,
    • f) in step c) the two group information differ from one another, the cache memory is indexed, specifically by means of the cache index part of the virtual address and the group information of the real address,
    • g) it is examined which of the markings of the addressed cache entries matches the remaining real address part of the real address converted from the virtual address, with a cache hit being present for the cache entry with the marking matching the remaining real address part, so that the cache addressing has ended and data can be written to or read from the data field of this cache entry,
    • h) there is again no agreement in step g), the cache addressing is ended and there is a cache miss.
4. Cache-Speichervorrichtung zum Speichern von Daten, mit
  • - einem ein- oder mehrweg-assoziativen Cache- Speicher, der durch eine virtuelle Adresse in­ dizierbar ist, die einen Cache-Indexteil sowie einen eine virtuelle Seitennummer repräsentie­ renden Seitennummer-Adreßteil mit einer Grup­ peninformation umfaßt, die eine von mehreren Gruppen angibt, zu der die durch den Seitennum­ mer-Adreßteil der virtuellen Adresse repräsen­ tierte virtuelle Seite gehört,
    • - wobei die virtuelle Adresse in eine Real­ adresse umsetzbar ist, die einen eine reale Seitennummer repräsentierenden Seitennummer- Adreßteil aufweist, welcher eine Gruppen­ information und einen Rest-Realadreßteil um­ faßt, wobei die Gruppeninformation eine von mehreren Gruppen angibt, zu der die durch den Seitennummer-Adreßteil der Realadresse repräsentierte reale Seite gehört,
    • - und wobei der Cache-Speicher mehrere durch Cache-Indexteil und Gruppeninformation der virtuellen Adresse indizierbare Cache-Ein­ träge aufweist, von denen jeder mindestens eine Markierung, eine Gruppeninformation und mindestens ein Datenfeld umfaßt,
  • - wobei eine Cache-Adressierung gemäß folgender Schritte versucht wird:
    • a) mittels des Cache-Indexteils und der Grup­ peninformation der virtuellen Adresse wird der Cache-Speicher indiziert, wobei pro Weg des Cache-Speichers ein Cache-Eintrag adres­ siert wird,
    • b) die Markierungen sämtlicher nun adressierter Cache-Einträge werden zur Untersuchung auf Übereinstimmung mit dem Rest-Realadreßteil der realen Seitennummer der aus der virtuel­ len Adresse umgesetzten Realadresse ausge­ lesen,
    • c) die Gruppeninformation sämtlicher nun adres­ sierter Cache-Einträge werden zur Unter­ suchung auf Übereinstimmung mit der Gruppen­ information der aus der virtuellen Adresse umgesetzten Realadresse ausgelesen,
    • d) es wird untersucht, welcher der adressierten Cache-Einträge eine mit dem Rest-Realadreß­ teil der realen Seitennummer der aus der virtuellen Adresse umgesetzten Realadresse übereinstimmende Markierung und eine mit der Gruppeninformation der Realadresse überein­ stimmende Gruppeninformation aufweist, wobei für diesen Cache-Eintrag ein Cache-Hit vor­ liegt, so daß die Cache-Adressierung beendet ist und Daten in das Datenfeld dieses Cache- Eintrags schreibbar bzw. aus diesem ausles­ bar sind,
    • e) existiert in Schritt d) keine Übereinstim­ mung, so wird die Gruppeninformation der virtuellen Adresse mit der Gruppeninforma­ tion der Realadresse verglichen,
    • f) stimmen beide Gruppeninformationen überein, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor,
    • g) unterscheiden sich beide Gruppeninforma­ tionen voneinander, so wird der Cache- Speicher erneut indiziert, und zwar mittels des Cache-Indexteils der virtuellen Adresse und der Gruppeninformation der Realadresse,
    • h) für den gemäß Schritt g) indizierten Cache- Speicher wird ein Schritt d) durchgeführt,
    • i) existiert in dem gemäß Schritt h) durchge­ führten Schritt d) wiederum keine Überein­ stimmung, so wird die Cache-Adressierung beendet und es liegt ein Cache-Miss vor.
4. cache storage device for storing data, with
  • - A one-way or multi-way associative cache, which can be indicated by a virtual address which comprises a cache index part and a virtual page number representing page number address part with group information indicating one of several groups which belongs to the virtual page represented by the page number address part of the virtual address,
    • - Wherein the virtual address can be converted into a real address, which has a real page number representing page number address part, which comprises a group information and a remaining real address part, the group information indicating one of several groups to which the by the page number -Address part of the real address belongs to the real page,
    • the cache memory has a plurality of cache entries which can be indexed by the cache index part and group information of the virtual address, each of which comprises at least one marker, group information and at least one data field,
  • - where cache addressing is attempted according to the following steps:
    • a) the cache memory is indexed by means of the cache index part and the group information of the virtual address, one cache entry being addressed per path of the cache memory,
    • b) the markings of all now addressed cache entries are read out for examination for correspondence with the remaining real address part of the real page number of the real address converted from the virtual address,
    • c) the group information of all now addressed cache entries are read out for the examination for agreement with the group information of the real address converted from the virtual address,
    • d) it is examined which of the addressed cache entries has a marking which corresponds to the remaining real address part of the real page number of the real address converted from the virtual address and has group information which corresponds to the group information of the real address, with a for this cache entry There is a cache hit, so that the cache addressing has ended and data can be written to or read from the data field of this cache entry,
    • e) if there is no match in step d), the group information of the virtual address is compared with the group information of the real address,
    • f) if the two group information match, the cache addressing is ended and there is a cache miss,
    • g) if the two group information differ from one another, the cache memory is indexed again, specifically by means of the cache index part of the virtual address and the group information of the real address,
    • h) a step d) is carried out for the cache memory indexed according to step g),
    • i) if there is again no match in step d) carried out according to step h), the cache addressing is ended and there is a cache miss.
DE19512745A 1994-04-15 1995-04-05 Cache memory device for storing data Withdrawn DE19512745A1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE19512745A DE19512745A1 (en) 1994-04-15 1995-04-05 Cache memory device for storing data
US08/727,660 US5913222A (en) 1994-04-15 1995-04-12 Color correction method in a virtually addressed and physically indexed cache memory in the event of no cache hit
PCT/EP1995/001378 WO1995028678A1 (en) 1994-04-15 1995-04-12 Cache memory device for data storage
EP95915872A EP0755541A1 (en) 1994-04-15 1995-04-12 Cache memory device for data storage
JP7526710A JPH09512117A (en) 1994-04-15 1995-04-12 Data storage cache memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4412929 1994-04-15
DE19512745A DE19512745A1 (en) 1994-04-15 1995-04-05 Cache memory device for storing data

Publications (1)

Publication Number Publication Date
DE19512745A1 true DE19512745A1 (en) 1995-10-26

Family

ID=6515423

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19512745A Withdrawn DE19512745A1 (en) 1994-04-15 1995-04-05 Cache memory device for storing data

Country Status (1)

Country Link
DE (1) DE19512745A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19504483A1 (en) * 1994-04-22 1995-10-26 Mathematik Und Datenverarbeitu Cache memory device for storing data
DE19538961A1 (en) * 1994-10-22 1996-05-02 Gmd Gmbh Data storage device using cache memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4332010A (en) * 1980-03-17 1982-05-25 International Business Machines Corporation Cache synonym detection and handling mechanism

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19504483A1 (en) * 1994-04-22 1995-10-26 Mathematik Und Datenverarbeitu Cache memory device for storing data
DE19538961A1 (en) * 1994-10-22 1996-05-02 Gmd Gmbh Data storage device using cache memory

Similar Documents

Publication Publication Date Title
DE3131341C2 (en)
DE2515696C2 (en) Data processing system
DE69432314T2 (en) CACHE STORAGE WITH SPLIT LEVEL
DE3011552C2 (en)
DE2455047C2 (en) Data processing system with an information store
DE69629140T2 (en) Cache-ability attribute for virtual addresses in caches with both virtual and physical index
DE2817431C2 (en) Storage device with storage hierarchy based on store thru with partial storage
DE10002120B4 (en) An address translation buffer arrangement and method for operating an address translation buffer arrangement
EP0013737A1 (en) Multilevel storage hierarchy for a data processing system
DE4410060A1 (en) Computing device
DE2856715B2 (en) Method for performing cache coincidence in a multiprocessor system
DE2939411C2 (en) Data processing system with virtual memory addressing
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
WO1995028678A1 (en) Cache memory device for data storage
DE69130626T2 (en) Method for managing a cache memory device
WO1996023260A1 (en) Process for operating an address conversion device
DE2710477C2 (en)
EP0756729A1 (en) Cache storage device for data storage
DE4234695A1 (en) STORAGE MANAGEMENT SYSTEM AND METHOD FOR MAINTAINING THE CACHE COHERENCY BETWEEN A DATA CACHE AND A SEGMENT DESCRIPTOR CACHE
DE3832758C2 (en) Method for addressing a write-back virtual cache
EP1449091B1 (en) Method for synchronising a memory with the main memory of a computer
DE19516949A1 (en) Data storage device with auxiliary memory for address space region
DE19512745A1 (en) Cache memory device for storing data
DE10127194B4 (en) Method and device for hiding non-functional memory cells
DE19538961C2 (en) Storage device for storing data

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: GMD-FORSCHUNGSZENTRUM INFORMATIONSTECHNIK GMBH, 53

8130 Withdrawal