DE69632634T2 - Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit - Google Patents

Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit Download PDF

Info

Publication number
DE69632634T2
DE69632634T2 DE69632634T DE69632634T DE69632634T2 DE 69632634 T2 DE69632634 T2 DE 69632634T2 DE 69632634 T DE69632634 T DE 69632634T DE 69632634 T DE69632634 T DE 69632634T DE 69632634 T2 DE69632634 T2 DE 69632634T2
Authority
DE
Germany
Prior art keywords
retry
signal
processor
state
decision unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69632634T
Other languages
English (en)
Other versions
DE69632634D1 (de
Inventor
Ferruccio 20010 Cornaredo Zulian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SAS
Original Assignee
Bull SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SAS filed Critical Bull SAS
Publication of DE69632634D1 publication Critical patent/DE69632634D1/de
Application granted granted Critical
Publication of DE69632634T2 publication Critical patent/DE69632634T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung betrifft eine Entscheidungseinheit eines Zugriffs zu einem Bus eines Mehrprozessorsystems für einen Zugriff über den Bus zu einer Vielzahl von gemeinsam genutzten Ressourcen.
  • Es ist bekannt, dass in modernen Datenverarbeitungssystemen, um eine hohe Leistung zu erreichen, Architekturen mit mehreren miteinander verbundenen Prozessoren und mit einer Vielzahl von gemeinsam genutzten Ressourcen verwendet werden, wie z. B. Speichermodule und Datenein- und -ausgabe-Steuereinheiten (I/O-Steuereinheiten) über einen gemeinsamen Mehrpunkt-Kommunikationskanal, bezeichnet als der Systembus, wobei letzterer eine gemeinsam genutzte Ressource darstellt.
  • Jede Einheit (Prozessor oder Eingabe-/Ausgabe-Steuereinheit), welche einen Zugriff auf eine andere Ressource fordert (ein Speichermodul, ein weiterer Prozessor, eine weitere I/O-Steuereinheit), um Informationen zu empfangen oder zu senden, muss zuerst einen Zugriff auf den Systembus erhalten, wodurch sie sich im Wettbewerb mit anderen Einheiten befindet, die ebenfalls Zugriff auf den Systembus erhalten wollen.
  • Zugriffskonflikte zum Systembus werden in bekannter Weise durch eine Entscheidungseinheit gelöst, welche im Falle von konkurrierenden Zugriffsanforderungen von verschiedenen Einheiten zu dem Systembus den Konflikt löst, indem sie einer einzelnen konkurrierenden Einheit zu einem Zeitpunkt gemäß vorgegebenen Prioritätskriterien Zugriff gewährt (festgelegte Priorität, kreisförmige Priorität oder Reigenmodell).
  • Wenn sie den Zugriff auf den Systembus erhalten hat, kann die anfordernde Einheit, welcher der Zugriff gewährt wurde, die erforderliche Information zum Identifizieren der Ressource, auf welches sie zugreifen muss, oder Zielressource auf dem Systembus ablegen, im Allgemeinen eine Adresse und der Typ des geforderten Vorgangs, z. B. Lesen/Schreiben.
  • Im Falle von Vorgängen für Schreiben in den Speicher wird diese Information von dem zu schreibenden Datenelement begleitet.
  • Aus Gründen, die später erläutert werden, kann es jedoch passieren, dass die Ressource, die erforderlich ist, um den geforderten Vorgang auszuführen, vorübergehend nicht verfügbar ist.
  • In diesem Fall ist es bevorzugt, ein RETRY-Signal an die anfordernde Einheit zu senden anstatt den Systembus besetzt zu lassen, bis die Ressource frei wird, und somit den Systembus freizugeben, um ihn für andere Transaktionen verfügbar zu machen.
  • Dieses Signal kann von der belegten Ressource in Antwort auf die Zugriffsanforderung erzeugt werden oder tatsächlich durch die Entscheidungseinheit, die als Sammeleinrichtung für Signale, welche den Zustand der verschiedenen Ressourcen anzeigen, als Beobachter von deren Zustand und als Absender eines RETRY-Signals an die verschiedenen anfordernden Einheiten dient.
  • Unter den Gründen, welche einen RETRY-Vorgang notwendig machen können, finden sich im Wesentlichen die Folgenden:
    • 1. Um den Zeitraum, den der Systembus belegt ist, zu minimieren, werden die Zugriffsvorgänge zu den verschiedenen Ressourcen in einen Eingabepuffer der Ressource gesetzt, ohne auf ihre Beendigung zu warten (insbesondere ist es bekannt, dass Lesevorgänge in zwei bestimmten Besetztphasen ausgeführt werden können, eine für die Speicheradressierung und die andere zum Abrufen der gelesenen Datenelemente).
  • Da im Allgemeinen die Ausführungszeit für die angeforderten Vorgänge (insbesondere Speicherlese- und -schreibvorgänge) länger ist als der Zeitraum zwischen zwei aufeinanderfolgenden Entscheidungen, kann es geschehen, dass eine zweite Einheit Zugriff zu einer Ressource anfordert, während die vorherige noch damit beschäftigt ist, einen vorherigen Vorgang auszuführen.
  • Die Existenz eines Eingabepuffers verhindert diesen Nachteil nur teilweise (wenn der Puffer frei ist, kann der angeforderte Vorgang gesetzt werden, auch wenn die Ressource besetzt ist, aber wenn der Puffer, der ebenfalls mehrere Speicherlevels aufweisen kann, voll ist, ist ein Setzen unmöglich).
  • Somit besteht ein Zugriffkonflikt zur Zielressource.
    • 2. Ebenfalls um den Zeitraum, den der Systembus besetzt ist, zu minimieren und um die Leistung zu verbessern, sind die Prozessoren im Allgemeinen mit einem schnellen internen Assoziativspeicher oder Cachespeicher mit begrenzter Kapazität ausgestattet, welcher die zuletzt verwendeten Informationen enthält (oder solche, die vorhersehbar umgehend vom Prozessor genutzt werden), um so insgesamt einen Zugriff auf den Systembus und über letzteren zu den Speichermodulen zu vermeiden, wenn die vom Prozessor angeforderten Daten im Cachespeicher enthalten sind.
  • Auf diese Weise können die gleichen Daten in einem oder mehreren Cachespeichern und gleichzeitig im Speicher vorhanden sein.
  • Es ist deshalb notwendig, die Übereinstimmung oder Konsistenz der reproduzierten Daten sicherzustellen.
  • Über den Systembus muss deshalb jeder Prozessor in der Lage sein, den Datenaustausch zwischen anderen Einheiten und den Speichermodulen zu überwachen (über die am Systembus vorhandenen Adressen und Befehle), um die Konsistenz der im Cachespeicher enthaltenen Informationen mit derjenigen der in den Cachespeichern der anderen Prozessoren und im Speicher vorhandenen Informationen sicherzustellen.
  • Die Konsistenz wird durch passende Protokolle sichergestellt, wie z. B. das unter dem Akronym MESI bekannte Protokoll, über Überwachungsvorgänge bekannt als „Snooping" des Systembusses („Schnüffeln"), als ein Ergebnis von und in Antwort darauf, was die verschiedenen Cachespeicher an die Anderen über den Systembus senden, Antwortsignale, welche es ermöglichen, die Konsistenz der Daten sicherzustellen.
  • Zu diesen Antwortsignalen gehört auch das RETRY-Signal, das z. B. in vielen Protokollen notwendig ist, wenn ein Prozessor ein Speicherauslesen eines Informationselements anfordert, welches verändert wurde, in einem oder mehreren Cachespeichern vorhanden ist und nicht im Speicher aktualisiert wurde.
  • In diesem Fall muss der Cachespeicher, der das Informationselement „hält", das Informationselement in seiner aktualisierten Form in den Speicher schreiben, bevor der anfordernde Prozessor anschließend einen Versuch ausführt, dieses vom Speicher zu lesen.
  • Verschiedene Protokolle sehen die direkte Intervention des Cachespeichers, welcher das Datenelement hält, an Stelle des Speichers vor, so dass die Anforderung erfüllt werden kann, aber in diesem Fall können dennoch Zugriffskonflikte zu Ressourcen auftreten, wenn die Lesezugriffsanforderung vom RMW-Typ ist (Lesen und Modifizieren, gefolgt von einem Schreibvorgang in nicht zu unterbrechender Weise) und der Vorgang der Intervention durch den Cachespeicher wiederum die Aktualisierung des Speichers und somit ein Schreiben in diesen erfordert.
  • Wenn die Cachespeicher schließlich nicht mit unabhängigen „Snooping"-Tabellen versehen sind, kann der „Snooping"-Vorgang davon abhängig gemacht werden, dass der Cachespeicher nicht mit der Ausführung von anderen Vorgängen beschäftigt ist und frei ist.
  • Kurz gesagt kann in Mehrprozessorsystemen die Ausführung bestimmter Vorgänge in Bezug darauf, welche Einheit Zugriff auf den Systembus erhalten hat, nicht sofort ausführbar sein, entweder durch die Nichtverfügbarkeit einer Zielressource die für die Ausführung des Vorgangs nötig ist, ob durch die Nichtverfügbarkeit von anderen Ressourcen, sogar wenn Letztere nicht direkt und aktiv an der Ausführung des Vorgangs beteiligt sind, oder aus Gründen der Konsistenz, die es absolut notwendig machen, es zu verschieben, wobei andere Vorgänge vorangehen.
  • Ein Beispiel ist in der Beschreibung EP-A-0 665 501 offenbart, welche ein System nach dem Oberbegriff des Anspruchs 1 beschreibt.
  • In diesen Fällen muss die Ausführung des Vorgangs nochmals versucht werden durch Übergabe einer neuen Zugriffsanforderung zum Systembus und einer neuen Entscheidung.
  • Eine erste unvermeidliche Folge dieser Tatsache ist, dass all die Systembus-Zugriffsvorgänge, die nicht erfolgreich abgeschlossen werden, unrentabel die Zugriffsmöglichkeit zum Systembus durch andere Einheiten verhindern, in dem Zeitraum, in dem der Systembus besetzt ist, was die Verfügbarkeit des Busses und die Leistungsfähigkeit der anderen Einheiten verringert.
  • Eine zweite Folge ist, dass sich in einer statistisch vorhersagbaren Weise direkte Zugriffsanforderungen an eine einzelne Ressource oder eine indirekte Anforderung der Zusammenarbeit anderer Ressourcen für „Snooping"-Operationen über die Zeit ansammeln, als ein Ergebnis wiederholter RETRY-Versuche, wodurch praktisch eine Sperrbedingung erzeugt wird, welche als „livelock" definiert ist, da, anders als bei der „Deadlock"-Bedingung, die beteiligten Prozessoren fortfahren, die gleichen Vorgänge in Wettbewerb zueinander zu wiederholen und erneut zu versuchen, wodurch wiederum unrentabel verursacht wird, dass der Systembus besetzt ist.
  • Die vorliegende Erfindung löst dieses Problem und stellt eine Mehrprozessor-Systembus-Zugriffsentscheidungseinheit zur Verfügung, in welcher für jeden Prozessor (und I/O-Einheit), der mit dem Systembus verbunden ist, die Zugriffsanforderungen, resultierend aus Signalisierung zumindest eines direkten Wiederversuchs zum Prozessor (in der Praxis mehr als einer und aufeinanderfolgend), zeitweise maskiert sind (und dadurch von der Entscheidungseinheit nicht berücksichtigt werden) über einen variablen Zeitraum, der vorzugsweise länger wird mit der Anzahl von vorherigen RETRY-Versuchen nachfolgend auf direkte RETRY-Signalisierung zum Prozessor, in einer solchen Weise, um die Zugriffshäufigkeit und die Wahrscheinlichkeit eines Konflikts im Zugriff zur gleichen Ressource zu verringern. Die Entscheidungseinheit gemäß der Erfindung ist im unabhängigen Anspruch 1 definiert.
  • Da die Entscheidungszyklen einander mit einem vorbestimmten Abstand folgen, der im Allgemeinen gleich dem Zeitabstand eines allgemeinen Taktsignals oder einem Mehrfachen davon entspricht, welches die Operation der verschiedenen Einheiten taktet, wird das Zeitintervall, für welches die Zugriffsanforderungen maskiert sind, als eine Anzahl von Entscheidungszyklen ausgedrückt.
  • Für jeden Prozessor ist das maskierte Zeitintervall eine Funktion allein der Anzahl der vorhergehenden aufeinanderfolgenden RETRY-Versuche des Prozessors oder, was vollkommen gleichwertig ist, allein der Anzahl der aufeinanderfolgenden direkten RETRY-Signalisierungen zu dem gleichen Prozessor, nicht zu den anderen, und ist deshalb im Allgemeinen unterschiedlich von Prozessor zu Prozessor.
  • Als Beispiel, zur besseren Klarstellung, wenn ein Prozessor A gezwungen ist, einen Zugriffsvorgang zweimal nacheinander zu versuchen und somit zwei RETRY-Signale empfangen hat, dann wird eine danach folgende Zugriffsanforderung zum Systembus für zwei Entscheidungszyklen maskiert.
  • Wenn der dritte Zugriff zum Systembus ebenfalls wiederholt werden muss, wird die darauf folgende Zugriffsanforderung für vier Entscheidungszyklen maskiert.
  • Wenn die vierte Zugriffsanforderung ebenfalls wiederholt werden muss, wird die nachfolgende Zugriffsanforderung für acht Entscheidungszyklen maskiert.
  • Ähnliches geschieht für weitere drei Prozessoren B, C, D, usw., jeweils unabhängig von den anderen.
  • Auf diese Weise werden für jeden Prozessor die RETRY-Versuche über die Zeit zu einem immer größeren Ausmaß gestaffelt, und dies in einer Weise, die im Allgemeinen von Prozessor zu Prozessor unterschiedlich und pseudo-zufällig ist, um so das Risiko eines potenziellen direkten Zugriffskonflikts zur gleichen Ressource oder eines indirekten Konflikts durch die Nichtverfügbarkeit von indirekt beteiligten Ressourcen (Cachespeicher) oder durch einen Konsistenzkonflikt zu minimieren.
  • Um das Risiko von Konflikten weiter zu minimieren und die Pseudo-Zufälligkeit der Maskierungszeiten zu erhöhen, kann ein weiterer Mechanismus eingeführt werden, welcher eine Maskierungszeit abhängig von dem Zustand des zyklischen Zählers (oder allgemeiner eines Generators von Pseudozufallszahlen) durchsetzt, welcher bei jedem Entscheidungszyklus hervorgeht.
  • Weitere Ausführungsbeispiele der Erfindung sind in den beigefügten abhängigen Ansprüchen erläutert. Zum Beispiel wird in einem Ausführungsbeispiel der vorliegenden Erfindung der Mechanismus zum temporären Maskieren der Entscheidungseinheit für jeden Prozessor aktiviert, nach einer unterschiedlichen Anzahl von RETRY-Signalen und demzufolge von RETRY-Versuchen, abhängig von der Art des Ereignisses, welches die Signalisierung und den RETRY-Versuch hervorgerufen hat.
  • Wenn somit die RETRY-Versuche der Signalisierung eines Besetztzustandes der Zielressource zuzuschreiben sind, kann die Maskierung nach einer ersten vorbestimmten Anzahl von RETRY-Signalen (und Versuchen) aktiviert werden und kann eine Dauer aufweisen, welche sich gemäß einem ersten Kriterium verlängert.
  • Wenn andererseits die RETRY-Versuche Konflikten in der Übereinstimmung bzw. Konsistenz zuzuschreiben sind, welche zuerst gelöst werden müssen, kann der temporäre Maskierungsmechanismus nach einer kleineren Anzahl von RETRY-Signalen (und Versuchen) als vorher aktiviert werden und kann eine Dauer aufweisen, welche gemäß dem ersten Kriterium oder einem anderen Kriterium erhöht wird.
  • Die Eigenschaften und Vorteile der vorliegenden Erfindung werden klarer ersichtlich aus der nachfolgenden Beschreibung eines bevorzugten Ausführungsbeispiels, die unter Bezugnahme auf die beigefügten Zeichnungen erfolgt, in welchen:
  • 1 ein Blockdiagramm eines Mehrprozessorsystems mit gemeinsam genutzten Ressourcen ist, welches eine Entscheidungseinheit gemäß der vorliegenden Erfindung nutzt;
  • 2 ein Zeitablaufdiagramm ist, welches den Austausch von Signalen darstellt, welcher am Bus des Systems der 1 über Zugriff auf den Bus und über letzteren zu einer gemeinsam genutzten Ressource auftritt;
  • 3 ein Blockdiagramm ist, welches die Entscheidungseinheit des Systems aus 1 zusammenfasst, ausgebildet in Übereinstimmung mit der vorliegenden Erfindung;
  • 4 ein Blockdiagramm der Entscheidungslogik der Entscheidungseinheit der 3 ist;
  • 5 ein Blockdiagramm der Logik zum Sammeln und Wiederversenden von Zustands- und Antwortsignalen (nach den „Snooping"-Operationen) der Entscheidungseinheit aus 3 ist;
  • 6 ein zusammenfassendes Blockdiagramm der Logik zum Maskieren von Zugriffs-Wiederversuchen der Entscheidungseinheit der 3 ist;
  • 7 ein genaueres Blockdiagramm von einem der Blöcke der Maskierungslogik der 6 ist und eine Phasenlogik, eine Zustandsmaschine und einen Zähler umfasst;
  • 8 eine Zustandstabelle für die Zustandsmaschine der 7 ist, für ein erstes Ausführungsbeispiel einer Entscheidungseinheit gemäß der vorliegenden Erfindung;
  • 9 ein Schaltkreisdiagramm ist, welches beispielhaft das Ausführungsbeispiel des Zählers aus 7 zeigt;
  • 10 ein Blockdiagramm eines bevorzugten Ausführungsbeispiels der Blöcke der Maskierungslogik aus 6 ist, wobei jeder Block zwei Zustandsmaschinen umfasst;
  • 11 eine Zustandstabelle für eine der Zustandsmaschinen aus 10 ist.
  • Unter Bezugnahme auf 1 stellt Letztere ein Blockdiagramm des Aufbaus eines Mehrprozessorsystems dar, welches an sich das herkömmliche ist, umfassend eine Entscheidungseinheit gemäß der vorliegenden Erfindung.
  • Das System umfasst eine Vielzahl von Prozessoren 1, ..., 4, z. B. vier an der Zahl, die miteinander über einen Systembus verbunden sind, gekennzeichnet als Ganzes mit dem Bezugszeichen 5, mit einem gemeinsam genutzten Speicher 6, aufgebaut aus einer Speichersteuereinheit 7 und einer Vielzahl von Speichermodulen 8, 9, 10, z. B. acht an der Zahl.
  • Jeder Prozessor, der auch ein Prozessor zum Steuern von Eingabe-/Ausgabeeinheiten sein kann, umfasst einen internen Cachespeicher.
  • Der Betrieb des Systems wird von einer Zeitgebereinheit 11 getaktet, welche ein periodisches Taktsignal CLK erzeugt, welches an alle Einheiten des Systems gesandt wird.
  • Der Systembus umfasst einen Mehrpunktkanal DBUS zum Übertragen von Daten, einen Mehrpunktkanal ADDRBUS zum Übertragen von Adressen und Befehlen und eine Vielzahl von Punkt-zu-Punkt- Verbindungsleitungen zwischen jedem der Prozessoren und einer Entscheidungseinheit 12.
  • Insbesondere senden die verschiedenen Prozessoren jeweils eine Zugriffsanforderung zum Systembus, BR1, ... BR4, zur Entscheidungseinheit 12 mittels einer dedizierten Leitung.
  • Die Entscheidungseinheit antwortet auf die verschiedenen Prozessoren (jedes Mal nur einer), die ein Busgenehmigungssignals BG1 ... BG4 auf einer dedizierten Leitung senden.
  • In dem dargestellten Fall, in dem der Betrieb des Systems synchron ist und in dem die Zeitintervalle, in denen der Bus besetzt ist, eine vorbestimmte Dauer aufweisen, ist ein drittes Signal (BUS BUSY), welches den freien bzw. besetzten Zustand des Systembusses definiert, wie es im Allgemeinen in asynchronen Systemen vorgesehen ist, nicht notwendig.
  • Wenn, wie dargestellt, die Speichersteuereinheit 7 eine andere Einheit als die Entscheidungseinheit 12 ist und die als „verteilter Buszyklus" bekannte Technik verwendet wird zum Lesen der Daten im Speicher, sendet die Speichersteuereinheit 7, wenn es notwendig ist, eine neue Verbindung zum Systembus herzustellen, an die Entscheidungseinheit 12 eine Buszugriffsanforderung MBR (welche vorzugsweise maximale Priorität hat), auf welche die Entscheidungseinheit mit einem Zugriffsgenehmigungssignal MBG antwortet.
  • In einem synchronen System ist es jedoch möglich, eine Entscheidungseinheit zu konstruieren, welche auch als eine Speichersteuereinheit funktioniert und welche als eine Funktion der von einem Speicher geforderten Aktivitäten genau vorhersehen kann, wie sie sich im Laufe der Zeit entwickeln und die Notwendigkeit für eine Wiederverbindung mit dem Systembus, die automatisch geplant ist.
  • Da die Speichersteuereinheit in die Entscheidungseinheit integriert ist, sind die Signale MBR und MBG in diesem Falle überflüssig.
  • Die verschiedenen Prozessoren 1, ... 4 senden über dedizierte Leitungen ein Zustandssignal S.OUT1, ..., S.OUT4 an die Entscheidungseinheit 12 in Antwort auf die Erkennung einer Adresse auf dem Systembus, welche diese als Ziele einer Mitteilung identifiziert.
  • Abhängig von seinem 0/1-Logikniveau informiert dieses Signal die Entscheidungseinheit 12 über die Verfügbarkeit des Prozessors, um eine Mitteilung zu empfangen und dementsprechend zu funktionieren.
  • Die Speichersteuereinheit 7 sendet ebenfalls über eine dedizierte Leitung ein Zustandssignal S.OUTM zur Entscheidungseinheit 12 in Antwort auf die Erkennung einer Adresse auf dem Systembus, welche ein Speichermodul als Ziel eines Lese-/Schreibbefehls identifiziert.
  • Abhängig von seinem 0/1-Logikniveau informiert dieses Signal die Entscheidungseinheit über die Verfügbarkeit oder ansonsten über das angesprochene Speichermodul, um den geforderten Vorgang auszuführen.
  • Es sollte hier klar gemacht werden, dass der gemeinsam genutzte Speicher 6, der verschiedene Module umfasst, passend als ein Interleave-Speicher strukturiert sein kann, in welchem die verschiedenen Module mit Speicherzyklen arbeiten, die sich teilweise zeitlich überlappen.
  • Die Entscheidungseinheit 12 funktioniert als eine Sammeleinrichtung der Signale S.OUT1 ... 4, S.OUTM und gibt an alle Prozessoren über eine Mehrpunkt-Verbindungsleitung ein Zustandssignal S.IN aus, welches im Wesentlichen das ODER all der Signale S.OUTi ist und den anfordernden Prozessor über die Verfügbarkeit oder ansonsten über die Ressource oder die Ressourcen, die für die Ausführung des angeforderten Vorgangs nötig ist/sind, informiert.
  • Wenn diese nicht verfügbar sind (S.IN = 1), hat das Signal S.IN die Bedeutung eines RETRY-Signals. Da das Zustandssignal S.IN von all den Prozessoren empfangen wird, weist jeder Prozessor eine interne Phasenlogik auf, die es, als eine Funktion der relativen Zeitgebung zwischen dem Gewähren des Zugriffs Bgi und der RETRY-Signalisierung, ermöglicht, dass es als Ziel des Signals erkannt wird.
  • Sicherlich muss die Speichersteuereinheit 7 dieses Signal nicht empfangen, da ihre Wiederverbindung zum Systembus impliziert, dass ein Prozessor vorhanden ist, der darauf wartet, das aus dem Speicher gelesene Informationselement zu empfangen.
  • Um die Konsistenz der Daten im Speicher oder in den verschiedenen Prozessor-Cachespeichern sicherzustellen, verwenden die verschiedenen Prozessoren eine Vielzahl von dedizierten Leitungen (zwei oder mehr), um einen binären Antwortcode RESP OUT1, ... RESPOUT4 an die Entscheidungseinheit 12 weiterzugeben, als das Resultat der ausgeführten „Snooping"-Funktion.
  • Eine besondere Konfiguration dieses Binärcodes zeigt die Notwendigkeit eines RETRY an.
  • Andere Konfigurationen, die ein Datenelement anzeigen, das nicht im Speicher vorhanden ist (NULL), das vorhanden und gemeinsam genutzt wird (SHARED) und das vorhanden und in modifizierter Form gehalten wird (MODIFIED), werden von den verschiedenen Prozessoren verwendet, um den Zustand der Daten in den jeweiligen Cachespeichern gemäß dem verwendeten Konsistenzprotokoll zu aktualisieren.
  • Zu diesem Zweck dekodiert die Entscheidungseinheit 12, die als Sammelstelle für diese Codes dient, diese und versendet sie an die Prozessoren über ein Paar von Mehrpunkt-Verbindungsleitungen, als Antwortcode RESP.IN mit der Bedeutung RETRY, NULL, SHARED, MODIFIED, je nach Fall.
  • 2 zeigt ein Zeitablaufdiagramm des Austausches von Meldungen, welcher am Systembus zwischen einem anfordernden Prozessor, der Entscheidungseinheit und den anderen Einheiten im System der 1 stattfindet.
  • Die Kurve SYS CLK stellt das periodische Taktsignal dar, welches die verschiedenen Einheiten des Systems taktet, und definiert nacheinander geordnete Taktperioden 1, 2, 3, 4, ..., mit Zeiträumen, die größer sind als die Verbreitungszeit von Signalen entlang des Systembusses und zwischen den verschiedenen Einheiten, die mit diesem verbunden sind.
  • Die Kurve BRi zeigt den elektrischen Pegel des Zugriffsanforderungssignals des auswählbaren Prozessors „i", das aktiv ist (logisch 1 oder wahr), wenn der elektrische Pegel 0 ist.
  • Die Kurve BGi zeigt das Zugriffsgewährungssignal, das von der Entscheidungseinheit erzeugt und in Antwort auf den auswählbaren Prozessor „i" gesandt wird.
  • Die Kurve ADDR&COM zeigt die Adresse und die Befehlssignale auf dem Systembus.
  • Die Kurve DATA zeigt die auf dem Systembus platzierten Daten durch den Prozessor „i" im Falle eines Schreibvorgangs (W. D) und durch die Speichersteuereinheit (R. D) im Falle eines Lesevorgangs.
  • Die Kurve SOUTi.M zeigt das Zustandssignal, das von der Entscheidungseinheit (auswählbarer Prozessor „i" oder Speichersteuereinheit) und möglicherweise von anderen Einheiten auf dem Systembus abgelegt wurde, wenn diese auch beteiligt sind, in Antwort auf die Adresse und die Befehle, die auf dem Systembus vorhanden sind.
  • Die Kurve S.IN zeigt das von der Entscheidungseinheit versandte und als eine Funktion der empfangenen Signale SOUT erzeugte Signal.
  • Die Kurve RESP.OUT zeigt den Antwortcode, der von jedem der verschiedenen Prozessoren auf dem Systembus abgelegt wurde, als Folge des durchgeführten Snooping-Vorgangs.
  • Die Kurve RESP.IN zeigt den von der Entscheidungseinheit versandten und als eine Funktion des empfangenen folgenden RESP.OUT erzeugten Antwortcode.
  • Zu Beginn des Zeitraums 1, definiert durch ansteigende Flanke des Signals SYS.CLK, aktiviert der Prozessor „i" das Zugriffsanforderungssignal BRi.
  • Das Signal verbreitet sich entlang des Systembusses und wird in einem Eingangsregister der Entscheidungseinheit 12 gespeichert, zusammen mit anderen möglichen Zugriffsanforderungen, die von anderen Einheiten aktiviert wurden.
  • Im Verlauf des Zeitraums 2 führt die Entscheidungslogik der Entscheidungseinheit 12 die Entscheidung zwischen den konkurrierenden Zugriffsanforderungen durch.
  • Das Ergebnis der Entscheidung besteht aus einem aktivierten Signal BGi, das in einem Ausgangsregister am Anfang des Zeitraums 3 gespeichert und auf dem Systembus abgelegt wird, in Antwort auf die anfordernde Einheit, welche die Entscheidung gewinnt.
  • Im Verlauf des Zeitraums 3 verbreitet sich das Signal BGi über den Bus und wird definitiv von der anfordernden Einheit zu Beginn des Zeitraums 4 empfangen, woraufhin die Einheit, welche Zugriff auf den Systembus erhalten hat, eine Adresse (aus einem Speicher oder einer anderen Einheit), Befehle, welche die geforderte Funktion definieren und, falls Letzteres ein Schreiben in Speicher ist, auch die zu schreibenden Daten ablegen kann. Diese Information wird zu Beginn des folgenden Zeitraums 5 vom Bus entfernt.
  • Zu Beginn des Zeitraums 5, ist die Information definitiv für die anderen Einheiten, die mit dem Bus verbunden sind, verfügbar, welche diese in einem Eingangsregister speichern, die erforderlichen Überprüfungen auf Verfügbarkeit ausführen und den geforderten Vorgang ausführen können, wenn sie involviert sind, um so zu Beginn des Zeitraums 6 das Zustandssignal SOUTi auszugeben, das logisch inaktiv ist (somit auf einem positiven elektrischen Pegel), um den Besetztzustand der Ressource und die Notwendigkeit eines erneuten Versuchs für den Zugriff anzuzeigen.
  • Diese Signale sind definitiv verfügbar als Eingabe zur Entscheidungseinheit zu Beginn des Zeitraums 7, um so in ein Eingangsregister geladen zu werden, in ein logisches OR versetzt und versandt über ein Ausgangsregister (Flipflop) zu den verschiedenen Prozessoren als ein Signal SIN, welches, wenn logisch inaktiv, die Bedeutung S.RETRY hat, d. h. Zustand „Neuversuch erforderlich" durch einen Besetztzustand der Ressource.
  • In der Zwischenzeit, mit dem Beginn des Zeitraums 5, kann der Cachespeicher der verschiedenen Prozessoren den notwendigen Snooping-Vorgang auslösen, welcher in dem dargestellten Beispiel 6 Zeiträume des Taktsignals benötigt, um abgeschlossen zu sein (obwohl er im Allgemeinen als eine Funktion je nach Anforderung programmierbar ist).
  • Somit können zu Beginn des Zeitraums 11 die verschiedenen Prozessoren jeweils den Code RESP.OUT, der dem Snooping-Vorgang folgt, auf die entsprechenden Leitungen des Busses legen.
  • Diese Codes, die definitiv als Eingabe zur Entscheidungseinheit 12 zu Beginn des Zeitraums 12 verfügbar sind, können in ein Eingangsregister geladen und so dekodiert werden, dass sie zu Beginn des Zeitraums 13 einen Ausgangscode RESP.IN, der an alle Prozessoren versandt wird, ausgeben.
  • Auch wenn ein einziger der Codes, die von der Entscheidungseinheit erhalten wurden, eine Notwendigkeit des Neuversuchs anzeigt, hat der Code RESP.IN die Bedeutung eines RETRY-Signals und wird als R.RETRY angezeigt, um es von dem Zustandsneuversuchsignal S.RETRY zu unterscheiden.
  • Schließlich, wenn der angeforderte Vorgang ein Lesevorgang ist und erfolgreich beendet wurde, kann die Speichersteuereinheit (in diesem Fall, nachdem Zugriff zum Bus angefordert und erhalten wurde) die erforderlichen Informationselemente auf dem Datenkanal ablegen, z. B. im Zeitraum 14.
  • In einem synchronen Kommunikationssystem wie dem beschriebenen entsprechen sich die verschiedenen Phasen des Kommunikationsprotokolls eins-zu-eins und es ist eventuell möglich, eine Entscheidung und einen Zugriff zum Systembus in jedem Zeitraum des Taktsignals durchzuführen, ohne dass es nötig ist, die verschiedenen Signale, die zu verschiedenen Zeitpunkten mittels einer Markierung oder „TAG"-Codes erzeugt werden, in Relation zu setzen.
  • In der Praxis ist es, um Konflikte, sogar nur vorübergehende, zwischen den verschiedenen Treiberschaltkreisen (vom Dreizustandslogik-Typ) der gleichen Mehrpunkt-Busleitung zu verhindern, zweckmäßig, die Vorgänge Entscheidung und Belegung des Busses alle zwei oder mehr Zeiträume des Taktsignals durchzuführen, um somit die Phasen, in denen die Treiber in Aktion sind, strikt zu trennen.
  • In diesem Fall müssen die Zugriffsanforderungssignale BRi für eine Dauer, die zumindest dem Entscheidungszeitraum entspricht, aktiviert sein.
  • Zum Beispiel kann in einer bekannten Weise, mit einem Kommunikationsprotokoll bekannt als „Hand-Shaking", die Deaktivierung der auswählbaren Anforderung BRi bestimmt werden durch Empfangen des entsprechenden deaktivierten Signals BGi.
  • Die vorstehende Beschreibung betrifft bekannte Aspekte der Systemarchitektur: die Ausführung von RETRY-Vorgangen ist unvermeidlich, wenn es gewünscht ist, eine verlängerte Belegung des Systembusses zu vermeiden, während man darauf wartet, dass erforderliche Ressourcen verfügbar sind oder bei ergebnislosen Situationen, bestimmt durch Konsistenzkonflikte.
  • Dennoch bedeuten, wie bereits dargelegt, die RETRY-Vorgänge eine Verschwendung von Ressourcen und sind mögliche Ursachen für Blockadesituationen oder Endlosschleifen, die verhindert werden müssen.
  • Zu diesem Zweck umfasst die Entscheidungseinheit 12, wie schematisch in 3 dargestellt, zusätzlich zur an sich herkömmlichen Entscheidungslogik 13 (ARB.LOGIC) und der Logik zum Sammeln und Versenden der Zustands- und Anforderungssignale 14 (STAT/REQ COLLECTOR/DESPATCHER), Letzteres ebenfalls herkömmlicher Art, eine Maskierungslogik 15 für pseudozufällige RETRY-Versuche, worin die Erfindung selbst liegt.
  • 4 zeigt den herkömmlichen Aufbau der Entscheidungslogik 13 für das System aus 1.
  • Die Zugriffsanforderungen BR1, .. BR4, MBR, werden in ein Eingangsregister IREG 16, getaktet von einem Taktsignal CLK (welches das gleiche Signal SYS CLK sein kann oder ein Signal mit einem Zeitraum, der ein Mehrfaches von dem des SYS CLK ist), eingegeben.
  • Die Ausgänge des Registers 16 sind als Eingang mit einem Satz von Maskengates 17, gesteuert von einem Maskencode MASK, verbunden.
  • Die Ausgänge der Gates 17 sind mit den Eingängen eines Prioritätslogiknetzwerks 18 (PRIOR.LOGIC NET.) verbunden, dessen Struktur von den übernommenen Prioritätskriterien (festgelegt, kreisförmig usw.) abhängt, wobei MBR immer die höchste Priorität hat.
  • Die Ausgänge des Logiknetzwerks 18 sind mit den Eingängen eines Ausgangsregisters O-REG 19, getaktet durch das Taktsignal CLK, verbunden.
  • Die Signale BG1, .. BG4, BGM sind am Ausgang des Registers 19 verfügbar und werden zu den entsprechenden Prozessoren (und der Speichersteuereinheit) und zu der Pseudozufalls-Maskierungslogik gesandt.
  • 5 zeigt den herkömmlichen Aufbau der Logik zum Sammeln und Versenden der Zustands- und Antwortsignale 14.
  • Die Zustandssignale SOUT (1, ... 4), SOUT.M werden in ein Eingangsregister I.REG 20, getaktet durch das Taktsignal SYS CLK, eingegeben.
  • Die Ausgänge vom Register 20 werden in ein OR-Gate 21 eingegeben, dessen Ausgang mit dem Eingang eines Registers (O.REG) 22, getaktet durch das Signal SYS CLK, verbunden ist.
  • Am Ausgang des Registers 22 ist das Signal S.IN mit dem Bedeutungszustand RETRY verfügbar, falls logisch inaktiv, welches an alle Prozessoren über den Systembus und die Pseudozufalls-Maskierungslogik versandt wird.
  • In einer genau gleichen Weise werden die Antwortcodes RESP OUT (1 ... 4), erzeugt von den verschiedenen Prozessoren, in ein Eingangsregister I.REG 23, getaktet durch das Taktsignal SYS CLK, eingegeben.
  • Die Ausgänge des Registers sind mit den Eingängen eines Decoders 24 verbunden, der einen Code mit der Bedeutung Antwort-RETRY-Signal ausgibt, auch wenn nur einer der eingegebenen Codes diese Bedeutung hat.
  • Die Codeausgabe wird in ein Ausgangsregister O.REG 25, getaktet durch das Taktsignal SYS CLK, eingegeben, und wird von diesem Register über den Systembus an alle Prozessoren sowie die Pseudozufalls-Maskierungslogik gesandt.
  • 6 zeigt ein Blockdiagramm der Logik eines bevorzugten Ausführungsbeispiels der Pseudozufalls-Maskierungslogik 15 für die Zugriffsneuversuche in Übereinstimmung mit der vorliegenden Erfindung.
  • Die Maskierungslogik umfasst im Wesentlichen eine Vielzahl von Maskierungslogikeinheiten 26, 27, 28, 29, in gleicher Anzahl wie die Prozessoren 1, ... 4, und vorzugsweise, aber nicht notwendigerweise, auch einen zyklischen Zähler 30 mit variabler Inkrementierung, gesteuert von dem OR der Signale BGi, angelegt als Eingang (oder sogar durch das periodische Taktsignal SYS CLK), der zyklisch ansteigende Werte annimmt, zum Beispiel 1, 2, 4, 8, 16, 32.
  • Die Logikeinheiten 26, 27, 28, 29 empfangen jeweils die Signale BG1, .. BG4 und gemeinsam das Signal S.IN, den Code RESP.IN (oder in einer gänzlich äquivalenten Weise ein Signal, dekodiert von RESP.IN mit der Bedeutung RETRY) und das Taktsignal SYS CLK.
  • Sie empfangen ebenfalls den Zählerwert CNT des Zählers vom Zähler 30, falls vorhanden.
  • Die Maskierungslogikeinheiten geben jeweils ein Maskierungssignal MASK1, ... MASK4 aus, aktiviert für eine Dauer, Letztere ausgedrückt als eine Anzahl von Zeiträumen des Taktsignals CLK, variierend als eine Funktion des Gerätezustands unabhängig für jedes Gerät.
  • Da die verschiedenen Maskierungslogikeinheiten identisch zueinander aufgebaut sind, zeigt 7 ein Blockdiagramm eines bevorzugten Ausführungsbeispiels von nur einer von diesen, insbesondere die mit dem Prozessor 1 verbundene Logikeinheit 26 (1).
  • Konzeptuell umfasst die Logikeinheit 26 eine Phasenlogik 31, eine Zustandsmaschine 32 und einen Zähler 33.
  • Die Phasenlogik 31, im Wesentlichen ein Paar von durch das Taktsignal SYS CLK gesteuerten Schieberegistern, empfängt das Signal BG1 und das Signal SIN als Eingabe und erzeugt zwei gegenseitig synchrone Signale D.BG1 und D.SIN als Ausgabe, welche zeitverzögert sind und als Eingabe zur Zustandsmaschine 32 dienen.
  • Die zwei Signale D.BG1 und D.SIN sind ebenfalls synchron zum Antwortcode RESP.IN nachfolgend zu BG1, so dass die Signale SIN, RESP.IN dem Prozessor 1 entsprechen, dem Zugriff auf den Bus gewährt wurde und von dessen Zugriff sie eine Folge sind.
  • Somit sind, insbesondere wenn S.IN und RESP.IN die Bedeutung RETRY haben, diese mit dem Prozessor in Beziehung, der den RETRY-Vorgang ausführen muss.
  • Die Zustandsmaschine 32 empfängt als Eingabe zusätzlich zu den Signalen D.BG1 und D.SIN den Code RESP.IN und das Taktsignal SYS CLK und entwickelt sich als eine Funktion derselben.
  • 8 stellt ein Zustandsdiagramm des Betriebs der Maschine 32 dar, welche nach Definition der Betriebsmodi in vielen verschiedenen Schaltkreisformen aufgebaut sein kann, einschließlich automatisch, mit der Hilfe von passenden Programmen zum Konstruieren und Simulieren von Logiknetzwerken.
  • Die Maschine wechselt von einem inaktiven Zustand (IDLE) 34 zu einem ersten aktiven Zustand (ACTIVE 1) 35 bei Erfüllung der Bedingung C1 = D.BG1*(DSRETRY + RRETRY), d. h. wenn das Signal D.SIN = DSRETRY die Bedeutung RETRY oder RESP.IN = RRETRY die Bedeutung RETRY hat und gemeinsam D.BG1 aktiviert ist (mit anderen Worten, wenn der Prozessor 1 gefordert ist, einen ersten RETRY-Versuch auszuführen).
  • Die Maschine wechselt vom ersten aktiven Zustand 35 nacheinander in einen zweiten, dritten, N – 1ten aktiven Zustand, immer bei Erfüllung der Bedingung C1, d. h. bei Erkennen der N – 1 folgenden RETRY-Signale, die für den Prozessor 1 bestimmt sind und dem vorhergehenden folgen (mit anderen Worten, wenn der Prozessor 1 gezwungen ist, 2, 3, ..., N – 1 RETRY-Versuche nacheinander durchzuführen).
  • Mit aufeinanderfolgenden RETRY-Signalen sind entsprechende RETRY-Signale gemeint, d. h. bestimmt für den gleichen Prozessor, die nicht mit für den gleichen Prozessor bestimmte Zustands- und Antwortsignalen durchsetzt sind, die eine Bedeutung (NULL, SHARED, MODIFIED) haben, die sich von der des RETRY unterscheiden.
  • Wenn jedoch die Bedingung C2 = D.BG1*(N/DSRETRY*N/RRETRY*N/SYSCLK)erfüllt ist, wobei N/ das Inversionszeichen darstellt und das Taktsignal N/SYSCLK sicherstellt, dass die Bedingung C2 erfüllt ist, wenn die anderen Signale einen stabilen Zustand aufweisen, wechselt die Zustandsmaschine vom ersten aktiven Zustand 35 zum inaktiven Zustand 34 und von den aktiven Zuständen nach dem ersten zu einem vorhergehenden Zustand, welcher der inaktive oder ein zwischenaktiver Zustand sein kann.
  • Zum Beispiel ist in 8 eine Rückkehr vom aktiven Zustand 36 (ACTIVE N – 1) zum ersten aktiven Zustand bei Erfüllung der Bedingung C2 gezeigt, d. h. wenn der RETRY-Versuch der letzte in einer Reihe von aufeinanderfolgenden Versuchen ist.
  • Andererseits wechselt die Maschine vom Zustand 36 zu einem aktiven Zustand 37 (ACTIVE N) bei Erfüllung einer nten aufeinanderfolgenden RETRY-Signalisierung in Verbindung mit dem gleichen Prozessor, d. h. bei Erfüllung der Bedingung C1 in der Ausführung des N-ten RETRY-Versuchs.
  • Während dieses Übergangs erzeugt die Maschine ein Signal LOAD2, dessen Funktion es ist, den Zähler 33 (7) mit einem Zählerwert gleich 2 zu laden und eine Verringerung des normalerweise inaktiven Zählers bei jedem nachfolgenden Impuls, empfangen vom periodischen Signal CLK (oder SYSCLK), zu erlauben.
  • Wie später zu sehen sein wird, aktiviert der Zähler 33 für jeden Zustand, der einen Zählerwert anders als Null darstellt, ein Signal MASK1, das als Eingabe zur Entscheidungslogik (Maskengates 17 der 4) angewandt wird, das Signal BR1 maskiert und verhindert, dass das Entscheidungsnetzwerk dieses Signal berücksichtigt, selbst wenn es aktiviert ist.
  • Somit wird nach N RETRY-Signalen, im Beispiel N = 5, bestimmt für den Prozessor 1, und der nachfolgenden Ausführung von N RETRY-Versuchen eine folgende Zugriffsanforderung durch zwei Entscheidungsperioden maskiert, mit der Erwartung, dass nach diesem Zeitintervall die Ausführung eines N + 1nten RETRY erfolgreich durchgeführt werden kann.
  • Wenn diese Vorgang auch fehlschlägt und die Bedingung C1 wiederum erfüllt ist, wechselt die Zustandsmaschine vom Zustand 37 zum aktiven Zustand 38 (ACTIVE N + 1).
  • Im Laufe dieses Übergangs erzeugt die Maschine ein Signal LOAD4, welches den Zähler 33 mit einem Zählerwert gleich 4 lädt, so dass eine folgende Zugriffsanforderung BG1 des Prozessors 1 für einen n + 2ten RETRY-Versuch für eine noch längere Zeitdauer maskiert wird.
  • Wenn auch diese Vorkehrung erfolglos ist und die Bedingung C1 wieder erfüllt ist, wechselt die Maschine vom Zustand 38 zum aktiven Zustand 39 (ACTIVE N + 2).
  • Im Laufe dieses Übergangs erzeugt die Maschine ein Signal LOAD8, welches den Zähler 33 mit einem Zählerwert gleich 8 lädt, so dass eine folgende Zugriffsanforderung des Prozessors 1 für den RETRY-Vorgang für eine noch längere Zeitdauer maskiert wird.
  • Weitere aufeinanderfolgende Zustände können, falls erwünscht, ebenfalls vorgesehen werden, bis zu einem Zustand ACTIVE N + K.
  • Im Zustand 39 (ACTIVE N + 2 oder ACTIVE N + K wenn K > 2), kann jede aufeinanderfolgende Erkennung eines RETRY-Signals (Bedingung C1 erfüllt) das Laden des Zählers 33 mit dem gleichen Zahlenwert verursachen (8 oder mehr).
  • Jedoch ist vorzugsweise, um in einer Weise zu versenden, die noch zufälliger ist im Zeitablauf der aufeinanderfolgenden Zugriffsanforderungen nach einem RETRY-Signal, ein zyklischer Zähler 30 (6) vorgesehen, der einen Zeit verändernden Binärwert liefert.
  • Somit ist der Befehl, der bei jeder erfüllten Bedingung C1 ausgegeben wird, wobei die Maschine im Zustand 39 ist, zweckmäßigerweise gleich LOAD CNT, wobei CNT der Zählerwert des Zählers 30 zu jedem Zeitpunkt ist.
  • Der Wert CNT wird in den Zähler 33 geladen, der somit eine folgende Zugriffsanforderung zum Prozessor 1 maskiert, für eine Anzahl von Entscheidungszeiträumen gleich CNT.
  • Die Maschine kehrt von den Zuständen 37, 38, 39 zu einem vorhergehenden Zustand zurück, der vorzugsweise an anderer als der inaktive Zustand und zum Beispiel der Zustand 36 ist, bei Erfüllung der Bedingung C2.
  • Mit anderen Worten, die Maschine „erinnert sich" daran, dass dem letzten dem Prozessor 1 gewährten Zugriff unmittelbar zeitmaskierte RETRY-Versuche vorangingen und überprüft, bevor sie ihren inaktiven Zustand einnimmt, dass beim Neuversuchzugriff auf dem Teil der gleichen Maschine zumindest ein weiterer Zugriff folgt, der erfolgreich abgeschlossen wurde, d. h. kein RETRY-Signal verursacht.
  • Wie in 9 dargestellt, kann der Zähler 33 einen binären Zähler 40 mit 5 Zellen, mit einer Takteingabe CK, welche das Signal SYSCLK als Verringerungsbefehl empfängt, parallel voreingestellten Eingängen verbunden mit den Ausgängen eines Decoders 41, der wiederum die verschiedenen Signale LOADxx (xx = 2, 4, 8, CNT) von der Zustandsmaschine 32 empfängt, und einem parallelen Ladebefehlseingang P.LOAD, der über ein AND-Gate 42 das OR (OR-Gate 43) der Signale LOADxx empfängt, umfassen.
  • Die Ausgänge des Zählers sind als Eingang am NOR-Gate 44 als Ausgang angelegt, aus dem das Signal MASK1 bei aktiviertem Logikniveau (elektrisch 0) für alle Zählerzustände, die einen Wert anders als 0 darstellen, verfügbar ist.
  • Dieses Signal wurde zu demjenigen Maskengate der Maskengates 17 gesandt, welches die Übergabe des aktivierten Signals BR1 an das Entscheidungsnetzwerk bedingt (4); logisch deaktiviert, wird es als Bedingung verwendet, um eine parallele Voreinstellung des Zählers zu ermöglichen und, wenn am Eingang EN angelegt, um eine Verringerung des Zählers 44 zu verhindern, sobald der Zählerzustand 0 erreicht ist.
  • Es ist klar, dass vom Gesichtspunkt des Schaltkreises die Zustandsmaschine 32 ähnlich aufgebaut sein kann, wobei sie passend einen Zähler mit Decodern für die Ausgabe und für die voreingestellten Konfigurationen kombiniert.
  • Somit ist die Entscheidungseinheit entstanden, die die Maskierung mit einer Pseudozufallsdauer der Zugriffsneuversuche durch die verschiedenen Prozessoren erlaubt, was die Anzahl von vorher ausgeführten Versuchen erhöht.
  • Die Einheit ist extrem flexibel und vielseitig und kann für verschiedene Erfordernisse angepasst werden, da verschiedene Parameter frei gewählt werden können:
    • – es ist möglich, nach Wunsch die Anzahl N der aufeinanderfolgenden RETRY-Signale zu wählen (und folglich der RETRY-Versuche, die durch diese ausgelöst werden), die auf den gleichen Prozessor gerichtet sind, nach welchem der Maskierungsmechanismus eingreift, sowie die Anzahl K der weiteren folgenden RETRY-Signale (und Versuche) als eine Funktion, deren Dauer der Maskierungszeit zu variieren ist,
    • – es ist möglich, die – vorzugsweise steigende – variable Dauer der Maskierungszeit zu wählen, ausgedrückt als eine Anzahl von Entscheidungs- oder Systemzeiträumen, sowie die Dauer der Maskierungszeit, bestimmt durch die Intervention des Zählers 30 oder, anstelle von diesem, durch einen höher entwickelten Generator von Zufallszahlen, die durch das Taktsignal SYS CLK entstehen,
    • – es ist möglich, nach Wunsch das Kriterium zu wählen, mit welchem die Dauer der Maskierungszeit verändert und vorzugsweise erhöht wird, als eine Funktion der Anzahl von vorherigen RETRY-Signalen (gemäß einem exponentiellen Kriterium zur Basis 2, wie beispielhaft dargestellt, der Multiplikation durch einen festen oder variablen Faktor oder dergleichen),
    • – die „Speicherbeharrlichkeit", d. h. die Rückkehrroute der Zustandsmaschine zum inaktiven Zustand kann innerhalb weit gesteckter Grenzen gewählt werden.
  • Da es weiterhin im Allgemeinen in Multiprozessorsystemen möglich ist, auf der Grundlage der Signale S.IN, RESP.IN zwischen RETRY-Versuchen aufgrund der Nichtverfügbarkeit der Ressource und RETRY-Versuchen aufgrund von Konflikten, die während dem Snooping erkannt wurden, zu unterscheiden, können die variablen Maskierungszeiten auf die zwei unterschiedlichen Umstände angepasst werden.
  • 10 zeigt schematisch eine Maskierungslogikeinheit, die wahlweise als eine Funktion verschiedener Arten von RETRY-Signalen, welche sie aktivieren, funktioniert.
  • Die Logikeinheit umfasst, die im Beispiel der 7, eine Phasenlogik 31, einen Zähler 33 und eine Zustandsmaschine, die, anders als diejenige der 7, aus zwei verschiedenen Abschnitten 32A und 32B besteht.
  • Der Abschnitt 32A kann zum Beispiel wie im Zustandsdiagramm der 8 gezeigt funktionieren und als ein Ergebnis der Bedingungen C1 und C2 entstehen, d. h. als ein Ergebnis aufeinanderfolgender RETRY-Versuche, was immer der Grund hierfür ist.
  • Anders als der Abschnitt 32A kann der Abschnitt 32B andererseits als ein Ergebnis nur der mit dem Code RESP.IN (und nachfolgender Snooping-Vorgänge) angeforderten RETRY-Versuche und in einer anderen Weise als derjenige des Abschnitts 32A entstehen und zum Beispiel durch das Zustandsdiagramm aus 11 dargestellt sein, d. h. als ein Ergebnis von aufeinanderfolgenden RETRY-Signalen, bestimmt ausschließlich durch einen Konsistenzkonflikt.
  • Mit aufeinanderfolgend ist in diesem Fall eine durch einen Konsistenzkonflikt (R.RETRY) bestimmte RETRY-Signalisierung gemeint, die mit dem gleichen Prozessor zusammenhängen und nicht von anderen Antwortsignalen durchsetzt sind, die mit dem gleichen Prozessor in Verbindung stehen, in welchem der Code RESP.IN eine andere Bedeutung hat wie R.RETRY, d. h. das Signal R.RETRY wird negiert.
  • Der Abschnitt 32B wechselt vom inaktiven Zustand 45 zum Zustand 46 bei Erfüllung der Bedingung C3 = D.BG1*RRETRY, und dann zum Zustand 47, wenn die gleiche Bedingung nochmals erfüllt ist.
  • Im Laufe des Übergangs vom Zustand 46 zum Zustand 47 wird ein Signal LOAD4 erzeugt, welches, wenn es zum Zähler 33 gesandt wird, die Aktivierung des Maskensignals für eine Dauer von vier Entscheidungsperioden hervorruft.
  • In ähnlicher Weise wird beim Übergang vom Zustand 47 zu einem Zustand 48, wenn die Bedingung C3 wiederum erfüllt ist, das Signal LOAD8 an den Zähler 33 gesandt und dann, bei der nachfolgenden Erkennung der Bedingung C3 im Zustand 48, zu dem Signal LOAD CNT.
  • Eine Rückkehr vom Zustand 46 zum inaktiven Zustand tritt ein, wenn die folgende Bedingung erfüllt ist C4 = SYSCLK*D.BG1*N/RRETRY.
  • Die gleiche Bedingung bestimmt den Übergang vom Zustand 47 oder 48 zum Zustand 46.
  • Die vorstehende Beschreibung betrifft lediglich ein bevorzugtes Ausführungsbeispiel, dargestellt durch ein nicht einschränkendes Beispiel.
  • Es ist jedoch offensichtlich, dass viele Variationen durchgeführt werden können.
  • Zum Beispiel kann die Entscheidungseinheit auch die Rolle der Speichersteuereinheit ausfüllen und Adressen und Befehle vom Systembus empfangen, auf deren Grundlage das angeforderte Modul gewählt werden soll, falls verfügbar, oder das Besetztsignal S.IN der Ressource zu erzeugen, falls diese bereits besetzt ist.
  • Es ist auch möglich, die Wiederverbindung des Speichers mit dem Systembus vorzusehen, im Falle von Lesevorgängen und um diese nicht aufzuschiebende Notwendigkeit zu berücksichtigen, wenn die Zugriffsentscheidungen durchgeführt werden.
  • Es ist somit offensichtlich, dass die verschiedenen Maskierungslogikeinheiten, wie z. B. 26, 27, 28, 29 in 6, anstatt in der Entscheidungseinheit (vorzugsweise in einem einzelnen integrierten Schaltkreis) „konzentriert" zu sein, dezentralisiert und integriert sein können, jede im entsprechenden Prozessor.
  • In diesem Fall wird die Maskierung der Zugriffsressourcen BRi stromaufwärts des Systembusses ausgeführt.
  • Auch kann der Zähler 33, statt vorab in einer Konfiguration angeordnet zu sein, welche die Anzahl von Entscheidungsperioden, über welche das Maskensignal aktiviert ist, darstellt und dann verringert, vorab in einer Konfiguration angeordnet sein, dessen Ergänzung der Kapazität des Zählers die Dauer des Maskensignals darstellt und dann erhöht wird.
  • Das Mehrprozessorsystem kann, statt vom synchronen Typ zu sein, vom asynchronen Typ sein: in diesem Fall müssen „TAGs" mit den Zustands- und Antwortsignalen verbunden sein, um eine Verwirrung zwischen Signalen, die sich zu verschiedenen Zeitpunkten selbst darstellen, zu vermeiden, wobei die „TAGs" es ermöglichen, den Zugriff zum Systembus, auf den sie sich beziehen, zu identifizieren, und somit die Signale mit dem Prozessor, der den Zugriff angefordert hat, zu verknüpfen, einem Vorgang analog zum Phasenabgleich.
  • Die vorübergehende Maskierung der Zugriffsanforderungen kann dann mit den oben erwähnten Kriterien der Dauer, die als eine Funktion der Anzahl von RETRY-Signalen variiert und auf einem periodischen Taktsignal basiert, das auch keinen Zusammenhang mit dem Entscheidungszyklus haben kann, ausgeführt werden.
  • Die vorübergehende Maskierung ist auch in diesem Fall machbar, wenn auch kompliziert.
  • Es ist somit offensichtlich, dass zum Zwecke der Vereinfachung, wenn keine Intervention gefordert ist, die sich als eine Funktion des Typs eines Ereignisses (Ressource belegt, Konsistenzkonflikt), das den RETRY-Vorgang auslöst, unterscheidet, es ausreicht, ein einzelnes RETRY-Signal im Kommunikationsprotokoll anzuwenden.

Claims (7)

  1. Entscheidungseinheit (12) eines Zugriffs zu einem Bus (5) eines Mehrprozessorsystems für einen Zugriff über den Bus zu gemeinsam genutzten Systemressourcen (6, 1, .. 4), wobei in dem System jeder Prozessor (1, .. 4) von einer Vielzahl von Prozessoren, um zu einer gemeinsam genutzte Ressource zuzugreifen, eine Zugriffsanforderung BRi zu der Entscheidungseinheit (12) aufweist und von letzterer ein Zugriffsfreigabesignal BGi zu dem Systembus empfängt, und wobei in dem System der Besetztzustand der Ressource oder ein Übereinstimmungskonflikt, welche mit einem RETRY-Signal signalisiert werden, den Prozessor zwingen zur Ausführung eines RETRY-Versuchs für einen Zugriff zu der Ressource mit der Lieferung an die Entscheidungseinheit einer anderen folgenden Zugriffsanforderung BRi, wobei die Entscheidungseinheit eine erste Logikeinrichtung (31) zum Korrelieren des RETRY-Signals mit dem Prozessor, welcher den RETRY-Versuch ausführen soll, umfasst und dadurch gekennzeichnet ist, dass sie eine zweite Logikeinrichtung (32, 33) umfasst, welche in Reaktion auf eine vorbestimmte Anzahl N von aufeinander folgenden RETRY-Versuchen des Prozessors, wobei die Versuche erkannt werden durch das RETRY-Signal und die erste Einrichtung (31), jede von sukzessiven und aufeinander folgenden Zugriffsanforderungen BRi des Prozessors für ein Zeitintervall, variierend mit der Anzahl von weiteren RETRY-Versuchen des Prozessors, welche nacheinander der vorbestimmten Anzahl N von RETRY-Versuchen folgen, maskiert.
  2. Entscheidungseinheit (12) nach Anspruch 1, wobei die Entscheidungseinheit arbeitet auf der Grundlage von Entscheidungszyklen, definiert durch einen periodischen Takt und ein Synchronisiersignal für das System, und wobei die zweite Logikeinrichtung (32) in Reaktion auf die vorbestimmte Anzahl N von RETRY-Versuchen jede von sukzessiven und aufeinander folgenden Zugriffsanforderungen des Prozessors für eine Anzahl von Perioden des Taktsignals, variierend mit der Anzahl von aufeinander folgenden RETRY-Versuchen des Prozessors, welche nacheinander folgen auf die vorbestimmte Anzahl N von RETRY-Versuchen, maskiert.
  3. Entscheidungseinheit (12) nach Anspruch 2, wobei der Besetztzustand einer Ressource und der Übereinstimmungskonflikt der Logikeinrichtung (32) jeweils signalisiert werden mit einem Zustandsneuversuchsignal S.RETRY und einem Antwortneuversuchsignal R.RETRY, welche verschieden voneinander sind, und wobei die vorbestimmte Anzahl N eine erste Anzahl für aufeinander folgende RETRY-Versuche, festgelegt durch das Antwortneuversuchsignal R.RETRY, und eine zweite Anzahl für aufeinander folgende RETRY-Versuche, festgelegt durch das Zustand-S.RETRY-Neuversuchsignal oder das Antwort-R.RETRY-Neuversuchsignal, ist.
  4. Entscheidungseinheit (12) nach Anspruch 2 oder 3, wobei die variierende Anzahl von Taktsignalperioden zunimmt mit der Anzahl der aufeinander folgenden RETRY-Versuche, welche nacheinander auf die vorbestimmte Anzahl N von RETRY-Versuchen folgen, bis zu einer Anzahl N + K von aufeinander folgenden RETRY-Versuchen und während N + K einen vorbestimmten Wert annimmt.
  5. Entscheidungseinheit (12) nach Anspruch 4, umfassend einen Generator von Pseudozufallszahlen (30), welcher verbunden ist mit der zweiten Logikeinrichtung, und wobei, nachdem eine Anzahl der aufeinander folgenden RETRY-Versuche größer ist als N + K, die variierende Anzahl von Taktsignalperioden gleich einer durch den Generator generierten Pseudozufallszahl ist.
  6. Entscheidungseinheit nach Anspruch 5, wobei der Generator von Pseudozufallszahlen einen zyklischen Zähler umfasst, welcher durch das Taktsignal aktiviert wird.
  7. Entscheidungseinheit nach den vorhergehenden Ansprüchen, wobei die zweite Logikeinrichtung eine Vielzahl von Zustandsmaschinen (32), eine für jeden der Prozessoren, umfasst, wobei jede der Zustandsmaschinen sich entwickelt aus einem Anfangszustand zu sukzessiven aktiven Zuständen, in Reaktion auf jeden, mit Ausnahme des letzten, von aufeinander folgenden RETRY-Versuchen von ein und demselben Prozessor unter den Prozessoren, wobei jede Zustandsmaschine übergeht von einem der aktiven Zustände zu einem der Zustände, welche dem einen aktiven Zustand vorangehen, in Reaktion auf den letzten der aufeinander folgenden RETRY-Versuche, und, wenn der vorhergehende Zustand aktiv ist, übergeht von dem vorhergehenden Zustand zu dem Anfangszustand, in Reaktion auf die Ausführung eines Zugriffsvorgangs, welcher nicht neu versucht werden muss, durch denselben Prozessor.
DE69632634T 1996-12-13 1996-12-13 Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit Expired - Lifetime DE69632634T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP96830621A EP0848332B1 (de) 1996-12-13 1996-12-13 Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit

Publications (2)

Publication Number Publication Date
DE69632634D1 DE69632634D1 (de) 2004-07-08
DE69632634T2 true DE69632634T2 (de) 2005-06-09

Family

ID=8226074

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69632634T Expired - Lifetime DE69632634T2 (de) 1996-12-13 1996-12-13 Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit

Country Status (3)

Country Link
US (1) US5941967A (de)
EP (1) EP0848332B1 (de)
DE (1) DE69632634T2 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330632B1 (en) * 1998-09-30 2001-12-11 Hewlett-Packard Company System for arbitrating access from multiple requestors to multiple shared resources over a shared communications link and giving preference for accessing idle shared resources
US6502150B1 (en) * 1998-12-03 2002-12-31 Intel Corporation Method and apparatus for resource sharing in a multi-processor system
US6718422B1 (en) * 1999-07-29 2004-04-06 International Business Machines Corporation Enhanced bus arbiter utilizing variable priority and fairness
US6704822B1 (en) * 1999-10-01 2004-03-09 Sun Microsystems, Inc. Arbitration protocol for a shared data cache
US7558923B1 (en) * 1999-12-22 2009-07-07 Intel Corporation Prevention of live-lock in a multi-processor system
US6523098B1 (en) * 1999-12-22 2003-02-18 Intel Corporation Mechanism for efficient low priority write draining
US6701397B1 (en) * 2000-03-21 2004-03-02 International Business Machines Corporation Pre-arbitration request limiter for an integrated multi-master bus system
US6816923B1 (en) * 2000-07-31 2004-11-09 Webtv Networks, Inc. Arbitrating and servicing polychronous data requests in direct memory access
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6516393B1 (en) 2000-09-29 2003-02-04 International Business Machines Corporation Dynamic serialization of memory access in a multi-processor system
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6658510B1 (en) 2000-10-18 2003-12-02 International Business Machines Corporation Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US7234029B2 (en) 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US6971098B2 (en) 2001-06-27 2005-11-29 Intel Corporation Method and apparatus for managing transaction requests in a multi-node architecture
US7111298B1 (en) * 2001-09-04 2006-09-19 Emc Corporation Inter-processor competition for a shared resource
US6973520B2 (en) * 2002-07-11 2005-12-06 International Business Machines Corporation System and method for providing improved bus utilization via target directed completion
US7065596B2 (en) * 2002-09-19 2006-06-20 Intel Corporation Method and apparatus to resolve instruction starvation
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
US20060041705A1 (en) * 2004-08-20 2006-02-23 International Business Machines Corporation System and method for arbitration between shared peripheral core devices in system on chip architectures
JP2007087247A (ja) * 2005-09-26 2007-04-05 Nec Electronics Corp バス制御システム
WO2008018969A1 (en) * 2006-08-04 2008-02-14 Parallel Computers Technology, Inc. Apparatus and method of optimizing database clustering with zero transaction loss
US20080091879A1 (en) * 2006-10-12 2008-04-17 International Business Machines Corporation Method and structure for interruting L2 cache live-lock occurrences
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US7739455B2 (en) * 2007-06-22 2010-06-15 Mips Technologies, Inc. Avoiding livelock using a cache manager in multiple core processors
US7769958B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Avoiding livelock using intervention messages in multiple core processors
US7747803B2 (en) * 2007-11-28 2010-06-29 International Business Machines Corporation Device, system, and method of handling delayed transactions
KR101420290B1 (ko) * 2008-05-14 2014-07-17 삼성전자주식회사 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
JP5127927B2 (ja) 2008-08-22 2013-01-23 三菱電機株式会社 バスコントローラ及びバス通信システム及びバス制御方法
JP2010286983A (ja) * 2009-06-10 2010-12-24 Renesas Electronics Corp バス調停回路及びバス調停方法
US8984194B2 (en) * 2011-01-21 2015-03-17 Numia Medical Technology Llc Multi-master bus arbitration and resource control
US9298507B2 (en) 2013-09-26 2016-03-29 International Business Machines Corporation Data processing resource management
US10871992B2 (en) * 2018-05-30 2020-12-22 Texas Instruments Incorporated Level two first-in-first-out transmission

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324544A (ja) * 1992-05-15 1993-12-07 Hitachi Ltd バス制御方法
CA2140685A1 (en) * 1994-01-28 1995-07-29 Randy M. Bonella Bus master arbitration circuitry having improved prioritization
WO1996035175A2 (en) * 1995-05-02 1996-11-07 Apple Computer, Inc. Deadlock avoidance in a split-bus computer system
US5706446A (en) * 1995-05-18 1998-01-06 Unisys Corporation Arbitration system for bus requestors with deadlock prevention
US5781745A (en) * 1996-05-20 1998-07-14 3Com Corporation High speed communication bus

Also Published As

Publication number Publication date
DE69632634D1 (de) 2004-07-08
EP0848332A1 (de) 1998-06-17
EP0848332B1 (de) 2004-06-02
US5941967A (en) 1999-08-24

Similar Documents

Publication Publication Date Title
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE69632369T2 (de) HDLC-Anordnung mit verteiltem internen Bus
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
DE3300261C2 (de)
EP1057117B1 (de) VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE69021603T2 (de) Buszugriffsarbitrierung in digitalen Rechnern.
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE3300262C2 (de)
DE2809405C3 (de) Prioritätssteuerschaltung
DE68928772T2 (de) Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2162806A1 (de) Digitales Eingabe-Ausgabe-Steuersystem mit Kanalpufferung
DE3606211A1 (de) Multiprozessor-computersystem
DE2953861C2 (de)
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE68924435T2 (de) Nichtblockierender NxM-Arbitrierungsschalter mit grosser Bandbreite.
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
EP3417373A1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts
DE69726400T2 (de) Festkörper-datenprozessor mit vielseitiger mehrquellen-unterbrechungsorganisation
DE69025580T2 (de) Auffrichungspuffer für Speicherkarte
DE68926374T2 (de) Seriellumsetzungssteuerungssystem für Hauptspeicherreferenz

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

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

8364 No opposition during term of opposition