DE68921365T2 - Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem. - Google Patents

Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem.

Info

Publication number
DE68921365T2
DE68921365T2 DE68921365T DE68921365T DE68921365T2 DE 68921365 T2 DE68921365 T2 DE 68921365T2 DE 68921365 T DE68921365 T DE 68921365T DE 68921365 T DE68921365 T DE 68921365T DE 68921365 T2 DE68921365 T2 DE 68921365T2
Authority
DE
Germany
Prior art keywords
memory
address
high access
access rate
memory location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE68921365T
Other languages
English (en)
Other versions
DE68921365D1 (de
Inventor
Kevin Patrick Mcauliffe
Vern Alan Norton
Gregory Francis Pfister
Bharat Deep Rathi
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68921365D1 publication Critical patent/DE68921365D1/de
Application granted granted Critical
Publication of DE68921365T2 publication Critical patent/DE68921365T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/80Ingress point selection by the source endpoint, e.g. selection of ISP or POP
    • H04L45/85Selection among different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/80Ingress point selection by the source endpoint, e.g. selection of ISP or POP
    • H04L45/85Selection among different networks
    • H04L45/851Dynamic network selection or re-selection, e.g. after degradation of quality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung befaßt sich mit Prozessorspeichersystemen und insbesondere mit den Speichersystemsteuerungen zum Einsatz in einem großen Mehrprozessorsystem mit einer Vielzahl von Prozessoren und einer Vielzahl von einzelnen Speichermodulen. Noch spezieller befaßt sie sich mit der Steuerung des Datenflusses zwischen einzelnen Prozessoren und Speichermodulen über ein komlexes Verbuntnetzwerk.
  • Neueste Untersuchungen haben gezeigt, daß die Speichersysteme von großen Parallelrechnern möglicherweise an einem ihr Leistungsvermögen lahmlegenden Fehler leiden können. Wenn ein bedeutender Teil der Speicherverweise an eine Speicheradresse adressiert ist, dann kann die Leistungsfähigkeit des gesamten Systems durch die Kapazität dieses einen Speichers begrenzt werden. Wenn der Zugriff zu diesem Speicher über ein mehrstufiges Verbundnetzwerk erfolgt, kann eine als "Blockierung der Baumstruktur" bekannte Erscheinung zu zusätzlicher Konkurrenzsituation führen, was dann für alle Benutzer dieses Systems ziemliche Verzögerungen verursacht.
  • Dieses Problem und damit verbundene Minderungen der Leistungsfähigkeit wurden in einem Artikel "Hot-Spot Contention and Combining in Multistage Interconnection Networks" diskutiert, auf den im nachfolgenden Abschnitt "Stand der Technik" insbesondere Bezug genommen wird.
  • Eine Lösung dieses Problems ist ein "kombinatorisches Netzwerk", wie es im Superrechnerentwurf von NYU (siehe "The NYU Ultracomputer -- Designing a MIMD, Shared Memory Parallel Machine", IEEE Transactions on Computers, Februar 1983, S. 175 bis 189) vorgeschlagen wurde. Das kombinatorische Netzwerk veranlaßt, daß Verweise auf Speicherplätze mit hoher Zugriffsrate unterwegs zum Speicher kombiniert werden, wodurch die Konkurrenzsituation für die Speicherplätze mit hoher Zugriffsrate vermindert wird; ein kombinatorisches Netzwerk ist jedoch eine komplexe und aufwendige Hardwarekonstruktion. Gegenwärtig ist es schwer, wenn nicht undurchführbar, ein kombinatorisches Netzwerk mit ausreichend kleiner Latenzzeit aufzubauen, um alle Speicherverweise in einem großen Mehrprozessorsystem zu unterstützen. Eine alternative Verfahrensweise besteht darin, zwei Netzwerke aufzubauen, eins für niedrige Wartezeit und ein weiteres, das in der Lage ist, stark konkurrierenden Verkehr zu handhaben und diejenigen Nachrichten abzuleiten, die erwartungsgemäß zu Speicherplätzen mit hoher Zugriffsraten im zweiten Netzwerk führen. Es bleibt jedoch das Problem, aus dem allgemeinen Speicherverkehr effektiv die Verweise auf Speicherplätze mit hoher Zugriffsrate auszuwählen. Es ist natürlich möglich, in einem solchen System auf Software oder auf etwaige Vorkennzeichnung von Nachrichtentypen zurückzugreifen, um das Problem der Speicherplätze mit hohen Zugriffsraten dadurch zu vermeiden, daß Verweise gekennzeichnet werden, die zu Speicherplätzen mit hohen Zugriffsraten erfolgen. Damit werden die Speicherplätze mit hohen Zugriffsraten vorher identifiziert. Eine derartige Lösung ist jedoch in einem großen System mit vielen Benutzern zweifelsfrei nicht durchführbar, da die Leistungsfähigkeit des gesamten Systems von der richtigen und effektiven Programmierung aller Benutzer mit einer impliziten Schlußfolgerung dazu abhängt, welche Arten von Verweisen solche auf Speicherplätze mit hoher Zugriffsrate sind.
  • Daher ist, obwohl das Konzept eines Verbundnetzwerkes für ein derartiges Netzwerkbetriebssystem mit einem Mehrprozessor-Mehrfachspeichermodul mit einem Netzwerk mit kleiner Latenzzeit und einem möglichen kombinatorischen Netzwerk mit langer Wartezeit für Speicherplätze mit hoher Zugriffsrate vorgeschlagen wurde, kein wirksames Mittel oder wirksamer Netzwerk mit kleiner Latenz Identifikation der Nachrichten, die Speicherplätze mit hoher Zugriffsrate betreffen, und zur nachfolgenden Steuerung des Verbundnetzwerkmechanismus bekannt.
  • US-Patentschrift 4 752 777 mit dem Titel "Delta Network Control of a Cross-Point Switch" beschreibt im wesentlichen ein Verbundnetzwerksystem mit zwei Netzwerken zum Einsatz in einem Mehrprozessorsystem, das eine Vielzahl von Prozessoren und eine Vielzahl von Speichern umfaßt, die über ein geeignetes Verbundnetzwerk miteinander verbunden sein müssen. Im System entsprechend dieser Anmeldung sind die Entwürfe eines Delta-Netzwerkes im wesentlichen mit einem einfachen Wählnetz mit Kreuzungspunkten kombiniert, und unter gewissen Umständen können Nachrichten alternativ über beide Netzwerke geschickt werden. Es gibt jedoch in diesem Patent keinen Vorschlag für ein Verfahren auf Echtzeitbasis zur kontinuierlichen Überwachung der Speicherplätze mit hoher Zugriffsrate und zur Ableitung der nachfolgenden Speicherverweise über ein geeignetes kombinatorisches Netzwerk zu diesen Speicherplätzen mit hoher Zugriffsrate und zur Weiterleitung der anderen normalen Speicherverweise über ein Netzwerk mit kleiner Latenzzeit.
  • Die folgenden vier Artikel, bei denen einige der hier betroffenen Erfinder mitgewirkt haben, beschreiben allgemein die Merkmale eines experimentellen schnellen Mehrfachprozessorsystems, wie es als RP3 bekannt ist, das einen großen gemeinsam genutzten Speicher hat. Diese vier Artikel wurden alle in den Proceedings of International Conference on Parallel Processing vom 20. bis 23. August 1985 veröffentlicht.
  • 1. Pfister, G.F.; Brantley, W.C.; George, D.A.; Harvey, S.L.; Kleinfelder, W.J.; McAuliffe, K.P.; Melton, E.A.; Norton, V.A. und Weiss, J. "The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture", S. 764 bis 771. Dieser Artikel ist eine Art Anleitung und beschreibt ein allgemeines Mehrprozessorsystem, in dem die vorliegende Erfindung von besonderem Nutzen ist.
  • 2. Norton, V.A. und Pfister, G.E. "A Methodology for Predicting Multiprocessor Performance", S. 772 bis 781. Dieser Artikel ist ebenfalls eine Art Anleitung und beschreibt die Verfahren, mit den die Vorhersage der Leistungsfähigkeit eines gegebenen Mehrfachprozessors versucht wird, und gibt Aufschluß über einige Betrachtungen, die bei der Voraussage der verschiedenen Arten von Speicherblockierungen usw. benutzt werden, die zu ernstlichen Einbußen bei der allgemeinen Leistungsfähigkeit des System führen können. Es ist anzumerken, daß diese allgemeinen Bewertungs- und Überwachungskonzepte dazu beigetragen haben, die Notwendigkeit der vorliegenden Erfindung zu erkennen.
  • 3. McAuliffe, K.P.; Brantley, W.C. und Weiss, J. "The RP3 Processor/Memory Element", S. 782 bis 789. Dieser Artikel beschreibt ein Speicherelement für ein solches System und beschreibt ausführlich einige der Betrachtungen zum Speicherentwurf, welche die allgemeine Leistungsfähigkeit des Speichers beeinflussen, und er ist hinsichtlich der vorliegenden Erfindung dadurch von Bedeutung, daß er die Hintergrundinformation zum Speicherentwurf eines großen Mehrprozessorsystems bildet.
  • 4. Pfister, G.E. und Norton, V.A. "Hot-Spot Contention and Combining in Multistage Interconnection Networks", S. 790 bis 797. Dieser Artikel diskutiert allgemein die Probleme und das Verbundnetzwerk bei einem großen Mehrprozessorsystem wie dem RP3 und schlägt den Einsatz von zwei getrennten Verbundnetzwerken vor, über die Speicherverweise wahlweise geschickt werden können, damit das Problem der Speicherplätze mit hoher Zugriffsrate wenigstens vermindert wird. Wie schon vorstehend festgestellt, schlägt dieser Artikel, obwohl er das grundlegende Konzept von zwei Netzwerken einführt, kein spezielles Verfahren oder keinen speziellen Mechanismus vor oder beschreibt solche, mit denen beim Einsatz in der Netzwerksteuerung Speicherplätze mit hoher Zugriffsrate erfaßt oder gekennzeichnet werden können. In den bibliographischen Angaben zu diesem Artikel sind eine Anzahl von zusätzlichen Quellenangaben enthalten, aber keine davon wird für die vorliegende Erfindung als so bedeutsam angesehen wie der Artikel selbst.
  • 5. US-Patentschrift 3 956 737 von R.J. Ball mit dem Titel "Memory System Parallel Access to Multi-word-Blocks" vom 11. Mai 1976 war die am meisten zutreffende Quelle, die beim Durchsuchen des Standes der Technik gefunden wurde; es wird jedoch angenommen, daß sie nur die allgemeine Grundlage bildet, da sie sich weder auf ein Mehrprozessorsystem noch auf ein Verfahren zum Netzwerkbetrieb mit einer Vielzahl von Prozessoren mit ausgewählten Speichermodulen oder die Auffindung und Steuerung von Speicherplätzen mit hoher Zugriffsrate bezieht.
  • 6. US-Patente 4 484 262 und 4 707 781 von Sullivan et al. mit dem Titel "Shared Memory Computer Method and Apparatus" und einem gemeinsamen Anmeldungsdatum vom 9. Januar 1979 beschreiben eine Mehrprozessorspeicherarchitektur, die eine Vielzahl von Prozessoren und eine Vielzahl von getrennten Speichereinheiten umfaßt, die durch ein Vermittlungselement oder ein Verbundnetzwerk miteinander verbunden sind. Es wird ein Verfahren und eine Anordnung für die Einreihung von Anforderungen an das gleiche Speichermodul in eine Warteschlange beschrieben, wie sie angenommenermaßen im Falle von Zugriffen auf Speicherplätze mit hoher Zugriffsrate vorkommen könnten; es wird jedoch weder ein System mit zwei Netzwerken beschrieben noch vorgeschlagen, noch ist irgendein Mittel zum Auffinden von Speicherplätzen mit hoher Zugriffsrate und zur Verwendung einer solchen Information zur Steuerung des Verkehrs in den beiden Netzwerken vorhanden.
  • 7. Das Folgende ist eine Liste von Quellenangaben, die mit Hilfe der vorstehend erwähnten Suche nach dem Stand der Technik ermittelt wurden, die allgemein die Grundlagen bilden, aber nicht ausreichend relevant erschienen, eine spezielle Diskussion zu rechtfertigen.
  • 4 489 378 (IBM)
  • 4 458 316 (IBM)
  • 4 425 615
  • 4 186 438 (IBM)
  • 4 535 428 (IBM)
  • 3 967 247
  • 4 466 061
  • 4 445 171
  • 4 187 538
  • 3 840 859
  • 4 156 290
  • 3 647 348
  • 3 623 001
  • Es ist ein primärer Gegenstand der vorliegenden Erfindung, eine Verwaltungsanordnung für ein Verbundnetzwerk bei einem großen Mehrprozessorsystem mit gemeinsam genutztem Speicher zur Verfügung zu stellen, das mindestens ein Übertragungsnetzwerk mit kleiner Latenzzeit und mindestens ein weiteres Verbundnetzwerk umfaßt, das ein Mittel zur Ableitung von Speicherzugriffen zu dem einen oder dem anderen der beiden Netzwerke, das auf Kriterien der Speicheradressierung beruht, und ein Mittel zum Ableiten solcher Speicherzugriffe umfaßt, das Speicherverweise auf Speicherplätze mit hoher Zugriffsrate als das Ableitkriterium benutzt.
  • Es ist ein weiterer Gegenstand der Erfindung, eine derartige Struktur eines Verbundnetzwerkes zur Verfügung zu stellen, die weiterhin Mittel zum dynamischen Auffinden und Entfernen von Speicherplätzen mit hohen Zugriffsraten als systemsteuernde Kriterien und die Benutzung der Speicherplätze mit hoher Zugriffsrate bei ihrer Auffindung umfaßt, um diese Nachrichtenableitung zu bewirken.
  • Die Gegenstände der vorliegenden Erfindung werden durch die Merkmale der Ansprüche 1 und 12 vervollständigt. Weitere vorteilhafte Ausführungsformen werden in den Unteransprüchen beschrieben.
  • Allgemein wird eine verbesserte Steuerung eines Verbundnetzwerkes zum Einsatz in einem großen Mehrprozessorsystem mit gemeinsam genutztem Speicher beschrieben, das eine Vielzahl von Prozessoren und eine Vielzahl von getrennt adressierbaren Speichermodulen umfaßt, wobei auf jeden von ihnen von einem beliebigen Prozessor über ein Speicherverbundnetzwerk zugegriffen werden kann. Das System umfaßt zwei parallele Speicherverbundnetzwerke, von denen jedes in der Lage ist, einen beliebigen Prozessor mit einem beliebigen Speichermodul zu verbinden, wobei die Netzwerke umfassen: ein erstes Netzwerk mit kleiner Latenzzeit, über das die Speicheranforderungen mit einer höheren Wahrscheinlichkeit der Speicherkonkurrenz geschickt werden; und ein zweites Netzwerk, über das die Speicheranforderungen mit einer höheren Wahrscheinlichkeit der Speicherkonkurrenz geschickt werden.
  • Mit jedem Speichermodul sind Mittel zum Auffinden von Speicherplätzen mit hoher Zugriffsrate verbunden, die erkennen, wenn eine spezielle Adresse in diesem Modul zu einem Speicherplatz mit hoher Zugriffsrate wird. Mit jedem Prozessor und dem Speichernetzwerk sind Ableitmittel verbunden, um Speicheranforderungen wahlweise zu dem ersten oder dem zweiten Speichernetzwerk zu schicken. Es sind Nachrichtenmittel für Speicherplätze mit hoher Zugriffsrate vorgesehen, damit alle Auffindungsmittel mit allen Ableitmitteln verbunden werden. In jedem Ableitmittel sind Speichermittel vorgesehen, damit alle von einem beliebigen Auffindungsmittel aufgefundenen Speicherplätze mit hoher Zugriffsrate gespeichert werden. In jedem Ableitmittel sind Mittel im Einsatz, die bestimmen, ob ein aktueller Speicherzugriff ein innerhalb des Speichersystems aufgelisteter Speicherplatz mit hoher Zugriffsrate ist, und die, wenn dies der Fall ist, veranlassen, daß der Speicherzugriff über das zweite Verbundnetzwerk an das Speichersystem übertragen wird. Jedes Auffindungsmittel umfaßt Mittel zur Bestimmung, ob eine spezielle Adresse eine ausreichende Anzahl von Malen innerhalb eines gegebenen Zeitrahmens als ein Speicherplatz mit hoher Zugriffsrate wahrgenommen worden ist und, falls dies der Fall ist, zur Benachrichtigung aller mit jedem Prozessor verbundenen Ableitmittel über diese Tatsache, wobei darin enthalten ist, daß die neue Speicherplatzadresse mit hoher Zugriffsrate darin gespeichert werden soll, damit nachfolgend von jedem Ableitmittel davon Gebrauch gemacht wird.
  • Kurze Beschreibung der Zeichnungen
  • FIG. 1 ist ein Organigramm eines großen Mehrprozessorsystems, eines großen gemeinsam genutzten Hauptspeichers und eines Verbundnetzwerks dafür, wie es dem Stand der Technik entspricht.
  • FIG.2 umfaßt ein der FIG. 1 gleichendes Organigramm eines Mehrprozessor-Speicher-Verbundsystems, das zwei getrennte Verbundnetzwerke verkörpert, die unterschiedliche Übertragungskenndaten haben, die für die Verwendung mit der vorliegenden Erfindung geeignet sind.
  • FIG. 3 umfaßt ein höheres funktionelles Blockdiagramm, das die primären funktionellen Glieder der vorliegenden Erfindung in Verbindung mit einem typischen Prozessor und Speichermodul eines Mehrprozessorsystems darstellt.
  • FIG. 4A umfaßt ein schematisches Funktionsdiagramm eines Auffindungselementes, das mit jedem Speichermodul verbunden sein könnte, wie es in FIG. 3 dargestellt ist. Es erläutert die grundlegenden funktionellen Bauelemente eines der Auffindungselemente der FIG. 3.
  • FIG. 4B ist ein Diagramm, das ein geeignetes Format für den Speicher der Speicherplätze mit hoher Zugriffsrate erläutert, wie es in FIG. 4A dargestellt ist.
  • FIG. 4C umfaßt ein Flußdiagramm eines Speicherzugriffsvorganges, das die Vorgänge darstellt, die in dem in FIG. 4A dargestellten Auffindungselement ablaufen.
  • FIG. 4D umfaßt ein Flußdiagramm eines unabhängigen Vorgangs zum Ablauf der Auffindung eines Speicherplatzes mit hoher Zugriffsrate innerhalb jedes Auffindungselementes.
  • FIG. 4E umfaßt ein Flußdiagramm eines Abschlußvorganges, wie er in allen Auffindungselementen der FIG. 4A immer dann betrieben werden kann, wenn von einem der Ableitelemente eine "Abschlußnachricht" empfangen wird, die bestätigt, daß ein spezieller Speicherplatz mit hoher Zugriffsrate aus allen Vorgriffspuffern für Speicherplätze mit hoher Zugriffsrate innerhalb der Ableitelemente entfernt worden ist.
  • FIG. 5A umfaßt eine graphische Erläuterung des im vorliegenden System benutzten Benachrichtigungsbusses, der von den dargestellten Netzwerken getrennt ist und der alle Auffindungselemente mit allen Ableitelementen verbindet.
  • FIG. 5B ist ein Flußdiagramm, welches das Protokoll des Benachrichtigungsbusses erläutert, wenn eine Identifikation und Entfernung von Speicherplätzen mit hoher Zugriffsrate innerhalb des Systems erforderlich ist.
  • FIG. 6A ist ein Funktionsschema eines der Ableitelemente, wie sie in FIG. 3 dargestellt sind. Es erläutert die grundlegenden Funktionsbauteile des Ableitelementes ähnlich der FIG. 4A.
  • FIG. 6B erläutert das Format für die Vorgriffspuffer für die Speicherplätze mit hoher Zugriffsrate der FIG. 6A.
  • FIG. 6C umfaßt ein Flußdiagramm des Ablaufs im Ableitelement, wie er vorkommt, wenn ein neuer Speicherplatz mit hoher Zugriffsrate aufgefunden wird und das Ableitelement benachrichtigt wird.
  • FIG. 6D umfaßt ein Flußdiagramm des innerhalb des Ableitelementes immer dann ablaufenden Vorgangs, wenn ein Standardspeicherzugriff vom zugehörigen Prozessor empfangen wird und eine Entscheidung herbeigeführt werden muß, welches Verbundnetzwerk für die Zugriffsanforderung benutzt werden soll.
  • FIG. 6E umfaßt ein aus einem Schritt bestehendes Flußdiagramm des Vorganges, der innerhalb des Ableitelementes erfolgt, wenn ein Speicherverweis abgeschlossen wird.
  • Die hier erläuterte Erfindung umfaßt eine Verwaltungsstruktur eines Verbundnetzwerkes zur Anwendung in einem großen Mehrprozessorsystem mit gemeinsam genutztem Speicher, das eine Hardware-Technologie zum Auffinden von Speicherplätzen mit hoher Zugriffsrate innerhalb des Netzwerkverkehrs und zum Ableiten solcher Speicherverweise über ein kombinatorisches Netzwerk enthält. Es versteht sich ausdrücklich, daß der Begriff "Speicherplatz mit hoher Zugriffsrate" sich auf einen wiederholten Verweis auf den gleichen Speicherplatz innerhalb eines gegebenen Speichermoduls im Rahmen einer vorgegebenen Zeit bezieht. Wie leicht verständlich ist, kann die Bezeichnung Speicherplatz mit hoher Zugriffsrate von den Entwerfern des Systems willentlich verändert werden, um den verschiedenen Systemanwendungen zu genügen. Mit anderen Worten kann die Gesamtanzahl von Verweisen auf den gleichen Speicher genauso wie der Zeitrahmen verändert werden. Diese letzteren Merkmale haben jedoch keine Beziehung zu der grundlegenden Struktur, die diese Steuerungsebene ermöglicht.
  • Es gibt zahlreiche Vorteile dieser Technologie zur Verwaltung von Speicherverkehr. Sie kann leicht so entworfen werden, daß sie automatisch wirkt, so daß Fehler oder Nachlässigkeiten des Programmierers nicht das ganze System in seiner Leistungsfähigkeit mindern können (ausgenommen vielleicht die Leistungsfähigkeit für den Benutzer, der den Leerlauf verursacht hat).
  • Wenn von einem Netzwerk zu einem anderen Verkehr abgeleitet wird, dann gibt es aufgrund einer Veränderung in der Zugriffsreihenfolge zu Veränderlichen, auf die vom gleichen Prozessor zugegriffen wird, einen potentiellen Verlust an Folgerichtigkeit. Beispielsweise könnten ein an die gleiche Adresse gerichtetes Laden und Speichern nicht in der Reihenfolge ihres Auftretens ablaufen, wenn sie über unterschiedliche Netzwerke laufen.
  • Die Aufrechterhaltung der sequentiellen Folgerichtigkeit in der Software ist unpraktisch, und sie kann zu Kompiliererunterstützung und/oder wesentlichem Aufwand bei der Ausführungszeit führen. Eine solche Folgerichtigkeit ist, wie von Fachleuten eingeschätzt, ein absolutes Kriterium für die Aufrechterhaltung einer korrekten Ausführung von Programmen innerhalb des Systems. Die vorliegende Erfindung bietet eine Hardwareverfahrensweise zur Sicherstellung der sequentiellen Folgerichtigkeit, obwohl der Netzwerkverkehr zum gleichen Speicher zeitweise sogar über unterschiedliche Netzwerke (z.B. kombinatorisches oder nicht kombinatorisches) fließt. Die von einem beliebigen einzelnen Prozessor an eine beliebige einzelne Speicheradresse herausgegebenen Speicherverweise werden ungeachtet des Netzwerkes, über das sie laufen, in der ausgegebenen Reihenfolge auftreten.
  • Da nur die Prozessorenverweise auf Speicherplätze mit hoher Zugriffsrate über das Netzwerk mit starker Konkurrenz abgeleitet werden, kann ein solches Netzwerk mit minimalen Kosten aufgebaut werden, indem es nur dafür ausreicht, die für Speicherplätze mit hoher Zugriffsrate projektierte Belastung zu handhaben, wie sie im wahrscheinlich ungünstigsten Fall auftreten kann. Wenn beispielsweise der gesamte Synchronisationsverkehr über ein kombinatorisches Netzwerk abgeleitet würde, dann würde ein Großteil dieses Verkehrs keine Speicherplätze mit hoher Zugriffsrate betreffen, noch würde er aufgrund der Tatsache unter einer erhöhten Wartezeit leiden, daß ein kombinatorisches Netzwerk viel komplexer als ein nicht kombinatorisches Netzwerk ist und demgemäß aufgrund der Eigenschaften eines derartigen kombinatorischen Netzwerkes den Durchgang durch wesentlich mehr Stufen logischer Verarbeitung, Prüfung und Vergleiche erfordert.
  • Die Hardware, die zur Beeinflussung der Steuerungsstruktur des Verbundes der vorliegenden Erfindung erforderlich ist, wird als klein im Vergleich mit den Kosten für den Aufbau eines kombinatorischen Netzwerkes angesehen, das eine ausreichende Bandbreite hat, um in einem derart großen System, in dem alle Speicherzugriffe ungeachtet ihres potentiellen Status als Speicherplatz mit hoher Zugriffsrate über dieses Netzwerk gehen müßten, eine angemessene Leistungsfähigkeit des Speichers zu bieten. Weiterhin können die für die vorliegende Erfindung erforderlichen Hardware und Verfahrensweisen mit solchen Funktionen überlappt werden, wie Cache-Such- und Übersetzungsfunktionen; und es wird angenommen, daß sie nicht wesentlich zur Gesamtzeit für einen Speicherverweis bei der Benutzung eines einzelnen, sehr großen Netzwerkes mit kleiner Latenzzeit beitragen. Gleichzeitig sollten die Kosten für ein solches Netzwerk nur bei einem Bruchteil der Kosten für ein kombinatorisches Netzwerk liegen, wie schon früher festgestellt.
  • Als zusätzlichen Nutzen der hier beschriebenen Verwaltungsstruktur eines Verbundnetzwerks können zur Laufzeit Informationen oder Daten zur Verfügung gestellt werden, die Speicherplätze mit hoher Zugriffsrate im Speicherverweisverkehr anzeigen. Es wird daher möglich sein, diese Information für die Nutzer dieses Systems aufzuzeichnen, um Softwarefehler zu korrigieren, falls der Speicherplatz mit hoher Zugriffsrate für die Anwendung nicht erforderlich ist. Damit ist es möglich, daß diese Information dazu benutzt werden könnte, um die Datenorganisationen usw. zu verändern, so daß die Daten besser über das überlappte Speichersystem verteilt werden könnten, um solche Speicherplätze mit hoher Zugriffsrate zu vermeiden oder zumindest zu minimieren.
  • Die vorliegende Struktur soll in einem System mit vielen (z.B. zehn oder mehr) unabhängigen Verarbeitungseinheiten benutzt werden. Es ist notwendig, daß es zwei Nachrichtennetzwerke gibt, eins ist in der Lage, stark konkurrierenden Verkehr zu handhaben, wie etwa das kombinatorische Netzwerk, das vom New York University Ultracomputer Project vorgeschlagen und im einzelnen in einem Artikel von A. Gottlieb, R. Grishman, C.P. Kruskal, K.P. McAuliffe, L. Rudolph und M. Snir, "The NYU Ultracomputer -- Designing a MIMD Shared Memory Parallel Machine", IEEE Transactions on Computers vom Februar 1983, S. 175 bis 189 beschrieben wurde. Das andere Netzwerk sollte eine ausreichend kurze Wartezeit haben, um alle Verweise, die keine Speicherplätze mit hoher Zugriffsrate betreffen, effektiv an den Speicher zu übertragen. Beide Netzwerke sind intern mit Hardware ausgerüstet, welche die sequentielle Folgerichtigkeit in dem Sinne aufrechterhält, daß die Reihenfolge von zwei Nachrichten für die gleiche Bestimmungsadresse an einem beliebigen Eingang bis zum Ausgang des Netzwerkes beibehalten wird. Dies bedeutet, daß ungeachtet ihrer beliebigen Bestimmung bei Nachrichten keine Sprünge zugelassen werden. Um solche Sprünge zu vermeiden, wird in der vorliegenden Erfindung der Einsatz einer "Schutz"-Funktion, die später beschrieben werden soll, und von Gesamtspeicherzugriffen im Speicher selbst benutzt, die sicherstellen sollen, daß ein Zugriff abgeschlossen ist, ehe ein weiterer beginnt.
  • Vom Speichersystem wird angenommen, daß es einen physischen Adressenraum hat, so daß eine Adresse ein Speichermodul und auch die Stelle innerhalb des Moduls des speziellen Wortes oder adressierbaren Elementes bestimmt. Es ist wünschenswert, daß noch gewisse andere Merkmale vorhanden sind, welche die Wahrscheinlichkeit herabsetzen, daß eine Speicherblockierung durch Faktoren außerhalb des Umfangs dieser Erfindung erfolgt. Diese würden umfassen:
  • 1. Speicherüberlappung. Dies sollte so durchgeführt werden, daß die Speicherkonflikte auf ein Minimum herabgesetzt werden, zu denen es kommen könnte, wenn viele Prozessoren auf verschiedene Adressen in einer Seite zuzugreifen versuchen.
  • 2. Adressenberechnung durch ein Hash-Verfahren oder durch Versatz. Dies sollte durchgeführt werden, um die Speicherkonflikte auf ein Minimum herabzusetzen, zu denen es durch schrittweise Zugangskonflikte zum Speicher kommen könnte. Ein geeignetes Verfahren zur Durchführung eines solchen Hash-Verfahrens ist beispielsweise in EP-A 313 788 von K.P. McAuliffe et al., mit dem Titel "An Aperiodic Mapping Method to Enhance Power of Two Stride Access to Interleaved Devices", nachzulesen.
  • 3. Zwischenspeichern von Festwertdaten. Dies verhindert, daß gemeinsam genutzte Codes und Konstanten zu Speicherplätzen mit hoher Zugriffsrate führen, da höchstens ein Zugriff pro Prozessor erfolgt, zumindest innerhalb eines unmittelbaren Zeitbereiches. Natürlich wird die Verwaltungsstruktur der vorliegenden Erfindung verhindern, daß solche Daten, wenn sie als nicht zwischenspeicherfähig gekennzeichnet sind, einem Speicherplatz mit hoher Zugriffsrate verursachen.
  • Alle drei obigen Merkmale sind im Aufbau der großen Mehrprozessorkonfiguration mit gemeinsam genutztem Speicher enthalten, die als RP3 bekannt ist und auf die schon früher Bezug genommen wurde.
  • Die vorliegende Verwaltungsstruktur des Verbundnetzwerkes wird nun in allgemeinen funktionellen Gliedern erläutert, gefolgt von einer ausführlichen Beschreibung einer bevorzugten Ausführungsform. Die für den grundlegenden Aufbau erforderliche Hardware kann wie folgt zusammengefaßt werden.
  • Es werden Mittel zur Verfügung gestellt, um Speicherplätze mit hoher Zugriffsrate zu bestimmen, diese werden hier als Auffindungselemente von Speicherplätzen mit hoher Zugriffsrate bezeichnet. Diese Einrichtung oder dieses Element überwacht alle Speicherverweise an einem speziellen Speichermodul, wobei gilt, daß jedes Speichermodul mit einem solchen Auffindungselement versehen ist. Es pflegt Zähler, welche die zuletzt mit Zugriffen belegten physischen Adressen im Speicher tabellarisch anordnen. Es erfordert einen assoziativen Speicher, wie er etwa üblicherweise in Cache-Verzeichnissen benutzt wird (mit oder ohne Blockzuordnung). Die Zugriffssummen werden vom Auffindungselement in Tabellen über ein Zeitfenster von Speicherzyklen erfaßt, z.B. 1.000 bis 10 000 Zyklen.
  • Dies könnte jedoch nach Spezifizierung des Systementwicklers variiert werden. Wenn die Verweise auf eine beliebige Adresse ausreichend häufig sind, so daß sich ein Speicherplatz mit hoher Zugriffsrate bildet, dann aktiviert das Auffindungselement für Speicherplätze mit hoher Zugriffsrate den Nachrichtenbus für Speicherplätze mit hoher Zugriffsrate, um alle Ableitelemente zum benachrichtigen, wie nachstehend beschrieben wird.
  • Es versteht sich, wie oben festgestellt, daß die spezielle Schwelle, bei der die Existenz eines Speicherplatzes mit hoher Zugriffsrate angenommen wird, variiert werden kann, und daß sie für ein beliebiges gegebenes System experimentell bestimmt werden könnte. Die spezielle Schwelle hat jedoch keine Beschränkung auf die hier beschriebene Gesamtstruktur, da sie im wesentlichen eine dem System zur Verfügung gestellte Zählung ist, gegenüber der die Prüfung auf Speicherplatz mit hoher Zugriffsrate mit periodischer Wiederkehr vorgenommen wird.
  • Nachdem das Auffindungselement die Steuerung des Nachrichtenbusses für Speicherplätze mit hoher Zugriffsrate erlangt hat, verbreitet es die Adresse an alle mit jedem Prozessor verbundenen Ableitelemente. Diese Elemente enthalten ein darin untergebrachtes Speichermittel, das als Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate bezeichnet wird, im optimalen Fall wäre dies ein assoziativer Speicher. Eine Speicherstelle, die schon als Speicherplatz mit hoher Zugriffsrate bezeichnet wurde, wird wiederholt als solcher bezeichnet werden (ein solcher bleiben), bis er aufhört, stark mit Zugriffen belegt zu sein. Die Schwelle für die wiederholte Bezeichnung eines vorher bezeichneten Speicherplatzes mit hoher Zugriffsrate kann niedriger als die Schwelle für die anfängliche Bestimmung von Speicherplätzen mit hoher Zugriffsrate sein. Dies ist deshalb der Fall, weil, wenn beispielsweise der Verkehr in ein kombinatorisches Netzwerk abgeleitet worden ist, aufgrund der Kombination solcher Nachrichten im Netzwerk weniger Speicherzugriffe auf Speicherplätze mit hoher Zugriffsrate die Folge sind.
  • Die Struktur für die wiederholte Bezeichnung einer Schwelle für einen speziellen Speicherplatz mit hoher Zugriffsrate, der einmal bezeichnet worden ist, wird jedoch in der vorliegenden Ausführungsform nicht im speziellen beschrieben, dies wäre für den Systementwickler eine willkürliche Entwurfsauswahl. Die Funktion könnte jedoch leicht durch den Einsatz einer zweistufigen Schwelle wahrgenommen werden, wobei ein zweiter niedrigerer Schwellenwert für vorher bestimmte Speicherplätze mit hoher Zugriffsrate benutzt würde, dies könnte realisiert werden, indem beispielsweise ein zusätzliches Bit in dem mit jedem Auffindungselement verbundenen Speicher für Speicherplätze mit hoher Zugriffsrate zur Verfügung steht.
  • Das nächste größere Funktionsglied des Systems ist der Benachrichtigungsbus oder das Benachrichtigungsmittel für Speicherplätze mit hoher Zugriffsrate. Dieser Bus bildet für die verschiedenen Auffindungsmittel für Speicherplätze mit hoher Zugriffsrate ein Mittel, um mit allen Ableitmitteln und dadurch mit den darin angeordneten Vorgriffspuffern für Speicherplätze mit hoher Zugriffsrate in Verbindung zu treten. Alle Auffindungsmittel für Speicherplätze mit hoher Zugriffsrate können auf dem Bus senden, und alle Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate innerhalb jedes Ableitelementes werden durch die über den Bus geschickten Nachrichten gesteuert. Der Zugriff zum Bus wird klar geregelt, beispielsweise über eine zyklische Priorität, so daß jedes Auffindungselement für einen Speicherplatz mit hoher Zugriffsräte periodisch die Steuerung seines eigenen Zeitabschnitts auf dem Bus übernehmen kann. Die Bandbreite des Busses sollte äusreichend sein, um alle derartigen Nachrichten handhaben zu können. Es wird erwartet, daß die Bandbreite einer solchen seriellen Nachrichtenverbindung für ein System angemessen ist, das Tausende von unabhängigen Speichermodulen umfaßt, falls der Buszyklus mit der Zyklus zeit des Speichers vergleichbar ist. Der Bus sollte breit genug sein, um eine physische Adresse plus einer beliebigen Information zu übertragen, die zur Realisierung der Steuerung und der Fehlerfindung jeweils erforderlich sind. Es können andere Kommunikationsmittel vom Auffindungselement der Speicherplätze mit hoher Zugriffsrate zu den Anleitelementen benutzt werden; es ist nicht notwendig, daß alle Nachrichten gleichzeitig an den Ableitelementen ankommen. Beispielsweise kann für diese Kommunikation ein Token-Passing-Ring angemessen sein. Es ist klar, daß dies konstruktiv auswählbar ist und durch die Geschwindigkeit des restlichen Systems ebenso wie durch Betrachtungen bestimmt wird, wieviel jemand in dieses spezielle Stück Hardware investieren will.
  • Das letzte primäre Funktionselement des vorliegenden Systems ist das Ableitelement, von denen jedes einen Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate enthält. Die Ableitelemente sind zwischen den verschiedenen Prozessoren des Systems und den Eingangskanälen des Netzwerkes angeordnet. Sie erfordern den Zugriff zu übersetzten (physischen) Adressen des Systems und müssen dementsprechend nach jeder beliebigen Speicherabbildungsfunktion angeordnet sein. Die Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate pflegen Suchtabellen aller physischen Adressen, die aktuell im System als Speicherplätze mit hoher Zugriffsrate bezeichnet werden. Alle Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate pflegen genau die gleichen Listen und arbeiten (gegenüber dem Hinzufügen von Speicherplätzen mit hoher Zugriffsrate) vollständig unter der Steuerung des Benachrichtigungsbusses der Speicherplätze mit hoher Zugriffsrate. Immer wenn eine Adresse eines Speicherplatzes mit hoher Zugriffsrate bezeichnet wird, dann wird sie mit dem aktuellen Pufferinhalt verglichen. Wenn die Adresse vorher bezeichnet war, dann wird eine Zeitmarke aktualisiert, die die letzte Bezeichnung des Status als Speicherplatz mit hoher Zugriffsrate anzeigt. Wie nachfolgend erläutert, würde diese Zeitmarke im Ersetzungsalgorithmus für den Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate benutzt. Wenn die Adresse vorher nicht bezeichnet war, dann wird die Eintragung mit der ältesten Zeitmarke gelöscht und durch die aktuelle Adresse ersetzt.
  • Die vorhergehende Beschreibung nimmt an, daß der Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate einen vollständig assoziativen Speicher umfaßt. Wenn stattdessen eine assoziative Zwei-Wege- oder Vier-Wege-Suche benutzt wurde, dann würde die älteste Eintragung innerhalb der gleichen Kongruenzklasse durch die neue Adresse des Speicherplatzes mit hoher Zugriffsrate ersetzt. Da in jedem Vorgriffspuffer für Speicherplätze mit hoher Zugriffsrate der gleiche Ersetzungsalgorithmus benutzt wird, pflegen sie alle die gleiche Liste der rückständigen Adressen. Zur gleichen Zeit, wenn der Vorgriffspuffer aktualisiert wird, wird am Prozessorknoten ein "Schutz"-Vorgang begonnen, der dazu führt, daß weitere Speicherverweise an diesem Knoten so lange verzögert werden, bis alle rückständigen Speicheranforderungen abgearbeitet worden sind. Es versteht sich, daß bei einem System, das so aufgebaut ist, daß es an jedem Prozessorknoten einen Cache-Speicher gibt, es nur notwendig ist, den Schutz für nicht zwischenspeicherfähige Verweise anzuwenden. Der Schutzvorgang ist nur erforderlich, wenn in den Vorgriffspuffer Adressen eingefügt oder aus ihm gelöscht werden; es ist kein Schutz erforderlich, wenn die Adresse des Speicherplatzes mit hoher Zugriffsrate vorher bezeichnet war; und für nachfolgende Verweise auf einen Speicherplatz mit hoher Zugriffsrate ist kein Schutzvorgang erforderlich. In vielen Entwürfen ist eine Schutzfunktion nicht notwendig, weil zu einer beliebigen Zeit nur ein Verweis anstehen "darf".
  • Die Funktion des Vorgriffspuffers der Speicherplätze mit hoher Zugriffsrate innerhalb jedes Ableitelementes besteht darin, jede übersetzte Adresse, wie sie von der Speicherabbildungseinheit herausgegeben wird, mit den Adressen im Puffer zu vergleichen. Alle passenden Adressen werden auf das Netzwerk mit starker Konkurrenz abgeleitet. Andere Verweise dürfen weiter zum Netzwerk mit kleiner Latenzzeit. Die Suche kann parallel mit der Aktualisierung der Zeitmarke fortschreiten; während der Zeit, in der eine Eintragung im Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate ersetzt wird, müssen jedoch die normalen Suchfunktionen des Puffers unterbrochen werden.
  • Es gibt eine Anzahl von mit dem vorliegenden System verbundenen Variablen, die nach Betrachtung des Systementwurfs und Versuchen mit verschiedenen Einstellungen festgelegt werden müssen. Unrichtige Einstellungen könnten zu außerordentlicher Buskonkurrenz oder zu unwirksamer Auswahl von Speicherplätzen mit hoher Zugriffsrate führen. Dazu gehören:
  • 1. Ein vom Auffindungselement für Speicherplätze mit hoher Zugriffsrate benutztes Zeitfenster, um Speicherplätze mit hoher Zugriffsrate aufzufinden.
  • 2. Die Schwellen oder die Anzahl der für die Bezeichnung eines Speicherplatzes mit hoher Zugriffsrate erforderliche Anzahl von Verweisen.
  • 3. Die Größe, beispielsweise die Anzahl der Eintragungen in den Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate und auch in den Adressenpuffer des Auffindungselementes für Speicherplätze mit hoher Zugriffsrate.
  • Nachdem die allgemeinen Kenndaten der vorliegenden Verwaltungsstruktur des Verbundnetzwerkes und seiner funktionellen Hauptbauteile beschrieben worden sind, folgt nun eine ausführliche Beschreibung der bevorzugten Ausführungsform der Erfindung, wie sie in den zugehörigen Zeichnungen erläutert ist.
  • FIG. 1 erläutert den Gesamtaufbau eines Mehrprozessorsystems nach Stand der Technik, das eine Vielzahl von Prozessoren P&sub1; bis Pn umfaßt, die wahlweise über ein geeignetes Verbundnetzwerk mit einer Vielzahl von Speichereinheiten M&sub1; bis Mq verbunden werden können. Wie vorher festgestellt, könnte dieses Verbundnetzwerk entweder ein einfaches Wählnetz mit Kreuzungspunkten oder ein komplexes kombinatorisches Netzwerk sein, wobei beide Stand der Technik sind. Die Anzahl der Prozessoren und die Anzahl der getrennt adressierbaren Speichermodule kann gleich sein oder auch nicht, z.B. n ≠q. Wie offenkundig ist, sind die Unzulänglichkeiten eines solchen Verbundnetzwerkes in der Komplexität oder Kompliziertheit des Netzwerkes selbst begründet.
  • FIG. 2 ist eine der FIG. 1 ähnliche Zeichnung, sie zeigt aber zwei Verbundnetzwerke für die wahlweise Verbindung der einzelnen Prozessoren (P&sub1; bis Pn) mit den einzelnen Speichermodulen (M&sub1; bis Mq). Dies ist die Art von Verbundnetzwerkorganisation, wie sie in dem früher erwähnten Artikel "Hot Spot Contention and Combining in Multistage Interconnection Networks" erläutert wird, wobei das Netzwerk 1 beispielsweise ein Netzwerk mit kleiner Latenzzeit und Netzwerk 2 beispielsweise ein wesentlich komplizierteres kombinatorisches Netzwerk wären.
  • Das Blockdiagramm der FIG. 2 zeigt nicht speziell einen Mechanismus zur Herbeiführung einer Entscheidung darüber, ob ein einzelner Speicherzugriff über Netzwerk 1 oder Netzwerk 2 erfolgen würde. Schätzungsweise gilt dieses allgemeine Netzwerkdiagramm genauso gut auf die erwähnten Netzwerke nach Stand der Technik wie auf die vorliegende Erfindung. Das wesentliche Merkmal der vorliegenden Erfindung besteht natürlich darin, daß sie eine spezielle Struktur zur Verfügung stellt, mit der die Entscheidungsfunktion zur Ableitung einer Nachricht entweder über Netzwerk 1 oder über Netzwerk 2 auf dynamischer Basis herbeigeführt wird und nicht auf irgendeiner vorgegebenen festen statischen Basis (wie etwa einem beispielsweise im Kompilierer betriebenen Softwareverfahren), bei der die speziellen Speicherzugriffe auf irgendeiner vorgegebenen Grundlage dahingehend eingeordnet werden, ob sie über Netzwerk 1 oder Netzwerk 2 laufen. Die vorliegende Erfindung bietet eine dynamische Verwaltungsstruktur für Verbundnetzwerke, welche die Entscheidung über die Lenkung im Netzwerk auf der Basis dynamischer Faktoren eines speziellen, im System ablaufenden Problems herbeiführt. Es würde ebenfalls relativ einfach sein, eine Anzahl der Vermittlungsschwellen zu verändern, wie bereits oben erwähnt, indem nur der Zeitrahmen für einen Auffindungszyklus von Speicherplätzen mit hoher Zugriffsrate, die Verweisschwelle für Speicherplätze mit hoher Zugriffsrate oder die aktuelle Größe des Vorgriffspuffers der Speicherplätze mit hoher Zugriffsrate und des Adressenpuffers der Auffindungselemente für Speicherplätze mit hoher Zugriffsrate verändert werden.
  • Die Gesamtorganisation der vorliegenden Verwaltungsstruktur von Verbundnetzwerken wird ganz klar in FIG. 3 dargestellt. In dieser Figur werden die drei grundlegenden funktionellen Einheiten der vorliegenden Struktur klar gezeigt. Diese umfassen das Ableitelement 10, das Auffindungselement 12 und das Benachrichtigungsmittel oder den -bus 14. Es sind ebenfalls die beiden Netzwerke 16 und 18 schematisch dargestellt, die das Netzwerk mit kleiner Latenzzeit beziehungsweise das kombinatorische Netzwerk bilden; wie auch leicht festzustellen ist, könnten diese mit entsprechenden Veränderungen in den Ableitsteuerungen leicht umgekehrt werden. Es ist ebenfalls offenkundig, daß jeder der n+1 Prozessoren ein getrenntes Ableitelement 10 haben würde. Jeder der q+1 Speichermodule würde gleichermaßen sein eigenes zugeordnetes Auffindungselement 12 haben. Es würde natürlich ein einzelner Nachrichtenbus verwendet werden, um alle Auffindungselemente mit allen Ableitelementen zu verbinden. Gleichermaßen sind alle Ableitelemente und alle Auffindungselemente wahlweise mit den beiden Netzwerken 16 und 18 zu verbinden. Wie in der Figur dargestellt, sind die Einzelheiten eines Auffindungselementes 12 in FIG. 4A dargestellt, und die Einzelheiten des Ableitelementes 10 sind in FIG. 6A gezeigt.
  • Um den Gesamtablauf des Systems hinsichtlich der FIG. 3 kurz zu rekapitulieren, ist dieser eine Funktion davon, daß die Auffindungselemente kontinuierlich jede neue, von diesem Auffindungselement empfangene Speicheradresse überwachen, um festzustellen, ob diese ein Speicherplatz mit hoher Zugriffsrate ist. Sobald die Hardware im Auffindungselement bestimmt, daß gemäß der zu verwendenden Kriterien ein Speicherplatz mit hoher Zugriffsrate existiert, wird von diesem Auffindungselement über den Benachrichtigungsbus an alle Ableitelemente eine Nachricht abgeschickt, wobei deren Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate mit der Information über den neuen Speicherplatz mit hoher Zugriffsrate entsprechend aktualisiert werden. Wenn diese Information vom Ableitelement empfangen und die Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate entsprechend aktualisiert worden sind, dann wirkt eines der Ableitelemente als Kommunikationsmittel der Ableitelemente (da alle Ableitelemente identisch sind und Identische Information enthalten) und benachrichtigt alle Auffindungselemente davon, daß ein spezieller Speicherplatz mit hoher Zugriffsrate zu entfernen ist. Wie nachfolgend beschrieben, wird dies auf der Grundlage eines geeigneten Ersetzungsalgorithmus realisiert, und die spezielle aus der Liste der Speicherplätze mit hoher Zugriffsrate zu entfernende Adresse muß an das spezielle Auffindungselement zurückgeschickt werden, das über den Benachrichtigungsbus diesen Speicherplatz mit hoher Zugriffsrate einrichtet, so daß der Speicherplatz mit hoher Zugriffsrate tatsächlich aus dem Speicherbereich der Speicherplätze mit hoher Zugriffsrate im Auffindungselement entfernt wird. Da eine spezielle Adresse betroffen sein wird, versteht sich, daß von dieser Adresse auch nur eins der Ableitelemente betroffen ist, d.h. es wird sich auf den Speicherblock oder das -modul beziehen, die von der Adresse bezeichnet werden.
  • FIG. 4A umfaßt das funktionelle Blockdiagramm eines der Auffindungselemente 12 einer Zwischenebene, wie es in FIG. 3 dargestellt ist. Es soll daran erinnert werden, daß alle Auffindungselemente hinsichtlich ihres Hardwareinhaltes identisch sind; aber sie werden natürlich hinsichtlich ihres Dateninhaltes verschieden sein. Die primären Funktionselemente des Auffindungselementes sind der Adressenvergleich 20, der Speicher für Speicherplatzadressen mit hoher Zugriffsrate 22, der Vergleichsblock der Schwellenzählung 24 und ein Vergleichsblock 26, der für die Situation H = 1 und C = 0 periodisch alle Speicherstellen des Speichers der Speicherplätze mit hoher Zugriffsrate abtastet. Es wird eingeschätzt, daß alle von den Blöcken 20, 24 und 26 durchgeführten Vergleichs funktionen mit Bezug auf die Inhalte des Speichers 22 der Speicherplatzadressen mit hoher Zugriffsrate durchgeführt werden.
  • In der Figur werden Daten- und Steuerleitungen schematisch gemäß der ausgeführten Funktion und dem allgemeinen Bereich des Speichers der Speicherplätze mit hoher Zugriffsrate dargestellt, für den jede dieser Funktionseinheiten gilt. So bewirkt der Adressenvergleichsblock 20 den Vergleich einer aktuell empfangenen Adresse mit dem vollständigen Inhalt des Adressenspeichers von Speicherplätzen mit hoher Zugriffsrate und betrachtet dementsprechend die Speicheradressen in einem solchen assoziativen Speicher.
  • Block 24 prüft das Zählerfeld um zu sehen, ob im Falle eines erfolgreichen Vergleichs in Block 20 die Schwelle des Speicherplatzes mit hoher Zugriffsrate erreicht wird. Die gestrichelte Linie zwischen den Blöcken 20 und 24 zeigt an, daß Block 24 nur im Falle eines Adressenvergleichs im Speicher von Speicherplatzadressen mit hoher Zugriffsrate wirksam wird, wie nachfolgend zu erkennen ist. Es wird angenommen, daß der in diesem speziellen Vergleich benutzte aktuelle Schwellenwert fest und von den Systementwicklern bestimmt worden ist; wohingegen die spezielle, in Block 20 zu vergleichende Adresse sich von der aktuellen Adresse unterscheidet, die innerhalb der Speichereinheit Mj angefordert wird.
  • Andererseits arbeitet Block 26 gemäß seinem eigenen getrennten Systemtakt, um die H- und C-Felder des Speichers der Speicherplatzadressen mit hoher Zugriffsrate kontinuierlich nach der Bedingung H = 1, C = 0 abzutasten, die später erläutert wird. Wenn angenommen wird, daß der Speicher der Speicherplatzadressen mit hoher Zugriffsrate über alle Felder vollständig assoziativ wäre, dann könnte der Abtastvorgang ebenfalls auf assoziativer Basis durchgeführt werden; und wenn den Suchkriterien entsprochen wird, dann würde auf die spezielle Leitung des Speichers der Speicherplatzadressen mit hoher Zugriffsrate zugegriffen, der die Adresse des Speicherplatzes mit hoher Zugriffsrate enthält, sie würde herausgelesen und auf dem Benachrichtigungsbus untergebracht.
  • Puffer für spezifische Parameter und Daten für den Speicher der Speicherplatzadressen mit hoher Zugriffsrate sind nicht dargestellt, da solche Speicher Stand der Technik sind und in vielen Konfigurationen vorkommen können. Gleichermaßen werden spezielle Filterschaltungen und -register für die Blöcke 20, 24 und 26 nicht dargestellt, da angenommen wird, daß Hardwareschaltungen für die Realisierung dieser Funktionen den Entwicklern von Rechnersystemen wohlbekannt sind, und die Darstellung solcher unbedeutenden Einzelebenen würde die Erfindung vernebeln.
  • Der Steuermechanismus, der zur richtigen Reihenfolge bei der Hardware der FIG. 4A benutzt wird, könnte normalerweise aus einem oder mehreren Festwertspeichern mit zugehörigen Decodern und Logikschaltung bestehen, die von Fachleuten leicht zu entwerfen ist, indem auf die Flußdiagramme der FIG. 4C, 4D und 4E Bezug genommen wird, die nachfolgend erklärt werden.
  • FIG. 4B erläutert ein typisches Format für Speicher von Speicherplätzen mit hoher Zugriffsrate, wie es zum Einsatz in der vorliegenden Erfindung geeignet wäre. Jeder Zugriff auf den Speicher der Speicherplatzadressen mit hoher Zugriffsrate wird durch die darin im Adressenfeld gespeicherte Adresse bestimmt. Es sind auch Felder für eine Verweiszählung, ein Feld für Speicherplätze mit hoher Zugriffsrate (H) und ein Feld (C) für den Abschluß der Benachrichtigung enthalten. Es wird ebenfalls ein Zeitmarkenfeld gezeigt, das als optional dargestellt ist. Ein funktionelles Steuerelement für dieses Feld wird nicht dargestellt, da es den Systementwicklern freisteht, die Funktion einzubauen. Es würde wieder eine einfache Vergleichsfunktion sein, die aktuelle Einstellung aller Zeitmarken mit seinem ihrem aktuellen Wert zu vergleichen, wodurch, falls spezielle Eintragungen im Speicher der Speicherplatzadressen mit hoher Zugriffsrate innerhalb einer vorgegebenen Zeitdauer nicht inkrementiert worden sind, ihre Verweiszählungen auf 0 zurückgesetzt werden könnten. Dementsprechend würden sie für einen wesentlich längeren Zeitraum den Status eines Speicherplatzes mit hoher Zugriffsrate nicht erreichen, wodurch unter gewissen Umständen die Leistungsfähigkeit des Systems erhöht würde, da nur aktuell aktive Speicherplätze mit hoher Zugriffsrate in der Liste der Speicherplätze mit hoher Zugriffsrate in den Ableitelementen untergebracht würden.
  • Die Zeitmarke könnte vom Ersetzungsalgorithmus im Auffindungsmechansimus auch als ein zusätzliches Kriterium verwendet werden, die dann eingesetzt wird, wenn eine spezielle potentielle Speicherplatzadresse mit hoher Zugriffsrate entfernt werden soll, um Platz für eine neue Adresse zu schaffen. Innerhalb dieses Speichers sollte das Adressenfeld so groß sein, wie es für die Identifizierung der Adresse der Speichereinheit erforderlich ist. Die Verweiszählung sollte so viele Bits haben, wie vom Standpunkt des Systementwicklers zur Darstellung der Größe der höchsten Zählung erforderlich sind, die vor der Rückstellung des Zählers auftreten könnte. Die Zeitmarke sollte wie die Verweiszählung so viele Bits haben, wie zur Darstellung der aktuellen Einstellung des Systemzeitgebers notwendig sind. Das Feld der Speicherplätze mit hoher Zugriffsrate (H) und das Feld des Benachrichtigungsabschlusses (C) erfordern in der beschriebenen Ausführungsform natürlich nur ein Bit.
  • FIG. 4C stellt ein Flußbild derjenigen Vorgänge dar, die während eines normalen Vorgangs des Speicherzugriffs im Auffindungselement erfolgen, bei welchem dem speziellen Speichermodul eine Adresse vorgelegt wird, die zuerst durch das Auffindungselement hindurch muß und dabei speziell den Funktionsblock 20 passieren muß, der die aktuelle Speicheradresse in einem geeigneten Register speichern würde und dann die Anforderung an den Speicher weitergäbe. Dieser Vorgang würde in Block 10 erfolgen. In Block 12 wird eine Bestimmung durchgeführt, ob die aktuelle Adresse mit einer Adresse übereinstimmt, die sich gerade im Speicher 22 der Speicherplatzadressen mit hoher Zugriffsrate befindet. Diese Funktion wird in der Vergleichseinrichtung 20 durchgeführt und macht es erforderlich, daß das Adressenargument gegen alle Eintragungen im assoziativen Speicher der Speicherplatzadressen mit hoher Zugriffsrate durchläuft. Wenn eine Übereinstimmung gefunden wird, dann wird der Vorgang zu Block 14 voranschreiten. Wenn keine Übereinstimmung gefunden wird, dann verzweigt sich der Vorgang zu Block 22.
  • Angenommen, es wird eine Übereinstimmung gefunden, dann veranlaßt Block 14, daß die mit der passenden Adresse verbundene Verweiszählung im Speicher der Speicherplatzadressen mit erhöhter Zugriffsrate inkrementiert wird, und der Vorgang läuft weiter zu Block 16. In Block 16 wird die Größe der aktuellen Verweiszählung mit dem Schwellenwert in der Vergleichseinrichtung 24 verglichen, um zu bestimmen, ob die Schwelle der Speicherplätze mit hoher Zugriffsrate schon erreicht ist. Wenn dies nicht der Fall ist, wird der Vorgang abgeschlossen, und es muß nichts weiter erledigt werden. Wenn die Verweiszählung größer als die Schwelle ist, dann läuft die Abfolge weiter zu Block 18, der bestimmt, ob die aktuelle Einstellung des Speicherplatzes mit hoher Zugriffsrate gleich 1 ist. Dies würde bedeuten, daß diese spezielle Adresse einen Speicherplatz mit hoher Zugriffsrate bildet, der schon bezeichnet worden ist, und demgemäß müßte nichts weiter getan werden, und der Vorgang würde über die Ausgangslinie "ja" beendet. Wenn das Feld H aktuell nicht gleich 1 ist, dann läuft der Vorgang weiter zu Block 20, der veranlaßt, daß das entsprechende Feld H auf 1 gesetzt wird, und der sicherstellt, daß das Feld für das Benachrichtigungsende (C) auf 0 gesetzt wird. Wenn diese Arbeitsgänge abgeschlossen sind, wird der Vorgang beendet.
  • Angenommen, die in Block 12 vorgenommene Prüfung veranlaßt die Abfolge, sich zu Block 22 im Flußdiagramm zu verzweigen, dann würde dies bedeuten, daß die neue Adresse in den Speicher der Speicherplatzadressen mit hoher Zugriffsrate eingegeben werden muß. Block 22 veranlaßt, daß ein Ersatzvorgang eingeleitet wird, der tatsächlich dazu führt, daß eine der aktuellen Zeilen im Speicher der Speicherplatzadressen mit hoher Zugriffsrate entfernt wird, um durch die neue Adresse ersetzt zu werden. Für diesen Vorgang könnte jeder geeignete Ersetzungsalgorithmus benutzt werden. Beispielsweise könnte der Ersatz grundsätzlich die derzeit am wenigsten benutzte, niedrigste Verweiszählung treffen usw. Solche Ersetzungsalgorithmen sind Stand der Technik und werden dementsprechend nicht ausführlich beschrieben. Das allgemeine Konzept der Erfindung ist ebenfalls nicht an den speziellen benutzten Ersetzungsalgorithmus gebunden.
  • Wenn der Schlitz im Speicher der Speicherplatzadressen mit hoher Zugriffsrate gefunden worden ist, dann veranlassen die Systemsteuerungen, daß das Verweiszählfeld auf 0 gesetzt wird, die Felder H und C auf 0 gesetzt werden und die Zeitkennmarke (falls vorhanden) auf die aktuelle Einstellung des Systemtaktes gesetzt wird. Damit wird der Vorgang beendet.
  • Es versteht sich, daß die Verfahrensweise der FIG. 4C unabhängig von den aktuellen Abtastvorgängen nach Speicherplätzen mit hoher Zugriffsrate der FIG. 4D und dem Abschlußvorgang der FIG. 4E erfolgt. Zur Rekapitulation, die Verfahrensweise der FIG. 4C pflegt innerhalb eines jeden einzelnen Auffindungselementes den Speicherzugriff oder die Statistik der Speicherplätze mit hoher Zugriffsrate dadurch, daß sie über die angeforderten Adressen und folglich wie häufig sie angefordert wurden und dementsprechend Speicherplätze mit hoher Zugriffsrate geworden sind, ein Protokoll erstellt.
  • In FIG. 4D mit dem Titel "Abtastvorgang der Speicherplätze mit hoher Zugriffsrate" wird dargestellt, wie diese statistischen Daten bei der Benachrichtigung der Ableitelemente benutzt werden. Block 10 enthält den Beginn des Vorganges, und wie in der Figur ersichtlich, wird festgelegt, daß dies bei jedem Speicherzyklus erfolgen soll. Der Vorgang arbeitet tatsächlich unabhängig vom Vorgang des Speicherzugriffs; da er jedoch den Speicher kontinuierlich abtastet, um das Feld H und das Feld C nachzusehen, ist es günstig, dieses Argument der grundlegenden assoziativen Suche hinzuzufügen. Die Steuerungen würden jedoch so festgelegt, daß eine Adressenübereinstimmung nicht die Kontinuität der Zugriffsvorgänge zum Speicher der Speicherplätze mit hoher Zugriffsrate beeinflußt und eine Übereinstimmung bei den Felder H und C es zulassen würde, die Kontinuität des Abtastvorganges der Speicherplätze mit hoher Zugriffsrate unabhängig vom Vorgang des Speicherzugriffs beizubehalten. Der Abtastvorgang kann funktionell jedoch mit einem getrennten Taktgeber betrieben werden, obgleich dieser dann zu Zeiten laufen müßte, wenn der Speicherzugriffsvorgang nicht wirksam ist. Dies würde jedoch wieder eine Entwurfsoption eines Systementwicklers sein und beeinflußt die Grundlagen der vorliegenden Erfindung nicht gegenständlich.
  • Bei der weiteren Beschreibung der Verfahrensweise wird angenommen, daß der Vorgang bei Block 10 begonnen hat, wobei der erste Vorgang von Block 12 initiiert wird, in dem die Vergleichseinrichtung 26 der FIG. 4A in der Tat veranlaßt, daß der assoziative Speicher nach seiner ersten Eintragung abgetastet wird, bei der Feld H = 1 und C = 0 sind.
  • Nach Abschluß des Suchvorganges nach dem ersten in Block 12 aufgefundenen, aber nicht benachrichtigten Speicherplatz mit hoher Zugriffsrate, geht der Vorgang weiter zu Block 14. In Block 14 wird über den Benachrichtigungsbus eine Benachrichtigungsfunktion eingeleitet, und die neu aufgefundene Speicherplatzadresse mit hoher Zugriffsrate wird beim nächsten verfügbaren Buszyklus an alle Ableitelemente übertragen. An diesem Punkt geht der Abtastvorgang nach Speicherplätzen mit hoher Zugriffsrate in einen "Warte"-Zustand über, bis von dem speziellen Ableitelement eine Antwort empfangen wurde, das bestimmt worden ist, um alle Auffindungselemente über den speziellen Speicherplatz mit hoher Zugriffsrate zu benachrichtigen, der aus den Vorgriffspuffern für Speicherplätze mit hoher Zugriffsrate entfernt worden ist. Dieses Ableitelement sendet über den Benachrichtigungsbus eine Antwort zurück an das Auffindungselement, das die neue Speicherplatzadresse mit hoher Zugriffsrate abgeschickt hatte. Diese Antwort wird in Block 16 des Abtastvorganges nach Speicherplätzen mit hoher Zugriffsrate empfangen und veranlaßt, daß das Feld C der neuen Speicherplatzadresse mit hoher Zugriffsrate I auf 1 gesetzt wird. Dies bedeutet, daß die Benachrichtigungsfunktion für den neuen Speicherplatz mit hoher Zugriffsrate abgeschlossen ist. Die andere Funktion, die als Ergebnis des Abschlußteiles der Benachrichtigungsfunktion durchgeführt werden muß, wird in FIG. 4E erläutert und beeinflußt alle Auffindungselemente oder wird an alle diese geschickt.
  • Die mit "Abschlußvorgang" bezeichnete FIG. 4E wird immer dann aufgerufen, wenn von der Benachrichtigungsfunktion und speziell vom benachrichtigenden Ableitelement eine Abschlußnachricht empfangen wurde. Es wird in der Figur dargestellt, daß diese Abfolge in Block 10 eingeleitet wird. Wenn noch einmal kurz auf FIG. 4A Bezug genommen wird, dann wird in der Figur eine Abschlußnachricht als über die untere Leitung des Benachrichtigungsbusses empfangen angezeigt, und dies würde einen Vorgang innerhalb des Auffindungselementes einleiten, bei dem veranlaßt würde, daß die mit der Abschlußnachricht empfangene Adresse gegenüber allen Eintragungen im Speicher der Speicherplatzadressen mit hoher Zugriffsrate auf Übereinstimmung geprüft werden soll. Wenn keine Übereinstimmung gefunden wird, dann wird der Vorgang am Schluß des Blockes 12 beendet. Wenn eine Übereinstimmung gefunden wird, dann geht das System weiter zu Block 14, wobei das Feld C und das Feld H für diese spezielle Adresse auf 0 zurückgesetzt werden. Dies bewirkt die effektive Entfernung dieser speziellen Adresse als Speicherplatz mit hoher Zugriffsrate. Wenn die Adresse im Speicher der Speicherplatzadressen mit hoher Zugriffsrate nicht gefunden wird, dann würde dies in der Tat bedeuten, daß die Adresse früher durch den eigenen Ersetzungsalgorithmus des Auffindungselementes entfernt worden ist, da neue Adressen in das System eingefügt worden sind. Umgekehrt muß das System, wenn die Adresse noch vorhanden ist, wissen, daß diese Adresse nicht mehr als Speicherplatz mit hoher Zugriffsrate bezeichnet wird, da sie durch aktuellere Speicherplätze mit hoher Zugriffsrate ersetzt worden ist. Um ihren Status als Speicherplatz mit hoher Zugriffsrate wiederzugewinnen, muß eine erforderliche Anzahl von Zugriffen vorgenommen werden, bis sie die vorgeschriebene Schwelle für Speicherplätze mit hoher Zugriffsrate erreicht.
  • Die FIG. 5A zeigt nun ein sehr stark abstrahiertes Organigramm des Benachrichtigungsbusses, daß er mit allen n+1 Ableitelementen, die zu allen n+1 Prozessoren gehören, und auch mit allen q+1 Auffindungselementen verbunden ist, die zu allen q+1 Speichermodulen gehören. Es ist einfach ein zweiseitig gerichteter Bus, der nur eine Adresse und ein einfaches Steuerfeld von den Auffindungselementen zu den Ableitelementen zu transportieren hat. Die Adresse gibt natürlich den neuen Speicherplatz mit hoher Zugriffsrate an, der durch das System bezeichnet wird, und umgekehrt gibt die vom bezeichneten Ableitelement an alle Auffindungselemente übertragene Adresse die spezielle Speicherplatzadresse mit hoher Zugriffsrate an, die aus allen Vorgriffspuffern der Speicherplätze mit hoher Zugriffsrate zu entfernen ist. Obwohl die Nachricht, z.B. die Adresse an alle Auffindungselemente geht, spricht nur das spezielle Auffindungselement, das mit dem Speichermodul verbunden ist, das die Adresse enthält, auf die Nachricht an (wird davon beeinflußt). Wie schon früher angegeben, kann die Struktur des Benachrichtigungsbusses eine beliebige von vielen möglichen Formen einschließlich Token-Ring, zyklischer Formen usw. annehmen. Die einzige Forderung besteht darin, daß den Auffindungselementen der Zugriff zum Bus auf einer beliebigen, nach Regeln organisierten Basis gewährt wird, so daß innerhalb eines längeren Zeitraumes kein Speicherplatz mit hoher Zugriffsrate ungekennzeichnet durchläuft. Es ist ebenfalls notwendig, daß die Struktur so aufgebaut ist, daß bei Abschluß eines vollen Buszyklus das spezielle Ableitelement, das auf eine Benachrichtigung über einen neuen Speicherplatz mit hoher Zugriffsrate ansprechen muß, während des unmittelbar auf die Übertragung der Nachricht über den neuen Speicherplatz mit hoher Zugriffsrate folgenden Zyklus Zugriff zum Bus hat. Offenkundig muß diese Möglichkeit auch in der Struktur des Ableitelementes verankert sein, wie dies für den Fachmann augenscheinlich ist.
  • FIG. 5B ist ein sehr einfaches Flußdiagramm, welches das vorstehend Gesagte wiederholt. Das Flußdiagramm ist mit "Vorgang des Benachrichtigungsbusses" betitelt und wird so dargestellt, daß es nur die zwei Blöcke 10 und 12 umfaßt. Wie in Block 10 dargestellt, muß, sobald in einem der Auffindungselemente ein Speicherplatz mit hoher Zugriffsrate gefunden wird, dieses Auffindungselement auf einer vorgegebenen Grundlage die Steuerung des Nachrichtenbusses übernehmen und die neue Speicherplatzadresse mit hoher Zugriffsrate an alle Ableitelemente schicken.
  • Sobald dies erfolgt ist, muß beim unmittelbar darauffolgenden Buszyklus das bezeichnete Ableitelement eine Bestätigungsnachricht an das betreffende Auffindungselement zurückschicken, dessen aktuelle Speicherplatzadresse mit hoher Zugriffsrate aus dem System gelöscht wird. Wie aus der vorhergehenden Beschreibung der Wirkungsweise der Auffindungselemente zu verstehen ist, wird der Speicherplatz mit hoher Zugriffsrate effektiv dadurch entfernt, daß sein Feld H und sein Feld C auf 0 zurückgesetzt werden. Dabei wird natürlich angenommen, daß sich die Adresse noch im Speicher der Speicherplatzadressen mit hoher Zugriffsrate des speziellen Auffindungselementes befindet. Wenn sie vorher durch einen örtlich begrenzten "Ersatz"-Vorgang entfernt worden ist, braucht nichts weiter unternommen zu werden. Damit wird die Beschreibung der Arbeits- und Funktionsweise des Benachrichtigungsbusses abgeschlossen.
  • In den FIG. 6A bis 6E wird nun die Arbeitsweise des einzelnen Ableitelementes beschrieben. Zuerst wird nun in FIG. 6A ein funktionelles Blockdiagramm mittlerer Abstraktion für ein Ableitelement erläutert. Wie bei FIG. 4A erscheint es unnötig, die unwesentlichen Einzelheiten der Steuerschaltung zur Übertragung der verschiedenen Adressen und Steuersignale darzustellen, die offenkundig verschiedene Datenarten beispielsweise aus dem Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate, dem Vergleichsmittel der Speicherplatzadressen mit hoher Zugriffsrate usw. filtern würden, gleiches gilt für die verschiedenen Register, die offenkundig darin enthalten wären. Derartige Einzelheiten sind für die Fachleute offenkundig, wie sie im allgemeinen funktionellen Blockdiagramm der FIG. 6A und den verschiedenen Flußdiagrammen der FIG. 6C bis 6E dargestellt werden.
  • Wieder besteht, wie sehr ausführlich festgestellt, die Funktion der Ableitelemente in der Bestimmung, ob eine neue, dem Speichersystem vorgestellte Adresse in der Tat ein Speicherplatz mit hoher Zugriffsrate ist, und wenn dies der Fall ist, die Anforderung auf Speicherzugriff über das Netzwerk mit starker Konkurrenz, z.B. das kombinatorische Netzwerk abzuleiten. Weiterhin muß, wenn ein Speicherplatz mit hoher Zugriffsrate gefunden wurde, ein Mechanismus zu seiner Eingabe in den Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate zur Verfügung gestellt werden, und es muß eine Benachrichtigung an die Auffindungselemente abgeschickt werden, mit der angezeigt wird, daß ein aktueller Speicherplatz mit hoher Zugriffsrate aus dem System entfernt worden ist. Es wird ebenfalls ein Mechanismus zur Verfügung gestellt, der garantiert, daß, sobald ein neuer Speicherplatz mit hoher Zugriffsrate in die Ableitelemente eingegeben worden ist, alle aktuellen Speicheranforderungen des zugehörigen Prozessors beendet werden, ehe eine neue Speicheranforderung zugelassen wird. Dies dient dazu, jegliche Möglichkeiten für Fehler in der Folgerichtigkeit der Daten zu vermeiden, wobei beispielsweise eine nachfolgende Nachricht schneller bedient werden könnte als eine frühere Nachricht, was dazu führen könnte, daß im Systemspeicher Daten in der falschen Reihenfolge ersetzt oder an den Prozessor zurückgeschickt werden könnten.
  • Speziell in FIG. 6A wird oben in der Figur der Nachrichtenrückführungsbus gezeigt, und der Nachrichtenausgabebus ist ausgehend von der rechten Seite des Ableitblocks 10 dargestellt. Wie ersichtlich beziehen sich beide Busse auf das Netzwerk 1 und das Netzwerk 2, die zweiseitig gerichtet sein können oder auch nicht. Ein Vorgang zum Vergleich der Speicherplatzadresse mit hoher Zugriffsrate erfolgt mit den entsprechenden Registern in Block 30, wobei die aktuelle Adresse zum Argument im Vorgriffspuffer 32 der Speicherplätze mit hoher Zugriffsrate wird, der, wie schon früher festgelegt, ein assoziativer Speicher ist, und wenn eine beliebige Übereinstimmung vorkommt, dann wird die Anzeige der Übereinstimmung dazu führen, daß die Vermittlung 34 den aktuellen Speicherzugriff in das kombinatorische Netzwerk 2 ableitet. Wenn es keinen Vergleich gibt, wird damit angezeigt, daß diese spezielle Adresse noch nicht als Speicherplatz mit hoher Zugriffsrate bezeichnet worden ist, und die Vermittlung wird veranlassen, daß die Nachricht über das Netzwerk mit kleiner Latenzzeit 1 geleitet wird.
  • Der mit "Halt" gekennzeichnet Block 26 ist im wesentlichen ein Flip-Flop, das unmittelbar dann auf 1 gesetzt wird, wenn von den Ableitelementen eine Benachrichtigung empfangen wurde, daß ein neuer Speicherplatz mit hoher Zugriffsrate gefunden wurde. Der "Zähler F" 38 dient dem Zweck, die anstehenden Speicheranforderungen zu verfolgen, die an jedem einzelnen Ableitelement zu einer beliebigen gegebenen Zeit aktiv sind. Immer dann, wenn ein neuer Speicherzugriff empfangen wird, wird der Zähler inkrementiert, und umgekehrt wird dann, wenn über den Nachrichtenrückführungsbus eine Nachricht zurückgeschickt wird, der Zähler dekrementiert. Es ist offenkundig, daß der Zähler entweder auf 0 gesetzt wird oder auf eine beliebige endliche Zahl, was von der Anzahl der Speicherzugriffe abhängt, die zu einer beliebigen Zeit im System angesammelt werden dürfen. Der mit "Warten, wenn Halt gleich 1 ist" gekennzeichnete Block 40 ist nur ein Schalter oder eine Verriegelung, deren Funktion darin besteht, den Prozessor zu veranlassen, Speicheranforderungen immer dann auszusetzen, wenn bestimmt wird, daß der Halt-Block 36 aktuell auf 1 gesetzt wird. Diese Funktion ist allgemeiner Stand der Technik und macht natürlich erforderlich, daß der Prozessor so lange wartet, bis er in der Lage ist, eine Speicheranforderung herauszugeben, was leicht zu verstehen ist. Es ist auch anzumerken, daß Systemsteuerungen zur Verfügung gestellt würden, die mit dem Halt-Block 36 verbunden sind, in dem, sobald er auf 1 gesetzt wird, der Zähler F unmittelbar abgefragt wird und, falls dieser aktuell 0 ist, veranlaßt wird, daß der Halt-Block 36 auf 0 zurückgesetzt wird, oder umgekehrt dann auf 0 gesetzt wird, sobald der Zähler F zu einer Einstellung 0 zurückkehrt.
  • Wenn kurz auf die beiden Eingänge unten am Ableitelement 10 eingegangen wird, die mit "Speicherplatz mit hoher Zugriffsrate gefunden" und "Ende des Speicherplatzes mit hoher Zugriffsrate" gekennzeichnet sind, dann beziehen sich diese auf die beiden Nachrichtenfunktionen, die über den Benachrichtigungsbus ausgeführt werden. Es versteht sich, daß alle Ableitelemente auf die Nachricht über einen gefunden Speicherplatz mit hoher Zugriffsrate ansprechen, aber nur ein einzelnes bezeichnetes Ableitelement muß mit einer Nachricht über das Ende eines Speicherplatzes mit hoher Zugriffsrate antworten.
  • Damit sind zusammenfasssend alle Ableitelemente für alle Prozessoren hinsichtlich sowohl ihrer grundlegenden Funktionsblöcke wie auch zu einer beliebigen gegebenen Zeit ihrer Inhalte der Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate im wesentlichen identisch. Sie werden in ihren einzelnen Zählern F unterschiedliche Werte enthalten. Auch das benachrichtigende Ableitelement muß eine Steuerreihenfolge haben, mit der die Auffindungselemente benachrichtigt werden, daß eine spezielle Speicherplatzadresse mit hoher Zugriffsrate aus allen Vorgriffspuffern der Speicherplätze mit hoher Zugriffsrate aller Ableitelemente gelöscht worden ist.
  • In FIG. 6A ist ebenfalls anzumerken, daß der Bus der aufgefundenen Speicherplätze mit hoher Zugriffsrate mit dem Vorgriffspuffer 32 der Speicherplätze mit hoher Zugriffsrate verbunden ist, was dazu führt, daß die neuen Speicherplätze mit hoher Zugriffsrate im Puffer 32 an der Stelle gespeichert werden, die durch den Ersetzungsalgorithmus frei gemacht worden ist. Der Benachrichtigungsbus wird auch ein Signal transportieren, daß veranlaßt, daß der Halt-Block 36 auf 1 gesetzt wird.
  • Die Reihenfolge der Vorgänge, die beispielsweise durch einen geeigneten ROM mit den üblichen Decodern, Multiplexern und anderer Reihenschaltung gesteuert werden würde, die für die verschiedenen Vorgänge innerhalb des Ableitelementes erforderlich sind, wird in den Flußdiagrammen der FIG. 6C, D und E erläutert.
  • FIG. 6B erläutert das Format der einzelnen Vorgriffspuffer 32 der Speicherplätze mit hoher Zugriffsrate. Alle Puffer in allen Ableitelementen sind identisch und werden zu einem beliebigen Zeitpunkt auch identische Daten enthalten. Jede Eintragung in den Puffer umfaßt eine gegebene Speicherplatzadresse mit hoher Zugriffsrate und eine Zeitkennmarke, die anzeigt, wann der Speicherplatz mit hoher Zugriffsrate in das System eingegeben wurde. Die Zeitmarke ist zur Verwendung im Ersetzungsalgorithmus für den Puffer bestimmt und wird festlegen, welcher Speicherplatz mit hoher Zugriffsrate entfernt wird, wenn ein neuer Speicherplatz mit hoher Zugriffsrate gefunden wird. Dies ist ein vereinfachter Ersetzungsalgorithmus, und falls gewünscht, könnten andere, kompliziertere Ersatzalgorithmen benutzt werden. Es ist natürlich erforderlich, daß immer dann, wenn der Ersetzungsalgorithmus benutzt wird, alle Vorgriffspuffer und alle Ableitelemente den gleichen Ersetzungsalgorithmus benutzen müssen, damit sichergestellt wird, daß aus allen Elementen die gleiche Adresse entfernt wird.
  • Wenn nun das Flußdiagramm der FIG. 6C betrachtet wird, dann behandelt diese Figur die Reihenfolge der Ereignisse, wie sie stattfinden müssen, wenn ein Speicherplatz mit hoher Zugriffsrate durch eins der Auffindungselemente gefunden wird und dieses alle Ableitelemente mit den geeigneten Daten von dieser Tatsache informiert, z.B. mit der Adresse des Speicherplatzes mit hoher Zugriffsrate. Block 10 leitet den Vorgang innerhalb des Ableitelementes ein und geht zu Block 12 weiter, wobei der Halt-Mechanismus 36 auf eine 1 gesetzt wird. Die Verfahrensweise geht dann weiter zu Block 14.
  • In Block 14 wird innerhalb jedes Ableitelementes ein Ersetzungsalgorithmus aufgerufen, der eine Entscheidung dahingehend fällt, welcher "aktuelle" Speicherplatz mit hoher Zugriffsrate aus dem Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate wie vorstehend beschrieben entfernt werden muß. Ein Zeiger wird die Speicherstelle innerhalb des Vorgriffspuffers der Speicherplätze mit hoher Zugriffsrate anzeigen, wo die neue Eintragung eingefügt werden soll. Die Verfahrensweise geht dann weiter zu Block 16.
  • Block 16 ist in dem Sinne kein aktueller Verfahrensschritt, daß alle Ableitelemente mit Ausnahme des einen, das für die Benachrichtigungsfunktion ausgewählt wurde, direkt von Block 14 zu Block 20 fortschreiten würden; das benachrichtigende Ableitelement muß jedoch in Block 18 eintreten, in dem die Adresse des entfernten Gliedes des Vorgriffspuffers der Speicherplätze mit hoher Zugriffsrate über den Benachrichtigungsbus an die Auffindungselemente abgeschickt werden muß, damit deren Speicher der Speicherplatzadressen mit hoher Zugriffsrate entsprechend aktualisiert werden.
  • In Block 20 wird festgestellt, daß die Eintragung entfernt worden ist, und in Block 22 wird eine neue Eintragung eingefügt. Tatsächlich wird, wie oben festgestellt, die neue Eintragung einfach über die alte Eintragung im Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate darübergeschrieben. Der Vorgang geht dann weiter zu Block 24, in dem das Zeitmarkenfeld für die neue Eintragung gesetzt wird. Es sollte wieder daran erinnert werden, daß die Zeitmarke gesetzt werden könnte und daß das Zeitmarkenfeld daher nur dann vorgesehen würde, wenn im Ersetzungsalgorithmus die Zeitmarke benutzt werden soll. Der Abschluß von Block 24 initialisiert Block 26.
  • Block 26 bildet innerhalb des Gesamtvorganges einen Auszeit- oder Wartevorgang, bei dem die Einstellung des Zählers F kontinuierlich abgetastet wird, um zu bestimmen, ob er auf einen Wert 0 gesetzt worden ist oder nicht, was bedeutet, daß weiter keine aktuellen Speicheranforderungen anstehen. Wenn festgestellt worden ist, daß der Zähler F auf 0 dekrementiert worden ist (oder auf 0 gesetzt worden ist, als die neue Eintragung eines Speicherplatzes mit hoher Zugriffsrate in den Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate eingegeben wurde), dann würde der Vorgang zu Block 28 weiterlaufen.
  • In Block 28 wird das Halt-Flip-Flop auf 0 zurückgesetzt, wodurch das spezielle Ableitelement und sein zugehöriger Prozessor in die Lage versetzt werden, Speichervorgänge wieder aufzunehmen. Wenn dies erfolgt, ist der Vorgang abgeschlossen.
  • In FIG. 6D wird nun von einem Ableitelement ein üblicher Speicherzugriff durch den Prozessor durchgeführt. Block 10 ruft die Abfrage des Halt-Flip-Flops von Block 36 auf. Wenn es auf 1 gesetzt ist, dann wartet das System oder es läuft leer, bis es auf 0 zurückgesetzt wird. Dieser Vorgang wird in der Technik häufig als ein "Schutz"-Vorgang bezeichnet. Eine derartige spezielle Quelle des Standes der Technik befindet sich in dem schon früher als Quelle angegebenen Artikel "The RP3 Processor/Memory Element" auf Seite 787, Abschnitt 7.3. Die Steuerungen legen fest, daß, wenn Halt gleich 0 ist, der Vorgang zu Block 12 weitergeht.
  • Block 12 veranlaßt, daß die durch den Prozessor dem Ableitelement vorgelegte aktuelle Adresse als Argument gegenüber dem Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate benutzt werden soll und daß eine Bestimmung durchgeführt werden soll, z.B. mit der Vergleichseinrichtung 30, damit zu erkennen ist, ob die aktuelle Adresse tatsächlich ein Speicherplatz mit hoher Zugriffsrate ist. Es sollte beim weiteren Fortgang angemerkt werden, daß angesichts der Struktur des assoziativen Speichers, der tatsächlich den Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate umfaßt, der Vergleich in Wirklichkeit in dem Vorgriffspuffer der Speicherplätze mit hoher Zugriffsrate selbst durchgeführt wird und die Vergleichseinrichtung 30 der FIG. 6A in Wirklichkeit ein Halteregister sein würde. Wenn keine Übereinstimmung gefunden wird, dann geht der Vorgang weiter zu Block 16, und die Anforderung auf Speicherzugriff wird über das Netzwerk 1 mit kleiner Latenzzeit geschickt. Wenn eine Übereinstimmung gefunden worden ist, dann würde der Vorgang zu Block 14 weitergehen, wodurch die Vermittlung 34 veranlaßt wird, die Anforderung über das kompliziertere Netzwerk 2 zu schicken, z.B. das kombinatorische. Der Abschluß der Schritte der Blöcke 14 oder 16 veranlaßt die Fortsetzung des Vorganges zu Block 18.
  • Block 18 veranlaßt, daß der Zähler F um eins inkrementiert wird, wodurch die Rückverfolgung der aktuellen anstehenden Anforderungen vom mit den Ableitelementen verbundenen Prozessor möglich ist, woran erinnert werden soll. Das Inkrementieren des Zählers F beendet den Vorgang.
  • FIG. 6E ist in Wirklichkeit ein einstufiges Flußdiagramm und bildet die einzige Aktivität, die innerhalb des Ableitelementes stattfinden muß, wenn aus dem Speichersystem eine Nachricht zurückgeschickt wird, mit welcher der Abschluß eines Speicherzugriffsvorganges angezeigt wird. Wenn es beispielsweise eine Ladeanforderung war, dann würden Daten das Signal "Vorgang abgeschlossen" begleiten; andernfalls würde wie üblich nur das Signal zurückgeschickt. Wie oben festgestellt, hält der Zähler F eine laufende Zählung der anstehenden Speicheranforderungen vom Prozessor aufrecht. Es versteht sich natürlich, daß dies nur eine grobe Zählung ist, da vom System nicht mehr gefordert wird, um die erforderliche Folgerichtigkeit der Daten angesichts der vorher aufgezählten Steuerungen und Reihenfolgen aufrechtzuerhalten.

Claims (19)

1. Vorrichtung zum dynamischen Identifizieren von Speicherplätzen mit hoher Zugriffsrate und zum nachfolgenden Steuern eines Verbundmechanismus in einem großen Mehrprozessorsystem mit gemeinsam genutztem Speicher, das eine Vielzahl von Prozessoren und eine Vielzahl von getrennt adressierbaren Speichermodulen, wobei durch einen beliebigen Prozessor über ein Speicherverbundnetzwerk, das zumindest zwei parallele Verbundnetzwerke umfaßt, von denen ein erstes ein erstes Netzwerk mit kleiner Latenzzeit ist, über das Speicheranforderungen mit einer geringen Konkurrenzwahrscheinlichkeit geschickt werden, und ein zweites ein Netzwerk ist, über das Speicheranforderungen mit einer höheren Wahrscheinlichkeit der Speicherkonkurrenz geschickt werden, auf jeden von ihnen zugegriffen werden kann, mit jedem Speichermodul verbundene Auffindungsmittel für Speicherplätze mit hoher Zugriffsrate (12), die herausfinden, wann eine spezielle Adresse auf der Grundlage vorgegebener Kriterien der Zugriffshäufigkeit ein Speicherplatz mit hoher Zugriffsrate wird, und ein Ableitmittel (10) umfaßt, das mit dem Ausgang jedes Prozessors (P&sub1; bis PN) und dem Speichernetzwerk (16, 18) verbunden ist, damit Speicheranforderungen wahlweise entweder an das erste (16) oder das zweite (18) Speichernetzwerk geschickt werden, gekennzeichnet durch
Benachrichtigungsmittel über Speicherplätze mit hoher Zugriffsrate (14), die alle Ableitmittel und alle Auffindungsmittel für Speicherplätze mit hoher Zugriffsrate (12) und Mittel (22, 24, 26) innerhalb jedes Auffindungsmittels verbinden, damit alle Ableitmittel benachrichtigt werden, wenn ein Speicherplatz mit hoher Zugriffsrate angetroffen wird,
mit jedem der Ableitmittel verbundene Mittel zum Bestimmen, ob eine aktuelle Speicheranforderung einen aktuell gekennzeichneten Speicherplatz mit hoher Zugriffsrate betrifft und, falls dies der Fall ist, diese Speicheranforderung über das zweite Netzwerk mit starker Konkurrenz zu schikken, wobei das Auffindungsmittel für Speicherplätze mit hoher Zugriffsrate (12) Mittel (38, 40) zum Zählen der Anforderungsanzahl für die gleiche Speicherstelle innerhalb eines vorgegebenen Zeitrahmens umfaßt,
Mittel in jedem Auffindungsmittel, mit denen periodisch die mit jeder darin gespeicherten Adresse verbundene Zählung als Speicherplatz mit hoher Zugriffsrate vermindert wird, und
Mittel zum Benachrichtigen der Ableitmittel (10), daß ein neuer Speicherplatz mit hoher Zugriffsrate existiert, das Mittel zum Benachrichtigen aller mit diesem Benachrichtigungsmittel verbundenen Ableitmittel zu dem Zeitpunkt, wenn es das Protokoll des Buszyklus des Benachrichtigungsmittels zuläßt, umfaßt, daß ein neuer Speicherplatz mit hoher Zugriffsrate aufgefunden worden ist, wodurch alle mit jedem Prozessor verbundenen Ableitmittel identische Listen der Speicherplätze mit hoher Zugriffsrate haben.
2. Vorrichtung gemäß Anspruch 1, wobei jeder Prozessor (P&sub1; bis PN) Adressenübersetzungsmittel zum Umwandeln von virtuellen Adressen in reale physische Adressen umfaßt, und die vor dem Vorliegen der realen physischen Adresse am Ableitmittel (14) als aktuelle Speicherzugriffsanforderung funktionieren.
3. Vorrichtung gemäß Anspruch 1 und/oder 2, wobei das Mittel (38, 40) zum Zählen der Speicheranforderungen zum Bestimmen des Status eines Speicherplatzes mit hoher Zugriffsrate einen assoziativen Speicher (22) umfaßt, der mindestens ein jedes Adreßfeld (ADDR) begleitendes Zählfeld hat, damit die Anzahl der Zugriffe zu der Adresse rückverfolgt wird.
4. Vorrichtung gemäß Anspruch 3, wobei jedes Auffindungsmittel (12) Mittel (26) zum periodischen Abtasten des Zählfeldes (C) im assoziativen Speicher (22) nach einem Schwellenwert für einen Speicherplatz mit hoher Zugriffsrate und zum Kennzeichnen (H = 1) derjenigen Adressen umfaßt, deren Zählfeld die Schwelle als Speicherplatz mit hoher Zugriffsrate erreicht hat.
5. Vorrichtung gemäß Anspruch 4, wobei jedes Auffindungsmittel (12) weitere Mittel zum Bestimmen, ob beliebige Adressen den Status als Speicherplatz mit hoher Zugriffsrate erreicht haben und daß die Ableitmittel (10) nicht benachrichtigt worden sind, und wenn dies der Fall ist, zum Benachrichtigen aller Ableitmittel über den neuen Speicherplatz mit hoher Zugriffsrate und nach Empfang eines Signals "Benachrichtigung abgeschlossen" zum Anzeigen umfaßt, daß die Ableitmittel davon benachrichtigt worden sind.
6. Vorrichtung gemäß Anspruch 5, wobei der Mechanismus zur Rückverfolgung der aktuellen Speicherplätze mit hoher Zugriffsrate in den Ableitmitteln (10) einen assoziativen Speicher (32) umfaßt, der zumindest ein suchfähiges Adreßfeld hat und Vergleichsmittel umfaßt, mit denen jede neue dem Ableitmittel vorgelegte Speicherzugriffsanforderung mit allen in dem Speicher gespeicherten Adreßfeldern verglichen wird.
7. Vorrichtung gemäß Anspruch 6, wobei der assoziative Speicher (32) blockassoziativ ist und Mittel zum Ersetzen einer darin befindlichen Speicherplatzadresse mit hoher Zugriffsrate im gleichen Block umfaßt, zu dem eine beliebige neue Speicherplatzadresse mit hoher Zugriffsrate gehört, wenn eine derartige neue Adresse über das Benachrichtigungsmittel (14) empfangen wird.
8. Vorrichtung gemäß Anspruch 7, wobei jedes Ableitmittel (10) Mittel, die immer dann funktionieren, wenn über das Benachrichtigungsmittel der Speicherplätze mit hoher Zugriffsrate ein neuer Speicherplatz mit hoher Zugriffsrate zum Eingeben des Speicherplatzes mit hoher Zugriffsrate in den assoziativen Speicher (32) empfangen wird, und Mittel zum Verhindern jeglicher neuer Speicherzugriffe aus jedem zugehörigen Prozessor umfaßt, bis alle aktuell aktiven Zugriffe abgeschlossen sind.
9. Vorrichtung gemäß Anspruch 8, wobei das Mittel zum Verhindern jeglicher neuer Speicherzugriffe einen Zähler (38) umfaßt, der immer dann inkrementiert wird, wenn ein neuer Speicherzugriff empfangen wird, und dekrementiert wird, wenn aus dem Speichersystem ein Signal über den Abschluß eines Zugriffs empfangen wird.
10. Vorrichtung gemäß Anspruch 6, wobei das Mittel zur Rückverfolgung der aktuellen Speicherplätze mit hoher Zugriffsrate in jedem Auffindungsmittel (12) einen assoziativen Speicher (22) umfaßt, der mindestens ein suchfähiges Adreßfeld (ADDR) hat und Mittel (20) umfaßt, mit denen jede neue dem Auffindungsmittel vorgelegte Speicherzugriffsanforderung mit allen in dem Speicher gespeicherten Adreßfelder verglichen wird.
11. Vorrichtung gemäß Anspruch 10, wobei der assoziative Speicher (22) blockassoziativ ist und Mittel (24, 26) zum Ersetzen einer darin befindlichen Speicherplatzadresse mit hoher Zugriffsrate innerhalb des gleichen Blocks umfaßt, zu dem jede beliebige neue Speicherplatzadresse mit hoher Zugriffsrate gehört, wenn über das Verbundnetzwerk eine solche Adresse empfangen wird und festgestellt wird, daß die Adresse aktuell nicht im Speicher resident ist.
12. Verfahren zum Betreiben einer Einrichtung gemäß einem oder mehrerer der vorhergehenden Ansprüche zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und zum Ableiten derselben über ein Verbundnetzwerk mit starker Konkurrenz innerhalb eines großen Mehrprozessorsystems mit gemeinsam genutztem Speicher, das eine Vielzahl von Prozessoren und eine Vielzahl von getrennt adressierbaren Speichermodulen umfaßt, auf die wahlweise entweder über
1) ein Verbundnetzwerk mit kleiner Latenzzeit oder
2) ein Verbundnetzwerk mit starker Konkurrenz zugegriffen wird,
wobei das Verfahren umfaßt;
einen Auffindevorgang, der in Verbindung mit einem beliebigen Zugriff zu einem beliebigen Speichermodul zum kontinuierlichen Überwachen der Speicherverweise in jedem Modul und zum Rückverfolgen derjenigen Speicherverweise funktioniert, die Speicherplätze mit hoher Zugriffsrate sind,
einen Ableitvorgang, der in Verbindung mit jedem Speicherzugriff durch einen einzelnen Prozessor funktioniert, wobei eine Liste der aktuellen Speicherplätze mit hoher Zugriffsrate und eine spezielle Speicherzugriffsanforderung über das erste Netzwerk, wenn die neue Zugriffsadresse kein Speicherplatz mit hoher Zugriffsrate ist, und über das zweite Netzwerk, wenn die aktuelle Adresse ein gekennzeichneter Speicherplatz mit hoher Zugriffsrate ist, überprüft wird, und
einen Benachrichtigungsvorgang, womit jeder Auffindevorgang wahlweise alle Ableitvorgänge immer dann benachrichtigt, wenn ein neuer Speicherplatz mit hoher Zugriffsrate aufgefunden wird, und wobei ein einzelner gekennzeichneter Ableitvorgang die zugehörigen Auffindevorgänge benachrichtigt, daß ein neues Kennzeichen eines Speicherplatzes mit hoher Zugriffsrate empfangen und in die aktuelle Liste der Speicherplätze mit hoher Zugriffsrate eingegeben worden ist.
13. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 12, wobei der gesamte Auffindevorgang einen Vorgang zum "Speicherzugriff" umfaßt, der die Schritte enthält;
Schritt 1 - Bestimmen, ob eine neue Adresse mit einer in einer Speichertabelle der Speicherplätze mit hoher Zugriffsrate gespeicherten beliebigen Adresse übereinstimmt, und wenn dies der Fall ist, Fortschreiten zu Schritt 2, und wenn nicht, Fortschreiten zu Schritt 6,
Schritt 2 - Inkrementieren eines mit der Adresse in der Speichertabelle verbundenen Zählfeldes und Fortschreiten zu Schritt 3,
Schritt 3 - Bestimmen, ob die aktuelle Zählung größer als ein Schwellenwert ist, der einen Speicherplatz mit hoher Zugriffsrate definiert und, wenn dies der Fall ist, Fortschreiten zu Schritt 4,
Schritt 4 - Bestimmen, ob der Ableitvorgang benachrichtigt worden ist, daß die aktuelle Adresse ein Speicherplatz mit hoher Zugriffsrate ist, und wenn dies der Fall ist, Abschluß des Vorganges, und wenn dies nicht der Fall ist, Fortschreiten zu Schritt 5,
Schritt 5 - Übertragen der neuen Speicherplatzadresse mit hoher Zugriffsrate über den Benachrichtigungsvorgang an den Ableitvorgang und Abschluß des Vorganges,
Schritt 6 - Finden eines leeren Schlitzes in der Tabelle der Speicherplätze mit hoher Zugriffsrate durch den Einsatz eines Ersetzungsalgorithmus und Fortschreiten zu Schritt 7,
Schritt 7 - Eingeben der neuen Adresse in die Tabelle der Speicherplätze mit hoher Zugriffsrate und Rücksetzen des zugehörigen Zählerfeldes auf Null und Rücksetzen der Steuerfelder in der Tabelle, die von den Schritten 4 und 5 dafür verwendet wurden, den Ableitvorgang zu benachrichtigen, daß die Adresse den Speicherplatz mit hoher Zugriffsrate enthält, und Abschluß des Vorganges.
14. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 13, wobei der Auffindevorgang weiterhin einen "Abtastvorgang nach Speicherplätzen mit hoher Zugriffsrate" umfaßt, der die Schritte enthält:
Schritt 1 - periodisches Abtasten der Tabelle der Speicherplätze mit hoher Zugriffsrate nach Adressen, die den Status eines Speicherplatzes mit hoher Zugriffsrate erreicht haben, aber noch nicht an den Ableitvorgang geschickt worden sind, und Fortschreiten zu Schritt 2,
Schritt 2 - Abschicken der Adresse an die Ableitfunktion und Eingeben eines "Warte"-Status und Fortschreiten zu Schritt 3,
Schritt 3 - wenn eine Antwort vom Ableitvorgang darüber empfangen wird, daß der neue Speicherplatz mit hoher Zugriffsrate eingegeben worden ist, Einstellen des Benachrichtigungsfeldes in der Tabelle der Speicherplätze mit hoher Zugriffsrate auf einen Wert, mit dem angezeigt wird, daß die spezielle Adresse als neuer Speicherplatz mit hoher Zugriffsrate übertragen worden ist, und Rückkehr zu Schritt 1.
15. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und zum Ableiten derselben gemäß Anspruch 14, wobei der Auffindevorgang weiterhin einen "Abschlußvorgang" umfaßt, der immer dann funktioniert, wenn vom Ableitvorgang über den Benachrichtigungsvorgang eine Nachricht empfangen wurde, daß eine spezielle Speicherplatzadresse mit hoher Zugriffsrate ersetzt worden ist, der umfaßt:
Schritt 1 - Bestimmen, ob die über die Benachrichtigungsfunktion zurückgeschickte Adresse aktuell in der Tabelle der Speicherplätze mit hoher Zugriffsrate gespeichert ist, und wenn nicht, Abschluß des Vorganges und wenn dies der Fall ist, Fortschreiten zu Schritt 2,
Schritt 2 - Rücksetzen der mit der Adresse in der Tabelle der Speicherplätze mit hoher Zugriffsrate verbundenen Felder, die anzeigen, daß die Adresse kein Speicherplatz mit hoher Zugriffsrate mehr ist und daß sie aus den mit dem Ableitvorgang verbundenen Tabellen der Speicherplätze mit hoher Zugriffsrate entfernt worden ist.
16. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 15, wobei der Benachrichtigungsvorgang ein Busprotokoll umfaßt, das auf einem Benachrichtigungsbus in aufeinanderfolgenden Zeitschlitzen betrieben werden kann, wobei dieser Vorgang funktioniert, wenn von einem der Auffindevorgänge ein Speicherplatz mit hoher Zugriffsrate aufgefunden worden ist, wobei das Protokoll des Benachrichtigungsbusses umfaßt:
Schritt 1 - der spezielle Auffindevorgang übernimmt die Steuerung des Busses und veranlaßt, daß an alle Ableitvorgänge eine Speicherplatzadresse mit hoher Zugriffsrate geschickt wird, und schreitet zu Schritt 2 voran,
Schritt 2 - ein spezieller Ableitvorgang, der vom System dafür gekennzeichnet wurde, daß er über den Benachrichtigungsbus alle Auffindevorgänge anzusprechen hat, schickt im unmittelbar folgenden Buszyklus an alle Schutzvorgänge eine Adresse zurück, daß die übertragene Adresse aus den mit den Ableitvorgängen verbundenen Tabellen der Speicherplätze mit hoher Zugriffsrate entfernt worden ist.
17. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 16, wobei jeder Ableitvorgang einen Vorgang "neu aufgefundener Speicherplatz mit hoher Zugriffsrate empfangen" umfaßt, der enthält:
Schritt 1 - das Verhindern jeglicher weiterer Speicherzugriffsanforderungen vom zugehörigen Prozessor und Fortschreiten zu Schritt 2,
Schritt 2 - Bestimmen, welche Eintragung in der Tabelle der Speicherplätze mit hoher Zugriffsrate zu entfernen ist, und Fortschreiten zu Schritt 3,
Schritt 3 - Benachrichtigen aller Auffindevorgänge, daß ein neuer Speicherplatz mit hoher Zugriffsrate empfangen wurde und Identifizieren der alten Speicherplatzadresse mit hoher Zugriffsrate, die aus der Tabelle der Speicherplätze mit hoher Zugriffsrate entfernt wurde, und Fortschreiten zu Schritt 4,
Schritt 4 - Ersetzen der alten Speicherplatzadresse mit hoher Zugriffsrate in der Tabelle der Speicherplätze mit hoher Zugriffsrate durch die neu empfangene Speicherplatzadresse mit hoher Zugriffsrate und Fortschreiten zu Schritt 5,
Schritt 5 - Bestimmen, ob alle aktuell anstehenden, in Bearbeitung befindlichen Speicheranforderungen, als der neue Speicherplatz mit hoher Zugriffsrate aufgefunden wurde, abgeschlossen wurden, und wenn dies der Fall ist, Wiederaufnehmen der normalen Speicherzugriffe vom Prozessor und Abschluß des Vorganges, und wenn dies nicht der Fall ist, Warten, bis die Speicherzugriffe abgeschlossen sind und danach Aufnehmen der normalen Speicherzugriffsvorgänge.
18. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 17, wobei der Ableitvorgang eine Folge "Speicherzugriff vom Prozessor" umfaßt, die enthält:
Schritt 1 - Bestimmen, ob die neuen Speicherzugriffe angenommen werden, und wenn dies der Fall ist, Fortschreiten zu Schritt 2, und wenn dies nicht der Fall ist, Wiederholen von Schritt 1,
Schritt 2 - Bestimmen, ob die aktuelle Adresse gleich einer beliebigen in der Tabelle der Speicherplätze mit hoher Zugriffsrate ist, und wenn dies der Fall ist, Fortschreiten zu Schritt 3, und wenn dies nicht der Fall ist, Fortschreiten zu Schritt 5,
Schritt 3 - Schicken der Speicherzugriffsanforderung über das Netzwerk mit starker Konkurrenz, und Fortschreiten zu Schritt 4,
Schritt 4 - Inkrementieren des Zählerfeldes der "Anzahl der anstehenden Speicheranforderungen" (Zähler F) und Abschluß des Vorganges,
Schritt 5 - Abschicken der Speicheranforderung über das Netzwerk mit kleiner Latenzzeit und Fortschreiten zu Schritt 4.
19. Verfahren zum Auffinden von Speicherverweisen auf Speicherplätze mit hoher Zugriffsrate und Ableiten derselben gemäß Anspruch 18, wobei die Folge "Speicherzugriff vom Prozessor" umfaßt:
Dekrementieren des Zählerfeldes "Anzahl der anstehenden Speicheranforderungen" immer dann, wenn von einem Speichermodul, auf das zugegriffen wurde, an den Prozessor ein Signal über den Abschluß zurückgeschickt wird.
DE68921365T 1988-04-26 1989-03-22 Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem. Expired - Fee Related DE68921365T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/186,327 US4969088A (en) 1988-04-26 1988-04-26 Hardware mechanism for automatically detecting hot-spot references and diverting same from memory traffic in a multiprocessor computer system

Publications (2)

Publication Number Publication Date
DE68921365D1 DE68921365D1 (de) 1995-04-06
DE68921365T2 true DE68921365T2 (de) 1995-10-05

Family

ID=22684500

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68921365T Expired - Fee Related DE68921365T2 (de) 1988-04-26 1989-03-22 Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem.

Country Status (5)

Country Link
US (1) US4969088A (de)
EP (1) EP0339270B1 (de)
JP (1) JPH0786861B2 (de)
CA (1) CA1311851C (de)
DE (1) DE68921365T2 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0625984B2 (ja) * 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
JP2665813B2 (ja) * 1990-02-23 1997-10-22 三菱電機株式会社 記憶制御装置
US5076364A (en) * 1990-03-30 1991-12-31 Shell Oil Company Gas hydrate inhibition
US5083265A (en) * 1990-04-17 1992-01-21 President And Fellows Of Harvard College Bulk-synchronous parallel computer
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5274782A (en) * 1990-08-27 1993-12-28 International Business Machines Corporation Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks
US5321844A (en) * 1990-12-20 1994-06-14 Siemens Aktiengesellschaft Method for error correction of software errors in a communication system
JP2777496B2 (ja) * 1991-02-28 1998-07-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおいてマルチプロセスをプロファイリングする際の使用方法
US5386540A (en) * 1991-09-18 1995-01-31 Ncr Corporation Method and apparatus for transferring data within a computer using a burst sequence which includes modified bytes and a minimum number of unmodified bytes
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JPH06175914A (ja) * 1992-09-21 1994-06-24 Eastman Kodak Co メモリ管理装置
US5404464A (en) * 1993-02-11 1995-04-04 Ast Research, Inc. Bus control system and method that selectively generate an early address strobe
JPH08263226A (ja) * 1995-03-23 1996-10-11 Toshiba Corp 情報記憶装置
US5727167A (en) * 1995-04-14 1998-03-10 International Business Machines Corporation Thresholding support in performance monitoring
US5706467A (en) * 1995-09-05 1998-01-06 Emc Corporation Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison
US5761716A (en) * 1996-05-01 1998-06-02 International Business Machines Corporation Rate based memory replacement mechanism for replacing cache entries when the cache is full
JPH10255485A (ja) * 1997-03-10 1998-09-25 Kawasaki Steel Corp 連想メモリおよびネットワークフレーム中継器
US6785784B1 (en) * 1997-12-30 2004-08-31 Intel Corporation Method for protective cache replacement
US6460120B1 (en) 1999-08-27 2002-10-01 International Business Machines Corporation Network processor, memory organization and methods
US6404752B1 (en) * 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6681387B1 (en) * 1999-12-01 2004-01-20 Board Of Trustees Of The University Of Illinois Method and apparatus for instruction execution hot spot detection and monitoring in a data processing unit
GB2374749B (en) * 2001-04-20 2005-04-06 Discreet Logic Inc Image data processing
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
US20070233258A1 (en) * 2006-02-28 2007-10-04 Zimmer Spine, Inc. Vertebroplasty- device and method
US20170249257A1 (en) * 2016-02-29 2017-08-31 Itu Business Development A/S Solid-state storage device flash translation layer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4707781A (en) * 1979-01-09 1987-11-17 Chopp Computer Corp. Shared memory computer method and apparatus
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
US4412286A (en) * 1980-09-25 1983-10-25 Dowd Brendan O Tightly coupled multiple instruction multiple data computer system
US4466060A (en) * 1982-02-11 1984-08-14 At&T Bell Telephone Laboratories, Incorporated Message routing in a computer network
US4556972A (en) * 1983-12-27 1985-12-03 At&T Bell Laboratories Arrangement for routing data packets through a circuit switch
US4654778A (en) * 1984-06-27 1987-03-31 International Business Machines Corporation Direct parallel path for storage accesses unloading common system path
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4696000A (en) * 1985-12-12 1987-09-22 American Telephone And Telegraph Company, At&T Bell Laboratories Nonblocking self-routing packet and circuit switching network

Also Published As

Publication number Publication date
EP0339270A2 (de) 1989-11-02
US4969088A (en) 1990-11-06
EP0339270B1 (de) 1995-03-01
CA1311851C (en) 1992-12-22
JPH0786861B2 (ja) 1995-09-20
DE68921365D1 (de) 1995-04-06
EP0339270A3 (en) 1990-11-28
JPH01298459A (ja) 1989-12-01

Similar Documents

Publication Publication Date Title
DE68921365T2 (de) Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem.
DE69116953T2 (de) Methode und Vorrichtung zur dynamischen Ermittlung und Wegfindung für nichtgleichförmigen Verkehr, in parallelen, gepufferten, mehrstufigen Verbindungsnetzwerken
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
EP1057117B1 (de) VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE3751399T2 (de) Parallelrechner mit verteilten, gemeinsam genutzten Speichern und verteilten, aufgabenaktivierenden Schaltungen.
DE112015004336B4 (de) Konfigurationsbasierte Auswahl eines Cachekohärenz-Protokolls
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE2854485C2 (de) Datenverarbeitungsanlage
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE3011552C2 (de)
DE2241257C3 (de) Datenverarbeitende Anlage
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE69836812T2 (de) Verfahren und gerät zum dynamischen warteschlange-abschätzen
DE2847960A1 (de) Speichersteuereinrichtung
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee