DE3850387T2 - Vorrichtung und verfahren zum zugriff eines knotens auf einen bus. - Google Patents

Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.

Info

Publication number
DE3850387T2
DE3850387T2 DE3850387T DE3850387T DE3850387T2 DE 3850387 T2 DE3850387 T2 DE 3850387T2 DE 3850387 T DE3850387 T DE 3850387T DE 3850387 T DE3850387 T DE 3850387T DE 3850387 T2 DE3850387 T2 DE 3850387T2
Authority
DE
Germany
Prior art keywords
bus
node
request
cycle
commander
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3850387T
Other languages
English (en)
Other versions
DE3850387D1 (de
Inventor
Darrel Donaldson
Richard Gillett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE3850387D1 publication Critical patent/DE3850387D1/de
Application granted granted Critical
Publication of DE3850387T2 publication Critical patent/DE3850387T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

    GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Verfahren und eine Struktur zum Entscheiden über einen Zugriff auf einen Bus in einem Computersystem.
  • HINTERGRUND DER ERFINDUNG
  • Ein Computersystem kann eine Anzahl einzelner Betriebsmittel, wie beispielsweise Prozessoren, Speicher und I/O-Vorrichtungen zum Durchführen verschiedener Aufgaben enthalten. Während des Betriebs des Computersystems ist es oft notwendig, daß Befehle und/oder Daten zwischen unterschiedlichen Betriebsmitteln in dem Computersystem transferiert werden. Typischerweise ist ein Systembus zum Transferieren von Nachrichten zwischen einer Anzahl von Betriebsmitteln oder Knoten in einem Netzwerk mit vielen Knoten vorgesehen.
  • Zum effektiven Benutzen eines gemeinsamen Systembusses zum Transfer von Nachrichten zwischen Betriebsmitteln muß ein Zugriff auf den Bus durch jedes der Betriebsmittel sorgfältig gesteuert werden. Insbesondere kann nur ein einziges Betriebsmittel versuchen, Nachrichten zu einem bestimmten Zeitpunkt auf den Systembus zu transferieren. Beispielsweise kann ein Betriebsmittel bereit sein, einen Lesebefehl während eines bestimmten Buszyklus auszusenden, während zur gleichen Zeit ein weiteres Betriebsmittel bereit ist, für mehrere Buszyklen einen Zugriff zu erhalten, um einen Schreibbefehl und Schreibdaten zu senden.
  • Daher muß in jedem Computersystem, das eine Anzahl von Knoten enthält, die mit einem gemeinsamen Bus gekoppelt sind, eine Art "Arbitration" oder Entscheidung durchgeführt werden, um zu bestimmen, welcher Knoten einen Zugriff auf den Bus erhält. Ein zentraler Zuteiler kann mit jedem der Bussystem-Betriebsmittel gekoppelt sein und kann bestimmen, welchem Betriebsmittel während irgendeinem gegebenen Buszyklus ein Zugriff auf den Bus erteilt wird. Ein derartiger zentraler Zuteiler empfängt einzelne Busanfragen von jedem der Betriebsmittel zu Zeiten, zu denen jenes Betriebsmittel bereit ist, einen Zugriff auf den Bus zu erhalten, um eine Nachricht zu einem anderen Betriebsmittel zu senden. In Antwort auf eine Anzahl von Busanfragen sendet der zentrale Zuteiler eine Buszuordnung auf eine vorbestimmte Weise entsprechend einer Priorität, die jeder Anfrage zugeordnet ist, zu nur einem der anfragenden Knoten.
  • Das Verwenden von Busanfragesignalen resultiert in einer effizienterren Verwendung des Busses und der System-Betriebsmittel. Ein Buszugriff wird einem Knoten nur zugeteilt, wenn jenes Betriebsmittel gerade eine Operation durchführt, die ein Senden einer Nachricht auf den Bus durch jenes Betriebsmittel erfordert.
  • Unglücklicherweise können bestimmte Transferarten von einem Betriebsmittel zu einem Bus nicht innerhalb eines einzigen Buszyklus beendet werden. Beispielsweise erfordern Schreibtransfers, daß dem Betriebsmittel für mehr als einen Buszyklus ein Zugriff gegeben wird. Die während des ersten Buszyklus (Befehlszyklus) des Schreibtransfers auf den Bus transferierte Nachricht wird ein Schreibbefehl sein. Während des nächsten darauffolgenden Buszyklus werden Schreibdaten auf den Bus transferiert werden.
  • Zum Unterbringen derartiger Mehrfachzyklus-Transfers kann ein Arbitrationsverfahren benutzt werden, bei dem ein Betriebsmittel, das eine Mehrfachzyklus-Transferoperation durchführt, ein aktiviertes Erweiterungs-Buszyklus-Signal zu dem zentralen Zuteiler senden muß. Der zentrale Zuteiler würde dann bestimmen, ob er ein aktiviertes Erweiterungs-Buszyklus-Signal vor Erzeugen einer Buszuteilung für einen ausgewählten Knoten empfangen hat. Bei diesen Systemen wird eine Ausgabe der Buszuteilung verzögert, während der zentrale Zuteiler das aktivierte Erweiterungs-Buszyklus-Signal verarbeitet. Wenn ein Erweiterungs-Buszyklus-Signal aktiviert wird, sendet der zentrale Zuteiler die Buszuteilung zu demselben Betriebsmittel, das während des vorangehenden Buszyklus einen Zugriff auf den Bus hatte.
  • Es gibt einen großen Nachteil bei Systemen, die ein derartiges Arbitrationsverfahren verwenden. Betriebsmittel in dem Computersystem erhalten einen Zugriff auf den Bus einzig auf der Grundlage des Vorhandenseins einer Buszuteilung von dem zentralen Zuteiler. Daher hängt die Leistungsfähigkeit des Systems und die effektive Verwendung des gemeinsamen Busses von der Geschwindigkeit ab, mit der die Buszuteilung zu einem ausgewählten Betriebsmittel gesendet wird. Dieses Arbitrationsverfahren erfordert jedoch eine relativ lange Buszyklus- Zeit, weil der Zuteiler auf den Empfang des Erweiterungs-Buszyklus- Signals warten muß, bevor er eine neue Zuteilung erzeugt. Für Systeme, die ein einziges OR-verdrahtetes Erweiterungs-Buszyklus-Signal verwenden, würde dies die Verfügbarkeit der Zuteilung verzögern.
  • Es wäre jedoch unerwünscht, dieses Problem durch Hinzufügen zusätzlicher Erweiterungs-Buszyklus-Leitungen von den Betriebsmitteln zu dem zentralen Zuteiler zum Erhöhen der Geschwindigkeit zu lösen, bei der der Zuteiler bestimmen kann, ob der vorherige Benutzer des Busses die Benutzereigenschaft für den nächsten Zyklus beibehalten sollte. Eine derartige Lösung würde das Hinzufügen mehrerer Anschlußstifte an der Rückseite erfordern, um eine weitere Verbindung von jedem Betriebsmittel zu dem Zuteiler zuzuführen, und es kann sein, daß solche Anschlußstifte nicht verfügbar sind.
  • In IBM Technical Disclosure Bulletin, Bd. 28, Nr. 12, Mai 1986, Seiten 5329-5333 ist ein Busarbitrationssystem für eine Anzahl von Betriebsmitteln offenbart, die um einen Zugriff auf einen Bus für Nachrichtentransfers zwischen ihnen wetteifern, wobei das System ein Gerät zum Erweitern des Zugriffs auf den Bus enthält, der einem Betriebsmittel zugeteilt ist, wenn der Nachrichtentransfer weitere Buszyklen erfordert, um die Nachricht zu transferieren. Das System ist jedoch nicht geeignet, in Verbindung mit den besonderen Erfordernissen eines noch hängenden Busses zu arbeiten.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine System-Buszyklus-Zeit durch Reduzieren der Arbitrationszeit zu reduzieren, um dadurch die Leistungsfähigkeit des Systems zu verbessern.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist es, diese reduzierte Arbitrationszeit mit nur einer Erweiterungs-Buszyklus-Leitung an der Rückseite zu schaffen.
  • Es ist noch eine Aufgabe der Erfindung, zwischen Busanfragen von mehreren Betriebsmitteln zu entscheiden und den zentralen Zuteiler konditionell anzeigen zu lassen, welches Betriebsmittel ausgewählt worden ist, ohne daß die Auswahl durch den Zuteiler verzögert wird, um zusätzliche Signale von Betriebsmitteln zu verarbeiten, die um einen Zugriff auf den Bus konkurrieren.
  • Zusätzliche Gegenstände und Vorteile der Erfindung werden teilweise in der folgenden Beschreibung gezeigt werden und werden teilweise aus der Beschreibung klar werden, oder sie können durch eine Ausführung der Erfindung gelernt werden. Die Gegenstände und Vorteile der Erfindung können mittels der Instrumentarien und Kombinationen realisiert und erreicht werden, die insbesondere in den angehängten Ansprüchen aufgezeigt sind.
  • ZUSAMMFASSUNG DER ERFINDUNG
  • Zum Lösen der Aufgaben und gemäß den Zwecken der Erfindung, wie sie hier gezeigt und ausführlich beschrieben ist, ist ein Knoten vorgesehen, der mit einem Bus gekoppelt ist, der auch mit einer Vielzahl anderer Knoten gekoppelt ist, und der erlaubt, daß Nachrichten während eines oder mehrerer Buszyklen transferiert werden, wobei der Knoten folgendes aufweist: eine Busanfrageeinrichtung zum Erzeugen einer Busanfrage zu Zeiten, zu denen eine Nachricht von dem Knoten auf den Bus zu transferieren ist; eine Erweiterungsanfrageeinrichtung zum Erzeugen einer Erweiterungsanfrage für den Knoten, wenn mehr als ein Buszyklus zum Transferieren einer Nachricht erforderlich ist, und zum Beibehalten der Erweiterungsanfrage während nachfolgender Buszyklen; eine Erweiterungs-Zykluseinrichtung, die mit der Erweiterungsanfrageeinrichtung gekoppelt ist, zum Aktivieren eines Erweiterungs-Buszyklus-Signals für den Knoten während eines Anfangszugriffszyklus, wenn der Knoten ein Sender wird, und zum Beibehalten der Aktivierung während nachfolgender Buszyklen, wenn der Knoten der Sender ist, wobei die Aktivierung und das Beibehalten des Erweiterungs-Buszyklus-Signals zu Zeiten auftreten, wenn die Erweiterungsanfrage für den Knoten vorhanden ist; und eine Buszugriffseinrichtung, die mit der Erweiterungs-Zykluseinrichtung verbunden ist und auf eine konditionelle Buszuteilung antwortet, die in Antwort auf die Busanfrage erhalten wird, zum Erzeugen eines Systembustreiber- Freigabesignalpegels in dem Knoten, wenn kein von den anderen Knoten empfangenes Erweiterungs-Buszyklus-Signal aktiviert ist, und zum Beibehalten des Systembustreiber-Freigabesignals, während das Erweiterungs-Buszyklus-Signal für den Knoten aktiviert ist.
  • Die beigefügten Zeichnungen, die in dieser Beschreibung enthalten sind und einen Teil davon bilden, stellen ein Ausführungsbeispiel der Erfindung dar und dienen zusammen mit der Beschreibung zum Erklären der Prinzipien der Erfindung.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockschaltbild eines Datenverarbeitungssystems, bei dem die vorliegende Erfindung eingesetzt ist;
  • Fig. 2 ist ein Blockschaltbild eines Knotens in dem Datenverarbeitungssystem der Fig. 1;
  • Fig. 3 ist ein Zeitdiagramm, das Zeitsignale zeigt, die in dem Datenverarbeitungssystem der Fig. 1 verwendet werden;
  • Fig. 4 ist ein Blockschaltbild der Datenschnittstelle in dem Knoten der Fig. 2;
  • Fig. 5 ist ein Blockschaltbild des Zuteilers in dem Datenverarbeitungssystem der Fig. l;
  • Fig. 6 ist ein Blockschaltbild von Teilen des Datenverarbeitungssystems in Fig. 1, das die Entscheidungs- bzw. Arbitrationssignale zeigt;
  • Fig. 7 ist ein schematisches Schaltbild eines Erweiterungs-Zyklus- Schaltkreises in den Systemteilen in Fig. 6;
  • Fig. 8 ist ein schematisches Schaltbild eines Freigabeschaltkreises in den Systemteilen in Fig. 6;
  • Fig. 9 ist ein Blockschaltbild des in den Fig. 5 und 6 gezeigten zentralen Zuteilers; und
  • Fig. 10 ist ein Zeitdiagramm, das Busanfrage-, bedingte Buszuteilungs-, Systembustreiber-Freigabe-, Erweiterungsanfrage- und Erweiterungs-Buszyklus-Signale zeigt, die während des Betriebs des Datenverarbeitungssystems der Fig. 1 aktiviert werden.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Nun wird im einzelnen auf ein bevorzugtes Ausführungsbeispiel der Erfindung Bezug genommen, wovon ein Beispiel in den beigefügten Zeichnungen dargestellt ist.
  • A. Systemübersicht
  • Fig. 1 zeigt ein Beispiel eines Datenverarbeitungssystems 20, das die vorliegende Erfindung verkörpert. Das Kernstück des Systems 20 ist ein Systembus 25, der ein synchroner Bus ist, der eine Kommunikation zwischen mehreren Prozessoren, Speicheruntersystemen und I/O-Systemen zuläßt. Kommunikationen über den Systembus 25 erfolgen unter Verwendung periodischer Buszyklen synchron. Eine typische Buszykluszeit für den Systembus 25 beträgt 64 nsek.
  • In Fig. 1 ist der Systembus 25 mit zwei Prozessoren 31 und 35, einem Speicher 39, einer I/O-Schnittstelle 41 und einer I/O-Einheit 51 gekoppelt. Eine I/O-Einheit 53 ist mit dem Systembus 25 über einen I/O-Bus 45 und eine I/O-Einheiten-Schnittstelle 41 gekoppelt.
  • Bei dem bevorzugten Ausführungsbeispiel des Datenverarbeitungssystems 20 ist auch ein zentraler Zuteiler 28 mit dem Systembus 25 verbunden. Der Zuteiler 28 liefert bestimmte Zeit- und Busarbitrationssignale direkt zu den anderen Vorrichtungen an den Systembus 25 und teilt einige Signale mit jenen Vorrichtungen.
  • Die Implementierung, die in Fig. 1 gezeigt ist, ist eine, die gegenwärtig bevorzugt ist, und sollte nicht notwendigerweise als Beschränkung der vorliegenden Erfindung interpretiert werden. Beispielsweise könnte die I/O-Einheit 53 direkt mit dem Systembus 25 gekoppelt sein, und der Zuteiler 28 müßte nicht auf die Weise arbeiten, die bei der vorliegenden Erfindung beschrieben ist.
  • Bezüglich der zum Beschreiben der vorliegenden Erfindung verwendeten Nomenklatur sind die Prozessoren 31 und 35, der Speicher 39 und die I/O-Schnittstelle 41 und die I/O-Vorrichtung 51 alle sogenannte Knoten. Ein "Knoten" ist als eine Hardware-Vorrichtung definiert, die mit dem Systembus 25 verbunden ist. Ein typischer Knoten 60 ist genauer in Fig. 2 gezeigt.
  • Gemäß der zum Beschreiben der vorliegenden Erfindung benutzten Nomenklatur werden die Ausdrücke "Signale" oder "Leitungen" größtenteils austauschbar verwendet, um die Namen der physikalischen Leitungsdrähte zu bezeichnen. Die Ausdrücke "Daten" oder "Pegel" werden hauptsächlich verwendet, um die Werte zu bezeichnen, die Signale oder Leitungen annehmen können.
  • Die Knoten führen Transfers zu anderen Knoten über den Systembus 25 durch. Ein "Transfer" ist ein Zyklus oder mehrere aufeinanderfolgende Zyklen, der einen gemeinsamen Sender und eine gemeinsame Entscheidung bzw. Arbitration teilen. Beispielsweise erfordert eine Leseoperation, die von einem Knoten initiiert wird, um eine Information von einem anderen Knoten an dem Systembus 25 zu erhalten, einen Befehlstransfer von dem ersten zu dem zweiten Knoten, wobei dem Transfer einige Zeit später ein oder mehrere Zurücksende-Datentransfers von dem zweiten Knoten zu dem ersten Knoten folgen.
  • Eine "Transaktion" ist als die vollständige logische Aufgabe definiert, die auf dem Systembus 25 durchgeführt wird, und kann mehr als einen Transfer enthalten. Beispielsweise ist eine Leseoperation, die aus einem Befehlstransfer besteht, dem später ein oder mehrere Zurücksende-Datentransfers folgen, eine Transaktion. Bei dem bevorzugten Ausführungsbeispiel des Systembusses 25 unterstützen die zulässigen Transaktionen den Transfer unterschiedlicher Datenlängen und enthalten Lese-, (maskierte) Schreib-, Verriegelungslese-/ Entriegelungsschreib- und Unterbrechungsoperationen. Der Unterschied zwischen einem Verriegelungslesen und einem regulären oder Nicht-Verriegelungslesen besteht darin, daß ein Verriegelungslesen Information an einer bestimmten Stelle wieder hervorholt, die an jener Stelle gespeichert ist, und einen Zugriff auf die gespeicherte Information durch nachfolgende Verriegelungslesebefehle beschränkt. Eine Zugriffsbeschränkung wird durch Setzen eines Verriegelungsmechanismus durchgeführt. Ein nachfolgender Entriegelungsschreibbefehl speichert Information an der bestimmten Stelle und stellt einen Zugriff zu der gespeicherten Information durch Rücksetzen des Verriegelungsmechanismus an jener Stelle wieder her. Somit sind die Verriegelungslese-/Entriegelungsschreib-Operationen eine Art Lesen-Andern-Schreiben-Operationen.
  • Da der Systembus 25 ein "noch hängender" Bus ist, fördert er eine effiziente Verwendung der Bus-Hilfsmittel durch Zulassen, daß andere Knoten Buszyklen benutzen, die andererseits durch Warten auf Antworten verschwendet worden wären. In einem noch hängenden Bus können, nachdem ein Knoten eine Transaktion begonnen hat, andere Knoten einen Zugriff auf den Bus haben, bevor jene Transaktion beendet ist. Somit hält der Knoten, der jene Transaktion beginnt, den Bus nicht für die gesamte Transaktionszeit auf. Dies ist ein Gegensatz zu einem nicht hängenden Bus, bei dem der Bus für eine gesamte Transaktion aufgehalten wird. Beispielsweise ist es bei dem Systembus 25 möglich, daß, nachdem ein Knoten eine Lesetransaktion beginnt und einen Befehlstransfer durchführt, der Knoten, zu dem jener Befehlstransfer gerichtet ist, die angefragten Daten nicht sofort zurücksendet. Dann wären Zyklen auf dem Bus 25 zwischen dem Befehlstransfer und dem Zurücksende-Datentransfer der Lesetransaktion verfügbar. Der Systembus 25 erlaubt anderen Knoten, jene Zyklen zu verwenden.
  • Beim Verwenden des Systembusses 25 kann jeder der Knoten unterschiedliche Rollen annehmen, um den Informationstransfer zu bewirken. Eine jener Rollen ist ein "Commander", der als ein Knoten definiert ist, der eine Transaktion begonnen hat, die laufend fortgeführt wird.
  • Beispielsweise ist der Commander bei einer Schreib- oder Leseoperation der Knoten, der die Schreib- oder Leseoperation anfragte; er ist nicht notwendigerweise der Knoten, der die Daten sendet oder empfängt. Bei dem bevorzugten Protokoll für den Systembus 25 bleibt ein Knoten während einer gesamten Transaktion der Commander, obwohl auch ein anderer Knoten während bestimmter Zyklen der Transaktion Besitz über den Systembus 25 erlangen kann. Beispielsweise wird, obwohl ein Knoten während des Transfers von Daten in Antwort auf den Befehlstransfer einer Lesetransaktion die Kontrolle über den Systembus 25 hat, wird jener eine Knoten nicht der Commander des Busses 25. Statt dessen wird dieser Knoten "Responder" genannt.
  • Ein Responder antwortet dem Commander. Wenn beispielsweise ein Commander eine Schreiboperation zum Schreiben von Daten von einem Knoten A zu einem Knoten B initiieren würde, wäre der Knoten B der Responder. Zusätzlich kann ein Knoten bei dem Datenverarbeitungssystem 20 gleichzeitig ein Commander und ein Responder sein.
  • Sender und Empfänger sind Rollen, die die Knoten bei einem einzelnen Transfer annehmen. Ein "Sender" ist als ein Knoten definiert, der die Quelle von Information ist, die während eines Transfers auf dem Systembus 25 angeordnet ist. Ein "Empfänger" ist das Gegenteil des Senders und ist als der Knoten definiert, der die Information empfängt, die während eines Transfers auf dem Systembus 25 angeordnet ist. Während einer Lesetransaktion kann ein Commander beispielsweise während des Befehlstransfers zuerst ein Sender und dann, während des Zurücksende -Datentransfers, ein Empfänger sein.
  • Wenn ein Knoten, der mit dem Systembus 25 verbunden ist, ein Sender an dem Systembus 25 werden möchte, aktiviert jener Knoten eine der zwei angefragten Leitungen CMD REQ (Commander-Anfrage) und RES REQ (Responder-Anfrage), die zwischen dem zentralen Zuteiler 28 und jenem bestimmten Knoten angeschlossen sind. Die Leitungen CMD REQ und RES REQ sind allgemein in Fig. 1 gezeigt. Im allgemeinen verwendet ein Knoten seine Leitung CMD REQ zum Anfragen, ein Commander zu werden, und beginnt Transaktionen auf dem Systembus 25, und ein Knoten verwendet seine Leitung RES REQ, um ein Responder zu werden, um Daten oder eine Nachricht zu einem Commander zurückzusenden. Im allgemeinen erfaßt der zentrale Zuteiler 28, welche Knoten auf den Bus zugreifen möchten (d. h. welche Anfrageleitungen bestimmt werden). Dann antwortet der Zuteiler auf eine der bestimmten Anfrageleitungen, um dem entsprechenden Knoten einen Zugriff auf den Bus 25 gemäß einem Prioritätsalgorithmus zuzuteilen. Bei dem bevorzugten Ausführungsbeispiel behält der Zuteiler 28 zwei unabhängige, ringförmige Warteschlangen bei: eine für die Commander-Anfragen und eine für die Responder-Anfragen. Vorzugsweise haben die Responder-Anfragen eine höhere Priorität als die Commander-Anfragen und werden vor den Commander-Anfragen behandelt.
  • Die Commander-Anfrageleitungen und die Responder-Anfrageleitungen werden als Arbitrationssignale betrachtet. Wie es genauer in der Beschreibung der Fig. 6 erklärt wird, enthalten die Arbitrationssignale auch bedingte Punkt-zu-Punkt-Zuteilungssignale von dem zentralen Zuteiler 28 zu jedem Knoten, Systembus-Erweiterungssignale zum Implementieren von Mehrfach-Buszyklus -Transfers und Systembus -Unterdrückungssignale zum Steuern des Anfangs neuer Bustransaktionen, wenn sich beispielsweise ein Knoten, wie beispielsweise ein Speicher, zeitweilig nicht mit dem Verkehr auf dem Systembus aufhalten kann.
  • Andere Arten von Signalen, die den Systembus 25 bilden können, sind Informationstransfersignale, Antwortsignale, Steuersignale, Konsolen-/Frontplattensignale und einige gemischte Signale. Die Informationstransfersignale enthalten Datensignale, Funktionssignale, die die Funktion darstellen, die während eines laufenden Zyklus gerade auf dem Systembus 25 durchgeführt wird, Identifikationssignale, die den Commander identifizieren, und Paritätssignale. Die Antwortsignale enthalten im allgemeinen Rückmelde- oder Bestätigungssignale von einem Empfänger zum Benachrichtigen des Senders über den Zustand des Datentransfers.
  • Die Steuersignale enthalten Taktsignale, Warnsignale, wie beispielsweise jene, die niedrige Leitungsspannungen oder niedrige Gleichspannungen identifizieren, Rücksetzsignale, die während einer Initialisierung benutzt werden, Knotenausfallsignale, Standardsignale, die während unbesetzter Buszyklen benutzt werden, und Fehler-Standardsignale. Die Konsolen-/Frontplattensignale enthalten Signale zum Senden und Empfangen serieller Daten zu einer Systemkonsole, Bootsignale zum Steuern des Verhaltens eines Boot-Prozessors während eines Einschaltens, Signale zum Zulassen einer Abänderung des löschbaren PROMs der Prozessoren 31, 35 auf dem Systembus 25, ein Signal zum Steuern eines RUN LICHT an der Frontplatte, und Signale, die Batterieleistung zu einer Taktlogik an bestimmten Knoten liefern. Die gemischten Signale enthalten, zusätzlich zu Reserve-Signalen, Identifizierungssignale, die zulassen, daß jeder Knoten seinen Identifikationscode definiert.
  • Fig. 2 zeigt ein Beispiel eines Knotens 60, der mit dem Systembus 25 verbunden ist. Der Knoten 60 könnte ein Prozessor, ein Speicher, eine I/O-Einheit oder eine I/O-Schnittstelle sein, wie es in Fig. 1 gezeigt ist. Bei dem in Fig. 2 gezeigten Beispiel enthält der Knoten 60 eine knotenspezifische Logik 65, einen Knotenbus 67 und eine Systembusschnittstelle 64, die eine Datenschnittstelle 61 und einen Taktdecodierer 63 enthält. Vorzugsweise sind die Datenschnittstelle 61, der Taktdecodierer 63 und der Knotenbus 67 Standardelemente für Knoten, die mit dem Systembus 25 verbunden sind. Die knotenspezifische Logik 65, die verschiedene integrierte Schaltkreise von der Systembusschnittstelle 64 verwendet, enthält vorzugsweise, zusätzlich zu dem durch einen Benutzer aufgebauten Schaltkreis zum Ausführen der spezifischen Funktion eines Knotens, einen Standardschaltkreis zum Bilden einer Schnittstelle mit dem Knotenbus 67. Im allgemeinen ist die Datenschnittstelle 61 die primäre logische und elektrische Schnittstelle zwischen dem Knoten 60 und dem Systembus 25, der Taktdecodierer 63 liefert Zeitgabesignale zu dem Knoten 60 basierend auf zentral erzeugten Taktsignalen und der Knotenbus 67 schafft eine Schnittstelle mit hoher Geschwindigkeit zwischen der Datenschnittstelle 61 und der knotenspezifischen Logik 65.
  • Bei dem bevorzugten Ausführungsbeispiel des Knotens 60 und der Systembusschnittstelle 64, die in Fig. 2 gezeigt sind, enthält der Taktdecodierer 63 einen Steuerschaltkreis zum Ausbilden von Signalen, die auf dem Systembus 25 anzuordnen sind, und verarbeitet Taktsignale, die von dem zentralen Zuteiler 28 empfangen werden, um Zeitgabesignale für die knotenspezifische Logik 65 und die Datenschnittstelle 61 zu erhalten. Da die durch den Taktdecodierer 63 erhaltenen Taktsignale die zentral erzeugten Taktsignale benutzen, wird der Knoten 60 synchron mit dem Systembus 25 arbeiten.
  • Fig. 3 ist ein Zeitdiagramm, das einen Buszyklus, die durch den Taktdecodierer 63 von dem zentralen Zuteiler 28 (Fig. 1) empfangenen Taktsignale, und Bestimmte der durch den Taktdecodierer 63 erzeugten Zeitgabesignale zeigt. Die Taktsignale, die durch den Taktdecodierer 63 empfangen werden, enthalten ein Zeit-H-Signal, ein Zeit-L-Signal und ein Phasensignal, wie es in Fig. 3 gezeigt ist. Zeit-H und Zeit-L sind inverse der fundamentalen Taktsignale und das Phasensignal wird durch Teilen des fundamentalen Taktsignals durch drei erhalten. Die Zeitgabesignale, die durch den Taktdecodierer 63 erzeugt werden, enthalten C12, C23, C34, C45, C56 und C61, die alle in Fig. 3 gezeigt sind. Jene Zeitgabesignale, die für die Datenschnittstelle 61 erforderlich sind und einmal pro Buszyklus auftreten, werden zu der Datenschnittstelle 61 geführt, und ein kompletter Satz von Zeitgabesignalen, einschließlich Äquivalenter der Zeitgabesignale, die zu der Datenschnittstelle 61 geliefert sind, wird zwischengespeichert, und zu der knotenspezifischen Logik 65 geliefert. Der Zweck des Zwischenspeichers besteht im Sicherstellen, daß die knotenspezifische Logik 65 den Betrieb der Systembusschnittstelle 64 durch ungeeignetes Laden der Zeitgabesignale nicht nachteilig beeinflussen kann. Der Taktdecodierer 63 verwendet die Taktsignale zum Erzeugen von sechs Unterzyklen für jeden Buszyklus und benutzt dann die Unterzyklen zum Erzeugen der sechs Zeitgabesignale CXY, wobei X und Y zwei benachbarte Unterzyklen darstellen, die zur Bildung eines Zeitgabesignals kombiniert werden.
  • Jeder Knoten in dem Systembus 25 hat seinen eigenen entsprechenden Satz von Zeitgabesignalen, die durch seinen Taktdecodierer 63 erzeugt werden. Während die entsprechenden Signale nominal bei genau derselben Zeit in jedem Knoten im ganzen System 20 auftreten, führen Abweichungen zwischen dem Taktdecodierer 63 und der anderen Schaltung in vielen Knoten Zeitgabeabweichungen zwischen entsprechenden Signalen ein. Diese Zeitgabeabweichungen sind allgemein als "Taktversatz" bekannt.
  • Fig. 4 zeigt ein bevorzugtes Ausführungsbeispiel der Datenschnittstelle 61. Die Datenschnittstelle 61 enthält sowohl einen temporären Speicherschaltkreis als auch einen Bustreiberschaltkreis zum Schaffen einer Schnittstelle, die bidirektional und von hoher Geschwindigkeit ist, zwischen jeder der Leitungen des Knotenbusses 67 und jeder der Leitungen des Systembusses 25. Wie es in Fig. 4 gezeigt ist, enthält die Datenschnittstelle 61 vorzugsweise Speicherelemente 70 und 72 und einen Systembustreiber 74 zum Schaffen eines Kommunikationspfades von dem Knotenbus 67 zu dem Systembus 25. Die Datenschnittstelle 61 enthält auch ein Speicherelement 80 und einen Knotenbustreiber 82 zum Schaffen eines Kommunikationspfades von dem Systembus 25 zu dem Knotenbus 67. Wie er in der Beschreibung der Datenschnittstelle 61 verwendet ist, betrifft der Ausdruck "Speicherelement" im allgemeinen bistabile Speichervorrichtungen, wie beispielsweise ein offensichtliches Verzögerungs- oder ein Master-Slave-Speicherelement und keine spezifische Implementierung. Durchschnittsfachleute werden wissen, welche Arten von Speicherelementen geeignet sind.
  • Wie es in Fig. 4 gezeigt ist, hat das Speicherelement 70 einen Eingang, der angeschlossen ist, um Daten von dem Knotenbus 67 zu empfangen, und einen Ausgang, der an dem Eingang des Speicherelements 72 angeschlossen ist. Der Ausgang des Speicherelements 72 ist an einem Eingang des Systembustreibers 74 angeschlossen, dessen Ausgang an dem Systembus 25 angeschlossen ist. Die Speicherelemente 70 und 72 werden durch Knotenbus-Steuersignale 76 bzw. 78 gesteuert, die von den Zeitgabesignalen abgeleitet werden, die durch den Taktdecodierer 63 erzeugt werden. Die Speicherelemente 70 und 72 bilden einen zweistufigen temporären Speicher zum Führen von Daten von dem Knotenbus 67 zu dem Systembus 25. Es kann auch eine andere Anzahl von Speicherstufen benutzt werden.
  • Der Systembustreiber 74 wird durch eine Systembustreiber-Freigabe 79 gesteuert. Gemäß dem Zustand der Systembustreiber-Freigabe 79 wird der Eingang des Systembustreibers 74 entweder mit seinem Ausgang gekoppelt, um dadurch die Daten an dem Ausgang des Speicherelements 72 zu dem Systembus 25 zu transferieren, oder von jenem Ausgang entkoppelt. Wenn die Systembustreiber-Freigabe 79 den Eingang und den Ausgang des Systembustreibers 74 entkoppelt, zeigt der Systembustreiber 74 dem Systembus 25 eine hohe Impedanz. Die Systembustreiber-Freigabe 79 wird auch durch den Taktdecodierer 63 in Übereinstimmung mit Taktsignalen, die von dem Systembus 25 empfangen werden, und Steuersignalen, die von der knotenspezifischen Logik 65 empfangen werden, erzeugt.
  • Das Speicherelement 80 hat einen Eingangsanschluß, der mit dem Systembus 25 verbunden ist, und einen Ausgangsanschluß, der mit einem Eingang des Knotenbustreibers 82 verbunden ist. Der Ausgang des Knotenbustreibers 82 ist wieder mit dem Knotenbus 67 verbunden. Das
  • Speicherelement 80, vorzugsweise einen offensichtlichen Signalspeicher bzw. Zwischenspeicher (Latch), wird durch ein Systembus-Steuersignal 85 gesteuert, das von den Zeitgabesignalen abgeleitet wird, die durch den Taktdecodierer 63 erzeugt werden. Ein Knotenbus-Treibersignal 87 steuert den Knotenbustreiber 82 auf ähnliche Art, wie das Systembus-Treibersignal 79 den Systembustreiber 74 steuert. In Antwort auf das Knotenbussignal 87 koppelt der Knotenbustreiber 82 somit entweder seinen Eingang mit seinem Ausgang oder entkoppelt seinen Eingang von seinem Ausgang und zeigt dem Knotenbus 67 eine hohe Impedanz.
  • Um zu erklären, wie Daten über den Systembus 25 transferiert werden, ist es wichtig, die Beziehung zwischen der Systembustreiber-Freigabe 79 und dem Steuersignal 85 zu verstehen. Bei dem vorliegenden Ausführungsbeispiel ist diese Beziehung in Fig. 3 gezeigt. Die Systembustreiber-Freigabe 79 wird nominal von Anfang bis Ende eines Buszyklus angetrieben. Die neuen Daten werden für einen Empfang von dem Systembus 25 zu einer etwas späteren Zeit in dem Buszyklus verfügbar, nachdem eine Treiberausbreitungs- und Buseinstellungszeit aufgetreten ist. Bei dem vorliegenden Ausführungsbeispiel ist das Speicherelement 80 ein offensichtlicher Signalspeicher. Das Steuersignal 85 ist logisch äquivalent zu dem Takt C45. Die Buszeitgabe stellt sicher, daß die Daten des Systembusses 25 zum Empfang verfügbar sind, und zwar einige Zeit vor der Deaktivierung des Steuersignals 85. Das Speicherelement 80 speichert Busdaten, die wenigstens bei einer Einstellzeit vor der Deaktivierung des Steuersignals 85 stabil sind und für eine Haltezeit nach der Deaktivierung des Steuersignals 85 stabil bleiben.
  • Der Knotenbus 67 ist vorzugsweise ein Datenbus sehr hoher Geschwindigkeit, der einen bidirektionalen Datentransfer zwischen der knotenspezifischen Logik 65 und dem Systembus 25 mittels der Datenschnittstelle 61 zuläßt. Bei dem bevorzugten Ausführungsbeispiel des in Fig. 2 gezeigten Knotens, ist der Knotenbus 67 ein Anschlußsystem, das aus Punkt-zu-Punkt-Verbindungen zwischen der Systembusschnittstelle 64 und der knotenspezifischen Logik 65 besteht. Gemäß der vorliegenden Erfindung gibt es jedoch kein Erfordernis für eine derartige Punkt-zu-Punkt-Verbindung.
  • Fig. 5 zeigt ein bevorzugtes Ausführungsbeispiel des zentralen Zuteilers 28, der auch mit dem Systembus 25 verbunden ist. Der zentrale Zuteiler 28 liefert die Taktsignale für den Systembus 25 und teilt dem Knoten am Systembus 25 einen Besitz am bzw. einen Zugriff auf den Bus zu. Der zentrale Zuteiler 28 enthält vorzugsweise einen Entscheidungsschaltkreis 90, einen Taktschaltkreis 95 und einen Oszillator 97. Der Oszillator 97 erzeugt die fundamentalen Taktsignale. Der Taktschaltkreis 95 liefert Zeitgabesignale für den Entscheidungsschaltkreis 90 und die fundamentalen Taktsignale Zeit H, Zeit L und Phasentaktsignale zur Zeitgabe auf dem Systembus 25. Der Entscheidungsschaltkreis 90 empfängt die Commander- und Responder-Anfragesignale, entscheidet über Konflikte zwischen den Knoten, die einen Zugriff auf den Systembus 25 wünschen, und behält die oben angegebenen Warteschlangen für die Commander- und Responder-Anfragen bei. Der Entscheidungsschaltkreis 90 liefert auch bestimmte Steuersignale zu dem Taktschaltkreis 95.
  • B. Entscheidung bzw. Arbitration
  • Gemäß der Erfindung kann jeder der Knoten 60 an einem Bus einen Zugriff auf jenen Bus erhalten, um Nachrichten zu anderen Knoten zu transferieren. Die Nachrichten können einen oder mehrere Buszyklen dauern. Bei einer gegebenen Zeit kann irgendeiner oder können alle der Knoten wünschen, Transfers auf dem Bus 25 durchzuführen. Bei der vorliegenden Erfindung können die Buszyklen, die zur Entscheidung verwendet werden, parallel zu den Buszyklen auftreten, die zum Datentransfer verwendet werden.
  • Die Knoten bei der vorliegenden Erfindung enthalten eine Busanfrageeinrichtung zum Erzeugen einer Busanfrage zu Zeiten, zu denen eine Nachricht von dem Knoten auf den Bus zu transferieren ist. Wie es in Fig. 6 gezeigt ist, sind ein CPU-Knoten 31 und ein I/O-Vorrichtungs- Knoten 51 beide in dem System 20 enthalten, das auch eine Vielzahl anderer Knoten (nicht gezeigt) enthält. Bei einem Ausführungsbeispiel enthält der CPU-Knoten 31 einen Befehlsgenerator 110 in seiner knotenspezifischen Logik 65, und der I/O-Vorrichtungs-Knoten 51 enthält einen Antwortgenerator 112 in seiner knotenspezifischen Logik (nicht gezeigt).
  • Zu Zeiten, zu denen entweder der Knoten 31 oder der Knoten 51 zum Durchführen eines Transfers bereit ist, müssen sie auf ihren jeweiligen Busanfrageleitungen eine Busanfrage zu dem Zuteiler 28 ausgeben. Beispielsweise wird der Befehlsgenerator 110 zu Zeiten, zu denen es notwendig ist, daß der CPU-Knoten 31 Daten in einen anderen Knoten im System 20 schreibt, eine (Commander-)Busanfrage erzeugen, um nach einem Zugriff auf den Bus 25 für wenigstens zwei aufeinanderfolgende Buszyklen zu fragen. Als weiteres Beispiel wird der Antwortgenerator 112 dann, wenn der I/O-Vorrichtungs-Knoten 51 zuvor eine Unterbrechungsanfrage erzeugt hat und Unterbrechungsvektordaten zu einem anderen Knoten in Antwort auf den Transfer eines Unterbrechungs-Rückmeldebefehls durch jenen anderen Knoten transferieren muß, eine (Responder-)Busanfrage erzeugen. In dem Fall einer Unterbrechungs-Vektornachricht erfordert der I/O-Knoten 51 typischerweise einen Zugriff auf den Bus 25 für nur einen einzigen Buszyklus.
  • Bei dem bevorzugten Ausführungsbeispiel werden Busanfragen von jedem der Knoten in dem System 20 zu dem Zuteiler 28 unter Verwendung eines Paars zugehöriger Leitungen gesendet. Eine Commander-Anfrageleitung, wie beispielsweise CMD REQ 102 oder 106, wird durch einen Knoten verwendet, um nach einem Zugriff zu fragen, wenn der Knoten gerade neue Transaktionen beginnt, und eine Responder-Anfrageleitung, wie beispielsweise RES REQ 104 oder 108, wird durch einen Knoten verwendet, um Daten zu einem Commander zurückzusenden, wie beispielsweise dann, wenn ein Lesebefehl oder ein Unterbrechungs-Rückmeldebefehl durch einen Knoten empfangen und bedient wird. Vorzugsweise hat eine Responder-Anfrage eine höhere Priorität als eine Commander-Anfrage.
  • Wie es in Fig. 6 für das oben erörterte Beispiel gezeigt ist, wird die CPU 31 eine Busanfrage auf ihrer zugehörigen Commander-Anfrageleitung 102 erzeugen, und die I/O-Vorrichtung 51 wird eine Busanfrage auf ihrer zugehörigen Responder-Anfrageleitung 108 erzeugen. Wie es zuvor erörtert ist, wird jeder Buszyklus bei dem bevorzugten Ausführungsbeispiel in sechs Unterzyklen aufgeteilt. Bei dem bevorzugten Ausführungsbeispiel tastet der Zuteiler 28 Busanfragen von jedem der Knoten während der Unterzyklen 6 und 1 jedes Buszyklus ab, wie es in Fig. 10 gezeigt ist. In Fig. 10 zeigt der Ursprung des Pfeils die ungefähre Abtastzeit eines Signals an, und das Vorhandensein eines aktivierten Signals wird durch den Spannungspegel an dem Ursprung des Pfeils bestimmt.
  • Wendet man sich wieder Fig. 6 zu, sind gemäß der vorliegenden Erfindung Erweiterungsanfrageeinrichtungen zum Erzeugen einer Erweiterungsanfrage für jeden der Knoten vorgesehen, die mehr als einen Buszyklus benötigen, um eine Nachricht zu transferieren, und zum Beibehalten dieser Erweiterungsanfrage während nachfolgender Buszyklen. Wie es hierin dargestellt ist, wird dann, wenn die CPU 31 einen Schreibbefehl in dem Befehlsgenerator 110 erzeugt, jener Befehl viele Buszyklen benötigen, um den Transfer der Daten zu beenden. Befehlsdaten werden während eines Anfangs-Zugriffs-Zyklus transferiert, und Schreibdaten werden während nachfolgender Zyklen transferiert. Der Anfangs-Zugriffs-Zyklus ist der erste Zyklus, in dem das Systembustreiber-Freigabesignal 79 für einen Transfer bestimmt ist. Daher wird ein Erweiterungsanfragegenerator 111 eine Erweiterungsanfrage auf einer Leitung 118 zu der gleichen Zeit ausgeben, zu der der Befehlsgenerator 110 eine Commander-Anfrageleitung 102 aktiviert, und wird diese Erweiterungsanfrage auf der Leitung 118 bis zu dem letzten Buszyklus beibehalten, während dem der Transfer von Daten beendet wird.
  • Gemäß der Erfindung enthält jeder der Knoten eine Erweiterungs- Zykluseinrichtung, die mit der Erweiterungsanfrageeinrichtung gekoppelt ist, zum Aktivieren eines Erweiterungs-Buszyklus-Signals während des Anfangs-Zugriffs-Zyklus, wenn der Knoten ein Sender wird, und zum Beibehalten des Erweiterungs-Buszyklus-Signals, das während nachfolgender Buszyklen aktiviert ist, zu Zeiten, zu denen die Erweiterungs-Anfrage für den Knoten vorhanden ist. Wie es hierin dargestellt ist, wird das Erweiterungs-Buszyklus-Signal (Fig. 10, Signal E) auf einer Erweiterungs-Buszyklus-Leitung 120 ausgegeben, die mit dem Zuteiler 28 und mit jedem der Knoten im System 20 gekoppelt ist. Vorzugsweise enthält die CPU 31 einen Erweiterungs-Zyklus- Schaltkreis 122 in dem Taktdecodierer 63 zum Aktivieren des Erweiterungs-Buszyklus-Signals (Fig. 10, Signal E) auf Leitung 120 (Fig. 6) während des Anfangs-Zugriffs-Buszyklus und nachfolgender Buszyklen zu Zeiten, zu denen die Erweiterungsanfrage auf der Leitung 118 vorhanden ist.
  • Ein Knoten kann das Erweiterungs-Buszyklus-Signal nicht aktivieren, wenn ein Erweiterungs-Buszyklus-Signal laufend durch einen anderen Knoten aktiviert ist, oder eine bedingte Buszuteilung (Fig. 10, Signal B) nicht empfangen worden ist. Wie es in Fig. 6 gezeigt ist, empfängt der Erweiterungs-Zyklus-Schaltkreis 122 in der CPU 31 eine Erweiterungsanfrage, die durch den Erweiterungsanfrage-Generator 111 erzeugt ist. Der Schaltkreis 122 aktiviert dann das Erweiterungs-Buszyklus-Signal auf der Erweiterungs-Buszyklus-Leitung 120, wenn die zwei Bedingungen, die gerade beschrieben worden sind, nicht existieren.
  • Jeder Knoten gemäß der Erfindung enthält eine Empfangseinrichtung zum Empfangen einer bedingten Buszuteilung von dem Zuteiler und zum Empfangen eines Erweiterungs-Buszyklus-Signals von den anderen Knoten. Wenn es in einem aktivierten Zustand ist, zeigt das Erweiterungs-Buszyklus-Signal an, daß ein Knoten, der laufend eine Nachricht sendet, fortfahren wird, die Nachricht während des nächsten Buszyklus zu transferieren. Jeder der Knoten enthält einen Freigabeschaltkreis 124, der mit einer gemeinsamen Erweiterungs-Buszyklus- Leitung 120 gekoppelt ist, um ein Erweiterungs-Buszyklus-Signal zu empfangen, das durch irgendeinen der Knoten aktiviert ist. Zusätzlich ist der Freigabeschaltkreis 124 für jeden Knoten, der bei dem vorliegenden Ausführungsbeispiel in dem Taktdecodierer 63 enthalten ist, durch eine zugehörige Punkt-zu-Punkt-Bedingungs- Buszuteilungsleitung, die jenem Knoten entspricht, wie beispielsweise die Leitungen 114 und 116, mit dem Zuteiler 28 gekoppelt. Der Zuteiler 28 sendet eine bedingte Buszuteilung auf einer dieser zugehörigen Leitungen zu einem ausgewählten Knoten. Beispielsweise koppeln die Leitungen 114 bzw. 116 für die bedingte Zuteilung die CPU 31 und die I/O-Vorrichtung 51 mit dem Zuteiler 28.
  • Während jedes gegebenen Buszyklus empfängt der Zuteiler 28 Busanfragen (Fig. 10, Signal A) von einer Anzahl von Knoten 60 und bestimmt, welchem ausgewählten Knoten 60 "bedingt" ein Zugriff auf den Bus zugeteilt wird. Bei dem in Fig. 10 gezeigten vorliegenden Ausführungsbeispiel sendet der Zuteiler 28, nachdem er die Bus-25-Anfragen (Signal A) während des Unterzyklus 6 (im Buszyklus 1) und des Unterzyklus 1 (im Buszyklus 2) abtastet, eine bedingte Buszuteilung (Signal B) zu einem ausgewählten Knoten. Die bedingte Buszuteilung (Signal B) wird durch den ausgewählten Knoten während des Unterzyklus 6 des zweiten Buszyklus abgetastet. Wenn auf der Erweiterungs-Buszyklus-Leitung 120 (Fig. 6) kein Erweiterungs-Buszyklus-Signal (Signal E) aktiviert ist, wenn sie durch den ausgewählten Knoten während des zweiten Buszyklus abgetastet wird, wird der Knoten ein Sender, und er überträgt seine Nachricht zu dem Systembus 25 beginnend mit dem dritten Buszyklus. Bei diesem Beispiel wurde der während des zweiten Zyklus ausgewählte Knoten während des dritten Zyklus ein Sender, und der dritte Buszyklus ist daher der "Anfangs-Zugriffszyklus" für jenen Sender. Wenn das Erweiterungs-Buszyklus-Signal auf Leitung 120 aktiviert wird und durch den Freigabeschaltkreis 124 des ausgewählten Knotens während Unterzyklen 4 und 5 des zweiten Buszyklus abgetastet wird, dann kann der ausgewählte Knoten während des nächsten Buszyklus keinen Zugriff auf den Bus 25 erhalten, auch wenn er während des Buszyklus 6 des zweiten Zyklus eine bedingte Buszuteilung empfängt.
  • Nimmt man wieder Bezug auf Fig. 6 enthält gemäß der Erfindung jeder der Knoten eine Buszugriffseinrichtung, die mit der Erweiterungs-Buszyklus-Einrichtung gekoppelt ist und auf die bedingte Buszuteilung antwortet, zum Erzeugen eines Systembustreiber- Freigabesignals in dem ausgewählten Knoten, wenn kein Erweiterungs-Buszyklus-Signal durch einen anderen Knoten aktiviert ist, der zuvor ein Sender war, und zum Beibehalten des Systembustreiber-Freigabesignalpegels während das Erweiterungs-Buszyklus- Signal für den ausgewählten Senderknoten aktiviert ist. Wie es hier gezeigt ist, aktiviert der Freigabeschaltkreis 124 das Systembustreiber-Freigabesignal 79 für den Treiber 74, der in Fig. 4 derart gezeigt ist, daß er einen Datenschnittstellenschaltkreis 61 enthält. Zu Zeiten, zu denen der Treiber 74 durch ein aktiviertes Systembustreiber-Freigabesignal 79 freigegeben ist, kann von dem Knoten eine Nachricht auf dem Systembus 25 transferiert werden.
  • Das bevorzugte Ausführungsbeispiel einer Einrichtung zum Aktivieren eines Erweiterungs-Buszyklus-Signals ist in Fig. 7 gezeigt. Aus Darstellungszwecken ist angenommen, daß alle Signale außer den Zeitgabesignalen und denen, für die anderes angegeben ist, auf einem niedrigen Pegel sind, wenn sie aktiviert sind. Das Systembustreiber-Freigabesignal 79 und das Erweiterungsanfragesignal 118 sind beide mit einem AND-Gatter 126 gekoppelt. Der Ausgang des AND-Gatters 126 ist mit einem Speicherelement 128 gekoppelt, das vorzugsweise ein D-Flip-Flop ist, aber es können statt dessen, wie es allgemein in dieser gesamten Beschreibung der Fall ist, äquivalente Logikschaltkreiselemente verwendet werden. Daher kann das Speicherelement 128 nur zu Zeiten gesetzt werden, wenn die Erweiterungsanfrage (Fig. 10, Signal D), die durch den Knoten erzeugt wird, vorhanden ist, und wenn der Knoten für den aktuellen Buszyklus einen Zugriff auf den Bus 25 erhalten hat.
  • In Fig. 7 ist das Speicherelement 128 während des Unterzyklus 1 jedes Buszyklus unter Verwendung des Taktsignals C1 gesetzt oder rückgesetzt. Der Ausgang des Speicherelements 128 gibt ein NAND-Gatter 132 frei. Das Taktsignal C1 wird auch als ein Eingangssignal zu einem Inverter 130 verwendet , um das NAND-Gatter 132 während Unterzyklen 2 bis 6 freizugeben, das mit dem Ausgang des Inverters 130 gekoppelt ist. Der Open-Drain-Leitungstreiber 134 wird durch einen aktiven Ausgang des NAND-Gatters 132 eingeschaltet, wenn die Erweiterungs-Buszyklus-Leitung 120 dazu gesteuert wird, niedrig zu sein.
  • Das bevorzugte Ausführungsbeispiel für den Freigabeschaltkreis 124, der in dem Taktdecodierer 63 enthalten ist, ist in Fig. 8 gezeigt. In Antwort auf den Empfang einer bedingten Buszuteilung auf der Leitung 114 wird ein Speicherelement 136, wie beispielsweise ein D-Flip-Flop, gesetzt. Das Speicherelement 136 wird durch Verwendung eines Taktsignals C61 beginnend mit dem sechsten Unterzyklus jedes Buszyklus gesetzt oder rückgesetzt. Wenn ein Erweiterungs-Buszyklus-Signal auf der Erweiterungs-Buszyklus-Leitung 120 aktiviert wird, wird das Speicherelement 138 unter Verwendung eines Taktsignals C45 beginnend mit dem vierten Unterzyklus jedes Buszyklus gesetzt. Der Ausgang des Speicherelements 138 wird verwendet, um ein AND-Gatter 140 freizugeben. Das AND-Gatter 140 wird auch durch ein Taktsignal C12 beginnend mit dem ersten Unterzyklus jedes Buszyklus freigegeben. Der Ausgang des AND-Gatters 140 wird verwendet, um Daten in ein Speicherelement 142 zu takten, dessen Dateneingang mit der Leitung 114 für die bedingte Buszuteilung über ein Speicherelement 136 gekoppelt ist. Der Ausgang des Speicherelements 142 ist das Systembustreiber-Freigabesignal 79, das mit dem Erweiterungs-Buszyklus-Schaltkreis 122 und dem Treiber 74 gekoppelt ist. Wenn der Dateneingang zu dem Speicherelement 142 aktiviert ist, während der Ausgang des AND-Gatters 140 aktiviert ist, wird das Systembustreiber-Freigabesignal 79 aktiviert.
  • Das Systembustreiber-Freigabesignal 79 läßt aufgrund der Art, auf die es aktiviert ist, die CPU 31 während des Anfangs-Buszugriffs-Zyklus Zugriff auf den Bus 25 erhalten, wenn die Leitung 114 für die bedingte Buszuteilung bestimmt ist und das Erweiterungs-Buszyklus- Signal 120 nicht aktiviert ist. Wie es in den Fig. 6, 8 und 10 gezeigt ist, wird eine Busanfrage (Fig. 10, Signal A) beispielsweise dann, wenn die CPU 31 sie während eines ersten Buszyklus erzeugte, beginnend mit einem Unterzyklus 6 des ersten Buszyklus von der Leitung 102 in den Zuteiler 28 verzögert werden. Wenn die CPU 31 die Anfrage mit der höchsten Priorität ausgegeben hat, wird der Zuteiler 28 während des zweiten Buszyklus eine bedingte Buszuteilung (Signal B) zu der CPU 31 senden, und die CPU 31 wird das Speicherelement 136 beginnend mit dem Unterzyklus 6 des zweiten Buszyklus takten, um die bedingte Buszuteilung auf Leitung 114 zu empfangen. Wenn kein Erweiterungs-Buszyklus-Signal auf Leitung 120 aktiviert ist, wenn sie während des vierten und des fünften Unterzyklus des zweiten Buszyklus abgetastet wird, kann das Speicherelement 142 das Systembustreiber- Freigabesignal 79 während des dritten Buszyklus aktivieren. Daher erhält die CPU 31 zu Beginn des dritten Buszyklus einen Zugriff auf den Bus 25.
  • Jedoch würde kein Systembustreiber-Freigabesignalpegel (Signal C) durch das Speicherelement 142 aktiviert werden, wenn während des zweiten Buszyklus ein Erweiterungs-Buszyklus-Signal (Signal E) durch einen anderen Knoten 60, beispielsweise Knoten 51, aktiviert worden wäre. Wenn während des zweiten Buszyklus ein Erweiterungs-Buszyklus- Signal auf Leitung 120 aktiviert worden wäre, dann würde das AND-Gatter 140 durch das Speicherelement 138 gesperrt werden. Daher unterdrückt die Aktivierung eines Erweiterungs-Buszyklus-Signals (Signal E) das Koppeln einer bedingten Zuteilung auf Leitung 114 in das Speicherelement 142. Die CPU 31 kann während des dritten Buszyklus trotz des Vorhandenseins einer bedingten Zuteilung auf Leitung 114 während des zweiten Buszyklus keinen Zugriff auf den Bus 25 erhalten.
  • Der Freigabeschaltkreis 124 erlaubt der CPU 31, den Bustreiber-Freigabesignalpegel (Signal C) für die benötigten Buszyklen beizubehalten, die dem Anfangs-Zugriffs-Zyklus folgen, auch wenn die CPU 31 nicht länger durch den Zuteiler 28 ausgewählt ist und die bedingte Zuteilung auf Leitung 114 nicht empfängt. Wie es in Fig. 6 gezeigt ist, wird eine Erweiterungsanfrage auf Leitung 118 durch den Erweiterungsanfrage-Generator 111 bestimmt, wenn die CPU 31 einen Zugriff auf den Bus 25 während mehr als einem Buszyklus fordert, um einen Vielfachzyklustransfer durchzuführen. Wenn das Systembustreiber- Freigabesignal 79 (Signal C) während des dritten Buszyklus durch die CPU 31 bestimmt ist, wie es auch in Fig. 10 gezeigt ist, veranlaßt das Vorhandensein einer Erweiterungsanfrage (Signal D) den Erweiterungszyklusschaltkreis 122, die Erweiterungs-Buszyklus-Leitung 120 während des (dritten) Anfangs-Zugriffs-Buszyklus anzutreiben. Daher wird, wie es zusätzlich in Fig. 8 gezeigt ist, wenn die Erweiterungs-Buszyklus-Leitung 120 während Unterzyklen 4 und 5 des dritten Buszyklus abgetastet wird, das AND-Gatter 140 gesperrt. Als ein Ergebnis können, obwohl das Speicherelement 142 mit dem Signal 114 für die bedingte Zuteilung gekoppelt ist, die Inhalte des Speicherelements 142 aufgrund der Aktivierung des Erweiterungs-Buszyklus- Signals (Signal E) nicht erneuert werden. Daher wird die CPU 31 die Inhalte des Speicherelements 142 zu Beginn des vierten Buszyklus nicht ändern. Dies verursacht, daß das Speicherelement 142 den Systembustreiber-Freigabesignalpegel (Signal C) während des folgenden Buszyklus beibehält, und der Knoten 31 wird während der Buszyklen 3 und 4 einen Vielfachzyklus-Schreibtransfer durchführen können. Der Knoten 31 wird die Steuerung des Busses 25 nicht aufgeben, bis der Erweiterungsanfrage-Generator 111 ein Erzeugen der Erweiterungsanfrage während des vierten Buszyklus angehalten hat, wie es in Fig. 10 gezeigt ist.
  • Eine Zuteilereinrichtung ist mit der Busanfrageeinrichtung jedes Knotens zum Senden einer bedingten Buszuteilung zu einem Ausgewählten der Knoten in Antwort auf die Busanfragen gekoppelt. Ein Blockschaltbild der Teile des Zuteilers 28, die derartige Funktionen durchführen, ist in Fig. 9 gezeigt. Wie es in den Fig. 6 und 9 gezeigt ist, werden Busanfragen von Knoten, wie beispielsweise der CPU 31 und der I/O-Vorrichtung 51, auf einzelne Commander-Anfrageleitungen, wie beispielsweise die Leitungen 102 und 106, und einzelne Responder-Anfrageleitungen, wie beispielsweise die Leitungen 104 und 108, gesendet. Bei einem bevorzugten Ausführungsbeispiel sind bis zu vierzehn einzelne Knoten 60 in dem System 20 enthalten.
  • Der Zuteiler 28 enthält, wie es in Fig. 9 gezeigt ist, Eingangspuffer und Verzögerungseinheiten bzw. Signalspeicher 144 zum Empfangen von vierzehn Commander-Anfragesignalen und vierzehn Responder-Anfragesignalen. Beginnend mit einem Unterzyklus 6 eines Buszyklus, wie es in Fig. 10 gezeigt ist, tastet der Zuteiler 28 achtundzwanzig Busanfragesignale (Fig. 10, Signal A) ab und speichert die Busanfragen in den Verzögerungseinheiten 144. Die gespeicherten Daten werden von Verzögerungseinheiten 144 zu einer Prioritätsauswahllogik 146 unter Verwendung von achtundzwanzig einzelnen Leitungen ausgegeben, von denen jeweils eine der Commander- oder der Responder-Anfrageleitung entspricht. Die Prioritätsauswahllogik 146 hat sechsundfünfzig Ausgangsleitungen zu dem Prioritätscodierer 148, wobei jeweils zwei Leitungen einer Anfrageleitung entsprechen. Von den Prioritätscodierern 148 werden nur vierzehn Leitungen, von denen jeweils eine einem Knoten 60 entspricht, zu Verzögerungseinheiten bzw. Signalspeichern 150 geführt. Die Verzögerungseinheiten 150 empfangen als Eingabe auch die Erweiterungs-Buszyklus-Leitung 120. Die Verzögerungseinheiten 150 haben vierzehn Ausgangsleitungen, von denen jeweils eine einem Knoten 60 entspricht und die zur Prioritätsauswahllogik 146 zurückgeführt werden und auch zu Ausgangspuffern 152 gesendet werden. Die Ausgangspuffer 152 sind über die vierzehn Leitungen für eine bedingte Buszuteilung, wie beispielsweise die Leitungen 114 und 116, mit den Knoten 160 gekoppelt.
  • Die Zuteilereinrichtung kann einer Einrichtung zum Ausführen eines Round-Robin-Algorithmus zum Bestimmen des Ausgewählten der Vielzahl von Knoten enthalten. Die Zuteilereinrichtung kann auch eine Einrichtung enthalten zum Bestimmen eines Knotens als den ausgewählten Knoten, der eine Responder-Anfrage erzeugt, und zwar vor einem Auswählen eines Knotens, der eine Commander-Anfrage erzeugt. In dem in Fig. 9 gezeigten Zuteiler 28 werden die Leitungen von den Eingangspuffern und Verzögerungseinheiten 144 während eines gegebenen Buszyklus Signalpegel enthalten, die den Commander- und Responder-Anfrageleitungen, wie beispielsweise den Leitungen 102, 104, 106 und 108, entsprechen, auf denen während des vorangehenden Buszyklus eine Busanfrage vorhanden war.
  • Die in Fig. 9 gezeigten Elemente führen die Entscheidungsfunktionen durch. Eine Prioritätsauswahllogik 146 und ein Prioritätscodierer 148 wirken als Entscheidungs-Warteschlange, und die Auswahllogik 146 wählt für die vierzehn ankommenden Commander-Anfragen und die vierzehn ankommenden Responder-Anfragen eine der zwei Ausgangsleitungen für jede freigegebene Anfrageleitung aus, um einen Round-Robin-Mgorithmus auszuführen.
  • Bei dem bevorzugten Ausführungsbeispiel bilden achtundzwanzig Stellen für Responder-Anfragen eine erste Warteschlange, und achtundzwanzig Stellen für Commander-Anfragen bilden eine zweite Warteschlange. Responder-Busanfragen, die in der ersten Warteschlange enthalten sind, wird eine höhere Priorität gegeben als Commander-Busanfragen. Obwohl nur vierzehn Commander- und vierzehn Responder-Busanfragesignal zu dem Zuteiler 28 eingegeben werden, gibt es achtundzwanzig Stellen in jeder der zwei Warteschlangen für jeden Satz der vierzehn Anfragen, so daß jeder Anfrage eine oder zwei Prioritäten zugeteilt werden kann. Eine Anordnung hoher Priorität der vierzehn Stellen für jede Warteschlange wird zuerst ausgeführt, und eine Anordnung niedriger Priorität der vierzehn Stellen wird für jede Warteschlange als letztes ausgeführt. Wie es hier dargestellt ist, wird von Beginn an oder ab einer Periode einer Inaktivität allen Busanfragen eher die hohe als die niedrige Priorität der Ausgangsleitungen der Prioritätsauswahllogik 146 zugeteilt.
  • Während aktiver Perioden bestimmt die Prioritätsauswahllogik 146, in welcher der zwei Prioritäten jede ankommende Anfrage innerhalb ihrer jeweiligen (Responder oder Commander) Warteschlange anzuordnen ist, und zwar basierend auf vierzehn Leitungen, die von den Verzögerungseinheiten 150 zu der Logik 146 zurückgeführt sind. Ein aktiviertes Signal wird auf nur einer der vierzehn Leitungen vorhanden sein, die von den Verzögerungseinheiten 150 zurückgeführt sind, und diese Leitung wird dem Knoten 60 entsprechen, der während des vorangehenden Buszyklus die bedingte Buszuteilung empfangen hat. Bei einer bevorzugten Implementierung wird einem Knoten mit einer höheren ID oder Knotennummer einer höhere Priorität gegeben. Somit wird der Knoten mit ID-Nummer 14 zuerst zum Empfangen einer bedingten Buszuteilung ausgewählt, gefolgt durch die Knoten mit ID-Nummern 13, 12, etc.
  • Ein Round-Robin-Mgorithmus kann implementiert sein, weil die Rückkopplung von den Verzögerungseinheiten 150 die Prioritätsauswahllogik 146 alle Busanfragen von Knoten mit IDs, die größer oder gleich jener des Knotens sind, zu dem die bedingte Buszuteilung (Fig. 10, Signal B) zuvor gesendet wurde, in die Reihe niedriger Priorität anordnen läßt. Nachdem der Bus 25 allen Knoten mit aktiven Anfragen zugeteilt worden ist, ist die Reihe für hohe Priorität von allen Einträgen geleert und alle Anfragen werden zurück in die Reihe für hohe Priorität angeordnet. Dieser Algorithmus stellt sicher, daß alle Knoten in einer gegebenen Warteschlange, d. h. Responder oder Commander, einen Zugriff auf den Bus 25 erhalten, bevor irgendein anderer Knoten in derselben Warteschlange ein zweites Mal einen Zugriff erhält.
  • Die Pegel der Eingangssignale an den 56 Leitungen, die durch den Prioritätscodierer 148 empfangen werden, bestimmen, welcher Knoten 60 ausgewählt wird, die nächste bedingte Zuteilung zu empfangen. Bei einem Beispiel ordnet die Prioritätsauswahllogik 146 eine Responder-Anfrage von dem Knoten mit der ID-Nr. 2 in der Reihe hoher Priorität an, eine Responder-Anfrage von dem Knoten mit der ID-Nr. 14 in der Reihe für niedrige Priorität, eine Commander-Anfrage von dem Knoten mit der ID-Nr. 3 in der Reihe für hohe Priorität, und eine Commander-Anfrage von dem Knoten mit der ID-Nr. 13 in der Reihe für niedrige Priorität. Während des aktuellen Buszyklus werden die Prioritätscodierer 148 nur eine der vierzehn Ausgangsleitungen auswählen, wobei die Leitung dem Knoten entspricht, zu dem während des laufenden Buszyklus eine bedingte Zuteilung gesendet wird. Bei diesem Beispiel wird der Responder-Anfrage von dem Knoten mit der ID-Nr. 2 die höchste Priorität gegeben, und daher wird nur die Eingangsleitung zu den Verzögerungseinheiten 150, die dem Knoten mit der ID-Nr. 2 entsprechen, freigegeben. Die Verzögerungseinheit 150, die dem Knoten mit der ID-Nr. 2 entspricht, wird gesetzt, und wird den entsprechenden Ausgangspuffer 152 antreiben, um eine bedingte Buszuteilung (Fig. 10, Signal B) zu einem ausgewählten Knoten mit der ID-Nr. 2 zu senden. Die Rückführung der vierzehn Leitungen von den Verzögerungseinheiten 150 zu der Prioritätsauswahllogik 146 wird erneuert, wodurch berücksichtigt wird, daß der Knoten mit der ID-Nr. 2 der letzte Knoten 60 war, der eine bedingte Zuteilung empfangen hat, und daher wird die Prioritätsauswahllogik 146 während des nächsten Buszyklus jede Busanfrage von dem Knoten mit der ID-Nr. 2 in die Reihe für niedrige Priorität anordnen. Somit wird eine Responder-Anfrage von jedem Knoten 60, der ein anderer als die Knoten mit den ID-Nr. 2 oder 14 sind, während des nächsten Buszyklus die höchste Priorität haben. Wenn mehr als ein Responder mit einer Knoten-ID, die eine andere als 2 oder 14 ist, eine Anfrage für den nächsten Zyklus durchführt, wird der Responder mit der höchsten Knoten-ID während des nächsten Zyklus die höchste Priorität haben. Die Commander-Anfragen werden nur die höchste Priorität haben, wenn keine Responder-Anfragen vorhanden sind.
  • Der Zuteiler 28 kann auch eine Einrichtung enthalten, die auf die Aktivierung eines Erweiterungs-Buszyklus-Signals antwortet, um sicherzustellen, daß, während das Erweiterungs-Buszyklus-Signal aktiviert ist, der ausgewählte Knoten derselbe Knoten bleibt, zu dem während des vorherigen Buszyklus die bedingte Buszuteilung gesendet wurde. Wie es in Fig. 9 gezeigt ist, ist die Erweiterungs-Buszyklus- Leitung 120 mit Verzögerungseinheiten 150 gekoppelt. Zu Zeiten, zu denen das Erweiterungs-Buszyklus-Signal während eines Buszyklus aktiviert ist, kann der Ausgang der Prioritätscodierer 148 nicht in die Verzögerungseinheiten 150 geladen werden. Daher werden die Inhalte der Verzögerungseinheiten 150 dieselben bleiben, was veranlaßt, daß die bedingte Buszuteilung (Fig. 10, Signal B) in aufeinanderfolgenden Buszyklen zu demselben ausgewählen Knoten 60 gesendet wird. Ähnlich dazu wird die Rückführung zu der Prioritätsauswahllogik 146 dieselbe bleiben. Dies verhindert, daß ein Knoten, der keinen Zugriff auf den Bus 25 erhalten konnte, weil ein anderer Knoten gerade einen Vielfachzyklustransfer ausführte, der Reihe für niedrige Priorität zugeordnet wird.
  • Bei dem bevorzugten Ausführungsbeispiel der Erfindung enthält die Erweiterungs-Buszyklus-Leitung 120 eine verdrahtete OR-Verbindung zu jedem der Vielzahl von Knoten 60. Somit empfängt immer dann, wenn ein Knoten ein Erweiterungs-Buszyklus-Signal aktiviert, dieses Signal jeder der anderen Knoten und verhindert, daß er einen Zugriff auf den Bus 25 erhält, auch wenn der Knoten eine bedingte Zuteilung empfangen hat. Die Erweiterungs-Buszyklus-Leitung 120 ist eine Open-Drain-Leitung und ist an der Rückseite des Systems 20 mit einem Paar von Widerstandsteilern abgeschlossen, die jeweils 126 Ohm an einer +5-Volt-Versorgung und 500 Ohm gegenüber Erde aufweisen. Dieses liefert einen Thevenin'schen Ersatzabschluß von etwa 50 Ohm, die an +4 Volt angeschlossen sind. Die Erweiterungs-Buszyklus-Leitungen 120 sind an dem Treiber 134 (Fig. 7) auch mit einem Widerstand von etwa 20 Ohm seriell abgeschlossen, der einen Spitzen-Ausgangsstrom und somit ein Rauschen auf den Leistungs- und Grundleitungen reduziert, und der eine Impedanzanpassung zwischen dem Treiber 134 (mit einem Ausgangswiderstand, der einen niedrigen Wert von 2 Ohm hat) und der Rückseite (eine Impedanz, die in Abhängigkeit von der Belastung einen Wert von typischerweise 20-50 Ohm hat) erzeugt.
  • Bei dem bevorzugten Ausführungsbeispiel der Erfindung gibt es mehrere Regeln bezüglich der Verwendung des Erweitungs-Buszyklus-Signals (Fig. 10, Signal E). Das Erweiterungs-Buszyklus-Signal wird nur verwendet, um Vielfachzyklustransfers zu implementieren; es ist nicht dafür verfügbar, daß Commanders Vielfach-Transaktionen beginnen. Der einzige Knoten 60, der das Erweiterungs-Buszyklus-Signal aktivieren kann, ist ein Knoten, der gerade Zugriff auf den Bus 25 hat. Durch Aktivieren seiner Erweiterungs-Buszyklus-Leitung garantiert ein Knoten 60, der der aktuelle Sender zu dem Bus 25 ist, daß er in dem nächsten Buszyklus der Sender auf dem Bus 25 sein wird, und zwar unabhängig von der Priorität seines Busanfragesignals (Signal A). Schließlich wird vorzugsweise daß keinem Knoten 60 erlaubt, ein Erweiterungs-Buszyklus-Signal für mehr als vier aufeinanderfolgende Buszyklen zu aktivieren.
  • Das Ergebnis der vorliegenden Erfindung ist eine Reduzierung der Arbitrations- bzw. Entscheidungs- und der Systembuszyklus-Zeit, ohne daß zusätzliche Anschlußstifte an der Rückseite erforderlich wären. Bei dem Arbitrationsverfahren dieser Erfindung wählt der zentrale Zuteiler 28 einen bestimmten Knoten aus und gibt eine bedingte Zuteilung aus. Diese Zuteilung kann schneller ausgegeben werden, weil sie gesendet wird, bevor eine endgültige Bestimmung darüber durchgeführt ist, ob während des nächsten Buszyklus ein Zugriff zu dem Bus 25 tatsächlich zu einem anderen Knoten übertragen wird. Jeder der Knoten 60 enthält eine Logik, die ein Erweiterungs-Buszyklus-Signal überprüft, um zu bestimmen, ob die bedingte Zuteilung von dem zentralen Zuteiler 28 veranlaßt, daß der Knoten ein Sender wird. Wenn ein Knoten einmal ein Sender wird, erlaubt ihm seine Logik, das Erweiterungs-Buszyklus-Signal zu aktivieren, um einen Zugriff zu dem Bus 25 zu Zeiten beizubehalten, zu denen jener Knoten gerade einen Vielfachzyklustransfer ausführt. Diese Erfindung garantiert somit, daß kein anderer Knoten einen Zugriff auf den Bus 25 erlangen wird, bis der aktuelle Sender seinen Vielfachzyklustransfer beendet hat.

Claims (6)

1. Knoten (31), der folgendes aufweist:
eine Erweiterungsanfrageeinrichtung (111) zum Erzeugen einer Erweiterungsanfrage für den Knoten (31) zu Zeiten, zu denen der Knoten mehr als einen Buszyklus benötigt, um eine Nachricht zu transferieren;
eine Erweiterungs-Zykluseinrichtung (122) zum Aktivieren eines Erweiterungs-Buszyklus-Signals, wenn der Knoten (31) ein Sender wird, zu Zeiten, zu denen die Erweiterungsanfrage für den Knoten vorhanden ist;
wobei der Knoten (31) dadurch gekennzeichnet ist, daß er mit einer Commander-Anfrageleitung (102), einer Responder-Anfrageleitung (104) und einer Zuteilungsleitung (114) gekoppelt ist, die ausschließlich zu dem Knoten gehören, und mit jedem einer Vielzahl anderer Knoten durch einen Hängebus (25) gekoppelt ist, wobei der Knoten (31) ein Sender wird, um eine Nachricht, die einen Befehl enthält oder Zurücksende-Daten enthält, auf dem Hängebus während eines oder mehrerer Zyklen des Busses zu transferieren, wobei ein Commander-Knoten (31) eine Transaktion auf dem Hängebus (25) durch Durchführen eines Befehlstransfers initiiert, wobei ein Responder-Knoten (51) die Transaktion auf dem Hängebus (25) durch Durchführen eines Zurücksende-Datentransfers in Antwort auf den Befehlstransfer beendet, und wobei ein Knoten auf den Hängebus (25) zugreifen kann, nachdem der Commander- Knoten (31) eine Transaktion initiiert, wo der Responder-Knoten (51) nicht sofort die Transaktion beendet, wobei der Knoten (31) als ein Commander-Knoten oder als ein Responder-Knoten arbeiten kann und weiterhin folgendes aufweist:
eine Busanfrageeinrichtung (65), die mit der Commander-Anfrageleitung (102) und der Responder-Anfrageleitung (104) gekoppelt ist, zum Erzeugen einer Commander-Busanfrage und zum Senden der Commander-Busanfrage auf der Commander-Anfrageleitung (102) zu Zeiten, zu denen ein Befehl auf den Bus (25) zu transferieren ist, und zum Erzeugen einer Responder-Busanfrage auf der Responder-Anfrageleitung (104) zu Zeiten, zu denen Zurücksende-Daten von dem Knoten auf den Bus zu transferieren sind; und
eine Buszugriffseinrichtung (124), die mit der Zuteilungsleitung (114) gekoppelt ist, zum Erhalten einer Kontrolle über den Hängebus (25), um den Knoten (31) freizugeben, während eines Anfangs-Zugriffs-Zyklus ein Sender zu werden, und zwar in Antwort auf einen Empfang einer bedingten Buszuteilung auf der Zuteilungsleitung (114) zu Zeiten, zu denen das Erweiterungs-Buszyklus-Signal nicht durch irgendeinen der anderen Knoten aktiviert ist, und zum Beibehalten der Kontrolle über den Hängebus (25), um den Knoten (31) freizugeben, während Buszyklen, die dem Anfangs-Zugriffs-Zyklus nachfolgen, der Sender zu bleiben, zu Zeiten, zu denen das Erweiterungs-Buszyklus-Signal durch den Knoten aktiviert ist.
2. Knoten nach Anspruch 1, wobei:
der Knoten (31) durch die Commander-Anfrageleitung (102), die Responder-Anfrageleitung (104) und die Zuteilungsleitung (114) mit einem zentralen Zuteiler (28) gekoppelt ist;
der Knoten (31) mit jedem der Vielzahl anderer Knoten durch eine geteilte Erweiterungs-Buszyklus-Leitung (120) gekoppelt ist;
die Commander-Busanfragen synchron gesendet werden und die Responder-Busanfragen synchron gesendet werden;
die Erweiterungs-Zykluseinrichtung (122) mit der Erweiterungs-Buszyklus-Leitung (120) zum Aktivieren des Erweiterungs-Buszyklus-Signals darauf gekoppelt ist; und
die Buszugriffseinrichtung (124) weiterhin mit der Erweiterungs-Buszyklus-Leitung (122) zum Erhalten einer Kontrolle über den Hängebus (25) gekoppelt ist.
3. Knoten nach Anspruch 2, wobei der zentrale Zuteiler (28) eine bedingte Buszuteilung zu einem Knoten liefert, der eine Responder-Busanfrage erzeugt, vor einem Liefern einer bedingten Buszuteilung zu einem Knoten, der eine Commander-Busanfrage erzeugt.
4. Knoten nach einem der vorangehenden Ansprüche, wobei die Buszugriffseinrichtung (124) eine Einrichtung (142) enthält zum Geltendmachen eines Systembus-Treiberfreigabe-Signals in dem Knoten (31), um den Knoten freizugeben, während eines Anfangs-Zugriffs- Zyklus eine Kontrolle über den Hängebus (25) zu erhalten, und zwar in Antwort auf einen Empfang einer bedingten Buszuteilung auf der Zuteilungsleitung (114), zu Zeiten, zu denen ein Erweiterungs-Buszyklus-Signal nicht durch irgendeinen der anderen Knoten aktiviert ist, und zum Geltendmachen des Systembus -Treiberfreigabe-Signals, um den Knoten freizugeben, während Buszyklen die Kontrolle über den Hängebus (25) beizubehalten, die dem Anfangs-Zugriffs-Zyklus nachfolgen, zu Zeiten, zu denen der Erweiterungs-Buszyklus durch den Knoten aktiviert ist.
5. Verfahren, durch das ein Knoten (31) einen Zugriff auf einen Bus (25) erhält, das folgende Schritte aufweist:
Erzeugen einer Erweiterungsanfrage für den Knoten (31) zu Zeiten, zu denen der Knoten mehr als einen Buszyklus zum Transferieren einer Nachricht benötigt;
Aktivieren eines Erweiterungs-Buszyklus-Signals, wenn der Knoten ein Sender wird, zu Zeiten, zu denen die Erweiterungsanfrage für den Knoten vorhanden ist;
wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist:
Koppeln des Knotens mit einer Commander-Anfrageleitung (102), einer Responder-Anfrageleitung (104) und einer Zuteilungsleitung (114), die ausschließlich zu dem Knoten gehören, und Koppeln des Knotens (31) mit jedem einer Vielzahl anderer Knoten durch einen Hängebus (25), wobei ein Knoten (31) ein Sender wird, um eine Nachricht, die einen Befehl enthält oder Zurücksende-Daten enthält, auf dem Hängebus während eines oder mehrerer Zyklen des Busses zu transferieren, wobei ein Commander-Knoten (31) eine Transaktion auf dem Hängebus (25) durch Durchführen eines Befehlstransfers initiiert, ein Responder-Knoten (51) die Transaktion auf dem Hängebus (25) durch Durchführen eines Zurücksende-Datentransfers in Antwort auf den Befehlstransfer beendet, und wobei ein Knoten auf den Hängebus (25) zugreifen kann, nachdem der Commander-Knoten (31) eine Transaktion initiiert und bevor der Responder-Knoten (51) die Transaktion beendet; wobei das Verfahren weiterhin die folgenden Schritte enthält:
wenn der Knoten (31) als ein Commander-Knoten handelt, Erzeugen einer Commander-Busanfrage und Senden der Commander-Busanfrage auf der Commander-Anfrageleitung (102) zu Zeiten, zu denen ein Befehl von dem Knoten auf den Bus (25) zu transferieren ist;
wenn der Knoten (31) als ein Responder-Knoten handelt, Erzeugen einer Responder-Busanfrage und Senden der Responder-Busanfrage auf der Responder-Anfrageleitung (102) zu Zeiten, wenn Zurücksende-Daten von dem Knoten auf den Bus (25) zu transferieren sind;
Erhalten einer Kontrolle über den Hängebus (25) während eines Anfangs-Zugriffs-Zyklus in Antwort auf einen Empfang einer bedingten Buszuteilung auf der Zuteilungsleitung zu Zeiten, zu denen ein Erweiterungs-Buszyklus-Signal nicht durch irgendeinen der anderen Knoten aktiviert ist; und
Beibehalten der Kontrolle über den Hängebus während Buszyklen, die dem Anfangs-Zugriffs-Zyklus nachfolgen, zu Zeiten, zu denen der Erweiterungs-Buszyklus durch den Knoten aktiviert ist.
6. Verfahren nach Anspruch 5, das folgendes enthält:
Koppeln des Knotens (31) mit einem zentralen Zuteiler (28) durch die Commander-Anfrageleitung (102), die Responder-Anfrageleitung (104) und die Zuteilungsleitung (114);
wobei der zentrale Zuteiler (28) eine bedingte Buszuteilung zu einem Knoten liefert, der eine Responder-Busanfrage erzeugt, vor einem Liefern einer bedingten Buszuteilung zu einem Knoten, der eine Commander-Busanfrage erzeugt;
Koppeln des Knotens mit jedem der Vielzahl anderer Knoten durch eine geteilte Erweiterungs-Buszyklus-Leitung (120) für die Aktivierung des Erweiterungs-Buszyklus-Signals darauf; und
synchrones Senden der Commander-Busanfragen und synchrones Senden der Responder-Busanfragen.
DE3850387T 1987-05-01 1988-04-22 Vorrichtung und verfahren zum zugriff eines knotens auf einen bus. Expired - Lifetime DE3850387T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/044,490 US4947368A (en) 1987-05-01 1987-05-01 Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers
PCT/US1988/001358 WO1988008579A1 (en) 1987-05-01 1988-04-22 Apparatus and method for a node to obtain access to a bus

Publications (2)

Publication Number Publication Date
DE3850387D1 DE3850387D1 (de) 1994-07-28
DE3850387T2 true DE3850387T2 (de) 1995-03-09

Family

ID=21932666

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3850387T Expired - Lifetime DE3850387T2 (de) 1987-05-01 1988-04-22 Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.

Country Status (8)

Country Link
US (1) US4947368A (de)
EP (1) EP0346398B1 (de)
JP (1) JPH0623969B2 (de)
KR (1) KR910007645B1 (de)
AU (1) AU605873B2 (de)
CA (1) CA1303228C (de)
DE (1) DE3850387T2 (de)
WO (1) WO1988008579A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0329606A3 (de) * 1988-02-12 1991-04-03 Ciba-Geigy Ag Neue Antibiotika aus Myxococcus
US5218702A (en) * 1988-07-06 1993-06-08 Motorola, Inc. System for selecting request for a resource before decoding of requested resource address and validating selection thereafter
US5239638A (en) * 1988-12-30 1993-08-24 Intel Corporation Two strobed memory access
US5127089A (en) * 1989-07-03 1992-06-30 Motorola, Inc. Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence
US5185865A (en) * 1989-08-04 1993-02-09 Apple Computer, Inc. System for simulating block transfer with slave module incapable of block transfer by locking bus for multiple individual transfers
US5559962A (en) * 1989-10-09 1996-09-24 Yamaha Corporation Data transmission system selecting both source and destination using addressing mechanism
US5293493A (en) * 1989-10-27 1994-03-08 International Business Machines Corporation Preemption control for central processor with cache
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
US6247144B1 (en) * 1991-01-31 2001-06-12 Compaq Computer Corporation Method and apparatus for comparing real time operation of object code compatible processors
US5454082A (en) * 1991-09-18 1995-09-26 Ncr Corporation System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus
CA2080608A1 (en) * 1992-01-02 1993-07-03 Nader Amini Bus control logic for computer system having dual bus architecture
GB2273376B (en) * 1992-12-11 1997-03-12 Sony Corp Data processing
JP3608804B2 (ja) * 1993-05-14 2005-01-12 株式会社ソニー・コンピュータエンタテインメント バス制御装置
US5388245A (en) * 1993-06-01 1995-02-07 Intel Corporation Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
US5590289A (en) * 1993-11-12 1996-12-31 Intel Corporation Method and apparatus for initializing a computer system having central and distributed address decode memory bus resources
JPH07244635A (ja) * 1994-01-14 1995-09-19 Fujitsu Ltd バス使用権調停回路及び方法
US5689660A (en) * 1995-02-28 1997-11-18 Hewlett-Packard Co. Enhanced peripheral component interconnect bus protocol
US5671369A (en) * 1995-12-22 1997-09-23 Unisys Corporation Bus grant overlap circuit
US5907688A (en) * 1996-06-28 1999-05-25 Intel Corporation Smart arbitration for non-symmetric data streams
US5928346A (en) * 1996-09-11 1999-07-27 Hewlett-Packard Company Method for enhanced peripheral component interconnect bus split data transfer
DE102004024849B4 (de) * 2003-05-23 2008-11-27 Samsung Electronics Co., Ltd. Arbitrierungseinheit, zugehöriges Bussystem und Arbitrierungsverfahren
KR100626362B1 (ko) 2003-05-23 2006-09-20 삼성전자주식회사 고속 대역폭의 시스템 버스를 중재하기 위한 중재기, 중재기를 포함하는 버스 시스템 및 버스 중재 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665412A (en) * 1970-07-20 1972-05-23 Informalique Comp Int Numerical data multi-processor system
US4030075A (en) * 1975-06-30 1977-06-14 Honeywell Information Systems, Inc. Data processing system having distributed priority network
US4161786A (en) * 1978-02-27 1979-07-17 The Mitre Corporation Digital bus communications system
US4229791A (en) * 1978-10-25 1980-10-21 Digital Equipment Corporation Distributed arbitration circuitry for data processing system
US4232366A (en) * 1978-10-25 1980-11-04 Digital Equipment Corporation Bus for a data processing system with overlapped sequences
JPS56159750A (en) * 1980-05-14 1981-12-09 Toshiba Corp Bus control system
US4375639A (en) * 1981-01-12 1983-03-01 Harris Corporation Synchronous bus arbiter
US4471481A (en) * 1981-02-11 1984-09-11 The Boeing Company Autonomous terminal data communications system
US4456956A (en) * 1981-08-24 1984-06-26 Data General Corp. Method and apparatus for controlling access of a network transmission bus between a plurality of spaced apart computer stations
US4423384A (en) * 1981-12-21 1983-12-27 Motorola, Inc. Asynchronous multi-port arbiter
JPS58119247A (ja) * 1982-01-08 1983-07-15 Hitachi Ltd デ−タ通信方式
US4473880A (en) * 1982-01-26 1984-09-25 Intel Corporation Arbitration means for controlling access to a bus shared by a number of modules
US4560985B1 (en) * 1982-05-07 1994-04-12 Digital Equipment Corp Dual-count, round-robin ditributed arbitration technique for serial buses
US4476467A (en) * 1982-06-08 1984-10-09 Cromemco Inc. Random entry intercomputer network with collision prevention
US4514843A (en) * 1982-12-02 1985-04-30 At&T Bell Laboratories Packet switched communication system comprising collision avoidance means
JPS59111561A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US4660169A (en) * 1983-07-05 1987-04-21 International Business Machines Corporation Access control to a shared resource in an asynchronous system
US4626843A (en) * 1983-09-27 1986-12-02 Trw Inc. Multi-master communication bus system with parallel bus request arbitration
US4628311A (en) * 1983-10-19 1986-12-09 International Business Machines Corporation Carrier sense multiple access with collision avoidance utilizing rotating time staggered access windows
US4622630A (en) * 1983-10-28 1986-11-11 Data General Corporation Data processing system having unique bus control protocol
US4646232A (en) * 1984-01-03 1987-02-24 Texas Instruments Incorporated Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
US4652873A (en) * 1984-01-18 1987-03-24 The Babcock & Wilcox Company Access control for a plurality of modules to a common bus
US4644348A (en) * 1984-11-13 1987-02-17 Itt Corporation Apparatus for providing masterless collision detection
US4638311A (en) * 1984-11-13 1987-01-20 Itt Corporation Apparatus for providing masterless collision detection
US4703420A (en) * 1985-02-28 1987-10-27 International Business Machines Corporation System for arbitrating use of I/O bus by co-processor and higher priority I/O units in which co-processor automatically request bus access in anticipation of need
US4730268A (en) * 1985-04-30 1988-03-08 Texas Instruments Incorporated Distributed bus arbitration for a multiprocessor system
US4908749A (en) * 1985-11-15 1990-03-13 Data General Corporation System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal

Also Published As

Publication number Publication date
JPH0623969B2 (ja) 1994-03-30
EP0346398B1 (de) 1994-06-22
AU605873B2 (en) 1991-01-24
KR910007645B1 (ko) 1991-09-28
KR890702140A (ko) 1989-12-23
US4947368A (en) 1990-08-07
JPH01502627A (ja) 1989-09-07
AU1721788A (en) 1988-12-02
WO1988008579A1 (en) 1988-11-03
CA1303228C (en) 1992-06-09
DE3850387D1 (de) 1994-07-28
EP0346398A1 (de) 1989-12-20

Similar Documents

Publication Publication Date Title
DE3850387T2 (de) Vorrichtung und verfahren zum zugriff eines knotens auf einen bus.
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3878908T2 (de) Hochgeschwindigkeitsbusschnittstelle mit einer niedrigen pinanzahl.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE68922784T2 (de) Mehrfachbus-Mikrorechnersystem mit Busarbitrierung.
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE69021603T2 (de) Buszugriffsarbitrierung in digitalen Rechnern.
DE3888353T2 (de) Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3887886T2 (de) Verfahren und anordnung zur sicherung von angepasstem zugriff zu betriebsmitteln in einem multiprozessordatenverarbeitungssystem.
DE3853574T2 (de) Steuerung von Benutzerantworten in einem Übertragungsbus.
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE2854485C2 (de) Datenverarbeitungsanlage
DE69307717T2 (de) Priorisierung von mikroprozessoren in multiprozessorrechnersystemen
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE69834519T2 (de) Bussteuerungssystem und -verfahren
DE3750680T2 (de) Multiprozessor-Busprotokoll.
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69628609T2 (de) Distribuiertes Pipeline-Busarbitrierungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN