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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor 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)...
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 - 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 in1 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 Festplatte13 und einen Datenrouter15 . 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 Beispiel48 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 Speicher11 ist über einen Datenrouter15 ; außerdem werden Unterbrechungen über den Datenrouter15 ü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 Speichers11 befinden. Das Betriebssystem OS reserviert auch Speicherplatz für eine Prozessspeichertabelle21 , eine Seitentabelle23 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 Speichers11 ist zuweisbarer physikalischer Speicher25 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 Seitentabelle23 , um eine freie Region von zuweisbarem physikalischem Speicherplatz25 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 Seitentabelle23 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 Speicherplatzes25 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 Prozessspeichertabelle21 , 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 Seitentabelle23 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 Seitentabelle23 . - 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 von3 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)
- 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. - Steueranordnung gemäß Anspruch 1, die die Speicherbereiche (TS1, TS2, TS3) den Prozessoren (P1, P2, P3) dynamisch zuordnet.
- 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.
- Steueranordnung gemäß Anspruch 3, bei der die Flags anzeigen, wie viele der Prozessoren (P1, P2, P3) die entsprechende TLB-Löschanforderung abgeschlossen haben.
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)
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)
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)
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 |
-
2004
- 2004-07-30 US US10/903,200 patent/US7281116B2/en not_active Expired - Fee Related
-
2005
- 2005-06-27 DE DE102005029852A patent/DE102005029852B4/de not_active Expired - Fee Related
- 2005-07-29 CN CNB200510088101XA patent/CN100543703C/zh not_active Expired - Fee Related
Patent Citations (2)
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 |