DE69822364T2 - Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen - Google Patents

Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen Download PDF

Info

Publication number
DE69822364T2
DE69822364T2 DE69822364T DE69822364T DE69822364T2 DE 69822364 T2 DE69822364 T2 DE 69822364T2 DE 69822364 T DE69822364 T DE 69822364T DE 69822364 T DE69822364 T DE 69822364T DE 69822364 T2 DE69822364 T2 DE 69822364T2
Authority
DE
Germany
Prior art keywords
register
block
module
physical address
memory
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
DE69822364T
Other languages
English (en)
Other versions
DE69822364D1 (de
Inventor
Thierry Bordaz
Henri Raison
Jean-Dominique Sorace
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 DE69822364D1 publication Critical patent/DE69822364D1/de
Application granted granted Critical
Publication of DE69822364T2 publication Critical patent/DE69822364T2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/3409Recording 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 for performance assessment
    • 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/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

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)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die Erfindung betrifft eine Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher.
  • Im Bereich der Informationsverarbeitung ist es möglich, die Leistungsfähigkeit einer Maschine dadurch zu steigern, indem man die Anzahl der Prozessoren erhöht, die sie enthält. Eine unter dem Namen SMP bekannter Maschinentyp ermöglicht es verschiedenen Prozessoren derselben Maschine, auf seinen Speicher auf symmetrische Weise mittels eines Bussystems zuzugreifen. Es handelt sich dabei um Maschinen mit uniformen Speicherzugriffen bei welchen das Maß der Zeit der Speicherzugriffe dasselbe ist wie für alle Datenzugriffe. Dennoch steigt die Leistungskurve solcher Maschinen nicht linear als Funktion der Anzahl der Prozessoren an. Eine erhöhte Anzahl von Prozessoren führt dazu, dass die Maschine mehr mit Zugriffsproblemen auf ihre Ressourcen beschäftigt ist, als dass sie für die Ausführung von Anwendungen bereit steht. Dieses hat zur Folge, dass die Leistungskurve beachtlich nach unten gebogen wird, wenn die Anzahl der Prozessoren einen optimalen Wert übersteigt, welcher häufig mit einer Größenordnung von vier eingeschätzt wird. Der Stand der Technik macht zur Lösung dieses Problems verschiedene Lösungsvorschläge.
  • Eine bekannte Lösung besteht darin, mehrere Maschinen traubenförmig umzugruppieren, derart, dass sie untereinander mittels eines Netzwerks kommunizieren können. Jede Maschine besitzt eine optimale Anzahl von beispielsweise vier Prozessoren und ihr eigenes Betriebssystem. Sie stellt jedes Mal eine Verbindung mit einer anderen Maschine her, wenn sie eine Bearbeitung von Daten durchführt, welche sie von dieser anderen Maschine als neuesten Stand erhalten hat. Die für diese Kommunikationen notwendige Zeit und die Notwendigkeit der Bearbeitung der zusammenhängenden Daten ergeben Verzögerungsprobleme für die umfangreichen Anwendungen wie beispielsweise die aufgeteilten Anwendungen, die häufige Kommunikation erfordern. Die Verzögerung ist die Dauer, die zwischen dem Augenblick der Aussendung einer Anforderung für einen Speicherzugriff und dem Augenblick liegt, in welchem die Erwiderung auf diese Anforderung empfangen wird.
  • Eine andere bekannte Lösung sind die Maschinen vom Typ NUMA. Dieses sind die Maschinen mit nichtuniformen Speicherzugriffen (Non Uniform Memory Access in englischer Sprache), bei welchen das Maß der Zeit der Speicherzugriffe nach dem Ort der Daten variiert, auf welche zugegriffen wird. Eine Maschine vom Typ NUMA besteht aus mehreren Modulen, wobei jedes Modul eine optimale Anzahl von Prozessoren und einen physischen Teil des gesamten Speichers der Maschine umfasst. Eine solche Maschine hat einen nichtuniformen Speicherzugriff, denn ein Modul greift im Allgemeinen viel leichter auf einen Teil des physischen Speichers zu, den es nicht mit einem anderen Modul teilt als auf einen Teil, welcher aufgeteilt ist. Obwohl jedes Modul ein eigenes Bussystem aufweist, welches seine Prozessoren und seinen physischen Speicher verbindet, ermöglicht ein allen Modulen gemeinsames Betriebssystem die Gesamtheit der eigenen Bussysteme als ein einziges Bussystem der Maschine zu betrachten. Eine logische Adressierung bestimmt einen Speicherplatz an einer Stelle im physischen Speicher, die durch ein Modul festgelegt ist. Man unterscheidet für einen für sich betrachteten Prozessor die Zugriffe auf einen Teil des lokalen Speichers, welcher physisch auf demselben Modul wie dieser Prozessor angeordnet ist und die Zugriffe auf einen Teil eines entfernten Speichers, welcher physisch auf einem oder auf mehreren anderen Modulen angeordnet ist als diesem, auf welchem sich dieser Prozessor befindet.
  • Eine besondere Version des Maschinentyps NUMA ist der Typ CCNUMA, das heißt solche Maschinen mit einem zusammenhängenden Pufferspeicher (Cache Coherency in englischer Sprache). Eine Vorrichtung eines aufgeteilten Pufferspeichers fertigt zu einem bestimmten Zeitpunkt eine gültige, das heißt eine auf dem neuesten Stand stehende Kopie dieses Blocks an, der sich nicht notwendigerweise mit seinem Speicherort im physischen Speicher befindet. Eine oder mehrere gültige Kopien dieses Blocks können so von einem Modul zu einem anderen gelangen, je nach anwendungsbedingten Anforderungen und Systemanforderungen. Der in einem betrachteten Modul angeordnete physische Speicher ist derjenige, auf welchen das betrachtete Modul am schnellsten zugreift, denn dieses erfolgt über seinen lokalen Systembus. Der physische Speicher, welcher entfernt in einem anderen Modul angeordnet ist, ist derjenige, auf den das betrachtete Modul am langsamsten zugreift, denn dazu werden einer oder mehrere Datenaustausche zwischen Modulen erforderlich. Der in dem betrachteten Modul angeordnete physische Speicher beinhaltet einen ersten Teil, welcher speziell den Datenblöcken zugewiesen ist, die in dem Modul resident sind, und einen zweiten Teil, welcher speziell den Kopien von Blöcken zugewiesen ist, die in den anderen Modulen resident sind. Der zweite Teil des physischen Speichers weist einen Puffer des entfernten Speichers in den anderen Modulen auf.
  • Ein in dem ersten Teil des physischen Speichers residenter Block ist nicht sofort verfügbar, wenn sein Inhalt keine aktuelle Kopie darstellt, das ist zum Beispiel dann der Fall, wenn ein oder mehrere weitere Module sich diesen Block teilen, und wenn das eine dieser weiteren Module davon eine aktuelle Kopie aufweist, im Zustand zusammenhängende Speicher. Zur Erzeugung der Aufteilung von in seinem ersten Teil des physischen Speichers residenten Blöcken auf weitere Module, stellt das betrachtete Modul eine Tabelle des lokalen Speichers LMD (Local Memory Directory in englischer Sprache) auf. Die Tabelle LMD besteht aus mehreren Zeilen, von denen jede dazu vorgesehen ist, einen in dem Modul angeordneten beziehungsweise residenten und auf einen oder mehrere weitere Module aufgeteilten Block zu bezeichnen.
  • Ein Block, der nicht in dem ersten Teil des physischen Speichers resident ist, ist sofort verfügbar, wenn eine aktuelle Kopie dieses Blocks in dem zweiten Teil des physischen Speichers erreichbar ist. Zur Erzeugung des Vorhandenseins von aktuellen Kopien in dem zweiten Teil des physischen Speichers erstellt das betrachtete Modul eine Tabelle des entfernte Speichers RCT (Remote Cache Table in englischer Sprache). Die Tabelle RCT besteht aus mehreren Zeilen, von denen jede dazu vorgesehen ist, mit einem Ort des zweiten Teils des physischen Speichers zu korrespondieren, wobei jeder Ort dazu vorgesehen ist, eine Kopie des durch diese Zeile bezeichneten Blocks zu beinhalten.
  • Der Nutzen einer Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher besteht darin, dass jedes Modul Datenblöcke, die in einem ersten Teil seines lokalen Speichers resident sind, oder Kopien von in einem ersten Teil des Speichers eines anderen Moduls residenten Blöcken in einem zweiten Teil seines lokalen Speichers bearbeitet. Ein betrachtetes Modul braucht dann nur mit anderen Modulen zu kommunizieren, um für das Bearbeiten der aktuellen Kopien eine Übereinstimmung der Daten abzusichern. Bei der Ausführung ist es somit a priori irrelevant, ob ein Datenblock in einem Modul oder in einem anderen resident ist, wobei jedes Modul, wenn erforderlich, Kopien von benötigten Blöcken in seinen lokalen Speicher abspeichert. Indessen ist es für eine Ausführung des gemeinsamen Betriebssystems für alle Module oder bestimmte aufgeteilte Anwendungen möglich, dass bestimmte Daten häufig der Einheit von Modulen verwendbar sind. Diese Daten betreffen beispielhaft aber nicht einschränkend Unterstützungstabellen für Prozesse, Tabellen von offenen Dateien oder Tabellen für Zugriffserlaubnis auf aufgeteilte Ressourcen. Das Zusammenhängen dieser Daten bringt die Gefahr mit sich, dass umfangreicher Datenaustausch zwischen den Modulen erforderlich wird und die von diesen Maschinen erreichte Leistungserhöhung somit gestört wird. Das Problem liegt darin, dass es schwierig ist, a priori das Maß einzuschätzen, in welchem die auf mehrere Module aufgeteilten Daten es mit sich bringen, die Leistung der Maschine zu beeinträchtigen, wobei diese Beeinträchtigung außerdem von der Betriebsart der Maschine sowie gleichviel von den Anwendungen abhängig sind, die mit dieser Maschine durchgeführt werden. Andererseits würde eine Investition von Optimierungsgeldern nachteilig sein, die Daten betreffen, welche die Leistungen nur gering beeinträchtigen, auf die Gefahr hin, Daten zu vernachlässigen, deren Lokalisation die Gefahr mit sich bringt, diese Leistungen wesentlich mehr zu beeinträchtigen.
  • Während Untersuchungen von Systemen mit Architekturen von Multiprozessoren besonders in der Schrift "The Dash Prototype: Logic Overhead and Performance", herausgegeben von Daniel Lenoski, James Laudon, Truman Joe, David Nakahira, Luis Stevens, Anoop Gupta and John Hennessy, 8353 IEEE Transactions on Parallel and Distributed Systems, 4(1993) January, No. 1, New York, U.S. beschrieben werden, werden die Ergebnisse der erwähnten Untersuchungen in statistischer Form in prozentualer Prozessor-Nutzungszeit in Histogrammen dargestellt. Eine solche Untersuchung ermöglicht keine Überwachung und Ermittlung von „heißen" Zugriffsstellen im zugehörigen Speicher von Prozessoren mit einer Architektur von Multiprozessoren.
  • Obwohl die Überwachung von Zugriff unter den Speicheradressen eines Prozessors in der US-A-4 845 615 beschrieben ist, betrifft eine solche Überwachung einzig und allein die Überwachung einer Software und insbesondere an den Speicherbereichen, die zu einem Prozessor gehören, während die Ausführung dieser Software mit einem Rechner in einer Einzelplatz-Version erfolgt. Eine solche Überwachung kann nicht den Anspruch erheben, das Gewährleisten einer Zugriffssteuerung auf diesen Speicherbereich ausgehend von einer Vielzahl von weiteren Prozessoren einer Architektur von Multiprozessoren zu ermöglichen.
  • Die durch die Ansprüche festgelegte Erfindung schlägt eine Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher vor, welche aus mehreren Modulen besteht, wobei ein betrachtetes Modul eine Einrichtung zur Sicherstellung eines Zusammenhangs von Daten mit anderen Modulen beinhaltet, dadurch gekennzeichnet, dass diese Einrichtung mindestens Folgendes aufweist:
    • – ein erstes Register, das für die Aufnahme einer ersten physischen Adresse des Speichers vorgesehen ist,
    • – ein zweites Register, das für die Aufnahme einer zweiten physischen Adresse des Speichers vorgesehen ist,
    • – erste Einrichtungen zum Messen einer Anzahl von Aktivitäten bezüglich Daten, deren Adressen zwischen dieser ersten physischen Adresse und dieser zweiten physischen Adresse enthalten sind,
    • – ein drittes Register, das für die Aufnahme eines Schwellenwerts für das Messen der Anzahl von Aktivitäten vorgesehen ist,
    • – zweite Einrichtungen zur Ermittlung, ob dieser Schwellenwert von der durch die ersten Einrichtungen gemessenen Anzahl von Aktivitäten überschritten wird.
  • Eine Messung der Anzahl von Aktivitäten bezüglich Daten, deren Adressen unter zwei physischen Adressen enthalten sind, welche ein Fenster im Speicherraum der Maschine bilden, ermöglicht es, eine charakteristische Latenzzeit dieses Fensters abzuschätzen, eine Zeitdauer, die die Aussendung einer Anforderung durch einen eigenen Pufferspeicher eines Prozessors und die Verfügbarkeit einer zu dieser Anforderung korrespondierenden Erwiderung in diesen eigenen Pufferspeicher trennt. Die Abschätzung kann ausgehend von einer absoluten Zeit oder ausgehend von einer Anzahl von Datenaustauschen durchgeführt werden.
  • Die Erfindung wird mit Hilfe der Beschreibung eines Ausführungsbeispiels mit Bezug auf die Figuren noch weiter verständlich.
  • Die 1 zeigt eine Architektur einer Maschine mit vier Modulen
  • Die 2 stellt bestimmte Details der vorerwähnten Einrichtung dar, welche in einem Modul angeordnet ist, das als ein lokales betrachtet wird.
  • Die 3 zeigt bestimmte Details der vorerwähnten Einrichtung, welche in einem Modul angeordnet ist, das als ein entferntes betrachtet wird.
  • Die 4 bis 6 stellen weitere Details der Einrichtung zur Anwendung der Erfindung dar.
  • Die 7 stellt einen Funktionsablauf der Einrichtung mit den Details aus 6 dar.
  • Die 1 zeigt ein Beispiel einer Architektur einer Maschine mit nichtuniformen Speicherzugriffen, welche aus vier Modulen 10, 20, 40 und 60 besteht, die mittels eines Ringnetzwerks 16 untereinander verbunden sind. Die folgende Beschreibung mit Bezug auf die 1 gilt auch für irgendeine Anzahl von Modulen größer oder gleich zwei. Die Verbindung zwischen den Modulen kann mittels eines oder mehrerer gemeinsamer Ringnetzwerke oder mittels jedes anderen Verbindungstyps wie solche, die die Verbindungen mit Gattern, Hyperwürfel oder Kreuzschienenwähler (crossbar in englischer Sprache) herstellen, um nur einige unter den meist bekannten zu nennen. Die Verbindung der Module untereinander gestattet die Durchführung von Datenaustauschen zwischen den Modulen, welche das Protokoll des Zusammenhangs des Speichers benutzen.
  • Das Modul 10 umfasst vier Prozessoren 1 bis 4, einen Speicher 5 und eine Einrichtung 6 zur Verbindung mit den anderen Modulen über das Ringnetzwerk 16. Die unterschiedlichen Bauteile 1 bis 6 sind untereinander über ein Bussystem 7 in dem Modul 10 verbunden. Das Modul 20 umfasst vier Prozessoren 21 bis 24, einen Speicher 25 und eine Einrichtung 26 zur Verbindung mit den anderen Modulen über das Ringnetzwerk 16. Die unterschiedlichen Bauteile 21 bis 26 sind untereinander über ein Bussystem 27 in dem Modul 20 verbunden. Das Modul 40 umfasst vier Prozessoren 41 bis 44, einen Speicher 45 und eine Einrichtung 46 zur Verbindung mit den anderen Modulen über das Ringnetzwerk 16. Die unterschiedlichen Bauteile 41 bis 46 sind untereinander über ein Bussystem 47 in dem Modul 40 verbunden. Das Modul 60 umfasst vier Prozessoren 61 bis 64, einen Speicher 65 und eine Einrichtung 66 zur Verbindung mit den anderen Modulen über das Ringnetzwerk 16. Die unterschiedlichen Bauteile 61 bis 66 sind untereinander über ein Bussystem 67 in dem Modul 60 verbunden. Die jeweilige Einrichtung zur Verbindung 6, 26, 46, 66 ist mit dem Ringnetzwerk 16 jeweils mittels eines Anschlusses 17, 37, 57, 77 verbunden.
  • Jeder Prozessor 1 bis 4, 21 bis 24, 41 bis 44, 61 bis 64 besitzt jeweils einen eigenen internen oder externen Pufferspeicher 11 bis 14, 31 bis 34, 51 bis 54, 71 bis 74. Das Modul 10 umfasst weiterhin einen Pufferspeicher 15 für entfernte Zugriffe, bezeichnet mit RC; das Modul 20 umfasst weiterhin einen Pufferspeicher 35 für entfernte Zugriffe, bezeichnet mit RC; das Modul 40 umfasst weiterhin einen Pufferspeicher 55 für entfernte Zugriffe, bezeichnet mit RC; das Modul 60 umfasst weiterhin einen Pufferspeicher 75 für entfernte Zugriffe, bezeichnet mit RC. Um die Größe der Pufferspeicher 15, 35, 55 und oder 75 parametrieren zu können, ist es vorteilhaft, diesen physisch in einem reservierten Bereich des jeweiligen Speichers 5, 25, 45, 65 anzuordnen, wie die 1 zeigt. In diesem Fall betrachtet die folgende Beschreibung den jeweiligen Speicher 5', 25', 45', 65' so als wenn er aus Datenblöcken des jeweiligen Speichers 5, 25, 45, 65 besteht, welche nicht die Datenblöcke der jeweiligen Pufferspeicher 15, 35, 55, 75 umfassen. In dem Fall, in dem die Pufferspeicher 15, 35, 55, 75 durch physische Komponenten verkörpert werden, die unterschiedlich zu denen der Speicher 5, 25, 45, 65 sind, müssen die Bezugszeichen 5', 25', 45', 65' identisch mit den Bezugszeichen 5, 25, 45, 65 verstanden werden.
  • Jeder Prozessor 1 bis 4, 21 bis 24, 41 bis 44, 61 bis 64 greift auf Datenblöcke zu, welche in den Speichern 5', 25', 45', 65' enthalten sind. Dieses erfolgt mittels logischer Adressen eines einzigen Adressraumes, ohne zu unterscheiden, ob die Speicher 5', 25', 45', 65' lokal angeordnet sind, also zu dem selben Modul wie der Prozessor gehören, oder entfernt angeordnet sind, und zu einem anderen Modul gehören, zu dem der Prozessor nicht gehört. In dem Modul 10 ist es die Einrichtung zur Verbindung 6, welche unterscheidet, ob die logische Adresse einer physischen lokalen Adresse des in dem Speicher 5' angeordneten Blocks entspricht, oder ob die logische Adresse einer physischen entfernten Adresse eines in den Modulen 20, 40, 60 angeordneten Blocks entspricht, zum Beispiel mittels der höherwertigen Bits der logischen Adresse, welche das Modul anzeigen, in dem sich die Speicheradresse physisch befindet, wobei die niederwertigen Bits dann die physische Adresse innerhalb des Moduls des Speicherorts angeben. In dem Modul 20 ist es die Einrichtung zur Verbindung 26, welche unterscheidet, ob die logische Adresse einer physischen lokalen Adresse des in dem Speicher 25' angeordneten Blocks entspricht, oder ob die logische Adresse einer physischen entfernten Adresse eines in den Modulen 40, 60, 10 angeordneten Blocks entspricht, zum Beispiel mittels der höherwertigen Bits der logischen Adresse, welche das Modul anzeigen, in dem sich die Speicheradresse physisch befindet, wobei die niederwertigen Bits dann die physische Adresse innerhalb des Moduls des Speicherorts angeben, und so weiter in dieser Folge für die anderen Module. Die oben erwähnten höherwertigen Bits bilden ein Feld A4 der logischen Adresse. Die Datenblöcke, auf die so zugegriffen wird, bilden eine Einheit SM des auf alle Prozessoren aufgeteilten Speichers.
  • Das Beispiel, welches mit Bezug auf den Prozessor 1 folgt, gilt auch für jeden der anderen Prozessoren 2 bis 4 mit Bezug auf das Modul 10 sowie 21 bis 24 mit Bezug auf das Modul 20, und 41 bis 44 mit Bezug auf das Modul 40, und 61 bis 64 mit Bezug auf das Modul 60.
  • Der Prozessor 1 behandelt ein in einem Block B1 der Daten der Einheit SM enthaltenes Wort mittels seines eigenen Pufferspeichers 11 gemäß einer bekannten Prozedur des Pufferspeichers, wie solche mit direkter Übereinstimmung, assoziativer Übereinstimmung oder assoziativ durch Blockeinheiten, ohne dass es notwendig ist, hier auf die unterschiedlichen Abläufe einzugehen.
  • Es ist bekannt, dass ein Pufferspeicher vor allem einen Speicher mit schnellem Zugriff und eine Verbindungstabelle umfasst, die nicht in den Figuren dargestellt sind. In dem Fall einer direkten Übereinstimmung unterscheidet man vor allem drei Felder in der logischen Adresse eines Wortes in der absteigenden Reihenfolge der Wertigkeit der Bits. Ein erstes Feld A1, das Etikett beziehungsweise Kennzeichen genannt wird, ein zweites Feld A2, das Index heißt und ein drittes Feld A3, das die Adresse des Wortes in dem Datenblock bezeichnet, der das Wort enthält. Das erste und zweite Feld bilden gewöhnlich die logische Adresse des Blocks B1. Der Index A1 zeigt auf eine Zeile einer Verbindungstabelle, die vor allem zwei Werte enthält. Der erste Wert ist das Kennzeichen A1' eines Blocks B2, von dem eine physische Abbildung in dem Speicher mit schnellem Zugriff durch diesen Index direkt adressiert wird. Der zweite Wert ist ein Statuscode, welcher anzeigt, ob der Block B2 von dem Prozessor exklusiv gehalten wird, auf einen anderen Prozessor aufgeteilt ist, und in diesem Fall, ob sein Inhalt gültig ist oder ob er von diesem anderen Prozessor verändert worden ist.
  • Wenn das Kennzeichen A1 des Blocks B1 gleich dem Kennzeichen A1' des Blocks B2 ist und wenn der Statuscode eine Exklusivität oder einen gültigen Inhalt anzeigt, ist der Block B2 kein anderer als der Block B1, physisch enthalten in dem Speicher mit schnellem Zugriff, und der Prozessor kann die in dem Block befindlichen Wörter direkt verarbeiten, indem er sie physisch in dem Speicher mit schnellem Zugriff mittels des zweiten und dritten Feldes der logischen Adresse adressiert. Wenn der Statuscode eine Aufteilung anzeigt, wird durch die Prozedur des Pufferspeichers ein Signal S1 auf den Bus 7 gegeben, um eine Veränderung der Adresse des Blocks B1 anzuzeigen, um den Statuscodes dieses Blocks in den Pufferspeichern, auf die er aufgeteilt ist, zu modifizieren.
  • Wenn das Kennzeichen A1 des Blocks B1 unterschiedlich zum Kennzeichen A1' des Blocks B2 ist, oder wenn der Statuscode eine Aufteilung und einen veränderten Inhalt anzeigt, kann der Prozessor die in diesem Block enthaltenen Worte nicht direkt bearbeiten, indem er sie physisch in dem Speicher mit schnellem Zugriff mittels des zweiten und dritten Feldes der logischen Adresse adressiert. Wenn der Statuscode eine Exklusivität anzeigt, wird durch den Ablauf des Pufferspeichers eine Anforderung Q2 zum Einschreiben des Blocks B2 in den aufgeteilten Speicher gesendet, damit ein Platz in dem Pufferspeicher an der durch den Index A2 angezeigten physischen Adresse frei wird; dann wird eine Anforderung Q1 zum Lesen des Blocks B1 in dem aufgeteilten Speicher gesendet, damit der Block B1 in den Pufferspeicher an die durch den Index A2 angezeigte Adresse geladen wird. Andernfalls wird durch den Ablauf des Pufferspeichers eine Anforderung Q1 zum Lesen des Blocks B1 in dem aufgeteilten Speicher gesendet, damit der Block B1 in den Pufferspeicher an die durch den Index A2 angezeigte Adresse geladen wird.
  • Die 2 stellt eine erste Stufe der Einzelheiten der Einrichtung zur Verbindung 6 dar, welche mit den stofflichen und logischen Bauteilen eingesetzt wird, wenn eine Adresse des die Felder A1 und A2 bildenden Blocks auf dem Bus 7 umläuft, wobei sie mit einem Signal S1, einer Anforderung Q1 oder Q2 verknüpft ist. Die Einrichtung zur Verbindung 6 mit der Bezeichnung RCC umfasst eine Tabelle 8 mit der Bezeichnung LMD, eine Tabelle 9 mit der Bezeichnung RCT, ein Register 18 und ein Register 19. Die Adresse des Blocks ist ebenfalls auf drei Felder A4 bis A6 oder auf zwei Felder A7 und A8 aufgeteilt. Das Feld A4 wird von Bits gebildet, die höherwertiger als die des Feldes A5 sind, und das Feld A6 wird von Bits gebildet, die niederwertiger als die des Feldes A5 sind. Das Feld A8 wird von niederwertigen Bits gebildet, und das Feld A7 wird von höherwertigen Bits in größerer Anzahl als die des Feldes A4 gebildet, damit das Feld A4 von einer Anzahl von höherwertigen Bits verdeckt wird. Der Nutzen der Felder A4 bis A8 wird im Folgenden der Beschreibung erläutert. Die Folgerichtigkeit des Einschreibens in die Register 18 und 19 als Funktion der Werte der Felder A4 bis A8 wird mittels der Zellen dargestellt, in welchen logische Funktionen bearbeitet werden. Jedes Paar von Zellen, die denselben Term enthalten, wobei in der einen das Zeichen = und in der anderen das Zeichen' vorangestellt ist, bilden einen Komparator, in welchem das Ergebnis in Laufrichtung eine logische Stufe aktiviert. In jedem der Register 18 und 19 ist einer der beiden logischen Zustände eines Signals eingeschrieben, die symbolisch durch ein Paar von Zellen repräsentiert werden. Die beschriebene Logik kann mittels eines Mikroprozessors realisiert werden, welcher speziell für die Einrichtung zur Verbindung 6 vorgesehen ist. Indem diese Logik mittels stofflicher Schaltkreise verwirklicht wird, vergrößert man seine Ausführungsgeschwindigkeit. Die Erläuterungen mit Bezug auf die 2 für die Einrichtung zur Verbindung 6, welche für das Modul 10 als lokal und für die Module 20, 40, 60 als entfernt betrachtet wird, gelten für die Einrichtungen zur Verbindung 26, 46, 66, wobei die Bezugszeichen im Kreis ersetzt werden, und im Besonderen gemäß der gleichen Umbesetzung im Kreis 8 durch 28, 48 oder 68, und 9 durch 29, 49 oder 69 gemäß dem betrachteten Modul ersetzt werden.
  • Wenn die Einrichtung zur Verbindung 6 das Signal S1, die Anforderung Q1 oder die Anforderung Q2 auf dem Bus 7 feststellt, bearbeitet sie den betreffenden Block mit einer Pufferspeicherprozedur mit Hilfe ihrer Tabelle 8, wenn die in dem Feld A4 der logischen Adresse enthaltenen höherwertigen Bits anzeigen, dass sich der betreffende Block physisch in dem Speicher 5' befindet, lokal im Modul 10, und mit Hilfe ihrer Tabelle 9, wenn die höherwertigen Bits des Kennzeichens anzeigen, dass sich der betreffende Block physisch in einem der entfernten Module 20, 40 oder 60 befindet.
  • Die Tabelle 8 wird mit m Bits indiziert, welche ein Feld A5 der logischen Adresse den höherwertigen Bits des Kennzeichens nachfolgend bilden. Der Wert der Nummer m bestimmt direkt die Größe der Tabelle 8, deren Zeilenanzahl dann gleich 2m beträgt. Jede Zeile der Tabelle 8 enthält die niederwertigen Bits, welche ein Feld AG der logischen Adresse eines auf ein oder mehrere entfernte Module aufgeteilten Blocks und einen Statuscode S2 bilden. Der Statuscode S2 ist zum Beispiel ein Byte, welches Präsenz- und Zustandsbits aufweist. Jedem vom Modul 10 entfernten Modul 20, 40, 60, in welchem sich der durch die Felder A5 und A6 gekennzeichnete Block befindet, ist ein Präsenzbit zur Identifikation zugeordnet, welches das Vorhandensein einer Aufteilung dieses Blocks auf das entfernte Modul 20, 40, 60 angibt. Das Zustandsbit zeigt an oder die Zustandsbits zeigen an, wenn der Block von einem entfernten Modul verändert worden ist. Zu einem bestimmten Zeitpunkt hält ein einzelnes Modul die modifizierie Kopie, welche die aktuellste des Blocks ist. Das heißt, dass wenn der Statuscode S2 eine Veränderung anzeigt, gibt es kein Bit mehr außer einem einzigen Präsenzbit, das die Aufteilung dieses Blocks auf ein entferntes Modul anzeigt, das ist das Bit, welches dem Modul zugeordnet ist, das die aktuellste Version enthält. Die Kopie des Blocks im Modul 10 ist nicht mehr aktuell, und die Kopien des Blocks in den anderen Modulen sind ungültig. Wenn der Statuscode keine Modifikation angibt, bedeutet das, dass das Modul 10 eine aktuelle Kopie des Blocks aufweist, und dass alle die Module, bei denen das Präsenzbit erhöht ist, eine aktuelle Kopie des Blocks halten, aufgeteilt auf das Modul 10. Wenn kein Präsenzbit das Vorhandensein einer Aufteilung auf ein entferntes Modul anzeigt, ist die Kopie des aktuellsten Blocks die des Blocks, der sich im Modul 10 befindet. Die korrespondierende Zeile der Tabelle 8 ist in der Tat verfügbar, um Bezug auf einen anderen Block zu nehmen, falls notwendig. Die niederwertigen Bits der logischen Adresse eines Blocks sind hier die Bits, welche den vorab erwähnten m Bits nachfolgen, sodass die Verkettung der Felder A4, A5 und A6 die Verkettung der Felder A1 und A2 verdeckt. Die Felder A5 und A6 ermöglichen es, den Block physisch in dem lokalen Speicher zu adressieren, welcher durch den Speicher 5' gebildet wird.
  • Wenn die durch die m Bits des Feldes A5 indizierte Zeile des Feldes A5 einen Adresswert enthält, der verschieden von dem des bearbeiteten Blocks ist, bedeutet das, dass kein anderes Modul außer dem Modul 10 dort zugreift. Die Bearbeitung des Blocks bleibt dann lokal im Modul 10 und es ist nicht notwendig, dies in die Tabelle 8 aufzunehmen, denn seine Aktualisierung in dem Speicher 5' und gegebenenfalls in den eigenen Pufferspeichern 11 bis 14 ist ausreichend. Die Einrichtung zur Verbindung 6 erzeugt ein Signal LH für einen lokalen Erfolg, um einen erfolgreichen lokalen Zugriff (local hit in englischer Sprache) anzuzeigen, ohne einen Datenaustausch mit einem entfernten Modul. Das Signal LH wird in das Register 18 eingeschrieben. Es ist dasselbe, wenn kein einziges Bit des Statuscodes S2 die Aufteilung auf ein entferntes Modul anzeigt.
  • Wenn die Zeile der Tabelle 8, indiziert von den m Bits des Felds A5, einen Adresswert A6 enthält, der dem des bearbeiteten Blocks entspricht, und dass wenigstens ein Bit des Statuscodes einen Aufteilung anzeigt, bedeutet dies, dass ein anderes Modul als das Modul 10, zum Beispiel das Modul 20, dort vorher zugegriffen hat. Die Bearbeitung des Blocks hängt dann von seinem vorherigen Zugriff durch das entfernte Modul 20 und von der mit diesem Block verknüpften Bearbeitung ab. Wenn der Statuscode S2 anzeigt, dass der Block zur Zeit in aufgeteilter Benutzung steht, bestimmt die Einrichtung zur Verbindung 6, wenn ein Datenaustausch mit dem entfernten Modul 20 notwendig wird.
  • Wenn der Statuscode S2 anzeigt, dass der Block von einem entfernten Modul verändert worden ist, erfordert eine Anforderung Q1 zum Lesen einen Datenaustausch mit dem entfernten Modul, welches eine gültige Kopie des Blocks hält, um diese gültige Kopie in den im Modul 10 befindlichen physischen Speicher wieder einzuspeichern, erzeugt die Einrichtung zur Verbindung 6 dann ein Signal LM eines lokalen Misserfolges, um anzuzeigen, dass ein lokaler nicht erfolgreicher Zugriff (local miss in englischer Sprache) stattgefunden hat, der wenigstens einen Datenaustausch mit einem entfernten Modul mit sich bringt. Das Signal LM wird in das Register 18 geschrieben, dann aktualisiert die Einrichtung zur Verbindung 6 den Statuscode S2 auf einen nicht veränderten Status am Ende des Datenaustausches.
  • Wenn der Statuscode 2 nicht anzeigt, dass der Block nicht von einem entfernten Modul verändert worden ist, macht eine Anforderung Q1 zum Lesen es nicht erforderlich, einen Datenaustausch mit einem entfernten Modul vorzunehmen, denn das Modul 10 hält eine gültige Kopie des Blocks, die Einrichtung zur Verbindung 6 erzeugt dann ein Signal LH für einen erfolgreichen lokalen Zugriff. Andererseits erfordert ein Signal S1 zur Modifikation oder eine Anforderung Q2 zum Lesen des Blocks einen Datenaustausch mit jedem entfernten Modul für welches ein Bit des Statuscodes S2 ein Vorhandensein anzeigt, sodass ihr signalisiert wird, dass die Kopie des Blocks, die sie hält, ungültig ist, und so die Einrichtung zur Verbindung 6 dann ein Signal LM eines lokalen Misserfolges erzeugt.
  • Die Erzeugung der Signale LH undLM ist hier mit einer Pufferspeicherprozedur des Wiedereinschreibens (write back in englischer Sprache) erläutert worden. Unter einer Pufferspeicherprozedur von simultanem Einschreiben (write through in englischer Sprache) versteht man, dass die Anforderung Q1 keinen Datenaustausch erforderlich macht, denn das Modul 10 hält eine aktuelle Kopie des Blocks, dann erzeugt die Einrichtung zur Verbindung 6 ein Signal LH, und dass die Anforderung Q2 oder das Signal S1 einen Datenaustausch mit wenigstens einem entfernten Modul 20 erforderlich macht, um die aktuelle Kopie des Blocks ins dieses Modul zurückzuschicken, dann erzeugt die Einrichtung zur Verbindung 6 ein Signal LM.
  • Die Tabelle 9 wird durch n Bits der niederwertigen Bits der logischen Adresse indiziert, welche ein Feld 8 bilden. Der Wert der Nummer n bestimmt direkt die Größe der Tabelle 9, deren Zeilenanzahl dann gleich 2n beträgt. Jede Zeile der Tabelle 9 enthält einen Statuscode S3 und das Feld A7 der logischen Adresse, die sich auf eine Kopie des direkt indizierten Blocks in dem Pufferspeicher 15 durch das Feld A8 bezieht. Die Größe des Pufferspeichers 15 beträgt somit 2n Blöcke. Der Statuscode S3 wird zum Beispiel aus zwei Bits gebildet, um drei Zustände Inv, Sha, Mod zu kodieren, welche den Zustand eines in der Tabelle 9 durch das Feld A8 bezeichneten Blocks anzeigen. Der Zustand Inv gibt an, dass der bezeichnete Block ungültig ist, das heißt, dass der bezeichnete Block von einem entfernten Modul 20, 40 oder 60 verändert worden ist. Der Zustand Sha gibt an, dass der bezeichnete Block wenigstens auf ein entferntes Modul 20, 40 oder 60 aufgeteilt ist. Der Zustand Mod gibt an, dass der bezeichnete Block von dem lokalen Modul 10 verändert worden ist, und dass seine Kopie in dem Pufferspeicher 15 aktuell ist.
  • Wenn die durch die n Bits des Felds A8 indizierte Zeile einen Wert des Felds A7' enthält, der dem des bearbeiteten Blocks entspricht, so bedeutet dies, dass der sich in einem anderen als dem Modul 10 befindende Block, zum Beispiel in dem Modul 20, in dem den Prozessoren 1 bis 4 gemeinsamen Pufferspeicher 15 verändert worden ist. Die Größe des Pufferspeichers ist so dimensioniert, dass sie 2n Blöcke enthält, die in der Tabelle 9 bezeichnet sind. Die Größe der Tabelle 9 ist durch die Wahl des Wertes von n parametrierbar, es ist dasselbe bei der Größe des Pufferspeichers 15. Ein interessantes Mittel zur Ermöglichung dieser Parametrierbarkeit ist es, in dem Speicher 5 einen reservierten Adressbereich abzugrenzen und diesen dem Pufferspeicher 15 zuzuordnen. Dieses Mittel wird dann auf jedes entfernte Modul 20, 40, 60 übertragen, um einen reservierten Adressbereich in dem Speicher 25, 45, 65 einem Pufferspeicher 35, 55, 75 zuzuordnen. Die Größe der Pufferspeicher 15, 35, 55, 75 ist gering vor denen der Speicher 5, 25, 45, 65 und das Mittel vermindert die Größe des allen Modulen gemeinsamen Speichers nur geringfügig.
  • Die Einrichtung zur Verbindung 6 betrachtet dann den Statuscode S3 des bezeichneten Blocks in der Tabelle 9, das heißt, des durch das Signal S1 oder einer Anforderung Q1, Q2 bearbeiteten Blocks. Wenn der Statuscode S3 anzeigt, dass der Block ungültig ist, erzeugt die Einrichtung zur Verbindung 6 dieselben Datenaustausche und dieselben Signale als wenn die durch die n Bits des Felds 8 indizierte Zeile einen Wert des Felds A7' enthält, der unterschiedlich zu diesem des bearbeiteten Blocks ist, so wie zuvor in der Beschreibung aufgeführt.
  • Wenn der Statuscode S3 anzeigt, dass der Block nicht auf ein anderes Modul aufgeteilt ist, wird kein Datenaustausch mit einem entfernten Modul erforderlich, und die Einrichtung zur Verbindung 6 erzeugt ein Signal RH für einen erfolgreichen entfernten Zugriff, um einen erfolgreichen entfernten Zugriff (remote hit in englischer Sprache) ohne Datenaustausch mit einem entfernten Modul anzuzeigen.
  • Wenn der Statuscode in der Tabelle 9 anzeigt, dass der Block zur Zeit in aufgeteilter Nutzung steht, bestimmt die Einrichtung zur Verbindung 6, wenn es erforderlich wird, einen Datenaustausch mit dem entfernten Modul 20 aufzunehmen. Für das Signal S1 ist ein Datenaustausch notwendig, um in den Statuscode S2 des Moduls 20, in welchem sich der Block befindet, einzuschreiben, dass der Block verändert worden ist, und um in den Statuscode S3 des Moduls 40 oder 60, welcher eine Kopie des Blocks in seinem Pufferspeicher 55, 75 besitzt, einzuschreiben, dass der Block ungültig ist; dann erzeugt die Einrichtung zur Verbindung 6 ein Signal RM eines entfernten Misserfolgs, um einen entfernten nicht erfolgreichen Zugriff (remote miss in englischer Sprache) anzuzeigen, für welchen mindestens ein Datenaustausch mit einem entfernten Modul ausgelöst worden ist. Die Einrichtung zur Verbindung 6 sagt mit ihrem Statuscode S3 aus, dass der Block verändert worden ist. Für die Anforderung Q2 zum Einschreiben in den zum Modul 10 entfernten Speicher, ist kein Datenaustausch notwendig, und die Einrichtung zu Verbindung 6 erzeugt ein Signal RH eines entfernten Erfolgs. Für die Anforderung Q1 zum Lesen ist kein Datenaustausch erforderlich, wenn der Statuscode S3 in der Tabelle 9 anzeigt, dass der Inhalt des Blocks in dem Modul 10 gültig ist, und die Einrichtung zur Verbindung 6 erzeugt dann ein Signal RH eines entfernten Erfolgs; wenn der Statuscode in der Tabelle 9 anzeigt, dass der Inhalt des Blocks in dem Modul 10 ungültig ist, wird ein Datenaustausch erforderlich, um den Inhalt des Blocks in dem Modul 10 zu aktualisieren, und die Einrichtung zur Verbindung 6 erzeugt dann ein Signal RM eines entfernten Misserfolgs und deklariert in ihrem Statuscode S3 am Ende des Datenaustausches, dass der Block gültig ist. Die Erzeugung der Signale RH und RM ist hier mit einer Pufferspeicherprozedur des Wiedereinschreibens erläutert worden. Mit einer Pufferspeicherprozedur von simultanem Einschreiben (write through in englischer Sprache) genügt es, die eingeschriebene Logik so zu modifizieren, dass das Signal S1 und die Anforderung Q2 einen Datenaustausch mit dem entfernten Modul 20, 40, 60 erforderlich machen, um dort den Block zu aktualisieren, wobei die Einrichtung zur Verbindung 6 dann ein Signal RM erzeugt, damit die Anforderung Q1 keinen Datenaustausch erforderlich macht, denn der Inhalt des Blocks ist systematisch aktualisiert worden.
  • Wenn die von den n Bits indizierte Zeile einen unterschiedlichen Adresswert zu dem des bearbeiteten Blocks enthält, bedeutet dies, dass der in dem Pufferspeicher 15 durch die Indizierung der Tabelle 9 logisch adressierte Block unterschiedlich zu dem bearbeiteten Block ist. Es ist dann notwendig, den in der Tabelle 9 bezeichneten Block durch den bearbeiteten Block auszutauschen. Die Einrichtung zur Verbindung 6 erzeugt dann ein Signal RM. Die Einrichtung zur Verbindung 6 erzeugt in diesem Fall auch ein Signal S4, um einen Ersatz des aufgenommenen Blocks durch den bearbeiteten Block in dem Pufferspeicher 15 anzuzeigen. Das Signal S4 wird auf den Bus 7 gesendet, um in den eigenen Pufferspeichern 11 bis 14 den im Pufferspeicher 15 aufgenommenen Block für ungültig zu erklären, denn die Tabelle 9 kann seinen Zusammenhang nicht mehr gewährleisten. Die Einrichtung zur Verbindung 6 informiert auch die Einrichtung zur Verbindung 26, 46 oder 66 des Moduls der Platzierung beziehungsweise Residenz, dass sie den Block nicht mehr bezeichnet, sodass die Einrichtung zur Verbindung 26, 46 oder 66 das Präsenzbit erniedrigt, korrespondierend zum Modul 10 in der Zeile der Tabelle 28, 48 oder 68, wo der Block bezeichnet war. Die Einrichtung zur Verbindung 6 bewirkt dann eine Aktualisierung der Tabelle 9 mittels eines Datenaustausches mit den entfernten Modulen 20, 40 und 60, um den bearbeiteten Block wieder an einen physischen logisch adressierten Platz im Pufferspeicher durch die Indizierung der Tabelle 9 einzuspeichern. Der Datenaustausch besteht vor allem darin, eine Leseanforderung mit dem Bestimmungsort entferntes Modul 20, 40 oder 60 der Platzierung des Blocks auszusenden. Um die Beschreibung zu vereinfachen, gehen wir zum Beispiel davon aus, dass das Modul der Platzierung des Blocks das Modul 20 ist.
  • Die 3 stellt eine zweite Stufe der Einzelheiten der Einrichtung zur Verbindung 6, 26, 46, 66 mit stofflichen und logischen Elementen dar, welche in Gebrauch genommen werden, wenn eine Blockadresse, die aus den Feldern A1 und A2 gebildet ist, in dem Modul ankommt, in dem der Block platziert ist, wobei diese Blockadresse über die Anschlüsse 17, 37, 57, 77 von anderen Modulen herstammt. Die Anmerkungen in dem Vorspann der Einführung zur 2 gelten auch für die 3. Insbesonders sind die Bezugszeichen in der 3 die der Einrichtung zur Verbindung 25, um den Ablauf der Beschreibung zu erleichtern.
  • Wenn der bearbeitete Block in die Tabelle 28 aufgenommen ist, wird sein Statuscode S2 aktualisiert, um anzuzeigen, dass der Block auf das Modul 10 aufgeteilt ist. Wenn die Zeile der Tabelle 28 den bearbeiteten Block aufnimmt und der Statuscode S2 anzeigt, dass der Block von keinem anderen Modul 40, 60 verändert worden ist, sendet die Einrichtung zur Verbindung 26 eine Kopie des Blocks an die Einrichtung zur Verbindung 6. Diese Kopie wird durch Lesen in dem Speicher 25 oder in einem der Pufferspeicher 31 bis 34 erhalten. Wenn der Statuscode anzeigt, dass der Block verändert ist, sendet die Einrichtung zur Verbindung 26 eine Leseanforderung an eines der Module 40, 60, welches die aktuelle Version des Blocks besitzt. Die Einrichtung zur Verbindung 46, 66, welche die aktuelle Kopie besitzt, sendet die Kopie des Blocks an die Einrichtung zur Verbindung 6 des Moduls 10 und an die Einrichtung zur Verbindung 26 des Moduls 20. Die Einrichtung zur Verbindung 26 aktualisiert ihren lokalen Speicher 25' und ihren Statuscode S2 auf den aufgeteilten Status. Die Einrichtung zur Verbindung 6 nimmt den Block mit einem aufgeteilten und nicht veränderten Statuscode in der Tabelle 9 auf und schreibt den Block in den Pufferspeicher 15. Darauf sendet die Einrichtung zur Verbindung 6 eine Bestätigung an die Einrichtung zur Verbindung 26, welche in ihrem Statuscode S2 die Aufteilung auf das Modul 10 berichtigt.
  • Wenn der bearbeitete Block nicht in die Tabelle 28 aufgenommen ist, erzeugt die Einrichtung zur Verbindung 26 ein Signal S5, um anzuzeigen, dass der aufgenommene Block durch den bearbeiteten Block ersetzt werden wird. Wenn der Statuscode S2 des aufgenommenen Blocks anzeigt, dass dieser von einem Modul 10, 40 oder 60 verändert worden ist, sendet die Einrichtung zur Verbindung 26 in Leseanforderung an die der Module 10, 40, 60, welche die aktuelle Version des Blocks enthalten. Diejenige Einrichtung zur Verbindung 6, 46, 66, deren Statuscode S3 des betreffenden Blocks anzeigt, dass ihre Kopie des Blocks nicht ungültig ist, sendet eine Kopie des Blocks an die Einrichtung zur Verbindung 26 des Moduls 20, um seinen lokalen Speicher 25' zu aktualisieren. Das Signal SS wird an die eine oder die Einrichtungen) zur Verbindung 6, 46, 66 gesandt, welche einen Verweis auf den Block in einer Zeile ihre Tabelle 8, 48, 68 haben, damit jede ihren Statuscode S3 auf den Status ungültig aktualisiert. Dann nimmt die Einrichtung zur Verbindung 26 den bearbeiteten Block in ihre Tabelle 28 mit einem Statuscode S2 auf, welcher anzeigt, dass der Block unverändert mit auf das Modul 10 aufgeteilt ist. Dann sendet die Einrichtung zur Verbindung 26 den Inhalt des bearbeiteten Blocks an die Einrichtung zur Verbindung 6, welche den Block in ihre Tabelle 9 mit einem Statuscode aufnimmt, der anzeigt, dass der Block gültig, aufgeteilt und unverändert ist, und schreibt den Block in den Pufferspeicher 15 ein. Wenn der Statuscode S2 des in der Tabelle 28 aufgenommenen Blocks nicht anzeigt, dass dieser verändert worden ist, wird das Signal SS an die eine oder die Einrichtungen) zur Verbindung 6, 46, 66 gesandt, welche einen Verweis auf den Block in einer Zeile ihre Tabelle 9, 49, 69 haben, damit jede ihren Statuscode S3 auf den Status ungültig aktualisiert. Dann nimmt die Einrichtung zur Verbindung 26 den bearbeiteten Block in ihre Tabelle 28 mit einem Statuscode S2 auf, welcher anzeigt, dass der Block unverändert mit auf das Modul 10 aufgeteilt ist. Dann sendet die Einrichtung zur Verbindung 26 den Inhalt des bearbeiteten Blocks an die Einrichtung zur Verbindung 6, welche den Block in ihre Tabelle 9 mit einem Statuscode aufnimmt, der anzeigt, dass der Block gültig, aufgeteilt und unverändert ist, und schreibt den Block in den Pufferspeicher 15 ein.
  • Die voranstehenden Erläuterungen stützen sich auf eine Pufferspeicherprozedur mit direkter Übereinstimmung. Die Anwendung der so gegebenen Lehre darf dem Fachmann keine unüberwindlichen Schwierigkeiten bereiten, um andere bekannte Pufferspeicherprozeduren, wie solche mit assoziativer Übereinstimmung oder mit assoziativer Übereinstimmung durch Blockeinheiten, in allen oder Teilen der eigenen Pufferspeicher 11 bis 14, 31 bis 34, 41 bis 44, 61 bis 64 und den Tabellen 8, 9, 28, 29, 48, 49, 68, 69 zu verwenden.
  • Insbesonders ist es interessant, in den Tabellen 8, 28, 48, 68 eine assoziative Übereinstimmung durch Blockeinheiten zu verwenden. Für eine gleiche Zahl m von Bits, die das Feld A5 ausmachen, erfordert eine assoziative Übereinstimmung durch Einheiten, beispielsweise von vier Blöcken, viermal so viel Speicher für die Tabelle 8 als bei einer direkten Übereinstimmung, denn jede Zeile kann dann vier Blöcke mit jedem dazugehörigen Statuscode 2 bezeichnen. Indessen gibt es bei der direkten Übereinstimmung, wenn ein Block eine Bezeichnung in einer durch sein Feld A5 indizierten Zeile benötigt, kein Problem, wenn die Zeile verfügbar ist, aber es ist notwendig, einen Ersatz durchzuführen, wenn die Zeile schon einen anderen Block bezeichnet, dessen Feld A6' sich vom Feld A6 des zu bezeichnenden Blocks unterscheidet. Eine Zeile ist verfügbar, wenn dort kein Block bezeichnet ist, oder wenn der Statuscode S2 des schon bezeichneten Blocks kein Vorhandensein einer Aufteilung auf ein entferntes Modul anzeigt, wobei dann die Bezeichnung eines solchen Blocks als ungültig erklärt wird. Vorteilhafterweise ist bei assoziativer Übereinstimmung durch Einheiten, beispielsweise von vier Blöcken, eine Zeile verfügbar, wenn weniger als vier von den Blöcken bezeichnet sind, oder wenn die Bezeichnung mindestens eines schon bezeichneten Blocks ungültig ist. Die Aussichten, dass die Bezeichnung eines schon bezeichneten Blocks ungültig ist, bevor ein neuer Block bezeichnet wird, sind somit größer im Vergleich zu einem Vorgang mit direkter Übereinstimmung. Wenn ein Ersatz notwendig ist, weil eine Zeile nicht verfügbar ist, kann dieses bei dem ältesten Block oder bei dem Block mit der kleinsten Anzahl von Präsenzbits, die in seinem Statuscode S2 erhöht sind, durchgeführt werden. Man verringert so die Möglichkeit, dass ein weiteres Modul sofort wieder verlangt, dass ein Block bezeichnet wird, der gerade ersetzt worden ist.
  • Die 4 zeigt zusätzliche Details der Einrichtung zur Verbindung 6. Ein Register 81 ist vorgesehen zur Aufnahme einer ersten logischen Adresse im Inneren des Speicherraums der Maschine. Ein Register 82 ist vorgesehen, eine zweite logische Adresse im Inneren des Speicherraums der Maschine aufzunehmen. Die erste logische Adresse, die sogenannte Startadresse, ist kleiner als die zweite logische Adresse, die sogenannte Endadresse. Wenn die Einrichtung zur Verbindung 6 einen Datenaustausch relativ zu einer Blockadresse erzeugt, welche zuvor vom Bus 7 oder der Verbindung 17 in Bearbeitung genommen wurde, wird diese Adresse mit dem Inhalt des Registers 81 mittels eines Komparators 84 und mit dem Inhalt des Registers 82 mittels eines Komparators 85 verglichen. Wenn die Blockadresse größer als der Inhalt des Registers 81 und kleiner als der Inhalt des Registers 82 ist, signalisiert ein logischer Schaltkreis 87 eine Zugehörigkeit des Blocks zu einem Fenster des Speichers der Maschine, welches durch die obige Start- und Endadresse bestimmt ist.
  • Mit Bezug auf die 2 und 3 wurde ersichtlich, dass im Anschluss an eine Bearbeitung einer Blockadresse verschiedene logische Elemente der Einrichtung zur Verbindung 6 einen oder mehrere Datenaustausche in Funktion des Inhalts der Tabellen 8 und 9 erzeugen. Diese unterschiedlichen logischen Elemente sind symbolisch in einem logischen Schaltkreis 80 zusammengefasst, damit die Figur nicht unnötigerweise überladen wird. Jedes Mal, wenn die Einrichtung zur Verbindung 6 einen Datenaustausch über die Verbindung 17 aussendet oder empfängt, inkrementiert ein logischer Schaltkreis einen Zähler 90, wenn der logische Schaltkreis 87 eine Zugehörigkeit des Blocks zu dem Fenster des Speichers der Maschine signalisiert, welches durch die obige Start- und Endadresse bestimmt ist.
  • Der Inhalt des Zählers 90 repräsentiert dann eine Anzahl von Aktivitäten, welche die adressierten Daten in dem durch die Startadresse und Endadresse festgelegten Fenster betrifft, in der Gestalt der Anzahl von Datenaustauschen des lokalen Moduls 10 mit den entfernten Modulen 20, 40, 60. Man definiert in diesem Fall eine Wärme dieses Fensters als eine proportionale Größe zu dieser Anzahl von Aktivitäten.
  • Ein Register 83 ist zur Aufnahme eines Schwellwerts in der Gestalt der Anzahl von Datenaustauschen des lokalen Moduls 10 mit den entfernten Modulen 20, 40, 60 vorgesehen. Ein Komparator 91 sendet ein Interrupt-Signal auf den Bus 7, wenn der Inhalt des Registers 83 kleiner ist als der Inhalt des Zählers 90.
  • Die 5 zeigt weitere Details der Einrichtung zur Verbindung 6. Ein Register 81 ist zur Aufnahme einer ersten logischen Adresse im Innenraum des Speicherbereichs der Maschine vorgesehen. Ein Register 82 ist vorgesehen, eine zweite logische Adresse im Innenraum des Speicherbereichs der Maschine aufzunehmen. Die erste logische Adresse wird als Startadresse benannt und ist kleiner als die zweite logische Adresse, die als Endadresse benannt wird. Wenn die Einrichtung zur Verbindung 6 einen Datenaustausch relativ zu einer Blockadresse erzeugt, die sie vorher zur Bearbeitung vom Bus 7 oder von der Verbindung 17 erhalten hat, wird diese Adresse mittels eines Komparators 84 mit dem Inhalt des Registers 81 und mittels eines Komparators 85 mit dem Inhalt des Registers 82 verglichen. Wenn die Blockadresse größer als der Inhalt des Registers 81 und kleiner als der Inhalt des Registers 82 ist, signalisiert ein logischer Schaltkreis 87 ein Vorhandensein des Blocks in einem Fenster des Speichers der Maschine, welches durch die Startadresse und die Endadresse festgelegt ist.
  • Mit Bezug auf die 2 und 3 wurde ersichtlich, dass im Anschluss an eine Bearbeitung einer Blockadresse verschiedene logische Elemente der Einrichtung zur Verbindung 6 einen oder mehrere Datenaustausche in Funktion des Inhalts der Tabellen 8 und 9 erzeugen. Diese unterschiedlichen logischen Elemente sind symbolisch in einem logischen Schaltkreis 80 zusammengefasst, damit die Figur nicht unnötigerweise überladen wird. Wenn die Einrichtung zur Verbindung 6 zu einem Zeitpunkt n einen letzten Datenaustausch Tn über die Verbindung 17 erhält, der aus der Bearbeitung der Blockadresse zu einem Zeitpunkt 0 erfolgt, subtrahiert eine Arithmetikeinheit 92 den Zeitpunkt 0 von dem Zeitpunkt n, wenn der logische Schaltkreis 87 ein Vorhandensein des Blocks in einem Fenster des Speichers der Maschine signalisiert, welches durch die Startadresse und die Endadresse festgelegt ist. Die Arithmetikeinheit 92 fügt dann das so erhaltene Ergebnis dem Inhalt des Zählers 95 hinzu.
  • Der Inhalt des Zählers 95 repräsentiert dann eine Anzahl von Aktivitäten, welche die adressierten Daten in dem durch die Startadresse und Endadresse festgelegten Fenster betrifft, in der Gestalt der Anzahl der kumulierten Latenzzeiten von Datenaustauschen des lokalen Moduls 10 mit den entfernten Modulen 20, 40, 60. Man definiert in diesem Fall eine Wärme dieses Fensters als eine proportionale Größe zu dieser Anzahl von Aktivitäten.
  • Ein Register 93 ist zur Aufnahme eines Schwellwerts in der Gestalt der Anzahl von kumulierten Latenzzeiten von Datenaustauschen des lokalen Moduls 10 mit den entfernten Modulen 20, 40, 60 vorgesehen. Ein Komparator 94 sendet ein Interrupt-Signal auf den Bus 7, wenn der Inhalt des Registers 93 kleiner ist als der Inhalt des Zählers 95.
  • Die Register 81, 82, 93 und 93 sind über den Bus 7 zum Lesen und Schreiben zugreifbar. Die Zähler 90, 95 sind über den Bus 7 nur auslesbar. Zu einem Kontrollregister 86 besteht ein Schreib-/Lesezugriff, um einem auf dem Modul 10 durchgeführten Prozess das Lesen der Zähler 90, 95 als Funktion eines erniedrigten und erhöhten beziehungsweise nicht gesetzten und gesetzten Zustands von zum Beispiel fünf Bits zu ermöglichen, die von Null bis Vier nummeriert sind. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Null verhindert jegliche Inkrementierung des Zählers 90 durch den logischen Schaltkreis 88 oder des Zählers 95 durch die Arithmetikeinheit 92. Der erhöhte beziehungsweise gesetzte Zustand des Bits Null verhindert keine Inkrementierung des Zählers 90 durch den logischen Schaltkreis 88 oder des Zählers 95 durch die Arithmetikeinheit 92. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Eins verhindert jeglichen von den Komparatoren 91, 94 erzeugten Interrupt des Eingreifens auf das Inkrementieren des Zählers 90 durch den logischen Schaltkreis 88 oder des Zählers 95 durch die Arithmetikeinheit 92. Der erhöhte beziehungsweise gesetzte Zustand des Bits Eins verhindert jegliche Inkrementierung des Zählers 90 durch den logischen Schaltkreis 88 oder des Zählers 95 durch die Arithmetikeinheit 92 im Anschluss an einen durch den Komparator 91, 94 erzeugten Interrupt. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Zwei deaktiviert jegliche Erzeugung von Interrupts durch die Komparatoren 91 und 94. Der erhöhte beziehungsweise gesetzte Zustand des Bits Zwei aktiviert die Erzeugung von Interrupts durch die Komparatoren 91 und 94, wenn der Inhalt des Zählers 90 den Inhalt des Registers 83 oder der Inhalt des Zählers 95 den Inhalt des Registers 93 überschreitet. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Drei greift nicht in die Funktion des Zählers 90 ein. Der erhöhte beziehungsweise gesetzte Zustand des Bits Drei setzt den Inhalt des Zählers 90 auf einen Null-Wert. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Vier greift nicht in die Funktion des Zählers 95 ein. Der erhöhte beziehungsweise gesetzte Zustand des Bits Vier setzt den Inhalt des Zählers 95 auf einen Null-Wert.
  • Wenn die Einrichtung zur Verbindung 6 eine auf dem Bus 7 umlaufende Blockadresse bearbeitet, unterscheidet man im Wesentlichen drei verschiedene Klassen von Speicherbereichen der Maschine, einen Bereich für einen nicht aufgeteilten Zugriff, einen Bereich für einen aufgeteilten Lesezugriff und einen aufgeteilten Bereich zum Schreiben oder Lesen.
  • Für einen Block, der im nicht aufgeteilten Zugriffsbereich vorhanden ist, ist kein Datenaustausch des lokalen Moduls 10 mit einem entfernten Modul 20, 40, 60 notwendig, denn das Modul 10 ist dann das einzige, welches eine gültige Kopie des Blocks besitzt. Ein Fenster des Speichers der Maschine, welches durch die Startadresse und Endadresse festgelegt ist, ist in diesem Bereich vollständig enthalten und wird als kalt benannt, denn sein Wärmewert, der mit Bezug auf die 4 oder mit Bezug auf die 5 definiert worden ist, beträgt Null.
  • Für einen Block, der im aufgeteilten Zugriffsbereich zum Lesen oder Schreiben vorhanden ist, sind ein oder mehrere Datenaustausche des lokalen Moduls 10 mit einem entfernten Modul 20, 40, 60 notwendig, insbesondere wenn das Modul 10 keine aktuelle Kopie des Blocks besitzt. Ein Fenster des Speichers der Maschine, welches durch die Startadresse und Endadresse festgelegt ist, dessen Überschneidung mit diesem Bereich nicht Null beträgt, wird heiß benannt, denn sein mit Bezug auf die 4 oder mit Bezug auf die 5 definierter Wärmewert ist positiv.
  • Der materielle Aufbau der Einrichtung zur Verbindung 6, der vorstehend beschrieben ist, ermöglicht es, verschiedene Softwareprozesse zur Messung der Wärme eines Fensters des Speichers einer Maschine auszuführen.
  • Es wird als Beispiel ein Prozess zur Messung der Wärme proportional zu einer Anzahl von Aktivitäten in Gestalt einer Anzahl von Datenaustauschen aufgezeigt. Die Bits Null bis Vier des Registers 86 sind anfänglich in einem erhöhten beziehungsweise gesetzten Zustand, um den Inhalt des Zählers 90 auf einen Nullwert zu setzen. In das Register 81 wird eine Startadresse und in das Register 82 eine Endadresse eingeschrieben, um ein Fenster festzulegen, für welches die Datenaustausche gezählt werden sollen, die die adressierten Datenblöcke in diesem Fenster betreffen. Ein Schwellenwert wird in das Register 83 zur Bestimmung einer betroffenen maximalen Aktivität durch den Zähler 90 geschrieben. Das Bit Null des Registers 86 wird in einen erniedrigten beziehungsweise nicht gesetzten Zustand gebracht, um das Zählen der das festgelegte Fenster betreffenden Datenaustausche zu aktivieren; gleichzeitig wird ein Zeitpunkt ddc gespeichert, bei welchem das Bit Null des Registers 86 erniedrigt wurde. Bei Erhalt des durch den Komparator 91 erzeugten Interrupts wird eine Zähldauer in Zyklen des Maschinentakts errechnet, die die Differenz zwischen dem Zeitpunkt ddc und einem Zeitpunkt dfc der Interrupterzeugung darstellt. Die Wärme des Fensters wird dadurch berechnet, dass der Inhalt des Zählers 90 durch die Zähldauer geteilt wird. Bei Fehlen des Erhalts eines durch den Komparator 91 erzeugten Interrupts zu einem maximalen Zeitpunkt dmc des Zählens wird eine Zähldauer in Zyklen des Maschinentakts errechnet, die die Differenz zwischen dem Zeitpunkt ddc und dem Zeitpunkt dmc darstellt. Die Wärme des Fensters wird dadurch berechnet, dass der Inhalt des Zählers 90 durch die Zähldauer geteilt wird. Die auf diese Art und Weise berechnete Wärme entspricht einheitlich einer Anzahl von Datenaustauschen pro Zeiteinheit.
  • Es wird als Beispiel ein Prozess zur Messung der Wärme proportional zu einer Anzahl von Aktivitäten in Gestalt von kumulierten Latenzzeiten von Datenaustauschen aufgezeigt. Die Bits Null bis Drei und Fünf des Registers 86 sind anfänglich in einem erhöhten beziehungsweise gesetzten Zustand, um den Inhalt des Zählers 95 auf einen Nullwert zu setzen. In das Register 81 wird eine Startadresse und in das Register 82 eine Endadresse eingeschrieben, um ein Fenster festzulegen, für welches die Datenaustausche gezählt werden sollen, die die adressierten Datenblöcke in diesem Fenster betreffen. Ein Schwellenwert wird in das Register 93 zur Bestimmung einer betroffenen maximalen Aktivität durch den Zähler 95 geschrieben. Das Bit Null des Registers 86 wird in einen erniedrigten beziehungsweise nicht gesetzten Zustand gebracht, um das Kumulieren der Latenzzeiten zu aktivieren, welches das festgelegte Fenster betrifft; gleichzeitig wird ein Zeitpunkt ddc gespeichert, bei welchem das Bit Null des Registers 86 erniedrigt wurde. Bei Erhalt des durch den Komparator 94 erzeugten Interrupts wird eine Zähldauer in Zyklen des Maschinentakts errechnet, die die Differenz zwischen dem Zeitpunkt ddc und einem Zeitpunkt dfc der Interrupterzeugung darstellt. Die Wärme des Fensters wird dadurch berechnet, dass der Inhalt des Zählers 95 durch die Zähldauer geteilt wird. Bei Fehlen des Erhalts eines durch den Komparator 94 erzeugten Interrupts zu einem maximalen Zeitpunkt dmc des Zählens wird eine Zähldauer in Zyklen des Maschinentakts errechnet, die die Differenz zwischen dem Zeitpunkt ddc und dem Zeitpunkt dmc darstellt. Die Wärme des Fensters wird dadurch berechnet, dass der Inhalt des Zählers 95 durch die Zähldauer geteilt wird. Die auf diese Art und Weise berechnete Wärme ist eine dimensionslose Zahl.
  • Wenn die Einrichtung zur Verbindung 6 den Zähler 90 und den Zähler 95 aufweist, wird als Beispiel ein Prozess zur Messung der Wärme proportional zu einer Anzahl von Aktivitäten in Gestalt von mittlerer Zeitdauer eines Datenaustausches aufgezeigt. Die Bits Null bis Fünf des Registers 86 sind anfänglich in einem erhöhten beziehungsweise gesetzten Zustand, um die Inhalte der Zähler 90 und 95 auf einen Nullwert zu setzen. In das Register 81 wird eine Startadresse und in das Register 82 eine Endadresse eingeschrieben, um ein Fenster festzulegen, für welches die Datenaustausche gezählt werden sollen, die die adressierten Datenblöcke in diesem Fenster betreffen. Ein Schwellenwert wird in das Register 83 und ein Schwellenwert wird in das Register 93 zur Bestimmung einer betroffenen maximalen Aktivität durch den Zähler 90 oder Zähler 95 geschrieben. Das Bit Null des Registers 86 wird in einen erniedrigten beziehungsweise nicht gesetzten Zustand gebracht, um das Zählen von Datenaustauschen zu aktivieren, welche das festgelegte Fenster betreffen; gleichzeitig wird ein Zeitpunkt ddc gespeichert, bei welchem das Bit Null des Registers 86 erniedrigt wurde. Bei Erhalt des durch den Komparator 91 oder durch den Komparator 94 erzeugten Interrupts wird die Wärme des Fensters wird dadurch berechnet, dass der Inhalt des Zählers 95 durch den Inhalt des Zählers 90 geteilt wird. Bei Fehlen des Erhalts eines durch den Komparator 91 oder Komparator 94 erzeugten Interrupts zu einem maximalen Zeitpunkt dmc des Zählens, wenn der Inhalt des Zählers 90 Null beträgt, wird die Wärme des Fensters zu Null berechnet. Wenn der Inhalt des Zählers 90 ungleich Null ist, wird die Wärme des Fensters dadurch berechnet, dass der Inhalt des Zählers 95 durch den Inhalt des Zählers 90 geteilt wird. Die auf diese Art und Weise berechnete Wärme entspricht einheitlich einer Zeit.
  • Die Einheit der Bewertung der Wärme bedeutet in der Messung wenig, in welcher nicht eine absolute Wärme des Fensters bestimmt werden soll, sondern die Wärmewerte von verschiedenen Fenstern in einer selben Einheit verglichen werden sollen, um das heißeste oder die heißesten Fenster zu bestimmen. Man betrachtet im Allgemeinen die Wärme eines Fensters wie eine Größe, die in der Zeit relativ stabil bleibt. Gemäß einem der vorherstehenden Beispiele ist es ausreichend, den Prozess für verschiedene Fenster zu wiederholen, die jedes durch besondere geordnete Werte in den Registern 81 und 82 festgelegt sind.
  • Die 6 stellt Details der Einrichtung zur Verbindung 6 dar, um ein Fenster ohne einen außerhalb der Einrichtung zur Verbindung 6 ausgeführten Prozess zu erhalten, welches das heißeste unter mehreren ist. Ein Register 101 ist zur Aufnahme einer ersten logischen Adresse im Inneren des Speicherbereichs der Maschine vorgesehen. Ein Register 102 ist zur Aufnahme einer zweiten logischen Adresse im Inneren des Speicherbereichs der Maschine vorgesehen. Die erste logische Adresse, die sogenannte Startadresse, ist kleiner als die zweite logische Adresse, die sogenannte Endadresse. Wenn die Einrichtung zur Verbindung 6 einen Datenaustausch relativ zu einer Blockadresse erzeugt, welche zuvor vom Bus 7 oder der Verbindung 17 in Bearbeitung genommen wurde, wird diese Adresse mit dem Inhalt des Registers 101 mittels eines Komparators 104 und mit dem Inhalt des Registers 102 mittels eines Komparators 105 verglichen. Wenn die Blockadresse größer als der Inhalt des Registers 101 und kleiner als der Inhalt des Registers 102 ist, signalisiert ein logischer Schaltkreis 107 eine Zugehörigkeit des Blocks zu einem Fenster des Speichers der Maschine, dem sogenannten Autofokus-Fenster, welches durch die obige Start- und Endadresse bestimmt ist. Der logische Schaltkreis 107 erklärt einen logischen Schaltkreis 108 für gültig, welcher identisch mit dem logischen Schaltkreis 88 ist, um ein Signal bei jedem Datenaustausch zu versenden, welcher einen in dem Autofokus-Fenster vorhandenen Block betrifft, oder identisch mit dem logischen Schaltkreis 92 ist, um einen Wert von Latenzzeit zu senden, welcher einen vorhandenen Block in dem Autofokus-Fenster betrifft. Ein Register 103 ist vorgesehen, eine dritte logische Adresse aufzunehmen, welche zwischen diesen im Register 101 enthaltenen und diesen im Register 102 enthaltenen einbegriffen ist. Die Adresse des durch die Einrichtung zur Verbindung 6 bearbeiteten Blocks wird mit dem Register 103 mittels eines Komparators 106 verglichen.
  • Das Register 103 bestimmt zwei Unter-Fenster des Autofokus-Fensters. Ein logischer Schaltkreis 110 erklärt die von dem logischen Schaltkreis 108 erzeugten Signale für gültig, welche Adressen eines ersten Unter-Fensters von Adressen betreffen, die größer als der Inhalt des Registers 101 und kleiner als der Inhalt des Registers 103 sind. Ein logischer Schaltkreis 120 erklärt die von dem logischen Schaltkreis 108 erzeugten Signale für gültig, welche Adressen eines zweiten Unter-Fensters von Adressen betreffen, die größer als der Inhalt des Registers 103 und kleiner als der Inhalt des Registers 102 sind.
  • Ein Zähler 111 ist vorgesehen, um die vom logischen Schaltkreis 108 erzeugten und vom logischen Schaltkreis 110 für gültig erklärten Signale zu kumulieren. Der Inhalt des Zählers 111 repräsentiert dann eine Anzahl von Aktivitäten, die die adressierten Daten in dem ersten Unter-Fenster betreffen.
  • Ein Zähler 121 ist vorgesehen, um die vom logischen Schaltkreis 108 erzeugten und vom logischen Schaltkreis 120 für gültig erklärten Signale zu kumulieren. Der Inhalt des Zählers 121 repräsentiert dann eine Anzahl von Aktivitäten, die die adressierten Daten in dem zweiten Unter-Fenster betreffen.
  • Ein Register 109 ist zur Aufnahme eines Schwellwertes in Gestalt einer zuvor festgelegten Anzahl von Aktivitäten vorgesehen. Ein Komparator 112 sendet ein Signal I1 an einen Folgeschalter 114, wenn der Inhalt des Registers 109 kleiner als der Inhalt des Zählers 111 ist. Ein Komparator 122 sendet ein Signal I2 an den Folgeschalter 114, wenn der Inhalt des Registers 109 kleiner als der Inhalt des Zählers 121 ist. Die Funktion des Folgeschalters 114 wird mit Bezug auf 7 erläutert.
  • Ein Register 115 ist zur Aufnahme eines Wertes einer Minimalgröße für das Autofokus-Fenster vorgesehen, ein berechneter Wert, der die Differenz zwischen den Inhalten der Register 101 und 102 ist.
  • Die Register 101, 102, 109 und 115 sind über den Bus 7 und den Folgeschalter 114 zum Lesen und Schreiben zugreifbar. Die Zähler 111, 121 sind durch den Folgeschalter 114 zum Lesen und schreiben zugreifbar. Ein Kontrollregister 113 ist zum Lesen und Schreiben zugreifbar, um durch den Folgeschalter 114 ausgeführte Programme zu ermöglichen, in Funktion von erniedrigten und erhöhten beziehungsweise nicht gesetzten und gesetzten beispielsweise sieben Bits, nummeriert von Null bis Sechs. Der erhöhte beziehungsweise gesetzte Zustand des Bits Null verhindert jegliche Inkrementierung der Zähler 111 und 121 durch den logischen Schaltkreis 108. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Null verhindert keine Inkrementierung der Zähler 111 und 121 durch den logischen Schaltkreis 108. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Eins verhindert jeglichen von dem Folgeschalter 114 erzeugten Interrupt des Eingreifens auf das Inkrementieren der Zähler 111 und 121 durch den logischen Schaltkreis 108. Der erhöhte beziehungsweise gesetzte Zustand des Bits Eins verhindert jegliche Inkrementierung der Zähler 111 und 121 durch den logischen Schaltkreis 108 im Anschluss an einen durch den Folgeschalter 114 erzeugten Interrupt. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Zwei deaktiviert jegliche Erzeugung von Interrupts durch den Folgeschalter 114. Der erhöhte beziehungsweise gesetzte Zustand des Bits Zwei aktiviert die Erzeugung von Interrupts durch den Folgeschalter 114, wenn der Inhalt des Registers 115 die Differenz zwischen den Inhalten de Register 102 und 101 überschreitet. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Drei greift nicht in die Funktion der Zähler 111 und 121 ein. Der erhöhte beziehungsweise gesetzte Zustand des Bits Drei setzt den Inhalt der Zähler 111 und 121 auf einen Null-Wert. Der Zustand der Bits Vier und Fünf kodiert einen Divisorwert gemäß einer Potenzierung von Zwei mit Exponenten zwischen Null und Drei. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Sechs zeigt an, dass die Größe des Autofokus-Fensters größer ist als der im Register 115 enthaltene Wert. Der erhöhte beziehungsweise gesetzte Zustand des Bits Sechs zeigt an, dass die Größe des Autofokus-Fensters kleiner ist als der im Register 115 enthaltene Wert.
  • Das Petri-Diagramm der 7 ermöglicht die Erläuterung einer Funktion des Folgeschalters 114. Ein im Register 113 enthaltener Wert, für welchen die Bits Null bis Drei einen Nullwert in den Zählern 111 und 121 bewirken, gibt den Durchlauf einer anfänglichen des Folgeschalters an eine Stufe E1 frei.
  • In der Stufe E1 wird ein Prozess in dem Modul 10 außerhalb von der Einrichtung zur Verbindung 6 zur Einschreibmöglichkeit eines anfänglichen Zustands des Autofokus-Fensters in die Register 101, 102, 109, 113 und 115 ausgeführt. Ein Wert des Registers 113 mit einem erniedrigten beziehungsweise nicht gesetzten Zustand des Bits Sechs, gibt den Durchlauf der Stufe E1 zu einer Stufe E2 frei.
  • In der Stufe E2 wird die halbe Summe der in den Registern 102 und 102 enthaltenen Werten in das Register 103 eingeschrieben, dann wird das Bit Null des Registers 113 in den erniedrigten beziehungsweise nicht gesetzten Zustand gebracht, um die Zähler 111 und 121 zu aktivieren. Das Stellen des Bits Null in den erniedrigten beziehungsweise nicht gesetzten Zustand bewirkt, dass die Einrichtung zur Verbindung 6 in einen Zustand gebracht wird, der einer Stufe E3 entspricht.
  • In dem der Stufe E3 entsprechenden Zustand akkumuliert der Zähler 111 beziehungsweise 121 die Anzahl der Aktivitäten, hier direkt vergleichbar der Wärme jeweils des ersten und des zweiten Unter-Fensters des Autofokus-Fensters. Der Erhalt eines Interrupt-Signals I1 durch den Folgeschalter 114 aktiviert eine Stufe E4. Der Erhalt eines Interrupt-Signals I2 durch den Folgeschalter 114 aktiviert eine Stufe E5. Das von dem Komparator 112 erzeugte Interrupt-Signal I1 zeigt an, dass die Wärme des ersten Unter-Fensters den im Register 109 enthaltenen Schwellwert vor der des zweiten Unter-Fensters überschritten hat. Das von dem Komparator 122 erzeugte Signal I2 zeigt an, dass die Wärme des zweiten Unter-Fensters den im Register 109 enthaltenen Schwellwert vor der des ersten Unter-Fensters überschritten hat. Ein horizontaler Doppelstrich im Petri-Diagramm der 7 symbolisiert eine oder logische Aktivierung der Stufen E4 oder E5.
  • In der Stufe E4 wird das erste Unter-Fenster als wärmer erkannt als das zweite Unter-Fenster. Der Wert des Registers 103 wird vom Folgeschalter 114 in das Register 102 geschrieben, um das Autofokus-Fenster erneut zu bestimmen als wenn es dem ersten Unter-Fenster entspricht. Das Bit Null des Registers 113 wird durch den Folgeschalter 114 erhöht beziehungsweise gesetzt, um die Zähler 111 und 121 zu deaktivieren.
  • In der Stufe E5 wird das zweite Unter-Fenster als wärmer erkannt als das erste Unter-Fenster. Der Wert des Registers 103 wird vom Folgeschalter 114 in das Register 101 geschrieben, um das Autofokus-Fenster erneut zu bestimmen als wenn es dem zweiten Unter-Fenster entspricht. Das Bit Null des Registers 113 wird durch den Folgeschalter 114 erhöht beziehungsweise gesetzt, um die Zähler 111 und 121 zu deaktivieren.
  • Der erhöhte beziehungsweise gesetzte Zustand des Bits Null des Registers 113 aktiviert dann eine Stufe E6, in welcher die Größe des Autofokus-Fensters errechnet wird, indem der Inhalt des Registers 101 vom Inhalt des Registers 102 subtrahiert wird. Die so erhaltene Größe wird mit dem im Register 115 enthaltenen Wert verglichen. Eine Größe, die kleiner als der oder gleich dem Wert des Registers 115 ist, aktiviert eine Stufe E7. Eine Größe, die größer ist als der Wert des Registers 115, aktiviert eine Stufe E8.
  • In der Stufe E7 wird das Autofokus-Fenster auf ein Fenster mit Minimalgröße konvergiert, so wie mindestens ein Fenster von identischer Größe, sei es weniger warin als dieses Fenster. Ein Interrupt I3 wird auf dem Bus 7 erzeugt, und das Bit Sechs des Registers 113 wird erhöht beziehungsweise gesetzt, um die erreichte Konvergenz zur Ermöglichung eines außerhalb der Einrichtung zur Verbindung 6 liegenden Prozesses des Lesens des Inhalts des Register 101 und 102 zu signalisieren. Der erhöhte beziehungsweise gesetzte Zustand des Bits Sechs ersetzt dann den Folgeschalter in seiner anfänglichen Stufe.
  • In der Stufe E8 ist das Autofokus-Fenster nicht auf ein Fenster mit Minimalgröße konvergiert und das Bit Sechs des Registers 113 ist nicht verändert. Der in dem Register 109 enthaltene Wert wird durch Zwei mit dem Exponenten dividiert, der von den Bits Vier und Fünf des Registers 113 kodiert ist. Die Tatsache, dass der Schwellenwert reduziert werden kann, ermöglicht die Beschleunigung des Erreichens der Schwelle durch einen der Zähler 111 oder 121 auf die neuen in der Folge festgelegten Unter-Fenster. Da die Größe des Autofokus-Fensters sich nach jedem Durchlauf durch die Stufe E6 reduziert, ist es tatsächlich möglich, dass die Anzahl der mit diesem Fenster verbundenen Aktivitäten eine längere Zeit erfordert, um mit der des vorherigen Autofokus-Fensters vergleichbar zu sein. Der erniedrigte beziehungsweise nicht gesetzte Zustand des Bits Sechs reaktiviert dann die Stufe E2. So wiederholt sich eine Schleife über die Stufen E2 bis E6 bis zum Durchlauf in der Stufe E7.
  • Ein außerhalb der Einrichtung zur Verbindung 6 liegender Prozess, der durch den Interrupt I3 aktiviert wurde, kann den Wert des Bits Sechs des Registers 113 abfragen, ob das Autofokus-Fenster auf ein Fenster unter den wärmsten konvergiert. Derselbe Prozess kann den Folgeschalter 114 unterbrechen, indem er das Bit Null und das Bit Sechs des Registers 113 erhöht beziehungsweise setzt, und indem er einen Nullwert in das Register 109 einschreibt. Es kann in der Tat möglich sein, dass die Wärme des Autofokus-Fensters zu gering ist, um eine schnelle genügende Konvergenz zu ermöglichen. Der Prozess kann dann in ein oder in mehrere Register 101, 102, 109, 113 und 115 weitere Werte nachtragen, die geeignet sind, eine schnelle Konvergenz zu sichern.
  • Es empfiehlt sich zu beachten, dass ein außerhalb der Einrichtung zur Verbindung 6 ausgeführter Prozess nur beim Start, Anhalten oder Ende des Ablaufs der von dem Folgeschalter 114 durchgeführten Programme eingreift. Dieses verhindert beim außerhalb der Einrichtung zur Verbindung 6 ausgeführten Prozess die Beeinflussung der durch die Einrichtung zur Verbindung 6 durchgeführten Messungen.

Claims (5)

  1. Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher, welche aus mehreren Modulen (10, 20, 40, 60) besteht, wobei ein betrachtetes Modul (10) eine Einrichtung (6) zur Sicherstellung eines Zusammenhangs von Daten mit anderen Modulen (20, 40, 60) beinhaltet, wobei diese Einrichtung mindestens aufweist: – ein erstes Register (81, 101), das für die Aufnahme einer ersten physischen Adresse des Speichers vorgesehen ist, – ein zweites Register (82, 102), das für die Aufnahme einer zweiten physischen Adresse des Speichers vorgesehen ist, – erste Einrichtungen (90, 95, 111, 121, 88, 92, 108) zum Messen einer Anzahl von Aktivitäten bezüglich Daten, deren Adressen zwischen der ersten physischen Adresse und der zweiten physischen Adresse enthalten sind, wobei die ersten Einrichtungen einen Zähler (90) von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen aufweisen, sich auf Daten beziehend, deren Adressen zwischen der ersten physischen Adresse und der zweiten physischen Adresse enthalten sind, und einen Zähler (92) von Latenzzeiten von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen aufweisen, sich auf Daten beziehend, deren Adressen zwischen der ersten physischen Adresse und der zweiten physischen Adresse enthalten sind, – ein drittes Register (83, 93, 109), das für die Aufnahme eines Schwellenwerts für das Messen der Anzahl von Aktivitäten vorgesehen ist, – zweite Einrichtungen (91, 94, 112, 122) zur Ermittlung, ob dieser Schwellenwert von der durch die ersten Einrichtungen gemessenen Anzahl von Aktivitäten überschritten wird.
  2. Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher nach Anspruch 1, dadurch gekennzeichnet, dass die Einrichtung (6) ein viertes Register (103) aufweist, welches zur Aufnahme einer dritten logischen Adresse vorgesehen ist, welche zwischen der ersten physischen Adresse und der zweiten physischen Adresse enthalten ist, und dass die ersten Einrichtungen einen Zähler (111) von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen beinhalten, sich auf Daten beziehend, deren Adressen zwischen der ersten physischen Adresse und der dritten physischen Adresse enthalten sind, und einen Zähler (121) von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen beinhalten, sich auf Daten beziehend, deren Adressen zwischen der dritten physischen Adresse und der zweiten physischen Adresse enthalten sind.
  3. Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher nach Anspruch 1, dadurch gekennzeichnet, dass die Einrichtung (6) ein viertes Register (103) aufweist, welches zur Aufnahme einer dritten logischen Adresse vorgesehen ist, welche zwischen der ersten physischen Adresse und der zweiten physischen Adresse enthalten ist, und dass die ersten Einrichtungen einen Zähler (111) von Latenzzeiten von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen beinhalten, sich auf Daten beziehend, deren Adressen zwischen der ersten physischen Adresse und der dritten physischen Adresse enthalten sind, und einen Zähler (121) von Latenzzeiten von Datenaustauschen des betrachteten Moduls mit den weiteren Modulen beinhalten, sich auf Daten beziehend, deren Adressen zwischen der dritten physischen Adresse und der zweiten physischen Adresse enthalten sind.
  4. Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass die Einrichtung (6) einen Folgeschalter (114) aufweist, um den Inhalt des vierten Registers (103) in das zweite Register (102) einzuschreiben, wenn der Inhalt des Zählers (111) den Inhalt des dritten Registers (109) überschreitet, um den Inhalt des vierten Registers (103) in das erste Register (101) einzuschreiben, wenn der Inhalt des Zählers (121) den Inhalt des dritten Registers (109) überschreitet, und um in das vierte Register (103) einen Wert einzuschreiben, welcher unter denen des ersten Registers (101) und des zweiten Registers (102) enthalten ist.
  5. Maschine mit nichtuniformen Speicherzugriffen und zusammenhängendem Pufferspeicher nach Anspruch 4, dadurch gekennzeichnet, dass die Einrichtung (6) ein fünftes Register (115) aufweist, welches für die Aufnahme eines Schwellenwerts vorgesehen ist, der auf einer Differenz der Inhalte des ersten (101) und des zweiten Registers (102) beruht, um den Folgeschalter (114) in seinen anfänglichen Zustand zurück zu setzen, wenn dieser Schwellenwert diese Differenz überschreitet.
DE69822364T 1997-06-02 1998-05-27 Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen Expired - Lifetime DE69822364T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9706747 1997-06-02
FR9706747A FR2764097B1 (fr) 1997-06-02 1997-06-02 Detection de points chauds dans une machine avec memoire a acces non uniforme

Publications (2)

Publication Number Publication Date
DE69822364D1 DE69822364D1 (de) 2004-04-22
DE69822364T2 true DE69822364T2 (de) 2005-02-17

Family

ID=9507485

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69822364T Expired - Lifetime DE69822364T2 (de) 1997-06-02 1998-05-27 Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen

Country Status (5)

Country Link
US (1) US6195728B1 (de)
EP (1) EP0883064B1 (de)
JP (1) JPH1115735A (de)
DE (1) DE69822364T2 (de)
FR (1) FR2764097B1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69715203T2 (de) * 1997-10-10 2003-07-31 Bull Sa Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
JP4252139B2 (ja) * 1998-12-16 2009-04-08 株式会社日立製作所 記憶装置システム
US6754782B2 (en) 2001-06-21 2004-06-22 International Business Machines Corporation Decentralized global coherency management in a multi-node computer system
US6711652B2 (en) 2001-06-21 2004-03-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that provides precise notification of remote deallocation of modified data
US6901485B2 (en) 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6633959B2 (en) * 2001-06-21 2003-10-14 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that provides notification of remote deallocation of shared data
US6760809B2 (en) 2001-06-21 2004-07-06 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6760817B2 (en) 2001-06-21 2004-07-06 International Business Machines Corporation Method and system for prefetching utilizing memory initiated prefetch write operations
US6654857B2 (en) 2001-06-21 2003-11-25 International Business Machines Corporation Non-uniform memory access (NUMA) computer system having distributed global coherency management
US6615322B2 (en) 2001-06-21 2003-09-02 International Business Machines Corporation Two-stage request protocol for accessing remote memory data in a NUMA data processing system
US6721853B2 (en) 2001-06-29 2004-04-13 International Business Machines Corporation High performance data processing system via cache victimization protocols
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
US8209490B2 (en) * 2003-12-30 2012-06-26 Intel Corporation Protocol for maintaining cache coherency in a CMP
US7426649B2 (en) * 2005-02-09 2008-09-16 International Business Machines Corporation Power management via DIMM read operation limiter
US10649943B2 (en) * 2017-05-26 2020-05-12 Dell Products, L.P. System and method for I/O aware processor configuration
JP6881485B2 (ja) * 2019-02-26 2021-06-02 日本電気株式会社 メモリ配置装置、メモリ配置方法、及び、メモリ配置プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4068304A (en) * 1973-01-02 1978-01-10 International Business Machines Corporation Storage hierarchy performance monitor
US4845615A (en) * 1984-04-30 1989-07-04 Hewlett-Packard Company Software performance analyzer
US5269013A (en) * 1991-03-20 1993-12-07 Digital Equipment Corporation Adaptive memory management method for coupled memory multiprocessor systems
EP0689141A3 (de) * 1994-06-20 1997-10-15 At & T Corp Unterbrechungsbasierte hardwaremässige Unterstützung für Systemleistungsprofilierung
JP3889044B2 (ja) * 1995-05-05 2007-03-07 シリコン、グラフィクス、インコーポレイテッド 不均一メモリ・アクセス(numa)システムにおけるページ移動
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5860116A (en) * 1996-12-11 1999-01-12 Ncr Corporation Memory page location control for multiple memory-multiple processor system
US6014690A (en) * 1997-10-24 2000-01-11 Digital Equipment Corporation Employing multiple channels for deadlock avoidance in a cache coherency protocol
US6035377A (en) * 1997-12-17 2000-03-07 Ncr Corporation Method and apparatus for determining memory pages having greatest frequency of access in a non-uniform memory access computer system

Also Published As

Publication number Publication date
JPH1115735A (ja) 1999-01-22
US6195728B1 (en) 2001-02-27
FR2764097A1 (fr) 1998-12-04
DE69822364D1 (de) 2004-04-22
EP0883064A1 (de) 1998-12-09
FR2764097B1 (fr) 1999-07-02
EP0883064B1 (de) 2004-03-17

Similar Documents

Publication Publication Date Title
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE69019925T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Vervielfältigung von globalen Daten.
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE3102150C2 (de) Multiprozessor-Datenverarbeitungsanlage
DE69031086T2 (de) Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE60203469T2 (de) System mit Schnittstellen und einem Schalter für die Trennung von kohärentem und nichtkohärentem Datenpaketverkehr
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE3502147C2 (de)
DE3131341A1 (de) "pufferspeicherorganisation"
DE3606211A1 (de) Multiprozessor-computersystem
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102007052853A1 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

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