DE19905541B4 - Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens - Google Patents

Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens Download PDF

Info

Publication number
DE19905541B4
DE19905541B4 DE19905541A DE19905541A DE19905541B4 DE 19905541 B4 DE19905541 B4 DE 19905541B4 DE 19905541 A DE19905541 A DE 19905541A DE 19905541 A DE19905541 A DE 19905541A DE 19905541 B4 DE19905541 B4 DE 19905541B4
Authority
DE
Germany
Prior art keywords
memory
machine
physical
page
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19905541A
Other languages
English (en)
Other versions
DE19905541A1 (de
Inventor
Nadia Bouraoui
Jean-Pascal Mazzilli
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.)
Bull Sa Les Clayes Sous Bois Fr
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE19905541A1 publication Critical patent/DE19905541A1/de
Application granted granted Critical
Publication of DE19905541B4 publication Critical patent/DE19905541B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff, der auf mehrere Module (14, 15) verteilt ist, wovon jedes einen oder mehrere Prozessoren CPU (4, 5, 6, 7) enthält, um Prozeßstränge (Threads) in einem virtuellen oder physischen Adressierungsraum mittels effektiver Adressen EA (113) auszuführen, für die mittels einer Korrespondenztabelle (110) eine Entsprechung mit Nummern PPN physischer Seiten im Speicher (8, 9) hergestellt werden kann, wobei eine Erzeugung der Nummer LPN einer logischen Seite eine Ausnahme des Typs Seitenfehler erster Stufe hervorruft, wenn die Nummer LPN der logischen Seite in der Korrespondenztabelle (110) fehlt, wobei das Verfahren einen Schritt (72) enthält, in dem nach jeder Ausnahme des Typs Seitenfehler erster Stufe eine Aufzeichnungs-Funktion Trace aktiviert wird, die den Wert der effektiven Adresse EA, die die Nummer LPN der logischen Seite erzeugt hat, welche die Ausnahme hervorgerufen hat, die Zeit, zu der die Ausnahme hervorgerufen...

