DE69229667T2 - Simulierte cachespeicher-assoziativität - Google Patents
Simulierte cachespeicher-assoziativitätInfo
- Publication number
- DE69229667T2 DE69229667T2 DE69229667T DE69229667T DE69229667T2 DE 69229667 T2 DE69229667 T2 DE 69229667T2 DE 69229667 T DE69229667 T DE 69229667T DE 69229667 T DE69229667 T DE 69229667T DE 69229667 T2 DE69229667 T2 DE 69229667T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- main memory
- pages
- data
- cache misses
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 98
- 238000000034 method Methods 0.000 claims description 23
- 238000005070 sampling Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/653—Page colouring
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)
Description
- Diese Erfindung bezieht sich auf das Betreiben eines Computers und insbesondere auf ein Verfahren zur Simulation der Leistung eines teilassoziativen Cache, indem in einem Computer, der einen virtuellen Speicher benutzt, ein Direct-Mapped-Cache verwendet wird.
- Mit steigender Geschwindigkeit der Prozessoren wird die Verwendung von schnellen Cache-Speichern in Computersystemen immer wichtiger. Zum Beispiel kann ein schneller RISC-Prozessor des Typs, der in der kanadischen Vorveröffentlichung 2.045.833-0 offenbart ist, so aufgebaut sein, daß er bei einer CPU-Zykluszeit von 5 ns arbeitet und während jedes Zyklus einen Befehl ausführt (aufgrund des realisierten Konzepts des Computers mit vermindertem Befehlssatz (RISC)). Wenn der Hauptspeicher eine Zykluszeit von 300 ns hat, kann errechnet werden, daß die CPU 95% ihrer Zeit damit verbringt, auf den Speicher zu warten, wenn Cache-Trefferraten benutzt werden, die gegenwärtig typisch sind. Um die Leistungsfähigkeit des Speichers an die der CPU anzupassen, wird der Cache- Speicher hierarchisch aufgebaut, indem Caches mit ersten, zweiten und in einigen Fällen dritten Ebenen vorgesehen werden, wobei die Geschwindigkeit der Cache-Speicher selbstverständlich nur erhöht wird, soweit dies wirtschaftlich ist. Dennoch muß die Trefferrate des Cache erhöht werden, um eine annehmbare Leistung für diese schnellen CPUs zu erzielen.
- Cache-Speicher sind entweder in einer Direct-Mapped- Architektur oder N-Wege-assoziativ aufgebaut. Ein Direct- Mapped-Cache ermöglicht, daß ein gegebenes Datenelement an nur einer Stelle im Cache gespeichert wird, weswegen die Trefferrate geringer ist, der Vorteil eines Direct- Mapped-Cache besteht jedoch darin, daß die Schaltung einfach und sehr schnell ist. Ein N-Wege-Assoziativ-Cache gestattet, daß ein gegebenes Datenelement an irgendeiner von N unterschiedlichen Stellen im Cache gespeichert wird, und dies erzeugt eine höhere Trefferrate als bei einem Direct-Mapped-Cache der gleichen Größe. Die höhere Trefferrate eines N-Wege-Assoziativ-Cache ist ein Ergebnis der erhöhten Flexibilität bei der Plazierung von Informationen im Cache.
- Aus IBM TDB Bd. 32, N.8A, Jan 90, S. 334-337 "Pages allocation control", ist ein Verfahren bekannt, um das Cache-Trefferverhältnis eines Computersystems durch die Steuerung der physikalischen Seitenzuweisung zu verbessern, indem eine Aktivitätsüberwachungsschaltung benutzt wird. Die Cache-Aktivitätsüberwachungsschaltung ist ein an die Cache-Managementhardware angefügter Teil der Hardwareschaltung. Sie besteht aus Ereigniszählern, die die jeweilige Anzahl der Zugriffe und der Zeilen- Ersetzungen für jede Seite innerhalb des Cache zählen. Ein Aktivitätsüberwachungsprogramm liest periodisch in der Überwachungshardware und berechnet die Anzahl der Cache-Zugriffe und das Ersetzungsverhältnis (Anzahl der Ersetzungen/Anzahl der Zugriffe) für jede Seite auf der Grundlage der Anzahl, die von der Hardware erhalten wird. Sie speichert die jeweilige Gesamtanzahl der Zugriffe und die Ersetzungsverhältnisse aller Cache-Seiten über den unmittelbar vergangenen Zeitabschnitt, so daß sich das Seitenzuweisungsunterprogramm auf diese beziehen kann.
- Aus IBM TDB Bd. 25, Nr. 11b, April 83, S. 5978-5980, Rechtschaffen, "Cache history table", ist eine analoge Technik zur Reduzierung des Mehraufwands bekannt, der mit einem Cache-Nichttreffer verbunden ist.
- Es wäre wünschenswert, einen Direct-Mapped-Cache wegen der Geschwindigkeit und des einfachen Aufbaus dieses Cache-Typs in einem Hochleistungs-Computersystem verwenden zu können, um noch höhere Cache-Trefferraten als jene zu erzielen, die N-Wege-Assoziativ-Caches inhärent sind.
- Die Erfindung ist in ihrer Gesamtheit in den Ansprüchen 1 und 7 definiert. Weitere Ausführungen sind in den Unteransprüchen definiert.
- Gemäß einer Ausführung der Erfindung wird ein Computersystem, das einen Direct-Mapped-Cache aufweist, in einer Weise betrieben, um die Wirkung eines teilassoziativen Cache zu simulieren. Dieses Verfahren ist bei einer CPU nützlich, die ein Betriebssystem mit virtuellem Speichertyp ausführt, bei dem Daten seitenweise behandelt werden und über physikalische Adressen auf den Cache zugegriffen wird. Das Verfahren beinhaltet das Erfassen von Cache- Nichttreffern und darauffolgend die Neuabbildung der Seiten, die die Adressen der erfaßten Cache-Nichttreffer enthalten, im Hauptspeicher, so daß Speicherbezüge, die Zeitverschwendung verursachen, dann auch im Cache vorhanden sein können. Zwei Speicheradressen, die in unterschiedlichen physikalischen Seitenrahmen liegen, die aber auf den gleichen Platz im Cache abbilden, können sich nicht zur gleichen Zeit im Direct-Mapped-Cache befinden; abwechselnde Bezugnahmen auf diese zwei Adressen durch eine Aufgabe, die in der CPU ausgeführt wird, würde Zeitverschwendung verursachen. Wenn jedoch der Platz einer dieser Adressen im Hauptspeicher geändert wird, können die Datenelemente, die diese Adressen aufweisen, auch im Cache vorhanden sein, und die Leistungsfähigkeit wird beträchtlich verbessert sein, da sich keine Zeitver schwendung mehr ergibt. Für eine CPU, die ein Betriebssystem mit virtuellem Speicher ausführt, kann eine Seite mit Daten oder Befehlen zu einem anderen physikalischen Seitenrahmen bewegt werden, jedoch weiterhin die gleiche virtuelle Adresse haben. Dies wird durch einfache Aktualisierung der seitenabbildenden Tabellen realisiert, um den neuen physikalischen Platz der Seite wiederzugeben, und durch das Kopieren der Daten vom alten zum neuen Seitenrahmen. Der Zustand der Zeitverschwendung wird erkannt und durch die Zwischenspeicherung der Cache- Nichttrefferadressen und die periodische Abfrage des Zwischenspeichers und daraufhin durch die Neuabbildung von Seiten, die die bei der Abfrage gefundenen Adressen enthalten, dynamisch korrigiert. Der Direct-Mapped-Cache muß groß genug sein, um zwei oder mehr Seiten zu halten. Für einen Cache, der wesentlich mehr als vier Seiten hält, kann die simulierte Technik der Erfindung eine höhere Assoziativität erzielen als es typischerweise bei hardwaremäßiger Realisierung wirtschaftlich ist.
- Ein genaueres Verständnis der Erfindung kann aus der folgenden genauen Beschreibung spezieller beispielhafter Ausführungen gewonnen werden, wenn diese in Verbindung mit der beigefügten Zeichnung gelesen wird, worin:
- Fig. 1 ein elektrischer Blockschaltplan eines Computersystems ist, das die Merkmale einer Ausführung der Erfindung verwenden kann;
- Fig. 2 ein Diagramm der Speicherabbildung für ein virtuelles Speicherschema ist, das im System von Fig. 1 verwendet werden kann;
- Fig. 3 ein Schaltplan eines Cache-Speichers ist, der im System von Fig. 1 unter Verwendung der Erfindung benutzt wird;
- Fig. 4 ein Diagramm eines Teils der Hauptspeicherabbildung ist, wenn die Seitennummerauslagerungsoperation gemäß einer Ausführung der Erfindung ausgeführt wird;
- die Fig. 5a und 5b Diagramme von Cache-Nichttreffern sind, die in einer Darstellung der Cache-Adresse gegenüber der Zeit gezeigt werden, für ein System, das die Erfindung verwendet, und für ein weiteres System, das die Erfindung nicht verwendet.
- In Fig. 1 ist ein Computersystem dargestellt, das das Cache-Assoziativitätsverfahren der Erfindung verwenden kann. Eine CPU 10 ist über einen Cache-Controller 12 und einen CPU-Bus 13 an einen Systembus 11 gekoppelt. Ein Hauptspeicher 14 ist mit dem Systembus 11 verbunden, der auf den Hauptspeicher zugreift, und ein Cache-Speicher 15 ist mit dem Cache-Controller 12 verbunden, deswegen wird durch den CPU-Bus 13 direkt auf den Cache-Speicher zugegriffen. Die CPU 10 enthält ein virtuelles Speichermanagementsystem, etwa jenes, das durch die Betriebssysteme UNIXTM oder VAX/VMSTM bereitgestellt wird, wobei Seiten von Daten zwischen dem physikalischen Speicher, der durch den Hauptspeicher 14 dargestellt wird, und einem Nebenspeicher in Form eines Plattenspeichers 16 ausgelagert werden. Die VAX-Architektur wird durch Levy und Eckhouse in "Computer Programming and Architecture: The VAX", 2. Ausgabe, Digital Press, 1989 beschrieben, das hier durch Literaturhinweis eingefügt ist. Die CPU 10 kann vom Typ VAXTM sein, wie im Text von Levy u. a. oder im US- Patent 5.006.980 offenbart, das an Sander, Uhler & Brown erteilt wurde und auf Digital Equipment Corporation, den Anmelder dieser Erfindung, lautet, oder kann vorzugsweise ein verbesserter 64-Bit-RISC-Typ sein, wie in der kanadischen Patentvorveröffentlichung 2.045833-0 offenbart, die ebenfalls auf Digital Equipment Corporation lautet.
- Die CPU 10 erzeugt Speicherbezüge, indem zunächst eine virtuelle Adresse gebildet wird, die, wie in Fig. 2 ersichtlich, die Adresse innerhalb des gesamten Adressbereichs 17 darstellt, der durch die Architekturspezifikationen des Computers oder jenem Teil von ihm, der durch das Betriebssystem ermächtigt ist, definiert wird, und indem nachfolgend die virtuelle Adresse in eine physikalische Adresse in einer Adressenabbildung 18 übersetzt wird, die durch die Größe des Hauptspeichers 14 beschränkt ist. Die Übersetzung erfolgt seitenweise, deswegen wird eine virtuelle Seitenadresse für eine Seite 19 in der virtuellen Speicherabbildung 17 in eine physikalische Adresse 19' für eine Seite in der physikalischen Speicherabbildung 18 übersetzt. Im Speicher wird eine Seitentabelle geführt, um die Übersetzung zwischen virtueller Adresse und physikalischer Adresse zu gewährleisten, und gewöhnlich ist ein Übersetzungspuffer 20, der in Fig. 1 ersichtlich ist, in der CPU 10 enthalten, um die zuallerletzt verwendeten Übersetzungen zu halten, damit kein Bezug zu einer Tabelle im Speicher 14 hergestellt werden muß, um die Übersetzung zu erhalten, bevor der Datenbezug hergestellt werden kann. Nur diejenigen Seiten, die durch Aufgaben benutzt werden, die momentan ausgeführt werden, (und das Betriebssystem selbst) sind wahrscheinlich zu einem gegebenen Zeitpunkt im physikalischen Speicher 14; in der Seitentabelle ist eine Übersetzung in eine Adresse 19' nur für diejenigen Seiten vorhanden, die tatsächlich vorhanden sind. Wenn festgestellt wird, daß sich die Seite, auf die durch die CPU 10 Bezug genommen wird, nicht im physikalischen Speicher 14 befindet, wird ein Seitenfehler ausgeführt, um eine Auslagerungsoperation auszulösen, bei der eine Seite vom physikalischen Speicher 14 mit der gewünschten Seite, die im Plattenspeicher 16 aufrechterhalten wird, ausgelagert wird, wobei diese Auslagerung unter der Steuerung des Betriebssystems verläuft.
- Die CPU 10 von Fig. 1 kann ebenfalls einen internen Cache-Speicher enthalten, der, wie in der obenerwähnten kanadischen Vorveröffentlichung beschrieben, einen Befehls-Cache oder I-Cache 21 und einen Daten-Cache oder D- Cache 22 enthält, diese sind jedoch bei der Funktion des Direct-Mapped-Cache 15 nach dieser Ausführung der Erfindung nicht von Bedeutung. Der Speicher, der durch das Computersystem von Fig. 1 verwendet wird, ist folglich hierarchisch, wobei die internen Caches 21 und 22 die schnellsten sind, der nächstschnellste ist der Cache 15, dann folgt der Hauptspeicher 14 und schließlich der Auslagerungsraum im Plattenspeicher 16. Der Geschwindigkeitsunterschied zwischen dem schnellsten und langsamsten beträgt viele Größenordnungen. Auf die internen Caches und den Cache 15 wird innerhalb weniger CPU-Zyklen zugegriffen, während auf den Hauptspeicher 14 in vielleicht zehn bis einhundert und mehr CPU-Zyklen zugegriffen wird und eine Seitenauslagerung auf den Plattenspeicher 16 viele hunderte oder tausende CPU-Zyklen erfordert. Die Leistungsfähigkeit des Systems ist deswegen in hohem Maße von der Verwaltung der momentan benutzten Befehle und Daten in den Caches abhängig. Eine Untermenge der Daten im physikalischen Speicher 14 (abgebildet auf 18 von Fig. 2) befindet sich zu einem gegebenen Zeitpunkt im Cache 15, und eine Untermenge der Daten im Cache 15 befindet sich in den internen Caches 21 und 22.
- Der Cache-Speicher 15 ist ein Direct-Mapped-Cache und ist in einer Weise aufgebaut, die in Fig. 3 ersichtlich ist. Die Daten werden in einer Matrix von Speicherchips gespeichert, die als eine Matrix 23 der Zeilen 24 dargestellt werden kann, wobei jede Zeile eine Anzahl von Blöcken 25 aufweist. Jeder Block 25 enthält zum Beispiel 64 Bytes Daten oder acht Vierfachdatenworte. Eine physikalische Adresse 26 auf dem CPU-Bus 13, die benutzt wird, um auf den Cache 15 (oder Hauptspeicher 14) zuzugreifen, enthält ein niederwertiges Feld 27, das das Byte (oder Wort) innerhalb eines Blocks 25 auswählt, ein Feld 28, das den Block 25 innerhalb einer Zeile 24 auswählt, ein Feld 29, das die Zeile auswählt, und ein Kennzeichenfeld 30. Das Feld 28 wird zur Auswahl des Blocks innerhalb der Zeile an einen Decodierer 31 angelegt, und das Feld 29 wird an einen Decodierer 32 angelegt, um die Zeile zur Ausgabe an den Decodierer 31 auszuwählen. Die niederwertigen Bits der Adresse im Feld 27 werden an einen Decodierer 33 angelegt, um das Byte oder Wort innerhalb eines Blocks zur Schaltung auf den Datenbus im CPU-Bus 13 auszuwählen. Im Cache-Controller 12 hält ein Kennzeichenspeicher 34 eine Anzahl von Kennzeichen, die der Anzahl der Blöcke 25 entspricht, und die Felder 28 und 29 von der Adresse 26 auf dem Adressbus des CPU-Busses 13 werden durch die Zeilen- und Spaltendecodierer 35 verwendet, um eines der Kennzeichen zum Anlegen an die Kennzeichenvergleichsschaltung 36 auszuwählen. Der andere Eingang in die Kennzeichenvergleichsschaltung 36 ist das Kennzeichenfeld 30 von der Adresse 26. Wenn das gespeicherte Kennzeichen, das durch die Decodierer 35 ausgewählt wurde, und das Kennzeichenfeld 30 übereinstimmen, wird durch den Ausgang 37 ein Kennzeichentreffer signalisiert, und die Daten am Ausgang 38 der Datenmatrix 23 werden verwendet, andernfalls wird ein Nichttreffer signalisiert und der Datenausgang wird gelöscht. Wenn ein Nichttreffer auftritt, muß ein Bezug zum Speicher 14 hergestellt werden und deswegen wird die Adresse über den Cache- Controller 12 zum Systembus 11 geleitet.
- Der Cache 15 von Fig. 3 ist direkt abgebildet (ein Direct-Mapped-Cache), weil ein erstes Datenelement, das einen gegebenen Wert der Adressbits in den Feldern 28 und 29 aufweist, an einem und nur einem Platz (Block 25) in der Cache-Matrix 23 gespeichert werden muß. Wenn ein Speicherbezug zu einem zweiten Speicherplatz hergestellt wird, der den gleichen Wert der Adressbits in den Feldern 28 und 29 aufweist, wird dies auf den gleichen Platz abbilden, den das erste Datenelement bezeichnet, und deswegen muß das erste Datenelement durch das zweite überschrieben werden. Wenn zum Beispiel die Aufgabe, die in der CPU 10 ausgeführt wird, einen Bezug auf den gleichen Index in zwei unterschiedlichen Seiten herstellt, die in den Feldern 28 und 29 die gleichen Adressbits aufweisen, wird der Block, der diesen Index von den zwei Seiten enthält, im Cache wiederholt überschrieben, was einen Zustand der Zeitverschwendung erzeugt. Im Unterschied dazu gestattet ein teilassoziativer Cache, daß ein gegebener Adresswert auf mehr als einen Platz in einer Cache-Matrix abgebildet wird, deswegen können zwei Adressen von unterschiedlichen Seiten, die eine entsprechende Menge gleicher Bits aufweisen, zum gleichen Zeitpunkt im Cache vorhanden sein. Die Hardware zur Realisierung eines Direct-Mapped-Cache, die aus Fig. 3 ersichtlich ist, ist jedoch im Vergleich mit einem teilassoziativen Cache im Betrieb schneller, denn es wird nur eine Kennzeichenvergleichsoperation benötigt, die in der Vergleichsschaltung 36 ausgeführt wird. In einem teilassoziativen Cache muß die Kennzeichenadresse mit einer Anzahl möglicher Übereinstimmungen verglichen werden und anschließend müssen außerdem die entsprechenden Daten ausgewählt werden (nachdem der Kennzeichenvergleich beendet ist); dieser zusätzliche Schritt macht den Betrieb notwendigerweise langsamer.
- Als Beispiel wird angenommen, daß die Seitengröße im virtuellen Speichersystem, das im Computersystem von Fig. 1 läuft, 1 KByte beträgt, deswegen wiederholen sich die niederwertigen Byte-Adressen (binär) nach einem 10-Bit Adresswert. Es wird ebenfalls angenommen, daß die Konfiguration des Cache 15 2 KByte beträgt, so daß der Cache Teile mit einem Gesamtumfang von 2 KByte der physikalischen Speicherabbildung 18 von Fig. 2 abbildet, die zu jedem gegebenen Zeitpunkt aus vielen Blöcken von unterschiedlichen Seiten, jedoch im Gesamtumfang aus 2 Seiten bestehen. Ein Datenelement mit einer physikalischen Adresse, die in der binären Adresse an einer Begrenzung mit den Bits < 10 : 0> Null beginnt, wird immer zum ersten Block im Cache 15 abbilden. Somit werden die physikalischen Adressen 0000, 2048, 4096, etc. auf die gleiche Stelle im Cache abbilden, d. h. die Felder 28 und 29 enthalten zum Beispiel die Bits < 10 : 4> der Adresse 26, die völlig gleich sind. Eine Aufgabe, die abwechselnd auf die physikalischen Plätze 0000 und 2048 zugreift, wird deswegen immer einen Cache-Nichttreffer im Direct-Mapped- Cache 15 von Fig. 3 erzeugen. Im Unterschied dazu können in einem Zwei-Wege Assoziativ-Cache (oder in einem mit höherer Assoziativität) die zwei Datenelemente im Cache zum gleichen Zeitpunkt aufrechterhalten werden, deswegen werden durch wiederholte abwechselnde Zugriffe auf diese zwei physikalischen Adressen Cache-Treffer erzeugt. Wenn zwei oder mehr Plätze wiederholt Nichttreffer erzeugen und sich gegenseitig aus einem Cache schieben, wird dies "Zeitverschwendung" genannt.
- Wenn, wie hier beschrieben wird, der Cache 15 groß genug ist, um N Seiten in der Umgebung des virtuellen Speichermanagements, das in der CPU 10 ausgeführt wird, zu halten, werden die Seiten neuabgebildet, um den Effekt der N-Wege Assoziativität hervorzurufen. Im Beispiel von Fig. 4, wo der Cache 15 zwei der 1 KByte Seiten halten kann, kann das Betriebssystem virtuelle Seiten auf physikalische Seiten im Speicher 14 (Speicherabbildung 18) neu abbilden, um den erwünschten Effekt der Simulation einer Zwei-Wege Assoziativität hervorzurufen. Die virtuellen Adressen 0000 und 2048 befinden sich in unterschiedlichen virtuellen Adresseiten und können auf zwei physikalische Seiten (etwa die Seitenrahmennummern 301 und 303) abgebildet werden, die auf die gleichen Plätze im Cache 15 abbilden. Für eine solche Abbildung verschwendet der Direct-Mapped-Cache 15 Zeit, wenn wiederholt Zugriffe auf die virtuellen Adressen 0000 und 2048 erfolgen. Eine andere virtuell-physikalische Abbildung (etwa die Zuweisung der Seitenrahmennummern (PFN) 301 und 302 an Stelle von 301 und 303) ermöglicht, daß beide Seiten zum gleichen Zeitpunkt im 2 KByte Cache 15 sind, und der Cache ruft den Effekt eines Zwei-Wege Assoziativ-Cache hervor. Die gleichen Daten, die in der Seitenrahmennummer PFN 303 waren, werden auf die PFN 302 im physikalischen Speicher 14 neu geschrieben, wodurch ein Blockpaar, das vorher auf einen völlig gleichen Platz im Cache 15 abbildete, nun auf verschiedene Blockplätze abbildet. Die Mengen der Adressbits der physikalischen Adressen 26 für die zwei Elemente werden nun ein Bit aufweisen, das in den Feldern 28 und 29 verschieden ist.
- Es ist eine einfache Aufgabe, die Daten zu kopieren und die Seitenrahmennummern, die den virtuellen Seiten durch das Betriebssystem zugewiesen sind, neu abzubilden (diese Funktion existiert bereits in UNIX oder VAX/VMS zur Neuabbildung fehlerhafter Speicherblöcke, d. h. diejenigen, die weiche Fehler oder ähnliches aufweisen). Zuerst müssen jedoch die Datenelemente, die Zeitverschwendung hervorrufen, erfaßt werden. Das Vorhandensein dieser Elemente ist natürlich datenabhängig und von der Anwendungssoftware abhängig, deswegen ist eine Vorhersage, wann der Zustand auftritt, vor dem Durchlauf praktisch unmöglich; weiterhin werden die Fälle der Zeitverschwendung bei einem weiteren Aufruf der Software zu unterschiedlichen Zeitpunkten und Programmstellen auftreten. Die fragliche Software muß laufen, bevor bekannt wird, ob der Zustand existiert, und bevor die Position jedes Auftretens des Zustands bekannt wird. Ein Verfahren der Erfassung der Zustands der Zeitverschwendung während des Programmlaufs besteht darin, eine Untermenge (etwa 1 aus 64, gesteuert durch einen 6-Bit Nichttrefferzähler 40) der Adressen, die einen Cache-Nichttreffer erzeugen, zwischenzuspeichern (im Speicher oder in einem Register 39, das in Fig. 3 ersichtlich ist), und anschließend die Adressen dieses Zwischenspeichers 39 durch eine Zeitgeberunterbrechungsroutine periodisch zu lesen. Auf der Grundlage dieser Abtastung des Stroms der Nichttrefferadressen, bildet das realisierte Verfahren dann die Seitennummern (wie in Fig. 4) neu ab, um die Zeitverschwendung zu reduzieren. Der Zweck der Abtastung einer Untermenge des Stroms der Nichttrefferadressen besteht darin, zu verhindern, daß die Zeitgeberunterbrechungsroutine immer die Adresse der Zeitgeberunterbrechungsroutine selbst in dem Zwischenspeicher der Nichttrefferadressen 39 findet. Der Nichttrefferzwischenspeicher 39 und der Zähler 40 können als Teil des Cache-Controllers 12 oder der CPU 10 aufgebaut sein oder können eine separate, an den CPU-Bus 13 gekoppelte Hardware sein.
- Ein Neuabbildungsalgorithmus, der verwendet werden kann, sollte am Nichttrefferzwischenspeicher 39 100 bis 1000 Abtastungen pro Sekunde vornehmen und jede abgetastete Seite auf einen anderen physikalischen Speicherplatz (anderen Seitenrahmen) neu abbilden, wie in Fig. 4 dargestellt ist. Der Algorithmus zur Wahl der neuen PFN kann darin bestehen, nur die vorhandene PFN zu vermindern und die verschobene PFN zu erhöhen. Ein weiterer Algorithmus könnte darin bestehen, eine der "nicht zugewiesenen Seiten" im physikalischen Speicher zu benutzen, durch die sich das Betriebssystem auf dem Laufenden hält, d. h., dem Seitenrahmen, der bewegt werden soll, wird eine der unbenutzten Seitenrahmennummern gegeben, somit gibt es dann keine verschobene Seite, die umgestellt werden müßte. Nachdem die neuen Nummern zugewiesen sind, erfordert das Verfahren, daß eine Seite oder zwei Seiten auf neue Plätze im physikalischen Speicher 14 bewegt werden. Mit einer großen Wahrscheinlichkeit werden Plätze, die aktiv Zeit verschwenden, schließlich abgetastet und bewegt. Die Zeit verschwendenden Seiten werden ebenfalls mit großer Wahrscheinlichkeit (mindestens nach ein paar solcher Verschiebungen) eine Cache-Konfiguration erreichen, die mit der eines durch Hardware realisierten N-Wege Assoziativ-Cache gleichwertig ist (wobei N die Anzahl der Seiten ist, die der Direct-Mapped-Cache 15 halten kann) und die Zeitverschwendung wird vermindert.
- Als eine Demonstration des Effekts der Verwendung des Verfahrens der Erfindung wurde eine Aufzeichnung von Cache-Nichttreffern dargestellt, wie in Fig. 5a ersichtlich ist, bei der die Verbesserung nicht benutzt wird. Die Koordinaten der Darstellung sind die Zeit, die in der Figur von oben nach unten abläuft, und die Cache-Speicheradresse, die von links nach rechts läuft; jede Markierung ist ein Cache-Nichttreffer, somit ist die Dichte der Markierungen ein Maß für den Grad der Zeitverschwendung - oder im Idealfall würde es überhaupt keine Markierungen geben. In diesem Beispiel läuft ein Anwendungsprogramm, das Nichttreffer zeigt, indem es ein Muster zeichnet, das anscheinend den Cache ungefähr bis zu einem Ein- Seiten-Pegel ausfüllt, dann auf Null zurückgeht und beginnt, das gleiche allgemeine Muster neu zu zeichnen. Obwohl vorhanden, erscheint in dieser Zeichnung die zweite Seite des Cache unbenutzt, oder mindestens erscheinen fast keine Nichttreffer. Zeitlich ist keine Verbesserung der Leistung in Fig. 5a zu erkennen; das anfängliche Muster scheint sich unendlich zu wiederholen. Im Unterschied dazu ist in Fig. 5b die Cache-Größe die gleiche, jedoch wird das Verfahren der Erfindung benutzt. Hier ist das erste Muster oben auf der Darstellung das gleiche wie in Fig. 5a, dann scheint das zweite Muster zu beginnen, die zweite Seite des Cache zu füllen, und wenn das Programm weiterläuft, verringert sich die Anzahl der Nichttreffer (Dichte der Markierungen) stufenweise, bis die Dichte an der Unterkante der Darstellung erheblich geringer ist. Die Gesamtzeit dieser Darstellung beträgt von oben nach unten ungefähr 2 Sekunden. Ein Kennzeichen der Verwendung der Erfindung besteht darin, daß sich die Ausführung eines Programms zeitlich verändert; die Leistungsfähigkeit wird sich verbessern, wenn das Muster der Adressierung in der Weise ist, daß Zeitverschwendung auf Grund des oben erläuterten Phänomens auftreten würde. Bei einigen Programmen kann die Adressierung jedoch in viel höherem Maße zufällig sein, und der in den Fig. 5a und 5b dargestellte Effekt würde nicht auftreten. Ein Experiment, das vollkommen zufällige Adressen erzeugt, beweist, daß die Verwendung des Verfahrens der Erfindung überhaupt keine Verbesserung bringt, und es gibt tatsächlich einen kleinen Einbruch der Leistungsfähigkeit auf Grund der Zeit, die benötigt wird, um Seiten zu bewegen, nachdem die Zufallszeitverschwendung erfaßt wurde. Fast alle Programme haben jedoch in hohem Maße nichtzufällige Adressierungsmuster auf Grund des Vorherrschens von Schleifen, deswegen zeigen die meisten Programme eine zeitliche Verbesserung der Leistungsfähigkeit, wenn das Verfahren der Erfindung verwendet wird.
- Der verbesserte Betrieb, der durch das Verfahren der Erfindung gewährleistet wird, gestattet die Verwendung einer schnellen, einfach aufgebauten, Direct-Mapped- Cache-Speichervorrichtung, wobei eine Cache-Trefferlei stung erreicht wird, die mit der einer langsameren, komplexen, N-Wege Assoziativ-Cache-Hardware fast gleichwertig ist. Die Gesamtleistungsfähigkeit vom Standpunkt der Geschwindigkeit ist jedoch wegen des Fehlens der einem teilassoziativen Cache inhärenten Hardwareverzögerung besser als bei der Verwendung eines teilassoziativen Cache.
Claims (14)
1. Verfahren zum Betreiben eines Computersystems,
das einen Prozessor, einen Hauptspeicher zum Speichern
von Daten und einen Cache zum Speichern von Daten, die
den an ausgewählten Hauptspeicheradressen gespeicherten
Daten entsprechen, enthält, wobei das Verfahren die
folgenden Schritte enthält:
Zugreifen auf den Cache, um mehrere Seiten von
Daten zu erhalten, unter Verwendung der
Hauptspeicheradressen, um mehrere Cache-Plätze zu identifizieren,
an denen die Seiten gespeichert sein können;
Erfassen jedes von mehreren Cache-Nichttreffern,
die Cache-Zugriffe enthalten, die Seiten ergeben, die
sich nicht an den identifizierten Plätzen befinden;
wobei das Verfahren gekennzeichnet ist durch die
folgenden Schritte;
Speichern einer im voraus gewählten Untermenge
der Hauptspeicheradressen, die bei den
Cache-Nichttreffern verwendet werden, wobei die Untermenge mehr als
einen und weniger als alle Cache-Nichttreffer enthält;
Abtasten der gespeicherten Hauptspeicheradressen
zu ausgewählten Zeitpunkten; und
Bewegen der Daten an jeder abgetasteten
Hauptspeicheradresse zu einer anderen der
Hauptspeicheradressen.
2. Verfahren nach Anspruch 1, bei dem der Prozessor
ein virtuelles Speichersystem verwendet, in dem jede der
Hauptspeicheradresssen einer Seitenrahmennummer
entspricht, der eine virtuelle Adresse zugewiesen ist, und
bei dem der Bewegungsschritt den Schritt des Zuweisens
verschiedener virtueller Adressen an die
Seitenrahmennummern, die den Daten an jeder der abgetasteten
Hauptspeicheradressen entsprechen, enthält.
3. Verfahren nach Anspruch 1, bei dem die Daten in
dem Hauptspeicher in mehreren Seiten gespeichert sind,
wobei jede Seite des Hauptspeichers einer der
Hauptspeicheradressen entspricht, wobei der Cache wenigstens zwei
der Seiten hält, und bei dem die Bewegung das Bewegen der
Seite an jeder Hauptspeicheradresse enthält.
4. Verfahren nach Anspruch 1, bei dem der Schritt
des Speicherns der Hauptspeicheradressen das
Zwischenspeichern der Hauptspeicheradresse jedes solchen Cache-
Nichttreffers enthält.
5. Verfahren nach Anspruch 4, bei dem die Schritte
des Abtastens und Bewegens das periodische Abtasten der
zwischengespeicherten Hauptspeicheradresse sowie das
Bewegen der der abgetasteten Hauptspeicheradresse
entsprechenden Daten umfassen.
6. Verfahren nach Anspruch 1, bei dem der
Speicherschritt die Schritte des Zählens der Cache-Nichttreffer
und des Speicherns jedes von jeweils N
Cache-Nichttreffern enthält, wobei N eine ganze Zahl größer als eins und
kleiner als die Gesamtzahl der Cache-Nichttreffer ist.
7. Speichermanagementvorrichtung in einem
Computersystem, das einen Prozessor, einen Hauptspeicher zum
Speichern von Daten und einen Cache zum Speichern von
Daten, die den an ausgewählten Hauptspeicheradressen
gespeicherten Daten entsprechen, enthält, wobei die
Speichermanagementvorrichtung enthält:
eine Zugriffseinrichtung, die mit dem Cache
gekoppelt ist, um auf den Cache zuzugreifen, um mehrere
Seiten von Daten unter Verwendung der
Hauptspeicheradressen zu erhalten, um mehrere Cache-Plätze zu
identifizieren, an denen die Seiten gespeichert sein können;
eine Erfassungseinrichtung, die mit der
Zugriffseinrichtung gekoppelt ist, um jeden von mehreren
Cache-Nichttreffern zu erfassen, die Cache-Zugriffe
umfassen, die Seiten ergeben, die sich nicht an den
identifizierten Plätzen befinden;
wobei die Speichermanagementvorrichtung
gekennzeichnet ist durch
eine Speichereinrichtung, die mit der
Erfassungseinrichtung gekoppelt ist, um eine im voraus gewählte
Untermenge der Hauptspeicheradressen, die bei den Cache-
Nichttreffern verwendet werden, zu speichern, wobei die
Untermenge mehr als einen und weniger als alle Cache-
Nichttreffer enthält;
eine Abtasteinrichtung, die mit der
Speichereinrichtung gekoppelt ist, um die gespeicherten
Hauptspeicheradressen zu ausgewählten Zeitpunkten abzutasten; und
eine Einrichtung, die mit der Abtasteinrichtung
gekoppelt ist, um die Daten an jeder abgetasteten
Hauptspeicheradresse an eine andere der Hauptspeicheradressen
zu bewegen.
8. Vorrichtung nach Anspruch 7, wobei die
Speichereinrichtung einen Zähler zum Zählen der
Cache-Nichttreffer sowie eine Einrichtung zum Speichern jedes von
jeweils N Cache-Nichttreffern enthält, wobei N eine ganze
Zahl größer als eins und kleiner als die Gesamtzahl der
Cache-Nichttreffer ist.
9. Vorrichtung nach Anspruch 7, wobei die
Speichereinrichtung einen Nichttreffer-Zwischenspeicher
enthält, der sequentiell jede der Hauptspeicheradressen
speichert, die bei den Cache-Nichttreffern verwendet
werden.
10. Vorrichtung nach Anspruch 9, wobei die
Speichereinrichtung einen Zähler zum Zählen der
Cache-Nichttreffer sowie eine Einrichtung zum Speichern jedes von
jeweils N Cache-Nichttreffern enthält, wobei N eine ganze
Zahl größer als eins und kleiner als die Gesamtzahl der
Cache-Nichttreffer ist.
11. Vorrichtung nach Anspruch 7, wobei der Prozessor
ein virtuelles Speichersystem verwendet.
12. Vorrichtung nach Anspruch 11, wobei Daten im
Hauptspeicher in Seiten gespeichert sind und die Seiten
zwischen dem Hauptspeicher und einem Plattenspeicher
unter Verwendung des virtuellen Speichersystems
ausgelagert werden.
13. Vorrichtung nach Anspruch 7, wobei Daten im
Hauptspeicher in Seiten gespeichert sind, wobei jede
Seite eine Hauptspeicheradresse besitzt und der Cache
wenigstens zwei der Seiten hält, und wobei die
Einrichtung zum Bewegen das Bewegen der Seite an jeder
Hauptspeicheradresse umfaßt.
14. Vorrichtung nach Anspruch 7, wobei die
Einrichtung zum Bestimmen der Hauptspeicheradresse einen
Zwischenspeicher zum Halten der Hauptspeicheradresse jedes
derartigen Cache-Nichttreffers enthält.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US71639791A | 1991-06-17 | 1991-06-17 | |
PCT/US1992/004281 WO1992022867A1 (en) | 1991-06-17 | 1992-05-21 | Improving computer performance by simulated cache associativity |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69229667D1 DE69229667D1 (de) | 1999-09-02 |
DE69229667T2 true DE69229667T2 (de) | 2000-02-10 |
Family
ID=24877837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69229667T Expired - Fee Related DE69229667T2 (de) | 1991-06-17 | 1992-05-21 | Simulierte cachespeicher-assoziativität |
Country Status (12)
Country | Link |
---|---|
US (1) | US5442571A (de) |
EP (1) | EP0543991B1 (de) |
JP (1) | JPH07104816B2 (de) |
KR (1) | KR960005443B1 (de) |
AU (1) | AU658914B2 (de) |
CA (1) | CA2088779C (de) |
DE (1) | DE69229667T2 (de) |
IE (1) | IE921691A1 (de) |
IL (1) | IL102001A (de) |
MX (1) | MX9202907A (de) |
TW (1) | TW219986B (de) |
WO (1) | WO1992022867A1 (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2688612A1 (fr) * | 1992-03-13 | 1993-09-17 | Inst Nat Rech Inf Automat | Dispositif d'antememoire. |
US5732409A (en) * | 1994-03-21 | 1998-03-24 | Legend Research Limited | Caching disk controller implemented by hardwired logic |
US6129458A (en) * | 1994-03-23 | 2000-10-10 | At&T Global Information Solutions Company | Cache optimization method |
US6223255B1 (en) | 1995-02-03 | 2001-04-24 | Lucent Technologies | Microprocessor with an instruction level reconfigurable n-way cache |
US5845106A (en) * | 1996-01-26 | 1998-12-01 | Advanced Micro Devices, Inc. | Method for simulating cache operation |
US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
US6301641B1 (en) * | 1997-02-27 | 2001-10-09 | U.S. Philips Corporation | Method for reducing the frequency of cache misses in a computer |
KR100231707B1 (ko) * | 1997-08-04 | 2000-01-15 | 정선종 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
US6209062B1 (en) * | 1997-11-24 | 2001-03-27 | Intel Corporation | Method for holding cache pages that are not invalidated within normal time duration for a second access or that are likely to be accessed again soon |
US6446170B1 (en) * | 1999-01-19 | 2002-09-03 | International Business Machines Corporation | Efficient store machine in cache based microprocessor |
US6408368B1 (en) | 1999-06-15 | 2002-06-18 | Sun Microsystems, Inc. | Operating system page placement to maximize cache data reuse |
US6366994B1 (en) * | 1999-06-22 | 2002-04-02 | Sun Microsystems, Inc. | Cache aware memory allocation |
JP2001109661A (ja) | 1999-10-14 | 2001-04-20 | Hitachi Ltd | キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム |
US6523092B1 (en) * | 2000-09-29 | 2003-02-18 | Intel Corporation | Cache line replacement policy enhancement to avoid memory page thrashing |
US6947052B2 (en) * | 2001-07-13 | 2005-09-20 | Texas Instruments Incorporated | Visual program memory hierarchy optimization |
GB2381886B (en) * | 2001-11-07 | 2004-06-23 | Sun Microsystems Inc | Computer system with virtual memory and paging mechanism |
US7366871B2 (en) | 2004-11-18 | 2008-04-29 | Sun Microsystems, Inc. | Apparatus and method for determining stack distance including spatial locality of running software for estimating cache miss rates based upon contents of a hash table |
US7373480B2 (en) * | 2004-11-18 | 2008-05-13 | Sun Microsystems, Inc. | Apparatus and method for determining stack distance of running software for estimating cache miss rates based upon contents of a hash table |
JP2007272691A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | プロセッサ装置およびスラッシング回避方法 |
US8806461B2 (en) * | 2007-06-21 | 2014-08-12 | Microsoft Corporation | Using memory usage to pinpoint sub-optimal code for gaming systems |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US10310811B2 (en) | 2017-03-31 | 2019-06-04 | Hewlett Packard Enterprise Development Lp | Transitioning a buffer to be accessed exclusively by a driver layer for writing immediate data stream |
CN111666230B (zh) * | 2020-05-27 | 2023-08-01 | 江苏华创微系统有限公司 | 在组相联tlb中支持巨页的方法 |
US20220206946A1 (en) * | 2020-12-28 | 2022-06-30 | Advanced Micro Devices, Inc. | Method and apparatus for managing a cache directory |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5119290A (en) * | 1987-10-02 | 1992-06-02 | Sun Microsystems, Inc. | Alias address support |
US5210843A (en) * | 1988-03-25 | 1993-05-11 | Northern Telecom Limited | Pseudo set-associative memory caching arrangement |
JPH02273843A (ja) * | 1989-04-14 | 1990-11-08 | Nec Corp | スワッピング装置 |
US5101485B1 (en) * | 1989-06-29 | 1996-12-10 | Frank L Perazzoli Jr | Virtual memory page table paging apparatus and method |
-
1991
- 1991-10-03 TW TW080107803A patent/TW219986B/zh active
-
1992
- 1992-05-21 WO PCT/US1992/004281 patent/WO1992022867A1/en active IP Right Grant
- 1992-05-21 EP EP92914461A patent/EP0543991B1/de not_active Expired - Lifetime
- 1992-05-21 KR KR1019930700415A patent/KR960005443B1/ko not_active IP Right Cessation
- 1992-05-21 CA CA002088779A patent/CA2088779C/en not_active Expired - Fee Related
- 1992-05-21 DE DE69229667T patent/DE69229667T2/de not_active Expired - Fee Related
- 1992-05-21 AU AU22474/92A patent/AU658914B2/en not_active Ceased
- 1992-05-21 JP JP5500873A patent/JPH07104816B2/ja not_active Expired - Lifetime
- 1992-05-26 IL IL10200192A patent/IL102001A/en not_active IP Right Cessation
- 1992-06-16 MX MX9202907A patent/MX9202907A/es not_active IP Right Cessation
- 1992-07-01 IE IE169192A patent/IE921691A1/en not_active Application Discontinuation
-
1994
- 1994-05-27 US US08/250,315 patent/US5442571A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0543991B1 (de) | 1999-07-28 |
IL102001A0 (en) | 1992-12-30 |
JPH07104816B2 (ja) | 1995-11-13 |
AU2247492A (en) | 1993-01-12 |
TW219986B (de) | 1994-02-01 |
CA2088779C (en) | 1998-09-01 |
IL102001A (en) | 1996-01-31 |
AU658914B2 (en) | 1995-05-04 |
DE69229667D1 (de) | 1999-09-02 |
KR960005443B1 (ko) | 1996-04-25 |
IE921691A1 (en) | 1992-12-30 |
MX9202907A (es) | 1993-03-01 |
WO1992022867A1 (en) | 1992-12-23 |
EP0543991A1 (de) | 1993-06-02 |
CA2088779A1 (en) | 1992-12-18 |
JPH05509189A (ja) | 1993-12-16 |
US5442571A (en) | 1995-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69229667T2 (de) | Simulierte cachespeicher-assoziativität | |
DE68923437T2 (de) | Adressenübersetzung für Seiten mehrfacher Grösse. | |
DE69030945T2 (de) | Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung | |
DE69317729T2 (de) | Cache-Etikettenspeicher | |
DE69132005T2 (de) | Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher | |
DE69518676T2 (de) | Cache-Speicheranordnung für einen Speicher | |
DE60003273T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE69721368T2 (de) | Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
DE69331039T2 (de) | Rechnersystem mit einem Vorausholungscachespeicher | |
DE3688192T2 (de) | Seitenorganisierter cachespeicher mit virtueller adressierung. | |
DE19526007C2 (de) | Horizontal partitionierter Befehls-Cache-Speicher | |
DE69228380T2 (de) | Verfahren zur erhöhung der datenverarbeitungsgeschwindigkeit in einem rechnersystem | |
DE68923863T2 (de) | Ein-/Ausgabecachespeicherung. | |
DE69029173T2 (de) | Mikroprozessor | |
DE68924833T2 (de) | Verfahren und Anordnung zur Datenabbildung in einem Datenverarbeitungssystem mit virtuellem Speicher. | |
DE3151745C2 (de) | ||
DE69031411T2 (de) | Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff | |
DE69025302T2 (de) | Hochleistungsrasterpuffer- und -cachespeicheranordnung | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation | |
DE69130942T2 (de) | Vorrichtung zur Erhöhung der Leistung eines Adressenübersetzungspuffers | |
DE3805107A1 (de) | Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers | |
DE19526960A1 (de) | Eine Übersetzungs-Querzuordnungs-Puffer-Organisation mit variabler Seitengrößenabbildung und Opfer-Cache-Speicherung | |
DE10002120A1 (de) | Logikstruktur eines Adressumsetzpuffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |