DE19905541A1 - 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

Info

Publication number
DE19905541A1
DE19905541A1 DE19905541A DE19905541A DE19905541A1 DE 19905541 A1 DE19905541 A1 DE 19905541A1 DE 19905541 A DE19905541 A DE 19905541A DE 19905541 A DE19905541 A DE 19905541A DE 19905541 A1 DE19905541 A1 DE 19905541A1
Authority
DE
Germany
Prior art keywords
memory
machine
physical
access
page
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
DE19905541A
Other languages
English (en)
Other versions
DE19905541B4 (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 SAS
Original Assignee
Bull SAS
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 SAS filed Critical Bull SAS
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)

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 verschie­ denen Prozessoren derselben Maschine, mittels eines Systembus­ ses 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 Maschi­ nen 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 opti­ male Anzahl von Prozessoren, beispielsweise vier, und ihr eigenes Betriebssystem. Sie stellt eine Kommunikation mit einer anderen Maschine immer dann her, wenn sie eine Verarbei­ tung 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 erfor­ dern. 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 Zugriffs zeit auf den Spei­ cher 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 Gesamtspei­ chers 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 priva­ ten Bussysteme als ein einziges Bussystem der Maschine anzuse­ hen. 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 be­ wirkt, 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 aktuali­ sierte 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 physi­ schen 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äßi­ gem 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 deinem 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ßzuweisungstabel­ len, Tabellen offener Dateien oder Tabellen von Sperrensetzun­ gen für gemeinsam genutzte Betriebsmittel. Die Kohärenz dieser Daten bringt die Gefahr mit sich, daß zahlreiche Austauschvor­ gä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 Adressierungsmo­ dus zu verwenden, um Prozesse von einer Datenverarbeitungsma­ schine 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 physi­ schen 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ärenzproto­ kolls zwischen Modulen die Gefahr mit sich, die Speicherzu­ griffe 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.
Die Erfindung schlägt ein Verfahren zum Steuern des Speicher­ zugriffs in einer Maschine mit einem Speicher mit ungleichmä­ ßigem Zugriff vor, der auf mehrere Module verteilt ist, wovon jedes einen oder mehrere Prozessoren CPU enthält, um Prozeß­ stränge in einem virtuellen oder physischen Adressierungsraum mittels effektiver Adressen EA auszuführen, für die mittels einer Korrespondenztabelle eine Entsprechung mit Nummern PPN physischer Seiten im Speicher 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 fehlt, dadurch gekennzeichnet, daß es einen Schritt enthält, in dem nach jeder Ausnahme des Typs Seitenfehler erster Stufe eine Aufzeichnungs-Funktion 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 Identifizie­ rer des Prozeßstrangs, der die effektive Adresse EA verwendet, den Identifizierer des Prozessors, der den Prozeßstrang aus­ führt, sowie die Nummer PPN der physischen Seite, die der Nummer der logischen Seite entspricht, die die Ausnahme her­ vorgerufen hat, konsigniert (aufzeichnet bzw. zuordnet).
Die 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 Prozes­ sors 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äzisie­ rung des Adressierungstyps, der für den Prozeßstrang verwendet wird, wobei sich die Nummer der physischen Seite, die dersel­ ben effektiven Adresse zugewiesen ist, im Lauf der Zeit ent­ wickeln kann, falls die physische Seite nicht verriegelt ist. Für die Kommunikation können verschiedene Prozeßstränge die­ selbe effektive Adresse verwenden.
Beim Starten des Verfahrens gleichzeitig zur Ausführung von Prozessen in der Maschine ist somit sichergestellt, daß sämt­ liche 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, die versehen ist mit ersten Mitteln zum Aktivieren einer Funktion, die eine Nummer LPN der logischen Seite entsprechend einer Nummer PPN einer physischen Seite in einer Korrespondenztabelle einführt, nachdem eine Ausnahme durch das Fehlen eines gültigen Eintrags mit der Nummer LPN der logischen Seite in der Korrespondenz­ tabelle hervorgerufen wurde, dadurch gekennzeichnet, daß sie enthält:
  • - zweite Mittel, die die ersten Mittel durch dritte Mittel ersetzen, die eine Aufzeichnungs-Funktion aktivieren.
Die Erfindung wird besser verständlich mit Hilfe der Beschrei­ bung eines Ausführungsbeispiels mit Bezug auf die Figuren.
Fig. 1 erinnert kurz an die Funktionsweise einer segmentierten virtuellen Adressierung,
Fig. 2 zeigt Korrespondenztabellen zwischen Nummern physischer Seiten und Nummern logischer Seiten,
Fig. 3 zeigt verschiedene Stufen von Seitenfehlern sowie die Hauptaktionen, die sich daraus gewöhnlich ergeben,
Fig. 4 zeigt Abwandlungen von Fig. 3 gemäß der Erfindung,
Fig. 5 zeigt ein Beispiel einer Datenverarbeitungsmaschine zur Ausführung der Erfindung,
Fig. 6 zeigt eine Tafel gemäß dem Steuerverfahren der Erfin­ dung,
Fig. 7 zeigt weitere Schritte des Verfahrens in Übereinstim­ mung mit der Maschine.
Fig. 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 2i 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ög­ licht die Segmentierung eines Adressierungsraums in 2m Seg­ mente des virtuellen Speichers. Beispielsweise ermöglicht der Identifizierer SD die Unterscheidung von sechzehn Megasegmen­ ten, 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 enthal­ ten, 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 adres­ sierbar sind. Eine Seite kann somit 2k Bytes enthalten, bei­ spielsweise vier Kilobytes, falls der Wert von k zwölf ist.
Eine Verknüpfung des Segmentidentifizierers SD und der Seiten­ nummer 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 Her­ stellung einer Entsprechung zwischen einer Nummer PPN einer physischen Seite und einer gegebenen Nummer LPN einer logi­ schen 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 di­ rekte 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 zweiund­ dreiß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 Fig. 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 Vor­ teile wie etwa jenen, das die dynamische Änderung von Verbin­ dungen 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. Fig. 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 physi­ schen Seite entspricht, sowie auf eine Gesamtheit von Eigen­ schaften der physischen Seite PPN, beispielsweise auf einen Indikator Pin, einen Indikator Lib und einen Indikator ES. Ein Zustand Y des Indikators 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 Zu­ stand 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.
Fig. 3a zeigt, wie ein Prozessor CPU wie beispielsweise einer jener, die später mit Bezug auf Fig. 5 dargestellt werden, auf eine physische Seite mit Nummer PPN zugreift, die der logi­ schen Seite mit Nummer LPN entspricht, die er in Übereinstim­ mung mit den Erläuterungen mit Bezug auf Fig. 1 adressiert. Ein Zugriff auf die Nummer LPN einer logischen Seite im Schritt 59 ruft eine Abfrage der Tabelle 110 hervor, bei­ spielsweise gemäß einem Modus, der jenem ähnlich ist, der in dem Patent US 4279014 mit Bezug auf deren Fig. 3c erläutert wird. Falls der Prozessor CPU im Schritt 60 feststellt, daß ein gültiger Eintrag der Tabelle LPT die Nummer LPN der logi­ schen 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 82 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 modifi­ ziert 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 Fig. 1 zu durchlaufen. Ein Schritt 69 prüft anschließend, ob die Rückkehr 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, samtliche Einträge der Ta­ belle 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üh­ rung des Schrittes 71 kann der Prozessor CPU dann auf die physische Seite mit Nummer PPN im Schritt 61 zugreifen.
Fig. 3d 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 erfolg­ reichen 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.
Fig. 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 Fig. 4a und 4b sind den Fig. 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 Be­ schreibung mit Hilfe von Großbuchstaben unterschieden wird.
Fig. 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 Funk­ tion 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 zuge­ wiesen 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-Funk­ tion einen integralen Bestandteil des Prozeßstrangs, für den sie eine Kopie der Speicherzugriffe bildet.
Fig. 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 Prozes­ soren 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än­ kung auf ein Befehlsadressenregister IAR, ein Verbindungsregi­ ster LR, ein Verzweigungsregister CTR und ein Zeitbasisregi­ ster 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 Prozes­ sor 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 Speicherein­ heit 9 über die Steuerelemente 10, 11 und den Bus 16 ausfüh­ ren. Ebenso kann ein Prozessor CPU jedes anderen Moduls 15 mittels eines Busses 13 lokale direkte Zugriffe auf den physi­ schen Speicher 9 und entfernte direkte Zugriffe auf die physi­ sche 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 Identifi­ zierer 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 Hexadezi­ malzahlen 0 bis FFFF im Modul 14, falls der Speicher 8 zwei­ hundertsechsundfünfzig Megabytes enthält, die Zahlen 10 000 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 Fig. 3 und 4 gezeigten Schritte. Die Schritte 59 bis 62 werden durch Hardware-Mittel wie etwa Logikgatterschal­ tungen und Mikrosoftware-Mittel ausgeführt. Diese Mittel finden sich in jedem Prozessor CPU der Maschine. Die Korres­ pondenztabellen 110 und 55 befinden sich im physischen Spei­ cher 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 Zeit­ punkt 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 Massen­ speicher über Eingänge/Ausgänge usw. Er wird durch das Fehlen eines direkten Eingriffs in die Elemente des virtuellen Spei­ chermechanismus, wie er mit Bezug auf Fig. 1 beschrieben worden ist, ermöglicht. Die Schritte 74 und 75 werden durch Software-Mittel ausgeführt, die den physischen Adressierungs­ modus oder den virtuellen Adressierungsmodus in einer Adres­ sierungsraum-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 Interpre­ tation ergeben. Dies ist im Stand der Technik vollkommen bekannt.
Fig. 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 obenge­ nannten 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, ausge­ fü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 Pro­ zessor 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 befin­ det. 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 ausge­ fü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ühr­ ten 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 Kern­ funktion und nicht eine zum Prozeßstrang Tid gehörende Codese­ quenz 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 logi­ scher 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 Entschei­ dung, 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 Stra­ tegien 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 zugegrif­ fen 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, ver­ meidet 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 hervorge­ rufen werden. Diese Lösung ist vorteilhaft, weil auf ein Datensegment sowohl beim Lesen als auch beim Schreiben zuge­ griffen 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 repro­ duzieren.
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 Spei­ cherstelle 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 Ablei­ tung des Moduls, in der sich die physische Seite befindet. Beispielsweise ermöglicht eine Kapazität von zweihundertsechs­ undfü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 10 000 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 30 000 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 Kapazi­ tät ihrer jeweiligen Speichereinheit.
Die zwölfte Spalte enthält den hexadezimal codierten Segment­ identifizierer 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 aus fü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 erleich­ tert wird, kann die Funktionsweise der Maschine optimiert werden.
Fig. 7 zeigt weitere Schritte des Verfahrens in Übereinstim­ mung mit der Maschine. Das Verfahren beginnt durch eine Vorbe­ reitungsphase, 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 Fig. 6 nach Maßgabe ihres Auftre­ tens 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, bei­ spielsweise 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 Spurdaten nach Maßgabe ihrer Protokol­ lierung 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 beibe­ halten 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 Fig. 6 erwähnt worden sind. Auf den regulären Puffer wird im virtuellen Adressierungsmodus zuge­ griffen, falls der Schritt 77 eine Aktivierung des Schrittes 72 zum Ergebnis hat. Auf den regulären Puffer wird im physi­ schen 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 Sicherungs­ puffer, 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ückzusprin­ gen.
In dem Maß, in dem die Spur-Funktion im virtuellen Adressie­ rungsmodus 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 ausge­ führt, wobei es günstig ist, daß er die Größe einer physischen Seite nicht übersteigt.

Claims (11)

1. Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher (8, 9) mit ungleichmäßigem Zu­ griff, 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 in einem virtuellen oder physischen Adressie­ rungsraum mittels effektiver Adressen EA (113) auszuführen, für die mittels einer Korrespondenztabelle (110) eine Entspre­ chung 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, dadurch gekenn­ zeichnet, daß es einen Schritt (72) enthält, in dem nach jeder Ausnahme des Typs Seitenfehler erster Stufe eine 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, der die effektive Adresse EA verwendet, den Identifi­ zierer (CPU) des Prozessors, der den Prozeßstrang 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 Funk­ tion (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 gekennzeich­ net, 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 gekennzeich­ net, daß die aufgefundenen Daten in einer Speicherzone gesi­ chert werden, auf die unterschiedslos im virtuellen Adressie­ rungsmodus 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 gekennzeich­ net, daß der Code der 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 virtuel­ len Seite ausgerichtet wird.
7. Maschine zum Ausführen des Verfahrens nach einem der vorangehenden Ansprüche, mit ersten Mitteln (65) zum Aktivie­ ren 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) hervor­ gerufen wurde, dadurch gekennzeichnet, daß sie enthält:
  • - zweite Mittel, die die ersten Mittel (75) durch dritte Mittel (70) ersetzen, die eine Funktion (Trace) aktivieren.
8. Maschine nach Anspruch 7, dadurch gekennzeichnet, daß sie vierte Mittel enthält, die die Einträge der Korrespondenz­ tabelle (110) vor der Inbetriebnahme der zweiten Mittel ungül­ tig machen.
9. Maschine nach Anspruch 7 oder 8, dadurch gekennzeich­ net, 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.
11. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß es zum Duplizieren oder zum Bewirken eines Wanderns von Speicherseiten verwendet wird, derart, daß die Funktionsweise der Maschine, auf die es angewendet wird, optimiert wird.
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 true DE19905541A1 (de) 1999-08-19
DE19905541B4 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

Family Cites Families (8)

* 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
IN169636B (de) * 1987-07-01 1991-11-23 Digital Equipment Corp
JP2625385B2 (ja) 1994-06-30 1997-07-02 日本電気株式会社 マルチプロセッサシステム
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE60030872T2 (de) Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes
DE69635865T2 (de) Adressentransformation in einem cluster-computersystem
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE3011552A1 (de) Datenverarbeitungsanlage mit einem hauptspeicher sowie wenigsten einem datenprozessor mit zugeordnetem adressenumformer
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE3932675A1 (de) Virtuelles maschinensystem
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE4207158A1 (de) Speicher-zugriffssteuerung
DE2641722A1 (de) Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung
DE3502147A1 (de) Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE69726795T2 (de) Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE19905541A1 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE3887843T2 (de) Verfahren zur Bedienung einer Mehrprozessoranordnung zur Datenübertragung zwischen Prozessoreinheiten.
DE2710477A1 (de) Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie
DE3142504A1 (de) Mehrfachplattenspeicher-uebertragungssystem
DE60036667T2 (de) Prozess zur Seitenfreigebung für virtuellen Adressierungsmechanismus
DE68928782T2 (de) Datenverwaltungssystem
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE2842288A1 (de) Datentransferschalter mit assoziativer adressauswahl in einem virtuellen speicher
DE2523795C3 (de) Verfahren zum wiederholten Ausführen von Maschinenbefehlen durch eine festverdrahtete Steuerung in einer Verarbeitungseinheit einer Datenverarbeitungsanlage
DE3426902A1 (de) Schaltungsanordnung zum konfigurieren von peripherieeinheiten in einer datenverarbeitungsanlage
EP1675010A2 (de) Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem

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