Description

  • Im Gebiet der Datenverarbeitung ist es möglich, die Leistung einer Maschine durch Erhöhen der Anzahl der Prozessoren, aus denen sie aufgebaut ist, zu erhöhen. Ein Typ von Maschinen, der unter dem Namen SMP bekannt ist, ermöglicht den verschiedenen Prozessoren derselben Maschine, mittels eines Systembusses in symmetrischer Weise auf ihren Speicher zuzugreifen. Hierbei handelt es sich um Maschinen mit einem Speicher mit gleichmäßigem Zugriff in dem Sinne, daß die Zugriffszeit auf den Speicher für sämtliche Daten, auf die zugegriffen wird, im wesentlichen gleich ist. Die Leistungskurve derartiger Maschinen wächst jedoch nicht linear mit der Anzahl der Prozessoren an. Eine hohe Anzahl von Prozessoren bewirkt, daß die Maschine mehr Probleme der Zugreifbarkeit auf ihre Betriebsmittel verwaltet als daß sie Anwendungen ausführt. Dies hat zur Folge, daß die Leistungskurve deutlich einknickt, wenn die Anzahl der Prozessoren einen optimalen Wert überschreitet, der oftmals auf einen Wert in der Größenordnung von vier geschätzt wird. Der Stand der Technik schlägt verschiedene Lösungen für dieses Problem vor.
  • Eine bekannte Lösung besteht darin, mehrere Maschinen zu Clustern zu gruppieren, derart, daß sie untereinander mittels eines Netzes kommunizieren. Jede Maschine besitzt eine optimale Anzahl von Prozessoren, beispielsweise vier, und ihr eigenes Betriebssystem. Sie stellt eine Kommunikation mit einer anderen Maschine immer dann her, wenn sie eine Verarbeitung an Daten ausführt, die von dieser anderen Maschine auf dem aktuellen Stand gehalten worden sind. Die Zeit, die für diese Kommunikationen notwendig ist, und die Notwendigkeit, an kohärenten Daten zu arbeiten, schaffen Probleme hinsichtlich der Latenzzeit für umfangreiche Anwendungen wie beispielsweise verteilte Anwendungen, die zahlreiche Kommunikationen erfordern. Die Latenzzeit ist die Dauer, die den Zeitpunkt des Sendens einer Zugriffsanforderung an den Speicher von dem Zeitpunkt trennt, zu dem die Antwort auf diese Anforderung empfangen wird.
  • Eine andere bekannte Lösung ist jene der Maschinen des Typs NUMA. Hierbei handelt es sich um Maschinen mit einem Speicher mit ungleichmäßigem Zugriff (Non Uniform Memory Access im Englischen) in dem Sinne, daß die Zugriffszeit auf den Speicher je nach dem Ort der Daten, auf die zugegriffen wird, unterschiedlich ist. Eine Maschine des Typs NUMA ist aus mehreren Modulen gebildet, wovon jedes eine optimale Anzahl von Prozessoren und einen physischen Anteil des Gesamtspeichers der Maschine enthält. Eine solche Maschine besitzt einen ungleichmäßigen Speicherzugriff, weil ein Modul im allgemeinen leichter auf einen physischen Teil des Speichers zugreift, den es nicht mit einem anderen Modul gemeinsam nutzt, als auf einen Teil, den es gemeinsam nutzt. Obwohl jedes Modul einen privaten Systembus besitzt, der seine Prozessoren und seinen physischen Speicher verbindet, ermöglicht ein sämtlichen Modulen gemeinsames Betriebssystem, die Gesamtheit der privaten Bussysteme als ein einziges Bussystem der Maschine anzusehen. Eine logische Adressierung weist einen Aufenthaltsort einer bestimmten physischen Speicherstelle eines Moduls zu. Für einen betrachteten Prozessor werden die Zugriffe auf einen lokalen Speicherabschnitt, der sich physisch im selben Modul wie der Prozessor befindet, von Zugriffen auf einen entfernten Speicherabschnitt unterschieden, der sich physisch in einem oder mehreren anderen Modulen als jenem befindet, in dem sich der Prozessor befindet.
  • Ein besonderer Typ der NUMA-Maschinen ist der Typ CCNUMA, d. h. jene Maschinen mit Cache-Kohärenz (Cache Coherency im Englischen). Ein gemeinsam genutzter Cache-Mechanismus bewirkt, daß sich zu einem gegebenen Zeitpunkt eine gültige, d. h. aktualisierte Kopie dieses Blocks nicht notwendig an ihrer physischen Aufenthaltsspeicherstelle befindet. Eine oder mehrere aktualisierte Kopien des Blocks können somit abhängig von Anwendungsanforderungen und Systemaufrufen von einem Modul zum nächsten wandern. Der physische Speicher, der sich in einem betrachteten Modul befindet, ist jener, auf den das betrachtete Modul am schnellsten, weil direkt mittels seines lokalen Systembusses, zugreift. Der physische Speicher, der in einem anderen Modul entfernt ist, ist jener, auf den das betrachtete Modul am langsamsten zugreift, weil eine oder mehrere Transaktionen zwischen Modulen notwendig sind. Der physische Speicher, der sich lokal im betrachteten Modul befindet, enthält einen ersten Teil, der speziell den in diesem Modul sich befindenden Daten zugewiesen ist, und einen zweiten Teil, der speziell den Kopien von in anderen Modulen sich befindenden Blöcken zugewiesen ist. Der zweite Teil des physischen Speichers bildet einen entfernten Cache-Speicher der anderen Module.
  • Ein im ersten Teil des physischen Speichers befindlicher Block ist nicht sofort verfügbar, wenn sein Inhalt keine aktualisierte Kopie darstellt, was beispielsweise der Fall ist, wenn ein oder mehrere andere Module diesen Block gemeinsam nutzen und wenn eines dieser anderen Module im Rahmen einer Speicher-Kohärenz eine Kopie hiervon auf dem aktuellen Stand hält. Um die gemeinsame Nutzung von in seinem ersten Teil des physischen Speichers befindlichen Blöcken mit anderen Modulen zu verwalten, verwendet das betrachtete Modul eine Fern-Cache-Steuereinrichtung RCC (Remote Cache Controller im Englischen).
  • Der Nutzen von Maschinen mit einem Speicher mit ungleichmäßigem Zugriff und mit Cache-Kohärenz besteht darin, daß jedes Modul an Blöcken von Daten, die sich in einem ersten Teil seines lokalen Speichers befinden, oder an Kopien in einem zweiten Teil seines lokalen Speichers von Blöcken, die sich in einem ersten Teil des Speichers eines anderen Moduls befinden, arbeitet. Ein betrachtetes Modul muß daher mit anderen Modulen nur kommunizieren, um an aktualisierten Kopien zu arbeiten, um eine Datenkohärenz sicherzustellen. Im Betrieb ist es daher zunächst unwichtig, ob sich ein Datenblock in einem Modul oder in einem anderen befindet, da jedes Modul, falls notwendig, in seinem lokalen Speicher Kopien von Blöcken hält, die es benötigt. Bei einer Ausführung des gemeinsamen Betriebssystems in sämtlichen Modulen oder bestimmter Anwendungen des verteilten Typs kann es indessen vorkommen, daß bestimmte Daten häufig von sämtlichen Module gebraucht werden. Diese Daten betreffen in einem nicht beschränkenden Beispiel Prozeßzuweisungstabellen, Tabellen offener Dateien oder Tabellen von Sperrensetzungen für gemeinsam genutzte Betriebsmittel. Die Kohärenz dieser Daten bringt die Gefahr mit sich, daß zahlreiche Austauschvorgänge zwischen Modulen notwendig sind und daß somit die von solchen Maschinen erwartete Erhöhung der Leistung gestört wird.
  • Andererseits ist es günstig, einen virtuellen Adressierungsmodus zu verwenden, um Prozesse von einer Datenverarbeitungsmaschine auszuführen. Wie im Stand der Technik bekannt ist, ist jedem von der Maschine ausgeführten Prozeß ein virtueller Adressierungsraum zugewiesen. Der virtuelle Adressierungsraum ermöglicht die Beseitigung von Speichergrößenbeschränkungen, die in einem physischen Adressierungsraum auftreten können. Die Prozesse (Process im Englischen) und die Prozeßstränge (Thread im Englischen) innerhalb eines Prozesses greifen auf ihren virtuellen Adressierungsraum mittels effektiver Adressen zu, die Nummern logischer Seiten erzeugen, wovon für jede durch die Maschine eine entsprechende Nummer einer physischen Seite (Frame im Englischen) geschaffen wird, auf die im physischen Speicher nach Maßgabe des wirklichen Zugriffsbedarfs zugegriffen werden kann. Der virtuelle Speichermechanismus ist vom Cache-Speicher-Kohärenzmechanismus unabhängig. Falls jedoch ein Prozeßstrang des Prozesses in einem Prozessor ausgeführt wird, der sich in einem Modul befindet, das von dem Modul verschieden ist, in dessen Speicher sich die physische Seite befindet, auf die durch diesen Prozeßstrang zugegriffen wird, bringt die Ausführung des Cachespeicher-Kohärenzprotokolls zwischen Modulen die Gefahr mit sich, die Speicherzugriffe zu verlangsamen und die Leistungen des Systems zu beeinträchtigen.
  • Die Komplexität der Korrespondenzmechanismen und des Bedarfs an physischem Speicher der von der Maschine ausgeführten zahlreichen Prozesse hat zur Folge, daß es schwierig ist, im voraus die Verteilung der physischen Seiten auf die Module zu erfassen, damit sie logischen Seiten entsprechen.
  • Aus der DE 38 55 659 T2 ist bereits ein Verfahren zum Steuern des Speicherzugriffs in einer Mehrprozessor-Maschine bekannt. Die Zugriffe der Prozessoren auf den Speicher erfolgen über einen virtuellen Adressenraum. Beim Auftreten eines Seitenfehlers erfolgt eine Sicherung des Prozeßzustandes durch eine Ausnahmeprozedur. Es handelt sich hier jedoch nicht um eine Maschine vom Typ NUMA. Ferner ist aus der DE 196 00 428 A1 ein Verfahren zur interaktiven Protokollierung von Informationen bezüglich der von einem Prozeß benutzten Daten bekannt. Bei diesem Verfahren wird eine Ausnahmefunktion aufgerufen, wenn ein Seitenfehler auftritt. Mit der Ausnahmefunktion werden die beim Auftreten des Seitenfehlers relevanten Prozeßdaten gesichert. Da das Verfahren auf einer Maschine mit einem einzelnen Prozessor ausgeführt wird, können die mit einem ungleichmäßigen Zugriff auf einen Speicher in einer Maschine vom Typ NUMA verbundenen Schwierigkeiten nicht auftreten.
  • Der Erfindung liegt die Aufgabe zugrunde, bei einem Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff, der auf mehrere Module verteilt ist, beim Auftreten eines Seitenfehlers erster Stufe jeden neuen ersten Zugriff eines Prozessors auf eine Seite des physischen Speichers unabhängig davon zu ermöglichen, ob diese Seite abgeschlossen ist oder nicht. Gelöst wird diese Aufgabe durch das im Patentanspruch 1 angegebene Verfahren.
  • Die bei dem erfindungsgemäßen Verfahren erfolgende Aktivierung der Aufzeichnungs-Funktion bei jeder Ausnahme des Typs Seitenfehler erster Stufe ermöglicht die Erfassung jedes neuen ersten Zugriffs eines Prozessors auf eine Seite des physischen Speichers unabhängig davon, ob diese Seite abgeschlossen ist oder nicht. Der Identifizierer des Prozessors und die Nummer der physischen Seite ermöglichen die Kenntnis, in welchem Modul sich die physische Seite und der Prozessor befinden. Zwischen dem Prozessor und dem physischen Speicher ist eine gute Affinität vorhanden, falls sie sich im selben Modul befinden. Das Datum ermöglicht die Definition des Zeitpunkts, zu dem dieser neue erste Zugriff entsteht, es ermöglicht die Korrelation der Spurergebnisse untereinander oder mit anderen Ergebnissen, die anderswo erhalten wurden. Der Prozeßstrang-Identifizierer ermöglicht die Kenntnis, mit welchem Prozeßstrang der Speicherzugriff verbunden ist, und somit die Korrelation verschiedener Speicherzugriffe, die mit demselben Prozeßstrang verbunden sind, der beispielsweise im Lauf der Zeit in verschiedenen Prozessoren ausgeführt werden kann. Der Wert der effektiven Adresse ermöglicht die Präzisierung des Adressierungstyps, der für den Prozeßstrang verwendet wird, wobei sich die Nummer der physischen Seite, die derselben effektiven Adresse zugewiesen ist, im Lauf der Zeit entwickeln kann, falls die physische Seite nicht verriegelt ist. Für die Kommunikation können verschiedene Prozeßstränge dieselbe effektive Adresse verwenden.
  • Beim Starten des Verfahrens gleichzeitig zur Ausführung von Prozessen in der Maschine ist somit sichergestellt, daß sämtliche Zugriffskonfigurationen auf den physischen Speicher erfaßt werden. Bei einem vom Start der Ausführung der Prozesse in der Maschine unabhängigen Start des Verfahrens schlägt die Erfindung vor, sämtliche Einträge in der Korrespondenztabelle LPT beim Start des Verfahrens ungültig zu machen.
  • Die Erfindung schlägt außerdem eine Maschine zur Ausführung des Speicherzugriff-Steuerverfahrens vor, wie in Patentanspruch 7 angegeben.
  • Die Erfindung wird besser verständlich mit Hilfe der Beschreibung eines Ausführungsbeispiels mit Bezug auf die Figuren.
  • 1 erinnert kurz an die Funktionsweise einer segmentierten virtuellen Adressierung.
  • 2 zeigt Korrespondenztabellen zwischen Nummern physischer Seiten und Nummern logischer Seiten.
  • 3 zeigt verschiedene Stufen von Seitenfehlern sowie die Hauptaktionen, die sich daraus gewöhnlich ergeben.
  • 4 zeigt Abwandlungen von 3 gemäß der Erfindung.
  • 5 zeigt ein Beispiel einer Datenverarbeitungsmaschine zur Ausführung der Erfindung.
  • 6 zeigt eine Tafel gemäß dem Steuerverfahren der Erfindung.
  • 7 zeigt weitere Schritte des Verfahrens in Übereinstimmung mit der Maschine.
  • 1 erinnert kurz an die Funktionsweise einer segmentierten virtuellen Adressierung, deren Begriffe für die Erläuterung der Erfindung mit Bezug auf die folgenden Figuren nützlich sein können.
  • Effektive Adresse EA wird eine logische Entität 113 genannt, die im wesentlichen drei Felder STE, SPN und SPRA umfaßt. Das Feld STE enthält eine Anzahl i von Bits, um einen Eintrag einer Segmenttabelle 106, die aus 21 Registern gebildet ist, zu codieren. Beispielsweise enthält die Tabelle 106 sechzehn Register, wenn der Wert von i vier ist. Jedes Register ist dazu vorgesehen, eine Anzahl m von Bits zu halten, um auf einen Segmentidentifizierer SD Bezug zu nehmen. Dies ermöglicht die Segmentierung eines Adressierungsraums in 2m Segmente des virtuellen Speichers. Beispielsweise ermöglicht der Identifizierer SD die Unterscheidung von sechzehn Megasegmenten, wenn der Wert von m vierundzwanzig ist. Das Präfix "Mega" ist hier im Sinne der Datenverarbeitung zu verstehen, d. h., es gibt den Wert eintausendvierundzwanzig Kilo an, wobei Kilo seinerseits den Wert von eintausendvierundzwanzig Einheiten besitzt. Das Feld SPN enthält eine Anzahl j von Bits, um eine Seitennummer in einem Segment zu codieren. Ein Segment kann somit 2j verschiedene Seiten des virtuellen Speichers enthalten, beispielsweise vierundsechzig Kilo Seiten, wenn der Wert von j sechzehn ist. Das Feld SPRA enthält eine Anzahl k von Bits, um eine auf ein Byte bezogene Adresse in einer Seite zu codieren, wobei das Byte die kleinste Datenentität ist, im allgemeinen acht oder neun Bits, die durch das System adressierbar sind. Eine Seite kann somit 2k Bytes enthalten, beispielsweise vier Kilobytes, falls der Wert von k zwölf ist.
  • Eine Verknüpfung des Segmentidentifizierers SD und der Seitennummer SPN ergibt eine Nummer LPN 107 der logischen Seite. Es ist dann möglich, auf 2m+j verschiedene logische Seiten Bezug zu nehmen, beispielsweise auf ein Tera Seiten, wenn der Wert von m + j vierzig ist. Wenn die Bytes jeder Seite mittels des Feldes SPRA adressiert werden, kann somit ein virtueller Adressenraum mit vier Peta Bytes erhalten werden, wobei die Präfixe Tera und Peta im informationstechnischen Wortsinn zu verstehen sind.
  • Eine Tabelle LPT 110 für logische Seiten ermöglicht die Herstellung einer Entsprechung zwischen einer Nummer PPN einer physischen Seite und einer gegebenen Nummer LPN einer logischen Seite. Durch Verknüpfen der Nummer PPN der physischen Seite mit einer relativen Adresse PRA in der Seite, auf die somit Bezug genommen wird, wird eine physische Adresse 112 eines Bytes erhalten. Die relative Adresse PRA ist eine direkte Kopie des Feldes SPRA. Wenn beispielsweise die Nummer der physischen Seite mit zwanzig Bits codiert ist, ist es möglich, eine physische Adresse zu erhalten, die mit zweiunddreißig Bits codiert ist, um auf einen physischen Speicher mit vier Megabytes zuzugreifen.
  • Von den verschiedenen möglichen Mechanismen für die Nutzung der Tabelle 110 kann derjenige des Patents US 4279014 von J.C. Cassonnet u. a. erwähnt werden, wovon bestimmte Bezugnahmen von 1 in der vorliegenden Beschreibung mit Bezugnahme auf diese Figur beliebig aufgenommen worden sind.
  • Die virtuelle Adressierung ermöglicht, einen Adressierungsraum zu erhalten, der deutlich größer als der verfügbare physische Adressierungsraum ist. Der Fachmann kennt noch weitere Vorteile wie etwa jenen, daß die dynamische Änderung von Verbindungen mit der Ausführung von Programmen erleichtert wird.
  • Die erhebliche Größe des virtuellen Adressenraums bewirkt, daß zu einem gegebenen Zeitpunkt auf eine logische Seite mit Nummer LPN nicht notwendig in der Tabelle LPT Bezug genommen wird. Es kann indessen vorkommen, daß eine physische Seite mit Nummer PPN im physischen Speicher vorhanden ist, die der logischen Seite mit Nummer LPN entspricht. 2 zeigt eine Tabelle PPT 55 mit inverser Korrespondenz, worin auf jeden Eintrag durch eine Nummer PPN einer physischen Seite Bezug genommen wird, derart, daß der gesamte verwendete physische Adressierungsraum abgedeckt wird.
  • Jeder Eintrag der Tabelle 55 ermöglicht einen Zugriff auf eine Nummer LPN der logischen Seite, die der Nummer PPN der physischen Seite entspricht, sowie auf eine Gesamtheit von Eigenschaften der physischen Seite PPN, beispielsweise auf einen Indikator Pin, einen Indikator Lib und einen Indikator ES. Ein Zustand Y des Indi kators Pin bedeutet, daß die physische Seite mit Nummer PPN im physischen Speicher verriegelt ist, d. h., daß sie durch den Inhalt einer anderen physischen Seite nicht ersetzt werden kann. Ein Zustand N des Indikators Pin gibt an, daß die physische Seite mit Nummer PPN nicht im physischen Speicher verriegelt ist, d. h., daß sie durch den Inhalt einer anderen physischen Seite ersetzt werden kann, beispielsweise dann, wenn die Größe des physischen Speichers nicht ausreicht, um sämtliche Korrespondenzen zwischen logischen Seiten und physischen Seiten zu erfüllen. Ein Zustand Y des Indikators Lib gibt an, daß die physische Seite mit Nummer PPN frei ist, d. h., daß sie für eine Entsprechung mit einer eventuellen logischen Seite mit neuer Nummer LPN verfügbar ist. Ein Zustand Y des Indikators ES gibt an, daß die physische Seite mit Nummer PPN momentan mittels einer Eingabe/Ausgabe-Vorrichtung ersetzt wird, die mit einem Massenspeicher in Kommunikation steht, und daß diese physische Seite daher nicht verfügbar ist.
  • 3a zeigt, wie ein Prozessor CPU wie beispielsweise einer jener, die später mit Bezug auf 5 dargestellt werden, auf eine physische Seite mit Nummer PPN zugreift, die der logischen Seite mit Nummer LPN entspricht, die er in Übereinstimmung mit den Erläuterungen mit Bezug auf 1 adressiert. Ein Zugriff auf die Nummer LPN einer logischen Seite im Schritt 59 ruft eine Abfrage der Tabelle 110 hervor, beispielsweise gemäß einem Modus, der jenem ähnlich ist, der in dem Patent US 4279014 mit Bezug auf deren 3c erläutert wird. Falls der Prozessor CPU im Schritt 60 feststellt, daß ein gültiger Eintrag der Tabelle LPT die Nummer LPN der logischen Seite enthält, greift er im Schritt 61 direkt auf die entsprechende physische Seite mit Nummer PPN zu. Andernfalls ruft der Prozessor CPU im Schritt 62 eine Ausnahme hervor, die Seitenfehler erster Stufe genannt wird, um zu melden, daß die Nummer LPN der logischen Seite in der Tabelle LPT 110 fehlt. Die im Schritt 62 hervorgerufene Ausnahme hat die Wirkung, die Softwarefunktion V_Neuladen im Schritt 63 zu aktivieren. Die Funktion V_Neuladen wird im physischen Adressierungsmodus in der Weise aktiviert, daß der Inhalt der Tabelle LPT modifiziert wird, damit eine Nummer PPN einer physischen Seite der Nummer LPN der logischen Seite entspricht. Der physische Adressierungsmodus besteht darin, direkt die Adresse 112 zu verwenden, ohne den Mechanismus von 1 zu durchlaufen. Ein Schritt 69 prüft anschließend, ob die Rückgabe der Funktion V_Neuladen erfolgreich ist, d. h. ob die Seite mit Nummer PPN im physischen Speicher vorhanden ist. Der Prozessor CPU kann dann auf die physische Seite mit Nummer PPN im Schritt 61 zugreifen. Andernfalls liegt der Fall eines Seitenfehlers zweiter Stufe vor. Der Prozessor CPU ruft dann im Schritt 70 die Aktivierung einer Softwarefunktion hervor, die p_erhalten genannt wird. Es ist möglich, die Funktion p_erhalten im virtuellen Adressierungsmodus in der Weise zu aktivieren, daß der Inhalt der Tabelle PPT modifiziert wird, damit eine Nummer PPN einer physischen Seite einer Nummer LPN einer logischen Seite entspricht. Der virtuelle Adressierungsmodus vereinfacht die Ausführung komplexer Algorithmen, die den Rahmen der vorliegenden Erfindung verlassen. Die Funktion p_erhalten aktiviert im Schritt 71 eine Funktion, die p_eingeben genannt wird, im virtuellen Adressierungsmodus. Die Funktion p_erhalten enthält außerdem andere Schritte, die nicht gezeigt sind, weil sie für das Verständnis der Erfindung nicht direkt von Nutzen sind. Beispielsweise werden nach einer Freigabe der physischen Seite mit Nummer PPN, um ihre Stelle der logischen Seite mit Nummer LPN zuzuweisen, sämtliche Einträge der Tabelle 110, die vorher eine Entsprechung mit dieser Nummer PPN der physischen Seite gebildet haben, ungültig gemacht. Es sollte angemerkt werden, daß nur die nicht abgeschlossenen physischen Seiten freigegeben werden können. Nach der Ausführung des Schrittes 71 kann der Prozessor CPU dann auf die physische Seite mit Nummer PPN im Schritt 61 zugreifen.
  • 3b zeigt die wesentlichen Schritte der Funktion V_Neuladen, um den Seitenfehler erster Stufe aufzulösen. Im Schritt 64 fragt die Funktion V_Neuladen die Tabelle PPT 55 ab. Wenn die Funktion v_Neuladen im Schritt 65 eine Nummer PPN einer physischen Seite findet (56), die auf die Nummer LPN der logischen Seite Bezug nimmt, die den Fehler in der Tabelle LPT erzeugte, aktiviert die Funktion V_Neuladen im physischen Adressierungsmodus die Funktion p_eingeben im Schritt 66. Andernfalls endet die Funktion V_Neuladen im Schritt 68 und leitet ein Abbruchsignal zurück, um das Fehlen eines erfolgreichen Zugriffs auf die Tabelle PPT 55 zu melden. Nach der Ausführung des Schrittes 66 endet die Funktion V_Neuladen im Schritt 67, indem sie ein Erfolgssignal zurückleitet, um zu melden, daß in der Tabelle LPT eine Entsprechung für die Nummer LPN der logischen Seite geschaffen worden ist.
  • 3c erläutert die wesentlichen Aktionen der Funktion p_eingeben, die im Schritt 74 beginnt. Im Schritt 75 wird die Nummer LPN der logischen Seite, die sich aus den Schritten vor dem Schritt 74 ergibt, in die Tabelle LPT 110 mit (58) der entsprechenden Nummer PPN der physischen Seite eingegeben (57).
  • Die 4a und 4b sind den 3a bzw. 3b bis auf die Schritte 71 und 66 ähnlich, die durch die Schritte 72 bzw. 73 ersetzt sind, die eine Funktion P_Eingeben aktivieren, die von der Funktion p_eingeben verschieden ist und die in der Beschreibung mit Hilfe von Großbuchstaben unterschieden wird.
  • 4c erläutert die wesentlichen Aktionen der Funktion P_Eingeben, die im Schritt 76 beginnt. Im Schritt 77 aktiviert die Funktion P_Eingeben eine Aufzeichnungs-Funktion (Trace), die in der folgenden Beschreibung erläutert wird. Im Schritt 78 aktiviert die Funktion P_Eingeben die ursprüngliche Funktion p_eingeben. Diese Ausführung ist jene, die eine gute Anpaßbarkeit des Aufzeichnungs-Verfahrens an einen beliebigen Maschinentyp ermöglicht, indem sie die Funktionsweise der Maschine, auf die sie angewendet wird, so wenig wie möglich stört. Es könnte nämlich in Betracht gezogen werden, einen besonderen Prozeß für die Ausführung der Aufzeichnung zu erzeugen. Dieser Prozeß brächte indessen die Gefahr mit sich, die Maßnahmen durch die Betriebsmittel zu stören, insbesondere was den Speicher und die Prozessoren betrifft, die ihm zugewiesen sind. Es könnte auch in Betracht gezogen werden, eine Hardware-Vorrichtung zu verwenden, die die Speicherzugriffe erkundet, etwa einen spezifischen Bus-Controller. Indessen wäre diese Vorrichtung notwendig mit dem Hardware-Aufbau der Maschine verbunden, für die sie entworfen worden wäre. Im Gegensatz dazu bildet jede Ausführung der Aufzeichnungs-Funktion einen integralen Bestandteil des Prozeßstrangs, für den sie eine Kopie der Speicherzugriffe bildet.
  • 5 zeigt ein Beispiel der Datenverarbeitungsmaschine 17, die mehrere Module 14, 15 enthält, die durch einen Bus 16 in der Weise verbunden sind, daß dasselbe Betriebssystem in sämtlichen Modulen läuft. Das Modul 14 enthält mehrere Prozessoren 0, 1, 2, 3, während das Modul 15 mehrere Prozessoren 4, 5, 6, 7 enthält, wobei diese Prozessoren im folgenden mit CPU bezeichnet werden. Jeder Prozessor CPU enthält mehrere interne Register, wovon in der folgenden Beschreibung eine Beschränkung auf ein Befehlsadressenregister IAR, ein Verbindungsregister LR, ein Verzweigungsregister CTR und ein Zeitbasisregister TBR vorgenommen wird. Die Register IAR, LR und CTR dienen dem Prozessor CPU, zu dem sie gehören, dazu, Befehlsfolgen während der Ausführung eines Prozeßstrangs Th, der dem Prozessor CPU unterliegt, auszuführen. Das Register TBR dient dem Prozessor CPU, zu dem es gehört, dazu, bei Bedarf ein während der Ausführung auftretendes Ereignis zu datieren. Jedes Modul 14, 15 enthält eine physische Speichereinheit 8, 9, und ein Fernsteuerelement RCC 10, 11 für Cache-Kohärenz, das durch den Bus 16 mit dem oder den anderen Modulen kommuniziert.
  • Ein Prozessor CPU des Moduls 14 kann mittels eines Busses 12 direkte lokale Zugriffe auf die physische Speichereinheit 8 und direkte entfernte Zugriffe auf die physische Speichereinheit 9 über die Steuerelemente 10, 11 und den Bus 16 ausführen. Ebenso kann ein Prozessor CPU jedes anderen Moduls 15 mittels eines Busses 13 lokale direkte Zugriffe auf den physischen Speicher 9 und entfernte direkte Zugriffe auf die physische Speichereinheit 8 über die Steuerelemente 11, 10 und den Bus 16 ausführen. Die Gesamtheit der Speichereinheiten 8, 9 bildet den physischen Speicher der Maschine, der durch ein einziges Betriebssystem verwaltet wird, das sämtlichen Modulen gemeinsam ist. Da die entfernten Zugriffe länger als die lokalen Zugriffe dauern, ist die Maschine vom Typ NUMA, d. h. mit ungleichmäßigen Speicherzugriff.
  • Jeder Prozessor besitzt einen Identifizierer, der ihn von den anderen Prozessoren unterscheidet, wobei ihm dieser Identifizierer in Abhängigkeit vom Modul zugewiesen ist, in dem er sich befindet, beispielsweise eine Zahl von 0 bis 3 für das Modul 14, eine Zahl von 4 bis 7 für das Modul 15 usw. Die Nummer einer physischen Seite schafft eine Unterscheidung des Moduls, in dem sie sich befindet, beispielsweise die Hexadezimalzahlen 0 bis FFFF im Modul 14, falls der Speicher 8 zweihundertsechsundfünfzig Megabytes enthält, die Zahlen 10000 bis 2FFFF im Modul 15, falls der Speicher 9 fünfhundertzwölf Megabytes enthält, usw.
  • Die Maschine 17 enthält verschiedene Mittel für die Ausführung der in den 3 und 4 gezeigten Schritte. Die Schritte 59 bis 62 werden durch Hardware-Mittel wie etwa Logikgatterschaltungen und Mikrosoftware-Mittel ausgeführt. Diese Mittel finden sich in jedem Prozessor CPU der Maschine. Die Korrespondenztabellen 110 und 55 befinden sich im physischen Speicher 8, 9 der Maschine. Auf die Korrespondenztabelle 110 kann jeder Prozessor CPU im physischen Adressierungsmodus direkt zugreifen. Die Korrespondenztabelle 110 befindet sich in einem einzigen Modul oder ist auf mehrere Module verteilt. Der Schritt 63 ruft Software-Mittel auf, d. h. Mittel, die aus Befehlsfolgen gebildet sind, die in Form eines im physischen Speicher 8, 9 der Maschine befindlichen Textes codiert sind, auf den jeder Prozessor CPU im physischen Adressierungsmodus zugreift, weil dieser Schritt einen direkten Eingriff in die Korrespondenztabelle 110 auslöst, die daher zu diesem Zeitpunkt nicht in einem virtuellen Adressierungsmodus verwendet werden kann. Die Schritte 64 bis 68 sind daher durch Software-Mittel verwirklicht, die den physischen Adressierungsmodus verwenden. Der Schritt 70 nimmt andere Software-Mittel in Anspruch, die den virtuellen Adressierungsmodus verwenden. Der virtuelle Adressierungsmodus erleichtert eine Ausführung komplexer Funktionen, Listendurchläufe, Zugriffe auf Massenspeicher über Eingänge/Ausgänge usw. Er wird durch das Fehlen eines direkten Eingriffs in die Elemente des virtuellen Speichermechanismus, wie er mit Bezug auf 1 beschrieben worden ist, ermöglicht. Die Schritte 74 und 75 werden durch Software-Mittel ausgeführt, die den physischen Adressierungsmodus oder den virtuellen Adressierungsmodus in einer Adressierungsraum-Zone verwenden, in der Nummern LPN logischer Seiten und Nummern PPN physischer Seiten übereinstimmen und in der Tabelle PPT verriegelt sind.
  • Die Mittel der Schritte 63 bis 75 sind nicht ausschließlich aus Codezeilen gebildet, die sich im Speicher der Maschine befinden, sondern außerdem aus Schaltungen, die sich in jedem Prozessor befinden, um diese Codezeilen zu interpretieren und um die Aktionsfolgen auszulösen, die sich aus dieser Interpretation ergeben. Dies ist im Stand der Technik vollkommen bekannt.
  • 6 zeigt eine Tafel, die aus mehreren Spalten gebildet ist. Die erste Spalte enthält eine Folge von Zeitangaben, die in Stunden, Minuten, Sekunden und Nanosekunden ausgedrückt sind. Jeder Zeitangabe entspricht eine Aufzeichnung, die in den folgenden Spalten im einzelnen angegeben ist und, die zu der in derselben Zeile der ersten Spalte verzeichneten Zeit vorgenommen wurde. Die Zeitangabe ermöglicht die Bildung von Korrelationen mit den sonstigen erhaltenen Ergebnissen.
  • Die zweite Spalte enthält den Namen Pnom des Prozesses. Dieser Name des Prozesses ermöglicht die makroskopische Erkennung des Prozesses, der einen Speicherzugriff ausgeführt hat, woraus sich die Spur ergibt. Diese Spalte ist optional.
  • Die dritte Spalte enthält einen Identifizierer Pid des obengenannten Prozesses, der im allgemeinen durch das Betriebssystem für jeden erzeugten Prozeß automatisch zugewiesen wird.
  • Die vierte Spalte enthält einen Prozeßstrang-Identifizierer Tid, der vom in der dritten Spalte identifizierten Prozeß, der insbesondere für die Aufzeichnung verantwortlich ist, ausgeführt wird.
  • Die fünfte Spalte enthält einen Identifizierer des Prozessors CPU, der dem in der vierten Spalte angegebenen Prozeßstrang zu der Zeit ausführte, zu der die Aufzeichnung erfolgte. Die Kenntnis dieses Identifizierers ermöglicht die Bestimmung des Moduls, in dem sich der Prozessor CPU befindet. Beispielsweise gibt ein Wert von 0 bis 3 an, daß sich der Prozessor im Modul 14 befindet, ein Wert von 4 bis 7 gibt an, daß sich der Prozessor im Modul 15 befindet. Bei Hinzufügung eines weiteren Moduls mit sechs Prozessoren gibt ein Wert zwischen 8 und 13 an, daß sich der Prozessor in diesem zusätzlichen Modul befindet. Eine gemeinsame Auswertung der fünften und der vierten Spalte ermöglicht die Bestimmung, wie die Prozeßstränge in den Modulen verteilt sind.
  • Die sechste Spalte enthält ein Signal IT, dessen Wert Y einen Unterbrechungseingriff angibt. Im anderen Fall ist der Wert N. Ein Wert Y gibt an, daß die Informationen, die den in der vierten Spalte identifizierten Prozeßstrang betreffen, nicht signifikant sind. Die zum Zeitpunkt des Seitenfehlers ausgeführten Befehle sind nämlich eigentlich nicht jene des Prozeßstrangs, sondern jene einer Unterbrechungssteuerung.
  • Die siebte Spalte enthält den hexadezimal codierten Wert des Registers LR des Prozessors CPU, auf den in der fünften Spalte derselben Zeile Bezug genommen wird. Der Wert des Registers LR ist die Adresse des Befehls, der in einer Codesequenz einem Funktionsaufruf folgt, der dem vom Prozessor CPU ausgeführten momentanen Befehl folgt.
  • Die achte Spalte enthält den hexadezimal codierten Wert des Registers IAR des Prozessors CPU, auf den in der fünften Spalte derselben Zeile Bezug genommen wird. Der Wert des Registers IAR ist die Adresse des vom Prozessor CPU ausgeführten momentanen Befehls in der Codesequenz. Die Werte der Register LR und IAR ermöglichen beispielsweise die Ableitung, ob der Prozeßstrang Tid im Kernmodus ausgeführt wird, d. h., daß infolge eines Systemaufrufs die Codesequenz einer Kernfunktion und nicht eine zum Prozeßstrang Tid gehörende Codesequenz selbst ausgeführt wird. Diese Werte ermöglichen daher die Herstellung einer Beziehung zwischen einer Zuweisung einer Seite zum Prozeßstrang Tid und ihrem Ausgangspunkt als logischer Entität, dem dem Prozeßstrang eigenen Code oder dem dem Kern eigenen Code. In einem Verfahren zur Optimierung der Maschine ermöglichen die in der siebten und in der achten Spalte erhaltenen Werte im Vergleich zu jenen, die in den anderen Spalten erhalten werden, beispielsweise die Entscheidung, den Code umzuorganisieren.
  • Die neunte Spalte enthält die hexadezimal codierte effektive Adresse EA, auf die der Prozeßstrang, auf den in der vierten Spalte derselben Zeile Bezug genommen wird, zugreift. Falls jedes Register der Segmenttabelle 106 dazu vorgesehen ist, einen besonderen Segmenttyp, Daten, Text, gemeinsam genutzte Bibliothek usw. zu erhalten, kann aus dem Feld STE der von der Spur betroffene Bereich des virtuellen Adressierungsraums abgeleitet werden. Auf ein Textsegment, das ausführbaren Code betrifft, wird im allgemeinen beim Lesen zugegriffen. Die Kenntnis des Segmenttyps ermöglicht daher, verschiedene Strategien in Betracht zu ziehen, um die Leistungen der Maschine zu erhöhen, etwa ein Kopieren oder ein Wandern von Seiten im Modul, das den Prozessor enthält, auf den in der fünften Spalte derselben Zeile Bezug genommen wird. Wenn in einem Textsegment viele heiße Seiten, d. h. Seiten, auf die oft zugegriffen wird, erfaßt werden, vermeidet eine Reproduktion der Seiten in verschiedenen Modulen Latenzzeiten, die durch einen Zugriff auf den physischen Speicher eines entfernten Moduls hervorgerufen werden. Dies ist in dem Maß möglich, in dem auf dieses Textsegment ausschließlich zum Lesen zugegriffen wird. Wenn viele heiße Seiten in einem Datensegment für die Ausführung eines Prozeßstrangs erfaßt werden und wenn diese Seiten physisch auf mehrere Module verteilt sind, vermeidet ein Wandern der Seiten und des Prozeßstrangs selbst in einem einzigen Modul die Latenzzeiten, die durch einen Zugriff auf den physischen Speicher eines entfernten Moduls hervorgerufen werden. Diese Lösung ist vorteilhaft, weil auf ein Datensegment sowohl beim Lesen als auch beim Schreiben zugegriffen werden kann. Wenn mehrere Prozeßstränge, die auf verschiedene Module verteilt sind, dieselbe gemeinsam genutzte Bibliothek verwenden, ist es nützlich, die dieser Bibliothek zugeordneten Seiten in jedem der betreffenden Module zu reproduzieren.
  • Das Feld SPRA ermöglicht die präzisere Ableitung, auf welche Adresse im virtuellen Adressenraum zugegriffen wird. Da sie mit dem Wert des Feldes PRA im physischen Adressierungsraum identisch ist, ermöglicht sie die Kenntnis, ob sich die Speicherstelle am Anfang, am Ende oder innerhalb einer physischen Seite befindet.
  • Die zehnte Spalte enthält die hexadezimal codierte Nummer PPN der physischen Seite, die der effektiven Adresse entspricht, auf die in der neunten Spalte derselben Zeile Bezug genommen wird. Die Kenntnis dieser Seitennummer ermöglicht die Ableitung des Moduls, in der sich die physische Seite befindet. Beispielsweise ermöglicht eine Kapazität von zweihundertsechsundfünfzig Megabytes für die Speichereinheit 8, auf Nummern PPN physischer Seiten Bezug zu nehmen, die von 0 bis FFFF laufen; die physischen Seiten, auf die in dieser Weise Bezug genommen wird, befinden sich dann im Modul 14. Eine Kapazität von fünfhundertzwölf Megabytes für die Speichereinheit 9 ermöglicht, auf Nummern PPN physischer Seiten Bezug zu nehmen, die von 10000 bis 2FFFF laufen; die physischen Seiten, auf die in dieser Weise Bezug genommen wird, befinden sich dann im Modul 15. Wenn ein zusätzliches Modul hinzugefügt wird, das mit dem Bus 16 verbunden ist, ist es möglich, auf Nummern PPN von über 30000 bis zu einem Wert Bezug zu nehmen, der von der Kapazität der Speichereinheit dieses Moduls abhängt, usw. bis FFFFF je nach Anzahl der hinzugefügten Module und der Kapazität ihrer jeweiligen Speichereinheit.
  • Die zwölfte Spalte enthält den hexadezimal codierten Segmentidentifizierer SD, der der effektiven Adresse entspricht, auf die in der neunten Spalte derselben Zeile Bezug genommen wird. Der Wert dieses Identifizierers, der mit dem Wert des Feldes SPN verknüpft ist, verschafft eine Nummer LPN einer logischen Seite. Wenn die Nummer LPN der logischen Seite dem Prozeßstrang-Identifizierer Tid hinzugefügt wird, der in der vierten Spalte erhalten wird, ist die Eindeutigkeit der virtuellen Seite sichergestellt. Es ist somit möglich, Nummern logischer Seiten zu erkennen, die von mehreren Prozeßsträngen verwendet werden.
  • Die zwölfte Spalte enthält den Wert des Indikators Pin, der der physischen Seite hinzugefügt ist, auf die in derselben Zeile in der zehnten Spalte Bezug genommen wird. Ein Zustand Y entspricht im allgemeinen im Speicher verriegelten Seiten. Wenn in einem Modul, das von jenem verschieden ist, in dem sich der den Prozeßstrang Tid ausführende Prozessor befindet, eine unverschiebbare physische Seite vorhanden ist, ist die Zugriffszeit auf dieser Seite länger als wenn der Prozessor sich in demselben Modul befindet. Ein zu häufiger Zustand Y des Indikators Pin ist daher für die Leistungen der Maschine nachteilig.
  • Wenn daher die Speicherseiten, auf die oft, jedoch ausschließlich zum Lesen, zugegriffen wird, in mehreren Modulen dupli ziert sind, indem die Seiten zu dem Modul wandern, in dem auf sie am häufigsten zugegriffen wird, oder indem der Code in der Weise umorganisiert wird, daß dadurch die Ausführung erleichtert wird, kann die Funktionsweise der Maschine optimiert werden.
  • 7 zeigt weitere Schritte des Verfahrens in Übereinstimmung mit der Maschine. Das Verfahren beginnt durch eine Vorbereitungsphase, die durch die Schritte 79, 80 und 83 gebildet ist. Im Speicher 8, 9 der Maschine ist eine Zone reserviert, in der die in der Tafel von 6 nach Maßgabe ihres Auftretens verzeichneten Daten vorübergehend festgehalten werden. Vorteilhaft ist die Speicherzone der Maschine in zwei Puffer 81, 82 für jeden Prozessor CPU unterteilt. Diese Puffer werden für den Prozessor CPU abwechselnd gefüllt und geleert. Die Hinzufügung eines Pufferpaares zu jedem Prozessor CPU der Maschine 17 vermeidet konkurrierende Zugriffe auf diese Puffer durch verschiedene Prozessoren. Somit bleibt ihr Inhalt ohne Verwendung von Sperren kohärent.
  • Im Initialisierungsschritt 79 wird einer der Puffer, beispielsweise der Puffer 81, als regulärer Puffer qualifiziert, während der andere Puffer, in diesem Fall der Puffer 82, als Sicherungspuffer qualifiziert wird. Der reguläre Puffer ist derjenige, in den die Trace-Daten nach Maßgabe ihrer Protokollierung geschrieben werden. Der Sicherungspuffer ist dazu vorgesehen, zum neuen regulären Puffer zu werden, wenn der aktuelle reguläre Puffer voll ist.
  • Im Ersetzungsschritt 80 werden die Schritte 66 und 71 durch die Schritte 73 bzw. 72 ersetzt. Somit ruft jede Aktivierung des Schrittes 77 eine Aktivierung des Schrittes 84 hervor, der die Aufzeichnungs-Funktion beginnt.
  • Im Invalidierungsschritt 83 werden sämtliche Einträge der Tabelle 110 ungültig gemacht. In dieser Weise werden die Zugriffe auf logische Seiten, deren Nummer bereits eine Ent sprechung mit der Nummer der physischen Seite vor dem Start des Aufzeichnungs-Prozesses besaß, dennoch protokolliert. Dadurch ist sichergestellt, daß eine Aufzeichnung sämtlicher Zugriffstypen auf den physischen Speicher der Maschine beibehalten wird.
  • Um ihre Ausführung zu erleichtern, kann die Vorbereitungsphase im virtuellen Adressierungsmodus verwirklicht werden.
  • Im Schritt 85 wird der Zustand des regulären Puffers geprüft. Falls der reguläre Puffer voll ist, wird im Schritt 89 der Zustand des Sicherungspuffers geprüft. Falls der reguläre Puffer nicht voll ist, wird dieser im Schritt 86 mit Daten gefüllt, die mit Bezug auf 6 erwähnt worden sind. Auf den regulären Puffer wird im virtuellen Adressierungsmodus zugegriffen, falls der Schritt 77 eine Aktivierung des Schrittes 72 zum Ergebnis hat. Auf den regulären Puffer wird im physischen Adressierungsmodus zugegriffen, falls der Schritt 77 eine Aktivierung des Schrittes 73 zum Ergebnis hat.
  • Im Schritt 87 wird der Zustand des regulären Puffers geprüft. Falls der reguläre Puffer voll ist, wird der Zustand des Sicherungspuffers im Schritt 89 geprüft. Falls der reguläre Puffer nicht voll ist, endet die Aufzeichnungs-Funktion im Schritt 88, um zum Schritt 78 zurückzuspringen.
  • Falls im Schritt 89 der Sicherungspuffer nicht leer ist, endet die Aufzeichnungs-Funktion im Schritt 88, um zum Schritt 78 zurückzuspringen. Der reguläre Puffer bleibt voll und andere Seitenfehler könnten zu einem positiven Ergebnis bei der Prüfung im Schritt 85 führen. Falls der Sicherungspuffer leer ist, wird im Schritt 90 die Leerung des regulären Puffers aktiviert. Der virtuelle Adressierungsmodus erleichtert die Leerung der Speicherzone und die Übertragung ihres Inhalts an die Massenspeicher wie etwa an Platten.
  • Im Schritt 91 erlaubt eine Permutation, in der der Sicherungspuffer, der dann leer ist, zum regulären Puffer für spätere Befüllungen wird, die Qualifizierung des früheren Puffers als Sicherungspuffer, der dann seinerseits für spätere Befüllungen verfügbar wird, sobald er geleert worden ist, wobei die Spur-Funktion im Schritt 88 endet, um zum Schritt 78 zurückzuspringen.
  • In dem Maß, in dem die Trace-Funktion im virtuellen Adressierungsmodus vorbereitet wird, um dadurch die Codierung in der Maschine zu erleichtern, ist es günstig, daß der erhaltene Code auf den Beginn der virtuellen Seite ausgerichtet wird und seine Vollständigkeit in einer virtuellen Seite beibehält. Dieser Code wird nämlich anschließend aus Gründen, die oben erläutert worden sind, im physischen Adressierungsmodus ausgeführt, wobei es günstig ist, daß er die Größe einer physischen Seite nicht übersteigt.

Claims (10)

  1. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff, der auf mehrere Module (14, 15) verteilt ist, wovon jedes einen oder mehrere Prozessoren CPU (4, 5, 6, 7) enthält, um Prozeßstränge (Threads) in einem virtuellen oder physischen Adressierungsraum mittels effektiver Adressen EA (113) auszuführen, für die mittels einer Korrespondenztabelle (110) eine Entsprechung mit Nummern PPN physischer Seiten im Speicher (8, 9) hergestellt werden kann, wobei eine Erzeugung der Nummer LPN einer logischen Seite eine Ausnahme des Typs Seitenfehler erster Stufe hervorruft, wenn die Nummer LPN der logischen Seite in der Korrespondenztabelle (110) fehlt, wobei das Verfahren einen Schritt (72) enthält, in dem nach jeder Ausnahme des Typs Seitenfehler erster Stufe eine Aufzeichnungs-Funktion Trace aktiviert wird, die den Wert der effektiven Adresse EA, die die Nummer LPN der logischen Seite erzeugt hat, welche die Ausnahme hervorgerufen hat, die Zeit, zu der die Ausnahme hervorgerufen worden ist, den Identifizierer (Tid) des Prozeßstrangs (Thread), der die effektive Adresse EA verwendet, den Identifizierer (CPU) des Prozessors, der den Prozeßstrang (Thread) ausführt, sowie die Nummer PPN der physischen Seite, die der Nummer der logischen Seite entspricht, die die Ausnahme hervorgerufen hat, konsigniert.
  2. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff nach Anspruch 1, dadurch gekennzeichnet, daß bei seinem Beginn sämtliche Einträge der Korrespondenztabelle (110) ungültig gemacht werden.
  3. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Aufzeichnungs-Funktion Trace gleichzeitig einen Indikator (Pin) konsigniert, der meldet, ob die physische Seite abgeschlossen oder nicht abgeschlossen ist.
  4. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der Schritt (72) einen Schritt (65) ersetzt, der anfangs vorgesehen ist, um nach einem Seitenfehler erster Stufe einfach eine neue Korrespondenz in der Tabelle (110) zu bewerkstelligen.
  5. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die aufgefundenen Daten in einer Speicherzone gesichert werden, auf die unterschiedslos im virtuellen Adressierungsmodus oder im physischen Adressierungsmodus zugegriffen werden kann.
  6. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zugriff nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß der Code der Aufzeichnungs-Funktion Trace und die Daten, die hierfür notwendig sind, die Größe einer virtuellen Seite nicht übersteigen und daß dieser Code auf einen Beginn der virtuellen Seite ausgerichtet wird.
  7. Maschine zum Ausführen des Verfahrens nach einem der vorangehenden Ansprüche, mit einer ersten Abfrage (Mittel 65) zum Aktivieren einer Funktion, die eine Nummer LPN einer logischen Seite entsprechend einer Nummer PPN einer physischen Seite in einer Korrespondenztabelle (110) einführt, nachdem eine Ausnahme durch das Fehlen eines gültigen Eintrags mit der Nummer LPN der logischen Seite in der Korrespondenztabelle (110) hervorgerufen wurde, dadurch gekennzeichnet, daß sie enthält: – eine Funktion (zweite Mittel), die die erste Abfrage (65) durch einen Aufruf (dritte Mittel 70) ersetzen, die eine Aufzeichnungs-Funktion Trace aktivieren.
  8. Maschine nach Anspruch 7, dadurch gekennzeichnet, daß sie eine Funktion (vierte Mittel) enthält, die die Einträge der Korrespondenztabelle (110) vor der Inbetriebnahme der zweiten Mittel ungültig machen.
  9. Maschine nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß sie zwei Puffer zum vorübergehenden Sichern der aufgefundenen Daten enthält, wobei abwechselnd ein Puffer in einen Massenspeicher entleert wird, während der andere Puffer mit den Ergebnissen der Aufzeichnungs-Funktion gefüllt wird.
  10. Maschine nach Anspruch 9, dadurch gekennzeichnet, daß jedem Prozessor ein anderes Pufferpaar (81, 82) zugewiesen ist, um konkurrierende Zugriffe auf die Puffer während der Leerung und der Befüllung zu vermeiden.
DE19905541A 1998-02-12 1999-02-10 Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens Expired - Lifetime DE19905541B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9801701A FR2774788B1 (fr) 1998-02-12 1998-02-12 Procede de controle d'acces memoire sur une machine avec memoire a acces non uniforme et machine pour mettre en oeuvre ce procede
FR9801701 1998-02-12

Publications (2)

Publication Number Publication Date
DE19905541A1 DE19905541A1 (de) 1999-08-19
DE19905541B4 true DE19905541B4 (de) 2005-12-22

Family

ID=9522906

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19905541A Expired - Lifetime DE19905541B4 (de) 1998-02-12 1999-02-10 Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens

Country Status (5)

Country Link
US (1) US6473848B2 (de)
DE (1) DE19905541B4 (de)
FR (1) FR2774788B1 (de)
GB (1) GB2337614B (de)
IT (1) IT1309544B1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2795196B1 (fr) 1999-06-21 2001-08-10 Bull Sa Processus de liberation de pages physiques pour mecanisme d'adressage virtuel
KR100628201B1 (ko) * 2000-10-16 2006-09-26 엘지전자 주식회사 터보 디코딩 방법
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
JP4028444B2 (ja) * 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
CN102043594A (zh) * 2010-12-31 2011-05-04 中科海量存储技术(北京)有限公司 分布式环境下实现输入输出踪迹收集回放的系统和方法
DE102014116865B4 (de) * 2014-11-18 2020-08-13 Phoenix Contact Gmbh & Co. Kg Analysevorrichtung zur Analyse und Manipulation einer Kommunikationssequenz
US11275721B2 (en) * 2015-07-17 2022-03-15 Sap Se Adaptive table placement in NUMA architectures
KR20180009217A (ko) * 2016-07-18 2018-01-26 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US10642751B2 (en) * 2017-07-20 2020-05-05 Vmware, Inc. Hardware-assisted guest address space scanning in a virtualized computing system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19600428A1 (de) * 1995-01-30 1996-08-01 Hewlett Packard Co System und Verfahren zum Bestimmen eines tatsächlichen Arbeitssatzes eines Prozesses und Beziehen desselben auf Hochpegel-Datenstrukturen
DE3855659T2 (de) * 1987-07-01 1997-06-12 Digital Equipment Corp Gerät und Verfahren zur Erholung von Seitenfehlern in Vektordatenverarbeitungsoperationen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2400729A1 (fr) * 1977-08-17 1979-03-16 Cii Honeywell Bull Dispositif pour la transformation d'adresses virtuelles en adresses physiques dans un systeme de traitement de donnees
JP2625385B2 (ja) 1994-06-30 1997-07-02 日本電気株式会社 マルチプロセッサシステム
US5787476A (en) * 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
FR2767939B1 (fr) 1997-09-04 2001-11-02 Bull Sa Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3855659T2 (de) * 1987-07-01 1997-06-12 Digital Equipment Corp Gerät und Verfahren zur Erholung von Seitenfehlern in Vektordatenverarbeitungsoperationen
DE19600428A1 (de) * 1995-01-30 1996-08-01 Hewlett Packard Co System und Verfahren zum Bestimmen eines tatsächlichen Arbeitssatzes eines Prozesses und Beziehen desselben auf Hochpegel-Datenstrukturen

Also Published As

Publication number Publication date
FR2774788A1 (fr) 1999-08-13
IT1309544B1 (it) 2002-01-23
DE19905541A1 (de) 1999-08-19
US20020062432A1 (en) 2002-05-23
GB2337614A (en) 1999-11-24
FR2774788B1 (fr) 2000-03-24
GB9903120D0 (en) 1999-04-07
ITMI990250A1 (it) 2000-08-09
GB2337614B (en) 2002-08-14
US6473848B2 (en) 2002-10-29

Similar Documents

Publication Publication Date Title
DE3805107C2 (de)
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE69403192T2 (de) Vorrichtung und verfahren zur datensicherung von speichereinheiten in einem rechnernetzwerk
DE102004064069B4 (de) Plattenarrayvorrichtung
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE60010674T2 (de) Hochgeschwindigkeits-prozessorsystem, verfahren zu dessen verwendung und aufzeichnungsmedium
DE68927621T2 (de) Echtzeitdatenbasis
DE3750938T2 (de) Multiprozessorsystem.
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE3932474C2 (de) Plattenzugriff-Steuerverfahren
DE69635865T2 (de) Adressentransformation in einem cluster-computersystem
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE19515661C2 (de) Halbleiter-Plattenvorrichtung
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE3011552A1 (de) Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer
DE2917441A1 (de) Multiprozessoranlage
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
EP0635792A2 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE3502147C2 (de)
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE10316725A1 (de) Datenverwaltungsverfahren für ein Distributed Shared Memory-System
DE19905541B4 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: BULL S.A., LES CLAYES SOUS BOIS, FR

8364 No opposition during term of opposition
R071 Expiry of right