DE69626070T2 - Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers - Google Patents

Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers

Info

Publication number
DE69626070T2
DE69626070T2 DE69626070T DE69626070T DE69626070T2 DE 69626070 T2 DE69626070 T2 DE 69626070T2 DE 69626070 T DE69626070 T DE 69626070T DE 69626070 T DE69626070 T DE 69626070T DE 69626070 T2 DE69626070 T2 DE 69626070T2
Authority
DE
Germany
Prior art keywords
buffer
entry
main memory
att
field
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
Application number
DE69626070T
Other languages
English (en)
Other versions
DE69626070D1 (de
Inventor
Erik Hagersten
Ashok Singhal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69626070D1 publication Critical patent/DE69626070D1/de
Publication of DE69626070T2 publication Critical patent/DE69626070T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

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

    Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf das Gebiet der Pufferspeicher. Insbesondere bezieht sich die Erfindung auf wirksame Pufferspeicher- Etikettierschemen.
  • Beschreibung der verwandten Technik
  • Fig. 1 ist ein Blockdiagramm eines Uniprozessor-Computersystems 100, umfassend einen Prozessor 110, eine Systemverbindung 120, einen Hauptspeicher 130, eine Massenspeichereinrichtung 140, einen Monitor 160 und eine Tastatur/Maus 170. In einem herkömmlichen Computersystem, wie zu dem Computersystem 100, werden Befehle und Datenstrukturen eines Programmes vor der Programmausführung von der Massenspeichereinrichtung 140, typischerweise einem Plattenspeicherantrieb, in den Hauptspeicher 130 geladen, der typischerweise ein billiger, aber langsamer dynamischer Speicher mit wahlfreiem Zugriff (DRAM) ist. Nachfolgend greift während der Programmausführung der Prozessor 110 in der geforderten Weise über die Systemverbindung 120 auf die in dem Hauptspeicher 130 gespeicherten Befehle und Daten zu.
  • Wenn die Bearbeitungsfähigkeit des Prozessors 110 für Befehle/Daten anwächst, wird die Verarbeitungsfähigkeit des Computersystems 100 für Befehle/Daten anstatt von dem Prozessor von dem Speicher abhängig. Dies ist teilweise darauf zurückzuführen, dass aufgrund der technischen Fortschritte, die die Zugriffsgeschwindigkeit des Hauptspeichers 130 erhöht haben, nicht mit den Fortschritten Schritt gehalten haben, die die interne Verarbeitungsfähigkeit des Prozessors 110 für Befehle/Daten erhöht haben. Infolgedessen wird die Wirksamkeit des Prozessors 110 durch die Geschwindigkeit beeinträchtigt, mit der Daten und Befehle zwischen dem Hauptspeicher 130 und dem Prozessor 110 über die Systemverbindung 120 übertragen werden können.
  • Der gleiche Speicher-Engpass liegt bei Multi-Prozessorsystemen vor. Fig. 2 ist ein Blockdiagramm eines solchen Multi-Prozessor-Computersystems 200 mit mehreren Prozessoren 211, 212, ... 219, die miteinander und mit einem Hauptspeicher 130 und einer Massenspeichereinrichtung 140 über eine gemeinsame Systemverbindung 120 verbunden sind.
  • Eine Teillösung der Speicher-Engpässe der Systeme 100, 200 liegt in der Einführung eines kleineren schnelleren, aber teueren Pufferspeichers, typischerweise eines statischen Speichers mit wahlfreiem Zugriff (SRAM), der direkt an die entsprechenden Prozessoren angeschlossen ist. Wie in den Fig. 1 und 2 gezeigt, ist jeder Prozessor einem Pufferspeicher zugeordnet. Z. B. ist der Prozessor 211 mit dem Pufferspeicher 251 verbunden. In Abhängigkeit von der Verwirklichung können die Pufferspeicher 150, 251, 252, ... 259 ebenfalls direkt an die Systemverbindung 120 angeschlossen sein.
  • Fig. 3A zeigt eine beispielhafte Verwirklichung eines herkömmlichen assoziativen Pufferspeichers 310a mit C-Pufferspeicherzeilen. Jede Pufferspeicherzeile umfaßt zwei Felder, ein Adresshinweis("AT")-Feld und ein Datenfeld, das dem AT Feld assoziativ zugeordnet ist. Bei diesem Schema besitzt die physikalische Adresse einer jeden Pufferspeicherzeile entsprechende AT- und Index-Teile. Der Pufferspeicher 300a ist veranschaulichend für den Pufferspeicher 150 oder irgendeinem der Pufferspeicher 251, 252, ... 259.
  • Ein Prozessor, z. B. der Prozessor 110, nimmt auf eine Ziel-Pufferspeicherzeile, z. B. die n.te-Pufferspeicherzeile, Zugriff durch Verwendung des Indexteiles der physikalischen Adresse (PA) als ein Offset in Bezug auf die Oberseite des Pufferspeichers 310a, um die Ziel-Pufferspeicherzeile zu lokalisieren. Als nächstes wird der AT-Teil der physikalischen Adresse der Pufferspeicherzeile mit dem Inhalt des AT Feldes der Ziel-Pufferspeicherzeile verglichen. Wenn eine Übereinstimmung zwischen den entsprechenden AT Werten vorliegt, so liegt ein "Pufferspeicher-Treffer" vor und das Datenfeld der Ziel-Pufferspeicherzeile wird an den Prozessor 110 geliefert.
  • Um die Wahrscheinlichkeit eines Pufferspeicher-Treffers zu erhöhen, kann der Pufferspeicher mit erhöhter Assoziativität erweitert werden. Bezugnehmend nunmehr auf das Blockdiagramm von Fig. 3B besitzt ein assoziativer Zweiweg- Pufferspeicher 310b C-Pufferspeicherzeilen. Jede Pufferspeicherzeile umfaßt ein Paar von AT- und Datenfeldern, wobei jedes Datenfeld assoziativ mit dem entsprechenden AT-Feld verbunden ist, wodurch die Trefferwahrscheinlichkeit des Pufferspeichers erhöht wird. Der Pufferspeicher 300b umfaßt ebenfalls Komparatoren 311, 312 und einen Multiplexer (MUX) 313. Der Pufferspeicher 310b kann irgendeiner der Pufferspeicher 150, 251, 252, ... 259 sein. Die Arbeitsweise des assoziativen Zweiweg-Pufferspeichers 310b ist wie folgt.
  • Wenn ein Prozessor, z. B. der Prozessor 211, eine physikalische Adresse verwendet, um auf den Pufferspeicher 310b Zugriff zu nehmen, so wird der Pufferspeicher-Indexteil der Adresse als ein Offset verwendet, um ein Paar von Ziel-Pufferspeicherzeilen zu lokalisieren. Bei dieser Verwirklichung werden beide indizierte AT-Felder der Ziel-Pufferspeicherzeilen aufgesucht und mit dem AT- Teil der physikalischen Adresse durch die Komparatoren 311, 312 verglichen. Wenn ein Pufferspeicher-Treffer mit irgendeiner der Ziel-Pufferspeicherzeilen vorliegt, so wird durch den MUX313 unter Steuerung der Komparatoren 311, 312 das geeignete Datenfeld ausgewählt und das ausgewählte Datenfeld dem anfordernden Prozessor 211 vorgegeben. In Abhängigkeit von der spezifischen Verwirklichung können die untere Bits der physikalischen Byte-Adresse verwendet werden, um ein interessierendes Byte innerhalb der Ziel- Pufferspeicherzeile herauszuziehen, wodurch die Bitbreite des MUX313 vermindert wird.
  • Somit arbeiten die Pufferspeicher 150, 251, 252, ... 259 als Hochgeschwindigkeitsablagen zwischen dem Hauptspeicher 130 und den entsprechenden Prozessoren 110, 211, 212, ... 219 durch Vorteilnahme aus der temporär räumlichen Örtlichkeit in dem mittleren Zugriffsmuster der Prozessoren. Die räumliche Örtlichkeit wird immer dann ausgewertet, wenn ein Pufferspeicher Daten benachbart zu den angeforderten Daten während eines Zugriffs zu einer Pufferspeicherzeile abruft. Wenn somit die Pufferspeicher 150, 251, 252, ... 259 zusammen mit Techniken verwendet werden, wie z. B. einer Befehlsabruf- Vorhersage für den Vorabruf von Befehlen/Daten, die wahrscheinlich zu verwenden sind und wahrscheinlich wiederzuverwendende Befehle/Daten zurückbehält, so werden die zuvor beschriebenen Speicher-Engpässe der Computersysteme 100, 200 teilweise vermieden.
  • Fig. 4 zeigt einen beispielhaften TLB 420 des Standes der Technik, eine virtuelle Adresse 430 und eine entsprechende physikalische Adresse 440 für den Zugriff auf einen assoziativen 7-Weg-Pufferspeicher 410. Der TLB 420 kann irgendeiner der TLB's 110a, 211a, 212a, ... 219 sein. Typischerweise sind der Hauptspeicher 130 und der TLB 420 seitenorientiert, während der Pufferspeicher 410 unter Verwendung von Pufferspeicherzeilen organisiert ist. In einer vollständig assoziativen Verwirklichung des TLB 420 wird eine "TLB-Aufsuche" in der folgenden Weise ausgeführt.
  • Zunächst vergleicht ein Prozessor, z. B. der Prozessor 211, die entsprechenden virtuellen Adress(VA)-Felder von jedem Eintrag in dem TLB 420 mit dem Seiten- Indexteil der VA 430. Bei diesem in Fig. 4 gezeigten Beispiel wird, wenn ein Treffer vorliegt, z. B. mit dem TLB-Eintrag 420a ein 8-Bitteil des PA Wertes des TLB-Eintrages 420a mit einem 7-Bit-Seiten-Offsetteil der VA 430 kombiniert, um einen 15-Bit-Index für den Zugriff eines jeden Segmentes des Pufferspeichers 410 zu bilden.
  • Auch nach einem TLB-Eintrag Treffer besitzt unglücklicherweise der Prozessor 211 keine Kenntnis, welches der sieben Segmente 411, 412, 413, ... 417 des Pufferspeichers 410 die Ziel-Pufferspeicherzeile enthalten könnte. Dies ist darauf zurückzuführen, dass die Weginformation, d. h. die Segmentidentifikation entsprechend der Ziel-Pufferspeicherzeile zuvor durch den Prozessor 211 gestrichen wurde, als die Ziel-Pufferspeicherzeile zuerst gepuffert wurde und es ferner keinen Mechanismus bei dem herkömmlichen TLB 420 gibt, um Weginformation zu speichern oder zu verwenden.
  • Demzufolge muß eine zweite Gruppe von sieben Vergleichen zwischen den entsprechenden AT Feldern der aufgesuchten Pufferspeicherzeilen 411a, 412a, 413a, ... 417a und dem verbleibenden Teil des PA Wertes von dem TLB-Eintrag 420a durch die entsprechenden Komparatoren 451, 452, ... 457 in einem Versuch ausgeführt werden, die Ziel-Pufferspeicherzeile zu lokalisieren. Wenn es eine Übereinstimmung gibt, d. h. einen Pufferspeichertreffer, so wird das Datenfeld der übereinstimmenden Pufferspeicherzeile aufgesucht und dem Prozessor 211 zugeführt.
  • Somit liegt ein Hauptnachteil des herkömmlichen "TLB-Aufsuch"-Schemas in dem Erfordernis des Prozessors 211, zwei unterschiedliche Vergleichspegel auszuführen. Ferner kann der zweite Pegel die mehrfachen Vergleiche nicht beginnen, bis der erste Pegel der Vergleiche vervollständigt ist.
  • Ein Weg zur Erhöhung der Geschwindigkeit der Komparatoren 451, 452, 453, ... 457 liegt in der physikalischen Anordnung der Komparatoren 451, 452, 453, ... 457 und von jedem RT Feld des Pufferspeichers 410 auf dem gleichen IC wie der Prozessor. Solch eine Anordnung erhöht jedoch wesentlich die Größe des Prozessor-IC's und beeinträchtigt die Produktionsausbeute des Prozessors.
  • Somit gibt es ein Bedürfnis für ein wirksames Pufferspeicher-Etikettierschema, das sowohl für Uni-Prozessoren als auch für Multi-Prozessor-Computersysteme geeignet ist und das Vorteil aus der Weginformation zieht, um schnell und effizient gepufferte Information aufzusuchen, was in einer kompakten Form ohne massive Erhöherung der Größe des Prozessors verwirklicht werden kann.
  • Mehr Information über TLB's kann gefunden werden in "MIPSR4000 Microprocessor Users Manual", Joe Heinrich, 1994, MIPS Technologies, Mountain View CA, USA.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung, wie sie durch die angefügten Ansprüche definiert ist, gibt einen Pufferspeicherverwalter (cm) zur Verwendung mit einer Adressen- Umsetzungstabelle (ATT) vor, die von Weginformation vorteilhaft Gebrauch macht, welche verfügbar ist, wenn eine Pufferspeicherzeile zuerst aufgesucht wird, um wirksam auf einen Mehrweg-Pufferspeicher eines Computersystems zuzugreifen, das einen Hauptspeicher und einen oder mehrere Prozessoren besitzt. Der Hauptspeicher und die ATT sind seitenorientiert, während der Pufferspeicher unter Verwendung von Pufferspeicherzeilen organisiert ist. Der CM verfolgt den Inhalt des Mehrweg-Pufferspeichers über die ATT. Der Pufferspeicher umfaßt mehrere Pufferspeicherzeilen, die in eine Anzahl von Segmenten entsprechend der Anzahl von "Wegen" unterteilt sind. Jede Pufferspeicherzeile umfaßt ein Adressenhinweis ("AT")-Feld und ein Datenfeld.
  • Gemäß der vorliegenden Erfindung wird, anstatt nützliche Weginformation zu streichen, die verfügbar ist, wenn auf eine Pufferspeicherzeile zuerst zugegriffen wird, die Weginformation in der ATT für einen späteren Pufferspeicherzugriff gespeichert. Bei dieser Verwirklichung geben "Wegelemente" einen wirksamen Mechanismus für die Speicherung der Weginformation immer dann vor, wenn auf eine Pufferspeicherzeile zugegriffen wird. Dementsprechend enthält jeder Tabelleneintrag der ATT ein virtuelles Adress("VA")-Feld, ein physikalisches Adress("PA")-Feld und mehrere Wegelemente, die jedem Paar von ("VA")- und ("PA")-Feldern zugeordnet sind. Andere Mittel zur Speicherung der Weginformation sind möglich. Nachfolgend können die Wegelemente verwendet werden, um direkt ein einzelnes Segment des Pufferspeichers schnell zu indizieren, anstatt auf jedes und alle Segmente des Pufferspeichers Zugriff zu nehmen.
  • Die Anzahl der Bits in jedem Wegelement ist abhängig von der Anzahl der "Wege". Ein Wegelement-Wert ist für einen ungültigen Wert reserviert. Bei dieser Verwirklichung ist die Anzahl der Wegelement-Bit(s) gleich dem Logarithmus mit der Basis 2 der Anzahl der Weg(e) plus I (log&sub2;(Weg + 1)). Zum Beispiel wird ein Einbit-Wegelement benötigt für einen Einweg-Pufferspeicher und ein Zweibit-Wegelement wird benötigt für einen Zweiweg-Pufferspeicher oder einen Dreiweg-Pufferspeicher.
  • Der Zugriff zu dem Pufferspeicher über die ATT durch den CM ergibt sich wie folgt. Beim Empfang eine virtuellen Adresse einer Ziel-Pufferspeicherzeile versucht der CM, ein virtuelles Adressfeld von einem der ATT-Einträge mit einem Seiten-Indexteil der virtuellen Adresse abzugleichen. Wenn ein Abgleich vorliegt, wird ein Wegelement des ATT Eintrages unter Verwendung eines Seiten-Offsetteiles der virtuellen Adresse aufgesucht. Wenn der Wegelement-Wert gültig ist, indiziert der CM direkt eine einzelne Pufferspeicherzeile unter Verwendung des Wegelement-Wertes, des physikalischen Adressfeldes des ATT- Eintrages und des Seiten-Offsetteiles der virtuellen Adresse.
  • Ein Versuch wird sodann gemacht, das AT-Feld der aufgesuchten Pufferspeicherzeile mit einem Teil des physikalischen Adressfeldes des ATT- Eintrages abzugleichen, d. h. eine "Gesundheits"-Prüfung durchzuführen. Wenn das AT Feld übereinstimmt, so sucht der Prozessor das Datenfeld der Pufferspeicherzeile unter Verwendung des Seiten-Offsetteiles der VA auf. Wenn das AT Feld nicht übereinstimmt, so wird die Ziel-Pufferspeicherzeile aus dem Hauptspeicher aufgesucht und der Wegelement-Wert sowohl in der ATT als auch in dem Hauptspeicher wird fortgeschrieben. In dem Fall, wo keine verfügbare Pufferspeicherzeile vorliegt, d. h. wo die sieben entsprechenden "Wege" besetzt sind, wird eine alte Pufferspeicherzeile für den Ersatz ausgewählt. Bei dieser Verwirklichung werden "schmutzige", d. h. modifizierte Pufferspeicherzeilen in den Hauptspeicher zurück geschrieben, wenn sie aus den Pufferspeicher ausgespühlt werden.
  • Umgekehrt wird, wenn keine Übereinstimmung zwischen dem virtuellen Adressfeld von einem der ATT Einträge und einem Seiten-Indexzeil der virtuellen Adresse vorliegt, ein Versuch unternommen, den ATT-Eintrag aus dem Hauptspeicher aufzusuchen. Beim Abruf des ATT-Eintrages aus dem Hauptspeicher wird auf den Pufferspeicher, wie zuvor beschrieben, Zugriff genommen. Wenn jedoch der ATT-Eintrag nicht in dem Hauptspeicher vorliegt, d. h. ein Seitenfehler vorliegt, so muß ein neuer ATT-Eintrag gebildet werden.
  • Zusammengefasst geben Wegelemente vorteilhaft einen effizienten und kompakten Mechanismus zum direkten Indizieren einer einzelnen Pufferspeicherzeile vor, wodurch in großem Umfang ein zweiter Pegel von Vergleichen von mehreren AT-Werten auf eine einzige "Gesundheits"-Prüfung reduziert wird, unabhängig von der Anzahl von Segmenten in dem Pufferspeicher. Ein Vorabruf von Daten aus der indizierten Pufferspeicherzeile ist nunmehr möglich, was den Aufsuchprozess weiter geradlinig macht und die Pufferspeicher- Zugriffsgeschwindigkeit wesentlich erhöht. Zusätzlich kann die kompakte ATT als Teil des Prozessor-IC's hergestellt werden, ohne dass die Prozessorausbeute wesentlich vermindert wird.
  • Beschreibung der Zeichnungen
  • Die Ziele, Merkmale und Vorteile des Systems der vorliegenden Erfindung gehen aus der folgenden Beschreibungen hervor, wobei:
  • Fig. 1 ein Blockdiagramm eines Uni-Prozessor-Computersystems ist.
  • Fig. 2 ein Blockdiagramm eines Multi-Prozessor-Computersystems ist.
  • Fig. 3A ein Blockdiagramm ist, das einen Einweg-Pufferspeicher veranschaulicht.
  • Fig. 3B ein Aussuchen von Daten aus einem Zweiweg-Pufferspeicher veranschaulicht.
  • Fig. 4 ein Aussuchen von Daten aus einem 7-Weg-Pufferspeicher unter Verwendung einer virtuellen Adresse veranschaulicht.
  • Fig. 5 und 6 Blockdiagramme eines Uni-Prozessor-Computersystems und eines Multi-Prozessor-Computersystems der vorliegenden Erfindung sind.
  • Fig. 7 ein Blockdiagramm ist, das ein Ausführungsbeispiel einer kompakten Adressen-Umsetzungstabelle (ATT) veranschaulicht, die geeignet für den Einschluss in die Prozessoren der Fig. 5 und 6 ist und dem Zugriff eines Mehrweg-Pufferspeichers dient.
  • Fig. 8A, 8B und 8C Flussdiagramme sind, die ein Verfahren zum Zugriff eines Mehrweg-Pufferspeichers unter Verwendung der ATT von Fig. 7 veranschaulichen.
  • Beschreibung des bevorzugten Ausführungsbeispieles
  • In der folgenden Beschreibung geben zahlreiche Einzelheiten ein sorgfältiges Verständnis der Erfindung vor. Diese Einzelheiten umfassen Funktionsblöcke und eine beispielhafte Adressen-Umsetzungstabelle (ATT,) um einen Designer bei der Verwirklichung eines wirksamen Pufferspeicher-Etikettierschemas zu unterstützen. Während das Pufferspeicher-Etikettierschema der vorliegenden Erfindung unter Bezugnahme auf spezifische Pufferspeicher- und Computer-Architekturen beschrieben wird, ist die Erfindung zusätzlich auf einen weiten Bereich von Speicher- und System-Architekturen anwendbar. Andererseits werden wohlbekannte Schaltkreise und Strukturen nicht in Einzelheiten beschrieben, um die Erfindung nicht unnötigerweise undeutlich zu machen.
  • Obgleich die vorliegende Erfindung nützlich im Zusammenhang sowohl mit einem Uni-Prozessor-System 500 als auch mit einem Multi-Prozessor-System 600 der Fig. 5 und 6 ist, wird für die Zwecke der Erläuterung die ATT im Zusammenhang mit dem Uni-Prozessor-System 500 veranschaulicht. Computersysteme 500, 600 umfassen einen Hauptspeicher 510, 610, eine Systemverbindung 120, einen Hauptspeicher 130, eine Massenspeichereinrichtung 140, einen Monitor 160 und eine Tastatur/Maus 170.
  • Gemäß der Erfindung umfassen Systeme 500, 600 ebenfalls einen Pufferspeicherverwalter (cm) 510a und CM's 611a, 612a, ... 619a zur Verwendung mit den entsprechenden ATT's 510b und 611b, 612b, ... 619b. In diesem Beispiel ist der Hauptspeicher 530 logisch in 8K-Byte-Seiten unterteilt. Virtuelle Adressen umfassen einen 51-Bit-Indexteil zum Indizieren von einer Abgrenzung einer ausgewählten Seite und einen 13-Bit-Offsetteil zum Zugriff auf ein Zielbyte innerhalb der ausgewählten Seite. In gleicher Weise umfassen physikalische Adressen einen 31-Bit-Seitenindexteil und einen 13-Bit- Seitenoffsetteil.
  • Aufbau der Etikettiertabelle und des Pufferspeichers
  • Fig. 7 zeigt eine beispielhafte kompakte Adressen-Umsetztabelle (ATT) 720, eine virtuelle Adresse (VA) 830 und eine physikalische Adresse (PA) 740 zum wirksamen Zugriff auf einen 7Weg-Pufferspeicher 710. Die ATT 720 und der Pufferspeicher 710 sind entsprechend repräsentativ für die ATT S 10b und den Pufferspeicher 550.
  • Gemäß der vorliegenden Erfindung wird anstelle des Streichens von nützlicher Weginformation, die verfügbar ist, wenn eine Pufferspeicherzeile erstmals in dem Pufferspeicher 710 gespeichert wird, die Weginformation in der ATT 720 für eine spätere Verwendung gespeichert. Bei dieser Verwirklichung geben "Wegelemente" der ATT 720 einen wirksamen Mechanismus für die Speicherung der Weginformation vor. Demgemäß umfaßt jeder der 512 Einträge der ATT 720, z. B. der Eintrag 720a ein Identifizierfeld, z. B. ein VA-Feld und ein PA Feld und zwei oder mehr Wegelemente. Da der Hauptspeicher 530 und die ATT 720 seitenorientiert sind, während der Pufferspeicher 710 unter Verwendung von Pufferspeicherzeilen organisiert ist, entspricht die Anzahl der Wegelemente in jedem ATT-Eintrag dem Verhältnis von Pufferspeicherzeilen zu einer Speicherseite. In diesem Beispiel umfaßt jeder Eintrag der ATT 720 128 Wegelemente. Es sei vermerkt, dass die Wegelemente entweder in der gleichen RAM-Struktur wie die VA- und PA Felder oder in einer getrennten RAM- Struktur gespeichert werden können.
  • Die Anzahl der Bits in jedem Wegelement ist abhängig von der Anzahl von "Wegen". Ein Wegelement-Wert ist für einen ungültigen Wert reserviert. Somit ist die Anzahl der Weg-Bit(s) gleich dem Log 2 der Anzahl von Weg(en) plus eins (Log&sub2;(Weg + 1)). In diesem Beispiel werden Dreibit-Wegeelemente verwendet, um einen 7-Weg-Pufferspeicher 710 zu unterstützen.
  • Der Pufferspeicher 710 ist ein assoziativer 7-Weg-Pufferspeicher, der in sieben wegorientierte Segmente 711, 712, ... 717 mit zwei Megabyte unterteilt ist. Jedes Segment umfaßt 32K-Pufferspeicherzeilen, wobei jede Pufferspeicherzeile 64 Byte lang ist. Um auf den Pufferspeicher 710 rasch zuzugreifen, kann der CM 510a als Teil des Prozessors 510 hergestellt sein, wie dies in Fig. 5 gezeigt ist. Ferner ist die ATT 720 kompakt in der Größe und kann ebenfalls als ATT 510b in dem Prozessor-IC enthalten sein.
  • Zugriff auf Daten aus dem Pufferspeicher unter Verwendung der Etikettiertabelle
  • Bezugnehmend nunmehr auf das Flußdiagramm der Fig. 8a wird, wenn der Prozessor 510 einen Zugriff auf einen Speicherplatz in dem Hauptspeicher 630 benötigt, eine anfängliche Suche in dem Pufferspeicher 710 unternommen. Zunächst vergleicht der CM 510a den Seitenindexteil der virtuellen Adresse (VA) 730 mit dem VA-Feld eines jeden Eintrages in der ATT 720 (Schritt 820).
  • Wenn eine Übereinstimmung in der ATT 720 (Schritt 825) vorliegt, z. B. eine Übereinstimmung mit dem ATT Eintrag 720a, so sucht sodann der CM 510a ein Wegelement aus dem Eintrag 720a unter Verwendung des Seitenoffsetteiles von VA 730 (Schritt 840) auf. Der Wegelement-Wert wird sodann auf Gültigkeit getestet (Schritt 850). In diesem Beispiel sind gültige binäre Bitwerte für Wegelemente "000b", "001b", ... "110b" entsprechend dem ersten Segment 711, dem zweiten Segment 712 und dem siebten Segment 717 des Pufferspeichers 710. Der Wegelement-Wert "111b" ist ungültig und zeigt einen Pufferspeicher (Zeilen)-Fehltreffer an. Speicher-Fehltreffer werden in einer Weise gehandhabt, wie es unten im Schritt 880 beschrieben wird.
  • Wenn der Wegelement-Wert gültig ist, indiziert der CM 510a eine Ziel- Pufferspeicherzeile, z. B. die Zeile 712a unter Verwendung des Wegelement- Wertes, des PA Feldes, des ATT-Eintrages 720a und des Seitenoffsetteiles von VA 730 (Schritt 860). Als nächstes wird eine "Gesundheits"-Prüfung ausgeführt durch Vergleich des Adressenhinweis(AT)-Feldes der Ziel-Pufferspeicherzeile mit dem PA-Feld des ATT-Eintrages 720a (Schritt 870). Unterdessen kann der CM 510a wahlweise spekulativ das Datenfeld der Ziel-Pufferspeicherzeile 712a von dem Pufferspeicher 710 bei Vorwegnahme eines Pufferspeichertreffers abrufen. Es sei vermerkt, dass die Gesundheitsüberprüfung nur mit dem AT-Feld einer einzigen Pufferspeicherzeile 712a erfolgt, unabhängig von der Anzahl der Segmente in dem Pufferspeicher 710 (Schritt 875).
  • Nach dem Durchlauf der Gesundheitsprüfung, d. h. bei einem Pufferspeicher (Zeilen) Treffer wird das spekulativ abgerufene Datenfeld der Ziel- Pufferspeicherzeile 712a dem anfordernden Prozessor 510 vorgegeben (Schritt 890). Wenn die Gesundheitsprüfung fehlschlägt, d. h. ein Pufferspeicher- Fehltreffer vorliegt, müßte dann eine neue Ziel-Pufferspeicherzeile aus dem Hauptspeicher 530 aufgesucht werden, wie dies unten beschrieben wird (s. Schritt 880, der unten in Einzelheiten beschrieben ist).
  • Wenn umgekehrt ein übereinstimmender ATT-Eintrag nicht in der ATT 720 vorliegt (Schritt 825), wird ein Versuch unternommen, einen übereinstimmenden ATT-Eintrag aus dem Hauptspeicher 530 abzurufen (830). In dem Fall, wo ein übereinstimmender ATT-Eintrag in dem Hauptspeicher 530 aufgefunden wird (835), wird die ATT 720 fortgeschrieben (s. Schritt 838, der in Einzelheiten unten beschrieben wird). Als nächstes führt der CM 510a den Schritt 840 über den Schritt 880 aus, wie oben beschrieben wurde.
  • Rückkehrend zu dem Test 835 wird, wenn ein übereinstimmender ATT-Eintrag im Hauptspeicher 530 nicht lokalisiert werden kann, d. h. wenn ein Seitenfehler vorliegt, ein neuer ATT-Eintrag für die Tabelle 720 in der unten beschriebenen Weise gebildet (s. Schritt 837, der unten in Einzelheiten beschrieben wird).
  • Fortschreibung eines Eintrages der Adressen-Umsetzungstabelle (ATT) (Schritt 838)
  • Fig. 8b ist ein detailliertes Flußdiagramm, das den Prozeß der Fortschreibung eines Eintrages in der ATT 720 veranschaulicht. Zunächst tastet der CM 510a die ATT 720 bei der Suche nach einem freien ATT-Eintrag ab (Schritt 630a). Wenn die ATT 720 voll ist, wird ein alter (vorliegender) ATT-Eintrag für den Ersatz ausgewählt (Schritt 838b). Eine Anzahl wohlbekannter Algorithmen kann verwendet werden, um den alten ATT-Eintrag auszuwählen, z. B. den zuletzt benutzten (LRU). Der ausgewählte alte ATT-Eintrag wird sodann zurück in den Hauptspeicher 530 geschrieben (Schritt 838c).
  • In jedem Fall (Test 838a) wird der übereinstimmende oder neue ATT-Eintrag in die ATT 720 geschrieben (Schritt 838d).
  • Es sei vermerkt, dass der alte ATT-Eintrag temporär durch den CM 510a gerade in dem Fall zurückgehalten werden kann, wo eine (schmutzige) Pufferspeicherzeile in den Hauptspeicher 530 zurückgeschrieben werden muß. Eine Pufferspeicherzeile ist "schmutzig", wenn ihr Inhalt sich von der älteren Kopie im Hauptspeicher 530 unterscheidet. Bei dieser Verwirklichung wird jedoch zum Zwecke der Wirksamkeit die Pufferspeicherzeile (n), die dem alten ATT-Eintrag zugeordnet ist, nicht in den Hauptspeicher 530 zurückgeschrieben, es sei denn die Pufferspeicherzeile (n) ist sowohl "schmutzig" als auch nachfolgend von dem Pufferspeicher 710 ausgespült.
  • Ersatz einer Pufferspeicherzeile nach einem Pufferspeicher (Zeilen)-Fehltreffer (Schritt 880)
  • Fig. 8C ist ein detailliertes Flußdiagramm, das einen Ersatz einer Pufferspeicherzeile im Pufferspeicher 710 veranschaulicht. Wenn die Ziel- Pufferspeicherzeile nicht in dem Pufferspeicher 710 aufgefunden wird, d. h. bei einem Pufferspeicher-Fehltreffer, muß die Ziel-Pufferspeicherzeile aus dem Hauptspeicher 530 aufgesucht werden (881). Da das Datenfeld der aufgesuchten (neuen) Ziel-Pufferspeicherzeile rasch den Prozessor 510 vorgegeben werden kann (Schritt 882), kann das Puffern der neuen Ziel-Pufferspeicherzeile in dem Pufferspeicher 710 neben dem kritischen Weg in bezug auf den Prozessor 110 vervollständigt werden.
  • Der CM 510a sucht nach einem geeigneten Speicherort in dem Pufferspeicher 710 aus sieben möglichen Pufferspeicherzeilen entsprechend den sieben Segmenten 711, 712, ... 717 zum Puffern der Ziel(neuen)-Pufferspeicherzeile (Schritt 883). Bei dieser Verwirklichung wird der geeignete Pufferspeicher-Speicherplatz für den Ersatz ausgewählt durch Verwendung eines Algorithmus aus einer Anzahl wohlbekannter Algorithmen, z. B. LRU. Wenn der Inhalt der ausgewählten Pufferspeicherzeile, d. h. die alte Pufferspeicherzeile "schmutzig" ist, z. B. wenn das "Zustands"-Bit gesetzt ist, so muß die alte Pufferspeicherzeile zurück in den Hauptspeicher 530 unter Verwendung des PA-Feldes der ATT 720 (Schritt 884) kopiert werden.
  • Die Ziel(neue)-Pufferspeicherzeile kann nun in dem ausgewählten Speicherplatz der Pufferspeicherzeile gespeichert werden (Schritt 885).
  • Als nächstes wird der Wegelement-Wert des übereinstimmenden/fortgeschriebenen ATT-Eintrages fortgeschrieben (Schritt 886). Zusätzlich wird der gleiche Wegelement-Wert im Hauptspeicher 530 gespeichert, um die Ziel-Pufferspeicherzeile als "zuvor gepuffert" zu markieren (Schritt 887).
  • Die Speicherung des Wegelement-Wertes im Hauptspeicher 530 zur Markierung einer zuvor gepufferten Pufferspeicherzeile verhindert ein "Pseudonym"-Problem. Das Pseudonym-Problem tritt auf, wenn der CM 510a versucht, eine zweite Pufferspeicherzeile zu puffern, die eine unterschiedliche VA aber eine identische PA besitzt. In einer solchen Situation sollten beide ATT-Einträge den gleichen Wegelement-Wert beinhalten, entsprechend der gemeinsamen Pufferspeicherzeile. Somit wird durch Speicherung des Wegelement-Wertes im Hauptspeicher 530 jedesmal, wenn eine Pufferspeicherzeile gepuffert wird, später wenn der CM 510a die gleiche Pufferspeicherzeile zu erreichen versucht (d. h. gleiche PA aber unterschiedliche VA), der CM 510a in die Lage versetzt, den gleichen Wegelement-Wert dem zweiten ATT Eintrag zuzuordnen, so dass beide ATT- Einträge die einzige Kopie der gepufferten Zeile im gepufferten Speicher 710 indexieren können.
  • In einem anderen Ausführungsbeispiel werden anstelle der Speicherung von Wegelementen im Hauptspeicher 530 jedesmal, wenn ein ATT-Eintrag in die ATT 720 geladen wird, alle entsprechenden Wegelemente ungültig gemacht. Nachfolgend werden Pufferspeicherzeilen-Fehltreffer auftreten und die Wegelemente werden fortgeschrieben. Dies eliminiert das Erfordernis der Speicherung der Wegelement-Information im Hauptspeicher 530, wenn ein ATT- Eintrag ersetzt wird.
  • In noch einem weiteren Ausführungsbeispiel werden zusätzlich zu dem "Wegelement ungültig"-Zustand, Zustände wie z. B. "gemeinsam" benutzt zu jedem Wegelement in der ATT 720 gespeichert. Eine gemeinsam benutzte Pufferspeicherzeile kann nur durch den CM 510a gelesen werden und somit niemals "schmutzig" sein. Somit verursachen duplizierte gemeinsam benutzte Pufferspeicherzeilen kein Pseudonym-Problem. Wenn nachfolgend das Bedürfnis zum Schreiben in gemeinsam benutzte Pufferspeicherzeilen entsteht, muß der CM 510a zunächst abgetastet werden, um duplizierte Kopien der Ziel- Pufferspeicherzeile zu eliminieren (invalidieren), bevor über die (einzige) verbleibende gemeinsam benutzte Pufferspeicherzeile geschrieben wird und ihr Zustand von gemeinsam benutzt in schmutzig geändert wird.
  • In einem noch weiteren Ausführungsbeispiel wird die Weginformation nicht in dem Hauptspeicher 530 gespeichert. Stattdessen wird bei einem Pufferspeicher- Fehltreffer das Pseudonym-Problem vermieden durch Vergleich des AT-Feldes aller sieben Wege mit der angeforderten Adresse, um herauszufinden, ob die angeforderte Pufferspeicherzeile bereits in dem Pufferspeicher 710 vorliegt. Diese Vergleiche können parallel mit dem Speicherzugriff erfolgen. Das Schema ist effektiver als der Stand der Technik, da der Mehrweg-Vergleich nur benötigt wird, wenn die Wegelement-Information nicht aus der ATT 720 verfügbar ist.
  • Seitenfehler (Schritt 837)
  • Ein Seitenfehler tritt auf, wenn ein übereinstimmender Tabelleneintrag nicht im Hauptspeicher 530 aufgefunden werden kann und ein neuer ATT-Eintrag, z. B. der Eintrag 720a in der ATT 720 gebildet werden kann. Nachfolgend wird die ATT 720 fortgeschrieben, wie im Schritt 838 zuvor beschrieben wurde. Die Ziel- Pufferspeicherzeile wird sodann aus dem Hauptspeicher 530 aufgesucht, die Daten dem Prozessor 510 vorgegeben und das entsprechende Wegelement des ATT-Eintrages 720a wird fortgeschrieben, wie dies im Schritt 880 zuvor beschrieben wurde. In dem Fall, wo die Zielseite nicht in dem Hauptspeicher 530 aufgefunden wird, wird die Zielseite aus der Massenspeichereinrichtung 140 aufgesucht und im Hauptspeicher 530 gespeichert.
  • Vorteile der Verwendung von Wegelementen
  • Wegelemente der vorliegenden Erfindung bieten eine Anzahl von Vorteilen gegenüber dem Stand der Technik.
  • Diese Wegelemente bilden eine wirksame und kompakte Ablage für Weginformation des Pufferspeichers 710 und ermöglichen die Herstellung der ATT 720 als Teil des Prozessors 510 ohne wesentliche Erhöhung der Größe des Prozessor-IC's, während die Zugriffsgeschwindigkeit des Pufferspeichers 710 erhöht wird.
  • Zusätzlich wird der zweite Pegel der Vergleiche von AT-Werten in großem Maß ebenfalls vereinfacht. Da die Wegelemente einen direkten Index zu einer einzelnen Ziel-Pufferspeicherzeile eines einzelnen Segmentes vorgeben, z. B. dem Segment 712 des Pufferspeichers 710, muß nur ein einziger Vergleich des ATT- Wertes der Pufferspeicherzeile, d. h. eine einzige Gesundheitsprüfung durchgeführt werden, unabhängig von der Anzahl der Segmente in dem beispielhaften Pufferspeicher 710. Ferner ist ein Vorabruf des Datenteiles der Ziel-Pufferspeicherzeile nunmehr möglich, was ferner den Aufsuchprozeß vereinfacht und die Pufferspeicher-Zugriffsgeschwindigkeit wesentlich erhöht.
  • Rahmen der Erfindung
  • Während die Erfindung unter Bezugnahme auf spezifische Ausführungsbeispiele beschrieben worden ist, sind zahlreiche Hinzufügungen und Modifikationen möglich, ohne dass von dem Rahmen der Erfindung abgewichen wird, wie er durch die folgenden Ansprüche definiert ist. Z. B. kann die Anzahl der Wege größer oder kleiner sein. Zusätzlich kann die Größe der Pufferspeicherzeile und der Seite ebenfalls kleiner oder größer sein.

Claims (7)

1. Ein Verfahren zum Zugriff auf einen Mehrweg-Pufferspeicher (550, 710), der einem Computersystem (500) mit einem Prozessor (510) und einem Hauptspeicher (530) zugeordnet ist, wobei der Mehrweg-Pufferspeicher mehrere Pufferzeilen (711) besitzt, die in zwei- oder mehr Segmente entsprechend der Zahl der Wege des Mehrweg-Pufferspeichers unterteilt sind, wobei das Verfahren die Schritte umfasst::
Empfang einer virtuellen Adresse (730), einer Ziel-Pufferspeicherzeile, wobei die virtuelle Adresse der Ziel-Pufferspeicherzeile einen Seiten-Indexteil und einen Seiten-Offsetteil besitzt;
Anpassung (825) eines virtuellen Adressfeldes eines Adressen- Übersetzungstabellen (ATT)-Eintrages (720a) an den Seiten-Indexteil;
Wiederauffinden (840) eines Wegelementes des ATT-Eintrages unter Verwendung des Seiten-Offsetteiles;
Indizierung (860) einer einzelnen Pufferspeicherzeile eines Einzelsegmentes des Mehrweg-Pufferspeichers unter Verwendung des Wegelementes, eines physikalischen Adressfeldes des ATT-Eintrages und des Seiten-Offsetteiles;
Anpassung (870) eines Adressenhinweis (AT-Feldes) der einzelnen Pufferspeicherzeile an das physikalische Adressfeld; und
Wiederauffinden (890) eines Datenfeldes der einzelnen Pufferspeicherzeile unter Verwendung des Seiten-Offsetteiles.
2. Verfahren nach Anspruch 1, wobei der Schritt der Anpassung des virtuellen Adressfeldes den Schritt umfasst::
Wiederauffinden des Inhaltes des ATT-Eintrages aus dem Hauptspeicher;
Auswahl eines alten ATT-Eintrages zum Rückschreiben in den Hauptspeicher; und
Rückschreiben des ausgewählten alten ATT-Eintrages in den Hauptspeicher.
3. Verfahren nach Anspruch 1, wobei der Schritt der Anpassung des AT-Feldes den Schritt umfasst::
Wiederauffinden des Inhaltes der einzelnen Pufferspeicherzeile aus dem Hauptspeicher und Fortschreiben des Wegelementes; Auswahl einer alten Pufferspeicherzeile des Mehrweg-Pufferspeichers zum Rückschreiben in den Hauptspeicher; und
Rückschreiben der ausgewählten alten Pufferspeicherzeile in den Hauptspeicher.
4. Computersystem (500) aufweisend:
einen Prozessor (510), der an einen Mehrweg-Pufferspeicher (550, 710) mit mehreren Pufferspeicherzeilen (711) angeschlossen ist, die in zwei oder mehr Segmente entsprechend der Anzahl der Wege des Mehrweg-Pufferspeichers unterteilt sind, wobei der Prozessor umfasst:
eine Adressen-Übersetzungstabelle (ATT) (510b, 720) mit mehreren Einträgen, wobei jeder Eintrag ein Identifizierfeld und ein Weginformationsfeld umfasst, das Weginformationsfeld ein Wegelement ist und das Identifizierfeld des einen Eintrages eine virtuelles Adressfeld und ein physikalisches Adressfeld umfasst; und
einen Pufferspeicherverwalter (510a) (cm), der konfiguriert ist, um
eine Adresse einer Ziel-Pufferspeicherzeile zu empfangen, wobei die Adresse der Ziel-Pufferspeicherzeile einen Seiten-Indexteil und einen Seiten-Offsetteil besitzt und die Adresse der Ziel-Pufferspeicherzeile eine virtuelle Adresse ist;
das Adressfeld des einen Eintrages der Adressen-Übersetzungstabelle an den Seiten-Indexteil anzupassen;
das Weginformationsfeld des einen Eintrages unter Verwendung des Seiten- Offsetteiles wiederaufzufinden; und
eine einzige Pufferspeicherzeile eines einzigen Segmentes des Mehrweg- Pufferspeichers unter Verwendung des Wegelementes, des physikalischen Adressfeldes des einen Eintrages und des Seiten-Offsetteiles zu indizieren;
eine Systemverbindung (120), die an den Prozessor angeschlossen ist; und
einen Hauptspeicher (530), der an die Systemverbindung angeschlossen ist.
5. Computersystem nach Anspruch 4, wobei der Pufferspeicherverwalter konfiguriert ist, um
ein Adresshinweis (AT)-Feld der Pufferspeicherzeile an einen Teil des physikalischen Adressfeldes des einen Eintrages anzupassen; ein Datenfeld der Pufferspeicherzeile unter Verwendung des Seiten-Offsetteiles wieder aufzusuchen; und
das Datenfeld an den Prozessor vorzugeben.
6. Computersystem nach Anspruch 4, wobei der Pufferspeicherverwalter ferner konfiguriert ist, um:
den Inhalt des einen Eintrages von dem Hauptspeicher wieder aufzusuchen;
einen alten Eintrag zum Rückschreiben in den Hauptspeicher auszuwählen; und
den ausgewählten alten Eintrag in den Hauptspeicher zurückzuschreiben.
7. Computersystem nach Anspruch 5, wobei der Pufferspeicherverwalter ferner konfiguriert ist, um:
den Inhalt der Pufferspeicherzeile von dem Hauptspeicher wieder aufzufinden und das Wegelement fortzuschreiben;
eine alte Pufferspeicherzeile des Mehrweg-Pufferspeichers zum Rückschreiben in den Hauptspeicher auszuwählen; und
die ausgewählte alte Pufferspeicherzeile in den Hauptspeicher zurückzuschreiben.
DE69626070T 1995-07-07 1996-07-05 Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers Expired - Fee Related DE69626070T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/499,590 US5778427A (en) 1995-07-07 1995-07-07 Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure

Publications (2)

Publication Number Publication Date
DE69626070D1 DE69626070D1 (de) 2003-03-13
DE69626070T2 true DE69626070T2 (de) 2003-09-25

Family

ID=23985861

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69626070T Expired - Fee Related DE69626070T2 (de) 1995-07-07 1996-07-05 Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers

Country Status (4)

Country Link
US (1) US5778427A (de)
EP (1) EP0752662B1 (de)
JP (1) JPH09223067A (de)
DE (1) DE69626070T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6256712B1 (en) 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6212602B1 (en) * 1997-12-17 2001-04-03 Sun Microsystems, Inc. Cache tag caching
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US6678792B2 (en) 2001-06-22 2004-01-13 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
DE10158393A1 (de) 2001-11-28 2003-06-12 Infineon Technologies Ag Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
JP2005215911A (ja) * 2004-01-29 2005-08-11 Hitachi Ltd 情報処理装置
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US7725620B2 (en) * 2005-10-07 2010-05-25 International Business Machines Corporation Handling DMA requests in a virtual memory environment
US7533198B2 (en) * 2005-10-07 2009-05-12 International Business Machines Corporation Memory controller and method for handling DMA operations during a page copy
TWI377473B (en) * 2008-11-21 2012-11-21 Sunplus Innovation Technology Inc Serial interface cache controller, control method and micro-controller system using the same
US8806137B2 (en) * 2011-06-17 2014-08-12 Lsi Corporation Cache replacement using active cache line counters
US9684601B2 (en) * 2012-05-10 2017-06-20 Arm Limited Data processing apparatus having cache and translation lookaside buffer
US10671543B2 (en) * 2013-11-21 2020-06-02 Samsung Electronics Co., Ltd. Systems and methods for reducing first level cache energy by eliminating cache address tags
US10019368B2 (en) 2014-05-29 2018-07-10 Samsung Electronics Co., Ltd. Placement policy for memory hierarchies
CN105208596A (zh) * 2014-06-17 2015-12-30 中兴通讯股份有限公司 一种表头压缩方法、解压方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699533A (en) * 1970-10-29 1972-10-17 Rca Corp Memory system including buffer memories
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
EP0461926B1 (de) * 1990-06-15 1998-09-02 Compaq Computer Corporation Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
US5418922A (en) * 1992-04-30 1995-05-23 International Business Machines Corporation History table for set prediction for accessing a set associative cache
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read

Also Published As

Publication number Publication date
JPH09223067A (ja) 1997-08-26
EP0752662B1 (de) 2003-02-05
DE69626070D1 (de) 2003-03-13
US5778427A (en) 1998-07-07
EP0752662A1 (de) 1997-01-08

Similar Documents

Publication Publication Date Title
DE69626070T2 (de) Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE69424767T2 (de) Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers
DE69629800T2 (de) Adressenübersetzungsbuffer in einem rechnersystem
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE3688192T2 (de) Seitenorganisierter cachespeicher mit virtueller adressierung.
DE69331039T2 (de) Rechnersystem mit einem Vorausholungscachespeicher
DE69317729T2 (de) Cache-Etikettenspeicher
DE69030945T2 (de) Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE3586635T2 (de) Vorausholungsanordnung fuer einen schnellpufferspeicher.
DE69616223T2 (de) Datenstromvorausladepufferspeicher mit Datenstromfilters
DE69132005T2 (de) Vorrichtung und Verfahren für einen raumsparenden Adressenübersetzungspuffer für inhaltsadressierbaren Speicher
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE68923437T2 (de) Adressenübersetzung für Seiten mehrfacher Grösse.
DE69029173T2 (de) Mikroprozessor
DE68902193T2 (de) Datenspeicheranordnung.
DE69229667T2 (de) Simulierte cachespeicher-assoziativität
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE202017104841U1 (de) Hybriddatenspeichermanagement
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee