DE69816714T2 - Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen - Google Patents

Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen Download PDF

Info

Publication number
DE69816714T2
DE69816714T2 DE69816714T DE69816714T DE69816714T2 DE 69816714 T2 DE69816714 T2 DE 69816714T2 DE 69816714 T DE69816714 T DE 69816714T DE 69816714 T DE69816714 T DE 69816714T DE 69816714 T2 DE69816714 T2 DE 69816714T2
Authority
DE
Germany
Prior art keywords
memory
access
counter
module
remote
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
DE69816714T
Other languages
English (en)
Other versions
DE69816714D1 (de
Inventor
Thierry Bordaz
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 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
Application granted granted Critical
Publication of DE69816714D1 publication Critical patent/DE69816714D1/de
Publication of DE69816714T2 publication Critical patent/DE69816714T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

  • Die Erfindung betrifft eine Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen im Bereich der Informationsverarbeitung.
  • 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 jedesmal 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ängen den 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 CCNU-MA, 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 neu esten 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. Die Leistungsfähigkeit der Maschine hängt direkt von der Schnelligkeit ab, mit der ein Modul auf eine gültige Kopie des Blocks zugreift, den es bearbeitet. Es ist angeraten, das Betriebssystem der Maschine und die durch diese Maschine ausgeführten Anwendungen so vorzusehen, dass jedes Modul höchstens die Kopien der auf seinem physischen Speicher lokalisierten Blocks und soviel wie möglich gültige verarbeitet. Die Zugriffe auf diese gültigen Kopien sind die schnellsten, denn diese erfordern den geringsten Datenaustausch mit anderen Modulen.
  • Die Konzeption eines Betriebssystems in der Nachfolge der Anwendungen erfordert ein korrektes Einbeziehen der Rückwirkungen, welche sich auf die Leistungsfähigkeit der Maschine auswirken. Man kann es in Betracht ziehen, das Betriebssystem oder die Anwendungen mittels Simulationsprogrammen zu testen, welche das Verhalten der Maschine mit diesem Betriebssystem oder mit diesen Anwendungen simulieren. Man kann dann erhoffen, daraus abzuleiten wie das Betriebssystem oder die Anwendungen anzupassen sind, beispielsweise indem man mit der Aufteilung der Adressen, der Erzeugung von logischen Tabellen oder dem Ablauf der Aufgaben spielt. Es ist indessen schwierig, alle Fälle vorauszusehen, welche sich beim realen Betrieb der Maschine ergeben.
  • Die 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., beschreibt eine Untersuchung der verbrauchten Systemzeit für die unterschiedlichen Teile der Architektur solcher Systeme. Sie bezieht sich im Besonderen auf die Unterscheidung von Systemzeiten für die loka len oder entfernten Speicherzugriffe. Die Ergebnisse einer solchen Untersuchung werden in einer pauschalen Weise angegeben.
  • Die Schrift US 4 068 304 beschreibt ein Überwachungssystem für die Verwaltung von hierarchisierten Speicherzugriffen. Dieses System verwendet verschiedene Zähler zum Rückwärtszählen und Verwalten der Zugriffe und dem Ausbleiben von Zugriffen auf unterschiedlichen höchsten Speicherebenen.
  • Ein erstes Ziel der Erfindung, welche durch den Anspruch 1 festgelegt ist, ist eine Maschine mit nichtuniformen Speicherzugriffen, welche aus mehreren Modulen besteht, wobei jedes Modul eine Verbindungseinheit mit einer Tabelle zur Verwaltung der lokalen Zugriffe auf einen Teil eines Speichers, der sich lokal im Modul befindet, und eine Tabelle zur Verwaltung der Zugriffe auf einen Teil eines Speichers, der entfernt vom Modul angeordnet ist, aufweist, wobei die Zugriffe über ein Bussystem erfolgen, dadurch gekennzeichnet, dass die Maschine enthält:
    • – einen Zähler der erfolgreichen Zugriffe auf den Teil des lokalen Speichers, welche keinen Datenaustausch mit einem entfernten Modul benötigen;
    • – einen Zähler der nicht erfolgreichen Zugriffe auf den Teil des lokalen Speichers (5'), welche mindestens einen Datenaustausch mit einem entfernten Modul benötigen;
    • – einen Zähler der erfolgreichen Zugriffe auf den Teil des entfernten Speichers, welche keinen Datenaustausch mit einem entfernten Modul benötigen;
    • – einen Zähler der nicht erfolgreichen Zugriffe auf den Teil des entfernen Speichers, welche mindestens einen Datenaustausch mit einem entfernten Modul benötigen.
  • Dieses ermöglicht eine reelle Zeitmessung der Verteilung der schnellen Zugriffe zum Speicher, die keinen Datenaustausch zur Sicherstellung eines zusammenhängenden Pufferspeichers benötigen, und der langsamen Zugriffe zum Speicher, die mindestens einen Datenaustausch zur Sicherstellung eines zusammenhängenden Pufferspeichers benötigen. Ein Problem kann sich dennoch ein stellen, wenn die notwendigen Ressourcen für das Hochzählen der Zähler die Leistungsfähigkeit der Maschine beeinträchtigen.
  • Ein zweites Ziel der Erfindung betrifft eine Maschine mit nichtuniformen Speicherzugriffen, dadurch gekennzeichnet, dass die vier Zähler stofflich in der Verbindungseinheit angeordnet sind. Somit benötigt das Hochzählen der Zähler keine zusätzliche Ressource auf dem Bussystem.
  • Ein Verfahren, welches durch den Anspruch 7 festgelegt ist, zur Berechnung der mittleren Speicherzugriffszeit umfasst dann:
    • – die Multiplikation des Inhalts
    • – des Zählers der erfolgreichen Zugriffe auf einen Teil des lokalen Speichers während der mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des lokalen Speichers,
    • – des Zählers der nicht erfolgreichen Zugriffe auf einen Teil des lokalen Speichers während der mittleren Zeit eines nicht erfolgreichen Zugriffs auf den Teil des lokalen Speichers,
    • – des Zählers der erfolgreichen Zugriffe auf einen entfernten Teil des Speichers während der mittleren Zeit eines erfolgreichen Zugriffs auf den entfernten Teil des Speichers,
    • – des Zählers der nicht erfolgreichen Zugriffe auf einen entfernten Teil des Speichers während der mittleren Zeit eines nicht erfolgreichen Zugriffs auf den entfernten Teil des Speichers,
    • – die Aufsummierung der so erhaltenen Ergebnisse,
    • – und die Division dieser Summe durch die Summe der Inhalte der vier Zähler der Zugriffe.
  • Man kann es in Betracht ziehen, die mittlere Zeit eines jeden Typs von Zugriff mit Hilfe eines Busanalysators während der Versuchsphase der Maschine zu bestimmen. Die so bestimmten mittleren Zeiten werden dann als charakteristische Parameter mit der Maschine zur Verfügung gestellt. Die Zeiten der erfolgreichen Zugriffe ohne Datenaustausch mit einem entfernten Modul, ob es sich dabei um einen Teil des lokalen Speichers oder um einen Teil des entfernten Speichers handelt, sind praktisch konstant, denn sie sind nur von der Belastung des lokalen Bus' im Modul abhängig. Der Mittelwert dieser Zugriffszeiten, welcher vorab mittels eines Standard-Busanalysators berechnet wurde, ist somit mit einer akzeptablen Genauigkeit repräsentativ für das spätere Verhalten der Maschine im Betrieb. Indessen erzeugen die nicht erfolgreichen Zugriffe in Begleitung von Datenaustauschen mit entfernten Modulen Verzögerungen, welche von den Verzögerungen der Datenaustausche selbst abhängig sind. Wenn beim späteren Betrieb der Maschine das Protokoll der zusammenhängenden Pufferspeicher bei hoher Belastung der Verbindungen zwischen den Modulen stark beansprucht wird, können die Zugriffszeiten in deutlichem Maße variieren. Die vorab bestimmten mittleren Zeiten der nicht erfolgreichen Zugriffe sind mit dem Risiko behaftet, nicht mehr für die mittleren Zeiten der wirksamen Zugriffe mit einer genügenden Genauigkeit repräsentativ zu sein. Eine Lösung besteht darin, korrigierende Gewichtungskoeffizienten als Funktion des wirksamen Betriebs der Maschine auf die mittleren Zeiten der nicht erfolgreichen Zugriffe anzuwenden. Die mittleren Zeiten der nicht erfolgreichen Zugriffe sind beispielsweise eine Funktion der nicht erfolgreichen Zugriffe, bekannt durch die Zähler der nicht erfolgreichen Zugriffe. Es ist dann vorzugsweise eine Vorabmodellierung der Entwicklung dieser mittleren Zeiten der nicht erfolgreichen Zugriffe mit der Anzahl der Datenaustausche vorzunehmen.
  • Ein zusätzlicher Vorteil wird geschaffen, wenn die Maschine mit nichtuniformen Speicherzugriffen folgendes umfasst:
    • – einen Zähler zum Aufsummieren der Verzögerungen der Zugriffe auf den Teil des lokalen Speichers, welche einen Datenaustausch mit einem entfernten Modul benötigen;
    • – einen Zähler zum Aufsummieren der Verzögerungen der entfernten Zugriffe auf den Teil des Speichers, welche einen Datenaustausch mit einem entfernten Modul benötigen.
  • Diese zwei Zähler ermöglichen ein Erhalten von mittleren Zugriffszeiten in Begleitung von Datenaustauschen, wirksam während eines jeden Betriebs der Maschine, ohne sich vorher über unangebrachte Belastungen des Protokolls des zusammenhängenden Pufferspeichers Gedanken zu machen. Es ist dann möglich, gemäß Anspruch 8 ein Verfahren zur Berechnung der mittleren Speicherzugriffszeit anzuwenden, welches umfasst:
    • – eine Multiplikation des Inhalts:
    • – des Zählers der erfolgreichen Zugriffe auf den Teil des lokalen Speichers während der mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des lokalen Speichers,
    • – des Zählers der nicht erfolgreichen Zugriffe auf den Teil des entfernten Speichers während der mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des entfernten Speichers,
    • – eine Aufsummierung der so erhaltenen beiden Ergebnisse mit den Inhalten des Zählers zur Summierung der Verzögerungen der Zugriffe auf den Teil des lokalen Speichers, welche einen Datenaustausch mit einem entfernen Modul benötigen, und des Zählers zur Summierung der Verzögerungen der Zugriffe auf den Teil des entfernten Speichers, welche einen Datenaustausch mit einem entfernen Modul benötigen,
    • – und eine Division dieser Summe durch die Summe der Inhalte der vier Zähler.
  • Die Erfindung wird mit Hilfe der Beschreibung eines Ausführungsbeispiels mit Bezug auf die Figuren noch weiter erläutert.
  • Die 1 zeigt eine Architektur einer Maschine mit vier Modulen
  • Die 2 stellt bestimmte Details der vorerwähnten Verbindungseinheit dar, welche in einem Modul angeordnet ist, das als ein lokales betrachtet wird.
  • Die 3 zeigt bestimmte Details der vorerwähnten Verbindungseinheit, welche in einem Modul angeordnet ist, das als ein entferntes betrachtet wird.
  • Die 4 und 5 stellen weitere Details der Verbindungseinheit zur Anwendung der Erfindung 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 Verbindungseinheit 6 zu 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 Verbindungseinheit 26 zu 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 Verbindungseinheit 46 zu 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 Verbindungseinheit 66 zu 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 Verbindungseinheit 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 umfasst jeweils einen eigenen internen oder externen Pufferspei cher 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 Verbindungseinheit 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 Speiche rorts angeben. In dem Modul 20 ist es die Verbindungseinheit 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 5M 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.
  • Wir erinnern einfach daran, 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheiten 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 Verbindungseinheit 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 A6 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 wenigstens soviel Bits enthält wie die Maschine Module aufweist. Jedem vom Modul 10 entfernten Modul, in welchem sich der durch die Felder A5 und A6 gekennzeichnete Block befindet, ist ein Bit zur Identifikation zugeordnet, welches das Vorhandensein einer Aufteilung dieses Blocks auf das entfernte Modul angibt. Ein Bit zeigt an, wenn der Block von einem entfernten Modul verändert worden ist. Zu einem bestimmten Zeitpunkt hält ein einzelnes Modul die modifizierte 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 Bit des Vorhandenseins, das die Aufteilung dieses Blocks auf eine entferntes Modul anzeigt, das ist das Bit, welches dem Modul zugeordnet ist, das die aktuellste Version enthält. Die Kopien des Blocks in den anderen Modulen sind ungültig. 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 Verbindungseinheit 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, bestimmte die Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 6 dann ein Signal LM eines lokalen Misserfolges erzeugt.
  • Die Erzeugung der Signale LH und LM 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 Datenaus tausch erforderlich macht, denn das Modul 10 hält eine aktuelle Kopie des Blocks, dann erzeugt die Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 6, wenn es erforderlich wird, einen Datenaustausch mit dem entfernten Modul 30 aufzunehmen. Für das Signal S1 ist ein Datenaustausch notwendig, um in den Statuscode D2 des Moduls 20, in welchem sich der Block befindet, einzuschreiben, dass der Block verändert worden ist, und um in den Statuscode 53 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 Verbindungseinheit 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 Verbindungseinheit 6 sagt mit ihrem Statuscode S3 aus, dass der Block verändert worden ist. 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 Verbindungseinheit 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 Verbindungseinheit 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. Für die Anforderung Q2 zum Lesen im Speicher entfernt vom Modul 10, ist kein Datenaustausch erforderlich, und die Verbindungseinheit 6 erzeugt ein Signal RH eines entfernten Erfolgs. 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 Verbindungseinheit 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. Die Verbindungseinheit 6 erzeugt dann ein Signal RM. Die Verbindungseinheit 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 Verbindungseinheit 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 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 Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 26 eine Kopie des Blocks an die Verbindungseinheit 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 Verbindungseinheit 26 eine Leseanfor derung an eines der Module 40, 60, welches die aktuelle Version des Blocks besitzt. Die Verbindungseinheit 46, 66, welche die aktuelle Kopie besitzt, sendet die Kopie des Blocks an die Verbindungseinheit 6 des Moduls 10 und an die Verbindungseinheit 26 des Moduls 20. Die Verbindungseinheit 26 aktualisiert ihren lokalen Speicher 25' und ihren Statuscode S2 auf den aufgeteilten Status. Die Verbindungseinheit 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 Verbindungseinheit 6 eine Bestätigung an die Verbindungseinheit 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 Verbindungseinheit 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 Verbindungseinheit 26 in Leseanforderung an die der Module 10, 40, 60, welche die aktuelle Version des Blocks enthalten. Diejenige Verbindungseinheit 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 Verbindungseinheit 26 des Moduls 20, um seinen lokalen Speicher 25' zu aktualisieren. Das Signal S5 wird an die eine oder die Verbindungseinheiten 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 Verbindungseinheit 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 Verbindungseinheit 26 den Inhalt des bearbeiteten Blocks an die Verbindungseinheit 6, welche den Block in ihre Tabelle 9 mit einem Statuscode auf, 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 auf genommenen Blocks nicht anzeigt, dass dieser verändert worden ist, wird das Signal 55 an die eine oder die Verbindungseinheiten 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 Verbindungseinheit 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 Verbindungseinheit 26 den Inhalt des bearbeiteten Blocks an die Verbindungseinheit 6, welche den Block in ihre Tabelle 9 mit einem Statuscode auf, 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.
  • Inbesonders ist es interessant, in den Tabellen 8, 28, 48, 68 eine assoziative Übereinstimmung durch Blockeinheiten, beispielsweise durch vier Blockeinheiten zu verwenden. Denn ein Ersatz einer Zeile jeweils in der Tabelle 9 und 29 induziert häufig einen Ersatz einer Zeile jeweils in der Tabelle 28 und 8.
  • Die 4 zeigt zusätzliche Details der Verbindungseinheit 6. Die Verbindungseinheiten 6, 26, 46, 66 sind identisch. Das Abtrennen einer Adresse des auf dem Bus 7 zirkulierenden Blocks ist hier nur durch die Felder A4 bis A8 dargestellt, denn wir haben bereits vorab gesehen, dass die Felder A1 und A2 im Besonderen nützlicher für die Stufen der eigenen Pufferspeicher 11 bis 14 waren. Ein Filter 85 leitet die Blockadresse zur Tabelle 8, wenn das Feld A4 eine Adresse eines Blocks betrifft, der sich im Modul 10 befindet, oder zur Tabelle 9, wenn das Feld A4 eine Adresse eines Blocks betrifft, der sich im Modul 20, 40, 60 entfernt vom Modul 10 befindet. Ein Indexregister 84 zeigt auf einen Eingang der Tabelle 8, welcher durch das Feld A5 der Blockadresse adressiert wird. Ein Indexregister 94 zeigt auf einen Eingang der Tabelle 9, welcher durch das Feld A8 der Blockadresse adressiert wird.
  • Wenn der Filter 85 die Blockadresse an die Tabelle 8 leitet, erzeugt ein Logik-Kombinationselement 80 ein Signal LH oder ein Signal LM und einen entfernten Datenaustausch als Funktion der Werte des Statuscodes und des Felds A6, die in der Tabelle 8 gespeichert sind, zu der Zeile, welche vom Indexregister 84 angewiesen ist. Das Element 80 führt eine Umgruppierung zum Beispiel der verschiedenen Vergleicher und logischen Tore der 2 in Verbindung mit der Tabelle 8 durch. Jeder gleichzeitig zum Signal LM erzeugte entfernte Datenaustausch wird in ein Pufferregister 83 geschrieben, um bei einer Anforderung über den Anschluss 17 in Erwartung einer Antwort über denselben Anschluss 17 ausgesendet zu werden. Ein Einschreiben des jeweiligen Signals LH und LM in das Register 18 inkrementiert jeweils einen Zähler 81 und 82. Der Inhalt des Zählers 81 und 82 ist über den Bus 7 zugreifbar, zum Beispiel beim Lesen vom Typ Eingang/Ausgang.
  • Wenn der Filter 85 die Blockadresse an die Tabelle 9 leitet, erzeugt ein Logik-Kombinationselement 90 ein Signal RH oder ein Signal RM und einen entfernten Datenaustausch als Funktion der Werte des Statuscodes und des Felds A7, die in der Tabelle 9 gespeichert sind, zu der Zeile, welche vom Indexregister 94 angewiesen ist. Das Element 90 führt eine Umgruppierung zum Beispiel der verschiedenen Vergleicher und logischen Tore der 2 in Verbindung mit der Tabelle 9 durch. Jeder gleichzeitig zum Signal RM erzeugte entfernte Datenaustausch wird in ein Pufferregister 93 geschrieben, um bei einer Anforderung über den Anschluss 17 in Erwartung einer Antwort über denselben Anschluss 17 ausgesendet zu werden. Ein Einschreiben des jeweiligen Signals RH und RM in das Register 19 inkrementiert jeweils einen Zähler 91 und 92. Der Inhalt des Zählers 91 und 92 ist über den Bus 7 zugreifbar, zum Beispiel beim Lesen vom Typ Eingang/Ausgang.
  • Jeder der Zähler 81, 82, 91, 92 ist dazu vorgesehen, einen Interrupt im Falle eines Überlaufs auf den Bus 7 zu senden. Man unterscheidet überdies in der 4 ein Kontrollregister 86 und ein Zustandsregister 87. Das Register 86 ist über den Bus 7 für Lese- und Schreibvorgänge zugreifbar. Das Register 87 ist über den Bus 7 für Lesevorgänge zugreifbar und wird nach dem Lesevorgang seines Inhalts systematisch auf Null gesetzt.
  • Das Register 87 beinhaltet für jeden Zähler 81, 82, 91, 92 ein Bit, dessen einer logischer bestimmter Zustand einen Überlauf des Zählers signalisiert, für den dieses Bit zugewiesen ist.
  • Das Register 86 beinhaltet Bits zur Kontrolle der Zähler 81, 82, 91, 92 mittels einer logischen Kombinationsschaltung, die nicht dargestellt ist, um die Figur nicht zu unübersichtlich zu machen. Ein erstes Bit ist zur unbedingten Deaktivierung des Zählers vorgesehen, dergestalt, dass ein logischer Zustand des Bits verhindert, dass die Inhalte der Zähler nicht durch Einschreibvorgänge in die Register 18 und 19 verändert werden können, und dass der komplementäre logische Zustand des Bits ermöglicht, dass die Inhalte der Zähler durch Einschreibvorgänge in die Register 18 und 19 verändert werden können. Ein zweites Bit ist zur bedingten Deaktivierung der Zähler vorgesehen, dergestalt, dass ein logischer Zustand des Bits verhindert, dass die Inhalte der Zähler nicht durch Einschreibvorgänge in die Register 18 und 19 im Anschluss an einen durch ein Bit des Registers 87 signalisierten Überlauf verändert werden können, und dass der komplementäre logische Zustand des Bits ermöglicht, dass die Inhalte der Zähler durch Einschreibvorgänge in die Register 18 und 19 verändert werden können, unabhängig vom Inhalt des Registers 87. Ein drittes Bit ist zur Deaktivierung des Interrupts im Falle eines oben erwähnten Überlaufs vorgesehen, dergestalt, dass ein logischer Zustand des Bits den Interrupt ermöglicht, und dass der komplementäre logische Zustand des Bits den Interrupt verhindert. Ein viertes Bit ist zum Rücksetzen der Inhalte der Zähler 81, 82, 91, 92 auf Null vorgesehen. Man kann ein allen Zählern oder gemeinsames viertes Bit oder soviele vierte Bits wie Zähler vorhanden sind vorsehen, wobei jedes vierte Bit sich dann auf den Zähler auswirkt, für den es aktiviert wird.
  • Es empfiehlt sich, sich eine richtige Vorstellung davon zu machen, dass die Verwaltung des Zählers, die sich physisch in der Verbindungseinheit 6 befindet, ausgeführt wird, ohne dass die von den Prozessabläufen durch die Prozessoren 1 bis 4, 21 bis 24, 41 bis 44, 61 bis 64 durchgeführten Speicherzugriffe über den Bus 7 und den Anschluss 17 davon gestört werden. Somit erzeugt das Zählen der erfolgreichen und der nicht erfolgreichen Zugriffe auf den lokalen und entfernten Speicherraum selbst keine erfolgreichen oder nicht erfolgreichen Pufferspeicherzugriffe. Außerdem können bei der Ausführung der Zugriffe über den Bus 7 zu den Zählern 81, 82, 91, 92 und zu den Registern 18, 19, 86, 87 durch Lese- oder Schreibvorgänge des Typs Eingang/Ausgang die mit den Tabellen 8 und 9 verknüpften Pufferspeicherprozeduren nicht intervenieren. Die einzigen Prozeduren, die zu einer Störung der Pufferspeicherprozeduren fähig sind, sind die Betriebsprozeduren der Zähler 81, 82, 91, 92, zweckdienlich zum Editieren der Auswertungen bei den Leistungen des Betriebssystems oder der ausgeführten Anwendungen durch die Maschine, ja sogar zweckdienlich für ein eventuelles Auslösen von Optimierungsprozeduren in Realzeit, wie zum Beispiel solche zur Relokalisierung des Speichers. Indessen können diese Prozeduren in Bezug auf die anderen von der Maschine ausgeführten Prozeduren genügend unbedeutend sein, damit die Maßnahmen, welche sie ermöglichen, praktisch identisch mit denen sind, die bei den Pufferspeicherprozeduren in vollkommener Abwesenheit einer Beeinflussung durch diese Prozedurmaßnahmen erlangt werden Die Architektur der Register 86 und 87 gestattet es, unterschiedliche Typen von Maßnahmeprozeduren mit den in den Prozessoren 1 bis 4 ausgeführten Programmen anzuwenden. Man kann angeben, dass diese durch einen von dem Register 87 erzeugten Interrupt ausgelöst werden, oder dass diese periodisch im Zusammenwirken mit dem Register 86 ausgelöst werden. Eine Maßnahmeprozedur liest simultan den Inhalt der vier Zähler 81, 82, 91, 92 aus und bearbeitet die so erhaltenen Werte.
  • Die Summe der in den vier Zählern 81, 82, 91, 92 enthaltenen Werten ergibt eine Zahl N0 von Speicherzugriffen, zum Beispiel zwischen zwei Überlaufzählern oder in regelmäßigen Zeitintervallen. Das Verhältnis des Inhalts des Zählers 81 zur Zahl der Speicherzugriffe ergibt eine Rate TL1 der lokalen Zugriffserfolge. Das Verhältnis des Inhalts des Zählers 82 zur Zahl der Speicherzugriffe ergibt eine Rate TL2 der lokalen Zugriffsmisserfolge, das heißt der Zugriffe auf in dem Speicher 5' befindliche Blöcke. Das Verhältnis des Inhalts des Zählers 91 zur Zahl der Speicherzugriffe ergibt eine Rate TR1 der entfernten Zugriffserfolge. Das Verhältnis des Inhalts des Zählers 92 zur Zahl der Speicherzugriffe ergibt eine Rate TR2 der entfernten Zugriffsmisserfolge, das heißt der Zugriffe auf in dem Speicher 25', 45', 65' befindliche Blöcke. Die Summe der in den Registern 81 und 91 enthaltenen Werte ergibt eine Zahl von N1 von erfolgreichen Speicherzugriffen ohne entfernten Datenaustausch. Die Summe der in den Registern 82 und 92 enthaltenen Werte ergibt eine Zahl von N2 von nicht erfolgreichen Speicherzugriffen entfernten Datenaustausches. Das Verhältnis der Zahl N1 zur Zahl N0 ergibt eine Rate TR3 der Lokalität der Speicherzugriffe. Das Verhältnis der Zahl N2 zur Zahl N0 ergibt eine Rate TR4 der Entfernung der Speicherzugriffe. Man sieht bei diesen wenigen Beispielen die Vielfältigkeit von möglichen, durch den stofflichen Aufbau der Verbindungseinheit 6 veranlassten, Aus wertungen der Inhalte der Zähler 81, 82, 91, 92 für den Benutzer der Maschine, um damit die Leistungsfähigkeit zu steigern.
  • Die 5 zeigt weitere mögliche Details der Verbindungseinheit 6. Jedesmal, wenn das Logik-Kombinationselement 80 ein Signal LM erzeugt, wird die Anforderung an den Ursprung des Signals LM in einem Stapel 96 mit den Daten des Eintrags dieser Anforderung in der Verbindungseinheit 6 durch den Filter 85 in Erwartung der Bearbeitung zur Erledigung dieser Anforderung gespeichert. Jedesmal, wenn das Logik-Kombinationselement 90 ein Signal RM erzeugt, wird die Anforderung an den Ursprung des Signals RM in einem Stapel 97 mit den Daten des Eintrags dieser Anforderung in Erwartung der Bearbeitung zur Erledigung dieser Anforderung gespeichert. Wir haben oben gesehen, dass jedes Signal LM und RM von einem ersten Datenaustausch mit einem entfernten Modul begleitet war, welches selbst weitere Zwischen-Datenaustausche in einer Kaskade auslösen konnte. Dieser erste Datenaustausch hört auf, wenn die Verbindungseinheit 6 über den Anschluss 17 eine Antwort empfängt, die es ihr ermöglicht, die Bearbeitung der Anforderung an den Ursprung des Signals LM oder RM fertigzustellen. Die Bearbeitung einer Anforderung wird fertiggestellt, wenn die Verbindungseinheit 6 eine gültige Kopie des Blocks auf den Bus 7 sendet, im Anschluss an eine Leseanforderung, oder einfacher eine Begleichung im Anschluss an eine Anforderung zum Einschreiben. Zur Fertigstellung der Bearbeitung einer gespeicherten Anfrage in dem Stapel 96 zieht ein Subtrahierer-Addierer 89 die Daten des Eintrags der Anforderung von den Daten der Fertigstellung der Bearbeitung der Anforderung ab und fügt die erhaltenen Differenz D dem Inhalt S eines Registers 88 hinzu. Das Register 88 verhält sich wie ein Zähler von kumulierter Zeit und trennt die Daten des Eintrags der Anforderung und die Fertigstellung der Bearbeitung durch die Verbindungseinheit 6. Das außerdem Zähler 88 genannte Register ist über den Bus 7 zum Lesen zugreifbar. Zur Fertigstellung der Bearbeitung einer gespeicherten Anforderung in dem Stapel 97 zieht ein Subtrahierer-Addierer 99 die Daten des Eintrags der Anforderung von den Daten der Fertigstellung der Bearbeitung der Anforderung ab und fügt die erhaltenen Differenz D dem Inhalt S eines Registers 98 hinzu. Das Register 98 verhält sich wie ein Zähler von kumulierter Zeit und trennt den Eintrag der Anforderung und die Fertigstellung der Bearbeitung durch die Verbindungseinheit 6. Das außerdem Zähler 98 genannte Register ist über den Bus 7 zum Lesen zugreifbar.
  • Das Register 87 enthält für jeden Zähler 88, 98 ein Bit, von dem ein bestimmter logischer Zustand einen Überlauf des Zählers signalisiert, für welchen dieses Bit zugewiesen ist. Die Bits des Registers 86 kontrollieren die Zähler 88 und 98 in identischer Weise zu der mit Bezug auf die 4 für die Zähler 81, 82, 91, 92 beschriebenen.
  • Der Lesezugriff auf die Zähler 88 und 98 ermöglicht einer im Modul 10 ausgeführten Prozedur, die Verzögerung der Datenaustausche mit den entfernten Modulen 20, 40, 60 auszuwerten, was sowohl Zugriffe auf in dem Modul 10 befindliche Blöcke dank dem Zähler 88, als auch Zugriffe auf in einem entfernten Modul 20, 40, 60 befindliche Blöcke dank dem Zähler 98 betrifft.
  • Die verschiedenen beschriebenen Bauteile der Verbindungseinheit 6 sind zweckmäßig zur Berechnung der mittleren Zugriffszeit auf den Speicher und bilden eine Hilfe zur Diagnose der Lokalität.

Claims (8)

  1. Maschine zur Informationsverarbeitung mit nichtuniformen Speicherzugriffen und zusammenhängenden Pufferspeichern bestehend aus mehreren Modulen (10, 20, 40, 60), wobei jedes Modul eine Verbindungseinheit (6, 26, 46, 66) zu den anderen Modulen beinhaltet, die Verbindungseinheit (6) wenigstens eine Tabelle (8) zur Verwaltung der lokalen Zugriffe auf einen Teil eines Speichers (5'), der sich lokal im Modul (10) befindet, und eine Tabelle (9) zur Verwaltung der Zugriffe auf einen Teil eines Speichers (25', 45' 65'), der entfernt vom Modul (10) angeordnet ist, aufweist, wobei die Zugriffe über ein Bussystem (7) erfolgen, und wobei die Maschine für jedes Modul folgendes enthält: – einen Zähler (81) der erfolgreichen Zugriffe auf den Teil des lokalen Speichers (5'), welche keinen Datenaustausch mit einem entfernten Modul benötigen; – einen Zähler (82) der nicht erfolgreichen Zugriffe auf den Teil des lokalen Speichers (5'), welche mindestens einen Datenaustausch mit einem entfernten Modul benötigen; – einen Zähler (91) der erfolgreichen Zugriffe auf den Teil des entfernten Speichers (25', 45', 65'), welche keinen Datenaustausch mit einem entfernten Modul benötigen; – einen Zähler (92) der nicht erfolgreichen Zugriffe auf den Teil des entfernen Speichers (25', 45', 65'), welche mindestens einen Datenaustausch mit einem entfernten Modul benötigen, wobei auf die vier Zähler (81, 82, 91, 92) lokal über das Bussystem (7) im Ein-/Ausgabemodus zugegriffen werden kann, so dass eine reelle Zeitmessung der Verteilung der schnellen Zugriffe zum Speicher, die keinen Datenaustausch zur Sicherstellung eines zusammenhängenden Pufferspeichers benötigen, und der langsamen Zugriffe zum Speicher, die mindestens einen Datenaustausch zur Sicherstellung eines zusammenhängenden Pufferspeichers benötigen, möglich ist.
  2. Maschine mit nichtuniformen Speicherzugriffen nach Anspruch 1, dadurch gekennzeichnet, dass die vier Zähler (81, 82, 91, 92) stofflich in der Verbindungseinheit (6) angeordnet sind.
  3. Maschine mit nichtuniformen Speicherzugriffen nach Anspruch 1, dadurch gekennzeichnet, dass die Maschine – einen Zähler (88) zum Aufsummieren der Verzögerungen der Zugriffe auf den Teil des lokalen Speichers (5'), welche einen Datenaustausch mit einem entfernten Modul benötigen; – einen Zähler (98) zum Aufsummieren der Verzögerungen der entfernten Zugriffe auf den Teil des Speichers (25', 45', 65'), welche einen Datenaustausch mit einem entfernten Modul benötigen; umfasst.
  4. Maschine mit nichtuniformen Speicherzugriffen nach Anspruch 4, dadurch gekennzeichnet, dass die zwei Zähler (88, 98) zum Aufsummieren der Verzögerungen der Zugriffe stofflich in der Verbindungseinheit (6) angeordnet sind.
  5. Maschine mit nichtuniformen Speicherzugriffen nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass auf die zwei Zähler (88, 98) zum Aufsummieren der Verzögerungen der Zugriffe über das Bussystem (7) im Ein-/Ausgabemodus zum Auslesen zugegriffen wird.
  6. Maschine mit nichtuniformen Speicherzugriffen nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Verbindungseinheit (6) ein Register (86) zur Steuerung der Zähler (81, 82, 88, 91, 92, 98) und ein Zustandsregister (87) der Zähler (81, 82, 88, 91, 92, 98) aufweist, wobei auf das Register (86) zur Steuerung über das Bussystem (7) im Ein-/Ausgabemodus zum Einschreiben und Auslesen zugegriffen wird, und auf das Register (87) zur Steuerung über das Bussystem (7) im Ein-/Ausgabemodus zum Auslesen zugegriffen wird.
  7. Verfahren zur Berechnung der mittleren Speicherzugriffszeit in Realzeit in einer Maschine zur Informationsverarbeitung mit nichtuniformen Speicherzugriffen und zusammenhängenden Pufferspeichern, welches umfasst: – einen lokalen Schreib-/Lesezugriff im Ein-/Ausgabemodus auf einen ersten Zähler (81) der erfolgreichen Zugriffe auf einen Teil des lokalen Speichers (5'), auf einen zweiten Zähler (82) der nicht erfolgreichen Zugriffe auf den Teil des lokalen Speichers (5'), auf einen dritten Zähler (91) der erfolgreichen Zugriffe auf einen Teil des entfernten Speichers (25, 45, 65), auf einen vierten Zähler (92) der nicht erfolgreichen Zugriffe auf den Teil des entfernten Speichers (25, 45, 65) bei Fehlen von Eingabestörungen von Speicherzugriffen, – eine Multiplikation des Inhalts der Werte des ersten (81), zweiten (82), dritten (91) und vierten (92) Zählers der Zugriffe jeweils während einer mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des lokalen Speichers, einer mittleren Zeit eines nicht erfolgreichen Zugriffs auf den Teil des lokalen Speichers, einer mittleren Zeit eines erfolgreichen Zugriffs auf den entfernten Teil des lokalen Speichers, einer mittleren Zeit eines nicht erfolgreichen Zugriffs auf den entfernten Teil des lokalen Speichers, – eine Aufsummierung der so erhaltenen Ergebnisse, – und eine Division dieser Summe durch die Summe der Inhalte der vier Zähler (81, 82, 91, 92) der Zugriffe.
  8. Verfahren zur Berechnung der mittleren Speicherzugriffszeit in Realzeit in einer Maschine zur Informationsverarbeitung mit nichtuniformen Speicherzugriffen und zusammenhängenden Pufferspeichern, welches umfasst: – einen lokalen Schreib-/Lesezugriff im Ein-/Ausgabemodus auf einen Zähler (81) der erfolgreichen Zugriffe (5') auf einen Teil des lokalen Speichers und auf einen weiteren Zähler (91) der erfolgreichen Zugriffe auf einen Teil des entfernten Speichers (24, 25, 26), bei Fehlen von Eingabestörungen von Speicherzugriffen, – eine Multiplikation des Inhalts der Werte Zählers der Zugriffe (81) und des weiteren Zählers der Zugriffe (91) jeweils während einer mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des lokalen Speichers, und während einer mittleren Zeit eines erfolgreichen Zugriffs auf den Teil des entfernten Speichers, – eine Aufsummierung der so erhaltenen beiden Ergebnisse mit den Inhalten eines Zählers (88) zur Summierung der Verzögerungen der Zugriffe auf den Teil des lokalen Speichers (5'), welche einen Datenaustausch mit einem entfernen Modul benötigen, und eines Zählers (98) zur Summierung der Verzögerungen der Zugriffe auf den Teil des entfernten Speichers, welche einen Datenaustausch mit einem entfernen Modul (20, 40, 60) benötigen, – und eine Division dieser Summe durch die Summe der Inhalte der beiden Zähler (81, 82) der erfolgreichen Zugriffe und der beiden Zähler (82, 92) der nicht erfolgreichen Zugriffe.
DE69816714T 1997-05-26 1998-05-14 Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen Expired - Lifetime DE69816714T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9706387A FR2763712B1 (fr) 1997-05-26 1997-05-26 Dispositif d'instrumentation pour machine avec memoire a acces non uniforme
FR9706387 1997-05-26

Publications (2)

Publication Number Publication Date
DE69816714D1 DE69816714D1 (de) 2003-09-04
DE69816714T2 true DE69816714T2 (de) 2004-05-27

Family

ID=9507220

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69816714T Expired - Lifetime DE69816714T2 (de) 1997-05-26 1998-05-14 Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen

Country Status (4)

Country Link
US (1) US6195731B1 (de)
EP (1) EP0881574B1 (de)
DE (1) DE69816714T2 (de)
FR (1) FR2763712B1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
EP0908825B1 (de) * 1997-10-10 2002-09-04 Bull S.A. Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
US6360337B1 (en) * 1999-01-27 2002-03-19 Sun Microsystems, Inc. System and method to perform histogrammic counting for performance evaluation
US6792509B2 (en) * 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US6643609B2 (en) * 2001-05-16 2003-11-04 Sharewave, Inc Performance measurement for embedded systems
US6975954B2 (en) * 2003-06-24 2005-12-13 Intel Corporation Functional testing of logic circuits that use high-speed links
US20130117511A1 (en) * 2011-11-08 2013-05-09 Arm Limited Data processing apparatus and method
WO2013112124A1 (en) * 2012-01-23 2013-08-01 Empire Technology Development Llc Managing addressable memory in heterogeneous multicore processors
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US12001329B2 (en) * 2021-01-05 2024-06-04 Dell Products L.P. System and method for storage class memory tiering

Family Cites Families (3)

* 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
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6014690A (en) * 1997-10-24 2000-01-11 Digital Equipment Corporation Employing multiple channels for deadlock avoidance in a cache coherency protocol

Also Published As

Publication number Publication date
FR2763712B1 (fr) 2001-07-13
EP0881574A1 (de) 1998-12-02
US6195731B1 (en) 2001-02-27
EP0881574B1 (de) 2003-07-30
DE69816714D1 (de) 2003-09-04
FR2763712A1 (fr) 1998-11-27

Similar Documents

Publication Publication Date Title
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE3851928T2 (de) Steuerung von asynchron arbeitenden Peripheriegeräten.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3751399T2 (de) Parallelrechner mit verteilten, gemeinsam genutzten Speichern und verteilten, aufgabenaktivierenden Schaltungen.
DE3854481T2 (de) Datenverarbeitungsverfahren in einem dezentralisierten Verarbeitungssystem.
DE3102150C2 (de) Multiprozessor-Datenverarbeitungsanlage
DE69804099T2 (de) Initialisierung von unterteilten datenobjekten
DE3508291C2 (de) Datenverarbeitungssystem
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE69127025T2 (de) Fehlererkennung und -beseitigung in einem Datenverarbeitungssystem
DE69806855T2 (de) Ersetzungszähler für Maschine mit nichtuniformen Speicherzugriffen
DE3439302C2 (de)
DE2455803A1 (de) Mehrprozessor-datenverarbeitungsanlage
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE3685711T2 (de) Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen.
DE69027806T2 (de) Multifunktionskoppler zwischen einer zentralen Verarbeitungseinheit eines Rechners und verschiedenen Peripheriegeräten dieses Rechners
DE69329104T2 (de) Verfahren und Anordnung zum Übertragen und Verarbeiten von Daten
DE3131341A1 (de) "pufferspeicherorganisation"
DE69230656T2 (de) Universelle Koppeleinrichtung zwischen einem Rechnerbus und einer Steuereinheit einer Gruppe von Periphergeräten
DE4423559A1 (de) Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE602004003467T2 (de) Sicherungs-firmware in einem verteilten system
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem

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