DE60320026T2 - Verbessertes speichermanagement für echtzeit-anwendungen - Google Patents

Verbessertes speichermanagement für echtzeit-anwendungen Download PDF

Info

Publication number
DE60320026T2
DE60320026T2 DE60320026T DE60320026T DE60320026T2 DE 60320026 T2 DE60320026 T2 DE 60320026T2 DE 60320026 T DE60320026 T DE 60320026T DE 60320026 T DE60320026 T DE 60320026T DE 60320026 T2 DE60320026 T2 DE 60320026T2
Authority
DE
Germany
Prior art keywords
address translation
memory
translation data
address
tlb
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 - Lifetime
Application number
DE60320026T
Other languages
English (en)
Other versions
DE60320026D1 (de
Inventor
Michael Norman Round Rock Day
Harm Peter Austin HOFSTEE
Charles Ray Austin Johns
James Allan Austin KAHLE
Thuong Quang Austin TRUONG
David Austin SHIPPY
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60320026D1 publication Critical patent/DE60320026D1/de
Application granted granted Critical
Publication of DE60320026T2 publication Critical patent/DE60320026T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

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)
  • Debugging And Monitoring (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • Die Erfindung betrifft im Allgemeinen die Speicherverwaltung in einem Computersystem und insbesondere einen verbesserten Speicheradressen-Umsetzungsmechanismus zur Verbesserung der Leistungsfähigkeit von in einem Computersystem ausgeführten Echtzeit-Anwendungen.
  • In einem modernen Computersystem wird ein als virtueller Speicher bekanntes Verfahren zur Verwaltung der Ressource von physischem oder realem Speicher des Computersystems verwendet. Dieses Verfahren bietet der Anwendung den Anschein einer sehr hohen Speicherkapazität. Ursprünglich wurde das virtuelle Speichersystem zum Lösen des Problems von zu wenig verfügbarem physischem oder realem Speicher entwickelt. Obwohl dies in den meisten modernen Systemen mit reichlich Speicher möglicherweise kein Problem mehr ist, hat sich der Mechanismus des virtuellen Speichers selbst aus anderen Gründen als nützlich erwiesen. Unter anderem vereinfacht der virtuelle Speichermechanismus die Speicherzuordnung und/oder den Speicherschutz sowie die Entwicklung von Anwendungsprogrammen.
  • In einem virtuellen Speichersystem werden virtuelle Adressen in reale Adressen mit Seitentabellen, die eine Vielzahl von Seitentabelleneinträgen (page table entries – PTEs) aufweisen, umgesetzt. Normalerweise werden solche Seitentabellen in einem Hauptspeicher des Computersystems, beispielsweise einem DRAM-Chip, gespeichert. Es gibt jedoch einen Engpass zwischen der CPU und dem Hauptspeicher, da der die CPU und den Hauptspeicher verbindende Speicherbus viel langsamer als die Betriebsgeschwindigkeit der CPU ist. Bei bestimmten Anwendungen, die keine Echtzeit-Antwort benötigen, ist dieser Engpass möglicherweise nicht von Belang. Jedoch kann dieser Engpass für viele Echtzeit-Anwendungen eine merkliche Verzögerung bei der Verarbeitung solcher Anwendungen bewirken.
  • Ein bekanntes Verfahren zum Umgehen dieses Engpassproblems ist die Speicherung von PTEs in einem speziellen als Adressumsetzpuffer (translation lookaside buffer – TLB) bezeichneten Cachespeicher, der sich nahe der Zentraleinheit (CPU) befindet. Normalerweise ist der TLB auf einem Chip in der CPU integriert, um jede mit dem Durchsuchen von Seitentabellen in einem Hauptspeicher verbundene Verzögerung zu beseitigen oder deutlich zu verringern, so lange ein bestimmter Satz von von der CPU gesuchten PTE(s) im TLB gespeichert ist. Wenn der bestimmte Satz von PTE(s) nicht im TLB gefunden wird, wird dieses Ereignis normalerweise als ein TLB-Fehlschlag definiert.
  • Bei Speicherlese- und/oder -schreibanforderungen wird die Abbildung vom virtuellen auf den realen Speicher im Allgemeinen im TLB zwischengespeichert. Wenn ein TLB-Fehlschlag vorliegt, muss spezielle Hardware oder Software den TLB erneut mit dem korrekten PTE laden. Ein erneuter Software- oder Hardware-Ladevorgang des TLB kann hinsichtlich der Leistungsfähigkeit ziemlich kostspielig werden, da ein solcher erneuter Ladevorgang das Lesen von PTEs aus dem Hauptspeicher und das Suchen nach einer Übereinstimmung erforderlich machen würde. Normalerweise können bis zu drei Cache-Zeilenfehlschläge nötig sein, um eine Übereinstimmung zu finden. In Echtzeit-Anwendungen ist ein TLB-Fehlschlag daher nicht wünschenswert.
  • EP 1 182 569 A1 (Texas Instruments Inc.) beschreibt einen TLB, der eine Teilgruppe von TLB-Einträgen unter Verwendung eines speziellen, von einem Task-Kennzeichner (task identifier) bezeichneten Befehls sperren kann. Sowohl die Task-Kennzeichner als auch die Sperrmarkierungen (locking flags) werden in TLB-Einträgen gespeichert.
  • US 2002/0053006 A1 (Kawamoto et al.) beschreibt eine Ersatzsteuerung für einen Cachespeicher, in dem ein in jeder Cache-Zeile gespeicherter Gruppenkennzeichner (group identifier) kennzeichnet, welche Gruppenmaßnahme (group policy) auf eine gegebene Zeile angewandt wird. Eine Gruppendefinitionstabelle speichert Gruppenmaßnahmen. Die Gruppenkennzeichner können Adressbereichen entsprechen.
  • EP 0 856 797 A1 (SGS-Thomson Microelectronics Ltd.) beschreibt ein Partitionierungsschema für einen Cachespeicher, in dem ein bestimmter Anzeiger von einem Prozessstatusspeicher bereitgestellt und zum Begrenzen von Kandidaten zum Ersetzen für den Prozess auf bestimmte Cachespeicher-Partitionen verwendet wird.
  • Die vorliegende Erfindung stellt ein Verfahren zur Verbesserung der Speicherverwaltung in einem Computersystem, wie es in Anspruch 1 beansprucht wird, sowie eine entsprechende Vorrichtung und ein Computerprogramm, wie sie in weiteren Ansprüchen beansprucht werden, bereit.
  • Zum umfassenderen Verständnis der vorliegenden Erfindung und deren Vorteile wird nun auf die folgenden Beschreibungen in Verbindung mit den begleitenden Zeichnungen Bezug genommen, in denen:
  • 1 eine Übersichtsdarstellung ist, die einen verbesserten Speicherverwaltungsmechanismus für Echtzeit-Anwendungen zeigt;
  • 2 ein ausführlicheres Blockschaltbild ist, das eine bevorzugte Ausführungsform eines verbesserten Speicherverwaltungsmechanismus für Echtzeit-Anwendungen zeigt; und
  • 3 ein Beispiel einer Ersatzverwaltungstabelle (replacement management table – RMT) ist, die in Verbindung mit dem verbesserten Speicherverwaltungsmechanismus von 2 verwendet werden muss.
  • Es sei darauf hingewiesen, dass, wenn nicht anders angegeben, alle hierin beschriebenen Funktionen in Hardware oder Software oder einer Kombination aus beidem ausgeführt werden können. In einer bevorzugten Ausführungsform werden die Funktionen jedoch, wenn nicht anders angegeben, von einem Prozessor, beispielsweise einem Computer oder einem elektronischen Datenprozessor, gemäß einem Code, beispielsweise einem Computerprogrammcode, Software und/oder integrierten Schaltkreisen ausgeführt, die zum Ausführen solcher Funktionen codiert sind.
  • Mit Bezugnahme auf 1 der Zeichnungen bezeichnet die Bezugsziffer 100 allgemein eine Übersichtsdarstellung, die einen verbesserten Speicherverwaltungsmechanismus für Echtzeit-Anwendungen zeigt. Im Allgemeinen ist die Übersichtsdarstellung 100 auf ein Computersystem anwendbar, das einen virtuellen Speicher verwendet. Die meisten modernen Computersysteme gehören zu dieser Kategorie. Eine virtuelle Adresse 102 wird unter Verwendung von in einer Seitentabelle 106 gespeicherten Seitentabelleneinträgen (PTEs) (nicht gezeigt) und eines Adressumsetzpuffers (TLB) 108 in eine reale oder physische Adresse 104 umgesetzt. Insbesondere beinhaltet die virtuelle Adresse 102 eine virtuelle Seitennummer (virtual Page number – VPN) 102A und einen Seitenversatz (page Offset) 102B. Ähnlich enthält die reale Adresse 102 eine Seitenrahmennummer (page frame number – PFN) 104A und einen Seitenversatz 104B. Vorzugsweise wird nur die VPN 102A der virtuellen Adresse 102 in die PFN 104A der realen Adresse 104 umgesetzt. Der Seitenversatz 102B wird ohne Änderung in den Seitenversatz 104B kopiert.
  • Außerdem wird ein Hardware- und/oder Software-Algorithmus 110 zum Ersetzen von Seiten (page replacement algorithm – PRA) verwendet, um den TLB zu unterstützen, wenn ein TLB-Fehlschlag auftritt und ein PTE im TLB durch einen neuen PTE (der die fehlende Seite enthält) aus der Seitentabelle 106 ersetzt werden muss. Ein TLB-Sperrmechanismus (TLB locking mechanism) 112 steht in Wechselwirkung mit dem TLB 108 und dem PRA 110, um den Speicherverwaltungsmechanismus 100 für Echtzeit-Anwendungen zu verbessern.
  • Mindestens eine Zentraleinheit (CPU) (nicht gezeigt) steuert direkt oder indirekt die meisten in diesem Zusammenhang notwendigen Vorgänge und/oder Berechnungen, wenn nicht anders angegeben. Außerdem speichert ein mit der CPU verbundener Speicher (nicht gezeigt) die Seitentabelle 106. Im Falle einer Ausführung in Hardware ist der PRA 110 mit dem TLB 108 und dem TLB-Sperrmechanismus 112 verbunden. Im Falle einer Ausführung in Software wird der PRA 110 in einem Speicher (nicht gezeigt) gespeichert und von der CPU ausgeführt, wenn ein TLB-Fehlschlag auftritt.
  • Im Allgemeinen dauert es verhältnismäßig lange (im Vergleich zum wahrscheinlich kurzen Taktzyklus der CPU), bis die CPU Zugriff auf den die Seitentabelle 106 speichernden Speicher erhält. Der TLB 108 ist ein spezieller Cachespeicher, der zum dynamischen Speichern eines Teils der ursprünglich aus der Seitentabelle 106 erhältlichen PTEs verwendet wird. Insbesondere ist der TLB ein assoziativer Speicher zur Speicherung eines verhältnismäßig kleinen Satzes von PTEs zum schnellen Zugriff. Unter Berücksichtigung des Wertes eines oder mehrerer Felder durchsucht ein Hardware-Mechanismus in einem assoziativen Speicher alle Datensätze und gibt den Datensatz zurück, dessen Feld den gegebenen Wert enthält. Unter Berücksichtigung der VPN 102A durchsucht ein Hardware-Mechanismus im TLB 108 alle PTEs im TLB und gibt die PFN 104A zurück, vorausgesetzt, es tritt kein TLB-Fehlschlag auf. Es sei darauf hingewiesen, dass anstelle des TLB 108 andere Typen von assoziativem Speicher verwendet werden können, ohne vom vorliegenden Erfindungsgedanken abzuweichen.
  • Normalerweise wird der TLB 108 zum dynamischen Zwischenspeichern einiger der PTEs verwendet, die die CPU möglicherweise in naher Zukunft verwenden könnte. Der PRA 110 sagt in der Tat voraus, welche Seiten die CPU in naher Zukunft verwenden könnte und legt dementsprechend fest, welche PTEs zu einem gegebenen Zeitpunkt im TLB 108 gespeichert werden müssen. Nach dem derzeitigen Stand der Technik sind viele verschiedene Algorithmen zum Ersetzen von Seiten bekannt, darunter – jedoch nicht ausschließlich – ein LRU-Algorithmus (least-recently-used (LRU) algorithm) (nicht gezeigt). Wenn ein TLB-Fehlschlag vorliegt, ersetzt der LRU-Algorithmus einen PTE, der für die längste Zeitspanne nicht verwendet wurde, durch einen neuen PTE (z. B. den PTE, der im TLB fehlte).
  • Obwohl dieses Seitenersatzschema die Gesamtleistungsfähigkeit des Speicherverwaltungsmechanismus 100 im Lauf der Zeit optimieren kann, berücksichtigt dieses Schema keinen möglichen nachteiligen Einfluss, den es auf Echtzeit-Anwendungen haben könnte. Es wird gezeigt, dass der TLB-Sperrmechanismus 112 dieses Problem durch die Verwendung des TLB 108 und des PRA 110 überwindet. Im Allgemeinen verhindert der TLB-Sperrmechanismus 112, dass ein Satz von Echtzeit-Anwendungen zugeordneten PTE(s) durch einen anderen Satz von PTEs ersetzt wird, der in die Seitentabelle 106 gehört. Mit anderen Worten, der TLB-Sperrmechanismus 112 sperrt den Satz von Echtzeit-Anwendungen zugeordneten PTE(s), so dass der Satz von PTE(s) ungeachtet der Festlegung des PRA 110 nicht aus dem TLB 108 entfernt werden kann.
  • Es ist wichtig, darauf hinzuweisen, dass die vorliegende Erfindung nicht unbedingt auf Echtzeit-Anwendungen begrenzt ist, obwohl solche Anwendungen von der vorliegenden Erfindung höchstwahrscheinlich profitieren würden. Im Allgemeinen muss die vorliegende Erfindung als auf jeden Typ von Anwendung und/oder alle entsprechenden Anwendungen anwendbar betrachtet werden, bei denen verhindert werden muss, dass sie im Falle eines TLB-Fehlschlags ersetzt werden.
  • Mit Bezugnahme auf 2 wird nun einausführlicheres Blockschaltbild 200 gezeigt, um eine bevorzugte Ausführungsform eines verbesserten Speicherverwaltungsmechanismus für Echtzeit-Anwendungen zu veranschaulichen. Im Allgemeinen erfolgen Speicheranwendungen von einer CPU (nicht gezeigt) in Form einer gültigen Adresse (EA) 202. Die EA 202 wird in eine virtuelle Adresse (VA) 204 umgesetzt, die ihrerseits in eine reale Adresse (RA) 206 umgesetzt wird. Die gültige Adresse (EA) enthält eine gültige Segmentkennung (effective segment ID – ESID) 206A, eine Seitennummer (PN) 206B und einen Versatz 206C. Ähnlich hat die VA 204 eine virtuelle Segmentkennung (VSID) 204A, eine Seitennummer (PN) 204B und einen Versatz 204C. Vorzugsweise wird eine virtuelle Seitennummer (VPN) 204D erzeugt, indem die VSID 204A mit der PN 204B verkettet wird.
  • Die EA 202 wird an einen Segmentumsetzpuffer (segment lookaside buffer – SLB) 208 und einen Adressumsetzpuffer (TLB) 210 weitergeleitet. Der SLB 208 ist so konfiguriert, dass er die EA 202 in die VA 204 umsetzt. Vorzugsweise setzt der SLB 208 die ESID 202A in die VSID 204A um, wohingegen die PN 202B und der Versatz 202C in die PN 204B bzw. den Versatz 204C kopiert werden.
  • Unter Berücksichtigung der VPN 240D und der EA 202 durchsucht die CPU den TLB 210 nach einer Übereinstimmung in Seitentabelleneinträgen (PTEs) (d. h. nach einem PTE-Treffer), indem sie auf alle durch die EA 202 indizierten PTEs zugreift und die VPN 204A vergleicht. Im Falle eines Treffers wird eine reale Seitennummer 212 zurückgegeben. Vorzugsweise wird zur Ausführung eines solchen Vergleichs ein TAG-Komparator 214 zusammen mit einem Logikelement 216 verwendet. Insbesondere ermöglicht das Logikelement 216 die Weiterleitung der RPN 212, wenn die VPN 204D mit einer VPN 218 im TLB 210 übereinstimmt. Wenn die VPN 204D nicht mit der VPN 218 im TLB 210 übereinstimmt, verhindert der TAG-Komparator 214, dass das Logikelement 216 die RPN 212 weiterleitet.
  • Im Falle eines Fehlschlags durchsucht ein TLB-Neulademechanismus (TLB reload mechanism) (nicht gezeigt) eine Seitentabelle (nicht gezeigt) in einem Speicher (nicht gezeigt) und lädt den TLB 210 erneut. Wenn der TLB 210 nach einem Fehlschlag erneut geladen wird, wird in einer herkömmlichen TLB-Struktur ein Algorithmus 220 zum Ersetzen von Seiten (PRA), beispielsweise ein LRU-Algorithmus, verwendet, um anzuzeigen, welcher Satz von PTEs in einer Kongruenzklasse ersetzt werden muss.
  • Im Falle eines erneuten Ladens des TLB werden ein Satz von Bereichsregistern 222, Kategoriekennungen, ein Satz 224 zum Ersetzen, eine Ersatzverwaltungstabelle (RMT) 226 und ein Steuerblock 230 für den Satz zum Ersetzen verwendet, um den zu ersetzenden Satz auszuwählen. Insbesondere die Bereichsregister 222 werden mit der RMT 226 verbunden, um die Kategoriekennungen in die RMT 226 zu übertragen. Das erneute Laden des TLB wird durch Übertragen der EA 202 an die Bereichsregister 222 ausgeführt. Wenn es in den Bereichsregistern 222 einen Treffer gibt, wird eine Kategoriekennung erzeugt und an die RMT 226 weitergeleitet. Die RMT erzeugt RMT-Ersatzsteuerbits, die über einen RMT-Ersatzsteuerbus 232 an den Steuerblock 230 für den Satz zum Ersetzen übertragen werden. Der Steuerbus 230 für den Satz zum Ersetzen verwendet die RMT-Ersatzsteuerbits und den Satz 224 zum Ersetzen aus dem TLB 210 zur Festlegung des zu ersetzenden Satzes.
  • 3 zeigt ein Beispiel der RMT 226. In diesem Beispiel umfasst die RMT 226 eine Matrix von acht Kategoriekennungen (Zeilen) und acht TLB-Sätzen (Spalten). Vorzugsweise veranschaulicht die RMT 226 die Entscheidungen der Betriebssystemsoftware hinsichtlich des Ersatzverwaltungsstatus der Sätze im TLB 210, wenn sie mit einer gegebenen Kategoriekennung korrelieren.
  • In einer bevorzugten Ausführungsform ist die RMT 226 eine softwareverwaltete Tabelle. Die Software verwaltet die Struktur und interpretiert die Bedeutung von RMT-Einträgen. Im Allgemeinen wird die RMT 226 bei der Abbildung eines gültigen Adressbereichs auf einen oder mehrere Sätze des TLB verwendet. Außerdem stellt eine Kategoriekennung (d. h. eine Zeile der RMT 226) einen gegebenen Adressbereich dar. In diesem Beispiel entspricht die Kategoriekennung 0 jedem Adressbereich, der nicht speziell für die anderen Kategoriekennungen bereitgestellt wird. Die gegebene Kategoriekennung wird sodann an die RMT übertragen und von dieser als Index verwendet. Unter Verwendung der Kategoriekennung als Index wird auf die RMT 226 zugegriffen, und die Daten werden auf dem RMT-Ersatzsteuerbus 232 übertragen.
  • In diesem Beispiel ist die RMT 226 eine Acht-mal-acht-Matrix. Mit anderen Worten, der TLB 210 ist 8fach Satz-assoziativ (8-way set associative) (das heißt, er hat 8 Sätze). Daher hat jeder RMT-Eintrag 8 Bits. Insbesondere hat die RMT 226 Einsen ("1") in der Zeile 0 der Kategoriekennung aus den TLB-Sätzen 0 bis 2 und Nullen ("0") im Rest der Zeile definiert. Falls die Daten im TLB ersetzt werden müssen, kann die Kategoriekennung 0 daher in den ersten drei Sätzen, den Sätzen 0 bis 2 des TLB, aktualisiert werden. Außerdem verwendet ausschließliche die Kategoriekennung 0 diese Sätze. Daher sind die Sätze 0 bis 2 des TLB ausschließlich für die Kategoriekennung 0. Die Kategoriekennung 0 stellt eine Standard-Kategoriekennung für eine Adresse bereit, die keinen Treffer im Bereichsregister erzielt.
  • Bei der Kategoriekennung 1 hat die RMT eine "0" in den Sätzen 0 bis 2 und den Sätzen 4 bis 7 und eine "1" für Satz 3 definiert. Alle der Kategoriekennung 1 entsprechenden Daten müssen in den Sätzen 0 bis 2 oder den Sätzen 4 bis 7 nicht ersetzt werden. Stattdessen müssen die Daten im Satz 3 ersetzt werden. Die Kategoriekennung 2 und die Kategoriekennung 3 ersetzen beide denselben Satz, Satz 7. Daher müssen sowohl die Kategoriekennung 2 als auch die Kategoriekennung 3 nur den Satz 7 ersetzen. Die Kategoriekennung 4 hat mehrere Sätze, die gültige Kandidaten für einen Ersatz sind. Dies sind die Sätze 4, 5 und 6.
  • Die endgültige Auswahl des Satzes zum Ersetzen erfolgt durch irgendeinen Algorithmus zum Ersetzen von Seiten (PRA), beispielsweise den LRU-Algorithmus. Mit anderen Worten, bestimmte Sätze werden durch die RMT als zum Ersetzen geeignet markiert, und anschließend wird eine im Auswahlblock 230 für den Satz zum Ersetzen von 2 enthaltene LRU-Algorithmussteuerlogik (nicht gezeigt) zum endgültigen Festlegen der Auswahl des zu ersetzenden Satzes verwendet.

Claims (7)

  1. Verfahren zur Verbesserung der Speicherverwaltung in einem Computersystem mit einer Verarbeitungslogik sowie einem ersten und zweiten Speicher, wobei das Verfahren die folgenden Schritte umfasst: Speichern von Adressumsetzungsdaten zwischen virtuellen Adressen und realen Adressen im ersten Speicher (106); Zwischenspeichern von mindestens einem Teil der Adressumsetzungsdaten im zweiten Speicher (108) zum schnelleren Zugriff der Verarbeitungslogik, wobei der Teil der Adressumsetzungsdaten eine Teilgruppe von Adressumsetzungsdaten enthält, wobei der zweite Speicher sich näher bei der Verarbeitungslogik befindet als der erste Speicher; und Verhindern, dass die Teilgruppe von Adressumsetzungsdaten durch andere, im ersten Speicher gespeicherte Adressumsetzungsdaten ersetzt wird; dadurch gekennzeichnet, dass der Schritt des Verhinderns, dass die Teilgruppe von Adressumsetzungsdaten durch andere, im ersten Speicher gespeicherte Adressumsetzungsdaten ersetzt wird, außerdem die folgenden Schritte umfasst: Erzeugen von einer oder mehreren Kategoriekennungen (Class IDs) durch ein Bereichsregister (222), wobei jede Kategoriekennung einen gegebenen Adressbereich einer gültigen Adresse darstellt; Zugreifen auf eine Ersatzverwaltungstabelle (226) unter Verwendung der einen oder mehreren Kategoriekennungen als Indizes; Abbilden der einen oder mehreren Kategoriekennungen durch die Ersatzverwaltungstabelle auf eine oder mehrere Sätze des mindestens einen Teils der Adressumsetzungsdaten; Feststellen, welcher Satz der Adressumsetzungsdaten auf der Grundlage der Ersatzverwaltungstabelle für ein Ersetzen in Frage kommt; und Ausführen eines Algorithmus zum Ersetzen mit nur dem Satz der Adressumsetzungsdaten, von denen festgestellt wurde, dass sie für ein Ersetzen in Frage kommen.
  2. Verfahren nach Anspruch 1, wobei der erste und der zweite Speicher ein Hauptspeicher bzw. ein Adressumsetzpuffer des Computersystems sind.
  3. Verfahren nach Anspruch 1, wobei die Adressumsetzungsdaten in einer oder mehreren Seitentabellen mit einem oder mehreren Seitentabelleneinträgen gespeichert werden.
  4. Verfahren nach Anspruch 1, wobei die Teilgruppe von Adressumsetzungsdaten für Echtzeit-Anwendungen zugeordnet werden.
  5. Verfahren nach irgendeinem vorhergehenden Anspruch, das außerdem die folgenden Schritte umfasst: Erstellen einer Speicheranforderung von der Verarbeitungslogik in Form einer gültigen Adresse; Erzeugen einer der gültigen Adresse entsprechenden virtuellen Adresse; Durchsuchen des zweiten Speichers nach einem ersten Satz von Adressumsetzungsdaten, bei denen die virtuelle Adresse mit einer realen Adresse übereinstimmt; auf die Feststellung hin, dass der zweite Speicher den ersten Satz von Adressumsetzungsdaten nicht speichert, Durchsuchen des ersten Speichers nach dem ersten Satz von Adressumsetzungsdaten; und auf die Feststellung hin, dass der erste Speicher den ersten Satz von Adressumsetzungsdaten speichert, Laden des ersten Satzes von Adressumsetzungsdaten in den zweiten Speicher, um einen zweiten Satz von Adressumsetzungsdaten im ersten Speicher zu ersetzen, wobei der zweite Satz von Adressumsetzungsdaten nicht für Echtzeit-Anwendungen zugeordnet wird.
  6. Vorrichtung, die ein Mittel umfasst, das zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch geeignet ist.
  7. Computerprogramm, das Befehle zum Ausführen aller Schritte des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch umfasst, wenn das Computerprogramm in einem Computersystem ausgeführt wird.
DE60320026T 2002-12-12 2003-11-21 Verbessertes speichermanagement für echtzeit-anwendungen Expired - Lifetime DE60320026T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/318,541 US7103748B2 (en) 2002-12-12 2002-12-12 Memory management for real-time applications
US318541 2002-12-12
PCT/GB2003/005108 WO2004053698A2 (en) 2002-12-12 2003-11-21 Improved tlb management for real-time applications

Publications (2)

Publication Number Publication Date
DE60320026D1 DE60320026D1 (de) 2008-05-08
DE60320026T2 true DE60320026T2 (de) 2009-05-14

Family

ID=32506386

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60320026T Expired - Lifetime DE60320026T2 (de) 2002-12-12 2003-11-21 Verbessertes speichermanagement für echtzeit-anwendungen

Country Status (11)

Country Link
US (1) US7103748B2 (de)
EP (1) EP1581873B1 (de)
JP (1) JP4129458B2 (de)
KR (1) KR100843536B1 (de)
CN (1) CN100397367C (de)
AT (1) ATE390667T1 (de)
AU (1) AU2003302824A1 (de)
CA (1) CA2505610C (de)
DE (1) DE60320026T2 (de)
IL (1) IL169136A0 (de)
WO (1) WO2004053698A2 (de)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7355601B2 (en) * 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
JP2005132525A (ja) * 2003-10-29 2005-05-26 Toyota Industries Corp 産業車輌における立席型運転席用背もたれ構造
US7519791B2 (en) * 2004-02-06 2009-04-14 Intel Corporation Address conversion technique in a context switching environment
US7089341B2 (en) * 2004-03-31 2006-08-08 International Business Machines Corporation Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
JP4233492B2 (ja) * 2004-06-02 2009-03-04 富士通マイクロエレクトロニクス株式会社 アドレス変換装置
US7840757B2 (en) * 2004-07-29 2010-11-23 International Business Machines Corporation Method and apparatus for providing high speed memory for a processing unit
US20060045031A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization using multiple state machines
US20060047862A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Automatic hardware data link initialization
US7546401B2 (en) * 2004-09-23 2009-06-09 International Business Machines Corporation Byte to byte alignment of multi-path data
US8332592B2 (en) * 2004-10-08 2012-12-11 International Business Machines Corporation Graphics processor with snoop filter
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US20060080511A1 (en) * 2004-10-08 2006-04-13 International Business Machines Corporation Enhanced bus transactions for efficient support of a remote cache directory copy
US7577794B2 (en) 2004-10-08 2009-08-18 International Business Machines Corporation Low latency coherency protocol for a multi-chip multiprocessor system
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7385925B2 (en) * 2004-11-04 2008-06-10 International Business Machines Corporation Data flow control method for simultaneous packet reception
US7260765B2 (en) * 2004-12-17 2007-08-21 International Business Machines Corporation Methods and apparatus for dynamically reconfigurable parallel data error checking
US20060140122A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Link retry per virtual channel
US7499452B2 (en) * 2004-12-28 2009-03-03 International Business Machines Corporation Self-healing link sequence counts within a circular buffer
US20060159023A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation CRC error history mechanism
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7206886B2 (en) * 2005-02-24 2007-04-17 International Business Machines Corporation Data ordering translation between linear and interleaved domains at a bus interface
US7275125B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7234017B2 (en) * 2005-02-24 2007-06-19 International Business Machines Corporation Computer system architecture for a processor connected to a high speed bus transceiver
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7194567B2 (en) * 2005-02-24 2007-03-20 International Business Machines Corporation Method and system for ordering requests at a bus interface
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US7500062B2 (en) * 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
JP2007233615A (ja) * 2006-02-28 2007-09-13 Fujitsu Ltd アドレス変換装置
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
US7908439B2 (en) * 2007-06-25 2011-03-15 International Business Machines Corporation Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache
US8099579B2 (en) * 2007-07-13 2012-01-17 International Business Machines Corporation System and method for cache-locking mechanism using segment table attributes for replacement class ID determination
US8244979B2 (en) * 2007-07-13 2012-08-14 International Business Machines Corporation System and method for cache-locking mechanism using translation table attributes for replacement class ID determination
US20090049272A1 (en) * 2007-08-13 2009-02-19 International Business Machines Corporation Method for improving the performance of software-managed tlb
US8966219B2 (en) * 2007-10-30 2015-02-24 International Business Machines Corporation Address translation through an intermediate address space
US8108617B2 (en) * 2008-02-08 2012-01-31 International Business Machines Corporation Method to bypass cache levels in a cache coherent system
JP5300407B2 (ja) 2008-10-20 2013-09-25 株式会社東芝 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
KR100987332B1 (ko) 2008-11-07 2010-10-18 서울대학교산학협력단 메모리 구조에 따른 메모리 관리 장치
EP2192493A1 (de) 2008-11-28 2010-06-02 ST Wireless SA Verfahren zum Rufen auf Anfrage für eine virtuelle Speicherverwaltung in einem Verarbeitungssystem und entsprechendes Verarbeitungssystem
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
CN102662869B (zh) * 2012-04-01 2015-08-26 龙芯中科技术有限公司 虚拟机中的内存访问方法和装置及查找器
US9003125B2 (en) * 2012-06-14 2015-04-07 International Business Machines Corporation Cache coherency protocol for allowing parallel data fetches and eviction to the same addressable index
US9086980B2 (en) 2012-08-01 2015-07-21 International Business Machines Corporation Data processing, method, device, and system for processing requests in a multi-core system
US9213532B2 (en) 2013-09-26 2015-12-15 Oracle International Corporation Method for ordering text in a binary
US10175896B2 (en) 2016-06-29 2019-01-08 Western Digital Technologies, Inc. Incremental snapshot based technique on paged translation systems
US10353813B2 (en) 2016-06-29 2019-07-16 Western Digital Technologies, Inc. Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
US11216361B2 (en) 2016-06-29 2022-01-04 Western Digital Technologies, Inc. Translation lookup and garbage collection optimizations on storage system with paged translation table
US10235287B2 (en) 2016-06-29 2019-03-19 Western Digital Technologies, Inc. Efficient management of paged translation maps in memory and flash
US10229048B2 (en) 2016-06-29 2019-03-12 Western Digital Technologies, Inc. Unified paging scheme for dense and sparse translation tables on flash storage systems
US10579522B2 (en) * 2016-09-13 2020-03-03 Andes Technology Corporation Method and device for accessing a cache memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727485A (en) 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US5487162A (en) * 1992-02-25 1996-01-23 Matsushita Electric Industrial Co., Ltd. Cache lock information feeding system using an address translator
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
EP0856797B1 (de) 1997-01-30 2003-05-21 STMicroelectronics Limited Cachespeichersystem für gleichzeitig laufende Prozesse
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法
US6442664B1 (en) * 1999-06-01 2002-08-27 International Business Machines Corporation Computer memory address translation system
US6430667B1 (en) * 2000-04-13 2002-08-06 International Business Machines Corporation Single-level store computer incorporating process-local address translation data structures
EP1182569B8 (de) 2000-08-21 2011-07-06 Texas Instruments Incorporated TLB-Ver- und Entriegelungsoperation
JP2002140234A (ja) 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US7020748B2 (en) * 2003-01-21 2006-03-28 Sun Microsystems, Inc. Cache replacement policy to mitigate pollution in multicore processors

Also Published As

Publication number Publication date
US7103748B2 (en) 2006-09-05
JP2006515088A (ja) 2006-05-18
EP1581873A2 (de) 2005-10-05
DE60320026D1 (de) 2008-05-08
ATE390667T1 (de) 2008-04-15
CA2505610A1 (en) 2004-06-24
KR100843536B1 (ko) 2008-07-04
EP1581873B1 (de) 2008-03-26
KR20050088077A (ko) 2005-09-01
IL169136A0 (en) 2007-07-04
AU2003302824A8 (en) 2004-06-30
AU2003302824A1 (en) 2004-06-30
WO2004053698A2 (en) 2004-06-24
JP4129458B2 (ja) 2008-08-06
WO2004053698A3 (en) 2006-01-12
CN1820258A (zh) 2006-08-16
CA2505610C (en) 2009-06-23
CN100397367C (zh) 2008-06-25
US20040117592A1 (en) 2004-06-17

Similar Documents

Publication Publication Date Title
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE102014014076A1 (de) Reduzierte Adressenkonvertierung mit mehreren Seitengrößen
DE3151745C2 (de)
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE19516937A1 (de) Hierarchisches Cachesystem für einen Computer
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102020104701A1 (de) Cache data location system
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE102021116489A1 (de) Verwaltung von Prefetch-Anfragen auf Basis von Stream-Informationen für zuvor erkannte Streams
WO1996023260A1 (de) Verfahren zum betreiben einer adressumsetzvorrichtung
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition