DE4207158A1 - Speicher-zugriffssteuerung - Google Patents
Speicher-zugriffssteuerungInfo
- 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
Links
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- 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/17356—Indirect interconnection networks
- G06F15/17368—Indirect 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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1991
- 1991-12-11 CA CA002057446A patent/CA2057446C/en not_active Expired - Fee Related
-
1992
- 1992-03-02 GB GB9204453A patent/GB2254457B/en not_active Expired - Fee Related
- 1992-03-06 DE DE4207158A patent/DE4207158A1/de not_active Withdrawn
- 1992-04-04 JP JP4112188A patent/JP3010400B2/ja not_active Expired - Fee Related
-
1994
- 1994-03-03 US US08/205,333 patent/US5485593A/en not_active Expired - Lifetime
Cited By (10)
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 |