DE69026367T2 - Prioritätsvorrichtung mit programmierbarer knotenverweilzeit - Google Patents
Prioritätsvorrichtung mit programmierbarer knotenverweilzeitInfo
- Publication number
- DE69026367T2 DE69026367T2 DE69026367T DE69026367T DE69026367T2 DE 69026367 T2 DE69026367 T2 DE 69026367T2 DE 69026367 T DE69026367 T DE 69026367T DE 69026367 T DE69026367 T DE 69026367T DE 69026367 T2 DE69026367 T2 DE 69026367T2
- Authority
- DE
- Germany
- Prior art keywords
- node
- bus
- priority
- access
- highest priority
- 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
Links
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 61
- 230000006870 function Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 101100342759 Arabidopsis thaliana LCMT1 gene Proteins 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Stored Programmes (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Description
- Die vorliegende Erfindung betrifft eine in Rechnersystemen verwendete Vorrichtung zur Bestimmung des Gerätes aus einer Vielzahl von einen Bus gemeinsam nutzenden Geräten, das zu einem bestimmten Zeitpunkt Zugriff auf den Bus haben soll, und bezieht sich insbesondere auf eine Vorrichtung, bei welcher der Zugriff durch Zuweisung von Prioritäten an das Gerät bestimmt wird und bei der einem Gerät, das höchste Priorität auf den Bus erlangt, dem Bezugs- oder Ankerknoten, eine programmierbare Anzahl Buszugriffe gewährt wird, bevor es die hchste Priorität einem anderen Gerät überläßt.
- Wenn in einem Rechnersystem mehrere Geräte einen Bus gemeinsam nutzen, muß das Rechnersystem in der Lage sein zu verhindem, daß der Bus gleichzeitig von mehr als einem der Geräte genutzt wird. Eine im Stand der Technik angewandte Technik besteht darin, jedem Gerät eine statische Priorität zuzuweisen; wenn ein Gerät mit hoher Priorität und ein Gerät mit niedriger Priorität beide auf den Bus zuzugreifen versuchen, ist das Gerät mit der höheren Priorität erfolgreich. Eine Art der Zuweisung von Prioritäten ist, wie in Fig. 5 dargestellt, die nach Position. Fig. 5 ist eine konzeptionelle Zeichnung einer statischen Kaskadierungskette 501. Eine Gruppe von Knoten 503, von denen jeder für ein oder mehrere Geräte Zugang zu einem Bus 504 verschaffen kann, ist nach Art einer Kaskadierungskette angeordnet, in der ein Prioritätsbus (PB) 507 benachbarte Glieder miteinander verbindet. Der in der Kette ganz links angeordnete Knoten 503(1) hat die höchste Priorität, und jeder nachfolgende Knoten 503 hat eine niedrigere Priorität als der ihm vorhergehende Knoten. Wenn somit der Knoten 503(1) und ein anderer Knoten 503(a) gleichzeitig Zugriff anfordern, erhält der Knoten 503(1) den Zugriff. Zum Zwecke der vorliegenden Beschreibung kann angenommen werden, daß die Kaskadierungskette 501 einen statischen "Anker" 505 aufweist, der die Stelle bezeichnet, nach der alle Prioritäten bestimmt werden. Während die statische Kaskadierungskette 501 mit Erfolg bestimmt, welcher der Knoten 503 zu einem bestimmten Zeitpunkt Zugriff auf den Bus haben wird, und den wichtigen Vorteil hat, daß der die Priorität besitzende Knoten 503 sofortigen Zugriff auf den Bus 504 gewinnt, verhindert sie nicht, daß höher priorisierte Geräte den Bus 504 "mit Beschlag belegen" und niedriger priorisierten Geräten den Zugang zum Bus verweigern. Wenn beispielsweise der Knoten 503(1) den Zugriff auf den Bus bei jedem Buszyklus anfordert, gelingt es keinem anderen Knoten 503 in der Kette 501 jemals, auf den Bus 504 zuzugreifen.
- Das Problem der "rücksichtslosen Benutzung" kann behoben werden, wenn jedem Knoten garantiert ist, daß er am Bus an die Reihe kommt. Ein Weg dahin ist in US-A-4 342 995 offenbart. Bei dem in diesem Patent offenbarten System sind die Knoten nach Art einer Kaskadierungskette in einer Schleife zusammengeschlossen, und man läßt durch die Schleife einen Impuls umlaufen. Wenn ein Knoten, dessen Buszugriffsanforderung noch ansteht, den Impuls empfängt, erlangt er den Zugriff auf den Bus. Wenn der Knoten fertig ist, gibt er den Impuls an den nächsten Knoten weiter. Wenn der Knoten, der den Impuls empfängt, nicht auf den Bus zugreifen möchte, hält er den Impuls während einer kurzen Zeit und gibt ihn dann an den nächsten Knoten in der Kette weiter. Das bekannte System garantiert zwar, daß keiner der Knoten den Bus "mit Beschlag belegt", aber es ist äußerst wenig wirkungsvoll dann, wenn einer der Knoten den Bus häufiger nutzt als die übrigen Knoten. Sobald im bekannten System ein Knoten die Nutzung des Busses beendet hat, muß er zum Starten seines nächsten Buszugriffs stets warten, bis der Impuls an alle übrigen Knoten der Kette weitergegeben worden ist, auch wenn bei keinem der übrigen Knoten eine noch nicht ausgeführte Buszugriffsanforderung besteht.
- US-A-4 232 294 offenbart eine andere Schleifenanordnung, bei der die höchste Priorität von einem Knoten zum nächsten usw. umläuft.
- Woran Bedarf besteht und was die Gegenstand der vorliegenden Anmeldung bildende Erfindung schafft, ist eine Busprioritäts- Vorrichtung, die weder zuläßt, daß ein einzelner Knoten den Bus "mit Beschlag belegt", noch fordert, daß ein Knoten bis zur Erlangung des Buszugriffs wartet, bis bei keinem anderen Knoten mehr eine Anforderung ansteht. Ferner sieht die Erfindung vor, daß ein Knoten, sobald er die höchste Buspriorität erlangt, diese gegenüber den übrigen Busknoten während einer programmierbaren Anzahl Buszugriffszyklen behält, bevor er die höchste Priorität einen anderen Knoten überläßt.
- Die vorliegende Erfindung betrifft eine dynamische, kreisförmige Busprioritätsvorrichtung, bei der jeder der an den Bus angeschlossenen Knoten eine gegenwärtige Priorität hat, die durch seine Position in einer kreisförmigen Konfiguration der Knoten in bezug auf einen der Knoten bestimmt ist, der aktuell der "Ankerknoten" des Kreises ist. Wenn mehr als einer der Knoten zur gleichen Zeit versucht, auf den Bus zuzugreifen, wird der Knoten, der den Zugriff erlangt, durch die gegenwärtige Priorität der Knoten bestimmt. Sobald ferner ein Knoten die Ankerknoten-Priorität erlangt, behält er die höchste Priorität während einer programmierbaren Anzahl Buszugriffe, bevor er die höchste Priorität einem anderen Knoten überläßt. Nach der programmierbaren Anzahl Buszugriffen wird ein anderer Knoten als der aktuelle Ankerknoten zum Ankerknoten, und die Prioritäten der Knoten werden nach deren Positionen in bezug auf den neuen Ankerknoten bestimmt. Die Erfindung ermöglicht es somit dem Knoten, der gegenwärtig Priorität hat, den sofortigen Zugriff auf den Bus nach Ablauf der programmierbaren Anzahl Zugriffe, die dem Knoten gewährt waren, der zuvor Priorität hatte, und verhindert gleichzeitig, daß ein Knoten den Bus mit Beschlag belegt, und überwindet dadurch die weiter oben erwähnten Schwierigkeiten im Stand der Technik.
- Bei einer derzeit bevorzugten Ausführungsform wird jeder Knoten der Reihe nach zum gegenwärtigen Ankerknoten. Jedesmal, wenn ein Knoten die Ankerposition des Busses erreicht, hält der Knoten die Ankerposition während einer programmierbaren Anzahl vom Knoten durchgeführter Buszugriffszyklen, wonach der dem aktuellen Ankerknoten nachfolgende Knoten zum neuen Ankerknoten wird. Bei anderen Ausführungsformen kann der nächste Ankerknoten durch den Knoten bestimmt werden, der als letzter Zugriff auf den Bus erlangt hatte. Bei einer solchen Ausführungsform wird der Knoten, der dem Knoten folgt, welcher als letzter Zugriff erlangt hatte, zum neuen Ankerknoten, womit gewährleistet ist, daß der Knoten, der zuletzt auf den Bus zugegriffen hat, beim nächsten Zugriff die niedrigste Priorität hat.
- Es ist somit eine Aufgabe der Erfindung, ein verbessertes Digitalrechnersystem zu schaffen.
- Es ist eine weitere Aufgabe der Erfindung, eine verbesserte Vorrichtung zur Bestimmung der Priorität des Zugriffs auf einen Bus zu schaffen.
- Es ist eine noch andere Aufgabe der Erfindung, eine Vorrichtung zur Bestimmung der Priorität des Zugriffs auf einen Bus zu schaffen, bei welcher der Knoten, der gegenwärtig Priorität hat, auf den Bus sofort zugreifen kann, daß aber kein Knoten den Bus "mit Beschlag belegen" kann.
- Eine zusätzliche Aufgabe der Erfindung besteht in der Schaffung einer Prioritätsvorrichtung, bei der die Priorität nach der Position eines Knoten in bezug auf einen aktuellen Ankerknoten bestimmt wird, dessen Position im System sich bei jedem Zugriff auf den Bus ändert.
- Es ist eine noch weitere Aufgabe der Erfindung, eine Prioritätsvorrichtung zu schaffen, bei der ein Knoten eine höchste Buspriorität während einer vorbestimmten Anzahl von Buszugriffszyklen erlangt, bevor er die höchste Priorität an einen anderen Knoten abgibt.
- Die Erfindung ist in Anepruch 1 angegeben, mit bevorzugten Ausführungsformen in den Ansprüchen 2 bis 10.
- Weitere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung ergeben sich für den Fachmann durch Bezugnahme auf die nachstehende detaillierte Beschreibung der bevorzugten Ausführungsform und auf die Zeichnungen, die Nachfolgendes zeigen.
- Fig. 1 ist ein Blockschaltbild eines Systems, in das die vorliegende Erfindung eingegliedert ist.
- Fig. 1A und 1B zeigen alternative Systembus-Anordnungen.
- Fig. 2 ist eine schematische Darstellung der erfindungsgemäßen Busstruktur.
- Fig. 2A ist eine schematische Darstellung von Übertragungen zwischen Prozessoren über die erfindungsgemäße Busstruktur.
- Fig. 3A und 3B sind schematische Darstellungen der Systembusschnittstellen, die in die Elemente des erfindungsgemäßen Systems eingegliedert sind.
- Fig. 4A und 4B sind Flußdiagramme mit einer Darstellung der Arbeitsweise der vorliegenden Erfindung.
- Fig. 5 ist ein Blockschaltbild einer herkömmlichen statischen Kaskadierungskette.
- Fig. 6 ist ein Blockschaltbild der erfindungsgemäßen kreisförmigen Umlaufkette.
- Fig. 7 ist ein Logikschaltplan einer Implementierung der vorliegenden Erfindung in einem Knoten; und
- Fig. 8 ist ein Logikschaltplan der derzeit bevorzugten Ausführungsform der vorliegenden Erfindung.
- Die Abschnitte A bis F der nachstehenden Beschreibung einer Bevorzugten Ausführungsform beschreiben das System, indem die erfindungsgemäße Prioritätsvorrichtung implementiert ist. Die Prioritätsvorrichtung selbst wird näher in den Abschnitten G und H beschrieben. Eine derzeit bevorzugte Ausführungsform ist in Abschnitt I dargelegt. Es sei darauf hingewiesen, daß in den Zeichnungen und in den nachstehenden Beschreibungen erscheinende Bezugszeichen aus drei Ziffern bestehen. Die beiden geringstwertigen (am weitesten rechts stehenden) Ziffern bezeichnen ein in einer bestimmten Zeichnung dargestelltes bestimmtes Element, und die höchstwertige (am weitesten links stehende) Ziffer bezeichnet die Figur, in der dieses Element zum ersten Mal erscheint. Beispielsweise ist das Element 124 das 24. Element, das in Fig. 1 und dort zum ersten Mal erscheint. Ein Bezugszeichen wird dem bezeichneten Element zugeordnet, sobald es zum ersten Mal in den Beschreibungen erscheint und wird zur Bezeichnung dieses Elementes in allen nachstehenden Beschreibungen und allen Zeichnungen benutzt.
- Fig. 1 zeigt ein Blockschaltbild eines beispielhaften Systems 102, in das die erfindungsgemäße Prozessoren verbindende Busstruktur eingegliedert ist. Gemäß der Darstellung sind die zwei Hauptelemente der Systembusstruktur, die auf dieser Ebene erkennbar sind, der Systembus 104 und der Systembusprioritäts(SBP)-Bus 106. Der Systembus 104, dessen detaillierte Struktur weiter unten beschrieben wird, ist das Mittel, über welches die Elemente des Systems 102 miteinander in Verbindung stehen. Der SBP-Bus 106, auch er weiter unten näher beschrieben, ist die Verbindungsleitung, über welche die an den Systembus 104 angeschlossenen Elemente den Zugriff auf den Systembus 104 bestimmen.
- Gemäß Fig. 1 unterteilen sich die das System 102 bildenden Elemente in zwei Klassen: Elemente, die an den Systembus 104 und den SBP-Bus 106 direkt angeschlossen sind, und Elemente, die mit dem Systembus 104 indirekt, das heißt, über ein anderes Element angeschlossen sind, welches seinerseits an den Systembus 104 und den SBP-Bus 106 direkt angeschlossen ist. Wie weiter unten näher beschrieben, werden an den Systembus 104 und an den SBP-Bus 106 direkt angeschlossene Elemente hinsichtlich des Zugriffs auf den Systembus 104 grundsätzlich als gleichberechtigt betrachtet. Die Zugriffsprioritäten indirekt verbundener Elemente werden durch die Zugriffsprioritäten der zugehörigen Elemente bestimmt, über die sie mit dem Systembus 104 verbunden sind. Es werden zunächst die an den Systembus 104 direkt angeschlossenen Elemente betrachtet, von denen jedes ausreichende interne Intelligenz z.B. in Form einer Mikrocodesteuerung aufweist, derart, daß wenigstens spezielle Funktionen unabhängig von den übrigen Elementen des Systems 102 durchführbar sind. Zu Beispielen solcher Elemente gehören, wie in Fig. 1 dargestellt, Speichereinheiten (MEM) (1 bis n+2) 108, Zentraleinheiten (CPU) (1 bis n+1) 110, Systemlokalsteuerungen (LSC) 112, Systemfemsteuerungen (RSC) 114 und Systembusschnittstellen (SBI) (1 bis n+1) 116.
- Die Auslegung von Elementen wie die MEM 108 und die CPU 110 und die von ihnen ausgeführten Funktionen sind in der Fachwelt bekannt und erfordern keine weitere Beschreibung. Die LSC 112 und RSC 114 kinnen beispielsweise kleine Rechner der Personal- oder Professional-Klasse sein, die ausgelegt sind, bestimmte Systemsteuerungsfunktionen auszuführen, z.B. die Bereitstellung einer Benutzersteuerungsschnittstelle, d.h. eines "Bedienungsfeldes auf dem Bildschirm". In dieser Hinsicht kann sich die RSC 114 von der LSC 112 dadurch unterscheiden, daß sie mit einem entfernten Benutzer/Steuerung beispielsweise für Diagnosezwecke über eine Datenfernübertragungsleitung (TC) verbunden ist.
- Die SBI 116 sind die weiter oben angegebenen Elemente, über die indirekt verbundene Elemente, z.B. Satellitenverarbeitungseinheiten (SPU) 118, Zugang zum Systembus 104 erlangen. Gemäß Fig. 1 sind die SPU 118 miteinander und mit einer zugeordneten SBI 116 über einen SPU-Bus 120 verbunden. Die Verbindung zwischen dem zugeordneten SPU-Bus 120 und somit den an ihn angeschlossenen SPU 118 und dem Systembus 104 ist durch die zugehörige SBI 116 geschaffen. Es sei darauf hingewiesen, daß die SPU 118 und die SPU-Busse 120 die gleiche Struktur und Arbeitsweise benutzen können, die weiter unten unter Bezugnahme auf den Systembus 104 und den SBP-Bus 106 beschrieben wird, das heißt, sie können als dem Hauptsystembus gleiche lokale Systembusse ausgelegt sein. Alternativ können die SPU 118 und die SPU-Busse 120 von jeder beliebigen, für die Systemarbeitsweise geeigneten Auslegung sein. Die SPU 118 enthalten im wesentlichen alle Geräte oder Systemelemente, die, beispielsweise wegen Datenflußraten oder Funktionen, für die Durchführung ihrer Funktionen keinen direkten Zugriff auf den Systembus 104 erfordern. Beispiele für SPU 118 sind Ein-/Ausgabegeräte wie Laufwerke, Anzeigevorrichtungen, Drucker, Datenf ernübertragungs leitungen, Bandspeicher und Benutzerterminals. Zu den SPU 118 können ferner gehören unabhängige oder zugeordnete Verarbeitungseinheiten, z.B. Universalrechner oder spezialisierte Verarbeitungsgeräte, z.B. Scanner und spezialisierte Rechen- oder Signalverarbeitungsanlagen.
- Mit erneuter Bezugnahme auf den Systembus 104. Wie weiter oben angegeben, ist der Systembus 104 das Mittel, über welches die Elemente des Systems 102 miteinander in Verbindung stehen. Bei der erfindungsgemäßen Ausführungsform des Systems 102, und wie in Fig. 1 dargestellt, ist der Systembus 104 ein linearer Bus, wobei jedes der gleichberechtigten Elemente des Systems 102 an ihn angeschlossen ist, dabei die Verbindungen mit dem Systembus 104 je nach Erfordernis der Funktion des Elementes ein- oder zweiseitig gerichtet sind. Je nach Erfordernis der speziellen Konfiguration eines Systems 102 kann der Systembus 104 erweitert werden, d.h. es können Systemelemente hinzugefügt oder weggenommen werden oder es können zwei oder mehr Systeme 102 zu einem einzigen System verbunden werden.
- Es sei darauf hingewisen, daß, wie weiter unten beschrieben, die logische Konfiguration des Systembusses 104 durch den SBP-Bus 106 definiert ist und jede beliebige topologische Struktur annehmen kann, die von der Funktion des Systems 102 gefordert wird. Beispielsweise kann der Systembus 104 physisch in der in Fig. 1A und 1B dargestellten Schleifen- bzw. Sternkonfiguration angeordnet sein. Bei der Schleifenkonfiguration sind die Enden des Systembusses 104 zur Bildung einer geschlossenen Schleife miteinander verbunden, an welche die Systemelemente (SE) 122 angeschlossen sind. Bei der Sternkonfiguration besteht der Systembus 104 aus mehreren Bussegmenten, die von einer gemeinsamen Verbindungsstelle strahlenförmig ausgehen, und die SE 122 sind gemäß der Erfordernis der Systemkonfiguration an die strahlenförmigen Segmente angeschlossen.
- Unter erneuter Bezugnahme auf Fig. 1. Wie weiter unten näher beschrieben wird, ist der SBP-Bus 106 das Mittel, über welches die an den Systembus 104 angeschlossenen Elemente des Systems 102 den Zugriff auf den Systembus 104 festlegen. Gemäß Fig. 1 bildet der SBP-Bus 106 eine Schleife, wobei alle an den Systembus 104 angeschlossenen Elemente in die SBP-Busschleife 106 seriell eingebunden sind.
- Bei dem hier dargestellten beispielhaften System 102 ist angenommen, daß alle an den Systembus 104 angeschlossenen verarbeitenden Elemente die Fähigkeit haben, Übertragungen zwischen Prozessoren unabhängig zu initiieren; daher sind alle an den Systembus 104 angeschlossenen Elemente als mit der SBP-Busschleife 106 verbunden dargestellt. In bestimmten Fällen, beispielsweise bei Speicherelementen, können die verarbeitenden Elemente so sein, daß sie Übertragungen zwischen Prozessoren nicht einleiten, sondern solche nur empfangen oder auf sie reagieren. Derartige Elemente erfordern Zugriff auf den Systembus 104 für den Empfang und die Reaktion auf solche Übertragungen, beispielsweise durch Lesen von Daten aus einem Speicherelement und zum Übertragen derselben an ein CPU-Element, aber es wird von ihnen nicht gefordert, daß sie Zugriff auf den Systembus 104 fordern, das heißt, daß der Zugriff auf den Systembus 104 durch das Element vorgesehen wird, das die Übertragung, auf die geantwortet wird, sendet. In solchen Fällen brauchen die "Nur-Antwort"-Elemente mit der SBP-Busschleife 106 nicht verbunden sein, sondern werden an den Systembus 104 angeschlossen.
- Wie weiter unten beschrieben wird, wird die Priorität zum Zugriff auf den Systembus 104 von einem Element des Systems 102 an das nächste Element in der SBP-Busschleife 106 in einer "Umlaufkaskadierungskette" weitergereicht. Das heißt, wenn ein bestimmtes Element aktuell Zugriff auf den Systembus 104 hat, besitzt das in der SBP-Busschleife 106 nächste, dem aktuellen Element folgende Element die höchste Priorität für den nächsten Zugriff auf den Systembus 104, gefolgt von dem auf dem SBP-Bus 106 nächsten Element und so fort entlang der SBP-Busschleife 106, bis das aktuelle Element wiedererreicht wird. Wenn das Element, das aktuell Zugriff hat, den Systembus 104 freigibt, wird die Möglichkeit zur Erlangung des nächsten Zugriffs durch den SBP-Bus 106 an das am SBP-Bus 106 nächste Element weitergegeben. Dieses nächste Element kann auf den Systembus 104 zugreifen oder, wenn es dies nicht tut, die Möglichkeit des Zugriffes auf das am SBP-Bus 106 ihm nächste Element weitergeben und so fort, bis das Element wiedererreicht wird, das anfangs Zugriff hatte, oder bis ein Element am SBP-Bus 106 auf den Systembus 104 zugreift. Die Reihenfolge der Priorität zum Zugriff auf den Systembus 104 rotiert dadurch entlang dem SBP-Bus 106, wobei jedes Element der Reihe nach eine Gelegenheit hat, den Zugriff auf den Systembus 104 zu erlangen. Die durchschnittlichen Prioritäten zum Zugriff auf den Systembus 104 aller an ihn angeschlossenen Elemente sind somit gleich, wobei die relativen Prioritäten der Elemente zu bestimmten Zeitpunkten durch ihre Positionen auf dem SBP-Bus 106 in bezug auf das Element bestimmt werden, das aktuell tatsächlichen Zugriff oder das Recht auf Zugriff auf den Systembus 104 hat.
- Wegen der rotierenden Verschiebung der Priorität des Zugriffs auf den Systembus 104 zwischen den an den SBP-Bus 106 angeschlossenen Elementen des Systems 102, konkurrieren die an den Systembus 104 angeschlossenen Elemente nicht um den Zugriff auf den Systembus 104. Folglich ist die weiter unten beschriebene Zugriffbestimmungslogik vereinfacht und durch Beseitigung von Organisationsaufwand beim Systembus 104, der sonst bei der Lösung von Zugriffsprioritäten genutzt würde, wird die Übertragungsgeschwindigkeit zwischen den an den systembus 104 angeschlossenen Elementen vergrößert. Außerdem, und weil jedes mit dem Systembus 104 und dem SBP-Bus 106 verbundene Element eine gleiche Möglichkeit zur Erlangung des Zugriffs auf den Systembus 104 hat, kann kein Element vom Zugriff auf den Systembus 104 während eines längeren Zeitraums ausgeschlossen werden.
- Ferner, und auch hier wegen der rotierenden Verschiebung der Priorität des Zugriffs auf den Systembus 104 zwischen den Elementen des Systems 102, hat die Position eines Elementes des Systems 102 entweder am SBP-Bus 106 oder am Systembus 104 keinen Einfluß auf die durchschnittliche Priorität dieses Elementes zum Zugriff auf den Systembus 104. Das heißt, wie vorstehend beschrieben, alle an den Systembus 104 angeschlossenen und in die SBP-Busschleife 106 eingebundenen Elemente sind gleichberechtigt und besitzen im Durchschnitt gleiche Rechte für den Zugriff auf den Systembus 104. Unter diesen Bedingungen kann ein Element zum System 102 hinzugefügt oder von einer Stelle am Systembus 104 oder am SBP-Bus 106 an eine andere Stelle verlagert werden, ohne daß die durchschnittlichen relativen Prioritäten dieses Elementes oder beliebiger anderer an den Systembus 104 angeschlossener Elemente für den Zugriff auf den Systembus 104 beeinflußt werden.
- In dieser Hinsicht ist der SBP-Bus 106 in Fig. 1 als eine einfache, im Uhrzeigersinn gerichtete Schleife dargestellt, wobei jedes Element des Systems 102 entlang der Schleife in Serie angeordnet ist. Es sei jedoch darauf hingewiesen, daß diese Darstellung nur aus Gründen der Übersichtlichkeit gewählt wurde. Die an den Systembus 104 angeschlossenen Elemente des Systems 102 können tatsächlich entlang dem SBP-Bus 106 seriell in beliebiger Reihenfolge angeordnet sein.
- Die Reihenfolge der Elemente am SBP-Bus 106 kann beispielsweise durch die weiter oben beschriebenen temporären Zugriffprioritäten beeinflußt werden, die sich auswirken, wenn ein bestimmtes Element Zugriff auf den Systembus 104 hat. Das heißt, wenn ein bestimmtes Element Zugriff auf den Systembus 104 hat, hat das am SBP-Bus 106 nächste Element die höchste Priorität für den nächsten Zugriff und so fort entlang der SBP-Busschleife 106. Wenn beispielsweise bekannt ist, daß einer bestimmten Operation, die einen Zugriff auf den Systembus 104 durch ein erstes Element erfordert, häufig eine mit ihr in Beziehung stehende Operation folgt, die auch Zugriff auf den Systembus 104 durch ein zweites Element erforderlich macht, kann das zweite Element mit dem SBP-Bus 106 als nächstes nach dem ersten Element verbunden werden. Wenn somit das erste Element seine Operation ausführt, wäre bekannt, daß das zweite Element die höchste Priorität für den nächsten Zugriff auf den Systembus 104 hat.
- Zur Erläuterung unter Bezugnahme auf Fig. 1 sei angenommen, daß SBI1 116 hauptsächlich mit Ein-/Ausgabeoperationen von Daten befaßt ist, die von der CPU1 110 bearbeitet werden, beispielsweise Textverarbeitung. In einem solchen Fall, und um die Reaktionsgeschwindigkeit auf Benutzeroperationen zu vergrößern, kann es wünschenswert sein, der CPU1 110 den nächsten Zugriff auf den Systembus 104 jedesmal dann zu gewähren, wenn SBI1 116 Daten von einem Benutzer, d.h. einer SPU 118, an eine der MEM1-n 108 überträgt. In diesem Fall könnte die CPU1 110 mit der SBP-Busschleife 106 als nächste nach der SBI1 116 verbunden sein.
- Schließlich ist in Fig. 1 ein zweites Element des SBP-Busses 106 dargestellt und mit Lokalpriorität-Verbindungsleitung (LPL) 124 bezeichnet. Die LPL 124 ist im wesentlichen ein Mittel, mit dem die relativen Prioritäten der über die LPL 124 miteinander verbundenen Elemente festgelegt werden können, anders als die durch den SBP-Bus 106 bestimmten rotierenden Prioritäten. Wie in einer nachstehenden Beschreibung des in jedem an den SBP-Bus 106 angeschlossenen Element vorhandenen Element des SBP-Busses 106 im einzelnen beschrieben wird, ermöglicht die LPL 124 den Umstand, daß eine anstehende Anforderung eines Zugriffs auf den Systembus 104 durch ein Element auf ein anderes, an die LPL 124 angeschlossenes Element weitergeleitet wird, um noch nicht ausgeführte Zugriffe auf den Systembus 104 im zweiten Element zu sperren.
- Fig. 2 zeigt eine schematische Darstellung der Busstruktur des Systems 102. Wie weiter oben beschrieben und in Fig. 1 dargestellt, enthält diese Struktur den Systembus 104, den SBP-Bus 106 und in bestimmten Fällen eine zugehörige LPL 124. D1. Speichersteuerbus 202: Speicheroperationen und Übertragungen zwischen Prozessoren Gemäß Fig. 2 umfaßt der Systembus 104 eine Vielzahl Mehrfachund Einfachleitung-Unterbusse. Der erste dieser Unterbusse ist ein Speichersteuerbus (MC) 202, der, sobald ein Element des Systems 102 Zugriff auf den Systembus 104 erhält, benutzt wird, um die Art der auf dem Systembus 104 auszuführenden Operation mitzuteilen.
- Das heißt, wenn ein Element die Kontrolle über den Systembus 104 übernimmt, signalisiert dieses Element diesen Zugriff durch Schalten des SBP-Busses 106 in einen Zustand, der diese Bedingung anzeigt, und bringt auf den MC-Bus 202 einen Code, der die Art der auf dem Systembus 104 auszuführenden Operation angibt. Die an den Systembus 104 angeschlossenen Elemente des Systems 102 stellen das Vorhandensein eines Zugriffs auf den Systembus 104 durch die Überwachung des Zustandes des SBP-Busses 106 fest und wenn ein Zugriff angezeigt ist, bestimmen sie die auf dem Systembus 104 durchzuführende Operationsart durch Lesen des Codes, den das Element, das Zugriff auf den Systembus 104 hat, auf den MC-Bus 202 gebracht hat.
- Die meisten Operationen auf dem Systembus 104 sind speicherbezogen, das heißt, sie sind Lese- oder Schreiboperationen an MEM 108. Unter diesen Bedingungen und wie weiter unten anhand der Codes auf dem MC-Bus 202 zu erkennen ist, wird die gesamte Klasse der nicht speicherbezogenen Operationen durch einen einzigen Code bezeichnet, der anzeigt, daß eine Übertragung "zwischen Prozessoren" auszuführen ist, also eine Übertragung zwischen zwei Elementen, die nicht Speicher sind, z.B. einer SBI 116 und einer CPU 110. Wie nachstehend beschrieben, müssen die an den Systembus 104 angeschlossenen Elemente in solchen Fällen auf andere Unterbusse des Systembusses 104 zurückgreifen, um übertragungen zwischen Prozessoren zu bestimmen und auszuführen.
- Zu den bei der erfindungsgemäßen Implementierung des Systems 102 auf dem MC-Bus 202 vorgesehenen Codes gehören: CODE OPERATIONSTYP Keine Operation Lesen des Inhalts eines Steuerregisters einer MEM 108. Lesen eines Daten-Vierfachwortes (16 Byte) aus einem spezifizierten Speicherplatz einer MEM 108. Lesen eines Daten-Oktalwortes (32 Byte) aus einem spezifizierten Speicherplatz einer MEM 108. Lesen eines Daten-Doppelwortes (8 Byte) aus einem spezifizierten Speicherplatz einer MEM 108. Lesen eines Daten-Wortes (4 Byte) aus einem spezifizierten Speicherplatz einer MEM 108. Durchführen einer Übertragung zwischen Prozessoren. Schreiben in ein Steuerregister einer MEM 108. Schreiben eines Byte in einen spezifizierten Speicherplatz einer MEM 108. Schreiben eines Halbwortes (2 Byte) in einen spezifizierten Speicherplatz einer MEM 108. Schreiben eines Doppelwortes in einen spezifizierten Speicherplatz einer MEM 108, und Schreiben eines Wortes in einen spezifizierten Speicherplatz einer MEM 108.
- Es sei darauf hingewiesen, daß die vorstehend genannten Codes in hexadezimaler Form dargestellt werden, und daß die Codes 1, 2, 9 und A für zukünftige Benutzung reserviert sind.
- Dadurch werden Übertragungen zwischen Prozessoren als vorgegebene Operation vor speicherbezogenen Operationen ausgeführt. Das heißt, es ist ein kurzer "Entscheidungszweig", Bezugnahme auf einen Code auf dem MC-Bus 202, vorgesehen, um speicherbezogene Operationen zu bezeichnen und auszulösen, wogegen für nicht speicherbezogene Operationen ein längerer "Entscheidungszweig", Bezugnahme auf weitere Informationen auf anderen Unterbussen des Systembusses 104, erforderlich ist. Dieses Verfahren erhöht dadurch in wirkungsvoller Weise die Geschwindigkeit, mit der der Großteil der Operationen auf dem Systembus 104, das sind speicherbezogene Operationen, ausgelöst und durchgeführt werden können, indem für solche Operationen ein kürzerer Entscheidungspfad vorgesehen ist, unter Beibehaltung der Flexibilität beim Definieren und Ausführen von Operationen aller Typen auf dem Systembus 104.
- Die nächstgrößeren Unterbusse des Systembusses 104 sind der Systemadreßbus (SA) 204 und der Systemdatenbus (SD) 206. Bei Betrachtung zunächst der speicherbezogenen Operationen ist der SA-Bus 204 das Mittel zur Übertragung von Lese- und Schreibadressen zwischen Elementen, die Speicheroperationen anfordern, und den MEM 108, welche die Operationen ausführen, wogegen der SD-Bus 206 das Mittel ist zum Übertragen von Daten zwischen den MEM 108 und den übrigen Elementen des Systems 102.
- Bei einer Speicheroperation erlangt das eine Speicheroperation anfordernde System 102, wie weiter oben beschrieben, zunächst den Zugriff auf den Systembus 104 über die weiter unten näher beschriebene Arbeitsweise des SBP-Busses 106 und bringt auf den MC-Bus 202 einen entsprechenden MC-Bus-202- Code, der die Art der auszuführenden Operation angibt. Das anfordernde Element bringt dann die Lese- oder Schreibadresse auf den SA-Bus 204 und, falls es eine Schreiboperation ist, die einzuschreibenden Daten auf den SD-Bus 206. Die angesteuerte MEM 108 schreibt dann die Daten in ihre entsprechende Speicherstelle. Handelt es sich um eine Leseoperation, liest die adressierte MEM 108 die Daten aus der angesteuerten Speicherstelle und bringt die Informationen auf den SD-Bus 206, von dem sie durch das anfordernde Element ausgelesen werden. Bei der erfindungsgemäßen Implementierung des Systems 102 ist beispielsweise der SA-Bus 24 Bit breit und läßt sich auf 31 Bit erweitern, wogegen der SD-Bus 206 64 Bit, also ein Doppelwort, breit ist.
- Mit dem SA-Bus 204 und dem SD-Bus 206 sind drei weitere Einfachleitung-Unterbusse verbunden, deren Hauptfunktionen Speicheroperationen betreffen. Der erste dieser Unterbusse ist WAIT (Warten) 208. Dieses Signal wird von einer adressierten MEM 108 während einer Speicherleseoperation aktiviert, wenn die angeforderten Informationen nicht zur Verfügung stehen, und wird vom anfordernden Element überwacht, das dann entsprechend in einen Wartebetrieb schalten kann, bis die Informationen verfügbar werden.
- Die zweite Speicheroperationssteuerung ist BUSY (Besetzt) 210, die von einer adressierten MEM 108 während einer Speicheroperation und vor einer Übertragung auf dem Systembus 104 aktiviert wird. BUSY 210 gibt an, daß der Systembus 104 nicht zur Verfügung steht, und wird von den Elementen des Systems 102 überwacht.
- Die dritte Speicheroperationssteuerung ist Gültiger Speicherzugriff (VMA) 212, die von einer adressierten MEM 108 aktiviert wird und angibt, daß eine angeforderte Speicheroperation gültig ist, das heißt, daß die Adresse oder die Daten gültig sind. VMA wird von dem die Speicheroperation anfordernden Element überwacht, damit es feststellen kann, ob die Anforderung erfolgreich, das heißt gültig war.
- Bei den nunmehr zu betrachtenden nicht speicherbezogenen Operationen, das heißt bei Übertragungen zwischen Prozessoren, arbeiten der SA-Bus 204 und der SD-Bus 206 in verschiedener Hinsicht verschieden von dem vorstehend Beschriebenen, wenn eine Operation zwischen Prozessoren durchzuführen ist. Wie weiter oben angegeben, werden Operationen zwischen Prozessoren als vorgegebene Operation vor speicherbezogenen Operationen ausgeführt. Das heißt, ein einziger MC-Bus-202-Code gibt die gesamte Klasse der nicht speicherbezogenen Operationen an. Wie ebenfalls weiter oben beschrieben, müssen die an den Systembus 104 angeschlossenen Elemente beim Erscheinen des Codes für Übertragungen zwischen Prozessoren auf dem MC-Bus 202 auf Informationen zurückgreifen, die von dem anfordernden Element auf den SA-Bus 204 und den SD-Bus 206 gebracht worden sind, um den Typ der auszuführenden Operation zwischen Prozessoren festzustellen.
- In Fig. 2A sind die Informationen dargestellt, die bei einer Operation zwischen Prozessoren auf den SA-Bus 204 und den SD- Bus 206 gegeben sind. Gemäß der dortigen Darstellung gehören zu den auf dem SA-Bus 204 erscheinenden Informationen ein 4- Bit-Feld Zieladresse (TA) 214, welches das Ziel oder den gewollten Empfänger der Nachricht bezeichnet, ein 4-Bit-Feld Nachrichtentyp (MT) 216, das den Typ der an das Ziel zu sendenden Nachricht bezeichnet, und ein 16-Bit-Feld Nachricht (ME) 218, das eine Nachricht enthalten kann. Bei bestimmten Übertragungsoperationen zwischen Prozessoren, bei denen Daten von einem Element zu einem anderen zu übertragen sind, kann der SD-Bus 206 ein Datenfeld bis zu 8 Byte enthalten.
- Unter Berücksichtigung der verschiedenen auf dem SA-Bus 204 erscheinenden Felder bei Übertragungen zwischen Prozessoren, kann das TA-Feld 214 beispielsweise die nachstehenden Codes für die Zielbezeichnung enthalten: CODE BEZEICHNETES ZIEL Unterstützungssteuereinheit (z.B. LSC 112 oder RSC 114). Rundsendung an alle CPU 110. A für zukünftige Benutzung reserviert Rundsendung an alle SBI 116.
- Es sei darauf hingewiesen, daß die vorstehend angegebenen Codes in hexadezimalem Format dargestellt werden.
- Durch die vorstehend genannten Codeformate wird deutlich, daß das in den vorstehend genannten Codezuweisungen berücksichtigte beispielhafte System eine einzelne Unterstützungssteuereinheit 112 oder 114, bis zu 8 CPU 110 und bis zu 4 SBI 116 umfaßt. Die Zuweisung von Zielcodes kann nach Belieben geändert werden, je nach der beabsichtigten Konfiguration des speziellen Systems 102.
- Es sei darauf hingewiesen, daß die Ansteuerung von SPU 118 als Ziel und die Übertragung von Nachrichten an sie durch die den SPU 118 zugeordneten SBI 116 geschehen. Es sei ferner darauf hingewiesen, daß die Übertragungen zwischen Prozessoren die gleichzeitige Rundsendung von Nachrichten an alle Elemente eines bestimmten Typs ermöglicht, beispielsweise an alle CPU 110 oder an alle SBI 116.
- Für Speicherelemente, das heißt für MEM 108, sind in den beispielhaften Codes für das TA-Feld 214 keine Codes zur Zielbezeichnung vorgesehen. Wie weiter oben angegeben, werden alle speicherbezogenen Operationen auf der Codeebene des MC-Busses 202 ausgelöst, und die Ziel-MEM 108 werden durch gleichzeitig auf dem SA-Bus 204 erscheinende Adressen bezeichnet.
- Die Inhalte der MT-Felder 216 sind von dem speziellen Typ des im zugehörigen TA-Feld 214 bezeichneten Empfängers abhängig, das heißt bei diesem Beispiel davon, ob der als Ziel bezeichnete Empfänger eine SBI 116, also eine an eine SBI 116 angeschlossene SPU 118 ist, eine CPU 110 oder eine Unterstützungssteuereinheit 112 oder 114. Durch die nachstehend angegebenen beispielhaften Codes für das MT-Feld 216 wird deutlich, daß ein Code im MT-Feld-216 eine Nachricht als die Übertragung einer Nachricht, die Übertragung von Daten oder als Befehl für eine Operation des empfangenden Elementes oder für eine Änderung seines Betriebszustandes bezeichnen kann.
- Es werden erste Beispiele der MT-Codetypen betrachtet, die an ein Element des SBI-116-Typs übertragen werden können. CODE NACHRICHTENTYP Nachrichtenübertragung an Ziel-SPU 118. Datenübertragung an Ziel-SPU 118. Rücksetzung Ziel-SBI 116. Rücksetzung Ziel-SPU 118. Abschaltung Ein-/Ausgabe(E/A)-Schutz. Einschaltung E/A-Schutz. Freigabe E/A-Zugriff auf spezifizierte Speicherseite, und Sperre des E/A-Zugriffs auf spezifizierte Speicherseite.
- Auch in diesem Fall werden die vorstehend genannten Codes für das MT-Feld-216 in hexadezimalem Format dargestellt, und die Codes 2, 3, 4, 5, 6, 7, E und F sind für zukünftige Benutzung reserviert.
- Es werden nunmehr Beispiele für Codes im MT-Feld-216 betrachtet, die benutzt werden können, wenn der als Ziel bezeichnete Empfänger eine CPU 110 ist. CODE NACHRICHTENTYP E/A-Unterbrechung Klasse Übertragungen zwischen Prozessoren, und Taktsynchronisierung.
- Auch hier werden die Codes im hexadezimalen Format dargestellt, und die Codes 2 bis 7 und A bis F sind für zukünftige Benutzung reserviert worden.
- Es sei darauf hingewiesen, daß die vorstehend angegebenen Nachrichtentypen für CPU 110 zwei Klassen von E/A-Unterbrechungen vorsehen: Klasse 1, wenn in der E/A-Operation kein Fehler eingetreten ist; Klasse 2, wenn in der E/A-Operation ein Fehler eingetreten ist, beispielsweise bei den Daten. Die beiden Klassen sind vorgesehen wegen der unterschiedlichen Handhabung dieser Ereignisse durch die das Ziel darstellende CPU 110.
- Bei einer Nachricht des Typs übertragung zwischen Prozessoren, MT-Code 8, wird für die Übertragung nur der SA-Bus 204 genutzt, und die empfangende CPU 110 greift auf das auf dem SA-Bus 204 miterscheinende ME-Feld 218 zurück, um die Nachricht zu bestimmen, wovon Beispiele nachstehend angegeben sind. Das Auftreten einer solchen Übertragung setzt ein Flag "Unterbrechung nicht abgefertigt" in einem nachstehend beschriebenen, in der empfangenden CPU 110 vorhandenen Register für Übertragungen zwischen Prozessoren. Die Mikromaschine der empfangenden CPU 110 liest das Flag "Unterbrechung nicht abgefertigt", führt bei der nächsten Gelegenheit eine Makrounterbrechung aus und arbeitet eine Routine zur zweckdienlichen Verarbeitung der empfangenen Nachricht ab. Wenn in der empfangenden CPU 110 das Flag für die Unterbrechung der Übertragung zwischen Prozessoren bereits aktiv ist, sendet die empfangende CPU 110 an die sendende CPU 110 ein Quittierungs- und Belegtsignal, das nachstehend beschrieben wird. Es sei darauf hingewiesen, daß bei Übertragungen von SBI 116 an CPU 110 die eine Belegtantwort empfangenden SBI 116 diese in einer Weise behandelt, die dem Busprotokoll der SBI 116 entspricht, das heißt ihrem Protokoll gegenüber ihren SPU 118.
- Auch hier können die im MT-Feld 216 erscheinenden speziellen Codes für den Nachrichtentyp und ihre Bedeutung nach Belieben bestimmt werden, abhängig von der Konfiguration und der Funktion des beabsichtigten Systems 102 und der in ihm vorhandenen Elemente.
- Die im ME-Feld 218 erscheinenden 2-Byte-Nachrichten über Übertragungen zwischen Prozessoren sind ebenfalls von der Funktion und der Konfiguration des Systems 102 und der es bildenden Elemente abhängig. Bei der erfindungsgemäßen Implementierung gehören zu Beispielen solcher Nachrichten Übertragungen zwischen den Systemelementen und dem Betriebssystem des Systems 102, das in den CPU 110 abgearbeitet wird. Solche Betriebssystemübertragungen können Übertragungen zwischen einem E/A-Gerät, das heißt einer SBI 116 oder SPU 118, und dem Betriebssystem und Übertragungen zwischen dem Betriebssystem und einer Unterstützungssteuereinheit 112 oder 114 umfassen. Beispielsweise kann das Betriebssystem einer Unterstützungssteuereinheit eine Nachricht senden, daß diese eine Fehlerdatei lesen oder aktualisieren soll, oder sie auffordert, einen Teil der Arbeitsweise des Systems 102 zu überprüfen und das Prüfergebnis dem Betriebssystem zu melden, beispielsweise bei Diagnoseoperationen.
- Zu weiteren Beispielen gehören Übertragungen zwischen den CPU 110 einer Mehrprozessor-Konfiguration des Systems 102. Beispielsweise kann eine bestimmte CPU 110 einen ausschließlichen Zugriff auf eine bestimmte Speicherseite wünschen und bei den übrigen CPU 110 anfragen, ob sie diese Speicherseite benutzen. Wenn diese Seite von einer anderen CPU 110 nicht benutzt wird, kann die anfordernde CPU 110 dann alle CPU 110 durch eine Rundsendung informieren, daß sie einen ausschließlichen Zugriff auf diese Speicherseite beansprucht. Bei einem weiteren Beispiel kann eine CPU 110 die Eröffnung und Änderung einer speziellen Datei wünschen und alle übrigen CPU 110 informieren, daß sie zu diesem Zweck einen ausschließlichen Zugriff auf diese Datei bekommt. Noch andere Beispiele sind Nachrichten, welche die Aktionen der CPU 110 koordinieren; z.B. kann eine erste CPU 110 einer zweiten CPU 110 über eine Nachricht zwischen Prozessoren eine Aufgabe zuweisen und die zweite CPU 110 kann eine Nachricht senden, welche die erste CPU 110 von der Beendigung der Aufgabe informiert.
- Noch weitere Beispiele von Nachrichten zwischen Prozessoren, die im ME-Feld 218 erscheinen, sind E/A-Nachrichten, im wesentlichen Befehle von CPU 110 an SBI 116 oder SPU 118 zum Auslösen oder Steuern der Arbeitsweisen dieser Elemente.
- Schließlich und mit nochmaliger Bezugnahme auf Fig. 2 sind, wie weiter oben im Zusammenhang mit speicherbezogenen Operationen beschrieben, bestimmte Einfachleitung-Unterbusse des Systembusses 104 Übertragungsoperationen zwischen Prozessoren zugeordnet. Dazu gehören Bestätigung (ACK) 220 und Ziel Belegt (TB) 222. ACK 220 wird von dem Zielelement einer Übertragung zwischen Prozessoren aktiviert, wenn dieses Ziel besteht und bestätigt, daß das sendende Element versucht, diesem Zielelement eine Übertragung zwischen Prozessoren zu senden. Das sendende Element überwacht ACK 220, um festzustellen, ob der Versuch, eine Übertragung zwischen Prozessoren zu senden, erfolgreich war.
- TB 222 wird vom Zielelement einer Übertragung zwischen Prozessoren aktiviert, um anzugeben, daß das Zielelement belegt ist und die Übertragung zwischen Prozessoren nicht annehmen kann. Das sendende Element überwacht TB 222 und wird, wenn die TB 222 durch das Zielelement aktiviert wird, diese Bedingung je nach Art und Funktion des sendenden Elementes bearbeiten.
- Sowohl Übertragungen zwischen Prozessoren als auch speicherbezogenen Operationen ist auch LOCK (Ausschluß) 224 zugeordnet. LOCK 224 kann durch den Initiator einer speicherbezogenen Operation oder einer Übertragung zwischen Prozessoren aktiviert werden, um alle übrigen Benutzer des Systembusses 104 auszuschließen. LOCK 224 kann beispielsweise aktiviert werden, wenn ein Element eine Reihe Übertragungen zwischen Prozessoren oder Speicheroperationen auszuführen wünscht. LOCK 224 wird von allen an den Systembus 104 angeschlossenen Elementen überwacht, und es wird kein Benutzer einen Zugriff auf den Systembus 104 zu erlangen versuchen, wenn ein anderes Element LOCK 224 aktiviert.
- Schließlich kann der Systembus 104, wie in Fig. 2 angegeben, einen Systemtakt (SYSCLK) 226 aufweisen, der allen Benutzern des Systembusses 104 zur Verfügung steht, wodurch für alle solche Elemente eine gemeinsame Zeitsteuerung erreicht wird.
- Nachdem die Arbeitsweise der Busstruktur des Systems 102 beschrieben wurde, wird als nächstes nachstehend die in jedem der an den Systembus 104 angeschlossenen Elemente vorhandene Busschnittstellenlogik beschrieben.
- Fig. 3A und 3B zeigen schematische Darstellungen der in jedem an den Systembus 104 angeschlossenen Element vorgesehenen Schnittstellenschaltung für die Verbindung dieser Elemente mit dem Systembus 104. Es sei darauf hingewiesen, daß die hier dargestellte Logik und Schaltungsanordnung nur erläuternd und repräsentativ sind und durch eine beliebige Logik oder Schaltungsanordnung ersetzt werden können, die äquivalente Funktionen ausübt. Außerdem ist da, wo Auslegung und Arbeitsweise der dargestellten Logik und Schaltungsanordnung für den Fachmann bekannt sind, keine detaillierte Beschreibung der Logik oder Schaltungsanordnung vorgesehen. Jedoch wird die Arbeitsweise der Elementschnittstellen im einzelnen beschrieben, wo sie für die vorliegende Erfindung von Belang ist.
- Zunächst unter Bezugnahme auf Fig. 3A. Darin ist die Schnittstellenschaltung dargestellt, die hauptsächlich die Anforderung und die Erlangung des Zugriffs auf den Systembus 104 betrifft. Wie weiter oben beschrieben, ist jedes an den Systembus 104 angeschlossene Element in Serie mit der SBP-Busschleife verbunden. Andere Unterbusse des Systembusses 104, die mit der Erlangung des Zugriffs auf den Systembus 104 zu tun haben, sind, wie in Fig. 3A angegeben, BUSY 210 und LOCK 224 sowie, in bestimmten Fällen, LPL 124.
- Wenn, wie weiter oben beschrieben, ein Element, das aktuell Zugriff auf den Systembus 104 hat, den Systembus 104 freigibt, wird die Gelegenheit zur Erlangung des nächsten Zugriffs über den SBP-Bus 106 an das am SBP-Bus 106 nächstgelegene Element weitergegeben. Dieses nächste Element kann den Zugriff auf den Systembus 104 übernehmen oder, wenn nicht, die Gelegenheit zum Zugriff an das am SBP-Bus 106 nächstgelegene Element weitergeben und so fort, bis das Element, das zu Beginn Zugriff hatte, wiedererreicht ist oder ein Element am SBP-Bus 106 den Zugriff auf den Systembus 104 übernimmt.
- Gemäß Fig. 3A ist der Eingang auf dem SBP-Bus 106 von dem an der SBP-Busschleife 106 vorhergehenden Element mit SBP Eingang (SBPI) bezeichnet und an einen ersten Eingang eines Anforderungs-Gates (RG) 302 geführt. Es sei darauf hingewiesen, daß SBPI als aktives niedrigpegeliges Signal dargestellt ist, wie alle übrigen überstrichenen Signale. Der Ausgang des RG 302 ist über die Fortsetzung der SBP-Busschleife 106 mit dem an der SBP-Busschleife 106 nächstfolgenden Element verbunden und mit SBP Ausgang (SBPO) bezeichnet.
- An einen zweiten Eingang in das RG 302 ist ein Anforderungsausgang (REQ) eines Anforderungsfreigabe-Gates (REG) 304 geführt. REQ wird, wie weiter unten beschrieben, generiert, wenn das zugehörige Element einen Zugriff auf den Systembus 104 anfordern möchte und sonstige, durch die verschiedenen Eingänge in REG 304 bestimmte Bedingungen, die auch weiter unten beschrieben werden, das Element nicht daran hindern, den Zugriff anzufordern. REQ wirkt als Freigabesignal hinsichtlich RG 302 und SBPI, das heißt, SBPI wird über RG 302 als SBPO weitergegeben und wird somit das SBPI des an der SBP-Busschleife 106 nächstfolgenden Elementes, wenn REQ nicht aktiviert ist. Wenn natürlich REQ aktiviert ist, wird verhindert, daß SBPI durch RG 302 geleitet und zu SBPO wird, und das an der SBP-Busschleife 106 nächste Element wird einen SBPI nicht empfangen, weil das aktuelle Element Zugriff auf den Systembus 104 beansprucht hat. Das RG 302 wirkt dadurch als ein Tor, welches das Weiterlaufen der Gelegenheit zur Erlangung des Zugriffs auf den Systembus 104 verhindert, das heißt, das Element kann die Gelegenheit "einfangen", und als Signalpegelrücksetzer für das auf der SBP-Busschleife 106 weitergeleitete SBPI/SBPO-Signal.
- Es sei darauf hingewiesen, daß aufgrund der Struktur der Schnittstellenlogik für den SBP-Bus 106 das Zugriffssignal des SBP-Busses 106 entlang der SBP-Busschleife 106 mit einer Geschwindigkeit läuft, die durch die Laufzeit um die körperliche Schleife und die Verzögerungen durch die RG 302 der an sie angeschlossenen Elemente bestimmt wird. Unter diesen Bedingungen sind Verzögerungen bei der Erlangung des Zugriffs auf den Systembus 104 aufgrund der Arbeitsweise des SBP-Busses 106 und der Elementschnittstellen zu ihm so stark wie möglich reduziert und die Gesamtgeschwindigkeit der Operation der Busstruktur des Systems 102 ist erhöht.
- Unter Bezugnahme auf das REG 304. Gemäß Fig. 3A empfängt das REG 304 ein Busanforderungssignal (BREQ) von der weiter unten näher beschriebenen internen Steuerschaltung des Elementes, wenn das Element auf den Systembus 104 zugreifen will. Das BREQ wird in das REG 304 durch die weiter oben beschriebenen Eingänge BUSY (Belegt) und LOCK (Ausschluß) aus BUSY 210 bzw. LOCK 224 eingesteuert. In bestimmten, weiter oben auch beschriebenen Fällen erhält das REG 304 ein Lokalprioritäts- Signal von einem vorhergehenden Element durch eine LPL 124. Die Aktivierung von REQ und somit das Einfangen von SBPI/SBPO erfordert daher, daß BUSY, LOCK und evtl. ein Lokalprioritäts-Signal nicht aktiviert sind.
- Fig. 3B zeigt eine schematische Darstellung der allgemeinen Schnittstelle zum Systembus 104 eines an den Systembus 104 angeschlossenen Elementes. Gemäß der Darstellung umfaßt die Schnittstellenlogik eine Steuerung der Übertragungen zwischen Prozessoren (IPCC) 306 mit Eingängen, die, wie angegeben, an die Unterbusse des Systembusses 104 angeschlossen sind. Zu diesen Eingängen gehören die 4 Bit des MC-Busses 202, WAIT, BUSY, VMA, ACK und TB, deren Funktionen weiter oben beschrieben wurden. Ferner gehören zu den Eingängen der IPCC 306 das TA-Feld 214 vom SA-Bus 204.
- Diese Eingänge bezeichnen im wesentlichen das Auftreten, den Typ und den Ausführungszustand von Übertragungen zwischen Prozessoren, und die IPCC 306 besteht im wesentlichen aus einer Decodierlogik zum Decodieren dieser Eingänge und zur Bereitstellung von entsprechenden Ausgängen an die interne Steuerschaltung des Elementes, z.B. an eine Mikrocode-Steuerschaltung.
- Die Auslegung einer solchen internen Steuerschaltung und einer solchen Decodierlogik wie die IPCC 306 ist dem Fachmann bekannt, insbesondere aufgrund der vorstehenden und nachfolgenden Beschreibungen der Arbeitsweise der Busstruktur vom System 102.
- Zu den Ausgängen aus der IPCC 306 gehören eine Unterbrechung der Übertragung zwischen Prozessoren (IPCI) an das Unterbrechungsteuerungsprogramm der Elemente, wie schon weiter oben beschrieben, sowie ACK- und TB-Signale an den ACK-Bus 220 und den TB-Bus 222.
- Die IPCC 306 erzeugt auch einen Ausgang, der das Auftreten einer Übertragung zwischen Prozessoren (IPC) einem Register für Übertragungen zwischen Prozessoren (IPCR) 308 anzeigt, das gemäß Fig. 3B ein Register ist, das mit den Busteilen MT- Feld 216 und NE-Feld 218 des SA-Busses 204 verbunden ist. Dadurch fängt das IPCR 308 die MT- und ME-Felder einer auf dem SA-Bus 204 auftretenden Übertragung zwischen Prozessoren ein und speichert sie und leitet diese Felder als Eingänge an die Interne Steuerlogik (Interne Steuerung) 310 der Elemente.
- Wie der Fachwelt bekannt, kann die Interne Steuerung 310 beispielsweise aus einer für eine bestimmte Aufgabe ausgelegte Steuerlogik oder aus einer mikrocode-programmierten Mikroprozessorsteuerung bestehen. Die Interne Steuerung 310 wirkt zum einen als Steuerung der Arbeitsweise des Elementes in Abhängigkeit von einer empfangenen Übertragung zwischen Prozessoren, zum anderen als Initiator und Steuerung von vom aktuellen Element ausgehenden Übertragungen zwischen Prozessoren.
- In diesem zweiten Fall kann die Interne Steuerung 310 Steuersignale für Übertragungen zwischen Prozessoren an eine Ausgabesteuerung für Übertragungen zwischen Prozessoren (IPCO) 312 senden. Die IPCO kann ihrerseits aus Registern und einer Decodierlogik bestehen, die MT- und ME-Felder an den SA-Bus 204 generiert, wenn das Element eine Übertragung zwischen Prozessoren initiiert, und kann das weiter oben beschriebene BREQ-Signal erzeugen, wenn das Element den Zugriff auf den Systembus 104 für eine Übertragung zwischen Prozessoren anfordern will.
- Schließlich kann die Schnittstellenschaltung Datenregister und Datentreiber (DR) 314 umfassen, die mit dem SD-Bus 206 verbunden sind und Daten zwischen dem Element und dem SD-Bus 206 übertragen. Eine solche Datenübertragung kann, wie weiter oben beschrieben, bei einer speicherbezogenen Operation vorkommen oder wenn Daten bei einer Übertragung zwischen Prozessoren übertragen werden.
- Die Schnittstelle zwischen einem Element und dem Systembus 104 kann von der vorstehend beschriebenen abweichen, wenn dieses Element ein Speicherelement, z.B. eine MEM 108 ist. In einem solchen Fall kann die in Fig. 3A dargestellte Schaltung entsprechend modifiziert werden, das heißt, sie kann nur die Funktionen enthalten, die für speicherbezogene Operationen notwendig sind.
- Beispielsweise kann eine IPCC 305 für eine MEM 108 nur mit Eingängen vom NC-Bus 202 versehen sein, die ausreichen und vollständig sind, um alle speicherbezogenen Operationen zu definieren. Die IPCC 306 der NEM 108 kann dementsprechend die Ausgänge WAIT, BUSY und VMA statt an die in Fig. 3A dargestellten an die zweckentsprechenden Unterbusse des Systembusses 104 leiten. In ähnlicher Weise kann das IPCR 308 einer NEM 108 von einem Adreßeingangsregister gebildet sein, das an den SA-Bus 204 angeschlossen ist und Speicher-Lese- und Schreibadressen zu empfangen vermag, und die NEM 108 wird eine bidirektionale Datenverbindung mit dem SD-Bus 206 aufweisen.
- Nachdem die Bus- und Schnittstellenstrukturen der Busstruktur des Systems 102 und die Funktionen und die Arbeitsweise der dabei notwendigen Signale beschrieben wurden, wird die Arbeitsweise der Busstruktur des Systems 102 nachstehend mit Bezugnahme auf diese Arbeitsweisen darstellende Flußdiagramme beschrieben.
- Fig. 4A und 4B zeigen in Flußdiagrammform Darstellungen der Arbeitsweisen der Busstruktur vom System 102. Fig. 4A ist eine Darstellung einer Systembusarbeitsweise aus der Sicht des Busanforderers, wogegen Fig. 4B eine Darstellung aus der Sicht des Zielelementes ist.
- Gemäß Fig. 4A beginnt eine Busoperation zwischen Prozessoren, entweder Speicheroperation oder Übertragung zwischen Prozessoren, mit der Generierung einer Zugriffsanforderung durch das anfordernde Element mittels seiner internen Steuerlogik. Im ersten Schritt stellt der Anforderer fest, ob der Systembus 104 verfügbar ist, das heißt, wie schon weiter oben beschrieben, der Anforderer bestimmt, ob ggfs. BUSY, LOCK und LPL 124 aktiviert sind und ob ein SBPI anliegt.
- Im zweiten Schritt, und wenn die Bedingungen bezüglich der Busverfügbarkeit erfüllt sind, übernimmt der Anf orderer den Systembus 104 durch Einfangen des SBP-Bus-106-Signals und bringt einen entsprechenden Code auf den NC-Bus 202, der den Typ der auszuführenden Operation angibt. Ist der Systembus 104 nicht verfügbar, führt der Anforderer die Maßnahme aus, die erforderlich ist, um auf das Verfügbarwerden des Busses zu warten, und versucht einen neuen Zugriff.
- Wurde der Zugriff auf den Systembus 104 erlangt, und ist die Operation eine speicherbezogene Operation, bringt der Anforderer die Adresse der Speicheroperation auf den SA-Bus 204 und ggfs. die zu schreibenden Informationen auf den SD-Bus 206 und überwacht den WAIT-Bus 208.
- Ist das reagierende Speicherelement belegt, aktiviert der Speicher WAIT auf dem WAIT-Bus 208, und das anfordernde Element muß in einen Wartebetrieb eintreten, bis das reagierende Speicherelement verfügbar ist.
- Ist das reagierende Speicherelement verfügbar, und ist die Speicheranforderung gültig, aktiviert das Speicherelement VMA auf dem VMA-Bus 212, und die Operation wird ausgeführt. War die Speicheranforderung nicht gültig, wird VMA nicht aktiviert, und der Anforderer muß zur Lösung des Problems auf seine Fehlerbearbeitungseinrichtung zurückgreifen.
- War die angeforderte Operation eine Übertragung zwischen Prozessoren, bringt das anfordernde Element die entsprechenden, weiter oben beschriebenen Felder auf den SA-Bus 204 und den SD-Bus 206 und überwacht den ACK-Bus 220 und den TB-Bus 222.
- Wenn das Zielelement ACK aktiviert und TB nicht aktiviert, wird die Operation ausgeführt.
- Wenn das Zielelement ACK und TB aktiviert, muß der Anforderer warten und die Übertragung nochmals versuchen, weil das Zielelement belegt ist.
- Wenn das Zielelement ACK nicht aktiviert und TB aktiviert, ist das Zielelement erneut als belegt bezeichnet und der Anforderer muß die Übertragung nochmals versuchen. Wenn das Zielelement ACK oder TB nicht aktiviert, dann muß der Anforderer zur Lösung des Problems auf ein Fehlerbearbeitungsprogramm zurückgreifen.
- Unter Bezugnahme nunmehr auf Fig. 48; sie zeigt ein allgemeines Flußdiagramm für die Arbeitsweise eines Zielelementes sowohl bei speicherbezogenen Operationen als auch bei Übertragungsoperationen zwischen Prozessoren.
- Im ersten Schritt überwacht das Zielelement den SBP-Bus 106 und stellt am Zustand des SBP-Busses 106 die Auslösung einer Operation auf dem Systembus 104 fest. Zu diesem Zeitpunkt liest das Element den Code auf dem MC-Bus 202, um den Typ der auf dem Systembus 104 auszuführenden Operation zu festzustellen.
- Es sei zuerst eine Speicheroperation betrachtet und angenommen, daß das Zielelement ein Speicherelement ist. Das Element liest dann den SA-Bus 204, um die Zieladresse im Adressenraum des Systems 102 festzustellen, und liest den SD-Bus 206 und fängt die zu schreibenden Daten ein, wenn die Operation eine Speichereinschreibung ist.
- Ist das Zielelement belegt, reagiert es durch Aktivieren von BUSY auf dem BUSY-Bus 210. Ist das Zielelement nicht belegt und ist die Speicheranforderung gültig, aktiviert das Zielelement VMA auf dem VMA-Bus 212 und führt die angeforderte Operation aus.
- Es sei schließlich eine Übertragung zwischen Prozessoren betrachtet. Das Zielelement stellt durch Lesen des Codes auf dem MC-Bus 202 fest, daß eine Übertragung zwischen Prozessoren durchzuführen ist, und liest dann das TA-Feld 214 aus dem SA-Bus 204, um festzustellen, ob dieses Element das Zielelement ist.
- Wenn dieses Element das Zielelement ist, aktiviert es ACK und, wenn es nicht belegt ist, aktiviert es nicht BUSY.
- Unter der Annahme, daß das Element nicht belegt ist und das Zielelement ist, liest das Element das MT-Feld 216 aus dem SA-Bus 204, um die Art der Übertragung zu bestimmen, und das ME-Feld 218 aus dem SA-Bus 204, um die Nachricht zu erfassen. Das Element reagiert dann auf diese Felder durch die Ausführung der von der Nachricht angeforderten Operationen, einschließlich des Lesens von Daten aus dem SD-Bus 206, wenn die Übertragung die Weiterleitung von Daten erfordert.
- Wie im Vorstehenden beschrieben und in Fig. 1 dargestellt, verbindet der Systemprioritätsbus (SPB) 106 die Bauteile des Systems 102 zu einer kreisförmigen Kaskadierungskette. Wie ferner weiter oben beschrieben, sind die Prioritäten der Bauteile des Systems 102 in bezug aufeinander nicht statisch, sondern werden nach einem bestimmten Bauteil des Systems 102 bestimmt. Im Betrieb des Systems 102 rotiert das Bauteil des Systems 102, nach dem die Priorität bestimmt wird, entlang der durch den SBP-Bus 106 gebildeten kreisförmigen Kette. Die nachstehende zusätzliche Beschreibung gibt Einzelheiten einer derzeit bevorzugten Ausführungsform des SBP-Busses 106 und der Prioritätslogik. Die zusätzliche Beschreibung beginnt mit einem Überblick über das Prioritätssystem und beschreibt dann die Art und Weise, in der das Prioritätssystem bei der bevorzugten Ausführungsform implementiert ist.
- Fig. 6 zeigt einen Überblick über eine derzeit bevorzugte Ausführungsform des im System 102 verwendeten Prioritätssystems. In Fig. 6 sind die Bauteile des Systems 102 durch Knoten 603 dargestellt. Jeder Knoten 603 enthält die Prioritätslogik, mittels derer ein oder mehrere der Bauteile des Systems 102 Zugriff auf den Systembus (SB) 104 erlangen. Die Anzahl der Knoten 603 und die Anzahl der von einem bestimmten Knoten 603 repräsentierten Bauteile des Systems 102 sind natürlich von der Konfiguration des Systems 102 abhängig. Dient ein Knoten 603 mehreren als nur einem Bauteil des Systems 102, werden die relativen Prioritäten unter den vom Knoten bedienten Bauteilen durch eine zusätzliche Prioritätslogik bestimmt, beispielsweise durch eine statische Kaskadierungskette 501, welche die vom Knoten 603 bedienten Bauteile verbindet. In einem solchen Fall bestimmt die von der zusätzlichen Prioritätslogik bestimmte Priorität dasjenige der vom Knoten 603 bedienten Geräte, welches tatsächlich Zugriff auf den SB-Bus 104 erhält, wenn der Knoten 603 den Zugriff auf den SB-Bus 104 erlangt.
- Jeder Knoten 603 ist mit dem SB 104 verbunden und empfängt zumindest BUSY 210, LOCK 224 sowie Signale vom MC-Bus 202. Ferner ist jeder Knoten 603 mit dem SBP 106 zu einer kreisförmigen Kette verbunden, die in der Darstellung gemäß Fig. 6 Knoten 603(1) bis 603(n) aufweist. Bei einer bevorzugten Ausführungsform hat der SBP 106 zwei Bauteile: eine Prioritätsleitung (P) 607, mit der jeder Knoten 603 feststellt, ob er auf den SB 104 zugreifen kann, und eine Ankerleitung (A) 605, die es dem Knoten 603, der aktuell die höchste Priorität hat und folglich aktuell als der "Anker" dient, nach dem die Prioritäten der übrigen Knoten 603 bestimmt werden, ermöglicht, sequentiell durch die kreisförmige Kette zu rotieren. Wie in Fig. 6 ersichtlich, empfängt jeder Knoten 603 A 605 und P 607 von dem ihm in der kreisförmigen Kette unmittelbar vorhergehenden Knoten 603 und gibt A 605 und P 607 an den unmittelbar folgenden Knoten 603 weiter. In der nachstehenden Beschreibung sind A 605 und P 607 mit Subskripten versehen, die den Knoten angeben, der ihre Quelle ist. Beispielsweise wird A 605(n) vom Knoten 603(n) an den Knoten 603(1) weitergegeben.
- In Fig. 6 sind Einzelheiten der internen Struktur nur vom Knoten 603(1) dargestellt; jedoch haben alle übrigen Knoten 603 ähnliche interne Strukturen und arbeiten in ähnlicher Weise. Es gibt vier Hauptbauteile in der internen Struktur des Knotens 603(1): eine Prioritätslogik (PL) 609, eine Ankerlogik (AL) 615, eine Anforderungslogik (RL) 621 und eine Knotenbewilligungslogik (NGL) 625. Es wird mit der PL 609 begonnen; diese Logik empfängt ein Eingangssignal von P 607(n), das angibt, ob irgendein vorhergehender Knoten 603 das Recht zum Zugriff auf den Bus erhalten hat, ein Eingangssignal von AL 615, das angibt, ob der Knoten 603(1) aktuell der "Anker" ist und daher die höchste Priorität hat, und ein Eingangssignal 613 von der RL 621, das angibt, daß eines der durch den Knoten 603(1) repräsentierten Bauteile auf den Bus zugreifen will. Ferner erzeugt die PL 609 ein Ausgangssignal P 607(1), das angibt, ob nachfolgende Knoten das Recht zum Zugriff auf den SB 104 haben können, und ein Ausgangssignal 617, das angibt, ob der Knoten 603(1) gegenwärtig zum Zugriff auf den SB 104 berechtigt ist.
- Wenn das Eingangssignal 613 eine Anforderung nicht anzeigt, gibt die PL 609 das von P 607(n) empfangene Eingangssignal einfach an P 607(1) weiter. Wenn das Eingangssignal 613 eine Anforderung anzeigt und das Eingangssignal P 607(n) angibt, daß der Knoten 603(1) das Recht zum Zugriff auf den SB 104 haben kann, setzt der Knoten 603(1) das Ausgangssignal P 607(1) so, daß es angibt, daß nachfolgende Knoten 603 keinen Zugriff haben können, und das Ausgangssignal 617 so, daß es angibt, daß der Knoten 603(1) zum Zugriff auf den SB 104 berechtigt ist. Wenn das Eingangssignal 613 eine Anforderung angibt, gibt das Eingangssignal P 607(n) an, daß ein vorhergehender Knoten 603 Zugriff angefordert hat, und gibt das Eingangssignal 611 an, daß der Knoten 603(1) nicht der Anker ist. PL 609 gibt auch in diesem Fall den Wert von P 607(n) nach P 607(1) weiter. PL 609 setzt P 607(1) so, daß angegeben wird, daß nachfolgende Knoten 603 keinen Zugriff haben können, und das Ausgangssignal 617 so, daß dieser Knoten 603(1) der Anker ist, entweder wenn kein vorhergehender Knoten 603 Zugriff auf den Bus angefordert hat oder wenn der Knoten 603(1) der Anker ist, ungeachtet des Umstandes, daß ein vorhergehender Knoten 603 Zugriff angefordert hat.
- Weiter mit AL 615. AL 615 enthält ein Statuselement, das angibt, ob der Knoten 603(1) aktuell der Anker ist. Zu jedem beliebigen Zeitpunkt gibt dieses Statuselement in nur einem der Knoten 603 der kreisförmigen Kette an, daß ein Knoten 603 der Anker ist. AL 615 empfängt als Eingangssignale A 605(n), das den Wert des Statuselementes in der AL 615 des vorhergehenden Knotens 603 angibt, und Signale vom SB 104 über BIN 627(1). AL 615 bestimmt nach diesen Signalen, ob ein Bauteil des Systems 102 Zugriff auf den SB 104 erlangt hat. Die AL 615 gibt den gegenwärtigen Wert des Statuselementes an die PL 609, wie dies in der Beschreibung der PL 609 angegeben ist, und an A 605(1) weiter, die ihn an die AL 615 des nachfolgenden Knotens 603 leitet. Jedesmal, wenn die AL 615 Signale über BIN 627(1) empfängt, die angeben, daß ein Bauteil Zugriff auf den SB 104 erlangt hat, setzt die AL 615 das Statuselement auf den gegenwärtig an A 605(n) anstehenden Wert. Die AL 615 in allen übrigen Knoten 603 arbeitet in derselben Weise; jedesmal, wenn ein Bauteil Zugriff auf den SB 104 erlangt, wird folglich der Wert des Statuselementes, der angibt, daß ein Knoten 603 der Anker ist, zum nachfolgenden Knoten 603 weitergegeben. Wenn somit Bauteile des Systems 102 den SB 104 benutzen, rotiert der Ankerknoten 603 entlang der kreisförmigen Kette und jeder Knoten 603 hat der Reihe nach die höchste Priorität.
- Es wird nun die Anforderungslogik (RL) 621 betrachtet. Die RL 621 empfängt als Eingang ein Knotenanforderungssignal (NR) 619, das angibt, daß ein durch den Knoten 603(1) repräsentiertes Bauteil den Zugriff anfordert. Wenn, wie weiter oben angegeben, der Knoten 603(1) mehrere Bauteile vertritt, kann das NR 619 durch eine (in Fig. 6 nicht dargestellte) Prioritätslogik erzeugt werden, die feststellt, welches der vom Knoten 603(1) vertretenen Bauteile Zugriff auf den SB 104 erhalten soll. Die Ausgangssignale der RL 621 sind 613, das der PL 609 angibt, daß der Knoten 603(1) eine Anforderung zum Zugriff auf den Bus stellt, und 623, das denselben Umstand der NGL 625 anzeigt. Die NGL 625 stellt fest, ob das Bauteil, das den Zugriff anfordert, ihn erhalten wird. Bei einer bevorzugten Ausführungsform sind die Eingangssignale in die NGL 625 BUSY 210 und LOCK 224 vom SB 104, der Ausgang 623 von der RL 621, der angibt, daß eines der vom Knoten 603(1) vertretenen Bauteile den Zugriff anfordert, und der Ausgang 617 von der PL 609, der angibt, daß der Knoten 603(1) den Zugriff anfordert, und der Ausgang 617 von der PL 609, der angibt, daß der Knoten 603(1) zum Zugriff berechtigt ist. Wenn BUSY 210 und LOCK 224 angeben, daß der SB 104 verfügbar ist, das Ausgangssignal 617 anzeigt, daß eine Anforderung gestellt wurde, und das Ausgangssignal 623 anzeigt, daß der Knoten 603(1) zum Zugriff auf den SB 104 berechtigt ist, gibt die NGL 625 ein Knotenbewilligungssignal (NG) 629 aus, auf welches das Bauteil, das von dem Knoten 603(1) vertreten wird, der das Recht zum Zugriff auf den SB 104 hat, durch die Übernahme des Busses reagiert.
- Die Wirkung der gerade beschriebenen Operationen ist, daß wenn ein vom Knoten 603(1) vertretenes Bauteil Zugriff auf den SB 104 anfordert, der Knoten 603(1) den Zugriff erhält entweder, wenn der Knoten 603(1) der gegenwärtige Ankerknoten ist, oder wenn weder der gegenwärtige Ankerknoten 603 oder irgendein anderer Knoten 603, der dem gegenwärtigen Ankerknoten 603 folgt und dem Knoten 603(1) vorhergeht, den Zugriff anfordert Ferner wird jedesmal, wenn ein Bauteil des Systems 102 den Zugriff auf den SB 104 erhält, der dem gegenwärtigen Ankerknoten 603 nachfolgende Knoten 603 zum neuen Ankerknoten. Der vorherige Ankerknoten 603 hat dann die niedrigste Zugriffspriorität; wenn jedoch der neue Ankerknoten 603 den Zugriff nicht anfordert und keiner der Knoten 603, die dem neuen Ankerknoten nachfolgen oder dem vorherigen Ankerknoten vorhergehen, den Bus anfordert, kann der vorherige Ankerknoten 603 auf ihn zugreifen. Die kreisförmige Umlaufkette 601 ermöglicht somit weder, daß ein einzelnes Bauteil des Systems 102 den SB 104 "mit Beschlag belegt", noch verhindert sie, daß ein Bauteil den sofortigen Zugriff auf den SB 104 erhält, wenn die Priorität seines Knotens 603 es ermöglicht.
- Fig. 7 ist ein Logikschaltplan mit der Darstellung einer Implementierung der PL 609, der AL 615, der RL 621 und der NGL 625 in den Knoten 603(1) und 603(n). Zwischen Fig. 6 und Fig. 7 besteht nachstehend angegebene Beziehung: Die PL 609 ist in den Knoten der Fig. 7 mittels eines NOR-Gliedes 705 und eines NAND-Gliedes 709 implementiert; die AL 615 ist mittels eines Anker-Flipflops (AFF) 701 implementiert; die RL 621 ist mittels eines Knotenanforderungs-Flipflops (NRFF) 703 implementiert, und die NGL 625 ist mittels eines AND-Gliedes 711 und eines NGFF 713 implementiert. In der Beschreibung wird zuerst die Logik des Knotens 603(1), danach die Unterschiede zwischen diesem Knoten und den übrigen Knoten 603 am Beispiel des Knotens 603(n) erklärt.
- Es wird begonnen mit der PL 609. Bei einer bevorzugten Ausführungsform ist P 607(n) hochpegelig, wenn ein vorhergehender Knoten 603 den Zugriff auf den Bus angefordert hat, und niedrigpegelig, wenn kein vorhergehender Knoten 603 den Zugriff angefordert hat. A 605(1) vom AFF 701(1), das dem Eingang 611 entspricht, ist niedrigpegelig, wenn der Knoten 603(1) der Ankerknoten ist, andernfalls hochpegelig. Schließlich ist NR 719(1), das dem Eingang 613 entspricht, hochpegehg, wenn ein durch den Knoten 603(1) repräsentiertes Bauteil den Zugriff angefordert hat, andernfalls niedrigpegelig.
- Wenn der Knoten 603 keinen Zugriff anfordert, ist NR 719(1) niedrigpegelig, und der Wert von P 607(1) ist durch den Wert des Eingangssignals 707(1) bestimmt, das seinerseits durch den Wert von P 607(n) bestimmt ist. Wenn somit im Knoten 603(1) keine Anforderung ansteht, ist der auf P 607(1) ausgegebene Wert derselbe wie der durch P 607(n) empfangene.
- Wenn der Knoten 603(1) den Zugriff anfordert, wodurch NR 719(1) auf hohen Pegel geschaltet wird, und P 607(n) niedrigpegelig ist, was angibt, daß kein vorhergehender Knoten einen Zugriff getätigt hat, ist das Ausgangssignal 707(1) niedrigpegelig, ungeachtet des Wertes von A 605(1). Wenn 707(1) niedrigpegelig und NR 719(1) hochpegelig ist, ist P 607(1) hochpegelig und zeigt den dem Knoten 603(1) nachfolgenden Knoten an, daß ein vorhergehender Knoten einen Zugriff getätigt hat. Wenn P 607(n) hochpegelig ist, ist auch P 607(1) hochpegelig, aber der Wert des Ausgangs 707(1) ist vom Wert von A 605(1) abhangig. Ist er hoch, was angibt, daß der Knoten 603(1) nicht der Ankerknoten ist, ist 707(1) hochpegelig; wenn A 605(1) niedrig ist, ist der Ausgang 707(1) niedrigpegelig. Wenn, wie bezüglich der NGL 625 näher beschrieben wird, 707(1) niedrigpegelig ist und die übrigen Bedingungen erfüllt sind, übernimmt das den Bus anfordernde Bauteil den Bus. Somit kann das Bauteil den Bus in jedem der beiden Fälle übernehmen: wenn kein vorhergehender Knoten 603 den Zugriff getätigt hat oder wenn ein vorhergehender Knoten 603 den Zugriff gemacht hat, aber der Knoten 603(1) aktuell der Ankerknoten ist.
- Aus der vorstehenden Beschreibung wird folgendes deutlich: Welcher Knoten 603 in der kreisförmigen Umlaufkette 601 den Zugriff auf den SB 104 erhalten soll, kann erst dann bestimmt werden, wenn jeder Knoten 603, beginnend mit dem aktuellen Ankerknoten, die Gelegenheit hatte, auf P 607 zu reagieren. Für die Entscheidung über den Zugriff muß somit eine Zeitspanne gewährt werden, die lang genug ist, um eine solche Reaktion zu ermöglichen. Die Länge der Zeitspanne wird von der Gatelaufzeit in jedem Knoten 603 und der Anzahl der Knoten 603 in der kreisförmigen Kette abhängen. Bei der erfindungsgemäßen Implementierung ist es vorteilhaft, daß die Verknüpfungsglieder 705(1) und 709(1) mittels eines einzigen AND/OR-invertierenden Gliedes implementiert werden können. Folglich ist bei jedem Knoten 603 nur eine einzige Gatelaufzeit notwendig. Im System 102 beträgt die Zugriffsentscheidungszeit 60 ns, und 6 ns sind für Vorbereitung und Gatelaufzeit in jedem Knoten 603 erforderlich. Somit kann das System 102 bis zu 10 Knoten 603 umfassen.
- Weiter mit der Implementierung von AL 615. Das AFF 701(1) ist ein JK-Flipflop. Der J-Eingang empfängt NICHT A 605(n), wogegen der K-Eingang A 605(n) empfängt. In den AFF 701 der Knoten 603(2) bis 603(n) empfängt der J-Eingang A 605 vom vorhergehenden Knoten 603 und der K-Eingang empfängt NICHT A 605 dieses Knotens. Wenn die AFF 701 an ihren Takteingängen eine ansteigende Flanke empfangen, werden die Werte der J- und K- Eingänge in den Flipflops gespeichert. Bei der bevorzugten Ausführungsform ist das Taktsignal F(BCOM) 714£ Dieses Signal wird von Signalen auf dem MC-Bus 202 und von Bustaktsignalen auf dem SB 104 abgeleitet und zeigt an, daß ein Bauteil des Systems 102 den Bus übernommen hat. Der Eingang von NICHT A 605(n) in den J-Eingang des AFF 701(1) und von A 605(n) in den K-Eingang dieses Flipflops stellt sicher, daß exakt ein AFF 701 einen niedrigpegeligen Q-Ausgang haben wird, was angibt, daß sein Knoten 603 der Ankerknoten in der kreisförmigen Kette 601 ist, und die Benutzung von F(BCOM) 714 zum Setzen aller AFF 701 gewährleistet, daß der Anker jedesmal, wenn ein Bauteil des Systems 102 den SB 104 übernimmt, zum nächsten Knoten 603 wandert. Beim Initialisieren des Systems 102 wird ein beliebiger der Knoten 603 im System als der erste Ankerknoten gewählt, und das AFF 701 in diesem Knoten wird rückgesetzt, so daß A 605 von diesem Knoten niedrigpegelig ist. In Fig. 7 ist der Knoten 603(1) der gewählte Knoten, und NICHT RES 721(1) ermöglicht das Rücksetzen des AFF 701(1).
- Die Implementierungen von RL 621 und NGL 625 sind einfach. RL 621 besteht aus dem NRFF 703, das ein NR-Signal 619(1) empfängt und hält, welches anzeigt, daß ein vom Knoten 603(1) repräsentiertes Bauteil eine Anforderung getätigt hat. NICHT RES 721(1) ermöglicht das Rücksetzen des NRFF 703(1), wenn die Anforderung abgearbeitet worden ist. Die NGL-Logik 625 besteht aus einem AND-Glied 711(1) und einem NGFF 713(1). Das AND-Glied 711(1) fordert, daß das NRFF 703(1) eine Anforderung anzeigt, daß weder BUSY noch LOCK im Systembus 104 aktiviert sind, und daß das Ausgangssignal 707(1) anzeigt, daß der Knoten 603(1) auf den Bus zugreifen kann, entweder weil kein vorhergehender Knoten auf ihn zugreifen will oder weil der Knoten 603(1) der aktuelle Ankerknoten ist. Wenn alle diese Bedingungen erfüllt sind, wird das NGFF-Flipflop 713(1) gesetzt, NG 629(1) ist hochpegelig und in Antwort auf dieses Signal übernimmt das Bauteil, das die Anforderung gemacht hat, den SB 104.
- Die vorstehende Beschreibung hat offenbart, auf welche Weise ein Fachmann eine dynamische kreisförmige Prioritätskette aufbauen kann, in der die Priorität eines Knotens für den Zugriff auf einen Bus in einem Rechnersystem durch seine Position im Kreis in bezug auf einen aktuellen Ankerknoten festgestellt wird, und in welcher der aktuelle Ankerknoten bei jedem Zugriff auf den Bus durch ein an den Bus angeschlossenes Element wechselt. In einer solchen dynamischen kreisförmigen Prioritätskette kann kein Knoten den Bus "mit Beschlag belegen" und gleichzeitig kann jeder Knoten sofortigen Zugriff auf den Bus bekommen, wenn kein Knoten mit höherer Priorität den Zugriff anfordert. Ferner ist die Zeit zur Feststellung des Knotens, der den Zugriff bekommen wird, nicht länger als die Zeit, die ein Prioritätssignal benötigt, um eine Prioritätslogik, die mittels eines einzigen Verknüpfungsgliedes in jedem Knoten implementiert ist, zu durchlaufen.
- Fig. 8 ist ein Logikschaltplan mit der Darstellung einer Implementierung der PL 609, der AL 615, der RL 621 und der NGL 625 in den Knoten 603(1) und 603(n). Zwischen den Fig. 6 und 8 besteht die nachstehend angegebene Beziehung: Die PL 609 ist in den Knoten gemäß Fig. 8 mittels eines NOR-Gliedes 705 und eines NAND-Gliedes 709 implementiert; die AL 615 ist mittels eines Knotenanforderungs-Flipflops (NRFF) 703 implementiert, und die NGL 625 ist mittels eines AND-Gliedes 711 und, entsprechend der Erfindung, mittels eines programmierbaren Knotenbewilligungszählers (NGCNT) 720 implementiert. Die weiter oben angegebene Beschreibung der Arbeitsweise der in Fig. 7 dargestellten Knotenlogik gilt im allgemeinen auch für die in Fig. 8 dargestellte Ausführungsform und wird nicht wiederholt. Statt dessen wird nur der Teil der Logik im einzelnen beschrieben, der unterschiedlich ist.
- Die Implementierung der RL 621 und der NGL 625 ist einfach.
- Die RL 621 besteht aus dem NRFF 703, das ein NR-Signal 619(1) empfängt und hält, welches angibt, daß ein durch den Knoten 603(1) repräsentiertes Bauteil eine Anforderung gestellt hat. NICHT RES 721(1) ermöglicht das Rücksetzen des NRFF 703(1), wenn die Anforderung abgearbeitet worden ist. Die NGL-Logik 625 umfaßt das AND-Glied 711(1), den NGCNT 720(1) und einen Inverter 724(1). Das AND-Glied 711(1) fordert, daß das NRFF 703(1) eine Anforderung anzeigt, daß weder BUSY noch LOCK im Systembus 104 aktiviert sind, und daß das Ausgangssignal 707(1) angibt, daß der Knoten 603(1) auf den Bus zugreifen kann, entweder weil kein vorhergehender Knoten auf ihn zugreifen will oder weil der Knoten 603(1) der aktuelle Ankerknoten ist. Wenn alle diese Bedingungen erfüllt sind, wird ein Zähler-Freigabe-Eingang (ENA) des NGCNT 720(1) aktiviert, und während eines Buszugriffszyklus verursachtein Übergang eines Taktsignals (NEMCLK), daß der NGCNT 720(1) um eine Einheit vorwärtsschaltet.
- In Übereinstimmung mit diesem Merkmal der Erfindung schaltet der NGCNT 720(1) ferner bei jedem Zugriff auf den Bus weiter vorwärts, wobei der NGCNT 720(1) von einem anfänglich programmierten Wert vorwärtsschaltet, bis ein Zählstand 15 (F&sub1;&sub6;) erreicht ist. Zu diesem Zeitpunkt schaltet ein Endzahlausgang (TC) des NGCNT 720(1) auf hohen Pegel um, wodurch das Signal NG 629(1) generiert wird. Die Aktivierung des NG 629(1) verursacht die Generierung eines Ankerausgangssignals und seine Übertragung an einen nächsten Knoten in der Prioritätskette. Das NG 629(1) wird auch durch den Inverter 724(1) invertiert und zurückgeleitet und an einen aktiven niedrigpegeligen Ladeeingang (LD) des NGCNT 720(1) angelegt. Das an den LD-Eingang angelegte niedrigpegelige Signal bewirkt, daß der NGCNT 720(1) den auf den Leitungen 722(1) erscheinenden digitalen Wert lädt und dadurch den NGCNT 720(1) auf einen vorbestimmten Wert voreinstellt. Die Voreinstellung des NGCNT 720(1) auf einen von 15 abweichenden vorbestimmten Wert verursacht auch, daß der TC-Ausgang auf einen niedrigen Pegel schaltet, wobei es das Signal NG 629(1) aufhebt. Die Leitungen 722(1) können über manuell eingestellte Schalter, festverdrahtete Brücken oder von einem (nicht dargestellten) Zwischenspeicher oder Register angesteuert werden, wodurch der Wert bei Bedarf unter Kontrolle eines Benutzers oder eines Betriebssystems programmiert und geändert werden kann. Es leuchtet ein, daß der im Zähler NGCNT 720(1) voreingestellte Wert bestimmt, wieviele Buszugriffe dem gegenwärtig mit höchster Priorität versehenen Ankerknoten gewährt sind, bevor die höchste Priorität an einen nächsten anfordernden Knoten in der Knotenkette weitergegeben wird. Wenn beispielsweise der NGCNT 720(1) auf den Wert sieben voreingestellt ist, sind dem Knoten acht aufeinanderfolgende Buszugriffe (15-7) bewilligt, bevor die höchste Priorität auf den nächsten anfordernden Knoten übergeht. Selbstverständlich kann NGCNT 720(1) anders als ein Vier-Bit-Zähler ausgeführt werden. Wäre der NGCNT 7200(1) beispielsweise als ein Acht-Bit-Zähler ausgelegt, könnten bis zu 255 Speicherzugriffe durch den Knoten ausgeführt werden, bevor die Priorität zu einem anderen Knoten rotiert wird. Man muß sich auch im klaren darüber sein, daß der Ausgang des Zählers mit einem digitalen Wert durch eine Vergleicherschaltung verglichen werden kann, um zu bestimmen, wann die programmierte Anzahl Buszugriffe abgelaufen ist. Das heißt, es lassen sich für die Erzielung des gewünschten Ergebnisses eine Vielzahl möglicher Hardwareausführungen vorstellen.
- Die vorstehende Beschreibung hat offenbart, auf welche Weise ein Fachmann eine dynamische kreisförmige Prioritätskette aufbauen kann, in der die Priorität eines Knotens für den Zugriff auf einen Bus in einem Rechnersystem durch seine Position im Kreis in bezug auf einen aktuellen Ankerknoten festgestellt wird und in welcher der aktuelle Ankerknoten nach einer vorbestimmten Anzahl Zugriffe auf den Bus wechselt. In einer solchen dynamischen kreisförmigen Prioritätskette kann kein Knoten den Bus "mit Beschlag belegen" und gleichzeitig kann jeder Knoten sofortigen Zugriff auf den Bus bekommen, wenn kein Knoten mit höherer Priorität den Zugriff anfordert. Ferner ist die Zeit zur Feststellung des Knotens, der den
- Zugriff bekommen wird, nicht länger als die Zeit, die ein Prioritätssignal benötigt, um eine Prioritätslogik, die mittels eines einzigen Verknüpfungsgliedes in jedem Knoten implementiert ist, zu durchlaufen.
- Die vorstehende Beschreibung hat zwar die dem Erfinder derzeit bekannte beste Art der Implementierung der Erfindung offenbart, aber es sind weitere Implementierungen möglich, auch solche, bei denen für die Ankerlogik keine getrennte Leitung erforderlich ist, oder bei denen ein Zugriff auf den SB 104 durch einen Knoten dazu führt, daß der diesem Knoten nachfolgende nächste Knoten zum Ankerknoten wird.
Claims (10)
1. Vorrichtung zur Bestimmung der Priorität für den Zugang
zu einem Bus (104) für eine Reihe von an den Bus
angeschlossenen Geräten (122), von denen jedes zu Prioritätszwecken
durch einen Knoten in einer Knotengruppe dargestellt ist,
jeder Knoten an den Bus angeschlossen ist und in einer
kreisförmigen Anordnung eine Prioritätsleitung (106) von einem
ersten benachbarten Knoten bekommt und sie an einen zweiten
benachbarten Knoten weitergibt, wobei jeder Knoten eine auf
einen einzelnen Knoten mit der höchsten Priorität bezogene
Priorität besitzt,
wobei die Vorrichtung zur Prioritätsbestimmung in jedem
einzelnen Knoten umfaßt:
- eine Prioritätslogikeinrichtung (609), welche den Zugang
zum Bus durch ein dargestelltes Gerät ermöglicht, wenn kein
anderes Gerät mit höherer Priorität Zugang angefordert hat,
wobei das Gerät mit höherer Priorität durch einen Knoten
dargestellt ist, der durch seine reale Position an der
Prioritätsleitung, bezogen auf den Knoten mit de höchsten
Priorität, eine höhere Priorität erhält, und
- eine auf den Bus ansprechende Einrichtung (615) zur
Festlegung des Knotens mit höchster Priorität zur Festlegung,
ob der bestimmte Knoten gegenwärtig der Knoten mit höchster
Priorität ist, und, wenn der bestimmte Knoten gegenwärtig der
Knoten mit höchster Priorität ist, zur dynamischen Übergabe
der höchsten Priorität an einen anderen der Knoten, wenn der
bestimmte Knoten eine vorbestimmte Anzahl Zugänge zum Bus
ausgeführt hat.
2. Vorrichtung nach Anspruch 1, bei der
- die Priorität eines Knotens nach der Position des
Knotens in der kreisförmigen Anordnung, bezogen auf den Knoten
mit der höchsten Priorität, festgelegt wird, und
- die Einrichtung zur Festlegung des Knotens mit höchster
Priorität die höchste Priorität an einen in der kreisförmigen
Anordnung benachbarten Knoten vergibt.
3. Vorrichtung nach Anspruch 2, bei der
der Knoten die niedrigste Priorität hat, nachdem die
Einrichtung zur Festlegung des Knotens mit höchster Priorität die
höchste Priorität an den im Kreis benachbarten Knoten
vergibt.
4. Vorrichtung nach Anspruch 2, bei der
ein im Kreis dem Knoten mit höchster Priorität benachbarter
Knoten die nächsthöhere Priorität besitzt.
5. Vorrichtung nach Anspruch 2, bei der
die Einrichtung zur Festlegung des Knotens mit höchster
Priorität die höchste Priorität an den im Kreis benachbarten
Knoten bei nächsten Zugang eines Knotens zum Bus vergibt.
6. Vorrichtung nach Anspruch 1, bei der
die Einrichtung zur Festlegung des Knotens mit höchster
Priorität eine Zähleinrichtung zum Zählen einer Anzahl Zugänge
zum Bus durch den bestimmten Knoten und zum Anzeigen, wenn
eine Anzahl Zugänge die vorbestimmte Anzahl Zugänge erreicht
hat, umfaßt.
7. Vorrichtung nach Anspruch 6, bei der
die Zähleinrichtung eine Einrichtung zum programmierbaren
Ändern der vorbestimmten Anzahl umfaßt.
8. Vorrichtung nach Anspruch 1, bei der
die Priorität des bestimmten Knotens durch eine Anzahl Knoten
zwischen dem bestimmten Knoten und dem Knoten mit höchster
Priorität in einer vorgewählten Richtung um die kreisförmige
Anordnung bestimmt wird, wobei die Priorität mit zunehmender
Anzahl Knoten abnimmt.
9. Vorrichtung nach Anspruch 2, bei der
die Prioritätslogikeinrichtung in jedem Knoten mit der
Einrichtung zur Festlegung des Knotens mit höchster Priorität
und mit der Prioritätsleitung verbunden ist, derart, daß sie
über die Prioritätsleitung einen Anforderungswert von der
Prioritätslogikeinrichtung des in einer vorbestimmten
Richtung um den Kreis unmittelbar vorangehenden Knotens empfängt,
wobei der Anf orderungswert wahlweise ein erster
Anforderungswert ist, der angibt, daß, ab dem Knoten mit höchster
Priorität gerechnet, ein vorangehender Knoten Zugang zum Bus
angefordert hat, oder ein zweiter Anforderungswert, der angibt,
daß kein vorangehender Knoten Zugang angefordert hat.
10. Vorrichtung nach Anspruch 9, bei der
- die Prioritätslogikeinrichtung in jedem Knoten ferner
über die Prioritätsleitung wahlweise den ersten oder den
zweiten Anforderungswert an die Prioritätslogikeinrichtung
des unmittelbar nachfolgenden Knotens weitergibt, und
- von der Einrichtung zur Festlegung des Knotens mit
höchster Priorität einen aktuellen Prioritätswert empfängt, der
wahlweise ein erster Prioritätswert ist, der angibt, daß der
Knoten die höchste Priorität besitzt, oder ein zweiter
Prioritätswert, der angibt, daß der Knoten die höchste Priorität
nicht besitzt.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/317,100 US4926419A (en) | 1985-03-15 | 1989-02-28 | Priority apparatus |
US07/405,792 US5077733A (en) | 1989-02-28 | 1989-09-11 | Priority apparatus having programmable node dwell time |
PCT/US1990/000066 WO1990010909A2 (en) | 1989-02-28 | 1990-01-03 | Priority apparatus having programmable node dwell time |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69026367D1 DE69026367D1 (de) | 1996-05-09 |
DE69026367T2 true DE69026367T2 (de) | 1996-11-28 |
Family
ID=26980776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69026367T Expired - Lifetime DE69026367T2 (de) | 1989-02-28 | 1990-01-03 | Prioritätsvorrichtung mit programmierbarer knotenverweilzeit |
Country Status (6)
Country | Link |
---|---|
US (1) | US5077733A (de) |
EP (1) | EP0438538B1 (de) |
AU (1) | AU642405B2 (de) |
CA (1) | CA2008753C (de) |
DE (1) | DE69026367T2 (de) |
WO (1) | WO1990010909A2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2904297B2 (ja) * | 1990-03-30 | 1999-06-14 | マツダ株式会社 | 車両用多重伝送装置 |
US5369748A (en) * | 1991-08-23 | 1994-11-29 | Nexgen Microsystems | Bus arbitration in a dual-bus architecture where one bus has relatively high latency |
US5522080A (en) * | 1991-10-24 | 1996-05-28 | Intel Corporation | Centralized control SIMD processor having different priority levels set for each data transfer request type and successively repeating the servicing of data transfer request in a predetermined order |
US5471461A (en) * | 1993-04-28 | 1995-11-28 | Allen-Bradley Company, Inc. | Digital communication network with a moderator station election process |
US5495589A (en) * | 1993-12-23 | 1996-02-27 | Unisys Corporation | Architecture for smart control of bi-directional transfer of data |
US5566177A (en) * | 1994-10-09 | 1996-10-15 | International Business Machines Corporation | Priority-based arbitrator on a token-based communication medium |
KR100311519B1 (ko) * | 1999-01-29 | 2001-11-02 | 서평원 | 시스템 클럭을 이용한 회전 순위 시스템 |
US6701404B1 (en) * | 2000-05-05 | 2004-03-02 | Storage Technology Corporation | Method and system for transferring variable sized loop words between elements connected within serial loop through serial interconnect |
US6727533B2 (en) * | 2000-11-29 | 2004-04-27 | Fujitsu Limited | Semiconductor apparatus having a large-size bus connection |
KR100803114B1 (ko) * | 2000-11-30 | 2008-02-14 | 엘지전자 주식회사 | 메모리 중재 방법 및 시스템 |
JP4182246B2 (ja) * | 2002-11-27 | 2008-11-19 | 富士通マイクロエレクトロニクス株式会社 | バス共有システム及びバス共有方法 |
KR100679858B1 (ko) * | 2004-11-25 | 2007-02-07 | 한국전자통신연구원 | 동적 우선순위에 기반한 메시지 전달 장치 및 그를 이용한우선순위 조정 장치와 동적 우선순위 메시지 처리 방법 |
CA2662032C (en) * | 2006-09-01 | 2016-05-17 | Vestas Wind Systems A/S | A priority system for communication in a system of at least two distributed wind turbines |
MX2009001796A (es) * | 2006-09-01 | 2009-04-06 | Vestas Wind Sys As | Sistema y metodo para controlar una turbina eolica en una central de energia eólica. |
US8856390B1 (en) | 2008-03-28 | 2014-10-07 | Western Digital Technologies, Inc. | Using device control field to implement non-disruptive notification of an ATA device |
US7827320B1 (en) | 2008-03-28 | 2010-11-02 | Western Digital Technologies, Inc. | Serial ATA device implementing intra-command processing by detecting XRDY primitive while in the XRDY state |
JP2010140440A (ja) * | 2008-12-15 | 2010-06-24 | Toshiba Corp | バス調停装置 |
US9645752B1 (en) | 2014-04-07 | 2017-05-09 | Western Digital Technologies, Inc. | Identification of data committed to non-volatile memory by use of notification commands |
US9632711B1 (en) | 2014-04-07 | 2017-04-25 | Western Digital Technologies, Inc. | Processing flush requests by utilizing storage system write notifications |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4320502A (en) * | 1978-02-22 | 1982-03-16 | International Business Machines Corp. | Distributed priority resolution system |
US4336480A (en) * | 1979-03-24 | 1982-06-22 | Mitsubishi Denki Kabushiki Kaisha | Cathode ray tube |
US4232294A (en) * | 1979-04-30 | 1980-11-04 | Control Data Corporation | Method and apparatus for rotating priorities between stations sharing a communication channel |
US4814974A (en) * | 1982-07-02 | 1989-03-21 | American Telephone And Telegraph Company, At&T Bell Laboratories | Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements |
US4559595A (en) * | 1982-12-27 | 1985-12-17 | Honeywell Information Systems Inc. | Distributed priority network logic for allowing a low priority unit to reside in a high priority position |
US4583089A (en) * | 1983-04-19 | 1986-04-15 | Foster Wheeler Energy Corporation | Distributed computer control system with variable monitor timers |
US4626843A (en) * | 1983-09-27 | 1986-12-02 | Trw Inc. | Multi-master communication bus system with parallel bus request arbitration |
US4926419A (en) * | 1985-03-15 | 1990-05-15 | Wang Laboratories, Inc. | Priority apparatus |
US4719622A (en) * | 1985-03-15 | 1988-01-12 | Wang Laboratories, Inc. | System bus means for inter-processor communication |
US4663756A (en) * | 1985-08-29 | 1987-05-05 | Sperry Corporation | Multiple-use priority network |
US4763122A (en) * | 1987-03-18 | 1988-08-09 | International Business Machines Corporation | Parallel switching with round robin priority |
-
1989
- 1989-09-11 US US07/405,792 patent/US5077733A/en not_active Expired - Lifetime
-
1990
- 1990-01-03 DE DE69026367T patent/DE69026367T2/de not_active Expired - Lifetime
- 1990-01-03 EP EP90903078A patent/EP0438538B1/de not_active Expired - Lifetime
- 1990-01-03 AU AU50887/90A patent/AU642405B2/en not_active Expired
- 1990-01-03 WO PCT/US1990/000066 patent/WO1990010909A2/en active IP Right Grant
- 1990-01-29 CA CA002008753A patent/CA2008753C/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69026367D1 (de) | 1996-05-09 |
WO1990010909A3 (en) | 1990-10-18 |
EP0438538A1 (de) | 1991-07-31 |
EP0438538B1 (de) | 1996-04-03 |
US5077733A (en) | 1991-12-31 |
AU642405B2 (en) | 1993-10-21 |
CA2008753A1 (en) | 1990-08-31 |
WO1990010909A2 (en) | 1990-09-20 |
EP0438538A4 (en) | 1992-09-16 |
AU5088790A (en) | 1990-10-09 |
CA2008753C (en) | 1998-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69026367T2 (de) | Prioritätsvorrichtung mit programmierbarer knotenverweilzeit | |
DE3689198T2 (de) | Systembus für Kommunikation zwischen Prozessoren. | |
DE68928772T2 (de) | Datenverarbeitungssystem mit sich um Zugriff auf verteilte Betriebsmittel bewerbenden Einheiten und mit auf den Status der verteilten Betriebsmittel reagierender Schiedsrichtereinheit | |
DE2522748C2 (de) | Peripheriekopplungsadapter zur Steuerung der Informationsübertragung zwischen einer Datensammelleitung eines Zentralprozessors und daran angeschlossenen peripheren Einheiten | |
DE3909948C2 (de) | ||
DE69632369T2 (de) | HDLC-Anordnung mit verteiltem internen Bus | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE3650036T2 (de) | Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung. | |
DE2854485C2 (de) | Datenverarbeitungsanlage | |
DE69413740T2 (de) | Arbitrierungsverfahren zur Datenflusssteuerung durch ein E/A-Steuergerät | |
DE19723065B4 (de) | Halbleitereinrichtung und Computersystem | |
DE3851534T2 (de) | Vorrichtung und verfahren zur buszugriffssteuerung. | |
DE3882977T2 (de) | Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. | |
DE3688763T2 (de) | Mehrfachport-Übertragungsadaptiervorrichtung. | |
DE69429279T2 (de) | Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern | |
DE69632634T2 (de) | Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit | |
DE3882989T2 (de) | Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem. | |
DE69128815T2 (de) | Warteschlangen für gegenseitige Verriegelung | |
DE19580707C2 (de) | PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus | |
DE3887886T2 (de) | Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem. | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE2856483C2 (de) | ||
DE69228582T2 (de) | Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem | |
DE3882988T2 (de) | Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen. | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: WANG LABORATORIES, INC., BILLERICA, MASS., US |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: LG SEMICON CO., LTD., CHEONGJU, KR |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: LG ELECTRONICS INC., SEOUL/SOUL, KR |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: COHAUSZ & FLORACK, 40472 DUESSELDORF |