DE4207158A1 - Speicher-zugriffssteuerung - Google Patents

Speicher-zugriffssteuerung

Info

Publication number
DE4207158A1
DE4207158A1 DE4207158A DE4207158A DE4207158A1 DE 4207158 A1 DE4207158 A1 DE 4207158A1 DE 4207158 A DE4207158 A DE 4207158A DE 4207158 A DE4207158 A DE 4207158A DE 4207158 A1 DE4207158 A1 DE 4207158A1
Authority
DE
Germany
Prior art keywords
data structure
memory
semaphore
access
buffer
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.)
Withdrawn
Application number
DE4207158A
Other languages
English (en)
Inventor
Brian Neil Baker
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.)
Nortel Networks Ltd
Original Assignee
Northern Telecom Ltd
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 Northern Telecom Ltd filed Critical Northern Telecom Ltd
Publication of DE4207158A1 publication Critical patent/DE4207158A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

Die Erfindung bezieht sich allgemein auf die Speicherzugriffssteuerung eines gemeinsam genutzten Speichers eines Telekommunikationssystems und insbesondere auf ein Verfahren und eine Schaltung zur gerätemäßigen Ausführung von Semaphoren in einem gemeinsam genutzten Speichersystem.
Telekommunikationssysteme schließen in vielen Fällen zwei Duplex-Prozessoren ein, die im Synchronbetrieb laufen. Diese Anordnung ergibt ein retundantes System, bei dem ein Ausfall eines der Prozessoren typischerweise dazu führt, daß der andere Prozessor alle Prozessor- oder Verarbeitungsoperationen übernimmt, während der fehlerhafte Prozessor außer Dienst gestellt und ersetzt wird.
Es ist bei derartigen Systemen üblich, daß sie auf der Ausführung von umfangreichen Programmen beruhen, die aus einer großen Menge von Maschinenprogrammcode für ihren Betrieb bestehen. Der Maschinenprogrammcode bezieht sich sowohl auf die Rufverarbeitung als auch auf die Wartung und den Betrieb des Telekommunikationssystems selbst. Diese Programme werden üblicherweise in einer höheren Programmier-Prozeßsprache geschrieben, die nachfolgend auf einen maschinennahen ausführbaren Programmcode kompiliert wird. Es ist nicht ungewöhnlich, daß solche Programme für Telekommunikationssysteme aus mehreren Millionen Codezeilen bestehen, zu dessen Entwicklung mehrere Gruppen von Programmierern Jahre benötigen.
In einem Einzelprozessorsystem oder in einem synchronen Duplex- Prozessorsystem werden Befehle jeweils einzeln zu einer vorgegebenen Zeit in aufeinanderfolgender Weise ausgeführt. In derartigen Systemen hat es sich jedoch herausgestellt, daß es vorteilhaft ist, ein "Multitasking"-Schema anzuwenden, bei dem einzelne Aufgaben, die viele Codezeilen umfassen, auf einer planmäßigen Basis ausgeführt werden. Eine Aufgabe kann ausgelagert werden, während verschiedende andere Aufgaben aufeinanderfolgend eingelagert und ausgelagert werden, bevor die erste Aufgabe vervollständigt wird. Eine Aufgabe, die in vielen Fällen auch als "Prozeß" bezeichnet wird, kann eine Anzahl von Subroutinen verwenden, die jeweils aus einer Anzahl von Codezeilen bestehen. Wenn eine Aufgabe eingelagert wird, führt der Prozessor diese Aufgabe für eine vorgegebene Zeitdauer aus, bis ein Scheduler diese Aufgabe auslagert und eine andere Aufgabe einlagert. Der Ausdruck "aus- und einlagern" bedeutet hier einen Austausch. Es treten jedoch Fälle auf, bei denen eine Aufgabe Daten aus einem speziellen Speicherplatz ausliest oder einschreibt, während andere Aufgaben den Zugriff auf den gleichen Speicherplatz benötigen. In einem derartigen Fall ist es wesentlich, daß irgendein Ausschlußmechanismus verwendet wird, um einen Zugriff an den Speicher zu verhindern, bis eine vorhergehende Aufgabe erfüllt wurde. In einem Fall, in dem es wesentlich ist, daß eine bestimmte Prozedur in eine Aufgabe vervollständigt wird oder daß die Aufgabe selbst vervollständigt werden muß, kann der diese Prozedur oder Aufgabe ausführende Prozessor in einen unterbrechungsfreien Zustand gezwungen werden, bis diese Prozedur oder Aufgabe vervollständigt wurde. Dieser unterbrechungsfreie Zustand wird häufig dadurch erzielt, daß ein globaler Sperrmechanismus eingesetzt wird, während dessen die gerade ausgeführte Aufgabe ausschließlichen Zugriff auf den Prozessor und die zugehörigen Speicherbänke hat, während das Ein- und Auslagern anderer Aufgaben vorübergehend gestoppt wird. Ein derartiges globales Sperrschema hat sich für ein Einzelprozessorsystem als ausreichend herausgestellt, weil der Prozessor nicht in einem Wartezustand aufgehalten wird.
Wenn ein Einzelprozessor-Datenverarbeitungssystem durch ein Mehrprozessorsystem ersetzt wird, so ist es wünschenswert, für ein Einzelprozessorsystem bereits entwickelten Code auf dem Mehrprozessorsystem zu verwenden. Wenn jedoch in einem Mehrprozessorsystem eine Aufgabe durch einen ersten Prozessor ausgeführt wird, während ein globaler Sperrzustand durchgesetzt wird, so sind die übrigen Prozessoren von dem gemeinsam genutzten Speicher ausgesperrt. Diese anderen Prozessoren müssen warten, bis die globale Sperrung aufgehoben wird, bevor wieder ein Zugriff auf den Speicher erfolgen kann, was dazu führt, daß die übrigen Prozessoren während dieser Zeitperiode im Leerlaufzustand sind. Dieses Problem kann durch die Ausführung eines Mechanismus gelöst werden, der die Möglichkeit der Sperrung und Entsperrung diskreter Teile des gemeinsam benutzen Speichers ergibt.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Verwaltung des Zugriffs auf einen lesbaren, änderbaren, gemeinsam genutzten Speicher in einem System auf der Grundlage von Mehrprozessoren zu schaffen. Eine weitere Aufgabe besteht darin, ein Verfahren zur Konkurrenzvermeidung unter Prozessoren zu schaffen, die versuchen, auf den gleichen Speicherraum zuzugreifen.
Erfindungsgemäß wird ein Verfahren zur Verwaltung eines gemeinsam genutzten Speichers in einem Telekommunikationssystem mit einer Mehrzahl von Prozessoren, die jeweils auf diskrete Datenstrukturen innerhalb des gemeinsam genutzten Speichers zugreifen können, und zur Steuerung des Zugriffes eines der Prozessoren auf irgendeine der Datenstrukturen innerhalb des Speichers zu schaffen, wobei das Verfahren die folgenden Schritte umfaßt:
(a) Speichern einer Vielzahl von Adressen in einer Speicherbank, wobei jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
(b) Vergleichen der Startadresse einer angeforderten Datenstruktur mit den Adressen in der Speicherbank, um das Vorhandensein eines offenen Semaphors für die angeforderte Datenstruktur zu bestimmen,
(c) Gewähren des Speicherzugriffs an die angeforderte Datenstruktur, wenn die Startadresse der angeforderten Datenstruktur nicht in der Speicherbank enthalten ist und wenn ein Semaphor nicht erforderlich ist,
(d) wenn die Startadresse der Datenstruktur nicht in der Speicherbank enthalten ist, Öffnen eines Semaphors und Speichern der Startadresse der angeforderten Datenstruktur in der Speicherbank, wenn ein Semaphor erforderlich ist, und
(e) wenn die Startadresse der angeforderten Datenstruktur mit einem offenen Semaphor in der Speicherbank übereinstimmt, vorübergehendes Speichern der Startadresse der angeforderten Datenstruktur, bis das entsprechende offene Semaphor geschlossen wird, wobei zu diesem Zeitpunkt der Zugriff auf die angeforderte Datenstruktur gewährt wird.
Gemäß einem anderen Grundgedanken der Erfindung wird bei einem Telekommunikationssystem mit einer Mehrzahl von Prozessoren, die jeweils einen Zugriff auf einen gemeinsam genutzten Speicher ausführen können, der diskrete Datenstrukturen enthält, ein Verfahren zur Steuerung des Zugriffes eines der Prozessoren auf beliebige der Datenstrukturen in dem gemeinsam genutzten Speicher geschaffen, wenn kein Zugriff durch einen anderen der Prozessoren auf diese Datenstruktur erfolgt, wobei das Verfahren die folgenden Schritte umfaßt:
(a) Vergleichen der Startadresse der angeforderten Datenstruktur mit einer Vielzahl von in einem Speicher gespeicherten Startadressen, wobei jede der Startadressen einer jeweiligen Datenstruktur des gemeinsam genutzten Speichers zugeordnet ist,
(b) Gewähren eines Speicherzugriffes auf die angeforderte Datenstruktur und Speichern der Startadresse der angeforderten Datenstruktur in der Bank von Adressen, wenn die Startadresse der angeforderten Datenstruktur nicht mit einer der Startadressen in der Bank von Adressen übereinstimmt, und
(c) Wiederholen des Schrittes (a), wenn ein Speicherzugriff im Schritt (b) nicht gewährt wurde.
Gemäß einem weiteren Grundgedanken der Erfindung wird bei einem Telekommunikationssystem mit einer Mehrzahl von Prozessoren, die jeweils einen Zugriff auf diskrete Datenstrukturen in einem gemeinsam genutzten Speicher ausführen können, eine Schaltung zur Verwaltung des gemeinsam genutzten Speichers und zur Steuerung des Speicherzugriffs durch einen der Prozessoren auf eine angeforderte Datenstruktur innerhalb des Speichers geschaffen, die folgende Teile umfaßt:
eine Speicherbank zum Speichern einer Vielzahl von Adressen, worin jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
Einrichtungen zum Vergleich der Startadresse einer angeforderten Datenstruktur mit den Adressen in der Speicherbank von Adressen, um das Vorhandensein eines offenen Semaphors für die angeforderte Datenstruktur zu bestimmen,
Speichereinrichtungen zur vorübergehenden Speicherung der Startadresse der angeforderten Datenstruktur, bis ein entsprechendes, in der Speicherbank gespeichertes offenes Semaphor geschlossen wird, und
eine Logikschaltung zum Gewähren des Speicherzugriffs an die angeforderte Datenstruktur, wenn sich die Startadresse der angeforderten Datenstruktur nicht in der Adressenbank befand oder zur Gewährung des Speicherzugriffes auf die angeforderte Datenstruktur, nachdem ein entsprechendes offenes Semaphor geschlossen wurde.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Die Erfindung wird im folgenden an Hand von in der Zeichnung dargestellten Ausführungsbeispielen noch näher erläutert: In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild eines Ausführungsbeispiels eines Mehrprozessor-Systems mit einem gemeinsam genutzten Speicher,
Fig. 2 ein Blockschaltbild eines Speichermoduls gemäß Fig. 1,
Fig. 3 ein Blockschaltbild eines Semaphor-Steuergerätes nach Fig. 2, und
Fig. 4 ein Blockschaltbild des in Fig. 3 gezeigten Semaphor- Steuergerätes, wobei Befehls- und Markierungsfelder gezeigt sind.
In Fig. 1 sind M-Prozessoren 14 gezeigt, die jeweils mit L gemeinsam genutzten Speichermodulen 12 über einen LxM-Schalter 13 und mit N-Verbindungsabwicklungseinheiten 16 über einen (L+M) x M-Schalter 15 verbunden sind. Die Verbindungsabwicklungseinheiten 16 ergeben eine Schnittstelle zwischen den Prozessoren und Übertragungsverbindungen an andere Einrichtungen.
Wie dies in Fig. 2 gezeigt ist, umfaßt jedes Speichermodul 12 einen Speicher 17, der mit einer Speicherzugriffssteuerschaltung 18 gekoppelt ist, die ein Semaphor-Steuergerät 20, ein Speicher- Steuergerät 21 und Eingangs- und Ausgangs-Warteschlangen 22 bzw. 23 einschließt. Jede Eingangs-Warteschlange und Ausgangs- Warteschlange 23 schließt einen FIFO-Puffer (bei dem zuerst eingegebene Daten auch zuerst ausgelesen werden) zum Anordnen von Speicheranforderungen in einer Warteschlange und zum Speichern dieser Anfragen sowie eine Schnittstellenschaltung für die Übertragung und den Empfang von Speicheranforderungen an die und von den Prozessoren 14 ein.
Das Semaphor-Steuergerät 20 ergibt einen Mechanismus zum Öffnen und Freigeben von Semaphoren. Wenn ein Prozessor einen Zugriff auf eine in dem gemeinsam genutzten Speichermodul 12 gespeicherte Datenstruktur anfordert, so wird ein Semaphor geöffnet, das damit einen ausschließlichen Zugriff auf die Datenstruktur gibt. Irgendeine Anforderung von irgendeinem der anderen Prozessoren für die gleiche Datenstruktur, die ein offenes Semaphor hat, wird als Konflikt betrachtet und in der Schwebe gehalten. Wenn das Semaphor aufgehoben wird, kann eine andere Anforderung für diese Datenstruktur erfüllt werden.
Die Speichersteuereinheit 21 führt Speicherlese- und Speicherschreib-Befehle aus, die von dem Semaphor-Steuergerät empfangen werden. Im Fall eines Speicherlesebefehls liest die Speichersteuereinheit die angeforderten Daten aus und überträgt die ausgelesenen Daten an den Prozessor, von dem die Leseanforderung ausging.
Die Fig. 3, die ein Blockschaltbild des Semaphor-Steuergerätes 20 darstellt, zeigt eine Formatierschaltung 30, die Befehle von der Eingangs-Warteschlange 22 empfangen und formatieren kann, unter Einschluß von Speicherzugriffsanforderungen. Die Formatierschaltung 30 liefert einer Markierungsschaltung 31 ein einziges formatiertes Anforderungswort, das lediglich relevante Datenbits enthält, die diese Schaltung benötigt, um die Anforderung zu verarbeiten. Die Markierungsschaltung 31 umfaßt einen Einzelanforderungspuffer 311, eine Haltesteuerschaltung 312 und eine Assoziativ-Halteregisterbank 313.
Die Hauptfunktion der Markierungsschaltung 31 besteht darin, eine einzelne ankommende Speicheranforderung mit einer Vielzahl von vorhergehenden Anforderungen zu vergleichen, die in der Halteregisterbank 313 gespeichert sind. Die einzelne formatierte Anforderung in dem Einzelanforderungspuffer 311 wird dadurch identifiziert, daß ein Bit in einem H-Feld gesetzt wird, wenn sie mit einer entsprechenden Adresse in der Halteregisterbank 313 übereinstimmt. Die Übereinstimmung einer Anforderungsadresse mit einer Adresse in der Halteregisterbank 313 entspricht einem Konflikt mit einem offenen Semaphor. Offene Semaphor-Anfragen, die der Halteregisterbank 313 hinzugefügt würden, jedoch nicht hinzugefügt werden können, weil das Halteregister voll ist, werden ebenfalls identifiziert, und zwar dadurch, daß ein Bit in einem F-Feld in dem Einzelanforderungspuffer 20 gesetzt wird. Diese Anforderungen werden später der Halteregisterbank 313 hinzugefügt, wenn Platz verfügbar wird. Die markierten und unmarkierten Anforderungen werden vorübergehend in einem zeitlich geordneten Puffer 32 gespeichert. Formatierte Eingangsbefehle, die in den Einzelanforderungspuffer 311 verbracht werden, werden dem zeitllich geordneten Puffer 32 mit den beiden zusätzlichen Markierungsbits zugeführt, die mit dem ursprünglichen Anforderungswort verknüpft sind. Diese Bits schließen die Markierungsinformation ein, die entweder eine Adressenübereinstimmung oder dem vollen Zustand der Halteregisterbank entspricht. Der Einzelanforderungspuffer 311 ist zum Empfang von von der Haltesteuerschaltung 312 gelieferten Haltesteuersignalen 314 und von Signalen 315 angeschaltet, die von der Halteregisterbank 313 geliefert werden. Die Halteregisterbank 313 und der zeitlich geordnete Puffer 32 sind jeweils mit dem Einzelanforderungspuffer 311 über Signalleitungen 316 und 317 verbunden, um eine Einzelanforderung in Abhängigkeit von Steuersignalen 314 bzw. 318 zu empfangen. Die Halteregisterbank 313 empfängt weiterhin Signale von dem zeitlich geordneten Puffer 32 über Signalleitungen 33. Sowohl die Halteregisterbank 313 als auch der zeitlich geordnete Puffer 32 sind Assoziativ-Speicherbänke. Der zeitlich geordnete Puffer kann niemals überlaufen, weil er in der Lage ist, eine maximale Anzahl von Anforderungen zu verarbeiten, wobei die maximale Anzahl gleich der Anzahl von Prozessoren ist, die einen Zugriff auf den gemeinsam genutzten Speicher ausführen können. Die Anzahl der Eintragungen in dem zeitlich geordneten Puffer 32 ist gleich der Anzahl der ausstehenden Anforderungen. Jeder Prozessor 40 ist auf eine offene Anforderung zu einer bestimmten Zeit beschränkt. Damit ist in dem Puffer immer Raum für eine ankommende Anforderung. Eine Puffersteuerschaltung 34, die aus Logikgattern besteht, hat die Hauptfunktion einer Folgebildung und Steuerung von Daten, die in dem zeitlich geordneten Puffer 32 gespeichert sind, und sie liefert Steuersignale an den zeitlich geordneten Puffer 32, die Haltesteuerschaltung 312 und an eine Freigabesteuerschaltung 35. Die Freigabesteuerschaltung 35 ist eine Logikschaltung, die so ausgebildet ist, daß sie einen Zugriff auf den gemeinsam genutzten Speicher in Abhängigkeit von einem Puffersteuersignal 37 und in Abhängigkeit von dem Zustand der Bits ermöglicht, die in dem zeitlich geordneten Puffer 32 gespeichert sind, wie dies weiter unten erläutert wird. Die gerätemäßige Ausführung der beschriebenen Schaltung liegt im Rahmen des Wissens eines durchschnittlichen Konstrukteurs, sofern dieser die Anweisungen der vorliegenden Beschreibung erhalten hat, und die Schaltung kann unter Verwendung von allgemein im Handel erhältlicher Bauteile ausgeführt werden.
Die Betriebsweise der Schaltung wird anhand der Fig. 1 bis 3 und der Fig. 4 beschrieben, die die Form des Datenformates zeigt, das der Formatierschaltung 30, der Halteregisterbank 313, dem Einzelanforderungspuffer 311 und dem zeitlich geordneten Puffer 33 zugeordnet ist. Wenn ein Prozessor 14 einen Zugriff auf eine in einer der gemeinsam genutzten Speichermodulen 12 gespeicherten Datenstruktur beantragt, so wird eine Anforderung an die jeweilige Eingangswarteschlange übertragen, die diesem gemeinsam genutzten Speichermodul 12 zugeordnet ist. Die Formatierschaltung 30 empfängt jede ankommende Speicherzugriffsanforderung in einer FIFO-Weise und wandelt die Anforderungen in eine komprimierte Anforderung um, indem unerwünschte Information (wie zum Beispiel Signalbündellänge) abgetrennt wird, die für das Smaphor-Steuergerät 20 nicht wesentlich ist. Die abgetrennte Information wird in einem nicht gezeigten kleinen Speicher mit wahlfreiem Zugriff (RAM) zusammen mit der Prozessoridentifikation für eine spätere Verarbeitung durch die Speichersteuereinheit 21 gespeichert. Die Speichersteuereinheit 21 kann später einen Zugriff auf den RAM ausführen, wenn der Speicherzugriff durchgeführt wird. Das komprimierte Format schließt drei Haupt-Informationsfelder ein. Das erste dieser Felder entspricht der Startadresse des Speicherblockes, für den ein Zugriff beantragt wird. Jede Startadresse eines angeforderten Blockes entspricht typisch einer Startadresse einer Datenstruktur. Speicherlese- und Schreibanforderungen werden häufig in einer Signalbündel- Betriebsart und nicht in einer Einzelwort-Betriebsart ausgeführt. Die Signalbündel-Betriebsweise ermöglicht es, daß Mehrfachworte aus dem Speicher ausgelesen oder in diesen eingeschrieben werden, und zwar als Bündel von Speicherzugriffen an eine gesamte Datenstruktur. Das zweite Feld schließt Informationen ein, die auf die Art der Anforderung bezogen sind. Das dritte Feld entspricht der Identifikationsziffer des speziellen Prozessors 14, der einen Zugriff an eine in dem Speicher 12 gespeicherte Datenstruktur anfordert.
Die Markierungsschaltung 31 empfängt ankommende Befehle von der Formatierschaltung 30 in Form von Speicherlese- oder Schreibanforderungen, die kein Öffnen eines Semaphors erfordern, Speicherlese- und Semaphor-Öffnungsanforderungen, Speicher- Schreibanforderungen, die das Schließen eines Semaphors erfordern, und Semaphor-Freigabeanforderungen. Die Gewährung eines auf eine Datenstruktur bezogenen Semaphors stellt sicher, daß andere Prozessoren von einem Zugriff auf diese Datenstruktur oder den Speicherblock innerhalb des gemeinsam genutzten Speichers ausgeschlossen werden, bis die Gewährung dieses Semaphors aufgehoben wird.
Jede ankommende formatierte Anforderung wird in dem Einzelanforderungspuffer 311 gespeichert. Logikschaltungen in der Haltesteuerschaltung 312 vergleichen dann die angeforderte Startadresse des angeforderten, in dem gemeinsam genutzten Speicher befindlichen Speicherblockes mit allen Adressen in der Halteregisterbank 313. Jeder in der Halteregisterbank 313 gespeicherten Adresse ist ein offener Semaphor-Zustand zugeordnet. Ein Prozessor, dem ein offenes Semaphor gewähert wurde, das einem speziellen Speicherblock entspricht, hat den ausschließlichen Zugriff auf diesen Speicherblock. Wenn die Startadresse in dem Einzelanforderungspuffer 311 mit einer der Adressen in der Halteregisterbank 313 übereinstimmt und die Anforderung eine Schreibanfrage ist, die einem offenen Semaphor- Zustand entspricht, so wird der Einzelanforderungspuffer als übereinstimmend markiert und die Haltesteuerschaltung setzt ein Bit in dem Einzelanforderungspuffer in einem "H"-Bitfeld, das eines der beiden Markierungsbitfelder darstellt, die mit dem ankommenden Befehl verknüpft sind. Das Setzen des Bits in dem "H"-Bitfeld entpricht einem Zustand, in dem eine jeweilige Anforderung in dem Einzelanforderungspuffer einen Zugriff auf eine Datenstruktur erfordert, die mit einem offenen Semaphor an der gleichen Datenstruktur zusammenfällt. Wenn das "H"-(Halte-)- Bit gesetzt ist, so hält die Puffersteuerschaltung die jeweilige Anforderung in dem zeitlich geordmeten Puffer zumindestens so lange fest, bis das offene Semaphor für die gleiche Datenstruktur aufgehoben wird, wobei zu dieser Zeit die jeweilige Anforderung, die im Schwebezustand gehalten wurde, verarbeitet werden kann. Wenn ein Semaphor freigegeben wird, so wird die entsprechende Startadresse der Datenstruktur von der Vielzahl von Adressen entfernt, die in der Halteregisterbank 313 gespeichert sind. Wenn die Startadresse in dem Einzelanforderungspuffer 311 nicht mit einer Adresse in der Halteregisterbank 313 übereinstimmt und die Anforderung eine Schreibanforderung ist, die einem offenen Semaphorzustand entspricht, so wird diese Anforderung der Vielzahl von Adressen hinzugefügt, die in der Halteregisterbank 313 gespeichert sind, wenn ein freies Register zur Verfügung steht. In diesem Fall wird das "H"-Bit gelöscht und die Anforderung wird an den zeitlich geordneten Puffer 32 weitergeleitet. Eine derartige Anforderung wird in dem zeitlich geordneten Puffer 32 nicht in der Schwebe gehalten, sondern sie wird durch eine Puffersteuerschaltung 34 in einer FIFO-Reihenfolge zusammen mit anderen Anforderungen der gleichen Klasse verarbeitet. Im allgemeinen ist Schreibanforderungen, die von irgendeinem eine Anforderung abgebenden Prozessor erzeugt werden, eine ausschließliche Zugriffsanforderung voranzustellen, die einem offenen Semaphorzustand entspricht, wobei die Anforderung in die Halteregisterbank 313 kopiert wird, so daß alle Schreibanforderungen durch den vorstehend beschriebenen Mechanismus gelöscht wurden, um einen Zugriff auf die Datenstruktur durchzuführen. Die Annahme einer vorangestellten ausschließlichen Zugriffsanforderung vereinfacht die Hardware beträchtlich, weil alle Schreibanforderungen durch den zeitlich geordneten Puffer 32 hindurch zugelassen werden können, und nicht nur die Schreibanforderungen, die dem Prozessor gehören, der das Semaphor hält, das eine spezielle Datenstruktur steuert.
Alle Speicherlese- und Semaphor-Anfragen in dem Einzelanforderungspuffer 311 werden mit den Adressen verglichen, die sich derzeit in der Halteregisterbank 313 befinden. Wenn eine Adressenübereinstimmung festgestellt wird (was ein offenes Semaphor für die diese Adresse zugeordnete Datenstruktur anzeigt), so wird das "H"-Bit für diese Anforderung gesetzt und die Anforderung wird dem zeitlich geordneten Puffer 32 zugeführt, in dem sie vorübergehend gehalten wird.
Wenn die Halteregisterbank 313 mit gültigen Eintragungen gefüllt ist und kein Register zur Verfügung steht, so wird eine offene Semaphor-Anforderung in dem Einzelanforderungspuffer 311 dem zeitlich geordneten Puffer 32 zugeführt und das zweite Markierungsbit, das mit "F" bezeichnet ist, wird gesetzt, was anzeigt, daß die Anforderung zumindestens so lange in der Schwebe gehalten werden muß, bis ein freies Register in der Halteregisterbank 313 zur Verfügung steht. Wenn ein Register verfügbar wird, so wird die Anforderung der Vielzahl von Adressen hinzugefügt, die in der Halteregisterbank 313 gespeichert sind, wodurch ein neues Semaphor geöffnet wird.
Der zeitlich geordnete Puffer 32 führt eine Pufferung für die folgenden Klassen von Anforderungen aus: Speicherleseanforderungen, die keine Semaphoren anfordern, jedoch in Konflikt mit offenen Semaphoren in der Halteregisterbank 313 stehen und auf die Aufhebung des Semaphors warten; Semaphoranforderungen, die den gespeicherten Adressen hinzugefügt werden müssen, die in der Halteregisterbank gespeicherten Semaphoranforderungen entsprechen, die jedoch nicht der Halteregisterbank 313 hinzugefügt werden können, weil ein offenes Semaphor, das den gleichen Adressenblock anfordert, vorhanden ist; Semaphoranforderungen, die nicht den in der Halteregisterbank gespeicherten Semaphoranforderungen hinzugefügt werden können, weil die Halteregisterbank vorübergehend voll ist, und Befehle, die verarbeitet werden können und denen ein Speicherzugriff von der Freigabesteuerschaltung 35 jeweils zeitlich in einer FIFO- Reihenfolge gewährt werden kann.
Anforderungen, die sich in dem zeitlich geordneten Puffer 32 befinden, können lediglich durch die Freigabesteuerschaltung 35 freigegeben oder aufgehoben werden, die das Halte-Bit löscht. Die Gesamtbedingung für die Gewährung des Zugriffes auf eine Datenstruktur besteht darin, daß beide Markierungsbits der Anforderung gelöscht sind. Anforderungen innerhalb des zeitlich geordneten Puffers 32 werden zeitlich einzeln durch die Freigabesteuerschaltung 35 ausgewählt und dann entnommen und der Speichersteuereinheit 21 zugeführt, wenn die Markierungsbits gelöscht sind. Die Speichersteuereinheit 21 führt bei Empfang der Anforderung in Form eines Wortes, das das Adressenfeld der angeforderten Datenstruktur, die zugehörige Identifikationsziffer des Prozessors und die Art des auszuführenden Speicherbefehls umfaßt, die mit dieser Anforderung verbundene Aktion aus.
Der Semaphor-Aufhebungsbefehl ist der einzige auf das Halten bezogene Befehl, der nicht von der Haltesteuerschaltung 312 verarbeitet wird. Der Semaphor-Aufhebungsbefehl wird von der Freigabesteuerschaltung 35 abgearbeitet, nachdem die Befehle aus dem zeitlich geordneten Puffer 32 herauskommen, um Folgesteuerungsprobleme zu vermeiden. Wenn die Aufhebung durch die Haltesteuerschaltung 312 bearbeitet würde, könnte ein Befehl wie zum Beispiel ein Aufhebungsbefehl, der in dem gleichen Befehl wie ein Schreibbefehl eingeschlossen wäre, dazu führen, daß eine geschützte Datenstruktur, der ein offenes Semaphor zugeordnet ist, gelesen würde. Gleichzeitig mit der Aufhebung eines offenen Semaphors erfolgt die Entfernung der jeweiligen Anforderung aus der Halteregisterbank 313. Typischerweise wird, wenn eine schwebend offene Semaphoranforderung in dem zeitlich geordneten Puffer 32 wartet und ein Semaphor, das der gleichen Datenstruktur zugeordnet war, aufgehoben wurde, die schwebende Semaphoranforderung zusammen mit den anderen Adressen in der Halteregisterbank 313 gespeichert und das "H"-Bit in dem zeitlich geordneten Puffer 32 wird gelöscht. Damit bildet der zeitlich geordnete Puffer einen Mechanismus zur vorübergehenden Speicherung von Anforderungen, bis die Bedingungen erfüllt sind, damit diesem stattgegeben werden kann. Der zeitlich geordnete Puffer ergibt weiterhin eine Möglichkeit zur Beseitigung eines zyklischen Abfragens durch Prozessoren, die darauf warten, daß einer Anforderung stattgegeben wird. Wenn der Speicherzugriff an die Datenstruktur nicht aufgrund eines offenen Semaphors oder einer vollen Halteregisterbank 313 verhindert ist, so wird die Anforderung in der Reihenfolge ihres Einganges verarbeitet.
Es ist zu erkennen, daß die beschriebene Schaltung unter Einschluß der Markierungsschaltung 15, jedoch unter Ausschluß des zeitlich geordneten Puffers 32 auch in einem System von Vorteil sein kann, bei dem die Prozessoren eine zyklische Abfrage der Semaphor-Steuerschaltung 20 durchführen.
Weiterhin ist es verständlich, daß die beschriebenen Verfahren und Schaltungen nicht nur auf den Bereich von Telekommunikationssystemen beschränkt sind, sondern auch bei anderen Datenhandhabungssystemen verwendet werden könnten, bei denen ein ausschließlicher Zugriff auf eine Datenstruktur durch einen Prozessor erforderlich ist.

