DE102005029852B4 - Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem - Google Patents

Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem Download PDF

Info

Publication number
DE102005029852B4
DE102005029852B4 DE102005029852A DE102005029852A DE102005029852B4 DE 102005029852 B4 DE102005029852 B4 DE 102005029852B4 DE 102005029852 A DE102005029852 A DE 102005029852A DE 102005029852 A DE102005029852 A DE 102005029852A DE 102005029852 B4 DE102005029852 B4 DE 102005029852B4
Authority
DE
Germany
Prior art keywords
tlb
processor
processors
memory
request
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
DE102005029852A
Other languages
English (en)
Other versions
DE102005029852A1 (de
Inventor
Jonathan K. Woodlinville Ross
Dale Steamboat Springs Morris
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102005029852A1 publication Critical patent/DE102005029852A1/de
Application granted granted Critical
Publication of DE102005029852B4 publication Critical patent/DE102005029852B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Abstract

Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem (AP1),
wobei das Multiprozessorcomputersystem (AP1) zumindest drei Prozessoren (P1, P2, P3) und einen Speicher (11), auf den jeder der Prozessoren (P1, P2, P3) zugreifen kann, umfasst, wobei jedem der Prozessoren (P1, P2, P3) ein TLB (T1, T2, T3) zugeordnet ist;
wobei der Speicher (11) eine Mehrzahl von Speicherbereichen (TS1, TS2, TS3) zum Speichern von TLB-Löschdaten umfasst, wobei die TLB-Löschdaten die Adressen angeben, die nach dem Beenden eines Programms (PS1, PS2, PS3), das einer der Prozessoren (P1, P2, P3) ausführt, aus den TLBs (T1, T2, T3) der anderen Prozessoren (P1, P2, P3) zu löschen sind;
wobei der erste Prozessor (P1) einen ersten Speicherbereich (TS1) zum Schreiben seiner TLB-Löschdaten in denselben adressiert, wobei der zweite Prozessor (P2) einen zweiten Speicherbereich (TS2) zum Schreiben seiner TLB-Löschdaten in denselben adressiert, und wobei der dritte Prozessor (P3)...

Description

  • Die vorliegende Erfindung bezieht sich auf eine Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem.
  • Viele moderne Computersysteme verwenden virtuelle Speicherschemata zum Anpassen der Speicheranforderungen der Computerprogramme, die auf diesen Systemen laufen, an verfügbare Speicherressourcen. Ein Betriebssystem weist typischerweise jedem Programm virtuelle Speicheradress-„Seiten” zu, und weist diese virtuellen Speicherseiten physikalischen Speicherseiten zu, vorzugsweise, in Halbleiterdirektzugriffsspeicher (RAM), wobei überschüssige virtuelle Speicherseiten Festplattenpositionen zugewiesen werden, auf einer Prioritätsbasis, wenn die RAM-Kapazität überschritten wird. Die Virtueller-Speicher-Zuweisungen werden in einer Seitentabelle gespeichert, typischerweise in RAM. Damit ein Prozessor nicht jedes Mal einen zeitaufwendigen Zugriff des Hauptspeichers durchführen muss, wenn eine Virtueller-Speicher-Zuweisung gelesen werden muss, können Kopien von zuletzt verwendeten-Seitentabellenzuweisungen in einem TLB zwischengespeichert werden (TLB = translation look-aside buffer = Übersetzungsseitengriffspuffer).
  • Wenn ein Programm endet, kann typischerweise ein Teil des virtuellen Speichers, der demselben zugewiesen ist, anderen Programmen verfügbar gemacht werden. Das Betriebssystem kann den Prozessor, der das Programm ablaufen lässt, anweisen, die nicht länger benötigten virtuellen Speicherseiten in der Seitentabelle freizugeben. Dann müssen alle entsprechenden TLB-Einträge für diesen Prozessor und für jeden anderen Prozessor in einem Multiprozessorsystem gelöscht werden, so dass alle TLBs mit der Seitentabelle übereinstimmen Zu diesem Zweck kann ein Prozessor seinen TLB-Abschuss an eine speziell zugewiesene Stelle in dem Hauptspeicher schreiben und eine Unterbrechung an die anderen Prozessoren senden, die dann die TLB-Abschussdaten lesen, ihre TLBs entsprechend löschen und berichten, wenn ihre Löschvorgänge abgeschlossen sind. Der nicht mehr zugewiesene virtuelle Speicher kann dann für eine Neuzuweisung freigegeben werden.
  • Verschiedene Sperrmechanismen können verwendet werden, um zu verhindern, dass ein Prozessor TLB-Abschussdaten in die TLB-Abschussspeicherposition schreibt, wenn dieselbe durch einen anderen Prozessor verwendet wird. Der Prozessor, der gesperrt ist, wartet, bis der erste TLB-Löschvorgang abgeschlossen ist, bevor derselbe seinen eigenen TLB-Löschvorgang beginnen kann. Das „Warten” kann tatsächlich viel Neuprüfen umfassen, was Systembandbreite verbrauchen kann. Wenn sich die Anzahl von Prozessoren erhöht, erhöhen sich die Frequenz der Konflikte, die Warteperioden und der Bandbreitenverbrauch, wodurch die Skalierbarkeit begrenzt wird.
  • Die US-A-6,119,204 offenbart ein Datenverarbeitungssystem zum Beibehalten der TLB-Kohärenz, wobei das Datenverarbeitungssystem eine Mehrzahl von Prozessoren mit einem Prozessorkern und einem Speicher-Teilsystem umfasst. Innerhalb des Speicher-Teilsystems befindet sich der TLB. Die einzelnen Prozessoren sind über eine gemeinsame Verbindung miteinander verbunden, und können hierüber Signale austauschen. Ein Befehl zur Invalidierung eines TLB-Eintrags, der von einem der Prozessoren stammt, wird über die gemeinsame Verbindung im System verteilt.
  • Die US 2002/0069329 A1 beschreibt ein Verfahren und System zum Löschen eines TLB eines Computersystems.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Steueranordnung zu schaffen, die einen verbesserten Ansatz zur Freigabe von virtuellen Speicherseiten nach der Beendigung eines Programms bereitstellen, um die Häufigkeit von Konflikten zu reduzieren.
  • Diese Aufgabe wird durch eine Steueranordnung gemäß Anspruch 1 gelöst.
  • Ein Hauptvorteil der Erfindung ist, dass Prozessoren sich beim Schreiben ihrer TLB-Abschussliste nicht „abwechseln” müssen. Im Gegensatz zu Systemen, bei denen ein einziger Speicherbereich für alle TLB-Abschussdaten der Prozessoren dient, können unterschiedliche Prozessoren den Speicher, den sie freimachen möchten, gleichzeitig beschreiben. Dies wird wichtig bei Multiprozessorsystemen mit großen Anzahlen von Prozessoren, da sich die Wahrscheinlichkeit gleichzeitiger TLB-Abschüsse mit der Anzahl der Prozessoren schnell erhöht. Diese und andere Merkmale und Vorteile der Erfindung sind von der nachfolgenden Beschreibung mit Bezugnahme auf die folgenden Zeichnungen offensichtlich.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf beiliegende Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Multiprozessorcomputersystem;
  • 2 ein Flussdiagramm eines Verfahrens das in Zusammenhang des Systems in 1 praktiziert wird;
  • 3 ein Flussdiagramm eines Teil des Verfahrens von
  • 2, das einen expliziten Parallelismus zeigt; und
  • 4 ein weiteres Multiprozessorcomputersystem.
  • Ein Multiprozessorcomputersystem AP1 umfasst drei Prozessorknoten N1, N2 und N3, einen flüchtigen physikalischen Speicher 11, eine Festplatte 13 und einen Datenrouter 15. Das System AP1 umfasst drei Knoten, was ausreicht, um die Erfindung zu erklären. Der Überschussvorteil der Erfindung ist jedoch für Ausführungsbeispiele mit mehr Knoten, zum Beispiel 48 oder mehr, größer. Der Knoten N1 umfasst einen Prozessor P1, einen TLB T1 und einen Cache C1. Gleichartig dazu umfasst der Knoten N2 einen Prozessor P2, einen TLB T2 und einen Cache C2. Auch der Knoten N3 umfasst einen Prozessor P3, einen TLB T3 und einen Cache C3. Die Datenkommunikation zwischen Prozessoren P1–P3 und zwischen den Prozessoren und dem Speicher 11 ist über einen Datenrouter 15; außerdem werden Unterbrechungen über den Datenrouter 15 übertragen.
  • Die Festplatte 13 liefert eine nicht flüchtige Langzeitspeicherung für das System AP1. Dieselbe kann ein Betriebssystem OS, Programme einschließlich der Programme PR1–PR4, nicht flüchtige Daten DN und Virtueller-Speicher-Überlaufseiten VMO (wenn der physikalische Speicher zu klein ist, um den ganzen angeforderten virtuellen Speicher aufzunehmen) umfassen. Auf das Einschalten des Systems AP1 hin wird sich ein Teil des Betriebssystems OS in dem Betriebssystemraum OSS des physikalischen Speichers 11 befinden. Das Betriebssystem OS reserviert auch Speicherplatz für eine Prozessspeichertabelle 21, eine Seitentabelle 23 und TLB-Abschusslisten TS1, TS2 und TS3. Die Listen TS1, TS2 und TS3 liefern das Speichern von Abschussdaten für einen jeweiligen Knoten N1, N2 und N3; diese Listen liefern Flags F12, F13, F21, F23, F31 und F32, die anzeigen, ob ein angeforderter Abschuss für jede Kombination von anforderndem Knoten und antwortendem Knoten abgeschlossen wurde. Der Großteil des Speichers 11 ist zuweisbarer physikalischer Speicher 25 für die Verwendung durch die Programme PR1–PR4.
  • Bei diesem Beispiel wird das Programm PR1 an dem Knoten N1 gestartet. Das Betriebssystem OS fordert an, dass ein virtueller Speicherblock für das Programm PR1 reserviert wird und speichert diese Virtueller-Speeicher-zu-Programmzuweisung in der Prozessspeichertabelle 21. Das Betriebssystem OS untersucht die physikalische Seitentabelle 23, um eine freie Region von zuweisbarem physikalischem Speicherplatz 25 zu finden und weist folglich die angeforderten Virtueller-Speicher-Seiten einem freien physikalischen Speicherplatz PS1 zu; der Prozessor P1 markiert dann den Platz PS1 als nicht verfügbar und durch den Prozessor P1 besetzt.
  • Dann wird das Programm PR2 an dem Knoten N2 gestartet. Das Betriebssystem OS untersucht die virtuellen Seitentabelle 21 nach freien virtuellen Speicherseiten und weist einige dem Programm PR2 zu. Eine Instanz des Betriebssystems OS, das auf dem Prozessor P2 läuft, untersucht die physikalische Seitentabelle 23 nach freien physikalischen Speicherseiten; da der Platz PS1 als nicht verfügbar markiert ist, wählt der Prozessor P2 den freien Platz PS2 aus, der dann als durch den Prozessor P2 besetzt markiert wird. Das Programm PR3 wird auf dem Knoten N3 gestartet; der virtuelle Speicherplatz, den dasselbe erfordert, kann nicht den Plätzen PS1 oder PS2 zugewiesen werden, und daher wird dasselbe dem Platz PS3 zugewiesen, der dann als nicht verfügbar und durch den Prozessor P3 besetzt markiert wird. Der Rest des zuweisbaren Speicherplatzes 25 bleibt für eine zukünftige Zuweisung verfügbar. Die zugewiesenen Plätze können für speicherresidenten Programmcode und temporäre Daten verwendet werden.
  • An diesem Punkt wird ein Verfahren M1 gemäß der Erfindung des Beispiel angegeben; das Verfahren M1 ist in 2 als Flussdiagramm dargestellt. Bei dem Schritt S1 endet das Programm PR1. Das Betriebssystem OS bestimmt von der Prozessspeichertabelle 21, dass einige virtuelle Speicherseiten verfügbar gemacht werden können, da das Programm PR1 dieselben nicht mehr benötigt. (Es kann einige virtuelle Speicherseiten geben, die durch das Programm PR1 verwendet werden, die nicht freigegeben werden können, weil dieselben mit einem anderen Programm gemeinschaftlich verwendet werden.) Das Betriebssystem OS weist den Knoten N1 an, virtuellen Speicher für eine Neuzuweisung freizugeben. Folglich gibt der Knoten N1 diesen virtuellen Speicherplatz in der physikalischen Seitentabelle 23 frei, aber ist nach wie vor im Besitz der entsprechenden Einträge. Dann weist das Betriebssystem OS den Knoten N1 an, den TLB T1 bei Schritt S3 von sämtlichen Einträgen zu löschen, die sich auf den freigegebenen virtuellen Speicherplatz beziehen. Dann schreibt der Knoten N1 Adressen, die gelöscht werden sollen, bei Schritt S4 in den Abschussspeicherplatz TS1.
  • Bei Schritt S5 sendet der Knoten N1 eine Anforderung für einen TLB-Abschuss in einem Rundsendevorgang, durch Aktivieren einer Unterbrechung und Anlegen eines Vektors, der dem Speicherplatz TS1 entspricht. Die Knoten N2 und N3 antworten auf die Anforderung durch Lesen der Abschussspezifikation von Platz TS1 und Implementieren des angezeigten Löschvorgangs bei Schritt S6. Jeder empfangene Prozessor N2, N3 berichtet einen erfolgreichen Abschluss des Löschvorgangs durch Ersetzen der speziell zugewiesenen Flags F12 und F13 (in 1 gezeigt) bei Schritt S7. Der Knoten N1 kann wiederholt die Flags F12 und F13 untersuchen. Sobald alle Flags gesetzt sind, kann der Knoten N1 durch Lesen der Flags F12 und F13 erfassen, dass die Abschussanforderung bei Schritt S8 erfüllt wurde. Ansprechend darauf gibt der Knoten N1 den Besitz der spezifizierten virtuellen Adressen frei, sodass dieselben bei Schritt S9 für eine Neuzuweisung verfügbar sind.
  • In 2 sind bei den Schritten S5, S6 und S7 zusätzliche Aktionen in Klammern beschrieben. Diese sollen zeigen, wie das dargestellte Ausführungsbeispiel gleichzeitige TLB-Abschussanforderungen handhabt. Beispielsweise kann der Knoten N2 gleichzeitig mit Schritt S5 einen TLB-Abschuss anfordern. Diese Anforderung kann durch den Knoten N1 empfangen werden, während der Knoten N1 auf eine Antwort auf seine TLB-Abschussanforderung wartet. Wenn keine Anforderung von dem Knoten N2 vorliegt, würde der Knoten N1 den Flagstatus für den Speicherplatz TS1 regelmäßig prüfen, um zu bestimmen, wann die anderen Knoten ihre Löschvorgänge ansprechend auf die Anforderung durch den Knoten N1 abgeschlossen haben. Die Anforderung durch den Knoten N2 unterbricht jedoch dieses Prüfen; anstatt das Prüfen des Speichers fortzusetzen, antwortet der Knoten N1 auf die Anforderung durch den Knoten N2 durch Lesen des Platzes TS2 und Löschen der Adressen, die darin angezeigt sind, bei Schritt S6. Dann berichtet der Knoten N1 den Abschluss des Löschvorgangs durch Setzen eines Flags an dem Speicherplatz TS2. Wenn dieses Berichten abgeschlossen ist, kehrt der Knoten N1 zum Prüfen des Abschlussstatus des Platzes TS1 zurück. Der Abschluss der Anforderung des Knotens N1 ist bei Schritt S9 angezeigt, wenn alle Flags des Platzes TS1 gesetzt sind. Dann gibt der Knoten N1 virtuellen Speicher frei, durch Schreiben in die physikalische Seitentabelle 23.
  • Der Parallelismus, der durch das System AP1 geliefert wird, ist in 3 vielleicht besser ersichtlich, die ein Flussdiagramm eines Verfahrens M2 ist, das eine Neukonzeptualisierung der Schritte S4–S9 des Verfahrens M1 ist. Das Verfahren M2 beginnt mit den Schritten S41 und S42, wobei die Knoten N1 und N2 Abschussdaten in einen ersten und einen zweiten Abschussspeicherbereich schreiben. Dann fordern die Knoten N1 und N2 bei den Schritten S51 und S52 jeweils TLB-Abschüsse an. Jeder Knoten empfängt die Abschussanforderung des anderen bei den jeweiligen Schritten S61 und S62. Jeder Knoten berichtet den Abschluss der Anforderung des anderen Knotens jeweils bei den Schritten S71 und S72. Jeder Knoten erfasst, dass seine Anforderung jeweils erfüllt wurde, bei den Schritten S81 und S82. Jeder Knoten gibt den virtuellen Speicher frei, der seiner Löschanforderung zugeordnet ist, bei den jeweiligen Schritten S91 und S92. Wie es von 3 ersichtlich ist, ermöglicht es die vorliegende Erfindung, dass eine TLB-Anforderung gleichzeitig durchgeführt werden kann.
  • In einigen Fällen werden Abschussanforderungen jeweils Seite um Seite ausgegeben. Die Erfindung liefert jedoch auch Ausführungsbeispiele, die einen großen Satz von Seiten in dem TLB-Abschussplatz auflisten, sodass weniger Anforderungen erforderlich sind. Selbst wenn eine Reihe von Anforderungen zum Freigeben von virtuellem Speicher für eine Neuzuweisung erforderlich ist, liefert die Erfindung Leistungseinsparungen im Vergleich zum Stand der Technik. Obwohl Anforderungen seriell durchgeführt werden, ist bei einigen Ausführungsbeispielen eine gewisse Pipelineverarbeitung möglich. Beispielsweise kann ein Knoten damit beginnen, eine zweite Seite in die Seitentabelle zu schreiben, während eine TLB-Abschussanforderung für eine erste Seite ausgegeben wird.
  • Die Zuweisung von Prozessoren und zugeordneten Komponenten ist nicht fest, kann aber durch einen Systemadministrator für das System AP1 konfiguriert werden. Beispielsweise kann das System AP1 mit zwei Prozessoren P1 und P2 konfiguriert werden, die einem Knoten N11 zugewiesen sind, wie es in 4 gezeigt ist. Der Prozessor P3 ist dem Knoten N22 zugewiesen. Die Prozessoren P1 und P2 sind dem gleichen TLB-Abschussspeicher TS1 zugeordnet. Falls der Prozessor P1 und P2 gleichzeitige TLB-Abschussanforderungen versuchen, gibt es eine Wettlaufbedingung. Die Anforderung für einen Prozessor wird verarbeitet und der andere muss warten, wie bei einigen herkömmlichen Systemen, die TLB-Abschuss verwenden. Solange die Anzahl von Prozessoren pro Knoten klein ist, macht die Seltenheit solche Konflikte dieselben leicht handhabbar. Ein Vorteil des Kombinierens von Prozessoren in einem Knoten ist, dass für das Multiprozessorsystem weniger Vektoren und Speicherplätze erforderlich sind. Beispielsweise halbiert das Zuweisen von zwei Prozessoren pro Knoten die Anzahl von einzelnen erforderlichen Vektoren; was hilfreich sein kann bei Systemen mit einer begrenzten Anzahl von Vektoren (z. B. 256) und mit vielen Vorrichtungen zum Zuweisen zu den verfügbaren Vektoren.
  • Falls der Prozessor P1 bei dem Ausführungsbeispiel von 4 einen TLB-Abschuss anfordert, muss der Prozessor P2 warten, bis dieser Abschuss abgeschlossen ist, bevor er seine eigene aktiviert. Bei alternativen Ausführungsbeispielen werden Prozessoren dynamisch neu zu Knoten zugewiesen, um solche Konflikte zu minimieren. Falls beispielsweise der Prozessor P1 einen TLB-Abschuss verwaltet, kann der Prozessor P2 dem Knoten N22 dynamisch zugewiesen werden, entweder unmittelbar oder falls der Prozessor P2 seinen eigenen TLB-Abschuss einleiten muss.
  • Bei den dargestellten Ausführungsbeispielen gibt es eine feste Zuweisung von TLB-Listen zu Knoten. Bei einigen alternativen Ausführungsbeispielen werden TLB-Listen auf Anforderung Knoten zugewiesen, zum Beispiel auf eine Round-Robin-Weise. Dies kann die Anzahl erforderlicher Vektoren reduzieren, da es weniger Listen als Knoten geben kann. Falls mehr Knoten TLB-Abschüsse anfordern, als Listen verfügbar sind, können herkömmliche Sperr-, z. B. semaphorbasierte Techniken angewendet werden. Als eine Alternative zum Anzeigen, welche Knoten den Löschvorgang abgeschlossen haben, ist es möglich, einfach die Anzahl von Abschlüssen zu zählen; dies ermöglicht die Verwendung effizienterer atomarer Hardwareinkrementoperationen zum Bestimmen, wann eine TLB-Abschussanforderung erfüllt wurde.

Claims (4)

  1. Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem (AP1), wobei das Multiprozessorcomputersystem (AP1) zumindest drei Prozessoren (P1, P2, P3) und einen Speicher (11), auf den jeder der Prozessoren (P1, P2, P3) zugreifen kann, umfasst, wobei jedem der Prozessoren (P1, P2, P3) ein TLB (T1, T2, T3) zugeordnet ist; wobei der Speicher (11) eine Mehrzahl von Speicherbereichen (TS1, TS2, TS3) zum Speichern von TLB-Löschdaten umfasst, wobei die TLB-Löschdaten die Adressen angeben, die nach dem Beenden eines Programms (PS1, PS2, PS3), das einer der Prozessoren (P1, P2, P3) ausführt, aus den TLBs (T1, T2, T3) der anderen Prozessoren (P1, P2, P3) zu löschen sind; wobei der erste Prozessor (P1) einen ersten Speicherbereich (TS1) zum Schreiben seiner TLB-Löschdaten in denselben adressiert, wobei der zweite Prozessor (P2) einen zweiten Speicherbereich (TS2) zum Schreiben seiner TLB-Löschdaten in denselben adressiert, und wobei der dritte Prozessor (P3) einen dritten Speicherbereich (TS3) zum Schreiben seiner TLB-Löschdaten in denselben adressiert; und wobei die Steueranordnung ansprechend auf den Empfang einer TLB-Löschanforderung von dem ersten Prozessor (P1): die TLB-Löschdaten, die durch den ersten Prozessor (P1) spezifiziert werden, in dem ersten Speicherbereich (TS1) speichert (S4), eine TLB-Löschanforderung des ersten Prozessors (P1) an den zweiten und dritten Prozessor (P2, P3) sendet (S5), wobei die Steueranordnung die TLB-Löschanforderung in Form einer Unterbrechung ausgibt, begleitet durch einen Vektor, der den Speicherbereich (TS1) für die TLB-Löschdaten, die durch den ersten Prozessor (P1) spezifiziert werden, anzeigt, überwacht (S6), ob der zweite und dritte Prozessor (P2, P3) die TLB-Löschanforderung des ersten Prozessors (P1) erfüllt haben, und ansprechend auf die Erfüllung der TLB-Löschanforderung des ersten Prozessors (P1) durch den zweiten und dritten Prozessor (P2, P3), die durch den ersten Prozessors (P1) spezifizierten Adressen freigibt (S9); und ansprechend auf den Empfang einer TLB-Löschanforderung von dem zweiten oder dritten Prozessor (P2, P3), die vor Erfüllung der TLB-Löschanforderung von dem ersten Prozessor (P1) empfangen wurde: die Überwachung (S6), ob der zweite und dritte Prozessor (P2, P3) die TLB-Löschanforderung des ersten Prozessors (P1) erfüllt haben, unterbricht, die durch den zweiten oder dritten Prozessor (P2, P3) spezifizierten Adressen aus dem TLB des ersten Prozessors (P1) löscht, dem zweiten oder dritten Prozessor (P2, P3) über den Abschluss des Löschvorgangs berichtet, und die Überwachung (S6), ob der zweite und dritte Prozessor (P2, P3) die TLB-Löschanforderung des ersten Prozessors (P1) erfüllt haben, wieder aufnimmt.
  2. Steueranordnung gemäß Anspruch 1, die die Speicherbereiche (TS1, TS2, TS3) den Prozessoren (P1, P2, P3) dynamisch zuordnet.
  3. Steueranordnung gemäß Anspruch 1 oder 2, bei der die Speicherbereiche (TS1, TS2, TS3) Flags speichern, die anzeigen, welche der Prozessoren (P1, P2, P3) eine entsprechende TLB-Löschanforderung abgeschlossen haben.
  4. Steueranordnung gemäß Anspruch 3, bei der die Flags anzeigen, wie viele der Prozessoren (P1, P2, P3) die entsprechende TLB-Löschanforderung abgeschlossen haben.
DE102005029852A 2004-07-30 2005-06-27 Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem Expired - Fee Related DE102005029852B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/903,200 US7281116B2 (en) 2004-07-30 2004-07-30 Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
US10/903,200 2004-07-30

Publications (2)

Publication Number Publication Date
DE102005029852A1 DE102005029852A1 (de) 2006-03-23
DE102005029852B4 true DE102005029852B4 (de) 2011-05-12

Family

ID=35733736

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005029852A Expired - Fee Related DE102005029852B4 (de) 2004-07-30 2005-06-27 Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem

Country Status (3)

Country Link
US (1) US7281116B2 (de)
CN (1) CN100543703C (de)
DE (1) DE102005029852B4 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398371B2 (en) * 2005-06-23 2008-07-08 Qualcomm Incorporated Shared translation look-aside buffer and method
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
CN104750510B (zh) 2013-12-30 2019-04-02 深圳市中兴微电子技术有限公司 一种芯片启动方法及多核处理器芯片
US9549040B2 (en) 2014-03-12 2017-01-17 Instart Logic, Inc. First cache purge optimization handling of unavailable nodes
US9002990B1 (en) * 2014-03-12 2015-04-07 Instart Logic, Inc. Fast cache purge in content delivery network
EP3054384B1 (de) * 2015-02-04 2018-06-27 Huawei Technologies Co., Ltd. System und Verfahren zur Speichersynchronisation eines Mehrkernsystems
EP3265064A4 (de) * 2015-03-04 2018-11-07 Microvention, Inc. Arzneimittelabgabevorrichtung
US10318430B2 (en) 2015-06-26 2019-06-11 International Business Machines Corporation System operation queue for transaction
DK3502906T3 (da) 2016-06-08 2021-08-30 Google Llc Tlb-shootdown for lav overhead
US10540292B2 (en) * 2016-06-08 2020-01-21 Google Llc TLB shootdowns for low overhead
US10339067B2 (en) * 2017-06-19 2019-07-02 Advanced Micro Devices, Inc. Mechanism for reducing page migration overhead in memory systems
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) * 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
CN109213698B (zh) * 2018-08-23 2020-10-27 贵州华芯通半导体技术有限公司 Vivt缓存访问方法、仲裁单元及处理器
US10740239B2 (en) * 2018-12-11 2020-08-11 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119204A (en) * 1998-06-30 2000-09-12 International Business Machines Corporation Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US20020069329A1 (en) * 1998-09-30 2002-06-06 James David V. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60254346A (ja) * 1984-05-31 1985-12-16 Toshiba Corp マルチプロセツサシステム
US5428757A (en) * 1992-04-29 1995-06-27 International Business Machines Corporation Method for reducing translation look aside buffer purges in a multitasking system
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
JPH0784883A (ja) * 1993-09-17 1995-03-31 Hitachi Ltd 仮想計算機システムのアドレス変換バッファパージ方法
JP2806778B2 (ja) * 1994-01-28 1998-09-30 甲府日本電気株式会社 変換索引バッファクリア命令処理方式
US5906001A (en) 1996-12-19 1999-05-18 Intel Corporation Method and apparatus for performing TLB shutdown operations in a multiprocessor system without invoking interrup handler routines
US6728800B1 (en) 2000-06-28 2004-04-27 Intel Corporation Efficient performance based scheduling mechanism for handling multiple TLB operations
US6604185B1 (en) * 2000-07-20 2003-08-05 Silicon Graphics, Inc. Distribution of address-translation-purge requests to multiple processors
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
US7356026B2 (en) * 2000-12-14 2008-04-08 Silicon Graphics, Inc. Node translation and protection in a clustered multiprocessor system
ATE401647T1 (de) * 2001-05-02 2008-08-15 Pioneer Corp Informationsaufzeichnungsmedium und informationsaufzeichnungsgerät
US6922766B2 (en) 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7617378B2 (en) * 2003-04-28 2009-11-10 International Business Machines Corporation Multiprocessor system with retry-less TLBI protocol
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119204A (en) * 1998-06-30 2000-09-12 International Business Machines Corporation Data processing system and method for maintaining translation lookaside buffer TLB coherency without enforcing complete instruction serialization
US20020069329A1 (en) * 1998-09-30 2002-06-06 James David V. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions

Also Published As

Publication number Publication date
CN1728113A (zh) 2006-02-01
DE102005029852A1 (de) 2006-03-23
US20060026359A1 (en) 2006-02-02
CN100543703C (zh) 2009-09-23
US7281116B2 (en) 2007-10-09

Similar Documents

Publication Publication Date Title
DE102005029852B4 (de) Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE19983793B4 (de) System mit einem Prozessor, auf dem mehrere, gleichzeitig aktive Ausführungsentitäten ausgeführt werden, und mit einem mehrere, den Ausführungsentitäten zugewiese Cache-Abschnitte aufweisenden Cache-Speicher
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE112006003081B4 (de) Leistungspriorisierung in Multithreadprozessoren
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE102012216568B4 (de) Scheduling und Managen von Rechentasks mit unterschiedlichen Ausführungsprioritätsstufen
DE69822534T2 (de) Gemeinsame Speicherbenutzung mit variablen Blockgrössen für symmetrische Multiporzessor-Gruppen
DE102016013577B4 (de) Systeme und Verfahren zum adaptiven Partitionieren in verteilten Cache-Speichern
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE2226382A1 (de) Datenverarbeitungsanlage
DE102014000372A1 (de) Verbesserte steuerung des prefetch-traffics
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE102007048601A1 (de) Datenspeicherung in einem Schaltsystem, das mehrere Prozessoren eines Computersystems koppelt
DE102004028807A1 (de) Computersystem, Steuervorrichtung, Speichersystem und Computergerät
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE19516937A1 (de) Hierarchisches Cachesystem für einen Computer
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102013114256A1 (de) Systeme und Verfahren zur Beibehaltung der Informationskohärenz
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection
8170 Reinstatement of the former position
R020 Patent grant now final

Effective date: 20110813

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140101