-
GEBIET DER
ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf die Kommunikation zwischen Computersystemen. Insbesondere
bezieht sich die vorliegende Erfindung auf eine Einrichtung und
ein Verfahren zum Arbitrieren bzw. Entscheiden des Zugriffs auf
einen gemeinsam genutzten Speicherbereich.
-
HINTERGRUND
DER ERFINDUNG
-
Wenn Prozessoren einen gemeinsamen Speicherbereich
gemeinsam nutzen, ist eine Koordination des Speicherzugriffs zwischen
den Prozessoren erforderlich. Die Koordination des Speicherzugriffs
gewährleistet,
dass Daten, die in den gemeinsam genutzten Speicherbereich geschrieben
sind, nicht vorzeitig von einem Prozessor überschrieben werden, bevor
sie von einem anderen Prozessor gelesen wurden. Die Koordination
des Speicherzugriffs gewährleistet
ebenfalls, dass zwei Prozessoren nicht gleichzeitig versuchen, auf
den gemeinsam genutzten Speicherbereich zuzugreifen. Ohne die Koordination
des Speicherzugriffs kann es bei Systemen, die einen gemeinsamen
Speicherbereich gemeinsam nutzen, zu Datenverlusten oder, noch schwerwiegender,
zu einem Hardware-Fehler kommen.
-
Eine Methode zum Koordinieren des
Speicherzugriffs ist die Verwendung eines Hauptprozessors. Ein Hauptprozessor
managt die Aktivitäten
von Nebenprozessoren auf dem gemeinsam genutzten Speicher. Ein Hauptprozessor
behält
die Übersicht über die
verschiedenen Bereiche im Speicher, auf welche zugegriffen wird,
und über
den Zweck, für welchen
sie genutzt werden. Jeder Nebenprozessor, der Zugriff auf den gemeinsam
genutzten Speicher anstrebt, muss zuerst die Erlaubnis vom Hauptprozessor
erhalten. Üblicherweise
arbitriert der Hauptprozessor den Speicherzugriff zwischen den Nebenprozessoren, indem
er die Priorität
der auszuführenden
Aufgaben und die Tatsache berücksichtigt,
ob auf den Speicher aktuell von einem anderen Prozessor zugegriffen
wird.
-
Eine weitere Methode zum Koordinieren
des Speicherzugriffs ist die Selbst-Arbitrierung der Prozessoren
durch die Verwendung eines Band-externen Übermittlungspfades. Üblicherweise
wird ein separater Bus verwendet, welcher kein Speicherzugriffsbus
ist, um Zustandsinformationen von einem Prozessor an einen anderen
zu übermitteln,
die den gemeinsamen Speicherbereich gemeinsam nutzen. Dies gestattet
den Prozessoren, den Speicherzugriff untereinander selbst zu koordinieren.
Nachdem beispielsweise ein erster Prozessor das Schreiben von Daten
an einen Ort in dem gemeinsam genutzten Speicher beendet hat, kann
der erste Prozessor einem zweiten Prozessor zum Lesen dieser Informationen
Zugriff zu diesem Ort des gemeinsam genutzten Speichers gewähren, indem
er dem zweiten Prozessor über
den Band-externen Übermittlungspfad ein
Signal sendet. Nur der zweite Prozessor kann zu diesem Zeitpunkt
für diesen
bestimmten Zweck auf den gemeinsam genutzten Speicher zugreifen.
-
Eine weitere Methode zum Koordinieren
des Speicherzugriffs wird in Fried et al. (US-Patent Nr. 5,142,676,
25. August 1992, nachstehend „Fried") beschrieben. Fried
offenbart eine Verriegelungsschaltung zum Steuern des Zugriffs auf
verriegelte Segmente eines gemeinsam genutzten Speichers. Die Schaltung
enthält
einen inhaltsadressierbaren Speicher (CAM) zum Speichern von Adressen
der verriegelten Speichersegmente und zum gleichzeitigen Vergleichen
einer Zieladresse (aus einem Anforderungsprozess) mit den Adressen
der verriegelten Speichersegmente und zum Bereitstellen eines Übereinstimmungssignals,
wenn die Zieladresse mit einer der Adressen der gesperrten Speichersegmente übereinstimmt.
Während
eines Speicherzugriffszyklus wird eine Zieladresse an den CAM bereitge stellt. Wenn
die Zieladresse mit einer Adresse in dem CAM übereinstimmt, dann hindert
ein Übereinstimmungssignal
die Steuerschaltung daran, den Speicherzugriffszyklus abzuschließen. Wenn
jedoch die anfordernde ID des Prozesses mit der (in einem zweiten Speicher
gespeicherten) Verriegelungs-ID des Prozesses übereinstimmt, der das Übereinstimmungssignal
erzeugt hat, dann wird der Speicherzugriffszyklus freigegeben.
-
Die Verwendung eines Hauptprozessors
hat mehrere Nachteile. Üblicherweise
benötigen
Prozessoren zum Arbeiten eine große Menge an Energie. Dies ist
ein Problem für
Computersysteme, die unter starken Energiebeschränkungen arbeiten, wie beispielsweise
für Systeme,
die mit Batterien arbeiten. Prozessoren sind außerdem im Vergleich zu anderen IC-Komponenten
relativ groß im
Format. Je nach der Umgebung des Computersystems, erlaubt die Verfügbarkeit
von physischem Platz die Implementierung eines weiteren Prozessors
somit möglicherweise
nicht. Am wichtigsten ist vielleicht die Tatsache, dass die Verwendung
eines weiteren Prozessors zum Zweck der Speicherarbitrierung unerwünschte zusätzliche
Kosten für
das gesamte Computersystem verursacht.
-
Die Selbst-Arbitrierung hat ebenfalls
ihre Grenzen. Computersysteme, bei welchen die Selbst-Arbitrierung
implementiert werden soll, müssen
einen Band-externen Übermittlungspfad
bereitstellen, um den Prozessoren, die den Speicherplatz gemeinsam
nutzen, die Kommunikation miteinander zu ermöglichen. Die Design-Spezifikationen
einiger Computersysteme gestatten möglicherweise die Implementierung
eines Band-externen Übermittlungspfades
nicht.
-
Somit werden ein Verfahren und eine
Einrichtung zum Arbitrieren des Zugriffs auf einen gemeinsam genutzten
Speicher benötigt,
wobei die Implementierung eines weiteren Prozessors oder eines außerbandigen
bzw. Band-externen Übermittlungspfades
nicht erforderlich ist.
-
ZUSAMMENFASSENDE
DARSTELLUNG DER ERFINDUNG
-
Es werden eine Einrichtung und ein
Verfahren zum Arbitrieren des Zugriffs auf einen gemeinsam genutzten
Speicher offenbart. Ein Ausführungsbeispiel
einer Speichereinheit der vorliegenden Erfindung weist eine Speicherzelle
zum Speichern von Daten auf. Eine Zugriffsanzeigeeinheit ist mit
der Speicherzelle gekoppelt. Die Zugriffsanzeigeeinheit zeigt die
Identität
eines ersten Prozessors an, der auf die Speicherzelle zugreift.
Eine Zustandsaufzeichnungseinheit ist mit der Zugriffsanzeigeeinheit
gekoppelt. Die Zustandsaufzeichnungseinheit zeichnet eine Aufgabe
auf, die von dem ersten Prozessor ausgeführt wird. Eine Semaphor-Einheit
ist ebenfalls mit der Zugriffsanzeigeeinheit gekoppelt. Die Semaphor-Einheit
liest die Zugriffsanzeigeeinheit und verhindert, dass ein zweiter
Prozessor auf die Speicherzelle zugreift, während der erste Prozessor auf
die Speicherzelle zugreift. Eine Arbitrierungseinheit ist mit der
Zugriffsanzeigeeinheit gekoppelt. Die Arbitrierungseinheit dient
dazu, den Zugriff auf die Speicherzelle auf jeweils einen Prozessor
zu beschränken.
-
Ein Ausführungsbeispiel eines erfindungsgemäßen Systems
zur Bereitstellung der Kommunikation zwischen einem ersten Computersystem
und einem zweiten Computersystem weist einen Speicher auf, der das
erste Computersystem mit dem zweiten Computersystem verbindet. Der
Speicher speichert Daten, die zwischen dem ersten Computersystem und
dem zweiten Computersystem übertragen
werden. Eine Zugriffsanzeigeeinheit ist mit dem Speicher gekoppelt.
Die Zugriffsanzeigeeinheit zeigt die Identität eines Computersystems an,
das Zugriff auf den Speicher hat. Eine Zustandsaufzeichnungseinheit
ist mit der Zugriffsanzeigeeinheit gekoppelt. Die Zustandsaufzeichnungseinheit
zeichnet eine Aufgabe, die von dem Prozessor ausgeführt wird,
als Zustand auf. Eine erste Zustandsmaschine ist mit der Zustandsaufzeichnungseinheit
gekoppelt. Die erste Zustandsmaschine instruiert den ersten Prozessor,
wie die Daten in dem Speicher als Reaktion auf das Lesen einer vorherigen
Aufgabe, die in der Zustandsaufzeichnungseinheit aufgezeichnet ist,
zu verarbeiten sind. Eine zweite Zustandsmaschine ist mit der Zustandsaufzeichnungseinheit
gekoppelt. Die zweite Zustandsmaschine instruiert den zweiten Prozessor, wie
die Daten in dem Speicher als Reaktion auf das Lesen der vorherigen
Aufgabe, die in der Zustandsaufzeichnungseinheit aufgezeichnet ist,
zu verarbeiten sind.
-
Ein Ausführungsbeispiel eines Verfahrens zum
Senden von Daten zwischen einem ersten Prozessor und einem zweiten
Prozessor umfasst die Schritte, dass zuerst ein gemeinsam genutzter
Speicherplatz auf Verfügbarkeit überprüft wird.
Nachdem der gemeinsam genutzte Speicherplatz überprüft wurde, wird eine letzte
Aufgabe identifiziert, die auf dem gemeinsam genutzten Speicherplatz
ausgeführt wurde.
Aus der letzten Aufgabe wird bestimmt, ob eine aktuelle Aufgabe
mit einer höheren
Priorität
zuerst ausgeführt
werden muss. Als Nächstes
werden die Daten zwischen dem ersten Prozessor und dem gemeinsam
genutzten Speicherplatz übermittelt. Nachdem
die Daten übermittelt
sind, wird die aktuelle Aufgabe aufgezeichnet, die auf dem gemeinsam
genutzten Speicherplatz ausgeführt
wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird aus
der unten gegebenen detaillierten Beschreibung und den zugehörigen Zeichnungen
der verschiedenen Merkmale und Elemente, die in der Erfindung enthalten
sind, umfassender verständlich.
Die Beschreibung und die Zeichnungen haben nicht den Zweck, die
Erfindung auf das spezielle Ausführungsbeispiel
zu beschränken.
Sie dienen der Erklärung
und dem Verständnis.
-
1 stellt
ein Ausführungsbeispiel
der vorliegenden Erfindung dar, das in einem Computersystem implementiert
ist.
-
2 stellt
ein Ausführungsbeispiel
der vorliegenden Erfindung dar, das in einem Multiprozessor-Computersystem
implementiert ist.
-
3 stellt
ein Ausführungsbeispiel
der vorliegenden Erfindung dar, das in zwei autonomen Computersystemen
implementiert ist.
-
4 zeigt
eine Blockdarstellung einer Speichermarkierungseinheit gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung.
-
5 stellt
ein Ausführungsbeispiel
einer Zugriffsanzeigeeinheit und einer Zustandsaufzeichnungseinheit
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar.
-
6 ist
ein Zustandsdiagramm einer Zustandsmaschine gemäß einem Ausführungsbeispiel der
vorliegenden Erfindung. 7 stellt
eine Software-Implementierung der Zustandsmaschine der vorliegenden
Erfindung dar.
-
8 ist
ein Flussdiagramm, das ein Verfahren zum Arbitrieren des Zugriffs
auf einen gemeinsam genutzten Speicher gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Es wird eine neuartige Zugriffssteuerungseinheit
beschrieben. In der folgenden detaillierten Beschreibung werden
zahlreiche Details dargelegt, um ein umfassendes Verständnis der
vorliegenden Erfindung zu ermöglichen.
Fachleute werden jedoch verstehen, dass die vorliegende Erfindung
ohne diese speziellen Details ausgeführt werden kann. In anderen
Fällen
sind bekannte Verfahren, Prozeduren, Komponenten und Schaltungen
nicht im Detail beschrieben worden, um die vorliegende Erfindung nicht
zu verschleiern.
-
Einige Teile der detaillierten Beschreibungen,
welche folgen, werden anhand von Algorithmen und symbolischen Darstellungen
von Operationen an Datenbits in einem Computerspeicher dargestellt. Diese
algorithmischen Beschreibungen und Darstellungen sind die Mittel,
die von Fachleuten in der Datenverarbeitungstechnik verwendet werden,
um den Inhalt ihrer Arbeit am effektivsten an andere Fachleute zu übermitteln.
Ein Algorithmus wird als eine in sich widerspruchsfreie Abfolge
von Schritten betrachtet, die zu einem gewünschten Ergebnis führen. Die
Schritte sind solche, die physikalische Manipulationen physikalischer
Größen erfordern.
Normalerweise – obwohl
nicht notwendigerweise – sind
diese Größen elektrische
oder magnetische Signale, die gespeichert, übertragen, kombiniert, verglichen
und anderweitig manipuliert werden können. Es hat sich hin und wieder,
im Allgemeinen aus Gründen
der allgemeinen Verwendung, als zweckmäßig erwiesen, diese Signale
als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder
dergleichen zu benennen. Es sollte jedoch berücksichtigt werden, dass alle diese
und ähnliche
Begriffe mit den entsprechenden physikalischen Größen zu verknüpfen sind,
und dass sie ausschließlich
geeignete Bezeichnungen sind, die auf diese Größen angewendet werden. Sofern nicht
anderweitig festgelegt und wie aus den folgenden Erörterungen
ersichtlich, ist klar, dass in der gesamten vorliegenden Erfindung
Erörterungen,
in welchen Begriffe wie beispielsweise „Verarbeiten" oder „Berechnen" oder „Kalkulieren" oder „Bestimmen" oder „Anzeigen" oder dergleichen
verwendet werden, auf die Aktionen und Prozesse eines Computersystems
oder einer ähnlichen
elektronischen Rechnereinrichtung bezogen sind, die Daten, die als
physikalische (elektronische) Größen in den
Registern und Speichern des Computersystems dargestellt sind, in andere
Daten verarbeiten und transformieren, die auf ähnliche Weise als physikalische
Größen in den Speichern
oder Registern des Com putersystems oder anderen derartigen Informationsspeicherungs-Übertragungs- oder Anzeigeeinrichtungen
dargestellt sind.
-
1 stellt
in Form einer Blockdarstellung ein Computersystem eines Ausführungsbeispiels
der vorliegenden Erfindung dar. Das Computersystem umfasst einen
Bus 100, eine Tastaturschnittstelle 101, einen externen Speicher
102, eine Massenspeichereinrichtung 103, einen Prozessor 104 und
eine Rnzeigeeinrichtungs-Steuereinrichtung 105. Der Bus 100 ist
mit der Anzeigeeinrichtungs-Steuereinrichtung 105, der Tastaturschnittstelle
101, dem Mikroprozessor 104, dem Speicher 102 und der Massenspeichereinrichtung
103 gekoppelt. Die Anzeigeeinrichtungs-Steuereinrichtung 105 kann
mit einer Anzeigeeinrichtung gekoppelt sein. Die Tastaturschnittstelle
101 kann mit einer Tastatur gekoppelt sein.
-
Der Bus 100 kann ein einzelner Bus
oder eine Kombination von mehreren Bussen sein. Beispielsweise kann
der Bus 100 ein Bus der Industrie-Standard-Architektur (ISA), ein
Bus der Erweiterten Industrie-Standard-Architektur (EISA), ein Systembus,
ein X-Bus, ein PS/2-Bus, ein Peripheriekomponentenverbindungs(PCI)-Bus
oder ein anderer Bus sein. Der Bus 100 kann auch eine beliebige Kombination
von Bussen umfassen. Der Bus 100 stellt Kommunikationsverbindungen
zwischen den Komponenten in dem Computersystem bereit. Die Tastaturschnittstelle
101 kann eine Tastatursteuereinrichtung oder eine andere Tastaturschnittstelle sein.
Die Tastaturschnittstelle 101 kann eine spezielle Einrichtung sein
oder kann sich in einer anderen Einrichtung befinden, wie beispielsweise
in einer Bussteuereinrichtung oder einer anderen Steuereinrichtung.
Die Tastaturschnittstelle 101 gestattet das Koppeln einer Tastatur
mit dem Computersystem und übermittelt
Signale von einer Tastatur an das Computersystem. Der externe Speicher
102 kann eine dynamische Speichereinrichtung mit wahlfreiem Zugriff (DRAM),
eine statische Speichereinrichtung mit wahlfreiem Zugriff (SRAM)
oder eine andere Speichereinrichtung sein. Der externe Speicher
102 speichert Informationen und Daten von der Massenspeichereinrichtung
103 und dem Prozessor 104 zur Verwendung durch den Prozessor 104.
Die Massenspeichereinrichtung 103 kann ein Festplattenlaufwerk, ein
Diskettenlaufwerk, eine CD-ROM-Einrichtung, eine
Flash-Speichereinrichtung oder eine andere Massenspeichereinrichtung
sein. Die Massenspeichereinrichtung 103 stellt Informationen und
Daten an den externen Speicher 102 bereit.
-
Der Prozessor 104 verarbeitet Informationen und
Daten von dem externen Speicher 102 und speichert Informationen
und Daten in dem externen Speicher 102. Der Prozessor 104 empfängt auch
Signale von der Tastatursteuereinrichtung 101 und übermittelt
Informationen und Daten an die Anzeigeeinrichtungs-Steuereinrichtung
105 zur Anzeige auf einer Anzeigeeinrichtung. Der Prozessor 104 übermittelt ebenfalls
Videobilder an die Anzeigesteuereinrichtung zur Anzeige auf einer
Anzeigeeinrichtung. Der Prozessor 104 kann ein Mikroprozessor mit
komplexem Befehlssatz (CISC), ein Mikroprozessor mit reduziertem
Befehlssatz (RISC), ein Mikroprozessor mit überlangem Befehlswort (VLIW)
oder eine andere Prozessoreinrichtung sein. Die Anzeigeeinrichtungs-Steuereinrichtung
105 gestattet das Koppeln einer Anzeigeeinrichtung mit dem Computersystem und
dient als eine Schnittstelle zwischen der Anzeigeeinrichtung und
dem Computersystem. Die Anzeigeeinrichtungs-Steuereinrichtung 105
kann eine Schwarzweiß-Anzeige-Adapter(MDA)-Karte,
eine Farbgrafik-Adapter(CGA)-Karte, eine Verbesserte-Grafik-Adapter(EGA)-Karte,
eine Mehrfarbgrafik-Matrix(MCGA)-Karte, eine Videografik-Matrix(VGA)-Karte,
eine Erweiterte-Grafik-Matrix(XGA)-Karte oder eine andere Anzeigeeinrichtungs-Steuereinrichtung
sein. Die Anzeigeeinrichtung kann ein Fernsehgerät, ein Computermonitor, eine
Flachbildschirmanzeige oder eine andere Anzeigeeinrichtung sein.
Die Anzeigeeinrichtung empfängt über die
Anzeigeeinrichtungs-Steuereinrichtung 105 Informationen und Daten
vom Prozessor 104 und zeigt dem Benutzer des Computersystems die
Informationen und Daten an.
-
Das Computersystem enthält ebenfalls
einen gemeinsam genutzten Speicher 106. Der gemeinsam genutzte Speicher
106 ist mit dem Bus 100 gekoppelt. Der gemeinsam genutzte Speicher
106 kann eine dynamische Speichereinrichtung mit wahlfreiem Zugriff
(DRAM), eine statische Speichereinrichtung mit wahlfreiem Zugriff
(SRAM) oder andere Speichereinrichtungen enthalte. Der gemeinsam
genutzte Speicher 106 umfasst ferner die Speichermarkierungseinheit
107. Die Speichermarkierungseinheit 107 dient zur Aufzeichnung der
Identität
des Mikroprozessors, der aktuell auf den gemeinsam genutzten Speicher
106 zugreift, und des Prozesses, der zuletzt auf dem gemeinsam genutzten
Speicher 106 ausgeführt
wurde. Die Zustandsmaschine 108 ist mit dem Bus 108 gekoppelt. Die
Zustandsmaschine 108 empfängt
Informationen darüber,
welcher Prozess zuletzt auf dem gemeinsam genutzten Speicher 106 ausgeführt wurde,
von der Speichermarkierungseinheit 107. Die Zustandsmaschine 108
verwendet diese Informationen, um den Prozessor 104 darüber zu instruieren,
was mit dem gemeinsam genutzten Speicher 106 geschehen sollte. Die
Speichermarkierungseinheit 107 und die Zustandsmaschine 108 gestatten,
dass auf den gemeinsam genutzten Speicher 106 von mehreren Prozessoren
zugegriffen werden kann. Diese Prozessoren können entweder Prozessoren innerhalb
desselben Computersystems wie das des gemeinsam genutzten Speichers
106 oder völlig
autonome Computersysteme sein.
-
2 stellt
ein Ausführungsbeispiel
der vorliegenden Erfindung dar, bei welchem der gemeinsam genutzte
Speicher 106 von zwei Prozessoren desselben Computersystems genutzt
wird. Der gemeinsam genutzte Speicher 106 wird von dem mit Bus 100
gekoppelten Prozessor 104 und dem mit Bus 100 gekoppelten Prozessor
204 gemeinsam genutzt. Die Speichermarkierungseinheit 107 und die Zustandsmaschine
108 arbitrieren den gemeinsam genutzten Speicher 106 zwischen dem
Prozessor 104 und dem Prozessor 204. Wenn entweder der Prozessor
104 oder der Prozessor 204 den Zugriff auf den gemeinsam genutzten
Speicher 106 anstrebt, liest er zuerst den Inhalt der Speichermarkierungseinheit
107. Wenn auf den gemeinsam genutzten Speicher aktuell von dem anderen
Prozessor zugegriffen wird, wird der Prozessor, der den Zugriff
anstrebt, nicht versuchen, gleichzeitig auf den gemeinsam genutzten
Speicher 106 zuzugreifen. Er wird stattdessen warten und fortfahren,
den Status des gemeinsam genutzten Speichers 106 zu überprüfen, indem
er periodisch den Inhalt der Speichermarkierungseinheit 107 liest.
Wenn jedoch auf den gemeinsam genutzten Speicher 106 nicht von dem
anderen Prozessor zugegriffen wird, verändert der Prozessor, der den
Zugriff anstrebt, den Inhalt der Speichermarkierungseinheit 107,
um anzuzeigen, dass er aktuell den Zugriff auf den gemeinsam genutzten
Speicher 106 hat. Dies hindert den anderen Prozessor daran, auf
den gemeinsam genutzten Speicher 106 zuzugreifen, während auf
den gemeinsam genutzten Speicher 106 zugegriffen wird.
-
Der Prozessor, der den Zugriff auf
den gemeinsam genutzten Speicher 106 hat, lädt Informationen über den
auf dem gemeinsam genutzten Speicher 106 zuletzt ausgeführten Prozess
von der Speichermarkierungseinheit 107 in die Zustandsmaschine 108.
Die Zustandsmaschine 108 verwendet diese Informationen, um den Prozessor
mit Zugriff zu instruieren, was er mit dem gemeinsam genutzten Speicher
106 tun sollte. Der auf dem gemeinsam genutzten Speicher 106 zuletzt
ausgeführte
Prozess kann erfordern, dass der Prozessor mit Zugriff zuerst eine
Aufgabe mit einer höheren
Priorität
ausführt,
bevor er irgendetwas anderes mit dem gemeinsam genutzten Speicher
106 tun kann. In dieser Situation instruiert die Zustandsmaschine
108 den Prozessor, der den Zugriff hat, diese Aufgabe hoher Prio rität auszuführen. Wenn
andererseits der auf dem gemeinsam genutzten Speicher 106 zuletzt
ausgeführte
Prozess nicht verlangt, dass der Prozessor, der den Zugriff anstrebt,
irgendeine andere Aufgabe ausführt,
kann der Prozessor jede beliebige Aufgabe ausführen, die er ausführen will.
Nachdem der Prozessor, der den Zugriff hat, die Ausführung seiner Aufgabe
beendet hat, aktualisiert er den Inhalt in der Speichermarkierungseinheit
107, um die Aktivitäten wiederzugeben,
die erfolgt sind. Dies gestattet dem nächsten Prozessor, der den Zugriff
auf den gemeinsam genutzten Speicher 106 anstrebt, zu erfahren, ob
es eine Aufgabe gibt, die er ausführen muss.
-
In einem System mit mehr als zwei
mit dem Bus 100 gekoppelten Prozessoren kann der auf dem gemeinsam
genutzten Speicher 106 zuletzt ausgeführte Prozess erfordern, dass
ein dritter Prozessor eine Aufgabe ausführt, die eine Abhängigkeit
von den Daten aufweist, die sich aktuell in dem gemeinsam genutzten
Speicher 106 befinden, bevor der Prozessor, der den Zugriff hat,
auf den gemeinsam genutzten Speicher 106 zugreifen kann. In dieser
Situation instruiert die Zustandsmaschine 108 den Prozessor, der
den Zugriff hat, auf seine Zugriffsrechte zu verzichten und dem
dritten Prozessor den Zugriff auf den gemeinsam genutzten Speicher
106 zu gestatten.
-
Die Speichermarkierungseinheit 107
und die Zustandsmaschine 108 gestatten den Prozessoren in einem
Multiprozessor-Computersystem,
ohne einen auflerbandigen bzw. Band-externen Übertragungspfad miteinander
zu kommunizieren. Dies gestattet die Arbitrierung des gemeinsam
genutzten Speicherplatzes ohne zusätzliche Hardware-Kosten, die
mit der Bereitstellung einer gemeinsamen Verbindung zwischen den
Prozessoren in dem Computersystem verbunden sind. Die Speichermarkierungseinheit
107 und die Zustandsmaschine 108 gestatten den Prozessoren in einem
Multiprozessor-Computersystem ebenfalls, ohne einen Hauptprozessor
miteinander zu kommunizieren, der die Aktivitäten in dem gemeinsam genutzten
Speicherbereich 106 steuert. Dies ermöglicht, dass das Computersystem
arbeitet, ohne zusätzliche
Energie zu verbrauchen, ohne zusätzlichen
Platz erforderlich zu machen oder ohne dass zusätzliche Komponentenkosten anfallen.
-
3 stellt
ein Ausführungsbeispiel
der vorliegenden Erfindung dar, bei welchem der gemeinsam genutzte
Speicher 106 von zwei Prozessoren in zwei autonomen Computersystemen
gemeinsam genutzt wird. Der gemeinsam genutzte Speicher 106 wird
vom Prozessor 104 in einem ersten Computersystem 150 und dem Prozessor
304 in einem zweiten Computersystem 350 gemeinsam genutzt. Die Speichermarkierungseinheit
107 und die Zustandsmaschine 108 arbeiten ähnlich, wie es in dem Ausführungsbeispiel
zu dem Multiprozessor-Computersystem beschrieben wurde, um den Zugriff
auf den gemeinsam genutzten Speicher für den Prozessor 104 in dem
ersten Computersystem 150 zu koordinieren. Die Speichermarkierungseinheit
107 des ersten Computersystems 150 und die Zustandsmaschine 308,
die sich in dem zweiten Computersystem 350 befindet, dienen zur
Koordinierung des Zugriffs auf den gemeinsam genutzten Speicher
106 für
den Prozessor 304 in dem zweiten Computersystem. Wenn entweder der
Prozessor 104 in dem ersten Computersystem oder der Prozessor 304
in dem zweiten Computersystem 350 den Zugriff auf den gemeinsam genutzten
Speicher 106 anstrebt, liest er zuerst den Inhalt der Speichermarkierungseinheit
107. Wenn auf den gemeinsam genutzten Speicher aktuell von dem anderen
Prozessor zugegriffen wird, wird der Prozessor, der den Zugriff
anstrebt, nicht versuchen, gleichzeitig auf den gemeinsam genutzten
Speicher 106 zuzugreifen. Er wird stattdessen warten und fortfahren,
den Status des gemeinsam genutzten Speichers 106 zu überprüfen, indem
er periodisch den Inhalt der Speichermarkierungseinheit 107 liest.
wenn jedoch auf den gemeinsam genutzten Speicher 106 nicht von einem
anderen Prozessor zugegriffen wird, verändert der Prozessor, der den
Zugriff anstrebt, den Inhalt der Speichermarkierungseinheit 107,
um anzuzeigen, dass er aktuell den Zugriff auf den gemeinsam genutzten
Speicher 106 hat. Dies hindert den anderen Prozessor daran, den
gemeinsam genutzten Speicher 106 zu benutzen, während auf den gemeinsam genutzten
Speicher 106 zugegriffen wird.
-
Der Prozessor, der den Zugriff auf
den gemeinsam genutzten Speicher 106 hat, lädt Informationen von der Speichermarkierungseinheit
107 über den
auf dem gemeinsam genutzten Speicher 106 zuletzt ausgeführten Prozess
in eine Zustandsmaschine in seinem Computersystem. Die Zustandsmaschine
verwendet diese Informationen, um den Prozessor, der den Zugriff
hat, zu instruieren, was mit dem gemeinsam genutzten Speicher 106
getan werden sollte. Der auf dem gemeinsam genutzten Speicher 106
zuletzt ausgeführte
Prozess kann erfordern, dass der Prozessor, der den Zugriff hat,
zuerst eine Aufgabe mit einer höheren
Priorität
ausführt,
bevor er irgendetwas anderes mit dem gemeinsam genutzten Speicher
106 tun kann. In dieser Situation instruiert die Zustandsmaschine
den Prozessor, der den Zugriff hat, diese Aufgabe hoher Priorität auszuführen. Wenn
andererseits der auf dem gemeinsam genutzten Speicher 106 zuletzt
ausgeführte
Prozess nicht verlangt, dass der Prozessor, der den Zugriff anstrebt,
irgendeine andere Aufgabe ausführt,
kann der Prozessor jede beliebige Aufgabe ausführen, die er ausführen will.
Nachdem der Prozessor, der den Zugriff hat, die Ausführung seiner
Aufgabe beendet hat, aktualisiert er den Inhalt in der Speichermarkierungseinheit
107, um die Aktivitäten
wiederzugeben, die erfolgt sind. Dies gestattet dem nächsten Prozessor, der
den Zugriff auf den gemeinsam genutzten Speicher 106 anstrebt, zu
erfahren, ob es eine Aufgabe gibt, die er ausführen muss.
-
Bei einem Ausführungsbeispiel der vorliegenden
Erfindung ist der gemeinsam genutzte Speicher 106 über einen
PCMCIA-Slot 310 des zweiten Computersystems 350 verbunden. Die Speichermarkierungseinheit
107 und die Zustandsmaschine 108 des ersten Computersystems 150
und die zweite Zustandsmaschine 308 des zweiten Computersystems 350
ermöglichen,
dass die Kommunikation zwischen den Computersystemen über den
gemeinsam genutzten Speicherplatz 106 stattfindet. Der Vorteil der Verwendung
einer gemeinsam genutzten Speicherregion vereinfacht die Implemenitierung
des Systems. Andere Verfahren der Kommunikation zwischen den Prozessoren
(ein Spezialbus, über
eine serielle Leitung oder ein Netzwerk etc.) machen zusätzliche
Hardware, zusätzliche
Software-Komplexität
oder beides erforderlich. Außerdem
beseitigt das Verfügbarmachen
der Daten über
einen gemeinsam genutzten Speicher teilweise die Notwendigkeit,
dass jede CPU Daten von irgendeinem Kommunikationskanal in ihren
eigenen Speicher kopiert; da der gemeinsam genutzte Platz als irgendein
beliebiger anderer RAM erscheint, muss die CPU nicht ständig Zeit
aufwenden, um auf den/von dem Kommunikationskanal zu kopieren.
-
Die Kommunikation über den
gemeinsam genutzten Speicher 106 gestattet, dass zwischen den zwei
Computersystemen Fernprozeduraufrufe (RPC) ausgeführt werden.
RPC ist der Mechanismus, mit welchem eine Anwendung auf einem Computersystem
die Systemdienste (Bibliotheken) auf dem anderen verwenden kann.
Beispielsweise kann eine Anwendung auf dem ersten Computersystem 150
RPC verwenden, um auf CPU-intensive Routinen auf dem zweiten Computersystem
350 zuzugreifen, oder umgekehrt. Die RPC-Schnittstelle gestattet ebenfalls,
dass ein Computersystem Systeminformationen an das andere Computersystem
bereitstellt. Die vorliegende Erfindung gestattet auch die Inter-Prozess-Kommunikation
(IPC). Die IPC gestattet, dass Informationen zwischen zwei auf zwei
verschiedenen Computer systemen laufenden Aufgaben gesendet werden.
Anwendungen eines Computersystems ist es gestattet, außerhalb
des Computersystems zu kommunizieren. Beispielsweise kann ein Schlüsselprogramm
in einem Computersystem mit einer Türknopf-Anwendung in einer intelligenten
Tür sprechen,
oder ein Banking-Programm in einem Computersystem kann mit einem
Geldautomat(ATM)-Programm in einem Geldautomaten sprechen.
-
Beide Prozessoren 104 und 304 reagieren auf
Veränderungen
in der Speichermarkierungseinheit 107. Die Prozessoren 104 und 304
können
eine Abrufroutine implementieren, welche den Status der Speichermarkierungseinheit
107 periodisch überprüft. Wenn
der Inhalt der Speichermarkierungseinheit 107 verändert wird,
um die Beendigung einer Aufgabe wiederzugeben, aktivieren die Prozessoren 104
und 304 die Zustandsmaschinen 108 und 308 in ihren jeweiligen Computersystemen.
Aus den Informationen über
die auf dem gemeinsam genutzten Speicher 106 zuletzt ausgeführte Aufgabe
instruieren die Zustandsmaschinen 108 und 308 die Prozessoren darüber, was
mit dem gemeinsam genutzten Speicher 106 getan werden sollte.
-
Die Prozessoren 104 und 304 können auch eine
Schaltung implementieren, welche den Status der Speichermarkierungseinheit
107 überwacht
und immer dann einen Interrupt an die Prozessören 104 und 304 sendet, wenn
der Inhalt der Speichermarkierungseinheit 107 verändert wird.
Dann starten die Prozessoren 104 und 304 wieder die Zustandsmaschinen
108 und 308, welche die Prozessoren 104 und 304 zu den Prozeduren
instruieren, die mit dem gemeinsam genutzten Speicher 106 ausgeführt werden
sollten. Bei dem bevorzugten Ausführungsbeispiel der vorliegenden
Erfindung wird eine Abfrageroutine für Computersysteme implementiert,
welche über
Prozessoren verfügen,
die mit Geschwindigkeiten arbeiten, welche gestatten, dass das Abfragen mit
geringer oder keiner Auswirkung auf die Benutzerreaktionszeit ausgeführt wird.
Eine Schaltung, welche die Speichermar kierungseinheit 107 überwacht
und Interrupts erzeugt, wird für
Computersysteme implementiert, welche Prozessoren aufweisen, die
mit Geschwindigkeiten arbeiten, die zu gering sind, um in der Lage
zu sein, den Inhalt der Speichermarkierungseinheit effektiv abzufragen.
-
4 zeigt
eine Blockdarstellung eines Ausführungsbeispiels
der Speichermarkierungseinheit der vorliegenden Erfindung. Die Speichermarkierungseinheit
407 umfasst die Zugriffsanzeigeeinheit 410, die Zustandsaufzeichnungseinheit
411, die Arbitrierungseinheit 412 und die Semaphor-Einheit 413. Die
Zugriffsanzeigeeinheit 410 dient der Identifizierung eines Prozessors,
welcher aktuell auf den gemeinsam genutzten Speicher zugreift. Der
Inhalt der Zugriffsanzeigeeinheit 410 kann von einem Prozessor verändert werden,
wenn auf den gemeinsam genutzten Speicher aktuell nicht zugegriffen
wird, oder wenn der Prozessor, der den Inhalt der Zugriffsanzeigeeinheit
410 verändert,
der Prozessor ist, der aktuell auf den gemeinsam genutzten Speicher
zugreift.
-
Die Arbitrierungseinheit 412 ist
mit der Zugriffsanzeigeeinheit 410 gekoppelt. Die Arbitrierungseinheit
412 stellt eine Hardware-Arbitrierung bereit, so dass, wenn mehr
als ein Prozessor gleichzeitig versucht, den Inhalt der Zugriffsanzeigeeinheit
410 zu verändern,
nur einer erfolgreich sein wird. Wenn mehr als ein Prozessor gleichzeitig
versucht, auf den gemeinsam genutzten Speicher zuzugreifen, versucht
jeder der Prozessoren, den Inhalt der Zugriffsanzeigeeinheit 410
zu verändern,
so dass sie anzeigt, dass sie Zugriff auf den gemeinsam genutzten Speicher
haben. Die Arbitrierungseinheit 412 kann so programmiert werden,
dass sie einem Prozessor die Priorität gegenüber einem anderen einräumt, oder
dass sie eine festgelegte physikalische Eigenschaft nutzt, um zu
arbitrieren, welcher Prozessor das Recht hat, den Inhalt der Zugriffsanzeigeeinheit 410
zuerst zu verändern.
-
Die Semaphor-Einheit 413 ist mit
der Zugriffsanzeigeeinheit 410 gekoppelt. Die Semaphor-Einheit 413
liest den Inhalt der Zugriffsanzeigeeinheit 410. Wenn die Zugriffsanzeigeeinheit
410 feststellt, dass ein bestimmter Prozessor den Zugriff auf den
gemeinsam genutzten Speicher hat, hindert die Semaphor-Einheit 413
jeden anderen Prozessor daran, auf den gemeinsam genutzten Speicher
zuzugreifen.
-
Die Zustandsaufzeichnungseinheit
411 ist mit der Zugriffsanzeigeeinheit 410 gekoppelt. Die Zustandsaufzeichnungseinheit
411 dient der Identifizierung einer Aufgabe, die von einem Prozessor
vorher auf dem gemeinsam genutzten Speicher ausgeführt wurde.
Die Identität
einer Aufgabe wird als Zustand gekennzeichnet. Die Zustände, die
von der Zustandsaufzeichnungseinheit 411 aufgezeichnet werden, können nur
von einem Prozessor verändert
werden, der aktuell auf den gemeinsam genutzten Speicher zugreift.
-
5 stellt
ein Ausführungsbeispiel
einer Zugriffsanzeigeeinheit und einer Zustandsaufzeichnungseinheit
der vorliegenden Erfindung dar. Ein Zustandsregister 500 ist ein
8-Bit-Register,
welches eine Zugriffsanzeigeeinheit 510 und eine Zustandsaufzeichnungseinheit
511 umfasst. Das Zustandsregister 500 ist in dem ersten Byte des
gemeinsam genutzten Speichers angeordnet. Das Anordnen des Zustandsregisters
in dem gemeinsam genutzten Platz ist in der Hinsicht hilfreich,
dass es der Software gestattet, auf die Informationen genauso zuzugreifen,
wie sie auf einen beliebigen anderen Wert in dem Computerspeicher
zugreifen würde;
einige Beispiele des Standes der Technik erfordern spezielle CPU-Anweisungen
oder das Vorhandensein einer separaten Speicherregion. Für die Kommunikation zwischen
zwei separaten Systemen gestattet die Unterbringung der Semaphor-/Zustandseinheit
in der gleichen Speicherregion, dass zur Übermittlung von Steuerinformationen
und Daten ein „Kommunikationskanal" gemeinsam genutzt
wird – im
Gegensatz dazu, dass ein weiterer Bus oder irgendein anderer Kommunikationspfad
für die
Steuerinformationen erforderlich ist. Die ersten zwei Bits 501 und
502 des Zustandsregisters 500 repräsentieren die Zugriffsanzeigeeinheit
510. Wenn ein erster Prozessor den Zugriff auf den gemeinsam genutzten
Speicher hat, wird das Bit 501 auf Eins und das Bit 502 auf Null
gesetzt. Wenn ein zweiter Prozessor den Zugriff auf den gemeinsam
genutzten Speicher hat, wird das Bit 501 auf Null und das Bit 502
auf Eins gesetzt. Die letzten vier Bits 505, 506, 507 und 508 des
Zustandsregisters 500 repräsentieren
die Zustandsaufzeichnungseinheit 511. Die Zustandsaufzeichnungseinheit
511 kann bis zu sechzehn verschiedene Zustände aufzeichnen. Es ist klar,
dass weitere Bits für
die Zugriffsidentifikationseinheit 510 und die Zustandsaufzeichnungseinheit
511 verwendet werden können,
wenn mehr als zwei Prozessoren Zugriff auf den gemeinsam genutzten
Speicher haben, oder wenn mehr als sechzehn Zustände vorhanden sind.
-
6 ist
ein Zustandsdiagramm einer Zustandsmaschine gemäß einem Ausführungsbeispiel der
vorliegenden Erfindung. 6 stellt
fünf Zustände dar,
die zum Arbitrieren des Zugriffs auf einen gemeinsam genutzten Speicher
zwischen zwei Prozessoren implementiert werden können. Der Kreis 600 repräsentiert
den Zustand 0. Aus Zustand 0 kann die Zustandsmaschine jeden Prozessor
anweisen, in den gemeinsam genutzten Speicher zu schreiben. Der
Kreis 601 repräsentiert
den Zustand 1. Im Zustand 1 schreibt ein erster Prozessor Daten
in den gemeinsam genutzten Speicher. Aus dem Zustand 1 weist die
Zustandsmaschine den zweiten Prozessor an, die Daten zu lesen, die
vorher in den gemeinsam genutzten Speicher geschrieben wurden. Der
Kreis 602 repräsentiert
den Zustand 2. Im Zustand 2 ist der zweite Prozessor bereit, die
Daten in dem gemeinsam genutzten Speicher zu lesen. Aus dem Zustand 2
kehrt die Zustandsmaschine zu Zustand 0 zurück. Der Kreis 603 repräsen tiert
den Zustand 3. Im Zustand 3 schreibt ein zweiter Prozessor Daten
in den gemeinsam genutzten Speicher. Aus dem Zustand 3 weist die
Zustandsmaschine den ersten Prozessor an, die Daten zu lesen, die
vorher in den gemeinsam genutzten Speicher geschrieben wurden. Der
Kreis 604 repräsentiert
den Zustand 4. Im Zustand 4 ist der erste Prozessor bereit, die
Daten in dem gemeinsam genutzten Speicher zu lesen. Aus dem Zustand
4 kehrt die Zustandsmaschine zu Zustand 0 zurück.
-
7 zeigt
in Form einer Blockdarstellung eine Software-Implementierung der
Zustandsmaschine der vorliegenden Erfindung. Das Computersystem
umfasst einen Bus 700, einen Mikroprozessor 710, einen Speicher
720, eine Datenspeichereinrichtung 730, eine Tastatursteuereinrichtung
740 und eine Anzeigeeinrichtungs-Steuereinrichtung 750.
-
Der Mikroprozessor 710 kann ein Mikroprozessor
mit komplexem Befehlssatz (CISC), ein Mikroprozessor mit reduziertem
Befehlssatz (RISC) oder eine andere Prozessoreinrichtung sein. Der
Mikroprozessor 710 führt
Anweisungen oder Codes aus, die in Speicher 720 gespeichert sind,
und führt
Operationen an Daten aus, die in Speicher 720 gespeichert sind.
Das Computersystem umfasst ferner eine Datenspeichereinrichtung
730, wie beispielsweise ein Festplatten-, Disketten-, oder ein CD-Laufwerk, welches
mit Bus 700 gekoppelt ist. Die Anzeigeeinrichtungs-Steuereinrichtung
750 ist ebenfalls mit Bus 700 gekoppelt. Die Anzeigeeinrichtungs-Steuereinrichtung
750 gestattet das Koppeln einer Anzeigeeinrichtung mit dem Computersystem.
Die Tastatursteuereinrichtung 740 gestattet das Koppeln einer Tastatur
mit dem Computersystem und übermittelt
Signale von einer Tastatur an das Computersystem. Der gemeinsam
genutzte Speicher 706 und die Speichermarkierungseinheit 707 funktionieren ähnlich wie
der gemeinsam genutzte Speicher 106 und die Speichermarkierungseinheit
107, die in 1 beschrieben sind.
-
Der Speicher 720 ist über den
Bus 700 mit dem Mikroprozessor 710 gekoppelt. Der Speicher 720 kann
eine dynamische Speichereinrichtung mit wahlfreiem Zugriff (DRAM),
eine statische Speichereinrichtung mit wahlfreiem Zugriff (SRAM)
oder eine andere Speichereinrichtung sein. Der Speicher 720 kann
vom Prozessor 710 ausführbare
Anweisungen oder Codes speichern, die Bestandteil von Anwendungsprogrammen,
Betriebssystemprogrammen oder anderen Computerprogrammen sind. Der
Speicher 720 enthält
die Zustandsmaschine 721. Die Zustandsmaschine 721 umfasst eine
Mehrzahl von Prozessor-ausführbaren
Anweisungen, die vom Prozessor 710 auf die in 8 gezeigte Weise ausgeführt werden.
Die Zustandsmaschine 721 führt
Funktionen aus, die denen der Zustandsmaschine 108 von 1 ähnlich sind.
-
8 ist
ein Flussdiagramm, das ein Verfahren zum Arbitrieren des Zugriffs
auf einen gemeinsam genutzten Speicher gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Zuerst, lies den Inhalt einer
Speichermarkierungseinheit in einem gemeinsam genutzten Speicher,
wie in Block 801 gezeigt. Die Speichermarkierungseinheit kann zum
Beispiel ein Zustandsregister sein. Die Speichermarkierungseinheit
enthält
Informationen darüber,
ob ein Prozessor aktuell auf die Zustandsmaschine zugreift, und
identifiziert eine auf dem gemeinsam genutzten Speicher zuletzt
ausgeführte
Aufgabe. Als Nächstes,
bestimme, ob auf den gemeinsam genutzten Speicher aktuell von einem
anderen Prozessor zugegriffen wird, wie in Block 802 gezeigt. Wenn
auf den gemeinsam genutzten Speicher aktuell von einem anderen Prozessor
zugegriffen wird, kehre zu Block 801 zurück. Wenn auf den Speicher von
einem ersten Prozessor zugegriffen wird, muss ein zweiter Prozessor,
der den Zugriff anstrebt, warten, bis der erste Prozessor beendet
hat. Wenn auf den gemeinsam genutzten Speicher nicht von einem anderen
Prozessor zugegriffen wird, gehe zu Block 803. Der Block 803 instruiert
die Routine, den Inhalt der Speichermarkierungseinheit zu verändern, so dass
sie anzeigt, dass auf den gemeinsam genutzten Speicher aktuell von
einem Prozessor zugegriffen wird. Als Nächstes, bestimme, ob eine Aufgabe
mit hoher Priorität
ausgeführt
werden muss. Dies kann erreicht werden, indem die Informationen über die Identität der zuletzt
auf dem gemeinsam genutzten Speicher ausgeführten Aufgabe an eine Zustandsmaschine
gesendet werden. Die Zustandsmaschine kann eine Zustandstabelle
enthalten, welche die Aufgaben definiert? die basierend auf einer
vorherigen Aufgabe ausgeführt
werden müssen.
Dies wird in Block 804 gezeigt. Wenn es eine Aufgabe mit hoher Priorität gibt,
gehe zu Block 805. Wenn es keine Aufgabe mit hoher Priorität gibt,
gehe zu Block 807. Wenn eine Aufgabe mit hoher Priorität ausgeführt werden
muss, weise den Prozessor an, welcher die Aufgabe ausführen muss,
die Aufgabe auszuführen. Dies
wird in Block 805 gezeigt. Nachdem die Aufgabe ausgeführt ist,
zeichne die Aufgabe in der Speichermarkierungseinheit auf, wie in
Block 806 gezeigt. Als Nächstes,
kehre zu Block 804 zurück,
um zu bestimmen, ob eine weitere Aufgabe mit hoher Priorität ausgeführt werden
muss. Dann gestatte dem Prozessor den Zugriff auf den gemeinsam
genutzten Speicher für
seinen ursprünglichen
Zweck. Dies wird in Block 807 gezeigt. Nachdem der Prozessor die
Aufgabe abgeschlossen hat, zeichne die ausgeführten Aufgabe in der Speichermarkierungseinheit
auf, wie in Block 808 gezeigt. Verändere die Informationen in der
Speichermarkierungseinheit, so dass sie anzeigt, dass auf den gemeinsam
genutzten Speicher aktuell nicht von einem Prozessor zugegriffen
wird. Dies wird in Block 809 gezeigt.
-
In der vorhergehenden Beschreibung
wird die Erfindung unter Bezugnahme auf bestimmte exemplarische
Ausführungsbeispiele
derselben beschrieben. Es wird jedoch ersichtlich sein, dass daran verschiedene
Modifikationen und Veränderungen vor genommen
werden können,
ohne den breiteren Schutzbereich der Erfindung, wie er in den beigefügten Ansprüchen dargelegt
ist, zu verlassen. Die Beschreibung und Zeichnungen sind dementsprechend im
erläuternden
und nicht im beschränkenden
Sinne zu betrachten.
-
während
viele Änderungen
und Modifikationen der vorliegenden Erfindung einem Fachmann einfallen
werden, nachdem die vorhergehende Beschreibung gelesen wurde, sollte
klar sein, dass die speziellen Ausführungsbeispiele, die zur Veranschaulichung
gezeigt und beschrieben wurden, in keiner Weise als Beschränkung dienen
sollen. Daher haben die Verweise auf Details bestimmter Ausführungsbeispiele
nicht den Zweck, den Schutzbereich der Ansprüche zu beschränken, welche
ihrerseits nur jene Merkmale angeben, die als wesentlich für die Erfindung
betrachtet werden.