Claims (7)

1. Verfahren zur Verwaltung eines gemeinsam genutzten Speichers und zur Steuerung des ausschließlichen Zugriffs an eine Datenstruktur innerhalb des Speichers durch einen der Prozessoren eines Datenhandhabungssystems mit einer Mehrzahl von Prozessoren, die jeweils auf diskrete Datenstrukturen innerhalb des gemeinsam genutzten Speichers zugreifen können, dadurch gekennzeichnet, daß das Verfahren die folgenden Schritte umfaßt:
  • (a) Speichern einer Vielzahl von Adressen in einer Speicherbank, wobei jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
  • (b) Vergleichen der Startadresse einer angefordeteten Datenstruktur mit den Adressen in der Speicherbank, um das Vorhandensein eines offenen Semaphors für die angeforderte Datenstruktur zu bestimmen,
  • (c) Gewähren des Speicherzugriffs an die angeforderte Datenstruktur, wenn sich die Startadresse der angeforderten Datenstruktur nicht in der Speicherbank befindet und wenn kein Semaphor erforderlich ist,
  • (d) wenn sich die Startadresse der Datenstruktur nicht in der Speicherbank befindet, Öffnen eines Semaphors durch Speichern der Startadresse der angeforderten Datenstruktur in der Speicherbank, wenn ein Semaphor erforderlich ist, und
  • (e) wenn die Startadresse der angeforderten Datenstruktur mit einem offenen Semaphor in der Speicherbank übereinstimmt, vorübergehendes Speichern der Startadresse der angeforderten Datenstruktur, bis das entsprechende offene Semaphor geschlossen wird, wobei zu diesem Zeitpunkt ein Zugriff an die angeforderte Datenstruktur gewährt wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß mehreren vorübergehend gespeicherten Anforderungen, die keine entsprechenden offenen Semaphoren aufweisen, ein Zugriff in der Reihenfolge ihres Eingangs gewährt wird.
3. Verfahren zur Verwaltung eines gemeinsam genutzten Speichers und zur Steuerung des ausschließlichen Zugriffs auf eine Datenstruktur innerhalb des Speichers durch einen der Prozessoren eines Datenhandhabungssystems mit einer Mehrzahl von Prozessoren, die jeweils einen Zugriff auf den gemeinsam genutzten Speicher ausführen können, der diskrete Datenstrukturen enthält, dadurch gekennzeichnet, daß das Verfahren die folgenden Schritte umfaßt:
  • (a) Speichern einer Vielzahl von Adressen in einer Speicherbank, wobei jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
  • (b) Vergleichen der Startadresse einer angeforderten Datenstruktur mit der Vielzahl von gespeicherten Adressen, wobei eine Übereinstimmung einem offenen Semaphor für die angeforderte Datenstruktur entspricht,
  • (c) Setzen eines ersten Markierungsbits in einem festgelegten Bitfeld, das der Startadresse der angeforderten Datenstruktur zugeordnet ist, wodurch die Speicheranforderung markiert wird, um das Vorhandensein eines offenen Semaphors anzuzeigen, wenn die Startadresse der angeforderten Datenstruktur mit einer Adresse in der Speicherbank übereinstimmt,
  • (d) Setzen eines zweiten Markierungsbits in einem anderen bestimmten Bitfeld, das der Startadresse der angeforderten Datenstruktur zugeordnet ist, um eine gefüllte Bank von gespeicherten Adressen anzuzeigen, wenn ein Semaphor für die angeforderte Datenstruktur erforderlich ist,
  • (e) Speichern der markierten Anforderung in einem Puffer,
  • (f) Gewähren des Speicherzugriffs für eine der gepufferten Anforderungen in geordneter Weise, wobei irgendeiner Anforderung nur dann stattgegeben wird, wenn keines der ihr zugeordneten Markierungsbits gesetzt ist,
  • (g) Speichern von Speicheranfragen, die sich in dem Puffer in der Speicherbank befinden, und Rücksetzen der Markierungsbits in den Markierungsbitfeldern innerhalb des Puffers für die entsprechende Anforderung, wenn ein Semaphor erforderlich ist und wenn die Speicherbank nicht voll ist und kein offenes Semaphor innerhalb der Speicherbank für die angeforderte Datenstruktur vorliegt,
  • (h) Rücksetzen des ersten Markierungsbits, das irgendeiner Anforderung in dem Puffer entspricht, wenn kein Semaphor für diese Anforderung erforderlich ist und wenn kein offenes Semaphor in der Speicherbank vorliegt, und
  • (i) Wiederholen des Schrittes (f).
4. Verfahren zur Steuerung des Zugriffes eines Prozessors eines Datenhandhabungssystems mit einer Vielzahl von Prozessoren, die jeweils einen Zugriff auf einen gemeinsam genutzten, diskrete Datenstrukturen enthaltenden Speicher ausführen können, auf eine der Datenstrukturen innerhalb des gemeinsam genutzten Speichers, wenn kein Zugriff auf diese Datenstruktur durch einen anderen der Prozessoren erfolgt ist, dadurch gekennzeichnet, daß das Verfahen die folgenden Schritte umfaßt:
  • (a) Vergleichen der Startadresse der angeforderten Datenstruktur mit einer Vielzahl von in einem Speicher gespeicherten Startadressen, wobei jede der Startadressen einer jeweiligen Datenstruktur des gemeinsam genutzten Speichers zugeordnet ist,
  • (b) Gewähren eines Speicherzugriffs auf die angeforderte Datenstruktur und Speichern der Startadresse der angeforderten Datenstruktur in der Bank von Adressen, wenn die Startadresse der angeforderten Datenstruktur mit keiner der Startadressen in der Bank von Adressen übereinstimmt, und
  • (c) Wiederholen des Schrittes (a), wenn ein Speicherzugriff im Schritt (b) nicht gewährt wurde.
5. Datenhandhabungssystem mit einer Vielzahl von Prozessoren, die jeweils einen Zugriff auf diskrete Datenstrukturen in einem gemeinsam genutzten Speicher ausführen können, und mit einer Schaltung zur Verwaltung des gemeinsam genutzten Speichers und zur Steuerung des Speicherzugriffs durch einen der Prozessoren auf irgendeine der Datenstrukturen in dem Speicher, dadurch gekennzeichnet, daß die Schaltung folgende Teile aufweist:
eine Speicherbank (313) zum Speichern einer Vielzahl von Adressen, wobei jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
Einrichtungen zum Vergleich der Startadresse einer angeforderten Datenstruktur mit den Adressen in der Speicherbank (313) zur Bestimmung des Vorhandenseins eines offenen Semaphors für die angeforderte Datenstruktur,
Speichereinrichtungen (32) zur vorübergehenden Speicherung der Startadresse der angeforderten Datenstruktur, bis ein entsprechendes in der Speicherbank (313) gespeichertes offenes Semaphor geschlossen wird, und
Einrichtungen zum Gewähren eines Speicherzugriffes an die angeforderte Datenstruktur, wenn die Startadresse der angeforderten Datenstruktur sich nicht in der Adressenbank befindet, und zum Gewähren eines Speicherzugriffes an die angeforderte Datenstruktur, wenn ein entsprechendes offenes Semaphor geschlossen wird.
6. Datenhandhabungssystem mit einer Mehrzahl von Prozessoren, die jeweils einen Zugriff auf diskrete Datenstrukturen innerhalb eines gemeinsam genutzten Speichers ausführen können, und mit einer Schaltung zur Verwaltung des gemeinsam genutzten Speichers und zur Steuerung des ausschließlichen Zugriffs auf eine Datenstruktur in dem Speicher durch einen der Prozessoren auf eine der Datenstrukturen innerhalb des Speichers, dadurch gekennzeichnet, daß die Schaltung folgende Teile umfaßt:
eine Speicherbank (313) zum Speichern einer Vielzahl von Adressen, wobei jede Adresse eine Startadresse einer Datenstruktur ist und einem offenen Semaphor entspricht,
Einrichtungen zum Vergleich der Startadresse einer angeforderten Datenstruktur mit der Adresse in der Speicherbank (313) zur Feststellung des Vorhandenseins eines offenen Semaphors für die angeforderte Datenstruktur,
eine Steuerlogikschaltung zum Speichern der Startadresse der angeforderten Datenstruktur in der Speicherbank (313) und zum Öffnen eines Semaphors, wenn ein Semaphor erforderlich ist und wenn die Startadresse der Datenstruktur nicht in der Speicherbank (313) enthalten ist,
einen Puffer (32) zum vorübergehenden Speichern der Startadresse der angeforderten Datenstruktur, bis ein entsprechendes offenes Semaphor geschlossen wird,
eine Puffersteuerschaltung (34) zur Aufrechterhaltung einer vorgegebenen Reihenfolge der Anforderungen in dem Puffer (32), und
eine Freigabesteuerschaltung (35) zum Gewähren eines Zugriffs für die Anforderungen in dem Puffer (32), jeweils in zeitlich einzelner Form.
7. Datenhandhabungssystem mit einer Mehrzahl von Prozessoren die jeweils einen Zugriff auf diskrete Datenstrukturen innerhalb eines gemeinsam genutzten Speichers ausführen können, mit einer Speicherverwaltungsschaltung zur Steuerung des ausschließlichen Zugriffs auf eine Datenstruktur innerhalb des Speichers durch einen der Prozessoren und auf eine der Datenstrukturen innerhalb des gemeinsam genutzten Speichers, dadurch gekennzeichnet, daß die Schaltung folgende Teile umfaßt:
einen Anforderungspuffer (311) zur vorübergehenden Speicherung der Startadresse einer angeforderten Datenstruktur,
eine Registerbank (313), die mit dem Anforderungspuffer gekoppelt ist, um Datenstruktur-Startadressen zu speichern, die offenen Semaphoren entsprechen,
eine Halte-Logikschaltung (312), die mit dem Anforderungspuffer (311), der Registerbank (313) und mit einer Puffersteuerschaltung (34) gekoppelt ist und die Einrichtungen zum Setzen einer Anzahl von Bits in dem Anforderungspuffer (32) sowie Einrichtungen zum Vergleich der Startadresse der angeforderten Datenstruktur in dem Anforderungspuffer mit den in der Registerbank gespeicherten Adressen einschließt, die offenen Semaphoren entsprechen,
einen Puffer (32) zur vorübergehenden Speicherung der Anforderungen von Datenstrukturen, wobei der Puffer (32) auf den Anforderungspuffer (311) und die Puffersteuerschaltung (34) anspricht, und wobei die Puffersteuerschaltung (34) zur Aufrechterhaltung einer vorgegebenen Reihenfolge der Anforderungen in dem Puffer dient, und
eine Freigabesteuerschaltung (35), die auf die Puffersteuerschaltung (34) und den zeitlich geordneten Puffer (32) anspricht, um zeitlich einzeln den Anforderungen in dem Puffer einen Speicherzugriff zu gewähren.
DE4207158A 1991-04-04 1992-03-06 Speicher-zugriffssteuerung Withdrawn DE4207158A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US68044891A 1991-04-04 1991-04-04

Publications (1)

Publication Number Publication Date
DE4207158A1 true DE4207158A1 (de) 1992-10-08

Family

ID=24731155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4207158A Withdrawn DE4207158A1 (de) 1991-04-04 1992-03-06 Speicher-zugriffssteuerung

Country Status (5)

Country Link
US (1) US5485593A (de)
JP (1) JP3010400B2 (de)
CA (1) CA2057446C (de)
DE (1) DE4207158A1 (de)
GB (1) GB2254457B (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0818918A2 (de) * 1996-07-09 1998-01-14 Murata Kikai Kabushiki Kaisha Informationsverarbeitungssystem
EP0842470A1 (de) * 1995-07-27 1998-05-20 Intel Corporation Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE10063982A1 (de) * 2000-12-14 2002-07-04 Ifak Inst Fuer Automation Und Feldgerät für Automatisierungssysteme
WO2003028321A1 (de) * 2001-09-26 2003-04-03 Siemens Aktiengesellschaft Verfahren zur verarbeitung konsistenter datensätze

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2570969B2 (ja) * 1993-07-05 1997-01-16 日本電気株式会社 メモリ管理システム及び方法
US5829052A (en) * 1994-12-28 1998-10-27 Intel Corporation Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
JP2731761B2 (ja) * 1995-08-29 1998-03-25 甲府日本電気株式会社 ネットワーク制御装置
US5721871A (en) * 1996-02-09 1998-02-24 Motorola, Inc. Memory system ensuring coherency for memory buffers in a data communication system
US5760836A (en) * 1996-08-22 1998-06-02 International Business Machines Corporation FIFO feedback and control for digital video encoder
US6418517B1 (en) * 1997-08-29 2002-07-09 International Business Machines Corporation Optimized function execution for a multiprocessor computer system
US6345324B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Apparatus for transferring data using an interface element and a queued direct input-output device
US6339803B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program product used for exchange and transfer of data having a queuing mechanism and utilizing a queued direct input-output device
US6345329B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Method and apparatus for exchanging data using a queued direct input-output device
US6401145B1 (en) * 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
WO2001033374A1 (de) * 1999-11-02 2001-05-10 Siemens Aktiengesellschaft Burst-konzentrator zur effektiven unterstützung eines burstfähigen bussystems bei sequentiellen einzelwort-zugriffen
GB2370131C (en) * 2000-12-12 2006-09-06 Advanced Risc Mach Ltd Exclusive access control to a processing resource
US7454753B2 (en) * 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7089555B2 (en) * 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7406690B2 (en) * 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) * 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
CN104854845B (zh) * 2012-10-04 2019-07-23 高通股份有限公司 使用高效的原子操作的方法和装置
US10839478B2 (en) * 2019-04-08 2020-11-17 Intel Corporation Accumulator pooling mechanism

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3435418A (en) * 1965-05-27 1969-03-25 Ibm Record retrieval and record hold system
CA929272A (en) * 1969-03-05 1973-06-26 R. Bennett James Data processing system having status indicating and storage means
JPS5930305B2 (ja) * 1976-05-18 1984-07-26 日本電気株式会社 ロツク管理方式
JPS5621260A (en) * 1979-07-27 1981-02-27 Nec Corp Access unit
JPS6043537B2 (ja) * 1980-04-22 1985-09-28 富士通株式会社 共用外部記憶装置における排他制御方式
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
JPS6073771A (ja) * 1983-09-29 1985-04-25 Fujitsu Ltd 直接アクセス記憶装置の逐次化方法
US4951193A (en) * 1986-09-05 1990-08-21 Hitachi, Ltd. Parallel computer with distributed shared memories and distributed task activating circuits
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
US4910656A (en) * 1987-09-21 1990-03-20 Motorola, Inc. Bus master having selective burst initiation
US4985831A (en) * 1988-10-31 1991-01-15 Evans & Sutherland Computer Corp. Multiprocessor task scheduling system
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0842470A1 (de) * 1995-07-27 1998-05-20 Intel Corporation Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
EP0842470A4 (de) * 1995-07-27 2002-01-02 Intel Corp Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
EP0818918A2 (de) * 1996-07-09 1998-01-14 Murata Kikai Kabushiki Kaisha Informationsverarbeitungssystem
EP0818918A3 (de) * 1996-07-09 1999-11-24 Murata Kikai Kabushiki Kaisha Informationsverarbeitungssystem
US6195178B1 (en) 1996-07-09 2001-02-27 Murata Kikai Kabushiki Kaisha Information processing system
DE10063982A1 (de) * 2000-12-14 2002-07-04 Ifak Inst Fuer Automation Und Feldgerät für Automatisierungssysteme
US7013185B2 (en) 2000-12-14 2006-03-14 Ifak Institut Fuer Automation Und Kommunikation E.V. Magdeburg Field device for automation systems
WO2003028321A1 (de) * 2001-09-26 2003-04-03 Siemens Aktiengesellschaft Verfahren zur verarbeitung konsistenter datensätze
US7320039B2 (en) 2001-09-26 2008-01-15 Siemens Aktiengesellschaft Method for processing consistent data sets
US7818463B2 (en) 2001-09-26 2010-10-19 Siemens Aktiengesellschaft Method for processing consistent data sets by an asynchronous application of a subscriber in an isochronous, cyclical communications system

Also Published As

Publication number Publication date
JP3010400B2 (ja) 2000-02-21
GB2254457A (en) 1992-10-07
GB9204453D0 (en) 1992-04-15
US5485593A (en) 1996-01-16
CA2057446C (en) 1998-02-17
GB2254457B (en) 1995-05-31
CA2057446A1 (en) 1992-10-05
JPH06103155A (ja) 1994-04-15

Similar Documents

Publication Publication Date Title
DE4207158A1 (de) Speicher-zugriffssteuerung
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE69410489T2 (de) Verfahren und gerät für die synchronisation und den ablauf von mehreren datenströmen und echtzeitaufgaben
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE2350884C2 (de) Adreßumsetzungseinheit
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE68917317T2 (de) Befehlsausgabesteuerung mit vorausschau für einen rechner.
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE1966633B2 (de) Datenverarbeitungsanlage mit überlappter Arbeitswelse bei Verwendung eines Haupt- und Pufferspeichers
DE69022709T2 (de) Synchronisationsbefehl für Mehrprozessornetz.
DE1524102C3 (de) Elektronische, aus Baueinheiten aufgebaute Datenverarbeitungsmaschine
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE3110196A1 (de) Datenverarbeitungssystem
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
EP0635792A2 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE1499182B2 (de) Datenspeichersystem
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE4220698A1 (de) System zur dynamischen verknuepfung modularer abschnitte von computersoftware
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
DE69031297T2 (de) Eingabewarteschlange für Speichersubsysteme
DE1499206C3 (de) Rechenanlage
DE2101949A1 (de) Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/02

8139 Disposal/non-payment of the annual fee