WO1996013005A1 - Speichervorrichtung zum speichern von daten - Google Patents

Speichervorrichtung zum speichern von daten Download PDF

Info

Publication number
WO1996013005A1
WO1996013005A1 PCT/EP1995/004103 EP9504103W WO9613005A1 WO 1996013005 A1 WO1996013005 A1 WO 1996013005A1 EP 9504103 W EP9504103 W EP 9504103W WO 9613005 A1 WO9613005 A1 WO 9613005A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
real
memory
page
group information
Prior art date
Application number
PCT/EP1995/004103
Other languages
English (en)
French (fr)
Inventor
Jochen Liedtke
Original Assignee
Gmd - Forschungszentrum Informationstechnik Gmbh
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 Gmd - Forschungszentrum Informationstechnik Gmbh filed Critical Gmd - Forschungszentrum Informationstechnik Gmbh
Priority to JP8513638A priority Critical patent/JPH09507599A/ja
Publication of WO1996013005A1 publication Critical patent/WO1996013005A1/de

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

Definitions

  • the invention relates to a real memory architecture which allows a higher proportion of pages to be allocated true to color than in a conventional architecture.
  • Certain virtually indexed and actually marked caches only allow the processor to access the cache quickly if the corresponding page is allocated true to color. A higher proportion of color-allocated pages can accelerate programs accordingly. Color-accurate allocation can also be advantageous for some TLB architectures and can be used to minimize cache clashes.
  • the real memory architecture allows any coloring of real pages.
  • large and real indexed caches such as secondary caches, can be partitioned flexibly according to applications and thus be used predictably in the miss rate. This is particularly desirable in real-time and multimedia applications.
  • Another application is the dynamic conflict reduction by recoloring of pages.
  • Modern processors need cache memory to bridge the gap between fast processors and slow main memories.
  • Real and virtual indexed caches are known. 5, the virtual address v supplied by the processor is first converted into a real address r by the translation lookaside buffer (TLB). Then the cache is addressed with this real address r. In the case of a virtually indexed cache according to FIG. 6, the cache is addressed directly with the virtual address v. A conversion to the corresponding real address r only takes place in the event of a cache miss.
  • TLB translation lookaside buffer
  • a cache index is calculated from the real address r or virtual address v with the aid of a map function and a row of the cache is thus selected. Then r or v is compared with the address of the memory area currently associated with this cache line (the marking of the cache entry). With equal There is a hit (and the cache line is used instead of the main memory), otherwise a miss.
  • r mod cache size / line size or (v mod cache size) / line size is used as a map function. Then the complete virtual address does not need to be stored in the cache, but r / cache size or v / cache size is sufficient.
  • Direct-mapped caches are simpler, but lead to higher miss rates than n-way caches. In principle, these consist of n correspondingly smaller direct-mapped cache blocks. This ensures that each main memory element is in at most one block. Since the map function indexes n cache lines in each case, up to n elements with map-equivalent addresses can be contained in the cache. This n-fold associativity reduces the probability of clashes and increases the hit rate accordingly.
  • the cache type that is favored today is virtually indexed and real (physically) marked. It is 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 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.
  • a virtually indexed and real marked cache allows opposite, allow TLB and cache access to run in parallel (see FIG. 7).
  • the instruction pipeline of the processor is therefore shorter, so that the latency of an instruction generally drops by one clock and the processor performance increases accordingly.
  • the mechanism remains simple as long as the address bits (i) required for indexing the cache are all within the range of the address offset (address within one page). Since this address part is not changed by the conversion of the virtual address into the real address, the cache can also be addressed (indexed) before the conversion step of the TLB. Only at the end of the cache access and parallel TLB conversion step is it checked whether the real address associated with the cache entry (the marking) matches the real address provided by the TLB.
  • the higher-order bits of the address following the index part (i) need to be compared, since the cache entry indexed by (i) can only be associated with addresses whose index bits have the value (i). Accordingly, only the higher-order bits need to be stored in the cache as a marker (real address).
  • An n-way associative cache of this type can be up to nx 2 P , where 2 P is the page size.
  • the cache can be enlarged by larger pages or increased associativity.
  • a more interesting technique is page coloring. This describes the process 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. 8).
  • 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.
  • Color bits are omitted and only the higher order bits (r ') of the real page number with the
  • a cache should also work if the allocation is not perfectly true to color. If the first cache access therefore leads to a miss and the real color c 'supplied by the TLB differs from the virtual color c, a color-corrected cache access is attempted by the cache with the cache index (i) and the real color c 'supplied by the TLB (instead of the virtual color c used in the first cache access) is addressed (see FIG. 10). Incorrectly colored pages can therefore be used, but require an additional step in cache access (see FIG. 11).
  • the invention is based on the object of creating a memory architecture which makes it possible to allocate significantly more pages in real memory in true-to-color fashion than in a conventional real memory architecture.
  • the color of at least some real memory pages should be freely determinable by the operating system, so that the real memory can have different pages per color.
  • the invention proposes a storage device for storing data which is provided with a cache memory which can be indexed by an address of a virtual or real address space, a page offset address part and a page number representing a page number -Adreß ⁇ part, which comprises group information and a residual address part, the group information indicates one of several groups to which the page represented by the page number address part of the address belongs, and wherein the cache Memory can be indexed by at least a part of the page offset address part and by the group information of the address, and a real memory which can only be indexed by the remaining address part and the page offset address part and possibly part of the group information of the address.
  • the group information of the address with which the storage device according to the invention is accessed is the color mentioned above.
  • the page offset address part determines the address within a page. At least a part of this page offset address part and the group information are used together as a cache index part of the address for indexing the cache.
  • the group information is not used or is used only partially for indexing the real memory. Thus, only those pages are reserved in the real memory with a color reserved for an application that are actually required for the application. The utilization of the real memory is thus improved, since all other pages can now be used for applications running in parallel. Only the group information and the page offset address part or a part thereof are used for indexing the cache memory.
  • the address space has at least one first and at least one second address area and that the complete address is used for indexing the real memory by means of an address of the at least one first address area, while for indexing the real memory by means of an address of the at least one second address range, only the remaining address part, the page offset address part and possibly part of the group information of the address is used.
  • the real memory can be indexed in the manner according to the invention.
  • the address is preferably a real address.
  • the address can be a virtual address; in this case the cache memory can be indexed by part of the page offset address part and by the group information of the virtual address and the real memory by the remaining address part of a real address converted from the virtual address and the page offset address part of the virtual address and if necessary, part of the group information of the real address converted from the virtual address can be indexed.
  • the address space includes pages of the same size or different sizes.
  • the length of the page offset address part and the group information are variable in each case with the same overall length of the addresses.
  • the address space comprises a plurality of address areas, the addresses of which have page offset address parts of different lengths and / or group information, it being true for each address area that the length of the page offset address parts of all addresses is the same and the length of the group information of all Addresses are identical to one another, and that for indexing the real memory by means of an address of the address areas the respective remaining address part and the respective page offset address part as well as possibly part of the respective group information of the address is used.
  • the difference- Different address areas are assigned to each page size of the address space. In other words, the page size is determined by the address area.
  • the address areas can be mapped to separate and / or overlapping memory areas of the real memory.
  • the length of the page offset address part and group information is specified, e.g. is stored in a memory and is supplied by it. This eliminates the fixed assignment of page sizes to address areas.
  • FIG. 3 shows a representation of a restricted coloring based on the conversion of the address of the real address space into the address used for addressing the real memory
  • FIG. 6 shows a schematic illustration of a virtually identified and virtually marked cache memory
  • FIG. 8 shows a schematic illustration of a cache memory based on true-color allocation
  • a real memory comprising m pages can be regarded as an m / C-way associative system. It can hold a total of m entries, but only a maximum of m / c entries of each color.
  • Such systems can be significantly improved with a supplementary, small, fully associative cache.
  • This supplementary cache can take up color so that it can take up to j overflows of the m / c associative cache. (If k > m / c entries of a color are required, these are k - m / c overflows.)
  • the overall system can generally use a significantly higher proportion of the real memory without violating the rule of color-correct allocation.
  • a j page large (contiguous) part of the physical memory is required, which can accommodate j pages with any real color.
  • one or more contiguous areas of the real address space are mapped 1: 1 to the physically available memory. No physical memory is then allocated to the remaining real address space.
  • this area then begins at the real address 2 u * t a and is 2 u ⁇ t bytes in size. Accordingly, it is assumed that the allocated physical memory starts at the physical address 2 u * s a 'and is 2 s j bytes long (a' is a bit string longer than a by t - s bits).
  • a real address r to be converted then consists of the higher-order part with the value a, a field b consisting of u bits which identifies the box, a field c consisting of t-x bits (filled in black in the figure) which contains the real color, and the field x, which specifies the offset within the page.
  • the converted address r ' is created by taking over the offset field x unchanged, taking over the box field b by t - s bits shifted to the right, - replacing the remaining (higher value) part with the value a'.
  • the field b can also be formed from high-order or non-contiguous bits.
  • A be the base address of the freely colorable area of the real address space and A 'the base address of the allocated part of the physical memory.
  • a real address r is converted if A ⁇ r ⁇ A + 2 s j.
  • Non-aligned base addresses can also be used in all of the following cases.
  • CTU Color Translation Unit
  • bits of the color field c are used to form b (the most significant or others).
  • the CTU is indexed with b and delivers ab '.
  • a memory with j (or more) entries can be used as the CTU.
  • Access can also be accelerated (for larger j) using a CTU cache (similar to a TLB).
  • One or more of the methods described in 3.1 is used per page size. There is then a dedicated, freely colorable area of the real address space for each page size.
  • the corresponding parts of the physical memory can be separate, but can also overlap.
  • a freely colorable area in the real address space is used for all page sizes.
  • the conversion logic also receives the page size in addition to the real address.
  • the offset field x is then determined dynamically based on the page size. In the case of a larger field x, the corresponding low-order bits of b or b 'are ignored. Instead, the more significant bits of the larger x are used.
  • the current page size can also dynamically determine the width of offset x, color field c and box field b, x and c together generally have a constant width, b is then dynamically shifted from c to the right according to the current width.

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

Die Speichervorrichtung zum Speichern von Daten ist mit einem Cache-Speicher versehen, der durch eine Adresse eines virtuellen oder realen Adreßraums indizierbar ist. Die Adresse weist einen Seitenoffset-Adreßteil sowie einen eine Seitennummuer repräsentierenden Seitennummer-Adreßteil auf, welcher eine Gruppeninformation und einen Rest-Adreßteil umfaßt. Die Gruppeninformation gibt eine von mehreren Gruppen an, zu der die durch den Seitennummer-Adreßteil der Adresse repräsentierte Seite gehört. Der Cache-Speicher ist durch mindestens einen Teil des Seitenoffset-Adreßteils und durch die Gruppeninformation der Adresse indizierbar. Der Realspeicher ist lediglich durch den Rest-Adreßteil und den Seitenoffset-Adreßteil der Adresse indizierbar.

Description

Speichervorrichtunc zum Speichern von Daten
Die Erfindung betrifft eine Realspeicherarchitektur, die es erlaubt, einen höheren Anteil von Seiten als bei einer konventionellen Architektur farbtreu zu allokie- ren.
Gewisse virtuell indizierte und real markierte Caches erlauben schnellen Cache-Zugriff des Prozessors nur, wenn die entsprechende Seite farbtreu allokiert ist. Ein erhöhter Anteil farbtreu allokierter Seiten kann dementsprechend Programme beschleunigen. Farbtreue Allokation kann auch für manche TLB-Architekturen vor¬ teilhaft sein und zur Minimierung von Cache-Clashes genutzt werden.
Desweiteren erlaubt die Realspeicherarchitektur belie¬ bige Färbung von Realseiten. Damit können große und real indizierte Caches, z.B. sekundäre Caches, flexibel nach Anwendungen partitioniert und damit in der Miss- Rate vorhersebar eingesetzt werden. Das ist besonders bei Realzeit- und Multimedia Anwendungen erwünscht. Eine weitere Anwendung ist die dynamische Konflikt- reduktion durch Umfärben von Seiten.
1. Konventionelle Speicher mit Cache
1.1 Reale und virtuelle Caches
Moderne Prozessoren benötigen Cache-Speicher, um die Lücke zwischen schnellen Prozessoren und langsamen Hauptspeichern auszugleichen.
Bekannt sind real und virtuelle indizierte Caches. Bei einem real indizierten Cache gemäß Fig. 5 wird die vom Prozessor gelieferte virtuelle Adresse v zuerst vom Translation-Lookaside-Buffer (TLB) in eine Realadresse r umgesetzt. Danach wird der Cache mit dieser Real¬ adresse r angesprochen. Bei einem virtuell indizierten Cache gemäß Fig. 6 wird der Cache direkt mit der vir- tuellen Adresse v angesprochen. Eine Umsetzung in die entsprechende Realadresse r erfolgt nur bei einem Cache-Miss. Der Vorteil eines virtuelle indizierten Caches ist die höhere Geschwindigkeit, da der Umsetz¬ schritt durch den TLB entfällt. Sein Nachteil tritt bei Synonymen bzw. Aliasing auf.
1.2 Direct-mapped und n-Wege assoziative Caches
Bei direct-mapped Caches wird (wie in den Fign. 5 und 6 gezeigt) mit Hilfe einer map-Funktion aus der realen Adresse r oder virtuellen Adresse v ein Cache-Index be¬ rechnet und damit eine Zeile des Caches angewählt . Dann wird r bzw. v mit der Adresse des augenblicklich mit dieser Cache-Zeile assoziierten Speicherbereichs (der Markierung des Cache-Eintrags) verglichen. Bei Gleich- heit liegt ein Treffer vor (und die Cache-Zeile wird anstelle des Hauptspeichers benutzt) , sonst ein Miss.
Meistens wird (r mod Cache-Größe) /Zeilengröße bzw. (v mod Cache-Größe) /Zeilengröße als map-Funktion benutzt. Dann braucht im Cache nicht die vollständige virtuelle Adresse gespeichert zu werden, sondern es reicht r/Cache-Größe bzw. v/Cache-Größe.
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-Zeilen 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.
1.3 Virtuell indizierte und real markierte Caches
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.
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, TLB- und Cache-Zugriff parallel ablaufen zu lassen (siehe Fig. 7) . Die Befehls-Pipeline des Prozes¬ sors ist deshalb kürzer, so daß die Latenzzeit eines Befehls in der Regel um einen Takt sinkt und die Pro- zessorleistung entsprechend ansteigt.
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öherwerti¬ gen Bits als Markierung (reale Adresse) gespeichert zu sein.
Ein n-Wege assoziativer Cache dieses Typs kann bis zu n x 2P groß sein, wobei 2P die Seitengröße ist. Eine Ver¬ größerung des Caches kann durch größere Seiten oder er¬ höhte Assoziativität erreicht werden.
Eine interessantere Technik ist allerdings Page Colo- ring. Damit wird das Verfahren bezeichnet, Seiten immer so im Realspeicher anzulegen, daß die niederwertigen Adreßbits von virtueller und realer Seitenadresse iden- tisch sind (siehe Fig. 8) . Virtuelle Seitennummer (vpn) und Cache-Index (i) überschneiden sich hierbei. Der überlappende Teil ist in der Fig. 8 schwarz darge¬ stellt. Der entsprechende Teil der virtuellen Adresse wird virtuelle Farbe c, der der realen Adresse reale Farbe c' genannt. Bei farbtreuer Allokation, d.h. wenn virtuelle und reale Farbe übereinstimmen, wird die oben erwähnte Größenbegrenzung n x 2P aufgehoben.
Wenn, wie in Fig. 9 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.
Natürlich soll ein Cache auch bei nicht perfekt farb¬ treuer Allokation funktionieren. Wenn deshalb der erste Cache-Zugriff zu einem Miss führt und die vom TLB ge¬ lieferte reale Farbe c' sich von der virtuellen Farbe c unterscheidet, wird ein farbkorrigierter Cache-Zugriff versucht, indem der Cache mit dem Cache-Index (i) und der vom TLB gelieferten realen Farbe c' (anstelle der beim ersten Cache-Zugriff verwendeten virtuellen Farbe c) adressiert wird (siehe Fig. 10) . Falsch kolorierte Seiten können also benutzt werden, benötigen aber einen zusätzlichen Schritt beim Cache-Zugriff (siehe Fig. 11) .
Man beachte, daß unter gewissen Umständen nicht farb- treue Allokation zwingend notwendig ist, z.B. wenn zwei virtuelle Seiten unterschiedlicher Farbe auf dieselbe Realseite abgebildet werden müssen. 1.4 Farbtreue Allokation im Realspeicher
Bei einer Seitengröße von 2E Bytes, einem konventionel¬ len Realspeicher von m x 2S Bytes und einem i-Wege as- soziativen Cache von i x 2L Bytes gibt es c = 2t_ε Far¬ ben (bei t > s) . Im Realspeicher können dann von jeder virtuellen Farbe bis zu m/c Seiten farbtreu allokiert werden.
Bei zufälliger und gleichmäßiger Verteilung der vir¬ tuellen Farben der im Realspeicher allokierten virtuel¬ len Seiten wird die Wahrscheinlichkeit, daß sich n <= m Seiten farbtreu anordnen lassen, schon sehr gering, wenn mehr als 50% des Realspeichers genutzt werden. Farbtreue Allokation schränkt den Anteil des nutzbaren Realspeichers also ein. Bei einem System mit 4 M Real¬ speicher und 4 K Seiten liegt die Grenze beispielsweise im Fall eines i x 128 K Caches bei 50%, im Fall eines i x 64 K Caches bei 60%.
1.5 Vorhersagbare Cache-Miss-Raten
Da Daten aus unterschiedlich gefärbten Seiten auch auf unterschiedliche Teile des Caches abgebildet werden, treten nie Cache-Konflikte zwischen Daten aus Seiten unterschiedlicher Farbe auf.
Gibt man beispielsweise einer Realzeitanwendung nur "gelbe" Realseiten und keiner anderen Anwendung "gelbe" Realseiten, wird die Cache-Miss-Rate dieser Anwendung von allen anderen gleichzeitig aktiven Anwendungen un¬ abhängig, d.h. vorhersagbar. Leider wären bei einer konventionellen Speicherarchitektur damit alle "gelben" Realseiten blockiert. Bei 4 Farben (c = 4) würde damit eine beliebig kleine Realzeitanwendung schon 25% des physischen Speichers blockieren.
1.6 Konfliktreduktion
Sollen Cache-Konflikte dynamisch reduziert werden, müs¬ sen Seiten "umgefärbt" werden können. In konventionel¬ len Architekturen erfordert das die physische Kopie einer Seite, da die Farbe jeder Realseite unveränder- lieh zugeordnet ist.
2. Aufgäbe / Lösung
Der Erfindung liegt die Aufgabe zugrunde, eine Speicherarchitektur zu schaffen, die es ermöglicht, deutlich mehr Seiten im Realspeicher farbtreu zu allo- kieren, als bei einer konventionellen Realspeicher¬ architektur. Außerdem soll die Farbe mindestens einiger Realspeicherseiten frei durch das Betriebssystem be¬ stimmbar sein, so daß der Realspeicher pro Farbe unter¬ schiedlich viele Seiten haben kann.
Zur Lösung dieser Aufgabe wird mit der Erfindung eine Speichervorrichtung zum Speichern von Daten vorgeschla¬ gen, die versehen ist mit einem Cache-Speicher, der durch eine Adresse eines virtuellen oder realen Adreßraums indizierbar ist, die einen Seitenoffset-Adreßteil sowie einen eine Seitennummer repräsentierenden Seitennummer-Adre߬ teil aufweist, welcher eine Gruppeninformation und einen Rest-Adreßteil umfaßt, wobei die Gruppenin¬ formation eine von mehreren Gruppen angibt, zu der die durch den Seitennummer-Adreßteil der Adresse repräsentierte Seite gehört und wobei der Cache- Speicher durch mindestens einen Teil des Seiten¬ offset-Adreßteils und durch die Gruppeninformation der Adresse indizierbar ist, und einem Realspeicher, der lediglich durch den Rest- Adreßteil und den Seitenoffset-Adreßteil und ge¬ gebenenfalls einen Teil der Gruppeninformation der Adresse indizierbar ist.
Bei der Gruppeninformation der Adresse, mit der auf die erfindungsgemäße Speichervorrichtung zugegriffen wird, handelt es sich um die oben erwähnte Farbe. Der Seiten¬ offset-Adreßteil bestimmt die Adresse innerhalb einer Seite. Zumindest ein Teil dieses Seitenoffset-Adre߬ teils und die Gruppeninformation werden zusammen als Cache-Indexteil der Adresse zur Indizierung des Caches benutzt. Zur Indizierung des Realspeichers wird hin¬ gegen die Gruppeninformation nicht oder lediglich teil¬ weise verwendet. Damit werden im Realspeicher lediglich diejenigen Seiten mit einer für eine Anwendung reser- vierten Farbe versehen, die für die Anwendung tatsäch¬ lich benötigt werden. Die Auslastung des Realspeichers ist damit verbessert, da nun für parallel ablaufende Anwendungen sämtliche, anderen Seiten einsetzbar sind. Für die Indizierung des Cache-Speichers werden aus- schließlich die Gruppeninformation und der Seitenoff¬ set-Adreßteil bzw. ein Teil davon verwendet.
In vorteilhafter Weiterbildung der Erfindung ist vorge¬ sehen, daß der Adreßraum mindestens einen ersten und mindestens einen zweiten Adreßbereich aufweist und daß zur Indizierung des Realspeichers mittels einer Adresse des mindestens einen ersten Adreßbereichs die vollstän¬ dige Adresse verwendet wird, während zur Indizierung des Realspeichers mittels einer Adresse des mindestens einen zweiten Adreßbereichs lediglich der Rest-Adreß- teil, der Seitenoffset-Adreßteil und gegebenenfalls ein Teil der Gruppeninformation der Adresse verwendet wird. Bei dieser Weiterbildung ist also lediglich ein Teil des Realspeichers in erfindungsgemäßer Weise indizier- bar.
Vorzugsweise ist die Adresse eine reale Adresse. Alter¬ nativ dazu kann die Adresse eine virtuelle Adresse sein; in diesem Fall ist der Cache-Speicher durch einen Teil des Seitenoffset-Adreßteils und durch die Gruppen¬ information der virtuellen Adresse indizierbar und der Realspeicher durch den Rest-Adreßteil einer aus der virtuellen Adresse umgesetzten realen Adresse und den Seitenoffset-Adreßteil der virtuellen Adresse sowie gegebenenfalls einen Teil der Gruppeninformation der aus der virtuellen Adresse umgesetzten realen Adresse indizierbar.
Grundsätzlich ist es möglich, daß der Adreßraum gleich große oder unterschiedlich große Seiten umfaßt. Im erstgenannten Fall gilt dann also, daß bei gleichblei¬ bender Gesamtlänge der Adressen die Längen des Seiten¬ offset-Adreßteils und der Gruppeninformation jeweils variabel sind. Hierbei ist es zweckmäßig, wenn der Adreßraum mehrere Adreßbereiche umfaßt, deren Adressen unterschiedlich lange Seitenoffset-Adreßteile und/oder Gruppeninformationen aufweisen, wobei für jeden Adreß- bereich gilt, daß die Länge der Seitenoffset-Adreßteile aller Adressen untereinander gleich und die Länge der Gruppeninformation aller Adressen untereinander gleich ist, und daß zur Indizierung des Realspeichers mittels einer Adresse der Adreßbereiche der jeweilige Rest- Adreßteil und der jeweilige Seitenoffset-Adreßteil sowie gegebenenfalls ein Teil der jeweiligen Gruppenin- formation der Adresse verwendet wird. Den unterschied- liehen Seitengrößen des Adreßraums sind jeweils unter¬ schiedliche Adreßbereiche zugeordnet. Mit anderen Wor¬ ten ist die Seitengröße durch den Adreßbereich be¬ stimmt. Dabei sind die Adreßbereiche auf voneinander getrennte und/oder einander überlappende Speicherbe¬ reiche des Realspeichers abbildbar.
Vorzugsweise ist vorgesehen, daß für jede Adresse des Adreßraums die Länge von Seitenoffset-Adreßteil und Gruppeninformation angegeben wird, z.B. in einem Speicher gespeichert ist und von diesem geliefert wird. Damit entfällt die feste Zuordnung von Seitengrößen zu Adreßbereichen.
Nachfolgend werden anhand von Figuren Ausführungsbei¬ spiele der Erfindung näher erläutert. Im einzelnen zei¬ gen:
Fig. 1 schematisch eine Gegenüberstellung des Real- adreßraums und des zugehörigen physischen Real- speichers bei erfindungsgemäßer Adressierung desselben,
Fig. 2 eine Darstellung der freien Kolorierung anhand der Umsetzung der Adresse des Realadreßraums in die zur Adressierung des Realspeichers verwen¬ dete Adresse,
Fig. 3 eine Darstellung einer eingeschränkten Kolorie- rung anhand der Umsetzung der Adresse des Real¬ adreßraums in die zur Adressierung des Real- speichers verwendete Adresse,
Fig. 4 eine Darstellung für dynamische Kolorierung anhand der Umsetzung der Adresse des Realadreß- rau s in die zur Adressierung des Realspeichers verwendete Adresse,
Fig. 5 eine schematische Darstellung eines real indi¬ zierten Cache-Speichers,
Fig. 6 eine schematische Darstellung eines virtuell inidzierten und virtuell markierten Cache-Spei¬ chers,
Fig. 7 eine schematische Darstellung eines virtuell inidzierten und real markierten Cache-Spei¬ chers,
Fig. 8 eine schematische Darstellung eines auf farb¬ treuer Allokation basierenden Cache-Speichers,
Fig. 9 eine schematische Darstellung eines Cache-Spei¬ chers mit Prüfung der Farbtreue,
Fig. 10 eine Darstellung eines Farbkorrektur-Schrittes und
Fig. 11 eine Darstellung des Zugriffsschrittes.
3. Realspeicher mit frei kolorierbarem Bereich
Bei c Farben und farbtreuer Allokation kann man einen m Seiten umfassenden Realspeicher als ein m/C-Wege asso¬ ziatives System auffassen. Es kann insgesamt m Einträge aufnehmen, aber von jeder Farbe nur höchstens m/c Ein¬ träge. Solche Systeme können durch einen ergänzenden, kleinen, voll-assoziativen Cache erheblich verbessert werden. Dieser Ergänzungscache kann j Einträge beliebi- ger Farbe aufnehmen, so daß er bis zu j Überläufe des m/c-assoziativen Caches aufnehmen kann. (Werden k > m/c Einträge einer Farbe benötigt, sind das k - m/c Über¬ läufe.) Damit kann das Gesamtsystem in der Regel einen deutlich höheren Anteil des Realspeichers nutzen, ohne gegen die Regel der farbtreuen Allokation zu verstoßen.
Bei einem System mit 4 M Realspeicher, 4 K Seiten und einem i x 128 K Cache liegt die Grenze beispielsweise im Fall von 32 K frei färbbaren Seiten (j = 8) schon bei 70%. Mit 64 K (j = 16) werden fast 80%, mit 256 K (k = 64) fast 100% erreicht.
Zur Realisierung der obigen Architektur braucht man einen j Seiten großen (zusammenhängenden) Teil des physischen Speichers, der j Seiten mit beliebigen Real¬ farben aufnehmen kann.
3.1 Freie Kolorierbarkeit bei fester Seitengröße
Üblicherweise werden ein oder mehrere zusammenhängende Bereiche des Realadreßraums 1:1 auf den physisch vor¬ handenen Speicher abgebildet. Dem restlichen Realadreß- raum ist dann kein physischer Speicher zugeordnet.
Beim Realspeicher mit frei kolorierbarem Bereich wird jetzt nur ein Teil des physischen Speichers, nämlich m - j Seiten, derart 1 : 1-abgebildet. Die verbleibenden j Seiten des physischen Speichers werden dynamisch in einen ansonsten nicht genutzten Bereich des Realadre߬ raums mit einer Größe von j x c Seiten abgebildet . Ein Beispiel zeigt Fig. 1.
Bei einer Seitengröße von 2S Bytes, einem konventionel- len Realspeicher von m x 2S Bytes und einem i-Wege assoziativen Cache von i x 2t Bytes gibt es c = 2t_s Farben (bei t > s) . Der j x c Seiten große frei kolo¬ rierbare Bereich des Realadreßraums wird in j Boxen aufgeteilt, die jeweils c Seiten groß sind. Jede Box beginnt an einer 2t-ausgerichteten Realadresse (r mod 2C = 0) . Alle Seiten einer Box werden auf dieselbe Seite des physischen Speichers abgebildet. Ein Beispiel für eine solche Adreßumsetzung zeigt Fig. 2. Hier wird der Einfachheit halber angenommen, daß der frei kolo- rierbare Bereich des Realadreßraums dadurch identifi¬ ziert wird, daß die höherwertigen Bits der Realadresse den Wert a haben. Für 2U_1 < j < 2U, mit u gleich der Länge von b, beginnt dieser Bereich dann bei der Real- adresse 2u*ta und ist 2u<t Bytes groß. Entsprechend wird angenommen, daß der zugeordnete physische Speicher bei der physischen Adresse 2u*sa' beginnt und 2sj Bytes groß ist (a' ist ein um t - s Bits längerer Bitstring als a) .
Eine umzusetzende Realadresse r besteht dann aus dem höherwertigen Teil mit dem Wert a, einem aus u Bits bestehenden Feld b, das die Box identifiziert, einem aus t - x Bits bestehenden Feld c (in der Figur schwarz gefüllt) , das die Realfarbe enthält, und dem Feld x, das den Offset innerhalb der Seite angibt. Die umge¬ setzte Adresse r' entsteht, indem das Offset Feld x unverändert übernommen wird, das Box-Feld b um t - s Bits nach rechts geshiftet übernommen wird, - der restliche (höherwertige) Teil durch den Wert a' ersetzt wird.
Wie man sieht, verschwindet die Realfarbe c dabei voll¬ ständig. Pro Box kann sinnvollerweise nur eine Seite genutzt werden, aber die Wahl dieser Seite (und damit ihrer Realfarbe) ist beliebig. Somit können Seiten beliebiger Farbe in einem auch nur j Seiten großen physischen Speicher untergebracht werden.
Diese hier als freie Kolorierung bezeichnete Umsetzung von realen in physische Adressen darf nicht mit der Umsetzung virtueller in reale Adressen verwechselt wer¬ den. Die freie Kolorierung erfolgt nur im Bereich freier Kolorierbarkeit und dort zusätzlich zur Um- setzung virtueller auf reale Adressen.
Man beachte, daß die hier vorgestellte Umsetzung im Gegensatz zur virtuellen Adreßumsetzung nicht bei jedem Zugriff des Prozessors notwendig ist, sondern nur bei Cache-Miss, Wπte Back oder Zugriffen am Cache vorbei. Man beachte außerdem, daß sie im wesentlichen nur eine geeignete Verdrahtung der Adreßleitungen erfordert, d.h. keine zusätzliche Zeit kostet.
Das Feld b kann auch aus höherwertigen oder nicht zu¬ sammenhangenden Bits gebildet werden.
Variante 1
Sei A die Basisadresse des frei kolorierbaren Bereichs des Realadreßraums und A' die Basisadresse des zugeord¬ neten Teils des physischen Speichers. A und/oder A' brauchen nicht 2u+t - respektive 2U*S - ausgerichtet zu sein. (Mindestens A sollte aber eine Seitenanfangs- adresse sein, d.h. 2ε-ausgerιchtet . )
Eine Realadresse r wird dann umgesetzt, wenn A < r < A + 2sj gilt . Die Felder b und x werden dann nicht aus r sondern aus r - A extrahiert und r' wird durch Addi- tion von A' gebildet: r' = A' + 2sb + x. Nicht ausgerichtete Basisadressen können analog auch in allen folgenden Fällen verwandt werden.
Variante 2
Um die Größe des benötigten Bereichs des Realadreßraums zu reduzieren, kann man die höherwertigen Bits der Farbe c mit zum Feld b nehmen, das die Box identifi¬ ziert (siehe Fig. 3) . Verwendet man k Bits der Real- färbe, wird nur noch ein Realadreßraum-Bereich der Größe 2u" +t benötigt. Andererseits bleiben k Bits der Realfarbe erhalten, d.h. in der Box i kann nicht mehr eine Seite beliebiger Farbe angelegt werden, sondern nur noch mit einer Farbe c -s- 2l ~ε 'k = i.
Statt der höchstwertigen Bits können auch andere k Bits von c verwandt werden.
Variante 3
Um die Größe des benötigten Bereichs des Realadreßraums ohne Einschränkung der freien Kolorierbarkeit zu redu¬ zieren, kann eine dynamische Umsetzung mit Hilfe einer Farb-Umsetz-Einheit (CTU, Color Translation Unit) er- folgen (siehe Fig. 4) . Auch hier werden Bits des Farb¬ feldes c zur Bildung von b herangezogen (die höchstwer¬ tigen oder andere) . Die CTU wird mit b indiziert und liefert ein b' . Als CTU kann ein Speicher mit j (oder mehr) Einträgen verwandt werden. Der Zugriff kann (bei größeren j) auch durch einen CTU-Cache (ähnlich einem TLB) beschleunigt werden. 3.2 Freie Kolorierbarkeit bei multiplen Seitengrößen
3.2.1 Einfache Lösung
Eines oder mehrere der in 3.1 beschriebenen Verfahren wird pro Seitengröße verwandt. Für jede Seitengröße gibt es dann einen dezidierten frei kolorierbaren Be¬ reich des Realadreßraums. Die entsprechenden Teile des physischen Speichers können getrennt sein, sich aber auch überlappen.
3.2.2 Aufwendige Lösung
Es wird ein frei kolorierbarer Bereich im Realadreßraum für alle Seitengrößen verwandt. Die Umsetzlogik erhält aber zusätzlich zur Realadresse auch die Seitengröße. Das Offset-Feld x wird dann anhand der Seitengröße dynamisch bestimmt. Bei größerem Feld x werden die ent¬ sprechenden niederwertigen Bits von b respektive b' ignoriert. Stattdessen werden die höherwertigen Bits des größeren x verwandt .
Alternativ kann auch die aktuelle Seitengröße dynamisch die Breite von Offset x, Farbfeld c und Boxfeld b be- stimmen, x und c zusammen haben dabei in der Regel eine konstante Breite, b wird dann dynamisch entsprechend der aktuellen Breite von c nach rechts geshiftet .

Claims

ANSPRUCHE
Speichervorrichtung zum Speichern von Daten, mit einem Cache-Speicher, der durch eine Adresse eines virtuellen oder realen Adreßraums indi¬ zierbar ist, die einen Seitenoffset-Adreßteil sowie einen eine Seitennummer repräsentierenden Seitennummer-Adreßteil aufweist, welcher eine Gruppeninformation und einen Rest-Adreßteil um¬ faßt, wobei die Gruppeninformation eine von mehreren Gruppen angibt, zu der die durch den Seitennummer-Adreßteil der Adresse repräsen¬ tierte Seite gehört und wobei der Cache-Spei¬ cher durch mindestens einen Teil des Seitenoff¬ set-Adreßteils und durch die Gruppeninformation der Adresse indizierbar ist, und einem Realspeicher, der lediglich durch den Rest-Adreßteil und den Seitenoffset-Adreßteil der Adresse indizierbar ist.
Speichervorrichtung nach Anspruch 1, dadurch ge¬ kennzeichnet, daß zur Adressierung des Realspei¬ chers auch ein Teil der Gruppeninformation ver¬ wendbar ist.
Speichervorrichtung nach Anspruch 1 oder 2, da¬ durch gekennzeichnet, daß der Adreßraum mindestens einen ersten und mindestens einen zweiten Adreßbe- reich aufweist und daß zur Indizierung des Real¬ speichers mittels einer Adresse des mindestens einen ersten Adreßbereichs die vollständige Adres¬ se verwendet wird, während zur Indizierung des Realspeichers mittels einer Adresse des mindestens einen zweiten Adreßbereichs lediglich der Rest- Adreßteil, der Seitenoffset-Adreßteil und gegebe¬ nenfalls ein Teil der Gruppeninformation der Adresse verwendet wird.
4. Speichervorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Adresse eine reale Adresse ist.
5. Speichervorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Adresse eine virtuelle Adresse ist, wobei der Cache-Speicher durch einen Teil des Seitenoffset-Adreßteils und durch die Gruppeninformation der virtuellen Adres¬ se indizierbar ist und der Realspeicher durch den Rest-Adreßteil einer aus der virtuellen Adresse umgesetzten realen Adresse und den Seitenoffset- Adreßteil der virtuellen Adresse sowie gegebenen¬ falls einen Teil der Gruppeninformation der aus der virtuellen Adresse umgesetzten realen Adresse indizierbar ist.
6. Speichervorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß bei gleichbleiben¬ der Gesamtlänge der Adressen die Längen des Sei¬ tenoffset-Adreßteils und der Gruppeninformation jeweils variabel sind.
7. Speichervorrichtung nach Anspruch 6, dadurch ge¬ kennzeichnet, daß der Adreßraum mehrere Adreßbe¬ reiche umfaßt, deren Adressen unterschiedlich lange Seitenoffset-Adreßteile und/oder Gruppenin¬ formationen aufweisen, wobei für jeden Adreßbe- reich gilt, daß die Länge der Seitenoffset-Adreß- teile aller Adressen untereinander gleich und die Länge der Gruppeninformation aller Adressen unter- einander gleich ist, und daß zur Indizierung des Realspeichers mittels einer Adresse der Adreßbe¬ reiche der jeweilige Rest-Adreßteil und der jewei¬ lige Seitenoffset-Adreßteil sowie gegebenenfalls ein Teil der jeweiligen Gruppeninformation der Adresse verwendet wird.
8. Speichervorrichtung nach Anspruch 7, dadurch ge¬ kennzeichnet, daß die Adreßbereiche auf voneinan¬ der getrennte Speicherbereiche des Realspeichers abbildbar sind.
9. Speichervorrichtung nach Anspruch 7, dadurch ge¬ kennzeichnet, daß die Adreßbereiche auf einander überlappende Speicherbereiche des Realspeichers abbildbar sind.
10. Speichervorrichtung nach Anspruch 6, dadurch ge¬ kennzeichnet, daß für jede Adresse des Adreßraums die Länge von Seitenoffset-Adreßteil und Gruppen¬ information angegeben wird.
PCT/EP1995/004103 1994-10-22 1995-10-19 Speichervorrichtung zum speichern von daten WO1996013005A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8513638A JPH09507599A (ja) 1994-10-22 1995-10-19 データ格納装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4437866 1994-10-22
DEP4437866.1 1994-10-22

Publications (1)

Publication Number Publication Date
WO1996013005A1 true WO1996013005A1 (de) 1996-05-02

Family

ID=6531495

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1995/004103 WO1996013005A1 (de) 1994-10-22 1995-10-19 Speichervorrichtung zum speichern von daten

Country Status (3)

Country Link
JP (1) JPH09507599A (de)
DE (1) DE19538961C2 (de)
WO (1) WO1996013005A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5293611B2 (ja) * 2007-12-12 2013-09-18 日本電気株式会社 メモリ再配置システム
WO2009110446A1 (ja) * 2008-03-04 2009-09-11 日本電気株式会社 メモリマッピング方法、メモリシステム
JP5196249B2 (ja) * 2008-06-10 2013-05-15 日本電気株式会社 キャッシュメモリを利用するためのメモリシステム、その方法及びそのプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19512745A1 (de) * 1994-04-15 1995-10-26 Mathematik Und Datenverarbeitu Cache-Speichervorrichtung zum Speichern von Daten

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KESSLER R E ET AL: "PAGE PLACEMENT ALGORITHMS FOR LARGE REAL-INDEXED CACHES", ACM TRANSACTIONS ON COMPUTER SYSTEMS, vol. 10, no. 4, 1 November 1992 (1992-11-01), NEWYORK; US, pages 338 - 359, XP000336442 *
TAYLOR ET AL.: "The TLB slice -- a low-cost high-speed address translation mechanism", THE 17TH ANNUAL INTERNATINAL SYMPOSIUM ON COMPUTER ARCHITECTURE, 28 May 1990 (1990-05-28), SEATTLE, US, pages 355 - 363 *

Also Published As

Publication number Publication date
JPH09507599A (ja) 1997-07-29
DE19538961C2 (de) 1997-03-20
DE19538961A1 (de) 1996-05-02

Similar Documents

Publication Publication Date Title
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2227882C2 (de) Virtuelle Speicheranordnung
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE2725718C2 (de) Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE2260353A1 (de) Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE2226382A1 (de) Datenverarbeitungsanlage
DE69815482T2 (de) Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
DE19602872A1 (de) Verfahren zum Betreiben einer Adreßumsetzvorrichtung
EP0756729A1 (de) Cache-speichervorrichtung zum speichern von daten
WO1995028678A1 (de) Cache-speichervorrichtung zum speichern von daten
DE112017007323T5 (de) Cache-speicher und verfahren zur steuerung desselben
WO1996013005A1 (de) Speichervorrichtung zum speichern von daten
DE3832758C2 (de) Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers
EP1675010A2 (de) Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem
DE3216238C1 (de) Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers
DE4439809C2 (de) Virtuell indizierbarer Cache-Speicher
DE4429905C1 (de) Verfahren zum Betrieb eines virtuellen Speichers
DE19512745A1 (de) Cache-Speichervorrichtung zum Speichern von Daten
DE19504483A1 (de) Cache-Speichervorrichtung zum Speichern von Daten
DE4325729C2 (de) Hierarchische Speicheranordnung für ein Multiprozessorsystem
DE10260606B4 (de) Vorrichtung zur Übersetzung mehrerer virtueller Adressen auf eine einzige physikalische Adresse

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

ENP Entry into the national phase

Ref country code: US

Ref document number: 1996 666298

Date of ref document: 19960620

Kind code of ref document: A

Format of ref document f/p: F

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase