DE69800095T2 - Schnelles Semaphoreregister mit einer sicheren Arbeitsweise ohne spezifisches Busprotokoll - Google Patents

Schnelles Semaphoreregister mit einer sicheren Arbeitsweise ohne spezifisches Busprotokoll

Info

Publication number
DE69800095T2
DE69800095T2 DE69800095T DE69800095T DE69800095T2 DE 69800095 T2 DE69800095 T2 DE 69800095T2 DE 69800095 T DE69800095 T DE 69800095T DE 69800095 T DE69800095 T DE 69800095T DE 69800095 T2 DE69800095 T2 DE 69800095T2
Authority
DE
Germany
Prior art keywords
register
resource
bus line
input
msb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69800095T
Other languages
English (en)
Other versions
DE69800095D1 (de
Inventor
Serge Tissot
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.)
Thales SA
Original Assignee
Thomson CSF SA
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 Thomson CSF SA filed Critical Thomson CSF SA
Application granted granted Critical
Publication of DE69800095D1 publication Critical patent/DE69800095D1/de
Publication of DE69800095T2 publication Critical patent/DE69800095T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein schnelles Semaphor-Register mit gesichertem Betrieb und ohne spezifisches Busprotokoll.
  • In Multiprozessorsystemen kommt es oft vor, daß mehrere Prozessoren gleichzeitig zu einer gemeinsamen Ressource (Bildschirm, Drucker etc.) Zugang fordern. In manchen Fällen kann zu den Ressourcen von mehreren Prozessoren gleichzeitig zugegriffen werden, beispielsweise zu bestimmten Speichern. In anderen Fällen können die Ressourcen jeweils nur von einem Prozessor angesprochen werden. Man nennt sie dann nicht gleichzeitig von mehreren Organen ansprechbar. Man kann auf einen Semaphorregister zurückgreifen, bei dem es sich um eine Speicherzelle handelt, die von einer Software benutzt werden kann, um einer auf einem oder mehreren Prozessoren durchgeführten Aufgabe während einer bestimmten Zeit ausschließlichen Zugang zu einer nicht gleichzeitig von mehreren Organen ansprechbaren Ressource des Systems zu verschaffen. Diese Semaphorfunktion erfordert üblicherweise besondere Maßnahmen, nämlich innerhalb der Prozessoren die Definition und Verwendung von besonderen unteilbaren Lese- und Schreibbefehlen (beispielsweise "test and set", "compare and swap", "load and reserve"). Auf den Busleitungen der Prozessoren und den zugeordneten Unter- Busleitungen (in den Speichern, den Eingangs-/Ausgangsschaltungen, den Verbindungsbusleitungen) braucht man besondere Signale, beispielsweise "Lock" oder "RMW" (d. h. "read, modify, write") oder besondere Busprotokolle, die den unteilbaren Charakter der Zyklen außerhalb der Prozessoren verlängern sollen. Diese spezifischen Busprotokolle und Signalisationen haben oft den Nachteil einer größeren Komplexität und von Zeitverlusten in den Busverwaltungssystemen, beispielsweise der Buszuweisung.
  • Aus dem Patent US 5 276 886 ist beispielsweise eine Semaphor-Vorrichtung für Multiprozessorsysteme bekannt, bei der das Lesen ohne besonderes Busprotokoll oder einen spezifischen Prozessorbefehl erfolgt, die aber keine Nummer der Aufgabe liefern kann, welche den Prozessor in den besetzten Zustand schalten konnte, und zwar aufgrund einer internen Schaltsteuerung des Semaphor-Zustands und der Unmöglichkeit, eine mit dem Lesen des Semaphoreregisters in Verbindung stehende Aktion zu berücksichtigen.
  • Aus dem US-Patent 5 317 749 ist ein Verfahren zur Zugangskontrolle zu einer von mehreren Aufgaben gleichzeitig ansprechbaren Ressource bekannt. Dieses Verfahren liegt ganz im Softwarebereich und erfordert ein spezifisches Busprotokoll.
  • Ziel der vorliegenden Erfindung ist eine Semaphorvorrichtung für ein Multiprozessorsystem, das mindestens auf eine nicht gleichzeitig von mehreren Organen ansprechbare Ressource zugreifen soll, wobei die Vorrichtung kein besonderes Hardware-Protokoll für die Informationsaustauschvorgänge mit der Busleitung erfordert, mit der sie verbunden ist. Außerdem kann die Vorrichtung ohne jede Mehrdeutigkeit eine Verbindung zwischen der Umschaltung eines Semaphorregisters in den Besetztzustand und der diese Umschaltung hervorrufenden Aufgabe herstellen, und zwar möglichst schnell.
  • Die erfindungsgemäße Vorrichtung enthält ein Register mit mindestens einem Kontrollfeld und einem Datenfeld sowie Mittel zur Kontrolle des Beschreibens dieses Registers mit Daten, die auf einer ersten Busleitung geliefert werden, an die die verschiedenen Prozessoren des Systems angeschlossen sind, wobei diese Mittel an mindestens einen Draht für das Kontrollbit dieser Busleitung und an den Ausgang des Kontrollfelds des Registers angeschlossen sind, während im übrigen der Datenausgang des Registers an mindestens eine Register-Lesebusleitung über den Prozessor oder die Prozessoren angeschlossen ist und gegebenenfalls an eine Hardware- Ressource, die nicht gleichzeitig von mehreren Organen ansprechbar ist.
  • Die vorliegende Erfindung wird nun anhand von zwei nicht beschränkend zu verstehenden Ausführungsbeispielen und den beiliegenden Zeichnungen näher erläutert.
  • Fig. 1 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform der erfindungsgemäßen Vorrichtung.
  • Fig. 2 zeigt ein Blockdiagramm einer Variante der Vorrichtung aus Fig. 1.
  • Die Erfindung wird nachstehend unter Bezugnahme auf ein Multiprozessorsystem beschrieben, das an eine nicht gleichzeitig von mehreren Organen ansprechbare Ressource (Drucker, Bildschirm, Software-Ressource etc.) angeschlossen ist, aber natürlich ist die Erfindung nicht auf eine solche Anwendung beschränkt und kann auch in anderen Systemen eingesetzt werden, in denen die Verarbeitung in jedem gegebenen Zeitpunkt ausschließlich zwischen den verschiedenen diese Verarbeitung anfordernden Organen durchgeführt werden müssen.
  • Die Semaphor-Vorrichtung 1 in Fig. 1 ist eingangsseitig an eine Busleitung 2 und ausgangsseitig mindestens an eine oder mehrere Lesebusleitungen 3 für das Register durch die Prozessoren sowie gegebenenfalls an eine nicht gleichzeitig von mehreren Organen ansprechbare Hardware-Ressource 9 angeschlossen. Die verschiedenen nicht dargestellten Prozessoren des Systems, in dem die Vorrichtung 1 enthalten ist, sind an die Busleitungen 2 und 3 angeschlossen (bei denen es sich um eine einzige Busleitung handeln kann, wenn diese in beiden Richtungen wirksam ist). Die Busleitungen 2 und 3 sind beispielsweise Schienen mit acht Drähten, was die Erfindung jedoch nicht einschränkt.
  • Einer dieser Drähte, beispielsweise der Draht für das Bit mit der höchsten Gewichtung (MSB) ist derjenige, auf dem das unten beschriebene Kontrollsignal verläuft, während die sieben anderen Drähte dieser Busleitungen das gegebene Datenfeld übertragen.
  • Die Busleitung 2 ist an einen ersten Eingang E1 eines Multiplexers 4 angeschlossen, der zwei Eingängen besitzt. Der Ausgang des Multiplexers 4 (der für das obige Beispiel auch acht Bits umfaßt) ist an den Eingang eines Registers 5 (im Englischen "latch" genannt) angeschlossen. In der Ruhestellung, oder wenn die Ressource 9 frei ist, verbindet der Multiplexer 4 seinen Eingang E1 mit seinem Ausgang. Der Ausgang des Registers 5 (für das obige Beispiel ebenfalls mit acht Bits) ist an den zweiten Eingang E2 des Multiplexers 4 angeschlossen. Die acht Datenausgangsdrähte des Registers 5 sind mit der Busleitung 3 zum erneuten Lesen des Registers durch die Prozessoren und gegebenenfalls mit einer nicht gleichzeitig von mehreren Organen ansprechbaren Ressource 9 verbunden. Der Draht MSB des Kontrollsignals am Ausgang des Registers 5 ist mit einem ersten Eingang eines Und-Tors 6 verbunden, dessen zweiter Eingang mit dem Kontrollsignal-Draht der Busleitung 2 verbunden ist. Der Ausgang des Tors 6 ist mit dem Steuereingang (SELCT) des Multiplexers 4 verbunden. Der Nullsetzungseingang (RST) des Registers 5 ist mit einer Klemme 7 verbunden, die ein Nullsetzungssignal für das Register empfängt, beispielsweise beim Start des Systems. Der Taktsignaleingang (CLK) des Registers 5 ist mit einer Klemme 8 verbunden, die von der Busleitung 2 die Schreibtaktsignale des Registers empfängt.
  • Die oben beschriebene Vorrichtung 1 arbeitet folgendermaßen: Beim Einschalten gelangt ein Nullsetzungssignal an die Klemme 7, sodaß alle Bits des Registers 5 auf Null gesetzt werden, insbesondere das Bit MSB, das das Kontrollbit des Semaphorregisters ist und dessen Nachricht bedeutet: Die zugeordnete Ressource 9, die dem Semaphorregister hardware- oder softwaremäßig zugeordnet ist, ist frei, wenn dieses Bit den Wert Null hat.
  • In einem Zeitpunkt t möchte eine beliebige Aufgabe T1, die von mindestens einem der Prozessoren des Systems durchgeführt wird, Zugang zur Ressource 9 bekommen, um dort Bearbeitungen durchzuführen oder durchführen zu lassen.
  • Diese Aufgabe T1 liefert auf dem Draht MSB der Busleitung 2 einen Pegel Eins, der "bedingtes Schreiben" bedeutet, und sendet zugleich ihre Daten auf die sieben übrigen Drähte der Busleitung 2. Da der Eingang E1 auf den Ausgang des Multiplexers 4 durchgeschaltet ist, kommen die Informationen (Daten und Kontrollbit mit dem Wert Eins) von T1 am Register 5 an. Mit dem ersten an der Klemme 8 ankommenden Taktimpuls überträgt das Register 5 seine Informationen an seinen Ausgang und damit auch an den Eingang E2 des Multiplexers 4. Die Daten sind sofort auf der Busleitung 3 verfügbar und gegebenenfalls auf der nicht gleichzeitig von mehreren Organen ansprechbaren materiellen Ressource 9, während das Kontrollbit MSB (auf dem Pegel Eins) am entsprechenden Eingang des Tors 6 anliegt. Wenn also ein bedingter Schreibwunsch von der Busleitung 2 (das MSB der Busleitung 2 hat den Wert Eins) vorliegt, erscheint am Ausgang des Tors 6 eine Eins und schaltet den Multiplexer 4 auf seinen Eingang E2 um, wodurch dieser Schreibvorgang in das Register 5 untersagt wird, solange das Kontrollbit auf der Busleitung 2 den Wert Eins hat.
  • Die Aufgabe T1 liest sofort oder später den Inhalt des Semaphorregisters 5 (indem das Register 5 über die Busleitung 3 gelesen wird), vergleicht den so gelesenen Wert mit dem geschriebenen Wert (wie er auch über die Busleitung 2 übertragen wurde, stellt fest, daß sie identisch sind und schließt daraus, daß die nicht gleichzeitig von mehreren Organen ansprechbare Ressource 9, die hardware- oder softwaremäßig dem Semaphorregister zugeordnet ist, tatsächlich ihr zugewiesen wurde.
  • Wenn eine Aufgabe T2, die sich von der Aufgabe T1 unterscheidet, den Versuch unternommen hätte, ihre Informationen in das Register 5 unmittelbar nach T1 einzuschreiben (oder so lange T1 die Ressource 9 noch nicht freigegeben hat), genauso wie T1, dann wäre ihr das nicht geglückt, da der Vergleich zwischen ihren eigenen Informationen, die sie an die Busleitung 2 geliefert hat, und dem Inhalt des Registers 5, der über die Busleitung 3 gelesen wird, sofort einen Unterschied ergeben hätte, da der Inhalt des Registers 5 derjenige ist, der vorher von T1 geliefert worden war (der aktive Eingang des Multiplexers 4 ist E2). Daher muß T2 warten, bis T1 ein Kontrollbit des Werts Null auf die Busleitung 2 liefert, um den Multiplexer 4 auf E1 umzuschalten und so T2 zu ermöglichen, seinen Inhalt in das Register 5 einzuschreiben. Der Übergang des Kontrollbits von T1 auf Null bedeutet "unbedingtes Schreiben" und das Semaphorregister meldet "die Ressource ist frei".
  • Die von den Aufgaben auf die Busleitung 2 gegebenen Daten können, abgesehen vom Kontrollbit, beliebiger Art sein. Sie können beispielsweise zur Kodierung der Nummer der Aufgabe oder des Prozessors verwendet werden und so den anderen Aufgaben mitteilen, wer als letzter die Ressource 9 benutzt hat.
  • Es ist wichtig, zu bemerken, daß das Eintragen der Informationen (Daten und Kontrollbit) in das Register 5 mit einem einzigen Taktimpuls erfolgt, sodaß sofort die Information "Ressource besetzt" der Identität der Aufgabe und/oder des Prozessors zugeordnet werden kann, die oder der die Ressource belegt, sowie den gegebenenfalls von dieser Aufgabe übermittelten Informationen.
  • Die Vorrichtung 10 in Fig. 2 enthält das gleiche Register 5 wie die Vorrichtung in Fig. 1, nicht aber den Multiplexer 4. In dieser Vorrichtung 10 sind der Draht MSB der Busleitung 2 und der Ausgang MSB des Registers 5 auch an die Eingänge einer Torschaltung 6' angeschlossen, die die Durchschaltungsbedingung für den positiven Taktimpuls 8 beim Versuch des Eintrags in das Register 5 definiert.
  • Der Betrieb der Vorrichtung 10 ähnelt dem der Vorrichtung 1, da das Register 5 seinen Inhalt an den Ausgang und damit an die Ressource 9 nur überträgt, wenn die Ressource 9 frei ist (das MSB des Registers 5 hat den Wert Null) oder wenn das Eintragen unbedingt erfolgt (MSB der Busleitung 2 hat den Wert Null).
  • Man kann sich leicht vorstellen, daß die in den Fig. 1 und 2 beschriebenen Ausführungsformen folgendermaßen verallgemeinert werden können. Die Schreibbedingung des Semaphorregisters, die aus dem Tor 6 kommt, kann eine Boole'sche Verknüpfung zwischen allen Bits oder einigen Bits auf der Busleitung 2 und allen Bits oder einem Teil der Ausgangsbits des Registers 5 sein. So kann beispielsweise der freie Zustand des Semaphorregisters vereinbarungsgemäß mit dem Zustand Null aller Ausgangsbits des Registers 5 kodiert sein. Ein Schreibwunsch, der von der Busleitung 2 kommt, wird als unbedingt betrachtet, wenn alle Bits auf der Busleitung 2 den Wert Null haben (Freigabe der Ressource). Ein Schreibwunsch von der Busleitung 2 wird als bedingt betrachtet, wenn mindestens eines der von der Busleitung 2 kommenden Bits den Wert Eins hat, wobei dann diese Angabe mindestens zum Teil eine eindeutige Identifizierung ungleich Null der Aufgabe ist, die sich des Semaphorregisters bemächtigen will.
  • Im allgemeinsten Fall kann das System, in dem die erfindungsgemäße Vorrichtung enthalten ist, aus Untersystemen, beispielsweise CPU-Karten, zusammengesetzt sein, die gebündelt sind, wobei jedes Untersystem oder jede Karte einen oder mehrere Prozessoren enthalten kann.
  • Im Fall eines Hardware-Systems in Verbindung mit einem "operating system" (O. S.) vom Typ symmetrischer Multiprozessoren (mehrere einem gemeinsamen Speicher zugeordnete Prozessoren, die im Rahmen eines gemeinsamen O. S. arbeiten) kann bekanntlich eine Aufgabe beliebig auf mehreren Prozessoren durchgeführt werden. Die Prozessornummer wird dann nicht verwendet, da die gleiche Aufgabe an einem Prozessor beginnen und an einem anderen Prozessor enden kann.
  • In einem System mit parallelen Prozessoren im Bündel, in dem jedes O. S. dupliziert ist, wird die Prozessornummer verwendet, um das Problem von eventuell zwei unterschiedlichen Aufgaben zugewiesenen Nummern zu berücksichtigen.
  • In der erfindungsgemäßen Vorrichtung muß das Datenfeld ein eindeutiges Symbol der Aufgabe oder des Prozessorses innerhalb des Systems enthalten. Dieses Symbol muß zumindest in einer Gruppe von Aufgaben und Prozessoren eindeutig sein, die auf die auf die gleiche nicht gleichzeitig von mehreren Organen ansprechbare Ressource Zugang suchen.
  • Die erfindungsgemäße Vorrichtung besitzt eine hohe Betriebssicherheit. Wenn nämlich ein Hardware- oder Softwarefehler auf einem der Prozessoren oder Aufgaben (mit einem eindeutigen Symbol) auftritt, der oder die eine nicht gleichzeitig von mehreren Organen ansprechbare Ressource belegen kann, und ehe sie Zeit hatte, die Ressource freizugeben, kann das die erfindungsgemäße Vorrichtung nicht enthaltende System paralysiert bleiben, da keine andere Aufgabe die Ressource belegen kann. Das Semaphorregister gemäß der Erfindung ermöglicht es dagegen, in jedem Augenblick den Belegungszustand der Ressource, die Aufgabe und den Prozessor zu kennen, der diese Ressource belegt. Wenn beispielsweise die Aufgabe durch das O. S. "getötet" wird, kann letztere leicht das entsprechende Semaphorregister oder die entsprechenden Semaphorregister freigeben. Auch wenn einer der Prozessoren oder eine der Karten des Systems erneut initialisiert werden muß, kann man leicht überprüfen, ob eine durch das Semaphorregister gemäß der Erfindung geschützte Ressource blockiert bleibt, und sie dann freigeben.
  • Wenn, wie dies vom Stand der Technik vorgeschlagen wird, ein Speicherfach zur Speicherung der Nummer der Aufgabe und/oder des Prozessors kurz nach der Belegung des Semaphorregisters verwendet würde, dann könnte man unmöglich die Aufgabe und den Prozessor kennen, die oder der die Ressource blockiert, wenn die Betriebsstörung zwischen der Belegung des Semaphorregisters und der Speicherung der Nummer der Aufgabe und/oder des Prozessors auftritt. Man sieht, daß eine sogar ziemlich lange Zeit zwischen der Belegung des Semaphorregisters und dem Einschreiben der Nummer der Aufgabe und/oder des Prozessors verstreichen könnte, wenn eine Störung zwischen diesen beiden Ereignissen auftritt (Unterbrechung, Buszuweisung, Paginieren des O. S. etc.).
  • Das Datenfeld des Semaphorregisters kann außer den Daten betreffend die Nummer der Aufgabe oder des Prozessors ein Feld von Informationen oder Steuerungen enthalten, die mit der Verwendung der Ressource verknüpft sind. Im häufigsten Fall, in dem die Ressource frei ist; d. h. sofort nach dem ersten Schreibzugang, ist dieses Feld mit Informationen und/oder Steuerungen, beispielsweise der Steuerung des Eingangs-/Ausgangsstarts, für die Auswertung durch das System und/oder seine Software verfügbar.
  • Dies bringt einen Gewinn hinsichtlich der Dauer der Ausführung der Anfrage und hinsichtlich der Zeit, während der die Ressource für die anderen Aufgaben nicht verfügbar ist, im Vergleich zu einer klassischen Lese-, Modifizierungs-, Schreibmethode, z. B. "test and set". Diese Zeit könnte gegebenenfalls lang sein, wenn ein störendes Ereignis (Unterbrechung, Buszuweisung, Paginierung des O. S., u. s. w..) in der Aufgabe aufträte, die Zugang zur Ressource zwischen der klassischen Belegung des Semaphorregisters und der Lieferung einer Steuerung oder Information auftritt.
  • Im Fall der Ausführung im "user mode" kann eine Aufgabe auf der Benutzerebene leicht das erfindungsgemäße Semaphorregister aus folgenden Gründen benutzen:
  • - Es ist kein privilegierter Befehl erforderlich.
  • - Eine Ausnahme (Unterbrechung, Paginieren des O. S. etc.) kann zu beliebigen Zeitpunkten auftreten, ohne daß die Integrität des Schutzes des Zugangs zu der Ressource in Frage steht.
  • Die erfindungsgemäße Vorrichtung läßt sich leicht in Hardware realisieren und kann auf der Busleitung ohne besonderes Protokoll eingesetzt werden. Ein einziges logisches Tor zur Umsetzung der Schreibbedingung sowie eine Vorrichtung (beispielsweise ein Multiplexer) reichen nämlich aus, um dieses Schreiben bedingt durchzuführen. Diese Vorrichtung ist auf beliebigen Busleitungen in heterogenen Umfeldern einsetzbar, wobei die Busleitung(-en) nur Datenbits sowie die Möglichkeit besitzen muß (müssen), Standardzyklen zum Lesen/Schreiben durchzuführen sowie gleichzeitig für den Zugang zum Semaphorregister auch über ein Informatiknetz verwendet werden zu können.
  • Das sich üblicherweise stellende Problem mit den Semaphorregistern ist die Zugangspriorität zur nicht gleichzeitig von mehreren Organen ansprechbaren Ressource, wenn mehrere Aufgaben knapp hintereinander Zugang suchen.
  • (a) Einerseits ist es oft wünschenswert, zu gewährleisten, daß alle Aufgaben gleichberechtigt (mittels rotierender Priorität) oder auch gemäß fester Priorität bei der Belegung der Ressource zum Zug kommen.
  • (b) Andrerseits sollen die Aufgaben, die auf die Freigabe einer Ressource warten, keinen allzu großen unnötigen Verkehr auf der Busleitung erzeugen, indem sie sehr häufig prüfen, ob die Ressource nicht frei ist.
  • Um dieses Ergebnis zu erzielen, kann man innerhalb des Datenfelds des Semaphorregisters ein Feld definieren, das die voraussichtliche verbleibende Zeit quantifiziert, während der die Ressource noch besetzt bleibt. Mit dem Ablauf dieser Zeit kann dieses Feld (beispielsweise durch Abzählen) durch eine zusätzliche Form des unbedingten Schreibens in das Register aktualisiert werden (durch die Aufgabe, die die Ressource freigeben soll, nicht unbedingt diejenige, die sie belegt hatte), wobei der Zustand des Semaphorregisters "besetzt" bleibt(implementiert durch ein zusätzliches Bit des Steuer- oder Zugangsfelds des gleichen Registers an einer anderen Adresse). Die Aktualisierung dieses Felds obliegt der Aufgabe, das Semaphorregister freizugeben, also, je nachdem, die Aufgabe, die das Semaphorregister belegt hat, oder eine produzierende Aufgabe).
  • Jede Aufgabe, die das Semaphorregister durch erneutes Lesen und Vergleich der Nummer der Aufgabe oder des Prozessors als belegt erkennt, weiß also bereits zu Beginn der Belegung des Semaphorregisters und ohne Gefahr eines Fehlers, nach welcher Zeitdauer sie etwa wieder versuchen solle, das Semaphorregister wieder zu belegen, sodaß unnötige Versuche, die Busleitung zu belegen, vermieden werden. Damit ist das Kriterium (b) erfüllt. Zur Erfüllung des Kriteriums (a) reicht es für die Aufgabe aus, eine abhängig von ihrer Priorität bestimmte weitere Zeitdauer zu warten. Je niedriger die Priorität ist, umso größer wird diese zusätzliche Zeitdauer sein. Wenn der Zugang zur Ressource für einander ähnliche Prioritäten gewünscht ist, dann ist es günstig, wenn die Aufgabe, die die Ressource belegt sieht, eine kurze. Zeitdauer zufälliger Länge zusätzlich zur voraussichlichen Zeitdauer und der durch die Priorität bestimmten Zeitdauer einzuplanen.
  • Die Verfügbarkeit der voraussichtlichen Zeitdauer für den Zugang zur Ressource ist wirksam, sobald das Semaphorregister übernommen wurde, und gleichzeitig mit dieser Übernahme.
  • Eine besondere Ausführungsform des oben beschriebenen Semaphorregisters erlaubt es, die Phase der Übernahme des Semaphorregisters auf einen einzigen Lesezyklus der Busleitung zu beschränken, und nicht auf zwei Zyklen zum Schreiben und Prüfen. Die Bits niedriger Gewichtung der Adresse des Lesezyklus können verwendet werden, um den in das Semaphorregister einzutragenden Wert zu übertragen (bedingtes oder unbedingtes Schreiben). Das Register wird unabhängig vom Wert der Adressenbits geringer Gewichtung ausgewählt. So kann man in einem einzigen Lesezyklus auf der Busleitung die Kontrolle des Semaphorregisters übernehmen, mit allen Vorteilen hinsichtlich Sicherheit, Geschwindigkeit und Einfachheit der Durchführung, wie oben beschrieben.

Claims (4)

1. Vorrichtung mit einem Semaphorregister für Multiprozessorsysteme, dadurch gekennzeichnet, daß sie ein Register (5) mit mindestens einem Kontrollfeld (MSB) und einem Datenfeld sowie Mittel (4, 6, 6') zur Kontrolle des Beschreibens dieses Registers (5) mit Daten, die auf einer ersten Busleitung (2) geliefert werden, an die die verschiedenen Prozessoren des Systems angeschlossen sind, wobei diese Mittel an mindestens einen Draht (MSB) für das Kontrollbit dieser Busleitung (2) und an den Ausgang des Kontrollfelds (MSB) des Registers angeschlossen sind, während im übrigen der Datenausgang des Registers an mindestens eine Register-Lesebusleitung (3) über den Prozessor oder die Prozessoren angeschlossen ist und an eine Hardware-Ressource (9), die nicht gleichzeitig von mehreren Organen ansprechbar ist.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Kontrollmittel einen Multiplexer (4) enthalten, dessen erster Eingang (E2) an den Datenausgang des Registers (5) und dessen zweiter Eingang (E1) an die erste Busleitung (2) angeschlossen ist, während der Ausgang des Multiplexers mit einem Eingang des Registers verbunden ist, und daß ein Und-Tor (6) vorgesehen ist, von dem ein Eingang an mindestens einen Draht (MSB) für das Kontrollbit der Busleitung (2) angeschlossen ist, während ein anderer Eingang an den Ausgang des Kontrollfelds (MSB) des Registers (5) angeschlossen ist und der Ausgang des Und-Tors (6) mit dem Steuereingang (SELCT) verbunden ist.
3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Kontrollmittel (6') eine logische Schaltung enthalten, die an mindestens einen Draht (MSB) für das Kontrollbit der ersten Busleitung (2) und an den Ausgang des Kontrollfelds (MSB) des Registers (5) angeschlossen ist, um die Weiterleitung von Taktimpulsen (8) zum Register (5) zu steuern, und daß der Eingang des Registers an die erste Busleitung (2) angeschlossen ist.
4. Vorrichtung nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß das Datenfeld mindestens eine der folgenden Angaben enthält: die Nummer der Aufgabe, die zur Ressource Zugang hat, die Nummer des entsprechenden Prozessors, die Identifizierung der einzigen Aufgabe unter allen möglichen Aufgaben, die in einem gleichen Augenblick Zugang zur Ressource suchen, und die voraussichtlich verbleibende Zeitdauer für die Belegung der Ressource.
DE69800095T 1997-02-12 1998-02-10 Schnelles Semaphoreregister mit einer sicheren Arbeitsweise ohne spezifisches Busprotokoll Expired - Lifetime DE69800095T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9701598A FR2759472B1 (fr) 1997-02-12 1997-02-12 Registre semaphore rapide a fonctionnement securise sans protocole de bus specifique

Publications (2)

Publication Number Publication Date
DE69800095D1 DE69800095D1 (de) 2000-04-27
DE69800095T2 true DE69800095T2 (de) 2000-09-14

Family

ID=9503598

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69800095T Expired - Lifetime DE69800095T2 (de) 1997-02-12 1998-02-10 Schnelles Semaphoreregister mit einer sicheren Arbeitsweise ohne spezifisches Busprotokoll

Country Status (5)

Country Link
US (1) US5951662A (de)
EP (1) EP0859328B1 (de)
CA (1) CA2226715C (de)
DE (1) DE69800095T2 (de)
FR (1) FR2759472B1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453375B1 (en) * 1999-03-23 2002-09-17 Intel Corporation Method and apparatus for obtaining coherent accesses with posted writes from multiple software drivers
US6549961B1 (en) * 1999-10-27 2003-04-15 Infineon Technologies North America Corporation Semaphore access in a multiprocessor system
US7124224B2 (en) * 2000-12-22 2006-10-17 Intel Corporation Method and apparatus for shared resource management in a multiprocessing system
US6892258B1 (en) * 2001-10-26 2005-05-10 Lsi Logic Corporation Hardware semaphores for a multi-processor system within a shared memory architecture
FI20020210A (fi) * 2002-02-04 2003-08-05 Nokia Corp Moniprosessoriympäristöön tarkoitettu laitteistopohjainen opastin
US20040019722A1 (en) * 2002-07-25 2004-01-29 Sedmak Michael C. Method and apparatus for multi-core on-chip semaphore

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380798A (en) * 1980-09-15 1983-04-19 Motorola, Inc. Semaphore register including ownership bits
US4780822A (en) * 1986-09-17 1988-10-25 Integrated Device Technology, Inc. Semaphore circuit for shared memory cells
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
US5526487A (en) * 1989-02-09 1996-06-11 Cray Research, Inc. System for multiprocessor communication
FR2662830B1 (fr) * 1990-06-05 1992-08-28 Bull Sa Procede de dialogue entre les processeurs d'un systeme, systeme pour sa mise en óoeuvre et utilisation pour la repartition des processus aux processeurs.
AU636739B2 (en) * 1990-06-29 1993-05-06 Digital Equipment Corporation High speed bus system
US5276886A (en) * 1990-10-11 1994-01-04 Chips And Technologies, Inc. Hardware semaphores in a multi-processor environment
DE69230462T2 (de) * 1991-11-19 2000-08-03 Sun Microsystems, Inc. Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
DE69326705T2 (de) * 1992-02-14 2000-04-27 Motorola, Inc. Verfahren und Anordnung zur Feststellung der Befehlsablauffolge in einem Datenverarbeitungssystem
US5317749A (en) * 1992-09-25 1994-05-31 International Business Machines Corporation Method and apparatus for controlling access by a plurality of processors to a shared resource
US5428770A (en) * 1993-08-31 1995-06-27 Motorola, Inc. Single-chip microcontroller with efficient peripheral testability
US5598579A (en) * 1994-04-25 1997-01-28 Compaq Computer Corporation System fpr transferring data between two buses using control registers writable by host processor connected to system bus and local processor coupled to local bus
US5799195A (en) * 1995-07-24 1998-08-25 Dell Usa, L.P. Structure and method for detecting occurrence of external events using semaphores

Also Published As

Publication number Publication date
CA2226715C (fr) 2001-12-18
FR2759472A1 (fr) 1998-08-14
US5951662A (en) 1999-09-14
CA2226715A1 (fr) 1998-08-12
EP0859328A1 (de) 1998-08-19
FR2759472B1 (fr) 1999-05-07
DE69800095D1 (de) 2000-04-27
EP0859328B1 (de) 2000-03-22

Similar Documents

Publication Publication Date Title
DE3300260C2 (de)
DE3300261C2 (de)
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE3750938T2 (de) Multiprozessorsystem.
DE3688722T2 (de) Datensteuersystem für Systemkanal zur digitalen automatischen Flugsteuerung mit mehreren verschiedenen Datenverarbeitungen.
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE68919539T2 (de) Datenverarbeitungssystem mit Zugriffsquellen von verschiedenem Durchsatz.
DE3606211A1 (de) Multiprozessor-computersystem
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2717702A1 (de) Speicher-zugriffs-steuersystem
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE68924435T2 (de) Nichtblockierender NxM-Arbitrierungsschalter mit grosser Bandbreite.
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE102004003102A1 (de) System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung
DE69800095T2 (de) Schnelles Semaphoreregister mit einer sicheren Arbeitsweise ohne spezifisches Busprotokoll
DE69523509T2 (de) Dezentralisiertes System und Mehrrechnersystem
DE3855718T2 (de) Ubertragungssystem zwischen Prozessoren in einem Nachrichtenverarbeitungssystem mit Übertragung zwischen Ausführungsprozessoren während Übertragung zwischen anderen Prozessoren
DE68927157T2 (de) Deblockierverfahren eines Multiprozessor-Multibus-Systems
DE69527819T2 (de) Anordnung zur Konfliktverwaltung zwischen einer CPU und Speichern
EP1308846B1 (de) Datenübertragungseinrichtung
DE2537787A1 (de) Modularer arbeitsspeicher fuer eine datenverarbeitungsanlage und verfahren zum durchfuehren von speicherzugriffen an diesem speicher
DE4019546C2 (de)
DE4439775B4 (de) Bus-Interface-Schaltung für einen FIFO-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition