DE3750938T2 - Multiprozessorsystem. - Google Patents
Multiprozessorsystem.Info
- Publication number
- DE3750938T2 DE3750938T2 DE3750938T DE3750938T DE3750938T2 DE 3750938 T2 DE3750938 T2 DE 3750938T2 DE 3750938 T DE3750938 T DE 3750938T DE 3750938 T DE3750938 T DE 3750938T DE 3750938 T2 DE3750938 T2 DE 3750938T2
- Authority
- DE
- Germany
- Prior art keywords
- processor
- group
- memory
- lma
- sync
- 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
Links
- 230000015654 memory Effects 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 15
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
Description
- Diese Erfindung betrifft ein Kommunikationsschema zwischen Prozessoren in einer Multiprozessor-Computerarchitektur. Insbesondere betrifft diese Erfindung eine Verbesserung des Zugriffs auf einen gemeinsamen Speicher, der sich in jeder Prozessorgruppe befindet und zur Zwischenprozessor- Datenübertragung verwendet wird.
- In den vergangenen Jahren wurde intensiv ein Multiprozessorsystem verwendet, bei dem eine Vielzahl von Prozessoren vorgesehen sind, mit denen eine Datenverarbeitung gleichzeitig parallel ausgeführt wird, so daß ein Hochgeschwindigkeitsbetrieb realisiert werden konnte, den ein einzelner Prozessor niemals erreicht. Unter verschiedenen Arten von Multiprozessor-Systemen bezieht sich die vorliegende Erfindung auf ein derartiges System, welches einen gemeinsamen Speicher aufweist, welcher sich in jeder Prozessorgruppe exklusiv zum Transferieren der Daten befindet, wie in Figur 1 gezeigt. Um den Hochgeschwindigkeitsbetrieb zu erreichen, wird von den sich im Betrieb befindlichen Prozessoren gefordert, daß ein Datentransfer zwischen den Prozessoren zu einer Datenverarbeitung darin synchronisiert sein muß. Der voranstehend erwähnte Ausdruck "synchronisiert" oder "Synchronisation" wird im folgenden verwendet, um eine Einstellung einer Zeitgabe zu bezeichnen, um die Aufträge (im folgenden als Tasks bezeichnet), die miteinander konkurrieren zu starten und zu stoppen. Deshalb war in dem Multiprozessorsystem für einen schnellen Betrieb dieser Synchronisation eine Bedienungseinrichtung notwendigerweise erforderlich.
- Ein Verfahren zur Prozessorsynchronisation, welches in dem herkömmlichen System mittels einer Software-Steuerung angewendet wurde, ist in Figur 2 gezeigt. Ein Prozessor PA mit seinem lokalen Speicher LMA, d.h. einem Speicher, auf den von seinem Prozessor direkt zugegriffen wird, und ein anderer Prozessor PB mit seinem lokalen Speicher LMB sind mittels eines Kommunikationsnetzes 3 als Kommunikationseinrichtung untereinander verbunden und bilden somit ein Multiprozessorsystem. Das Kommunikationsnetz 3 kann ein Bus oder ein anderes Netz sein, beispielsweise ein lokales Netz oder eine Telefonleitung. Damit der zweite Prozessor PB von den Speicher LMA des ersten Prozessors PA liest oder in diesen hineinschreibt, muß der zweite Prozessor PB den Status des lokalen Speichers LMA durch die Merker oder Flags durch das Kommunikationsnetz 3 durch Verwendung eines vorgegebenen Protokolls überprüfen. Mit anderen Worten ausgedrückt, sind einige bestimmte Bits, sogenannte Semaphor-Flags auf dem Speicher vorgesehen und die Synchronisation wird unter Verwendung der Semaphor-Flags durch den sogenannten "Test und Setz"-Befehl ausgeführt. Die Probleme dieses Verfahrens sind: 1) Die Software zur Synchronisation ist sehr komplex und benötigt eine große Menge von Zusatzoperationen, d.h. eine für indirekte Jobs benötigte Operation, obwohl die Hardware einfacher als das nachstehend beschriebene zweite Verfahren ist, und 2) die Kommunikation für die Synchronisationssteuerung über das Netz verursacht einen Anstieg des Verkehrs auf dem Netz. Demzufolge wird der Wirkungsgrad des Netz-Durchsatzes verschlechtert oder von dem Netz wird gefordert, daß es eine höhere Leistungsfähigkeit aufweist.
- Ein zweites Verfahren zur Prozessorsynchronisation, welches in dem herkömmlichen System durch eine Hardware-Steuerung erreicht wird, ist in Figur 3 gezeigt. Ähnlich wie die Konfiguration in Figur 2 weisen die Prozessoren PA und PB jeweils den lokalen Speicher mit einer Steuerleitung 4 zwischen zwei Prozessoren auf und weisen eine Kommunikationseinrichtung 5 und 5' auf, die direkt von einem Prozessor zu dem lokalen Speicher des anderen Prozessors verbunden ist. Jede der Kommunikationseinrichtungen 5 und 5' umfaßt einen Datenbus 52 und eine Steuerleitung 51 für die Zugriffssteuerung. Die Leitung 4 wird exklusiv zur Synchronisationssteuerung verwendet. In diesem System ist die Belastung der Software und auch die Zusatzoperationen des Systems gering. Jedoch muß die Leitung 4 zur Synchronisation zwischen allen Prozessoren eingerichtet werden, um einen vollständigen Graph zu bilden, wie in Figur 4 gezeigt, in der beispielsweise fünf Prozessoren P1 bis P5 enthalten sind. Die erforderliche Menge von Steuerleitungen 4 für das System ist n(n-1), wobei n die Anzahl der Prozessoren bezeichnet. Deshalb besteht das Problem darin, daß die Hardware-Struktur des Systems viel zu kompliziert wird, um auf ein aufwendiges Mikroprozessorsystem angewendet zu werden.
- Ein drittes Verfahren zur Prozessorsynchronisation wird durch eine Hardware oder eine Kombination einer Hardware und einer Software ausgeführt, wie in "Multiprocessor Cache Synchronization" von Philip Bitar et al. on IEEE International Symposium on Computer Architecture 1986 berichtet wird. Jedoch existieren hier die gleichen Probleme wie diejenigen bei der Softwaresteuerung.
- Die jüngsten Trends des Multiprozessorsynchronisationssystems werden auch in den folgenden Veröffentlichungen berichtet: "A Class of Compatible Cache Consistency Protocols and their Support by the IEEE Futurebus" von Paul Sweazey et al. über das gleiche Thema und "Cache Coherence Protocols: Evaluation Using Multiprocessor Simulation Model" von James Archibald et al. auf ACM (Association for Computing Machinery) Transaction on Computer Systems, Volume 4, Nr. 4, November 1986.
- Es ist eine allgemeine Aufgabe der Erfindung deshalb ein Multiprozessorsystem vorzusehen, welches für die Prozessorsynchronisation eine einfache Hardware-Konfiguration aufweist sowie keine Belastung an die Software stellt und welches einen Hochgeschwindigkeits-Prozessorbetrieb und eine hohe Leistungsfähigkeit des Netzes erzielt.
- Gemäß dem Multiprozessorsystem der Erfindung sind bei jeder Prozessorgruppe ein Satz von Flag-Bits, d.h. ein SPERR-Bit und ein SYNC-Bit und eine Steuerschaltung zur Steuerung von Zugriffen auf einen lokalen Speicher vorgesehen. Wenn sich das SPERR-Bit in einem SETZ-Zustand befindet, wird ein Auslesen des lokalen Speichers in der ersten Prozessorgruppe von dem zweiten Prozessor gesperrt, während der erste Prozessor in den lokalen Speicher hineinschreibt. Das SYNC- Bit in einem RÜCKSETZ-Zustand nimmt eine Leseanfrage an den lokalen Speicher von dem zweiten Prozessor an, nachdem der erste Prozessor den Schreibvorgang in den lokalen Speicher hinein beendet, und außerdem verhindert es einen Schreibvorgang in den lokalen Speicher von dem ersten Prozessor. Demzufolge kann das Setzen des SPERR-Bits sowie das Zurücksetzen des SYNC-Bits innerhalb jeder Gruppe ohne Verwendung der Netzkommunikation ausgeführt werden. Außerdem wird das Setzen des SYNC-Bits implizit durch den Speicherzugriff ausgeführt, mit anderen Worten benötigt dieser Vorgang keine Netzkommunikation.
- Deshalb ist die Software frei von dem Job für eine Synchronisation und das Netz für die Synchronisationssteuerung wird durch die Zugriffs- Steuerleitungen ersetzt. Somit wird wegen der Beseitigung der Synchronisationssteuerung über das Netz ein verringerter Netzverkehr oder ein weniger ausgefeiltes Netz erreicht, was zu einem Hochgeschwindigkeits-Prozessorbetrieb sowie einer hohen Leistungsfähigkeit des Netzes führt.
- Die voranstehend erwähnten Merkmale und Vorteile der vorliegenden Erfindung werden zusammen mit anderen Aufgaben und Vorteilen, die sich ergeben, eingehender unter Bezugnahme auf die beiliegenden Zeichnungen, die einen Teil davon bilden, beschrieben, wobei gleiche Bezugszahlen überall gleiche Teile bezeichnen. Die Erfindung und ihre Ausführungsformen werden eingehender in der folgenden ausführlichen Beschreibung unter Bezugnahme auf die Zeichnungen erläutert. In den Zeichnungen zeigen:
- Figur 1 ein allgemeines Konzept eines Multiprozessorsystems, welches einen Speicher zum Datentransfer verwendet;
- Figur 2 eine schematische Konfiguration eines herkömmlichen Mikroprozessorsystems, bei dem die Synchronisation durch Software gesteuert wird;
- Figur 3 eine schematische Konfiguration eines herkömmlichen Multiprozessorsystems, bei dem die Synchronisation durch Hardware mit einer zusätzlichen Software zur Synchronisationssteuerung gesteuert wird;
- Figur 4 erforderliche Netze in der Konfiguration der Figur 3;
- Figur 5 eine schematische Konfiguration eines Multiprozessorsystems gemäß der vorliegenden Erfindung;
- Figur 6 die Einzelheiten der für die vorliegende Erfindung verwendete Steuerschaltung;
- Figur 7 eine Wahrheitstabelle der Flags der vorliegenden Erfindung;
- Figur 8 Flußdiagramme zur Erläuterung des Betriebs der vorliegenden Erfindung; und
- Figur 9 eine Wahrheitstabelle entsprechend der in Figur 8 gezeigten Betriebsabläufe.
- Nachstehend wird eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf ein Prinzipblockschaltbild der Figur 5 beschrieben, wobei das Multiprozessorsystem aus zwei Prozessoren 11 (PA) und 12 (PB) aufgebaut ist, die als Vertreter einer Vielzahl von Prozessoren dargestellt sind. Jeder Prozessor PA und PB weist jeweils seinen lokalen Speicher LMA und LMB auf. Der Ausdruck "eigener" wird verwendet, um zu bezeichnen, daß er "zu der gleichen Gruppe gehört", d.h. mit anderen Worten ausgedrückt, daß auf ihn "ohne Verwendung eines Netzes zugegriffen werden kann". Ein Ausdruck "anderer" wird nachstehend verwendet, um die entgegengesetzte Bedeutung des Ausdrucks "eigener" zu bezeichnen. Auf den Speicher LMA der Gruppe A wird von dem eigenen Prozessor PA zugegriffen und auch von dem Prozessor PB der anderen Gruppe B, so daß der Speicher von den zwei Prozessoren geteilt wird. Eine Steuerschaltung 31 (CTLA) mit einem Satz (41) von Flag-Bits, wobei eines als SPERR-Bit und ein anderes als SYNC-Bit bezeichnet sind, sind in der Gruppe A vorgesehen, um den Transfer einer Zugriffsanfrage von dem Prozessor PA oder PB an den Speicher LMA zu steuern. Symetrisch äquivalent zu der Steuerschaltung CTLA ist eine zweite Steuerschaltung 32 (CTLB) mit einem Satz von Flag-Bits (42) in der Gruppe B vorgesehen, um den Transfer einer Zugriffsanfrage von dem Prozessor PA oder PB auf den Speicher LMB zu steuern. Die Funktion der Steuerschaltungen und der Flag-Bits wird nachstehend noch eingehend beschrieben.
- Eine Kommunikationseinrichtung 6 (oder 6') zwischen den Prozessoren PA (oder PB) und jedem eigenen lokalen Speicher LMA (oder LMB) besteht aus: Datenbussen 11-21D, 12-22D, damit jeder Prozessor PA, PB einen Datenwert in jeden eigenen Speicher LMA, LMB schreibt; und Zugriffs-Steuerleitungen 21- 11C, 22-12C, jeweils zum Liefern eines Bestätigungssignals ACK an jede Anfragequelle PA, PB. Eine Kommunikationseinrichtung 7 (oder 7') zwischen dem Prozessor PA (oder PB) und den Speichern LMB (oder LMA) von ihren jeweils gegenüberliegenden Gruppen besteht aus: Datenbussen 21-12D, 22-11D, damit jeder Prozessor PB, PA einen Datenwert aus einem Speicher LMA, LMB seiner jeweils gegenüberliegenden Gruppe liest; Zugriffs-Steuerleitungen 21-12C, 22-11C, jeweils zum Liefern eines Bestätigungssignals ACK an jede Anfragequelle PB, PA; und Zugriffs-Steuerleitungen 11-32C, 12-31C, jeweils zum Liefern eines Leseanfragesignals "Lese REQ" von jedem anderen Prozessor PB, PA an jede eigene Steuerschaltung CTLA, CTLB.
- Die Funktionen der Flag-Bits 41 (oder 42) des Prozessors PA (oder PB) sind wie folgt:
- [1] Das SPERR-Bit 41-1 (oder 42-1) und das SYNC-Bit 41-2 (oder 42-2) jeder Gruppe A, B werden beide durch eine jeweilige Initialisierung durch ihren eigenen Prozessor PA (oder PB) gesetzt.
- [2] Das SPERR-Bit 41-1 (oder 42-1) wird gesetzt, bevor der eigene Prozessor PA (oder PB) Daten in den eigenen Speicher LMA (oder LMB) schreibt, und ferner wird es zurückgesetzt, nachdem das Schreiben beendet ist, und zwar durch den eigenen Prozessor PA (oder PB).
- [3] Das SYNC-Bit wird zurückgesetzt, sobald der eigene Prozessor PA (oder PB) das Schreiben von Daten in den eigenen Speicher LMA (oder LMB) hinein beendet.
- [4] Wenn das SPERR-Bit und das SYNC-Bit beide in einem SETZ- Zustand sind, dann wird
- ein Lese-Anfragesignal "Lese-REQ" von dem anderen Prozessor PB (oder PA) an den eigenen Speicher LMA (oder LMB) gesperrt; und
- ein Schreib-Anfragesignal "Schreib-REQ" von dem eigenen Prozessor PA (oder PB) an den eigenen Speicher LMA (oder LMB) zugelassen.
- [5] Wenn sich das SPERR-Bit in einem RÜCKSETZ-Zustand und das SYNC-Bit in einem SETZ-Zustand befindet, dann wird die "Schreib-REQ" von dem eigenen Prozessor PA (oder PB) gesperrt und die "Lese-REQ" von dem anderen Prozessor PB (oder PA) zugelassen.
- [6] Wenn der Status der Flag-Bits anders ist, als der Status in den oben beschriebenen Situationen [4] und [5], dann wird
- eine Schreib-Anfrage "Schreib-REQ" von dem eigenen Prozessor PA (oder PB) an den eigenen Speicher LMA (oder LNB) gesperrt; und
- ein Lese-Anfragesignal "Lese-REQ" von dem anderen Prozessor PB (oder PA) an den eigenen Speicher LMA (oder LMB) zugelassen.
- Der Betrieb der Prozessorsynchronisation gemäß der vorliegenden Erfindung wird nachstehend beschrieben, wobei auf den einfachen Fall Bezug genommen wird, bei dem der Prozessor PA Daten in den eigenen Speicher LMA hineinschreibt und dann der andere Prozessor PB diese eingeschriebenen Daten ausliest, und die gleiche Sequenz wiederholt wird. Eine typische Struktur der Steuerschaltung 31 oder 32 (CTLA oder CTLB) und die Flag-Bits 41 (oder 42) sind in Figur 6 gezeigt und ihre Wahrheitstabelle ist in Figur 7 gezeigt, wobei eine positive Logik verwendet wird. Wie in Figur 6 gezeigt ist die Steuerschaltung CTLA 31 (oder CTLB 32) aus UND-Gattern 3a, 3b, 3c und aus einer Verzögerungsschaltung 3d aufgebaut. Das Flag-Bit 41 besteht aus weitläufig verwendeten Speichereinrichtungen, beispielsweise aus Flip-Flops, und zwar eines 41-1 für das SPERR-Bit und eines 42-2 für das SYNC-Bit. Das UND-Gatter 3a führt Verknüpfungen durch das SPERR-Bit sowie durch das SYNC-Bit durch. Einer der Eingangsanschlüsse des UND-Gatters 3c ist mit dem Lese- Anfragesignal "Lese-REQ" von dem anderen Prozessor 12 (PB) beschaltet, da der Datentransfer von dem eigenen Prozessor 11 (PA) zu dem eigenen Prozessor 12 (PB) ist. Einer der Eingangsanschlüsse des UND-Gatters 3b ist mit dem Schreib- Anfragesignal "Schreib-REQ" von dem eigenen Prozessor 11 (PA) beschaltet. Die Verzögerungsschaltung 3d, die aus einer weitläufig verwendeten Verzögerungseinrichtung gebildet ist, erzeugt eine vorgegebene Verzögerungszeit, die äquivalent zu der Zeit ist, die zum Beenden eines Lesens eines durch eine einzelne Operation zu transferrierenden Datenwerts benötigt wird. Demzufolge wird das SYNC-Bit 41-2 automatisch gesetzt, sobald das Lesen beendet ist. Somit arbeiten die Steuerschaltung CTLA und die Flag-Bits wie in der Wahrheitstabelle von Figur 7 gezeigt, in der "Y" bezeichnet, daß die Anfrage zugelassen ist und "N" anzeigt, daß die Anfrage gesperrt ist.
- Die Betriebsabläufe für alle Operationen zur Synchronisation der unabhängig arbeitenden Prozessoren der beiden Gruppen, wobei die A-Gruppe die Prozessoren 11 (PA), den Speicher 21 (LMA), die Steuerschaltung 31 (CTLA) und ihre Flag-Bits 41 umfaßt, und die B-Gruppe die Prozessoren 12 (PB), den Speicher 22 (LMB), die Steuerschaltung 32 (CTLB) und ihre Flag-Bits 42 umfaßt werden nachstehend beschrieben und sind in Figur 8 gezeigt. Die Bezugszahlen für die Schritte der Prozedur sind auch in den Flußdiagrammen der Figur 8 angeführt. Gestrichelte Linien in Figur 8 bezeichnen "Betriebsabläufe" der Flag-Information.
- (1) Jedes der SPERR-Bits (41-1, 42-1) und der SYNC-Bits (41-2, 42-2) der Prozessoren 11 und 12 wird für eine Initialisierung vor Betriebsbeginn gesetzt und in diesem Zustand der Flag-Bits wird:
- dem eigenen Prozessor 11 (PA) erlaubt, in den eigenen Speicher 21 (LMA) zu schreiben; und
- der andere Prozessor 12 (PA) wird vom Lesen des gleichen Speichers 21 (LMA) gesperrt.
- (2) Der Prozessor 11 (PA) stellt sicher, das SPERR-Bit 41-1 vor einem Schreiben von Daten in den eigenen Speicher 21 (LMA) zu setzen. (Allerdings ist dieses erste Setzen nach der Initialisierung nicht erforderlich, da das Setzen doppelt vorgenommen wird).
- (3) Der Prozessor 11 (PA) schreibt Daten in den eigenen Speicher 21 (LNA) und andererseits hat der andere Prozessor PB ein Lese-Anfragesignal Lese-REQ an die Steuerschaltung 31 (CTLA) gesendet und wartete auf das Bestätigungssignal ACK.
- (4) Sobald das Einschreiben beendet ist, wird das SPERR-Bit 41-1 sowie das SYNC-Bit 41-2 zurückgesetzt und das Bestätigungssignal ACK wird von dem Speicher gesendet, was dem Prozessor 12 (PB) erlaubt, den Speicher 21 (LMA) zu lesen.
- (5) Die Steuerschaltung 31 (CTLA) setzt das eigene SYNC-Bit 41-2 auf die vorgegebene Verzögerungszeit nach dem "Lese-REQ"-Signal von dem anderen Prozessor 12 (PB). Zu dieser Zeit ist das Auslesen durch den anderen Prozessor 12 (PB) bereits beendet.
- (6) Der Prozessor 11 (PA) bearbeitet andere Aufgaben, die sich nicht auf die Erläuterung der Erfindung beziehen, und dann:
- kehrt er zum Schritt (2) zurück und setzt das eigene SPERR-Bit 41-1; und
- schreibt in den eigenen Speicher 21 (LMA) hinein, außer wenn sich das SYNC-Bit 41-2 noch in einem RÜCKSETZ- Zustand befindet, was das Schreiben verhindert.
- (7) Der Prozessor 12 (PB) in der B-Gruppe kehrt nach Beenden anderer Jobs oder Aufgaben zu Schritt 4 zurück.
- Infolgedessen kann der voranstehend beschriebene Betrieb folgendermaßen zusammengefaßt werden:
- (A) Wenn der Prozessor PA gerade in den eigenen Speicher LMA hineinschreibt, dann wird der andere Prozessor PB davon abgehalten, diesen Speicher LMA auszulesen.
- (B) Nachdem der Prozessor PA den Schreibvorgang in den eigenen Speicher LMA abgeschlossen hat, wird dieser Prozessor PA vom Schreiben von nächsten Daten in diesen Speicher gesperrt, bis der andere Prozessor PB ein Auslesen dieses Speichers beendet.
- (C) Der Prozessor PB wird vom Auslesen des anderen Speichers LMA gesperrt, nachdem er den gleichen Speicher liest, bis der Schreibvorgang von dem Prozessor PA in den gleichen Speicher beendet ist.
- Obwohl in der voranstehend erwähnten Ausführungsform in den lokalen Speicher LMA exklusiv durch den eigenen Prozessor PA geschrieben wird sowie aus ihm exklusiv durch den Prozessor PB der anderen Gruppe B gelesen wird, ist offensichtlich der umgekehrte Fall möglich, bei dem aus dem lokalen Speicher LMB durch den eigenen Prozessor PA ausgelesen wird sowie in ihn durch den Prozessor PB seiner eigenen Gruppe B geschrieben wird.
- Obwohl in der voranstehend beschriebenen Ausführungsform der Erfindung ein einziger Satz von Flag-Bits mit einem Flag für SPERREN und eines für SYNC in jeder Gruppe A oder B vorgesehen ist, kann jede Gruppe mit einer Vielzahl der Sätze von Flag-Bits versehen sein, wobei jeder Satz mit einem entsprechenden Prozessor einer Vielzahl der Prozessoren kommuniziert.
- Obwohl in der voranstehend beschriebenen Ausführungsform der Erfindung ein Satz des SPERR-Bits und des SYNC-Bits im Zusammenhang mit Daten eines einzigen Worts vorgesehen ist, ist es offensichtlich auch möglich, einen Satz von SPERR- und SYNC-Bits im Zusammenhang mit einem Satz von Daten, die aus einer Vielzahl von Wörtern bestehen, vorzusehen oder den lokalen Speicher mit einer Vielzahl von diesen Sätzen aufzubauen.
- Die Konfiguration der Steuerschaltung 31 aus Figur 6 wird als ein typisches Beispiel angeführt, aber jede andere Schaltungskonfiguration, die die oben beschriebene Funktion erreicht, kann anstelle der in Figur 6 gezeigten Schaltung verwendet werden.
- Vorteile der vorliegenden Erfindung sind:
- Erstens trägt die Tatsache, daß das Setzen/Zurücksetzen der Flags durch die interne Kommunikation innerhalb jeder Gruppe sowie durch einen Speicherzugriff von einer anderen Gruppe ausgeführt werden kann, dazu bei, eine einfache Netzkonfiguration zu erreichen, ohne daß Steuerleitungen 4, die nur zur Synchronisation verwendet werden, erforderlich sind.
- Zweitens ist die Software vollständig von dem Job der Synchronisation befreit, da der Prozessor durch Sperren des Zugriffs-Anfragesignals warten kann, was einen reduzierten Netzverkehr, d.h. einen Mochgeschwindigkeitsbetrieb zur Folge hat, und
- drittens trägt die vereinfachte Hardware dazu bei, einen Hochgeschwindigkeits-Synchronisationsbetrieb zu erzielen.
Claims (5)
1. Multiprozessor-System mit wenigstens zwei Gruppen (A:B),
die über ein Netz zur Ausführung einer
Datenkommunikation zwischen den Gruppen verbunden sind,
wobei jede Gruppe umfaßt:
- einen Prozessor (11; 12);
- einen Speicher (LMA, 21; LMB, 22) auf den
zugegriffen werden soll, d.h. aus dem oder in den
durch den Prozessor (11; 12) der Gruppe (A; B) oder
durch den Prozessor (12; 11) der anderen Gruppe (B;
A) gelesen oder geschrieben wird;
- eine erste Speichereinrichtung (SPERR, 41-1; SPERR,
42-1) zum Sperren des Zugriffs von dem Prozessor
(12; 11) der anderen Gruppe (B; A), während der
Prozessor (11; 12) der Gruppe (A; B) gerade auf den
Speicher (LMA, 21; LMB, 22) der Gruppe (A; B)
zugreift;
- eine zweite Speichereinrichtung (SYNC, 41-2; SYNC,
42-2) zum Annehmen einer Zugriffsanfrage von dem
Prozessor (12; 11) der anderen Gruppe (B; A) und
zum Sperren eines Zugriffs von dem Prozessor (11;
12) der Gruppe (A; B); und
- eine Steuerschaltung (CTLA, 31; CTLB, 32) zum
Steuern des Zugriffs auf den Speicher (LMA, 21;
LMB, 22) durch die Verwendung der ersten und zweiten
Speichereinrichtungen (SPERR, 41-1, SYNC, 41-2;
SPERR, 42-1, SYNC, 42-2) der Gruppe (A; B) und nur
eines Zugriffs-Anfragesignals des Prozessors (12;
11) der anderen Gruppe (B; A),
wobei die Datenkommunikation durch die Verwendung des
Speichers (LMA, 21; LMB, 22) der Gruppe (A; B)
durchgeführt wird.
2. Mikroprozessorsystem nach Anspruch 1, dadurch
gekennzeichnet, daß
- die erste Speichereinrichtung (SPERR, 41-1; SPERR,
42-1) gesetzt wird, wenn der Prozessor (11; 12) der
Gruppe (A; B) gerade auf den Speicher (LMA, 21;
LMB, 22) der Gruppe (A; B) zugreift;
- die erste Speichereinrichtung (SPERR, 41-1; SPERR,
42-1) und die zweite Speichereinrichtung (SYNC,
41-2; SYNC, 42-2) zurückgesetzt werden, wenn der
Zugriff beendet ist; und
- die zweite Speichereinrichtung (SYNC, 41-2; SYNC,
41-2) gesetzt wird, wenn ein Zugriff des Prozessors
(12; 11) der anderen Gruppe (B; A) auf den Speicher
(LMA, 21; LMB, 22) der Gruppe (A; B) beendet ist,
wobei der Zugriff durch die Steuerschaltung (CTLA,
31; CTLB, 32) angenommen worden ist, da die ersten
und zweiten Speichereinrichtungen (SPERR, 41-1,
SYNC, 41-2; SPERR, 42-1, SYNC, 42-2) zurückgesetzt
worden sind.
3. Mikroprozessorsystem nach Anspruch 2, dadurch
gekennzeichnet, daß die zweite Speichereinrichtung
(SYNC, 41-2; SYNC, 42-2) bei einer vorgegebenen
Verzögerungszeit nach dem Zugriff des Prozessors (12;
11) der anderen Gruppe (B; A) auf den Speicher (LMA, 21;
LMB, 22) der Gruppe (A; B) beendet ist, gesetzt wird.
4. Mikroprozessorsystem nach einem der vorangehenden
Ansprüche, dadurch gekennzeichnet, daß der Speicher
(LMA, 21; LMB, 22) der Gruppe (A; B) nur von dem
Prozessor (11; 12) der Gruppe (A; B) beschrieben wird
und nur von dem Prozessor (12; 11) der anderen Gruppe
(B; A) ausgelesen wird.
5. Mikroprozessorsystem nach Anspruch 4, dadurch
gekennzeichnet, daß der Prozessor (12; 11) der anderen
Gruppe (B; A) den Speicher (LMA, 21; LMB, 22) der Gruppe
(A; B) durch eine Leseanfrage (LESE-RQ) über das Netz
liest.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61165731A JPH0731662B2 (ja) | 1986-07-15 | 1986-07-15 | マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3750938D1 DE3750938D1 (de) | 1995-02-16 |
DE3750938T2 true DE3750938T2 (de) | 1995-06-14 |
Family
ID=15818000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3750938T Expired - Fee Related DE3750938T2 (de) | 1986-07-15 | 1987-07-15 | Multiprozessorsystem. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4975833A (de) |
EP (1) | EP0254960B1 (de) |
JP (1) | JPH0731662B2 (de) |
CA (1) | CA1291827C (de) |
DE (1) | DE3750938T2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6481066A (en) * | 1987-09-24 | 1989-03-27 | Nec Corp | Connection system for multi-processor |
US5050072A (en) * | 1988-06-17 | 1991-09-17 | Modular Computer Systems, Inc. | Semaphore memory to reduce common bus contention to global memory with localized semaphores in a multiprocessor system |
JPH02105252A (ja) * | 1988-10-14 | 1990-04-17 | Nec Corp | ロック処理方式 |
JP2519798B2 (ja) * | 1989-05-30 | 1996-07-31 | 富士通株式会社 | 多重プロセッサシステムにおけるシリアライズ機能の検証方式 |
US5331538A (en) * | 1989-10-23 | 1994-07-19 | Pitney Bowes Inc. | Mail processing system controller |
JP3222125B2 (ja) * | 1990-01-29 | 2001-10-22 | 株式会社日立製作所 | システム間データベース共用方式 |
US5276847A (en) * | 1990-02-14 | 1994-01-04 | Intel Corporation | Method for locking and unlocking a computer address |
JP2511588B2 (ja) * | 1990-09-03 | 1996-06-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置 |
US5339397A (en) * | 1990-10-12 | 1994-08-16 | International Business Machines Corporation | Hardware primary directory lock |
JPH05274273A (ja) * | 1991-06-28 | 1993-10-22 | Digital Equip Corp <Dec> | コンピュータ・システムに於ける素子のインターロック・スキーム |
US5430860A (en) * | 1991-09-17 | 1995-07-04 | International Business Machines Inc. | Mechanism for efficiently releasing memory lock, after allowing completion of current atomic sequence |
US5283870A (en) * | 1991-10-04 | 1994-02-01 | Bull Hn Information Systems Inc. | Method and apparatus for avoiding processor deadly embrace in a multiprocessor system |
US5386525A (en) * | 1991-10-29 | 1995-01-31 | Pacific Bell | System for providing application programs with direct addressability into a shared dataspace |
US5261106A (en) * | 1991-12-13 | 1993-11-09 | S-Mos Systems, Inc. | Semaphore bypass |
US5392433A (en) * | 1992-09-25 | 1995-02-21 | International Business Machines Corporation | Method and apparatus for intraprocess locking of a shared resource in a computer system |
US5317749A (en) * | 1992-09-25 | 1994-05-31 | International Business Machines Corporation | Method and apparatus for controlling access by a plurality of processors to a shared resource |
US5440746A (en) * | 1992-11-06 | 1995-08-08 | Seiko Epson Corporation | System and method for synchronizing processors in a parallel processing environment |
US5522029A (en) * | 1993-04-23 | 1996-05-28 | International Business Machines Corporation | Fault tolerant rendezvous and semaphore for multiple parallel processors |
US5535116A (en) * | 1993-05-18 | 1996-07-09 | Stanford University | Flat cache-only multi-processor architectures |
US5450595A (en) * | 1994-02-15 | 1995-09-12 | International Business Machines Corporation | Multiple hash tables based on access frequency |
US5675743A (en) * | 1995-02-22 | 1997-10-07 | Callisto Media Systems Inc. | Multi-media server |
US5893160A (en) * | 1996-04-08 | 1999-04-06 | Sun Microsystems, Inc. | Deterministic distributed multi-cache coherence method and system |
US5983326A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode |
JPH10134008A (ja) * | 1996-11-05 | 1998-05-22 | Mitsubishi Electric Corp | 半導体装置およびコンピュータシステム |
US6381657B2 (en) * | 1997-01-31 | 2002-04-30 | Hewlett-Packard Company | Sharing list for multi-node DMA write operations |
US5946711A (en) * | 1997-05-30 | 1999-08-31 | Oracle Corporation | System for locking data in a shared cache |
US6078994A (en) * | 1997-05-30 | 2000-06-20 | Oracle Corporation | System for maintaining a shared cache in a multi-threaded computer environment |
US6574720B1 (en) | 1997-05-30 | 2003-06-03 | Oracle International Corporation | System for maintaining a buffer pool |
US6324623B1 (en) | 1997-05-30 | 2001-11-27 | Oracle Corporation | Computing system for implementing a shared cache |
US6134636A (en) * | 1997-12-31 | 2000-10-17 | Intel Corporation | Method and apparatus for storing data in a memory array |
US6700588B1 (en) * | 1998-11-09 | 2004-03-02 | Broadcom Corporation | Apparatus and method for blending graphics and video surfaces |
US6823511B1 (en) * | 2000-01-10 | 2004-11-23 | International Business Machines Corporation | Reader-writer lock for multiprocessor systems |
US7500036B2 (en) * | 2000-12-28 | 2009-03-03 | International Business Machines Corporation | Quad aware locking primitive |
US6657632B2 (en) | 2001-01-24 | 2003-12-02 | Hewlett-Packard Development Company, L.P. | Unified memory distributed across multiple nodes in a computer graphics system |
FR2842744B1 (fr) * | 2002-07-24 | 2006-06-30 | Michel Desroses | Dispositif de detection de la nature d'un coup et de mesure de sa force, procede pour ca mise en oeuvre et son application a l'arbitrage d'un sport |
US7629979B2 (en) * | 2003-08-20 | 2009-12-08 | Hewlett-Packard Development Company, L.P. | System and method for communicating information from a single-threaded application over multiple I/O busses |
US7428619B2 (en) * | 2005-01-18 | 2008-09-23 | Sony Computer Entertainment Inc. | Methods and apparatus for providing synchronization of shared data |
JP5735711B2 (ja) * | 2012-06-26 | 2015-06-17 | 東芝三菱電機産業システム株式会社 | データ収集装置及びデータ収集プログラム |
US9990131B2 (en) * | 2014-09-22 | 2018-06-05 | Xilinx, Inc. | Managing memory in a multiprocessor system |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS49114845A (de) * | 1973-02-28 | 1974-11-01 | ||
JPS5036041A (de) * | 1973-07-11 | 1975-04-04 | ||
US4121285A (en) * | 1977-04-01 | 1978-10-17 | Ultronic Systems Corporation | Automatic alternator for priority circuit |
JPS6019029B2 (ja) * | 1978-03-29 | 1985-05-14 | ブリテイツシユ・ブロ−ドキヤステイング・コ−ポレ−シヨン | デジタル・デ−タ処理装置 |
FR2431733A1 (fr) * | 1978-07-21 | 1980-02-15 | Sfena | Systeme de communication par memoire commune dans un calculateur comprenant plusieurs processeurs |
JPS5839360A (ja) * | 1981-09-01 | 1983-03-08 | Toshiba Corp | メモリ−アクセス方式 |
US4453214A (en) * | 1981-09-08 | 1984-06-05 | Sperry Corporation | Bus arbitrating circuit |
JPS5887645A (ja) * | 1981-11-20 | 1983-05-25 | Hitachi Ltd | 計算機間交信方式 |
JPS58129567A (ja) * | 1982-01-27 | 1983-08-02 | Nec Corp | マルチシステム制御装置 |
JPS58140862A (ja) * | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4764865A (en) * | 1982-06-21 | 1988-08-16 | International Business Machines Corp. | Circuit for allocating memory cycles to two processors that share memory |
JPS5991563A (ja) * | 1982-11-18 | 1984-05-26 | Nec Corp | 共通メモリ装置 |
FR2536883A1 (fr) * | 1982-11-26 | 1984-06-01 | Thomson Csf | Procede et dispositif de coordination des transferts d'informations numeriques entre des unites de traitement de donnees emettrice et receptrice interconnectees par un canal de transmission asynchrone |
US4724517A (en) * | 1982-11-26 | 1988-02-09 | Inmos Limited | Microcomputer with prefixing functions |
JPS59229662A (ja) * | 1983-06-10 | 1984-12-24 | Hitachi Micro Comput Eng Ltd | 共有メモリ制御回路 |
US4620278A (en) * | 1983-08-29 | 1986-10-28 | Sperry Corporation | Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus |
JPS60246470A (ja) * | 1984-05-21 | 1985-12-06 | Anritsu Corp | コンピユ−タシステム |
JPS60245063A (ja) * | 1984-05-21 | 1985-12-04 | Fujitsu Ltd | 共用メモリアクセス方式 |
JPS62226260A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Mach Co Ltd | 非同期式デ−タバスインタ−フエ−ス |
-
1986
- 1986-07-15 JP JP61165731A patent/JPH0731662B2/ja not_active Expired - Lifetime
-
1987
- 1987-07-14 CA CA000542012A patent/CA1291827C/en not_active Expired - Lifetime
- 1987-07-15 EP EP87110224A patent/EP0254960B1/de not_active Expired - Lifetime
- 1987-07-15 DE DE3750938T patent/DE3750938T2/de not_active Expired - Fee Related
-
1989
- 1989-11-08 US US07/433,433 patent/US4975833A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0254960A3 (de) | 1991-06-05 |
CA1291827C (en) | 1991-11-05 |
EP0254960B1 (de) | 1995-01-04 |
JPS6320652A (ja) | 1988-01-28 |
EP0254960A2 (de) | 1988-02-03 |
US4975833A (en) | 1990-12-04 |
JPH0731662B2 (ja) | 1995-04-10 |
DE3750938D1 (de) | 1995-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750938T2 (de) | Multiprozessorsystem. | |
DE2854485C2 (de) | Datenverarbeitungsanlage | |
DE69127101T2 (de) | System für verteilte mehrfachrechnerkommunikation | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE69131840T2 (de) | Verfahren zur Vervielfältigung eines geteilten Speichers | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE3689198T2 (de) | Systembus für Kommunikation zwischen Prozessoren. | |
DE68903693T2 (de) | Einrichtung zur datenverarbeitung. | |
DE68924313T2 (de) | Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern. | |
DE69128017T2 (de) | Verteiltes rechnersystem | |
DE3851554T2 (de) | Steuerungsanordnung für gemeinschaftlichen Speicher. | |
DE2854397A1 (de) | Pufferspeichereinheit fuer ein datenverarbeitungssystem | |
DE3320858A1 (de) | Speicher-managementanordnung fuer mikroprozessorsysteme | |
DE68919018T2 (de) | Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen. | |
DE2523372B2 (de) | Eingabe-ZAusgabe-Anschlußsteuereinrichtung | |
DE2855673A1 (de) | Anordnung zur handhabung des direkten zugriffs auf den speicher einer datenverarbeitungsanlage | |
DE69130946T2 (de) | Verfahren zur ausschliesslichen steuerung für einen gemeinsamen speicher | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
DE69230483T2 (de) | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung | |
DE2625113A1 (de) | Speicherschutzeinrichtung | |
DE3009530C2 (de) | ||
DE3142504A1 (de) | Mehrfachplattenspeicher-uebertragungssystem | |
DE2311503A1 (de) | Datenverarbeitungsanlage mit mehreren zentraleinheiten | |
DE3855718T2 (de) | Ubertragungssystem zwischen Prozessoren in einem Nachrichtenverarbeitungssystem mit Übertragung zwischen Ausführungsprozessoren während Übertragung zwischen anderen Prozessoren | |
DE69712382T2 (de) | Speichersystem und Datenkommunikationssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |