DE102005029852A1 - Multiprozessorsystem mit mehreren Speicherpositionen zum jeweiligen Speichern von TLB-Abschussdaten für mehrere Prozessorknoten - Google Patents

Multiprozessorsystem mit mehreren Speicherpositionen zum jeweiligen Speichern von TLB-Abschussdaten für mehrere Prozessorknoten Download PDF

Info

Publication number
DE102005029852A1
DE102005029852A1 DE102005029852A DE102005029852A DE102005029852A1 DE 102005029852 A1 DE102005029852 A1 DE 102005029852A1 DE 102005029852 A DE102005029852 A DE 102005029852A DE 102005029852 A DE102005029852 A DE 102005029852A DE 102005029852 A1 DE102005029852 A1 DE 102005029852A1
Authority
DE
Germany
Prior art keywords
tlb
launch
request
node
processor
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.)
Granted
Application number
DE102005029852A
Other languages
English (en)
Other versions
DE102005029852B4 (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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Die vorliegende Erfindung liefert ein Multiprozessorsystem und Verfahren, bei dem mehrere Speicherpositionen zum Speichern von TLB-Abschussdaten für jeweils mehrere Prozessoren verwendet werden. Im Gegensatz zu Systemen, bei denen ein einziger Speicherbereich für die TLB-Abschussdaten aller Prozessoren dient, können unterschiedliche Prozessoren den Speicher beschreiben, den dieselben gleichzeitig freigeben möchten. Somit ist es weniger wahrscheinlich, dass gleichzeitige TLB-Abschussanforderungen zu leistungsbegrenzenden TLB-Abschusskonflikten führen, die bisher die Skalierbarkeit von Multiprozessorsystemen beschränkt haben.

Description

  • Die vorliegende Erfindung bezieht sich auf Computer und insbesondere auf Multiprozessorsysteme, die TLB-Abschuss als Teil eines Speicherverwaltungsschemas verwenden. Ein Hauptziel der Erfindung ist das Liefern eines Lösungsansatzes für TLB-Abschuss, das gut arbeitet mit großen Anzahlen von Prozessoren in einem Multiprozessorsystem.
  • 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, sodass 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. Was benötigt wird, ist ein Lösungsansatz für TLB-Abschuss, der besser mit der Anzahl von Prozessoren in einem Multiprozessorsystem arbeitet.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein Multiprozessorcomputersystem sowie ein Verfahren mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch ein System gemäß Anspruch 1 sowie ein Verfahren gemäß Anspruch 8 gelöst.
  • Die vorliegende Erfindung liefert ein Multiprozessorsystem und ein Verfahren, bei dem mehrere Speicherpositionen verwendet werden, um TLB-Abschussdaten jeweils für mehrere Prozessoren zu speichern. 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 gemäß der vorliegenden Erfindung;
  • 2 ein Flussdiagramm eines Verfahrens der Erfindung 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 gemäß der vorliegenden Erfindung.
  • Ein Multiprozessorcomputersystem AP1 umfasst drei Prozessorknoten N1, N2 und N3, einen flüchtigen physikalischen Speicher 11, eine Festplatte 13 und einen Signalrouter 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 Signalrouter 15; außerdem werden Unterbrechungen über den Signalrouter 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-Speicher-zu-Programmzuweisung in der Prozessspeichertabelle 71. Das Betriebssys tem 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 an das Beispiel angelegt; 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, virtu ellen 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 Abschlusstatus 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 3 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. Diese und andere Variationen und Modifikationen der dargestellten Ausführungsbeispiele werden durch die vorliegende Erfindung geliefert, deren Schutzbereich durch die folgenden Ansprüche definiert ist.

Claims (15)

  1. Multiprozessorcomputersystem (AP1), das folgende Merkmale umfasst: mehrere Knoten (N1, N2, N3), die einen ersten und zweiten Knoten umfassen, wobei jeder Knoten zumindest eine Kombination eines Prozessors und eines TLB aufweist; und mehrere Speicherpositionen zum Speichern von TLB-Abschussdaten, wobei die Positionen eine erste und eine zweite Position umfassen, sodass in dem Fall, dass der zweite Knoten (N2) eine zweite Anforderung für einen TLB-Abschuss zum selben Zeitpunkt oder nach einem Zeitpunkt, da der erste Knoten (N1) eine erste Anforderung für einen TLB-Abschuss ausgibt, aber noch bevor die erste Anforderung erfüllt ist, ausgibt, die erste Position TLB-Abschussdaten, die durch den ersten Knoten (N1) spezifiziert werden, speichert, während die zweite Position TLB-Abschussdaten speichert, die durch den zweiten Knoten (N2) spezifiziert sind.
  2. System gemäß Anspruch 1, bei dem der erste und der zweite Prozessor (P1, P2) TLB-Anforderungen in der Form einer jeweiligen ersten und zweiten Unterbrechung ausgeben, begleitet durch einen jeweiligen ersten und zweiten Vektor, die die erste beziehungsweise die zweite Speicherposition anzeigen.
  3. System gemäß Anspruch 1 oder 2, bei dem der erste Knoten (N1) nur TLB-Abschussanforderungen ausgibt, wobei die Vektoren zu der ersten Speicherposition zeigen.
  4. System gemäß einem der Ansprüche 1 bis 3, bei dem jeder der Knoten genau einen Prozessor enthält.
  5. System gemäß einem der Ansprüche 1 bis 3, bei dem einige der Knoten (N1, N2, N3) mehr als einen Prozessor (P1, P2, P3) enthalten.
  6. System gemäß einem der Ansprüche 1 bis 5, bei dem die erste Speicherposition Anzeigen speichert, welche der Knoten (N1, N2, N3) die erste TLB-Abschussanforderung abgeschlossen haben.
  7. System gemäß einem der Ansprüche 1 bis 6, bei dem die erste Speicherposition Anzeigen speichert, wie viele der Knoten (N1, N2, N3) ihre erste TLB-Abschussan-forderung abgeschlossen haben.
  8. Verfahren, das folgende Schritte umfasst: der erste und der zweite Prozessor (P1, P2) schreiben jeweilige erste und zweite TLB-Abschussdaten in eine jeweilige erste und zweite TLB-Abschussdatenspeicherposition, sodass die ersten und die zweiten TLB-Abschussdaten gleichzeitig in der ersten und der zweiten TLB-Abschussdatenspeicherposition gespeichert werden; und der erste und der zweite Prozessor (P1, P2) geben die erste und die zweite TLB-Abschussanforderung zueinander aus.
  9. Verfahren gemäß Anspruch 8, bei dem der erste Prozessor (P1) den Abschluss der zweiten TLB-Abschussanforderung berichtet, bevor bestätigt wird, dass der zweite Prozessor (P2) die erste TLB-Abschussanforderung erfüllt hat.
  10. Verfahren gemäß Anspruch 8 oder 9, bei dem der erste Prozessor (P1) nur eine TLB-Abschussanforderung aus gibt, wobei ein Vektor zu der ersten TLB-Abschussdatenspeicherposition zeigt.
  11. Verfahren gemäß Anspruch 10, bei dem ein dritter Prozessor (P3) ebenfalls nur TLB-Abschussanforderungen mit dem Vektor ausgibt.
  12. Verfahren gemäß einem der Ansprüche 8 bis 11, bei dem die erste TLB-Abschussdatenspeicherposition manchmal durch den zweiten Prozessor (P2) verwendet wird, um TLB-Abschussdaten zu speichern.
  13. Verfahren gemäß einem der Ansprüche 8 bis 12, bei dem die TLB-Abschussdatenspeicherposition den Prozessoren (P1, P2, P3) auf einer Round-Robin-Basis zugewiesen werden.
  14. Verfahren gemäß einem der Ansprüche 8 bis 13, bei dem die erste Speicherposition Anzeigen dafür speichert, welcher der Knoten (N1, N2, N3) die erste TLB-Anforderungsanfrage abgeschlossen hat.
  15. Verfahren gemäß einem der Ansprüche 8 bis 14, bei dem die erste Speicherposition Anzeigen dafür speichert, wie viele der Knoten (N1, N2, N3) die erste TLB-Abschussanforderung 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 true DE102005029852A1 (de) 2006-03-23
DE102005029852B4 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 深圳市中兴微电子技术有限公司 一种芯片启动方法及多核处理器芯片
US9002990B1 (en) 2014-03-12 2015-04-07 Instart Logic, Inc. Fast cache purge in content delivery network
US9549040B2 (en) 2014-03-12 2017-01-17 Instart Logic, Inc. First cache purge optimization handling of unavailable nodes
EP3054384B1 (de) * 2015-02-04 2018-06-27 Huawei Technologies Co., Ltd. System und Verfahren zur Speichersynchronisation eines Mehrkernsystems
WO2016141350A1 (en) * 2015-03-04 2016-09-09 Microvention, Inc. Drug delivery device
US10318430B2 (en) 2015-06-26 2019-06-11 International Business Machines Corporation System operation queue for transaction
EP3255550B1 (de) * 2016-06-08 2019-04-03 Google LLC Tlb-shootdowns mit geringen verwaltungsdaten
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
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation 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

Family Cites Families (16)

* 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
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
US6345352B1 (en) * 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
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
EP1255246B1 (de) * 2001-05-02 2008-07-16 Pioneer Corporation Informationsaufzeichnungsmedium und Informationsaufzeichnungsgerät
US6922766B2 (en) 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7617378B2 (en) * 2003-04-28 2009-11-10 International Business Machines Corporation Multiprocessor system with retry-less TLBI protocol

Also Published As

Publication number Publication date
CN1728113A (zh) 2006-02-01
US7281116B2 (en) 2007-10-09
CN100543703C (zh) 2009-09-23
US20060026359A1 (en) 2006-02-02
DE102005029852B4 (de) 2011-05-12

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
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
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
DE102016013577B4 (de) Systeme und Verfahren zum adaptiven Partitionieren in verteilten Cache-Speichern
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE102020127705A1 (de) Techniken für einen effizienten fabric-attached-speicher
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE112006003081T5 (de) Leistungspriorisierung in Multithreadprozessoren
DE2226382A1 (de) Datenverarbeitungsanlage
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102013017511A1 (de) Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102013205886A1 (de) Dynamische Bankmodus-Adressierung für Speicherzugriff
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112020004661T5 (de) Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex
DE102008062044A1 (de) Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112016003466T5 (de) Vorinstallieren von Seitentabellen-Cachezeilen einer virtuellen Maschine

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