DE3486299T2 - Bus-Arbitrierungssystem. - Google Patents

Bus-Arbitrierungssystem.

Info

Publication number
DE3486299T2
DE3486299T2 DE3486299T DE3486299T DE3486299T2 DE 3486299 T2 DE3486299 T2 DE 3486299T2 DE 3486299 T DE3486299 T DE 3486299T DE 3486299 T DE3486299 T DE 3486299T DE 3486299 T2 DE3486299 T2 DE 3486299T2
Authority
DE
Germany
Prior art keywords
cycle
during
data
bus
devices
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 - Fee Related
Application number
DE3486299T
Other languages
English (en)
Other versions
DE3486299D1 (de
Inventor
Franck C Bomba
Stephen R Jenkins
William D Strecker
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 DE3486299D1 publication Critical patent/DE3486299D1/de
Application granted granted Critical
Publication of DE3486299T2 publication Critical patent/DE3486299T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Debugging And Monitoring (AREA)

Description

    A. Gebiet der Erfindung
  • Die Erfindung betrifft eine Digitalrechner-Architektur, und insbesondere eine Einrichtung zur Verbindung für eine Kommunikation mit jedem anderen solcher verschiedener Geräte, wie beispielsweise Prozessoren, einem Speicher (Hauptspeicher) und I/O-Geräten, wie beispielsweise einem Massenspeicher (z. B. Disketten und Bänder), Konsolen-Endgeräten, Druckern, und anderen solchen Geräten in einem Digitalrechner-System. Die bestimmte Erfindung, die hierin beansprucht ist, betrifft eine verbesserte Einrichtung zum Entscheiden zwischen Geräten, die nach einer Kontrolle über einen Kommunikationspfad in einem Digitalrechner-System suchen.
  • B. Stand der Technik
  • Da die Kosten für Digitalrechner-Systeme und ihre Bauteile laufend fallen, sind mehr und mehr unterschiedliche Arten von Datenverarbeitungsgeräten in diesen Systemen verbunden. Die Geräte haben sich in einem weiten Bereich unterscheidende Eigenschaften in bezug auf die Geschwindigkeit (d. h. die Rate, mit der sie Daten annehmen oder senden können), eine benötigte Steuerinformation, ein Datenformat und andere solche Eigenschaften, und sie müssen dennoch miteinander kommunizieren. Beispielsweise müssen Prozessoren oft mit einem Hauptspeicher (sehr hohe Geschwindigkeit), Massenspeicher-Geräten, wie beispielsweise einem Diskettenspeicher (hohe Geschwindigkeit) und Ausgabe-Geräten, wie beispielsweise Druckern (sehr niedrige Geschwindigkeit) kommunizieren. Ein wichtiger Gesichtspunkt für eine Verbindungseinrichtung ist ihre Fähigkeit, eine Entscheidung unter den konkurrierenden Forderungen von Vorrichtungen zu unterstützen, die miteinander kommunizieren möchten.
  • Es muß irgendeine Form einer Entscheidung durchgeführt werden, um eine Anfrage nach einem Zugriff auf den Kommunikationspfad zu erlauben, und somit ist es wesentlich, daß der Entscheidungsprozeß effizient ist, da er sonst einen übermäßigen Teil der Betriebsmittel des Rechnersystems braucht. Weiterhin ist es allgemein wünschenswert, daß der Entscheidungsprozeß beim Zuordnen des Kommunikationspfads unter den anfragenden Vorrichtungen einigermaßen flexibel ist. In Umgebungen, die zulassen, daß eine große Vielfalt von Geräten an dem Kommunikationspfad angebracht wird, und insbesondere in Umgebungen, die zusätzlich den Anschluß vieler Prozessoren an den Kommunikationspfad zulassen, führen die konkurrierenden Forderungen bei einem Entscheidungsmechanismus oft zu unerwünschten Beschränkungen des Systembetriebs und der Flexibilität.
  • Ein weiterer wichtiger Aspekt einer Verbindungseinrichtung ist ihre Unterstützung von Unterbrechungen. Die Art, auf die diese Unterbrechungen eingegeben wird, resultiert oft in signifikanten Beschränkungen der erreichbaren Flexibilität beim Anbringen eines Geräts an dem Kommunikationspfad.
  • Zusätzlich zum Bereitstellen von Kommunikationen zwischen an einem einzelnen Zentralprozessor angebrachten Geräten ist es häufig wünschenswert, einen Zugriff zwischen solchen Geräten und einem oder mehreren zusätzlichen Prozessoren wie auch zwischen den mehreren Prozessoren selbst zu bieten. Dieses Erfordernis einer Kommunikation zwischen Prozessoren fügt dem Verbindungsproblem eine wesentlich erhöhte Komplexität hinzu, und zwar aufgrund der Notwendigkeit, einen koordinierten Betrieb sicherzustellen. Ein Gesichtspunkt einer Kommunikation zwischen Prozessoren, der besondere Aufmerksamkeit verlangt, ist das Problem, das durch Verwenden von Caches an einem oder mehreren der Prozessoren verursacht wird. Solche Caches können Verarbeitungsfehler verursachen, wenn nicht geeignete Schritte vorgesehen werden, um sicherzustellen, daß ein Zugriff zu dem Cache nur dann erlaubt wird, wenn die Daten in dem Cache "gültig" sind, d. h. in einem Hauptspeicher nicht geändert worden sind, seit sie in den Cache gebracht wurden. Wenn eine Cache-Steuerung nicht effizient durchgeführt wird, kann die Leistungsfähigkeit des Systems als ein Ganzes signifikant verschlechtert werden.
  • Kurze Beschreibung der Erfindung A. Aufgaben der Erfindung
  • Es ist demgemäß eine Aufgabe der Erfindung, eine verbesserte Einrichtung zum Verbinden verschiedener Geräte in einem Digitalrechner-System zu schaffen.
  • Weiterhin ist es eine Aufgabe der Erfindung, eine verbesserte Einrichtung zum Verbinden von Geräten in einem Digitalrechner- System zu schaffen, die ein Anbringen einer großen Vielfalt von Geräten mit minimalen Anbringungsbeschränkungen zuläßt.
  • Es ist eine weitere Aufgabe der Erfindung, eine verbesserte Einrichtung zum Verbinden von Geräten zu schaffen, die Verbindungs-Betriebsmittel unter Geräten effizient zuordnet, die untereinander nach einer Kommunikation fragen.
  • Es ist noch eine weitere Aufgabe der Erfindung, eine Einrichtung zum Verbinden von Geräten in einem Digitalrechner-System zu schaffen, die effektiv geeignet ist für Kommunikationen zwischen Geräten mit unterschiedlichen Zugriffsprioritäten.
  • Die Erfindung betrifft hauptsächlich eine Verbindungsschaltung in einem Gerät zur Bereitstellung einer Kommunikationsschnittstelle für das Gerät zu einem nicht-hängenden Bus, wobei das Gerät eine einzige ID-Nummer hat und das Gerät einen Vorgang zu Zeiten einleitet, wenn ein Anforderungssignal durch die Aktivierung einer besetzten Leitung aktiviert wird, um Zugriff auf den Bus zu erreichen, wobei der Bus eine Vielzahl von Informationsleitungen, eine Vielzahl von Datenleitungen, eine Nicht-Entscheidungs-Leitung (No Arbitration Line) und die besetzte Leitung umfaßt, und worin jeder der Vorgänge einen Befehls-/Adreß-Zyklus hat, der von einem eingebetteten Entscheidungszyklus gefolgt wird, der dann von mindestens einem Datenzyklus gefolgt wird, wobei die Nicht-Entscheidungs- Leitung von jedem Gerät aktiviert wird, ausgenommen während dem Befehls-/Adreß-Zyklus, wobei die Schaltung folgendes umfaßt:
  • eine Steuereinrichtung, die mit der Nicht-Entscheidungs- Leitung und der besetzten Leitung verbunden ist und auf eine Deaktivierung der Nicht-Entscheidungs-Leitung anspricht, um anzuzeigen, wenn der eingebettete Entscheidungszyklus während eines aktuellen Vorgangs stattfindet;
  • eine Treibereinrichtung, die mit der Steuereinrichtung verbunden ist, um eine der zwei Datenleitungen, entsprechend dem Gerät, während dem eingebetteten Entscheidungszyklus zu aktivieren;
  • eine Prioritätsauflösungs-Einrichtung, die mit der Datenleitung verbunden ist, um ein gewonnenes Vorrangsignal zu aktivieren, das anzeigt, daß das Gerät die höchste Priorität während dem eingebetteten Entscheidungszyklus hat, wobei die Aktivierung des gewonnenen Vorrangsignals dem Gerät ermöglicht, die besetzte Leitung während einem anschließenden Zyklus zu aktivieren, um den nächsten Vorgang dann einzuleiten, nachdem die besetzte Leitung durch ein vorheriges Gerät, das während des aktuellen Vorgangs Zugriff auf den Bus hat, aktiviert wird;
  • eine Empfangsregister- und Vergleichseinrichtung, die mit den Informationsleitungen verbunden ist, um die Identifikationsnummer des Geräts mit einer Identifikationsnummer des vorherigen Geräts, die auf den Informationsleitungen während dem eingebetteten Entscheidungszyklus vorhanden ist, zu vergleichen, und um ein Bezugssignal in sowohl einem ersten als auch einem zweiten Zustand zu setzen, dementsprechend, ob die Identifikationsnummer des Geräts, das einen Vorgang einleiten will, größer ist als die des vorherigen Geräts; und
  • eine Schaltungseinrichtung, die auf die Empfangsregister- und Vergleichseinrichtung anspricht und mit der Treibereinrichtung verbunden ist, um eine dem Gerät entsprechende Datenleitung mit geringer Priorität zu aktivieren, während dem eingebetteten Entscheidungszyklus, wenn die Bezugszahl im ersten Zustand ist, und um eine dem Gerät entsprechende Datenleitung hoher Priorität während der eingebetteten Vermittlungsperiode zu aktivieren, wenn die Bezugszahl im zweiten Zustand ist, worin das Gerät eine variable Priorität hat und ihm der Zugriff auf den Bus zugeteilt ist, der einem zweifach durchlaufenen, doppelten Round-Robin-Algorithmus ziemlich entspricht.
  • B. Zusammenfassende Beschreibung der Erfindung
  • Diese Anmeldung ist auf einen von mehreren zugehörigen Gesichtspunkten der Verbindungseinrichtung gerichtet.
  • Insbesondere ist sie auf die Einrichtung gerichtet, durch die den nach einem Zugriff suchenden Vorrichtungen ein Zugriff auf einen Kommunikationspfad zu einer gegebenen Zeit gewährt wird. Aufgrund der Beziehung unter den einzelnen Aspekten des Gesamtsystems wird zuerst die Struktur des Gesamtsystems als Ganzes beschrieben, und die für die vorliegende Erfindung spezifischen Aspekte werden dann etwas genauer beschrieben. Die hierin aufgestellten Ansprüche definieren die bestimmte Erfindung der vorliegenden Anmeldung, nämlich die Einrichtung zum Bestimmen eines Kommunikationspfads und zum Gewähren eines Zugriffs darauf.
  • 1. Allgemeine Beschreibung der Verbindungseinrichtung
  • Die hierin beschriebene Verbindungseinrichtung ist verbunden mit und bildet vorzugsweise einen Teil von jedem Gerät, das zu verbinden ist. Es steuert das Senden und Empfangen von Signalen auf einem Kommunikationspfad (z. B. einem parallel verdrahteten Bus), der jedes der Geräte verbindet. Die Verbindungseinrichtung stellt eine einheitliche Steuerung von Kommunikationen zwischen den Geräten bereit, die durch den Kommunikationspfad verbunden sind. Diese Geräte sind parallel zu dem Kommunikationspfad angeschlossen, und ihr Betrieb ist unabhängig von einer physikalischen Anordnung an dem Pfad. Jedem Gerät, das mit dem Kommunikationspfad verbunden ist, ist eine Identifikationsnummer ("ID") zugeteilt, die für eine Anzahl von Zwecken verwendet wird, wie es hierin nachfolgend beschrieben ist. Bei einer Implementierung der Verbindungseinrichtung ist die Zuordnung durch einen physikalischen Stekker hergestellt, der in das Gerät eingefügt ist, und einen Leitungsdraht zum Bestimmen der Identifikationsnummer. Da dieser physikalische Stecker von Schlitz zu Schlitz bewegt werden kann, gibt es keine logische Abhängigkeit zwischen dem Gerät und dem Schlitz, in dem er steckt. Diese Nummer wird während der Systeminitialisierung in ein Steuerregister geladen und ist darauffolgend zur Verwendung durch das Gerät verfügbar.
  • Die Verbindungseinrichtung implementiert einen spezifischen Satz von Befehlen, die eine effiziente Kommunikation zwischen Geräten bereitstellen. Diese Befehle werden bei einer Anzahl verschiedener Operationen (nachfolgend "Vorgänge" genannt) ausgeführt und übertragen. Jeder Vorgang ist in eine Anzahl von Zyklen unterteilt, einschließlich eines Befehls-/Adreß- Zyklus, bei dem der Operationscode für den bestimmten Vorgang (z. B. Lesen, Schreiben, Unterbrechen, etc.) über den Bus zu anderen Geräten übertragen wird, und zwar zusammen mit einer Information, die die Geräte identifiziert, zu denen der Befehl gerichtet ist, oder eine andere zu dem Befehl gehörige Information bereitstellt; eines eingebetteten Entscheidungszyklus zum Identifizieren des Geräts, dem als nächstes ein Zugriff zu dem Kommunikationspfad erlaubt wird; und eines oder mehrerer Datenzyklen, wobei Benutzerdaten (d. h. der letzte Gegenstand der Verarbeitung) oder andere Information übertragen wird. Die Vorgangssignale werden über dem Kommunikationspfad über getrennte Gruppen von Leitungen übertragen, die hierin Informationstransfer-Klassenleitungen, Antwort- Klassenleitungen und Leistungs-Klassenleitungen genannt sind. Mit Ausnahme von Zeit- und Phasensignalen (die später beschrieben werden), werden diese Signale als aktiviert detektiert, wann immer eine oder mehrere Verbindungseinrichtungen sie aktivieren. Die Informationstransfer- Klassenleitungen umfassen wiederum Informations-, Daten- und Paritätsleitungen und übertragen Befehls-, Datenzustands- und bestimmte andere Information, die bei dem Vorgang verwendet wird.
  • Die Antwort-Klassenleitungen stellen eine positive Bestätigung eines fehlerfreien Empfangs bereit, sowie auch zusätzliche Antworten zum Steuern oder Ändern des Vorgangs. Diese Fehlerüberwachung trägt signifikant zur System-Zuverlässigkeit bei, erfordert eine kleine oder keine zusätzliche Bandbreite und läßt das antwortende Gerät das normale Fortschreiten des Vorgangs ändern, und trägt somit in starkem Maß zur Systemflexibilität bei. Beispielsweise kann ein Gerät, das eine zusätzliche Zeit zum Antworten auf einen Befehl benötigt, der zu ihm gerichtet ist, über jene hinaus, die normalerweise durch den Befehl bereitgestellt ist, eines oder mehrere der Antwortsignale benutzen, um ein Beenden des Vorgangs (innerhalb vorbestimmter Grenzen) zu verzögern, bis das Gerät bereit ist, zu antworten, oder kann das Gerät über seine Unfähigkeit in Kenntnis setzen, zu jener Zeit zu antworten, wodurch die Kommunikationspfade für andere Vorgänge frei werden.
  • Ein Satz von Steuersignalen wird erzeugt und durch die Verbindungseinrichtung in jedem Gerät benutzt, um einen effizienten und geordneten Transfer eines Zugriffs zu dem Kommunikationspfad von einem Gerät zu einem anderen bereitzustellen. Zusätzlich erzeugt jedes Gerät lokale Zeitgabesignale von einem gemeinsamen Systemtakt, um dadurch eine synchrone Operation sicherzustellen. Diese Signale, sowie auch Test- Steuersignale, werden auch auf getrennten Leitungen über den Bus übertragen. Schließlich überwachen die Geräte den Zustand der Wechsel- und Gleichleistung in dem System und stellen Signale bereit, die den Zustand dieser Leistungsquellen anzeigen, so daß eine geeignete Handlung vorgenommen werden kann, wenn es nötig ist.
  • Die hierin beschriebene Verbindungseinrichtung ist ungewöhnlich mächtig und vielseitig und ist gut geeignet zur ökonomischen Herstellung durch Großintegrations-(LSI-)-Techniken, die zur Zeit verfügbar sind. Dies resultiert aus der relativ beschränkten Anzahl physikalisch getrennter Leitungsdrähte, die zum Führen der Befehls-, Steuer-, Informations- und Datensignale zwischen den Geräten erforderlich sind, was von der effizienten Auswahl und Verteilung von Funktionen unter diesen Leitungen kommt. Nichtsdestoweniger erlegt die Verbindungseinrichtung der physikalischen Anordnung der an sie angebrachten Geräte im wesentlichen keine Beschränkungen auf. Weiterhin läßt sie eine Verbindung einer großen Vielfalt von Geräten zu und ist sowohl für einen Einzel-Prozessor als auch für Multi- Prozessor-Konfigurationen effizient geeignet.
  • Die europäische Veröffentlichung EP-A-0 076 196 lehrt ein System, bei der mehrere Prozessoren ein gemeinsames Betriebsmittel (z. B. eine Speicherbank) über einen gemeinsamen Bus teilen. Wenn es Konflikte bezüglich der Zugriffsanfragen (zu dem Bus) gibt, die durch die Prozessoren durchgeführt werden, ordnet eine Auflösungsschaltung den Zugriffsanfragen der Prozessoren ausgewählte Prioritäten zu. Bei einigen Arten nach dem Stand der Technik kann es eine Bus-Tot zeit geben, die in einer Wartezeit zum Holen oder übertragen der gewünschten Daten auf andere Weise resultiert. Bei bekannten Anordnungen nach dem Stand der Technik kann es auch ein Monopol für den einen oder den anderen Prozessor beim Bekommen eines Zugriffs zu den Diensten eines Busses geben, auch wenn der Bus nicht hängt, d. h. keine hängenden Lesevorgänge hat. Bei einigen bekannten Arten von Anordnungen nach dem Stand der Technik sind spezifisch zugeteilte Entscheidungsleitungen nötig.
  • 2. Allgemeine Beschreibung der hierin definierten spezifischen Erfindung
  • Gemäß der in dieser Anmeldung spezifisch definierten Erfindung überwacht jedes Gerät, das nach einer Kontrolle über den Pfad sucht, um in einen Vorgang mit anderen Geräten zu gelangen, die NO ARB-Steuerleitung. Wann immer gefunden wird, daß NO ARB deaktiviert ist, kann das Gerät in dem folgenden Zyklus entscheiden. Dieser Zyklus kann ein "freier" Entscheidungszyklus sein, d. h. einer, der zu Zeiten auftritt, wenn kein aktueller Vorgang an dem Durchgang stattfindet, oder kann ein "eingebetteter" Entscheidungszyklus sein, d. h. einer, der während des Fortschreitens eines Vorgangs auf dem Pfad auftritt.
  • Auf ein Erfassen eines Entscheidungszyklus hin aktiviert jedes solche Gerät eine NO ARB- und eine Einzelleitung entsprechend seiner Priorität. Die Signale werden in decodierter Form (d. h. als "einer von N", wobei N die Nummer zur Verfügung gestellter unterschiedlicher Prioritätspegel ist) auf den Datenleitungen des Kommunikationspfades aktiviert. Zur gleichen Zeit überwacht jedes Gerät die Datenleitungen und führt seine eigene Bestimmung diesbezüglich durch, ob es das Gerät ist, das unter den entscheidenden Geräten eine zuvor definierte Prioritätscharakteristik hat. Bei der bestimmten hierin spezifisch beschriebenen Ausführung wird eine Entscheidung bei zwei Prioritätspegeln durchgeführt, nämlich bei "hoch" und bei "niedrig". Weiterhin gibt es innerhalb jedes Pegels eine Teilniveau-Priorität, die in umgekehrter Relation zu der Geräte-Identifikationsnummer von hoch zu niedrig reicht, d. h. die Teilniveau-Priorität wird kleiner, wenn die Identifikationsnummer größer wird. Wie es hierin insbesondere beschrieben wird, bestimmt jedes Gerät für sich selbst, ob es das Gerät mit der höchsten Priorität ist, das sich für einen Zugriff auf den Kommunikationspfad zu jener Zeit entscheidet. Das Gerät, das bestimmt, daß es das Gerät mit der höchsten Priorität ist, das nach einem Zugriff sucht, nimmt den Zustand eines "Hänge-Masters" an, und fährt fort, NO ARB zu aktivieren, um andere Geräte davon abzuhalten, sich für eine Kontrolle über den Kommunikationspfad zu entscheiden, bis es eine Kontrolle über den Pfad annimmt. Der Hänge-Master kann eine Kontrolle über den Kommunikationspfad bei dem Zyklus annehmen, der jenem folgt, in dem BSY deaktiviert wird, und kann dadurch ein aktueller Master werden.
  • Weiterhin wird gemäß der vorliegenden Erfindung eine Entscheidung nicht nur bei verschiedenen Prioritätspegeln durchgeführt, sondern auch in verschiedenen Moden. Genauer ausgedrückt ist eine Moden-Steuereinrichtung vorgesehen, um eine Entscheidung durch ein Gerät bei einem einer Anzahl fester Prioritätspegel oder auf einer sich dynamisch ändernden Basis (z. B. bei einem "doppelten Round-Robin"-Entscheidungsmodus, der nachfolgend beschrieben ist) aufzubauen. Weiterhin kann das Gerät derart eingestellt werden, daß eine Entscheidung verhindert wird; dies hält es davon ab, eine Kontrolle über den Kommunikationspfad zu erlangen.
  • Eine Entscheidungsmodus-Steuerung wird über ein Steuerregister aufgebaut, auf das durch alle Geräte in dem System zugegriffen werden kann und das durch sie möglicherweise veränderbar ist.
  • Somit kann der Entscheidungsmodus des Geräts geändert werden, wenn es erforderlich ist, und zwar in Übereinstimmung mit den Notwendigkeiten für das System. Weiterhin wird in dem "doppelten Round-Robin-Modus" ein Zugriff zu dem Kommunikationspfad auf einer Basis geschaffen, die den Geräten über eine Zeitperiode im wesentlichen einen gleichen Zugriff gibt. Der Ausdruck "doppelter Round-Robin" wird hierin benutzt, um das Verhalten des dynamischen Entscheidungsmodus der Verbindungseinrichtung zu bezeichnen, der einem "reinen" Round-Robin- Schema entgegengesetzt ist. Bei dem letzteren erhält dann, wenn alle Geräte, die mit dem Kommunikationspfad verbunden sind, in diesem Modus sind, jedes genau einmal eine Kontrolle über den Pfad, bevor irgendein Gerät ein zweites Mal eine Kontrolle über den Pfad erhält. Im Gegensatz dazu sind in dem "doppelten Round-Robin"-Modus zwei Round-Robin-"Ringe" aufgebaut, wobei jeder in sich selbst ein "reiner" Round-Robin ist. Dies resultiert aus einem Benutzen der ID des vorherigen Kommunikationspfad-Masters bei der Prioritätsberechnung. Diese Ringe sind effektiv überlappt, und somit bietet der "doppelte Round-Robin"-Modus dieselbe "Fairneß" wie ein reiner Round-Robin, und zwar bis zu dem Ausmaß, daß kein Gerät immer von einer Kontrolle über den Kommunkationspfad ausgeschlossen ist, und im schlimmsten Fall ist eine Wartezeit für jedes Gerät dieselbe wie im reinen Round-Robin. Die doppelte Round- Robin-Entscheidung als solche ist schon in der GB-A-1 158 889 beschrieben. Wenn von einem Gerät zu irgendeiner bestimmten Zeit eine größere Bandbreite benötigt wird, kann der Entscheidungs-Prioritätsmodus jenes Geräts von einem dynamischen Modus zu einem festen Modus geändert werden, der insbesondere einen festen Modus für eine hohe Priorität enthält. In diesem Modus wird das gegebene Gerät mit einem Zugriff zu dem Kommunikationspfad für einen größeren Zeit- abschnitt als sonst ausgestattet, und es kann somit sogar größere Datenmengen über eine Zeitperiode übertragen.
  • Jedes Gerät, das in dem "doppelten Round-Robin"-Modus für eine Entscheidung arbeitet, vergleicht seine Identifikationsnummer während jedes eingebetteten Entscheidungszyklus mit der Identifikationsnummer des aktuellen Masters. Wenn die Identifikationsnummer eines gegebenen Geräts höher als die Identifikationsnummer des aktuellen Masters ist, erneuert das Gerät seine Priorität zu dem Pegel hoher Priorität; sonst behält es seine Priorität bei oder sie wird auf den Pegel niedriger Priorität gesetzt. Die Entscheidung zum Entscheiden in einem bestimmten eingebetteten Entscheidungszyklus wird vor einem Erneuern einer Priorität in jenem Zyklus durchgeführt, so daß die Entscheidungsentscheidung auf der Identifikationsnummer des vorherigen Masters basiert. Demgemäß werden Geräte, die niedrige ID-Nummern haben, und denen sonst ein Zugriff zu dem Kommunikationspfad durch Geräte mit einer höheren ID versagt werden könnte, periodisch auf einen Pegel niedriger Priorität degradiert.
  • Die Verbindungseinrichtung der vorliegenden Erfindung bietet signifikante Vorteile. Zuerst verwendet sie nur eine einzelne zusätzliche Leitung in dem Kommunikationspfad, um die Möglichkeiten für den Entscheidungsprozeß zu schaffen. Die übrigen Leitungen, die für die Entscheidung erforderlich sind, werden durch die Datenleitungen bereitgestellt, die notwendigerweise vorhanden sind, um die Daten zu übertragen, die das letzte Objekt des Kommunikationsaustausches sind. Somit eignet sich das System für eine Implementierung auf einem einzelnen integrierten Schaltkreis, welcher Vorteil signifikant ist, und beim Aufbauen eines ökonomischen Systems oft kritisch ist. Weiterhin bietet das Entscheidungssystem eine äußerst flexible Art einer Zuordnung von Betriebsmitteln zwischen konkurrierenden Geräten, die nach einem Zugriff zu einer begrenzten Vorrichtung, nämlich dem Kommunikationspfad, suchen. Die Zuordnung relativer Prioritäten unter den Geräten kann auf eine zuvor definierte Weise unter Geräten geändert werden, die um einen Zugriff zu vorgegebenen Zeiten konkurrieren, oder kann in Übereinstimmung mit sich ändernden Systemanforderungen geändert werden. Weiterhin werden, weil eine Entscheidung unter allen Geräten verteilt wird, die mit dem Kommunikationspfad verbunden sind, die vielen Leitungen, die Beschränkungen bezüglich der physikalischen Anordnung und normalerweise mit einer zentralisierten Entscheidung verbundene signifikante Unkosten eliminiert. Demgemäß umfaßt er einen mächtigen und ungewöhnlich flexiblen Betriebsmodus.
  • Detaillierte Beschreibung
  • Das Vorangehende und andere und weitere Gegenstände und Merkmale der Erfindung werden aus der folgenden detaillierten Beschreibung der Erfindung leicht verstanden werden, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet wird, wobei:
  • Fig. 1A-1C Block- und Leitungsdiagramme verschiedener Prozessor und Gerätekonfigurationen sind, die bei der hierin beschriebenen Verbindungseinrichtung implementiert sein können.
  • Fig. 2 die Verbindungseinrichtung darstellt;
  • Fig. 3A-3C verschiedene Zeitgabesignale darstellen, die bei einer bestimmten Implementierung der Verbindungseinrichtung verwendet werden, die Art, auf die lokale Zeitgabesignale erzeugt werden, und ihre Verwendung beim Definieren eines "Vorgangs" zwischen Geräten, die mit der Verbindungseinrichtung verbunden sind;
  • Fig. 3D die Entscheidungsfunktionsablauffolge darstellt;
  • Fig. 3E BSY- und NO ARB-Ablauffolgen darstellen;
  • Fig. 4A-4H Tabellen sind, die die Struktur jedes der Vorgangstypen vorstellen, die durch die Verbindungseinrichtung benutzt werden;
  • Fig. 5A eine Tabelle ist, die die Befehlscodes des Verbindungseinrichtung zusammenfaßt, während Fig. 5B eine Tabelle ist, die die Datenzustandscodes der Verbindungseinrichtung zusammenfaßt;
  • Fig. 5C eine Zusammenfassung von Datenlängencodes der Verbindungseinrichtung ist;
  • Fig. 6 eine Antwort-Code-Übersichttabelle ist;
  • Fig. 7A-7I Diagramme des Basis-Registersatzes sind, der durch die Verbindungseinrichtung benutzt wird, und eine bestimmte Verwendung verschiedener Bits innerhalb jedes Registers zeigen; und
  • Fig. 8 ein Block- und Leitungsdiagramm ist, das eine logische Schaltung zur Implementierung der Entscheidungsfunktion der Verbindungseinrichtung darstellt.
  • 1. Detaillierte Beschreibung der Verbindungseinrichtung
  • Fig. 1A stellt die Verwendung der hierin beschriebenen Verbindungseinrichtung in einer Konfiguration dar, die typisch für kleine und relativ billige Rechnersysteme ist. Wie es dort dargestellt ist, sind ein Prozessor 10, ein Speicher 12, Endgeräte 14 und Massenspeichereinheiten (Disketten) 16 miteinander über eine Verbindungseinrichtung 18 und einen Kommunikationspfad 20 verbunden. In dem Fall des Prozessors 10 und des Speichers 12 sind die Verbindungseinrichtungen 18 vorzugsweise integral mit dem Gerät angeordnet und stellen somit die Kommunikationsschnittstelle zu dem Gerät bereit. In dem Fall der Endgeräte 14 und der Speichereinheiten 16 können jeweilige Zwischenadapter 22, 24 vorgesehen sein, um die Verbindung einer Anzahl von Endgeräte- oder Speichergeräten mit einer einzigen Verbindungseinrichtung 18 zu ermöglichen. Die Adapter dienen als Schnittstelle zwischen dem Kommunikationspfad 20 und dem Rest des Geräts. Wie er hierin verwendet wird, bezeichnet der Ausdruck "Gerät" eine oder mehrere Einheiten, die mit dem Kommunikationspfad durch eine gemeinsame Verbindungseinrichtung verbunden ist bzw. sind. Somit bestehen in Fig. 1A die Endgeräte 14 und der Adapter 22 aus einem einzigen Gerät 26; gleichermaßen sind der Prozessor 10 und der Hauptspeicher 12 jeweilige Geräte. In Fig. 1B besteht der Prozessor 32 und der Speicher 34 zusammen mit einem Adapter 40 aus einem einzelnen Gerät.
  • In Fig. 1A wird bemerkt werden, daß der Prozessor 10 den Speicher 12 mit den anderen Geräten teilt, die mit dem Kommunikationspfad 20 verbunden sind. Dies resultiert in geringeren Systemkosten, begrenzt aber die Systemgeschwindigkeit, weil der Pfad 20 geteilt werden muß. In Fig. 1B ist dieses Problem durch Vorsehen eines separaten Speicherpfads 30 zwischen einem Prozessor 32 und einem Speicher 34 gelöst. Der Prozessor und der Speicher sind dann mit Endgeräten 36 und Massenspeichergeräten 38 über einen Adapter 40, einen Pfad 42 und Adapter 46 und 48 verbunden. Der Adapter 40 weist eine mit ihm integrierte Verbindungseinrichtung 18 auf, die den Adapter mit dem Pfad 42 verbindet. Gleichmaßen haben die Adapter 46 und 48 jeweils integrierte Verbindungseinrichtungen 18, die sie mit dem Pfad 42 verbinden. Ein System dieser Art bietet eine höhere Leistungsfähigkeit, was aber mit höheren Kosten verbunden ist. Jedoch ist es noch vollständig kompatibel mit der hierin beschriebenen Verbindungseinrichtung.
  • Schließlich stellt Fig. 1C die Verwendung des Verbindungseinrichtungsgeräts in einem Multi-Prozessorsystem dar. In dieser Figur sind Prozessoren 50 und 52 mit jeweiligen primären Speichern 54, 56 durch jeweilige Speicherpaare 58, 60 verbunden. Die Prozessor-Speicherpaare sind wiederum mit dem Rest des Systems über jeweilige Adapter 62, 64 verbunden, die integral eine Verbindungseinrichtung 18 enthalten, die durch einen Pfad 68 verbindet. Ein Cache-Speicher 52 ist einem der Prozessoren, z. B. dem Prozessor 50, zugeordnet. Der Rest des Systems ist dann im wesentlichen so wie jener, der in Fig. 1B gezeigt ist, nämlich ein oder mehrere Endgeräte 70, die mit dem Pfad 68 über einen Adapter 72 verbunden sind, haben eine Verbindungseinrichtung 18 darin, und ein Massenspeicher-Gerät 74, das mit dem Pfad 68 über einen Adapter 76 verbunden ist, hat eine Verbindungseinrichtung 18. Bei dieser Konfiguration kann nicht nur jeder Prozessor mit jedem Gerät in dem System kommunizieren, sondern die Prozessoren können auch direkt miteinander kommunizieren. Weiterhin ist ein Cache-Speicher 51 effektiv angepaßt. Trotz der unterschiedlichen Art und des Komplexitätsgrads, die durch diese Mischung an Anforderungen von Geräten in demselben System auferlegt werden, steuert die Verbindungseinrichtung, die hierin beschrieben ist, alle Kommunikationen effizient auf im wesentlichen dieselbe Weise.
  • Wendet man sich nun der Fig. 2 zu, sind die verschiedenen Kategorien von Signalen, die durch eine Verbindungseinrichtung erzeugt und verwendet werden, gemäß ihrer hauptsächlichen funktionalen Klasse zusammengefaßt. In jeder Klasse sind sie durch ihre einzelnen Unterfunktionen gruppiert. Zusätzlich sind auch die bestimmten Verdrahtungen der Gruppe von Verdrahtungen (oder des Kommunikationspfades) 78, die diese Signale von einem Gerät zu einem anderen führt, gezeigt, um die folgende Diskussion zu ermöglichen. Eine Leitung wird als aktiviert angesehen, wenn irgendein an die Leitung angebrachtes Gerät sie aktiviert. Die Leitung wird nur deaktiviert, wenn kein Gerät sie gerade aktiviert. Zum Zwecke der Darstellung sind zwei einzelne Verbindungseinrichtungen, die jeweils mit A und B bezeichnet sind und mit den entsprechenden physikalischen Geräten eine Einheit bilden, deren Kommunikation sie steuern, schematisch durch die Signale dargestellt, die durch sie benutzt werden, und sind zum Zwecke eines Signalaustausches durch den Pfad 78 verbunden gezeigt. Jedoch sollte verstanden werden, daß der Pfad 78 typischerweise mehr als zwei Geräte zu einem beliebigen Zeitpunkt physikalisch verbindet, obwohl nur jene Geräte, die von dem aktuellen Master ausgewählt sind, tatsächlich an einem Vorgang teilnehmen. Die übrigen Geräte bleiben physikalisch mit dem Kommunikationspfad verbunden, nehmen aber nicht an dem Vorgang teil.
  • Wie es in Fig. 2 dargestellt ist, gibt es vier weite Klassen von Signalen, die von der Verbindungseinrichtung verwendet werden, nämlich Informationstransfer-Klassensignale; Antwort- Klassensignale; Steuer-Klassensignale; und Leistungs- Klassensignale. Die "Informationstransfer"-Klassensignale enthalten ein Informationsfeld, das mit I[3 : 0] bezeichnet ist, und das über vier einzelne Leitungen 80 des Pfades 78 gesendet und empfangen wird. Das Informationsfeld führt eine Information, wie beispielsweise den Befehlscode, wobei der Code das Gerät identifiziert, das den Vorgang anfängt (den "aktuellen Master"), und eine Information, die den Zustand von Daten bestimmt, die während des Zyklus gesendet werden, und zwar neben anderer Information. Ein 32-Bit-Datenwort, das über Leitungen 82 übertragen wird, das in Fig. 2 mit D[31 : 0] bezeichnet ist, stellt bestimmte Information bereit, die bei dem Vorgang benötigt wird, wie beispielsweise die Länge eines Datentransfers, der stattfinden soll (bei Vorgängen vom Lese-Typ und vom Schreib-Typ verwendet); die Identität eines Geräts, das ausgewählt ist, an dem Vorgang teilzunehmen; die Adresse von Speicherstellen, auf die für einen Datentransfer zuzugreifen ist; und die Daten, die zu transferieren sind. Dieses Wort wird über 32 einzelne Leitungen 82 gesendet und empfangen. Es sind auch zwei Leitungen 84 und 86 vorgesehen, die mit "PO" und BAD bezeichnet sind und jeweils zum Zeigen der Parität auf den Informations- und Datenleitungen und zum Anzeigen eines Fehlerzustands verwendet werden.
  • Die "Antwort" -Klasse von Signalen besteht aus einem 3-Bit-Feld, das mit CNF[2 : 0] bezeichnet ist und über Leitungen 88 überträgt, und das eine Antwort auf verschiedene Information bereitstellt, die zu einem Gerät gesendet wird, und das ermöglicht, daß die Geräte den Fortgang der Vorgänge ändern, wie es nachfolgend detaillierter beschrieben ist.
  • Die "Steuer"-Klassensignale werden über eine Gruppe von acht Leitungen 90-104 übertragen. Das erste dieser Signale, NO ARB, steuert den Entscheidungsprozeß. Das zweite dieser Signale, BSY, zeigt eine aktuelle Steuerung des Kommunikationspfades durch ein Gerät. Diese zwei Signale werden in Verbindung miteinander verwendet, um einen geordneten Vorgang einer Steuerung unter Geräten zu schaffen, die nach einer Steuerung des Kommunikationspfades suchen.
  • Von den übrigen Signalen in der Steuer-Klasse bestehen die Zeit-(+)- und Zeit-(-)-Signale aus Wellenformen, die durch eine einzelne Quelle erzeugt werden, die an dem Pfad 98 angeschlossen ist, und jeweils über Leitungen 94, 96 gesendet werden; sie werden in Verbindung mit den Phasen-(+)- und Phasen- (-)-Wellenformen verwendet, die auch durch eine einzelne Quelle erzeugt werden und die über Leitungen 98 bzw. 100 gesendet werden, um die lokale Zeitreferenz für einen Betrieb der Verbindungseinrichtung an jedem Gerät aufzubauen. Insbesondere erzeugt die Verbindungseinrichtung jedes Geräts, das an dem Pfad 78 angeschlossen ist, jeweils lokale Sende- und Empfangstaktsignale TCLK und RCLK aus den Zeit- und Phasensignalen. Schließlich wird das STF-Signal, das über Leitung 102 gesendet wird, zum Ermöglichen eines "schnellen Selbsttestes" der lokalen Geräte verwendet, wie es hierin nachfolgend detaillierter beschrieben ist, während das RESET-Signal, das über Leitung 104 gesendet wird, ein Mittel zum Initialisieren (Setzen zu einem bekannten Zustand) der Geräte bereitstellt, die an dem Kommunikationspfad angebracht sind.
  • In der "Leistungs"-Signalklasse werden die AC LO - und DC LO- Signale jeweils über Leitungen 104, 106 gesendet und durch jedes Gerät überwacht, um den Zustand der Wechsel- und Gleichleitung in dem System zu bestimmen. Eine Reserveleitung 110 ist für eine zukünftige Erweiterung bereitgestellt.
  • Die hier beschriebene Verbindungseinrichtung führt ihre Funktion zum Aufbauen einer Kommunikation unter ausgewählten Geräten durch Durchführen einer Ablauffolge von Operationen durch, die spezifisch für den Typ der durchzuführenden Kommunikation sind. Jede Operation besteht aus einer Ablauffolge von Zyklen, während denen verschiedene Elemente von Information auf dem Kommunikationspfad plaziert werden oder davon empfangen werden, um die erwünschte Kommunikation mit einem anderen Gerät oder anderen Geräten zu bewirken, das bzw. die auch an diesem Pfad angeschlossen ist bzw. sind. Diese Zyklen werden durch die Zeit- und Phasentakte definiert, wie es durch Bezugnahme auf Fig. 3A klarer wird, die jeweilige Zeit-(+)- und Zeit-(-)-Taktsignale 120 und 122 zeigt, sowie auch jeweilige Phasen-(+)- und Phasen-(-)-Signale 124 und 126. Diese Signale werden durch einen einzigen Mastertakt erzeugt, der an dem Kommunikationspfad angeschlossen ist. Sie werden von der Verbindungseinrichtung jedes Geräts empfangen und verwendet, um die jeweiligen lokalen TCLK- und RCLK-Signale 128 und 130 zu erzeugen, die das Senden und Empfangen von Information durch sie steuern.
  • Somit ist, wie es in Fig. 3B gezeigt ist, eine Anzahl von Geräten 140, 142, etc. parallel an dem Kommunikationspfad angeschlossen, um Information über die Leitungen zu senden und zu empfangen. Diese Geräte können Eingabe-/Ausgabe-(I/O)-Geräte wie beispielsweise Drucker, Anzeige-Endgeräts, etc. sein, oder können Geräte wie beispielsweise Prozessoren sein. Die physikalische Plazierung der Geräte an dem Pfad ist unwesentlich. Ein Mastertakt 144, der auch mit dem Pfad verbunden ist, erzeugt die Zeit- und Phasensignale, die zu jedem Gerät über Leitungen 94-100 gesendet werden. Jede Verbindungseinrichtung enthält eine Zeitgabeschaltung zum Erzeugen jeweiliger lokaler Sende- und Empfangstakte TCLK und RCLK. Beispielsweise kann ein Gerät 140 ein FLip-Flop 146 enthalten, dessen Q-Ausgang TCLK erzeugt. Das Flip-Flop wird von einem Gatter 148 gesetzt und wird durch das Zeit-(+)-Signal von Leitung 94 getaktet. Das Gatter 148 wird wiederum durch Leitung 98 und den Q'- Ausgang freigegeben. Auf ähnliche Weise wird der lokale Slave-Empfangstakt RCLK aus den empfangenen Zeit-(+)- und Phasen-(-)-Signalen erzeugt.
  • Wie es in Fig. 3C gezeigt ist, definiert die Zeit zwischen aufeinanderfolgenden TCLK-Signalen einen Zyklus. Eine Ablauffolge aufeinanderfolgender Zyklen, die verwendet wird, um einen erwünschten Informationsaustausch durchzuführen, wird hier ein "Vorgang" genannt. Obwohl die detaillierten Charakteristiken jedes Vorgangs sich in Übereinstimmung mit der durch ihn durchgeführten Operation ändern, besteht im allgemeinen jeder Vorgang aus einem Befehls-/Adreß-Zyklus, einem eingebetteten Entscheidungszyklus und einem oder mehreren zusätzlichen Zyklen, die meistens allgemein als "Daten"-Zyklen bezeichnet sind. Nur zum Zwecke der Darstellung sind solche Datenzyklen in Fig. 3C gezeigt. Im allgemeinen wird Information auf dem Kommunikationspfad 78 an der führenden Flanke von TCLK plaziert und wird während RCLK desselben Zyklus in die Verbindungseinrichtung eines Geräts verzögert.
  • Ein Zustandsdiagramm der durch jede Verbindungseinrichtung durchgeführten Entscheidungsfunktion ist in Fig. 3D gezeigt. Die Entscheidungsfunktion bleibt in dem freien Zustand 150, bis irgendein Element in dem Gerät sie veranlaßt, danach zu suchen, einen Vorgang zu initiieren, wie es in Fig. 3D durch REQ gezeigt ist. Wenn dies auftritt, bestimmt die Verbindungseinrichtung, ob es frei ist, seine Entscheidungssignale auf dem Pfad 78 zu aktivieren, und zwar durch Untersuchen der NO ARB-Leitung. Solange NO ARB aktiviert ist, muß die Entscheidungsfunktion in dem, freien Zustand bleiben. Jedoch sobald NO ARB deaktiviert ist, kann das Gerät während des folgenden Zyklus entscheiden, vorausgesetzt, daß REQ noch aktiviert ist. Unter diesen Bedingungen tritt es in den Entscheidungszustand 1523 ein, in dem das Gerät mit anderen Geräten entscheidet, die nach einem Zugriff auf dem Kommunikationspfad suchen. Die Art der Entscheidung wird hier nachfolgend detaillierter beschrieben.
  • Ein Gerät, das die Entscheidung verliert, kehrt zu dem freien Zustand 150 zurück, von dem aus es wieder danach suchen kann, zu entscheiden, und zwar solange REQ aktiviert ist. Gegensätzlich dazu tritt ein Gerät, das die Entscheidung gewinnt, entweder in den Zustand eines aktuellen Masters ein (wenn BSY deaktiviert ist) oder den Zustand eines Hänge-Masters (wenn BSY aktiviert ist). Ein Hänge-Master bleibt ein Hänge-Master, solange BSY aktiviert ist, und wird nach der Deaktivierung von BSY ein aktueller Master.
  • Vor einem Beschreiben der Operations-Ablauffolge jedes der Vorgänge, die durch die Verbindung bereitgestellt sind, wird es hilfreich sein, ein detaillierteres Verständnis über einige der Steuer-, Antwort- und Informationstransfer-Klassensignale selbst zu erhalten, da diese im wesentlichen allen Vorgangstypen gemeinsam sind.
  • Steuersignale: NO ARB BSY
  • Das NO ARB-Signal steuert einen Zugriff zu den Datenleitungen zum Zwecke einer Entscheidung. Geräte können sich nur für eine Benutzung des Kommunikationspfades in jenen Zyklen entscheiden, für die NO ARB für den vorangehenden Zyklus deaktiviert worden ist. Das Gerät, das die Steuerung der Verbindung innehat (der "aktuelle Master") aktiviert NO ARB während des ganzen Vorgangs außer während des ersten Zyklus und des letzten erwarteten Datenzyklus. Der letzte erwartete Datenzyklus eines Vorgangs ist normalerweise der tatsächlich letzte Datenzyklus; jedoch wie es vollständiger nachfolgend beschrieben wird, können Geräte ein Beenden eines Vorgangs unter bestimmten Bedingungen verzögern. Wenn sie es tun, ist der Zyklus, von dem erwartet wird, daß er der letzte Datenzyklus ist, nicht länger dieser Zyklus, und nachfolgende Zyklen folgen, bevor alle Daten übertragen sind. NO ARB wird auch durch den Hänge-Master aktiviert, bis er der aktuelle Master wird. Zu jedem Zeitpunkt gibt es höchstens nur einen aktuellen Master und einen Hänge-Master.
  • NO ARB wird auch während eines Entscheidungszyklus durch alle Entscheidungsgeräte aktiviert. Während eines eingebetteten Entscheidungszyklus erfolgt diese Aktivierung zusätzlich zur Aktivierung von NO ARB durch den aktuellen Master. Während eines freien Entscheidungszyklus wird eine Aktivierung von NO ARB durch ein Entscheidungsgerät nachfolgende Entscheidungen ausschließen, bis eines der Geräte, das eine aktuelle Entscheidung durchführt, der aktuelle Master wird.
  • NO ARB wird zusätzlich durch Slave-Geräte (Geräte, die durch den aktuellen Master ausgewählt werden) für alle Zyklen aktiviert, in denen der Slave STALL aktiviert, wie auch für alle Datenzyklen, außer dem letzten. Es wird auch durch ein Gerät aktiviert (zusammentreffend mit einer Aktivierung von BSY) während spezieller Moden, wenn die Verbindungseinrichtung durch Bedienen ihres eigenen Geräts besetzt ist. In diesen Moden verwendet das Gerät keine Kommunikationspfad-Leitungen, die andere als BSY und NO ARB sind. Aufgrund des Potentials, das als Slave ausgewählt wird, wird ein Gerät davon abgehalten, während eines Befehls-/Adreß-Zyklus in einen speziellen Modus zu gelangen. Ein Gerät kann beispielsweise in einem speziellen Modus arbeiten, um auf Register in der Verbindungseinrichtung zuzugreifen, ohne daß ein Verwenden von Informationstransfer-Klassenleitungen des Kommunikationspfads erforderlich ist. Weiterhin kann es auch erwünscht sein, dem aktuellen Master zu ermöglichen, eine Aktivierung von NO ARB über seinen gewöhnlichen Beendigungszyklus hinaus fortzuführen, um dadurch eine Ablauffolge von Vorgängen durchzuführen, ohne eine Steuerung des Kommunikationspfades aufzugeben. Dies wäre insbesondere nützlich für Geräte hoher Geschwindigkeit, um erweiterte Informationstransfer-Zyklen zu ermöglichen, und somit die verfügbare Bandbreite für jenes Gerät effektiv zu erhöhen.
  • BSY zeigt an, daß ein, Vorgang in Arbeit ist. Sie wird durch den aktuellen Master während des gesamten Vorgangs aktiviert, außer während des letzten erwarteten Zyklus. Sie wird auch durch Slave-Geräte aktiviert, die bei Fortschreiten des Vorgangs verzögern müssen (z. B. ein Speichergerät, das eine zusätzliche Zeit zum Zugreifen auf eine bestimmte Speicherstelle benötigt); die Verzögerung wird durch Aktivieren von BSY und NO ARB zusammen mit einem STALL-Antwortcode (der später beschrieben wird) erreicht. Zusätzlich wird BSY auch für alle Datenzyklen aktiviert, außer dem letzten. Ein Gerät kann das Aktivieren von BSY auch erweitern, um den Start des nächsten Vorgangs zu verzögern, oder beim Arbeiten in den speziellen Moden, die oben erörtert sind.
  • BSY wird durch Geräte an dem Ende jedes Zyklus untersucht; wenn sie deaktiviert ist, kann ein Hänge-Master sie aktivieren und eine Steuerung als aktueller Master annehmen.
  • Fig. 3E ist ein Zustandsdiagramm möglicher Ablauffolgen der BSY- und NO ARB-Steuerleitungen bei dem gegenwärtigen Aufbau. Es wird verwendet, um die Art darzustellen, in der diese Signale in gemeinsamer Beobachtungsweise den Informationsaustausch von einem Gerät zu einem Gerät auf dem Kommunikationspfad effizient steuern.
  • Beim Einschalten aktivieren alle Geräte NO ARB (Zustand "A"), was einen Zugriff durch irgendein Gerät effektiv verhindert, bis alle Geräte die Leitung deaktivieren (Zustand "B"), wann immer der Kommunikationspfad in den IDLE-Zustand gelangt. Dies läßt allen Geräten Zeit, irgendeine Einschalt-Initialisierungsablauffolge zu beenden, wenn es erforderlich ist. Ist NO ARB einmal deaktiviert und dadurch Zustand "B" eingetreten, können die Geräte frei danach suchen, um eine Steuerung des Kommunikationspfades zu kämpfen. Wenn einmal ein Gerät entscheidet, wird wieder Zustand "A" erreicht, woraufhin das "gewinnende" Gerät in einen Befehls-/Adreß-Zustand "C" eintritt. Es ist wichtig zu bemerken, daß dieser Befehls-/Adreß-Zyklus durch alle Geräte erkannt wird, und zwar nicht nur durch die Vorgangs-Aktivierungen von BSY von dem deaktivierten zu dem aktivierten Zustand, sondern in Verbindung mit der Aktivierung von NO ARB in dem vorherigen Zyklus. Das Beobachten von NO ARB ist für Geräte notwendig, um den Zustand des speziellen Modus als einen Befehls-/Adreß-Zustand zu ignorieren.
  • Der erste Eintrag vom Zustand "D" von dem Befehls-/Adreß- Zustand zeigt den eingebetteten Entscheidungszyklus eines Vorgangs an. Es ist dieser Zyklus, in dem die Geräte ihre dynamische Priorität (wenn sie im "doppelten Round-Robin"-Modus sind) durch Beobachten der codierten Master-ID erneuern. Abhängig von der Datenlänge des Vorgangs kann eine Steuerung für nachfolgende Zyklen in diesem Zustand bleiben. Wenn keine Entscheidung auftritt, geben der Master und der Slave möglicherweise die Steuerung des Kommunkationspfades auf und der Ablauf geht wieder zurück zum Zustand "B", der Deaktivierung beider Steuersignale. Wenn jedoch ein Hänge-Master existiert, wird darauffolgend in den Zustand "F" eingetreten, woraufhin das Gerät, das NO ARB aktiviert, die Deaktivierung von BSY in diesem Zyklus bemerkt und entweder zu Befehls-/Adreß-"C" oder -"G" weitergeht und zwar in Abhängigkeit davon, ob die Entscheidung zum Ausschließen einer weiteren Entscheidung durch andere Geräte (in dem Diagramm "FIRST MODE" genannt) durch den Master bestimmt ist. Man beachte, daß die Befehls-/Adreß- Steuersignale in dem Zustand "G" zeigen, daß sowohl NO ARB als auch BSY aktiviert sind, was diesen Zustand von dem Befehls-/ Adreß-Zustand "C" unterscheidet.
  • Wenn der vorangehende Vorgang durch die Aktivierung von BSY erweitert wurde und kein Hänge-Master existent war, würde die Steuerung vom Zustand "D" zum Zustand "E" weitergehen, und für einen oder mehrere Zyklen in dem Zustand "E" bleiben, wie es erforderlich ist. Die bezeugte Aktivierung von BSY würde eine Steuerung veranlassen, für einen oder mehrere Zyklen in diesem Zustand zu bleiben, woraufhin die Ablauffolge zurück zu dem IDLE-Zustand "B" weitergehen kann und den Kommunikationspfad für zukünftige Transfers aufgeben kann.
  • Wie es oben beschrieben ist, kann ein spezieller Betriebsmodus eine Steuerung alternativ veranlaßt haben, für einen oder mehrere Zyklen zu einem Zustand "D" zurückzukehren, wenn ein bestimmtes Gerät, das einen Ausschluß einer Auswahl als ein Slave durch ein anderes Gerät gewünscht hat. Die gleichzeitige Deaktivierung von BSY und NO ARB würde die Steuerung dann wieder zu dem Zustand "B", nämlich dem IDLE-Zustand, zurückbringen.
  • Die Figur zeigt daher, daß die Verknüpfungsoperation von NO ARB und BSY den geordneten Ablauf eines Steuerungsaustausches wie auch einen Informationstransfer auf dem Kommunikationspfad reguliert.
  • Antwortsignale: ACK NO ACK, STALL, RETRY
  • Die Systemzuverlässigkeit wird sehr stark durch Anfordern einer Antwort auf Übertragungen über die Informations- und Datenleitungen erhöht. Im allgemeinen wird eine Antwort genau zwei Zyklen nach der bestimmten Übertragung erwartet. Der Antwortcode für diese Geräte ist in Fig. 6 gezeigt, wo ein "0" -Bit eine Aktivierung (niedriger Pegel) und ein "1"-Bit eine Deaktivierung (hoher Pegel) anzeigt.
  • Die ACK-Antwort zeigt ein erfolgreiches Beenden eines Empfangs einer Übertragung durch den gewünschten Empfänger der Übertragung an. Für alle Vorgangstypen bestätigt die Aktivierung von ACK während des ersten Datenzyklus des Vorgangs einen richtigen Empfang (d. h. kein Paritätsfehler) der Befehls-/Adreßinformation, die zwei Zyklen früher übertragen ist. Zusätzlich zeigt ACK in dem ersten Datenzyklus wie auch in nachfolgenden Datenzyklen vom Lesetyp und Identitätsvorgängen auch an, daß Lese- oder Vektordaten durch den Slave aktiviert sind, während ACK bei Vorgängen vom Schreibtyp auch anzeigt, daß der Slave bereit ist, Schreibdaten anzunehmen.
  • NO ACK zeigt entweder einen Fehler bei der Übertragung/beim Empfang an, oder daß kein Slave ausgewählt worden ist. Sowohl ACK als auch NO ACK sind zulässige Antworten auf Befehlsübertragungen wie auch auf Datenübertragungen. In dem letzteren Fall erfolgen die Antworten während der zwei Zyklen, die dem letzten Datenzyklus folgen, und zwar obwohl diese Zyklen mit einem darauffolgenden Vorgang zusammenfallen können. NO ACK ist der Ausfallzustand der Antwortleitungen. Er ist derart definiert, daß sich kein anderer Code darüber hinwegsetzen kann.
  • STALL kann durch ein Slave-Gerät während Datenzyklen aktiviert werden. Beispielsweise wird es durch Speicher verwendet, um die Zeit zu verlängern, die für einen Lesezugriff zugelassen ist, oder um Zeit für einen Auffrisch- oder einen Fehlerkorrekturzyklus während eines Vorgangs bereitzustellen. Es wird auch durch Speicher verwendet, um eine weitere Datenübertragung von dem Master zu verzögern, wenn der Speicher- Schreibpuffer voll ist. Es wird durch Geräte für eine Synchronisierung mit einem anderen Kommunikationspfad verwendet. Ein oder mehrere STALLS können verwendet werden, um eine ACK- oder NO ACK-Befehlsbestätigung zu verzögern, wenn das Gerät erkennt, daß es der Slave ist.
  • RETRY wird durch ein Slave-Gerät aktiviert, das nicht sofort auf einen Vorgang antworten kann. Beispielsweise wird es durch Geräte verwendet, die eine lange innere Initialisierungsablauffolge benötigen; durch Geräte, die auf einen Zugriff zu einem anderen Kommunikationspfad warten; und durch Speicher, die durch einen Verriegelungs-Lesebefehl blockiert worden sind, wie es oben beschrieben ist. Der aktuelle Master antwortet auf die Slave-RETRY-Antwort durch Beenden des Vorgangs. Bei der vorliegenden Implementierung wird RETRY nicht nach dem ersten Datenzyklus eines Vorgangs verwendet. Dies vereinfacht die Verbindungslogik. Ein oder mehrere STALLS können der Aktivierung von RETRY vorangehen.
  • Zum Verhindern, daß ein Gerät den Kommunikationspfad beherrscht, ist den Ausdehnungen oder darauffolgenden Aktivierungen von STALL, RETRY, BSY und NO ARB eine Beschränkung auferlegt.
  • Systemarchitektur: Spezifische Vorgangsablauffolgen
  • Die Fig. 4A-H zeigen im Detail die spezifischen Kennlinien der Vorgänge, die durch die Verbindungseinrichtungen geschaffen werden. Insbesondere sind folgende Vorgänge detailliert dargestellt: Zum Lesen und Schreiben von Daten (READ, READ WITH CACHE INTENT, WRITE, WRITE WITH CACHE INTENT, WRITE MASK WITH CACHE TNTENT, und UNLOCK WRITE MASK WITH CACHE INTENT), zum Ungültigmachen veralteter in den Cache-Speicher gebrachter Daten (INVALIDATE); zum Behandeln von Unterbrechungen (INTERRUPT, INTERPROCESSOR, INTERRUPT, IDENTIFY); zum Anhalten einer Vorgangserzeugung durch Geräte (STOP); und zum gleichzeitigen Übertragen von Information zu einer Anzahl von Geräten (BROADCAST). In jeder der Figuren ist der Bereich zulässiger CNF-Antworten gezeigt, und die dargestellte bestimmte Antwort ist durch einen Punkt (.) bezeichnet. Weiterhin sind lediglich aus Darstellungsgründen die Vorgänge derart gezeigt, daß sie nur zwei Zyklen eines Datentransfers enthalten, obwohl eine größere oder kleinere Anzahl von Zyklen verwendet werden kann.
  • Die hier beschriebenen Befehle sind von zwei allgemeinen Typen, nämlich Einzel-Antwortbefehle (Befehle vom Lesetyp und vom Schreibtyp und IDENTIFY) und Vielfach-Antwortbefehle (STOP, INVALIDATE, INTERRUPT, INTERPROCESSOR INTERRUPT und BROADCAST). Zum Sicherstellen der einheitlichen Erkennung von Antworten, wenn viele Antworten auf denselben Leitungen aktiviert werden, sind die zulässigen Antworten auf Vielfach-Antwortbefehle auf ACK und NO ACK beschränkt.
  • Vorgänge vom Lesetyp
  • Nimmt man nun auf Fig. 4a Bezug, sind die Kennlinien eines Vorgangs vom Lesetyp im Detail gezeigt. Dieser Vorgangstyp enthält nicht nur den "READ"-Befehl, sondern auch die READ WITH CACHE INTENT- und INTERLOCK READ WITH CACHE INTENT- Befehle. Die Vier-Bit-Codes dieser Befehle sind in Fig. 5A zusammen mit den Codes für die anderen Befehle gezeigt, die durch das Gerät verwendet werden, das Einrichtungen verbindet. Man beachte, daß später zusätzliche Codes hinzugefügt werden können, wie es durch den Strich (-) in dieser Figur angezeigt ist. Der Vorgang besteht aus einer Anzahl aufeinanderfolgender Zyklen, nämlich einem Befehls-/Adreßzyklus 180, einem eingebetteten Entscheidungszyklus 182 und einer Anzahl von Datenzyklen. Nur aus Darstellungsgründen ist der Vorgang derart gezeigt, daß er jeweils zwei Datenzyklen 184, 186 enthält. Die Hauptleitungen, auf denen Information übertragen wird (siehe Fig. 2) sind durch ihre Funktionsnamen angezeigt, nämlich die Informationsleitungen I[3 : 0], die Datenleitungen D[31 : 0], die Bestätigungsleitungen CNF[3 : 0] und die NO ARB, BSY und P-(Paritäts)-Leitungen. Zur Verdeutlichung der Darstellung sind die übrigen Leitungen (d. h. Zeit, Phase, STF, RESET, AC bO, DC LO, BAD und SPARE) in Fig. 4 weggelassen, da sie zum Verstehen der Operation der Vorgänge nicht wesentlich sind.
  • Wie es in Fig. 4A gezeigt ist, wird während des Befehls-/ Adreß-Zyklus eines Vorgangs vom Lesetyp der Vier-Bit- Befehlscode auf den Informationsleitungen I[3 : 0] plaziert. Zusätzliche Daten, die in Verbindung mit dem Befehl erforderlich sind, werden auf den Datenleitungen D[31 : 0] plaziert. Insbesondere wird ein Zwei-Bit-Datenlängencode, der die Länge des Transfers bestimmt, der stattfinden soll, durch die Verbindungseinrichtung an Datenleitungen D[31 : 30] angelegt, während die "Adresse" des Geräts, mit dem der Transfer stattfinden soll, an Datenleitungen D[29 : 0] angelegt wird. Die Tatsache, daß diese Signale auf den geeigneten Leitungen durch das Gerät aktiviert werden, das gegenwärtig die Kontrolle über die Verbindung hat (der "aktuelle Master"), ist durch den Buchstaben "M" in dem geeigneten Block in Fig. 4A gezeigt. Das Aktivieren von Information auf einer vorgegebenen Leitung oder einem Satz von Leitungen durch ein Slave-Gerät ist in Fig. 4a durch den Buchstaben "S" gezeigt. Auf ähnliche Weise zeigen die Buchstaben "AD", "AAD", "APS" und "PM" (d. h. jeweils "Alle Geräte", "Alle Entscheidungsgeräte", "Alle potentiellen Slaves" und "Hänge-Master") verschiedene andere Geräte, die Signale auf ausgewählten Leitungen des Kommunikationspfads während bestimmter Zyklen aktivieren können.
  • Die Adresse besteht aus einem einzelnen 30-Bit-Wort, das die bestimmte Speicherstelle bezeichnet, an der ein Vorgang vom Lesetyp oder vom Schreibtyp stattfinden soll. Ein separater Block von Adressen ist jedem Gerät zugeordnet. Die Anordnung des Blocks basiert auf der Identifikationsnummer des zugehörigen Geräts.
  • Während des Befehls-/Adreß-Zyklus deaktiviert der aktuelle Master NO ARB, wie es in Fig. 4A bei 58 gezeigt ist. (Zur Erläuterung wird hier ein Signal als "aktiviert" angesehen, wenn es auf einem niedrigen Pegel ist, und als "deaktiviert", wenn es auf einem hohen Pegel ist.) Eine Deaktivierung von NO ARB läßt zu, daß andere Geräte, die eine Kontrolle über den Kommunikationspfad wünschen, für einen solchen Zugriff während des folgenden Zyklus fest entscheiden. Zur gleichen Zeit aktiviert das Gerät BSY, um zu verhindern, daß andere Geräte eine Kontrolle über den Kommunikationspfad erlangen, während der aktuelle Vorgang durchgeführt wird. Zu dieser Zeit werden von dem aktuellen Master keine Signale an die CNF-Leitungen angelegt, was aber so zu verstehen ist, daß im Laufe einer Ablauffolge von Vorgängen während eines Vorgangs durch einen aktuellen Master ein oder mehrere Antwortsignale durch andere Geräte an die CNF-Leitungen angelegt werden können.
  • Der zweite Zyklus des Vorgangs ist ein Entscheidungszyklus. Er wird "eingebetteter" Entscheidungszyklus genannt, da er in einem Vorgang enthalten ist. Eine Entscheidung, die außerhalb eines Vorgangs auftritt, wird ein "freier" Entscheidungszyklus genannt. Während des eingebetteten Entscheidungszyklus der Fig. 4A plaziert der aktuelle Master seine Identifikationsnummer (ID) auf den Informationsleitungen I[3 : 0]. Dieser Code wird von allen Geräten verwendet, um ihre Entscheidungspriorität zu erneuern, wie es zuvor beschrieben ist.
  • Zu dieser Zeit aktivieren auch jene Geräte, die nach einem Benutzen des Kommunikationspfad suchen, ein Einzel-Bit-Signal, das ihrer Identifikationsnummer entweder auf den Leitungen mit niedrigen Prioritätspegel D[31:16] oder auf den Leitungen mit hohen Prioritätspegel D[5 : 0] entspricht, z. B. aktiviert ein Gerät 11 Leitung D[11], wenn es sich für eine hohe Priorität entscheidet, und aktiviert Leitung D[27], wenn es sich für eine niedrige Priorität entscheidet.
  • Der Pegel, für den sich das Gerät entscheidet, wird durch seinen Entscheidungsmodus bestimmt, sowie auch durch die ID des vorherigen Masters. Bei der vorliegenden Implementierung wird der Entscheidungsmodus durch Bits 4 und 5 der Steuerung und des Zustandsregisters eines bestimmten Geräts bestimmt, d. h. CSR[5 : 4] (siehe Fig. 7C). Wie es gegenwärtig implementiert ist, ist für vier Moden gesorgt, nämlich eine feste hohe Priorität, eine feste niedrige Priorität, einen "doppelten Round- Robin" und eine Entscheidung, die verhindert wird. Die Verbindungseinrichtung unterstützt ein willentliches Mischen dieser Moden durch geeignetes Einstellen der Entscheidungsmodus-Bits CSR[5 : 4].
  • In dem Fall einer Entscheidung in einem Modus fester Priorität 3 darüber, ob es eine feste hohe oder eine feste niedrige ist, ändert sich die Priorität von Vorgang zu Vorgang nicht. Gegensätzlich dazu kann sich in dem Fall einer "doppelten Round- Robin"-Entscheidung die Priorität eines Geräts von einem Vorgang zu einem anderen ändern, wie es zuvor beschrieben ist. Insbesondere in dem "doppelten Round-Robin" -Entscheidungsmodus wird ein Gerät sich während eines vorgegebenen Vorgangs für einen niedrigen Prioritätspegel entscheiden (d. h. auf Leitungen D[31 : 16]), wenn seine ID-Nummer gleich oder kleiner als die ID-Nummer des Masters in dem direkt vorangehenden Vorgang ist, und wird sich sonst für einen hohen Prioritätspegel entscheiden (d. h. Leitungen D[15 : 0])
  • Beim Fortfahren mit dem Vorgang der Fig. 4A wird am Schluß des eingebetteten Entscheidungszyklus ein Gerät, das während dieses Zyklus eine Entscheidung durchgeführt und diese Entscheidung gewonnen hat, ein Hänge-Master und aktiviert NO ARB, bis er ein aktueller Master wird, wie es mit gestrichelten Linien in Fig. 4a gezeigt ist. Dies hält andere Geräte davon ab, darauffolgend eine Entscheidung durchzuführen und möglicherweise eine Kontrolle über den Kommunikationspfad zu erlangen, bevor der Hänge-Master eine solche Kontrolle übernehmen kann.
  • Der Entscheidungszyklus wird gefolgt von einem oder mehreren Datenzyklen. Zu Darstellungszwecken zeigt Fig. 4A nur zwei solche Datenzyklen. Wie es zuvor angemerkt ist, wird die aktuelle Datenmenge, die bei jedem Vorgang zu übertragen ist, und somit die Anzahl von Datenzyklen, die durch den Vorgang verwendet wird, in dem Befehls-/Adreßzyklus durch Bits D[31 : 30] bestimmt. Bei der bestimmten Implementierung, die in Fig. 4a beschrieben ist, können ein bis vier Datenzyklen (hier 32 Bits pro Zyklus) in einem Vorgang übertragen werden. Natürlich kann durch Vorsehen von weniger oder mehr Bits für die Datenlängenbestimmung eine geringere oder größere Anzahl von Datenzyklen, und somit von Vorgangszyklen vorgesehen werden.
  • In dem Fall eines Vorgangs vom Lesetyp, wie er in Fig. 4A gezeigt ist, werden die Daten, die durch den Vorgang aufgerufen werden, durch den Slave zugeführt, zu dem der Vorgang adressiert ist. Dieses Gerät kann ein Speichergerät sein, oder es kann irgendein anderes Gerät wie beispielsweise ein Eingabe-/ Ausgabe-Endgerät sein. In jedem Fall aktiviert das so ausgewählte Gerät seine Daten auf den Datenleitungen D[31 : 0] während des Datenzyklus. Zu dieser Zeit aktiviert es auch einen Code auf Leitungen I[3 : 0], was den Zustand der Daten anzeigt. Beispielsweise kann der Code für Speicherreferenzen anzeigen, ob die Daten Daten sind, die ohne Verwendung irgendeines Korrekturalgorithmus wieder hervorgeholt worden sind (einfach "Lesedaten" genannt), Daten, die korrigiert worden sind, bevor sie auf den Datenleitungen aktiviert werden ("korrigierte Lesedaten" genannt), oder Daten, auf die man sich aus dem einen oder anderen Grund nicht verlassen kann ("Lesedaten-Ersatz") Weiterhin zeigt der Zustandscode an, ob die Daten für jede dieser Datenkategorien in den Cache gebracht werden können oder nicht. Die Verwendung der "Don't Cache"-Einrichtung wird die Leistungsfähigkeit bei einigen Systemen stark erhöhen. Diese Codes sind in Fig. 5B dargestellt.
  • Während des ersten Datenzyklus bringt der Slave einen Bestätigungscode aus Leitungen CNF[2 : 0] zu dem Master zurück, was einen Empfang der Befehls-/Adreßinformation von dem Master bestätigt und was weitere Information zu dem Master in bezug auf die Antwort des Slaves bereitstellen kann. Somit wird die erste Aktivierung der Bestätigungssignale für den aktuellen Vorgang während des ersten Datenzyklus durchgeführt, und zwar zwei Zyklen nach dem Befehls-/Adreß-Zyklus, der den Vorgang begonnen hat. Für den in Fig. 4A beschriebenen Lesevorgang sind die zulässigen Antworten in dem ersten Datenzyklus folgende: ACK ("Bestätigung"), NO ACK ("Keine Bestätigung"), STALL und RETRY. Diese sind in großem Maße allen Vorgängen gemeinsam, und zwar mit gewissen Ausnahmen, die im Zusammenhang mit den bestimmten Vorgängen beschrieben werden. Im allgemeinen zeigt die Aktivierung von ACK während des ersten DatBefehls-/Adreßinformationenzyklus den richtigen Empfang einer an, und zwar zusammen mit der Fähigkeit des Slaves, die angefragte Handlung zu übernehmen, d. h. Lesedaten zurückzubringen. Gegensätzlich dazu zeigt die Aktivierung von NO ACK entweder einen Fehler bei einer Übertragung des Befehls an, oder irgendeine andere Unfähigkeit eines Slaves, zu antworten. Die Aktivierung von STALL läßt den Slave den Vorgang ausdehnen, um sich selbst vorzubereiten, die Lesedaten bereit zustellen, die durch den Master angefragt sind, während die Aktivierung von RETRY eine aktuelle Unfähigkeit anzeigt, auf den Befehl zu antworten, und zwar begleitet durch eine Anfrage, die der Master zu einer darauffolgenden Zeit wieder versucht. RETRY wird geeignet verwendet, wenn die erwartete Antwortzeit des Slaves so lang wäre, daß es unerwünscht wäre, den Vorgang um eine sehr große Anzahl von Zyklen durch Aktivieren allgemeiner STALL-Antworten auszudehnen.
  • In Fig. 4A ist die ACK-Antwort (durch einen Punkt (.) vor der Antwort bezeichnet) dargestellt. Wenn die Antwort NO ACK wäre, würde sich die von dem Master vorgenommene Handlung von jener unterscheiden, die in Antwort auf ACK vorgenommen würde, z. B. kann der Master danach suchen, den Vorgang eine beschränkte Anzahl von Malen zu wiederholen, kann nach einer Unterbrechung rufen, etc. Eine STALL-Antwort ist ähnlich zu einer ACK-Antwort, aber der Vorgang wird um einen oder mehrere "freie" Zyklen (Zyklen, in denen keine gültigen Daten auf den Datenleitungen vorhanden sind) ausgedehnt werden, bevor die angefragten Daten zurückgebracht werden.
  • Der zweite und letzte Datenzyklus in Fig. 4A ist ähnlich dem vorangehenden Datenzyklus, was bedeutet, daß der Slave die angefragten Daten auf Leistungen D[31 : 0] zusammen mit einem Code, der den Zustand auf Leitungen I[3 : 0] anzeigt, aktiviert. Zur gleichen Zeit aktiviert er ein Bestätigungssignal auf CNF[2 : 0]. Ungleich der Antwort des Slaves auf den ersten Datenzyklus kann der Slave jedoch nur mit ACK, NO ACK, oder STALL antworten; er kann RETRY nicht aktivieren. Weiterhin deaktiviert der Slave sowohl NO ARB und BSY, da der zweite Datenzyklus der letzte Datenzyklus des Vorgangs in Fig. 4a ist. Wenn der Slave den Vorgang durch Aktivieren von STALL ausdehnen würde, so daß das Zurückbringen von Lesedaten zu einem nachfolgenden Zyklus verschoben würde, würde der Slave seine Aktivierung von NO ARB und BSY fortführen, bis der letzte Datenzyklus tatsächlich auftrat. Er würde dann NO ARB und BSY während jenes letzten Datenzyklus deaktivieren. Wie es zuvor angemerkt ist, läßt ein Deaktivieren von BSY einen Hänge-Master eine Steuerung des Kommunikationspfades an dem folgenden Zyklus annehmen, während die Deaktivierung von NO ARB durch den Slave dafür vorbereitet, eine nachfolgende Entscheidung für einen Zugriff zu dem Kommunikationspfad auftreten zu lassen.
  • Mit der Beendigung des zweiten und letzten Datenzyklus sind die Haupt-Informationstransferfunktionen des Vorgangs von Fig. 4A beendet. Jedoch ist es noch notwendig, den richtigen Empfang der Daten zu bestätigen. Dies wird während der zwei Zyklen erreicht, die dem letzten Datenzyklus folgen, während dem der Master das geeignete Bestätigungssignal auf CNF[2 : 0] in bezug auf einen Empfang der Daten aktiviert. Wie es gezeigt ist, ist die geeignete Bestätigung entweder ACK oder NO ACK. Man beachte, daß die Bestätigung sich über den letzten Datenzyklus hinaus ausdehnt und somit mit den Befehls-/Adreß- und eingebetteten Entscheidungszyklen eines folgenden Vorgangs überlappen kann. Jedoch wird daraus kein Fehler entstehen, da die Bestätigungsleitungen durch den folgenden Vorgang nicht während seiner ersten zwei Zyklen verwendet werden.
  • Während des Befehls-/Adreßzyklus wird eine Parität durch den aktuellen Master auf den Leitungen I[3 : 0] und D[31 : 0] erzeugt und wird durch alle Geräte geprüft. Während des eingebetteten Entscheidungszyklus wird sie von dem Master nur auf der Leitung I[3 : 0] erzeugt und von allen Geräten geprüft. Während der Datenzyklen wird eine Parität durch den Slave auf den Leitungen I[3 : 0] und D[31 : 0] erzeugt und wird durch den aktuellen Master geprüft. Die spezifischen Folgen eines Paritätsfehlers werden von der Art der Information abhängen, die während des gegebenen Zyklus übertragen wird, wenn der Fehler auftritt. Zumindest sollten die Geräte, die während der Befehls/Adreßzyklen einen Paritätsfehler detektieren, nicht auf die Auswahl antworten; zusätzlich können sie den Paritätsfehler durch Setzen eines Fehlerflags, Initiieren einer Unterbrechung oder einer anderen derartigen Handlung anzeigen.
  • Wie es zuvor angemerkt ist, hat der READ WITH CACHE INTENT- Befehl dasselbe Format wie der Lesevorgang. Es wird durch ein Gerät mit einem Cache erzeugt, um dem Slave anzuzeigen, daß die angefragten Lesedaten in dem Cache des Masters plaziert werden können. Wenn dieser Befehl in Verbindung mit dem INVALIDATE-Befehl verwendet wird, der nachfolgend beschrieben ist, kann er in bestimmten Systemen mit Cache-Geräten eine signifikante Erhöhung der Leistungsfähigkeit schaffen.
  • Der Verriegelungs-Lesevorgang hat auch dasselbe Format wie der Lesevorgang. Er wird bei geteilten Datenstrukturen verwendet, um einen exklusiven Zugriff auf Daten durch Prozessoren und andere intelligente Geräte zu schaffen. Slaves, die den IN- TERLOCK READ-Befehl unterstützen, haben ein oder mehrere Verriegelungsbits, die zugehörigen Speicherstellen entsprechen. Wenn auf ihn durch einen INTERLOCK READ-Befehl zugegriffen wird, setzt ein Slave das geeignete Bit, das der adressierten Stelle entspricht. Dies verhindert nachfolgende Verriegelungs-Lesezugriffe zu der Stelle, bis das Bit zurückgesetzt wird, um dadurch die gegebene Stelle zu entriegeln. Dieses Bit wird typischerweise durch den UNLOCK WRITE MASK WITH CACHE INTENT-Befehl zurückgesetzt, der nachfolgend beschrieben ist. Der INTERLOCK READ-Befehl ist insbesondere nützlich in Systemen mit Prozessoren, die Lese-Änderungs- Schreib-Operationen bereitstellen, um sicherzustellen, daß intervenierende Geräte, die den INTERLOCK READ-Befehl verwenden, von einem Zugriff auf Daten nach der Initiierung, aber vor der Beendigung einer derartigen Operation ausgeschlossen sind. Slaves, die durch INTERLOCK READ-Befehle adressiert werden, während die Verriegelung gesetzt ist, geben RETRY aus. Man beachte, daß das Verriegelungsbit nur gesetzt wird, wenn der Verriegelungs-Lesevorgang erfolgreich ist, d. h. der Master den richtigen Empfang der Lesedaten des Slaves bestätigt.
  • Vorgang vom Schreibtyp
  • Wendet man sich nun der Fig. 4B zu, sind Vorgänge vom Schreibtyp im Detail gezeigt (die als WRITE, WRITE WITH CACHE INTENT, WRITE MASK WITH CACHE INTENT, und UNLOCK WRITE MASK WITH CACHE INTENT implementiert sind). Beginnt man dem Befehls/Adreßzyklus plaziert der aktuelle Master den geeigneten Vier- Bit-Code für den Befehl auf Informationsleitungen I-[3 : 0]; einen Zwei-Bit-Code, der die Länge der Datenübertragung identifiziert, auf Datenleitungen D[31 : 30]; und eine Adresse auf Datenleitungen D[29 : 0]. Zur gleichen Zeit aktiviert er BSY, um den besetzten Zustand des Kommunikationspfades anzuzeigen, und deaktiviert NO ARB, ,um die Verfügbarkeit der Datenleitungen zur Entscheidung während des direkt folgenden Zyklus zu signalisieren.
  • Während des zweiten Zyklus plaziert der aktuelle Master seine ID auf Informationsleitungen I[3 : 0]. Geräte, die nach einer Kontrolle über den Kommunikationspfad für einen nachfolgenden Vorgang suchen, aktivieren zu dieser Zeit ein Einzel-Bit, das ihrer ID entspricht, auf den Datenleitungen. Wie es zuvor der Fall war, wird die Aktivierung von einer der Datenleitungen mit niedriger Priorität D[31 : 16] für eine Entscheidung bei dem niedrigen Prioritätspegel durchgeführt, und wird für eine Entscheidung bei dem hohen Prioritätspegel auf den Datenleitungen hoher Priorität D[15 : 0] durchgeführt. Der Master fährt zu dieser Zeit fort, BSY zu aktivieren, und der Master sowie auch Geräte, die an der Entscheidung teilnehmen, aktivieren zu dieser Zeit auch NO ARB.
  • In dem in Fig. 4B gezeigten Beispiel sind die dritten und fünften Zyklen Datenzyklen. Obwohl zwei Datenzyklen gezeigt sind, kann eine geringere oder größere Anzahl benutzt werden, und zwar in Übereinstimmung mit der Transferlänge, die auf Leitungen D[31 : 30] in dem Befehls-/Adreßzyklus bestimmt sind. Die Daten, die durch den Master geschrieben werden, werden während dieser Zyklen an Datenleitungen D[29 : 0] angelegt. Die Informationsleitungen I[3 : 0] führen entweder eine Schreibmaske (in dem Fall eines Schreibmasken-Vorgangs) während der Datenzyklen, um das ausgewählte Byte oder die ausgewählten Bytes anzuzeigen, die während des Vorgangs geschrieben werden sollen, oder sind "unbestimmt" (in dem Fall von Schreib- und Schreib-mit-Cache-Speicherungsabsicht-Vorgängen) Der "undefinierte" Zustand der Leitungen I[3 : 0] zeigt an, daß jede Information auf diesen Leitungen durch die Geräte aufgrund des Vorgangs zu ignorieren ist.
  • Während des ersten Datenzyklus fährt der aktuelle Master fort, BSY und NO ARB zu aktivieren. Während des vierten Datenzyklus, von dem der aktuelle Master erwartet, daß der der letzte Datenzyklus ist, deaktiviert der aktuelle Master sowohl BSY als auch NO ARB, um eine geordnete Übergabe der Kommunikationspfad-Steuerung vorzubereiten.
  • Zum Darstellen der Fähigkeit eines Slaves, einen Vorgang auszudehnen, ist der vierte Zyklus (Daten 2) mittels der Aktivierung von STALL durch den Slave als verzögert gezeigt. Beispielsweise kann dies gemacht werden, wenn der Slave zu dieser Zeit das zweite Datenwort nicht aufnehmen kann. Der Slave aktiviert während dieses Zyklus BSY und NO ARB. Der letzte Datenzyklus dieses Vorgangs ist ein Zyklus 5. Während dieses Zyklus antwortet der Master auf die Aktivierung von STALL durch Rückübertragung von Daten 2. Der Slave aktiviert ACK auf den CNF-Leitungen; und der Slave deaktiviert sowohl BSY als auch NO ARB. In den zwei Zyklen, die dem letzten Datenzyklus folgen, fährt der Slave fort, ACK zu aktivieren, um den richtigen Empfang von Schreibdaten zu bestätigen.
  • Wenn ein Vorgang vom Schreibtyp auf dem Kommunikationspfad auftritt, machen Geräte, die an dem Pfad angeschlossen sind und einen residenten Cache-Speicher haben, irgendwelche in einen Cache-Speicher gebrachten Daten innerhalb des Adreßbereichs des Schreibbefehls ungültig. Wie es der Fall bei dem READ WITH CACHE INTENT-Befehl war, bietet der WRITE WITH CACHE INTENT-Befehl dann, wenn er mit dem INVALIDATE-Befehl verwendet wird, in bestimmten Systemen signifikante Vorteile für die Leistungsfähigkeit.
  • Die Schreibmaske ist ein Vier-Bit-Code, der durch das Vorhandensein aktivierter Bits an einer oder mehrerer der Vier-Bit- Positionen die Auswahl der entsprechenden 8-Bit-Bytes anzeigt, die zu schreiben sind. Somit zeigt der Code 1001 an, daß nur die ersten und vierten Bytes (die D[7 : 0] bzw. D[31 : 24] entsprechen) eines Vier-Byte-(32 Bit)-Wortes zu schreiben sind.
  • Der UNLOCK WRITE MASK WITH CACHE INTENT-Befehl wird in Verbindung mit dem INTERLOCK READ-Befehl verwendet, um unteilbare Operationen wie beispielsweise eine Lese-Abänderungs-Schreib- Operation zu implementieren.
  • Wie es aus Fig. 4B zu sehen ist, wird während eines Vorgangs vom Schreibtyp eine Parität von dem Master während aller Zyklen des Vorgangs erzeugt. Sie wird von allen Geräten während des Befehls-/Adreß- und des eingebetteten Entscheidungszyklus geprüft; und von dem Slave während der Datenzyklen.
  • Vorgang zum Ungültigmachen
  • Der Vorgang zum Ungültigmachen wird von Systemen verwendet, die ihnen zugeordnete Cache-Speicher aufweisen. Er wird durch Geräte unter bestimmten Bedingungen ausgegeben, um sicherzustellen, daß ungültige Daten, die in den Caches anderer Geräte vorhanden sein können, nicht verwendet werden. In dem Befehls-/Adreßzyklus dieses Vorgangs aktiviert der aktuelle Master, wie es in Fig. 4C gezeigt ist, den INVALIDATE-Befehl auf Informationsleitungen I[3 : 0] und die Startadresse der Daten, die ungültig zu machen sind, auf Datenleitungen D[29 : 0]. Die Anzahl aufeinanderfolgender Stellen des Cache-Speichers, die ungültig zu machen sind, wird durch den Datenlängen-Code auf Leitungen D [31 : 30] angezeigt. Der Befehls-/Adreßzyklus wird durch den gewöhnlichen eingebetteten Entscheidungszyklus gefolgt, und einen Datenzyklus, während dem keine Information übertragen wird. Wie bei anderen Vielfach-Antwortbefehlen sind die bestimmten zulässigen Antworten ACK und NO ACK.
  • Unterbrechungs - und Identifikations-Vorgänge
  • Ein Unterbrechungsvorgang ist in Fig. 4D dargestellt. Der Zweck des Vorgangs ist es, andere Geräte (typischerweise Prozessoren) von der Notwendigkeit zu benachrichtigen, aktuelle Aktivitäten zu unterbrechen, um eine andere Handlung aufzunehmen. Das unterbrochene Gerät antwortet mit einem IDENT- Befehl, um den Unterbrechungsvektor anzufordern. Dieser Vektor dient als Zeiger zu der Adresse eines Unterbrechungsprogramms, das in einem Speicher gespeichert ist, der die erforderliche Handlung aufbauen wird.
  • Der Unterbrechungsvorgang besteht aus einem Befehls-/Adreß- Zyklus, einem eingebetteten Entscheidungszyklus und einem Datenzyklus, in dem keine Information übertragen wird. Während des Befehls-/Adreßzyklus wird der Unterbrechungsbefehls-Code auf den Informationsleitungen I[3 : 0] durch das Gerät aktiviert, das nach einer Unterbrechung sucht. Während dieses Zyklus aktiviert das unterbrechende Gerät auch einen oder mehrere Unterbrechungs-Prioritätspegel auf Datenleitungen D[19:16], um die Dringlichkeit der nachgefragten Dienste zu identifizieren. Das Unterbrechungsgerät plaziert auch eine Unterbrechungs-Zielortmaske auf Datenleitungen D[15 : 0]. Diese Maske bestimmt die Geräte, zu denen die Unterbrechung gerichtet ist. Alle Geräte an dem Kommunikationspfad empfangen diese Maske. Wenn irgendein aktiviertes Bit in der Maske der decodierten ID eines Geräts entspricht, dann wird das Gerät ausgewählt. Dieses Gerät wird später mit einem Identifizierungsvorgang antworten.
  • Geräte, die durch die Unterbrechung ausgewählt worden sind, antworten durch Übertragen eines ACK-Signals zwei Zyklen nach dem Befehls-/Adreßzyklus. Wie bei allen anderen Vielfach- Antwortbefehlen sind ACK und NO ACK die einzigen zulässigen Antworten.
  • Von Geräten, die während einer Unterbrechung ausgewählt werden, kann erwartet werden, daß sie sich an einem nachfolgenden Vorgang mit dem Gerät, das eine Unterbrechung anfragt, beteiligen, um den Unterbrechungsprozeß zu beenden. Demgemäß behält jedes antwortende Gerät einen Bericht für jeden Unterbrechungspegel bei, um anzuzeigen, ob bei dem entsprechenden Pegel eine Unterbrechung empfangen wurde. Typischerweise besteht der "Bericht" aus einem Flag-Bit in einem Flip-Flop (hiernachfolgend Unterbrechungs-Hänge-Flip-Flop genannt). Jedes Bit bleibt gesetzt, bis die entsprechende Unterbrechung bedient worden ist.
  • Die zweiten und dritten Zyklen bestehen aus dem gewöhnlichen eingebetteten Entscheidungszyklus, der zuvor beschrieben ist, wie auch aus einem Datenzyklus, in dem keine weitere Information übertragen wird. Eine Bestätigung wird durch einen der Bestätigungs-Codes durchgeführt, der für Vielfach- Antwortbefehle zulässig ist, nämlich ACK oder NO ACK.
  • Fig. 4E stellt einen Identifizierungsvorgang dar. Dieser Vorgang findet in Antwort auf einen Unterbrechungsvorgang statt. Während des Befehls-/Adreßzyklus aktiviert der aktuelle Master den Identifizierungs-Befehlscode auf Informationsleitungen I[3 : 0] und aktiviert auf Datenleitungen D[19 : 16] einen Code, der einem oder mehreren Unterbrechungspegeln entspricht, die zu bedienen sind. Er aktiviert auch BSY und deaktiviert NO ARB. Der folgende Zyklus ist der gewöhnliche eingebettete Entscheidungszyklus.
  • In dem nächsten Zyklus deaktiviert der aktuelle Master seine ID-Nummer, und zwar dieses Mal in decodierter Form, auf Datenleitungen D[31:16]. Jedes Gerät, das einen Dienst bei einem Unterbrechungspegel fordert, der in dem Befehls-/Adreßzyklus bestimmt wird, vergleicht die decodierte Master-ID mit der Unterbrechungs-Zielortmaske, die es früher übertragen hat, um zu bestimmen, ob es eines der Geräte ist, zu dem der Identifizierungsbefehl gerichtet ist. Wenn bestimmt wird, daß es es ist, zeigt es seinen Zustand als einen potentiellen Slave, der an dem Unterbrechungs-Entscheidungszyklus teilnimmt. Während sowohl des decodierten Master- als auch des Unterbrechungs-Entscheidungszyklus aktivieren die unterbrechenden Slaves auch BSY und NO ARB. Während des Unterbrechungs-Ent- scheidungszyklus aktivieren die Geräte, die sich entscheiden, ihren Unterbrechungsvektor zu übertragen, ihre decodierte ID-Nummer auf der geeigneten der Datenleitungen D[31:16]. Eine Entscheidung findet auf die Weise statt, die zuvor beschrieben ist, d. h. das Gerät mit der höchsten Priorität (niedrigste ID-Nummer) "gewinnt" die Entscheidung, wodurch es der Slave wird. Der Slave aktiviert dann seinen Unterbrechungsvektor auf den Datenleitungen. Dieser Vektor zeigt zu einer Stelle in einem Speicher, der einen weiteren Vektor enthält, der den Beginn des Unterbrechungs- Dienstprogramms identifiziert. Zur gleichen Zeit überträgt der Slave einen Vektor-Zustandscode auf Informationsleitungen I[3 : 0], der den Zustand des Vektors in vielem in derselben Weise anzeigt, wie den Datenzustand, der den Zustand der Lesedaten auf diesen Leitungen während eines Lesevorgangs anzeigte.
  • Wie es bei vorangehend beschriebenen Vorgängen der Fall war, wird das BSY-Signal während des Vorgangs von dem ersten Zyklus bis zu dem letzten erwarteten Zyklus durch den Master aktiviert, während NO ARB von dem eingebetteten Entscheidungszyklus bis zu dem letzten erwarteten Zyklus aktiviert wird.
  • ACK, NO ACK, STALL und RETRY können durch den Slave in Antwort auf den Identifizierungsbefehl aktiviert werden. Diese Antwort tritt in Zyklus 5 auf, der zwei Zyklen später erfolgt als für alle anderen Vorgangstypen. Während der zwei Zyklen, die dem Vektorzyklus folgen, aktiviert der Master den ACK- Bestätigungscode, um ein erfolgreiches Beenden des Vorgangs anzuzeigen. Auf einen Empfang der Bestätigung des Slaves des Identifizierungsbefehls hin, setzt der Master das Unterbrechungs-Hänge-Flip-Flop entsprechend dem Unterbrechungspegel zurück, für den der Unterbrechungsvektor übertragen wurde. Wenn der Slave die Bestätigung des Masters zu seiner Übertragung des Unterbrechungsvektors nicht empfängt, überträgt er den Unterbrechungsvorgang noch einmal.
  • Ein Gerät kann nicht an dem Unterbrechungs-Entscheidungszyklus teilnehmen, wenn es einen Paritätsfehler entweder in dem Befehls-/Adreß- oder dem decodierten Master-ID-Zyklus detektiert hat.
  • Geräte, die während des Unterbrechungs-Entscheidungszyklus eine Entscheidung durchgeführt haben, die aber die Entscheidung verloren haben, werden gefragt, den Unterbrechungsbefehl noch einmal auszugeben. Dies verhindert einen Verlust von zuvor gesetzten Unterbrechungen.
  • Verbindungsprozessor- bzw. Interprozessor-Unterbrechungsvorgang
  • Eine vereinfachte Form einer Unterbrechung ist für Multiprozessorsysteme vorgesehen, wenn ein Prozessor nach einer Unterbrechung eines oder mehrerer anderer Prozessoren sucht. Der Interprozessor-Unterbrechungsvorgang, der in Fig. 4F dargestellt ist, besteht aus einem Befehls-/Adeßzyklus, einem eingebetteten Entscheidungszyklus und einem Datenzyklus, in dem keine Information übertragen wird.
  • Bei der bestimmten Implementierung, die hier zum Darstellen der Verbindungseinrichtung verwendet ist, macht dieser Vorgang Gebrauch von drei Registern, nämlich einem Interprozessor- Unterbrechungsmasken-, einem Zielort- und einem Quellenregister 212, 214 bzw. 216 (Fig. 7A). Das Maskenregister enthält ein Feld, das die Prozessoren identifiziert, von denen Interprozessor-Unterbrechungsbefehle angenommen werden. Das Zielortregister enthält ein Feld, das die Prozessoren identifiziert, zu denen ein Interprozessor-Unterbrechungsbefehl zu richten ist, und das Quellenregister enthält ein Feld, das die Quelle eines Interprozessor-Unterbrechungsvorgangs identifiziert, der von einem Prozessor empfangen wird.
  • Während des Befehls-/Adreßzyklus aktiviert der Unterbrechungsprozessor den Interprozessor-Unterbrechungsbefehlscode auf den Informationsleitungen I[3 : 0]. Zur gleichen Zeit aktiviert er seine decodierte Master-ID auf den Datenleitungen D[31 : 16] und aktiviert einen Zielortcode (z. B. von seinem Interprozessor- Unterbrechungs-Zielortregister) auf Datenleitungen D[15 : 0]. Während des folgenden eingebetteten Entscheidungszyklus aktiviert der Unterbrechungsprozessor seine ID auf den Informationsleitungen I[3 : 0] und eine Entscheidung geht auf die gewöhnliche Weise weiter.
  • Während des dritten Zyklus vergleichen die Geräte, die durch den Zielortcode adressiert sind, der in dem Befehls-/Adreß- Zyklus aktiviert ist, die decodierte Master-ID mit der Maske in dem Maskenregister, um zu bestimmen, ob der Master ein Gerät ist, dem sie antworten können. Wenn es so ist, wird die decodierte Master-ID zusätzlich vorzugsweise in dem Interprozessor-Unterbrechungsquellenregister gespeichert, um die Identität der Unterbrechungsgeräte beizubehalten. Dies erspart dem Prozessor die allgemeinen Unkosten eines späteren Suchens eines Unterbrechungsvektors, wie es bei dem Unterbrechungsvorgang durchgeführt wird. Die zulässigen Slave- Bestätigungssignale sind ACK und NO ACK wie für jeden anderen Vielfach-Antwortbefehl.
  • Anhaltevorgang
  • Der Anhaltevorgang ist in Fig. 4G dargestellt. Er ermöglicht eine Diagnose von ausgefallenen Systemen durch Anhalten eines weiteren Erzeugens von Vorgängen durch ausgewählte Geräte, während ihnen ermöglicht wird, ein Antworten als Slaves fortzuführen. Durch einen Anhaltevorgang ausgewählte Geräte müssen einen beliebigen Hänge-Masterzustand abbrechen und NO ARB deaktivieren. Zum Ermöglichen einer Fehlerdiagnose wird bevorzugt, daß solche Geräte wenigstens eine gewisse minimale Information beibehalten, die Fehlerbedingungen betrifft, die zu der Zeit des Anhaltevorgangs existieren. Beispielsweise ist es wünschenswert, daß die Information, die in einem Kommunikationspfad-Fehlerregister 204 (Fig. 7D) für einen nachfolgende Analyse beibehalten wird.
  • Während des Befehls-/Adreßzyklus aktiviert der aktuelle Master, der einen Anhaltevorgang durchführt, den geeigneten Befehl auf Informationsleitungen I[3 : 0] und aktiviert eine Zielortmaske auf Datenleitungen D[31:0]. Die Maske besteht aus einer Anzahl von Bits, die dann, wenn sie gesetzt sind, die Geräte identifizieren, die anzuhalten sind. Der Befehls-/ Adreß-Zyklus wird durch den gewöhnlichen eingebetteten Entscheidungszyklus und einen Datenzyklus, während dem keine Information übertragen wird, gefolgt. Die Information, die während des Befehls-/Adreßzyklus übertragen wird, wird zwei Zyklen später durch alle Geräte bestätigt, die durch den Anhaltevorgang ausgewählt sind.
  • Sendevorgang
  • Der Sendevorgang, der in Fig. 4H dargestellt ist, bietet eine bequeme Einrichtung zum breiten Unterrichten von Geräten auf dem Kommunikationspfad über signifikante Ereignisse, während die allgemeinen Unkosten von Unterbrechungsvorgängen vermieden werden. Während des Befehls-/Adreßzyklus des Vorgangs aktiviert der aktuelle Master, der den Sendevorgang initiiert, den geeigneten Befehlscode auf Informationsleitungen I[3 : 0] und plaziert einen Zwei-Bit-Datenlängencode auf Datenleitungen D[31 : 30]. Zur gleichen Zeit plaziert er eine Zielortmaske auf Datenleitungen D[15 : 0]. Diese Maske spezifiziert die Geräte, die durch den Sendevorgang ausgewählt werden. Zum Beispiel wird ein "Eins"-Bit, das auf Datenleitungen 2, 3, 5, 9, 12, 13 und 14 aktiviert wird, Geräte 2, 3, 5, 9, 12, 13 und 14 zum Empfang der Sendung auswählen. Der Befehls-/Adreßzyklus wird durch den gewöhnlichen eingebetteten Entscheidungszyklus gefolgt, der wiederum durch einen oder mehrere Datenzyklen gefolgt wird. Nur zum Zwecke der Darstellung sind zwei Datenzyklen gezeigt. Die Daten selbst werden auf Datenleitungen D[31 : 0] durch den Master aktiviert. Wie bei Vorgängen vom Schreibtyp geben die Slaves entweder ACK oder NO ACK zwei Zyklen später aus.
  • Register-Komplement
  • Fig. 7A zeigt die Registerdatei, die bei der vorliegenden Implementierung der Verbindungseinrichtung enthalten ist. Diese besteht aus einem Gerätetyp-Register 200, einem Steuer- und Zustandsregister 202, einem Busfehler-Register 204, einem Fehlerunterbrechungs-Steuerungs-Register 206, einem Fehlervektor-Register 208, einem Unterbrechungszielort- Register 210, einem Interprozessor-Unterbrechungsmasken-Register 212, einem Interprozessor-Unterbrechungszielort-Register 214 und einem Interprozessor-Unterbrechungsquellen-Register 216. Diese Register bestehen sowohl aus 32-Bit-Registern (z. B. Register 200, 204) als auch 16-Bit-Registern (z. B. Register 202, 206, 208, 210, 212, 214 und 216).
  • In dem Gerätetyp-Register 200 (Fig. 7B) wird der Code für den Gerätetyp in der unteren Hälfte (DTR[15 : 0]) des Registers gespeichert. Der Gerätetyp wird beim Einschalten des Systems oder bei einer nachfolgenden Initialisierung des Systems in dieses Register geladen. Dieses Register kann durch andere Elemente in dem System, für gewöhnlich einem Prozessor, gefragt werden, zu bestimmen, welche Geräte mit dem System zum Zwecke einer Optimierung und einer dynamischen Neuanordnung, nämlich der Systemkonfiguration, in Verbindung stehen. Ein Revisionscode-Feld (DTR[31:16]) ist in der oberen Hälfte des Gerätetyp-Registers vorgesehen.
  • Das Steuer- und Zustandsregister 202 enthält eine Anzahl von Bits, die den Zustand verschiedener Bedingungen in dem Gerät anzeigen, wie auch in der Verbindungseinrichtung, an der es angebracht ist. Zusätzlich speichert es Information, die beim Entscheiden für eine Steuerung des Kommunikationspfads verwendet wird. Somit speichern Bits CSR[30 : 0] die codierte Form der Geräte-ID, die beim Einschalten oder bei einer nachfolgenden Initialisierung auch in dieses Register geladen wird. Bits CSR[5 : 4] bestimmen den Entscheidungsmodus, in dem das Gerät entscheiden wird. Wie es zuvor beschrieben ist, bestehen diese Moden aus "doppelten Round-Robin"-, festen hohen, festen niedrigen und Entscheidungs-Sperr-Moden. Beim Einschalten oder einer darauffolgenden Initialisierung wird der Entscheidungsmodus auf den "doppelten Round-Robin"-Modus gesetzt. Jedoch kann dieser Modus durch Schreiben zu jenen Bits während einer Systemoperation geändert werden.
  • CSR[7] und CSR[6] sind jeweils Hartfehler-Unterbrechungsfreigabe- und Weichfehler-Unterbrechungsfreigabe-Bits. Wenn sie gesetzt sind, geben sie das Gerät frei, um einen Unterbrechungsvorgang (der hier nachfolgend Fehlerunterbrechungsvorgang genannt wird) zu erzeugen, wann immer das Hartfehler-Zusammenfassungsbit CSR[15] bzw. das Weichfehler- Zusammenfassungsbit CSR[14] gesetzt wird. Diese letzteren Bits werden gesetzt, wenn ein harter bzw. ein weicher Fehler detektiert wird. Ein "harter" Fehler ist einer, der die Integrität von Daten bei diesem System beeinträchtigt; beispielsweise ein Paritätsfehler, der auf den Datenleitungen während einer Übertragung von Daten detektiert wird, ist ein harter Fehler. Gegensätzlich dazu ist ein "weicher" Fehler einer, der die Integrität der Daten in dem System nicht beeinträchtigt, beispielsweise kann ein Paritätsfehler, der auf den Identifizierungsleitungen I[3 : 0] während des eingebetteten Entscheidungszyklus detektiert wird, zu einer unrichtigen Berechnung durch ein Gerät führen, wird aber nicht die Integrität von Daten auf dem Kommunikationspfad beeinträchtigen. Demgemäß ist es ein weicher Fehler.
  • Das Entriegelungs-Schreib-Hängebit CSR[8] zeigt an, daß ein Verriegelungs-Lesevorgang erfolgreich durch das Gerät übertragen worden ist, aber daß ein darauffolgender Entriegelungs- Schreibmaske-mit-Chache-Absichtsbefehl noch nicht übertragen worden ist. Ein Start-Selbsttest-Bit CSR[10] initiiert dann, wenn es gesetzt ist, einen Selbsttest, der die Operation der Verbindungslogik überprüft. Der Selbsttest-Zustand CSR[11] bleibt zurückgesetzt, bis der Selbsttest erfolgreich beendet worden ist, zu welcher Zeit das STS-Bit gesetzt wird, um ein erfolgreiches Beenden des Tests anzuzeigen. Das Unterbrechungsbit CSR[12] wird auch gesetzt, wenn das Gerät seinen Selbsttest nicht erfolgreich beendet hat.
  • Das Initialisierungsbit CSR[13] wird in Verbindung mit einer Systeminitialisierung verwendet. Beispielsweise kann es als Zustandsindikator verwendet werden, während das Gerät einer Initialisierung unterzogen wird. CSR[23:16] bestimmt den bestimmten Aufbau der Verbindungseinrichtung. Bits CSR[31:24] werden gegenwärtig nicht verwendet.
  • Das Busfehler-Register 204 zeichnet verschiedene Fehlerbedingungen während einer Systemoperation auf. Das Null-Paritäts- Fehlerbit BER[0], das Bit für korrigierte Lesedaten BER[1] und das ID-Paritäts-Fehlerbit BER[2] zeichnen weiche Fehler auf, während die übrigen Bits harte Fehler aufzeichnen. Das Null- Paritäts-Fehlerbit wird gesetzt, wenn eine unrichtige Paritität während des zweiten Zyklus einer Zwei-Zyklus-Ablauffolge detektiert wurde, während der NO ARB und BSY deaktiviert waren. Das Bit für korrigierte Lesedaten wird gesetzt, wenn ein Zustandscode für korrigierte Lesedaten in Antwort auf einen Vorgang vom Lesetyp empfangen wird. Das ID-Paritäts-Fehlerbit wird gesetzt, wenn ein Paritätsfehler auf den Leitungen I[3 : 0] detektiert wird, die die codierte Master-ID während eines eingebetteten Entscheidungszyklus führen.
  • Ein Bit für einen Fehler einer unrichtigen Bestätigung BER[16] zeigt einen Empfang eines Codes einer unrichtigen Bestätigung während eines Vorgangs an. Ein Bit für eine nicht vorhandene Adresse BER[17] wird beim Empfang einer NO ACK-Antwort auf einen Befehl von Lesetyp oder vom Schreibtyp gesetzt. Ein Bus-Auszeit-Bit BER[18] wird gesetzt, wenn ein Hänge-Master immer länger als eine vorbestimmte Anzahl von Zyklen wartet, um eine Steuerung der Verbindung anzunehmen. Bei der hier beschriebenen spezifischen Implementierung ist eine Auszeit von 4096 Zyklen implementiert. Ein STALL-Auszeit-Bit BER[19] wird gesetzt, wenn ein antwortendes (Slave-)-Gerät STALL auf den Antwortleitungen CNF[2 : 0] für mehr als eine vorbestimmte Anzahl von Zyklen aktiviert. Bei der vorliegenden Implementierung tritt die Verzögerungs-Auszeit nach 128 Zyklen auf. Das RETRY-Auszeit-Bit BER[20] wird gesetzt, wenn ein aktueller Master eine vorbestimmte Anzahl aufeinanderfolgender RETRY- Antworten von einem Slave empfängt, mit dem er kommuniziert. Bei der vorliegenden Implementierung ist diese Auszeit für 128 aufeinanderfolgende RETRY-Antworten eingestellt.
  • Das Lesedaten-Ersatz-Bit BER[21] wird gesetzt, wenn ein Datenzustand mit einem Lesedatenersatz oder einem Reservezustands- Code während eines Lesetyp- oder Identifizierungsvorgangs empfangen wird, und es während dieses Zyklus keinen Paritätsfehler gegeben hat. Das Slave-Paritäts-Fehlerbit BER[22] wird gesetzt, wenn ein Slave einen Paritätsfehler auf dem Kommunikationspfad während eines Datenzyklus eines Schreibtyp- oder Sendevorgangs detektiert. Das Befehls-Paritäts-Fehlerbit BER[23] wird gesetzt, wenn ein Paritätsfehler während eines Befehls-/Adreßzyklus detektiert wird.
  • Das Identifizierungs-Vektor-Fehlerbit BER[24] wird durch einen Slave beim Empfang irgendeines Bestätigungscodes gesetzt, der ein anderer als ACK von dem Master-Identifizierungsvorgang ist. Das Übertragung-während-eines-Ausfalls-Bit BER[25] wird gesetzt, wenn ein Gerät Information auf den Daten- und Informationsleitungen oder während einer eingebetteten Entscheidung nur auf den Informationsleitungen während eines Zyklus aktiviert, was in dem Setzen des Bits SPE, MPE, CPE oder IPE resultiert. Das Verriegelungs-Ablauffolgen-Fehlerbit BER[26] wird gesetzt, wenn ein Master einen Schreib-Entriegelungs- Vorgang erfolgreich übertragen hat, ohne zuvor den entsprechenden Verriegelungs-Lese-Vorgang übertragen zu haben. Das Master-Paritäts-Fehlerbit BER[27] wird gesetzt, wenn der Master einen Paritätsfehler während eines Datenzyklus mit einer ACK-Bestätigung auf den Leitungen CNF[2 : 0] detektiert. Das Steuer-Übertragungs-Fehlerbit BER[28] wird gesetzt, wenn ein Gerät einen deaktivierten Zustand auf den Leitungen NO ARB, BSY oder CNF zu einer Zeit detektiert, wenn das Gerät versucht, diese Leitungen zu aktivieren. Schließlich wird das Master-Übertragungs-Prüf-Fehlerbit BER[29] gesetzt, wenn die Daten, die der Master versucht, auf den Daten-, Informations- oder Paritätsleitungen zu aktivieren, nicht mit den Daten übereinstimmen, die auf diesen Leitungen tatsächlich vorhanden sind. Jedoch wird die Aktivierung der Master-ID während einer eingebetteten Entscheidung nicht geprüft.
  • Wendet man sich nun der Fig. 7E zu, ist die Struktur des Fehler-Unterbrechungssteuerregisters 206 im Detail gezeigt. Wenn ein Bit in dem Busfehler-Register gesetzt wird und das geeignete Fehler-Unterbrechungs-Freigabebit in dem Steuer- und Zustandsregister gesetzt wird, oder wenn das Kraftbit in dem Fehler-Unterbrechungssteuerregister gesetzt wird, wird eine Fehlerunterbrechung auftreten. Bits EICR[13 : 2] enthalten den Fehler-Unterbrechungsvektor. Wenn das Kraftbit EICR[20] gesetzt wird, wird die Verbindungseinrichtung einen Fehler- Unterbrechungsvorgang bei den Pegeln erzeugen, die durch Bits EICR[19 : 16] bestimmt sind. Das Gesendet-Bit EICR[21] wird gesetzt, nachdem eine Fehlerunterbrechung übertragen worden ist. Wenn es gesetzt ist, verhindert es die Erzeugung weiterer Unterbrechungen durch dieses Register. Dieses Bit wird beim Verlieren einer Unterbrechungsentscheidung für die Fehlerunterbrechung rückgesetzt. Das Unterbrechungs-Beendigungs- Bit EIRCR[23] wird beim erfolgreichen Übertragen des Fehler- Unterbrechungsvektors gesetzt.
  • Das Unterbrechungs-Abbruchbit EICR[34] wird gesetzt, wenn ein Fehler-Unterbrechungsvorgang nicht erfolgreich ist.
  • Wendet man sich nun der Fig. 7F zu, enthält das Unterbrechungs-Zielortregister 210 ein Unterbrechungs- Zielortfeld IDR[15 : 0], das identifiziert, welche Geräte durch Unterbrechungsbefehle auszuwählen sind, die durch dieses Gerät entstanden sind, wie es zuvor beschrieben ist.
  • Das Interprozessor-Unterbrechungs-Maskenregister 212 ist in Fig. 7G gezeigt. Dieses Register enthält ein Maskenfeld IIMR[31 : 16], das Geräte identifiziert, von denen Interprozessor-Unterbrechungen akzeptiert werden. Ähnlich dazu enthält das Interprozessor-Unterbrechungs-Zielortregister 214 ein Zielortfeld IIDR[15 : 0], das Geräte identifiziert, zu denen Interprozessor-Unterbrechungsbefehle zu richten sind. Schließlich enthält das Interprozessor-Unterbrechungs- Quellenregister 216 ein Quellen-Identifizierungsfeld IISR[31 : 16], das die decodierte ID eines Geräts speichert, das einen Interprozessor-Unterbrechungsbefehl zu diesem Gerät sendet, vorausgesetzt die ID des Sendegeräts paßt zu einem Bit in dem Interprozessor-Unterbrechungs-Maskenregister dieses Geräts.
  • 2. Weitere spezifische Beschreibung der Entscheidungslogik
  • Fig. 8 ist ein Block- und Liniendiagramm, das die Prioritäts- Entscheidungslogik gemäß der Erfindung darstellt, die hier insbesondere beschrieben ist. Der einfacheren Erörterung halber ist die Logik als positive Logik gezeigt, wobei Eingangssignale vorhanden sind und Ausgangssignale erzeugt werden, wenn die jeweiligen Signale "hoch" sind, und sonst abwesend sind. Da die Signale auf dem Kommunikationspfad tatsächlich eine negative Logik haben, d. h. sie dann vorhanden sind, wenn sie "niedrig" sind, sollten sie derart betrachtet werden, als ob sie vor einer Anwendung auf die Logik der Fig. 8 durch Inverter geführt sind.
  • Eine Zyklus-Steuerung 300 empfängt die NO ARB- und BSY-Signale jeweils von den Steuerleitungen 90 und 92 der Leitungen 78 und empfängt auch die lokalen Taktsignale TCLK RCLK. Diese Signale werden verwendet, um den Beginn eines Vorgangs zu definieren. Insbesondere in Antwort auf die Detektion eines Befehls/Adreßzyklus durch ein Detektieren der Aktivierung von BSY, die einem Zyklus folgt, in dem NO ARB aktiviert wurde, erzeugt die Steuerung 300 ein verzögertes Signal IARB, um den eingebetteten Entscheidungszyklus zu definieren. Die Steuerung erzeugt auch ein Signal ARB (in Fig. 7A mit "Arb" bezeichnet), das verwendet wird, um jeden Entscheidungszyklus abzugrenzen, der für die Dauer des eingebetteten Entscheidungszyklus aktiviert ist (d. h. niedrig).
  • Geräte, die nach einem Zugriff auf die Busleitungen 78 suchen, um einen Vorgang durchzuführen, aktivieren eine Einzelleitung entsprechend ihrer ID-Nummer in einer von zwei Gruppen von Leitungen, die aus den Datenleitungen 82 der Busleitungen 78 bestehen. Insbesondere wird ein Gerät eine Einzelleitung in der Gruppe von Leitungen hoher Priorität D[15 : 0] aktivieren, wenn es bei einem hohen Prioritätspegel entscheiden soll, und wird eine Einzelleitung in der Gruppe niedriger Priorität von Leitungen D[31 : 16] aktivieren, wenn es bei einem niedrigen Prioritätspegel entscheiden soll. Die ID-Nummer des Geräts wird an diese Leitungen von einem ID-Register 302 angelegt. Dieses Register kann dasselbe wie die Bits CSR[3 : 0] des Steuer- und Zustandsregisters (Fig. 7C) sein, oder kann von jenem Register geladen werden, oder kann ein separates Register sein, das von dem Geräte-ID-Stecker beim Einschalten geladen wird. Ungeachtet der Art, auf die das Register 302 implementiert ist, enthält es einen Vier-Bit-Code, der die ID- Nummer des fraglichen Gerätes bestimmt.
  • Der Ausgang des Registers 302 wird einem Vier-Zu-Sechzehn- Decodierer 304 zugeführt, der den Vier-Bit-Code (die "codierte" ID) in einen Eins-Aus-Sechzen-Code (die "decodierte" ID) umwandelt, der zu Leitungen 306 geführt wird. Diese Leitungen werden wiederum zu einem Multiplexer 308 geführt, der sie wiederum mit Datenleitungs-Gruppen hoher Priorität oder niedriger Priorität verbindet, und zwar in Abhängigkeit von dem Zustand von Freigabesignalen bei Freigabe-Eingabe-Terminals 310. Die Freigabe-Eingänge 310 werden wiederum von einem Moden- Auswahlregister 312 und einem Komparator 314 über AND-Gatter 316, 318 und OR-Gatter 320, 322 angetrieben. Das Moden- Auswahlregister 312 bestimmt den Modus, in dem eine Entscheidung stattzufinden hat. Wie es gegenwärtig vorgesehen ist, ist dieser Modus einer unserer Moden, nämlich eine Entscheidung bei einer festen hohen Priorität gemäß einer "doppelten Round-Robin"-Basis oder "Entscheidung gesperrt". Ein Zwei- Bit-Code ist geeignet zum Auswählen dieser Moden. Diese Bits sind bei Bits CSR[54] (Fig. 7C) des Steuer- und Zustandsregisters gespeichert. Demgemäß kann das Register 312 selbst aus diesen Bits jenes Registers bestehen oder kann von diesen Bits jenes Registers geladen werden.
  • Ein Zwei-zu-Vier-Decodierer 324 wandelt die (codierte) Zwei- Bit-Binär-Form in eine (decodierte) Eins-Aus-Vier-Form um, die an eines oder mehrere der Gatter 316, 318, 320 und 322 angelegt wird. Leitungen 326, 328, 330 und 332 werden jeweils angeregt, wenn der Ausgang des Decodierers 316 anzeigt, daß eine Entscheidung nicht stattfindet ("Entscheidung gesperrt"), daß eine Entscheidung bei einer festen niedrigen Priorität stattfinden soll ("FL"); daß eine Entscheidung bei einer festen hohen Priorität stattfinden soll ("F"); oder daß eine Entscheidung auf einer "doppelten Round-Robin"-Basis stattfinden soll ("RR"). Eine Leitung 326 deaktiviert dann, wenn sie angeregt ist, Treiber 334, um eine Übertragung der ID eines Geräts auf die Datenleitungen 82 zu verhindern. Wenn dies auftritt kann das Gerät nicht an einer Entscheidung teilnehmen. Eine Leitung 328 gibt dann, wenn sie angeregt ist, den Eingang 310b niedriger Priorität des Multiplexers 308 über ein OR-Gatter 322 frei, um dadurch das Prioritäts- Aktivierungssignal, das an eine der Leitungen 306 an dem Eingang des Multiplexers angelegt ist, zu einer der Datenleitungen niedriger Priorität D[31 : 16] zu schalten. Ähnlich dazu gibt eine Leitung 330 dann, wenn sie angeregt ist, einen Eingang 310a des Multiplexers 308 frei, um dadurch die ausgewählte der Leitungen 306 zu den Datenleitungen hoher Priorität D[15 : 0] der Datenleitungen 82 zu schalten.
  • Eine Entscheidung in dem "doppelten Round-Robin"-Modus erfordert einen Vergleich der Geräte-ID-Nummer mit der ID-Nummer des aktuellen Masters des direkt vorangehenden Vorgangs. Dies wird mittels eines Empfangsregisters 340 erreicht, das durch eine Und-Verknüpfung von IARB und RCLOCK mit einem Eingangsgatter 348 getaktet ist.
  • Der Komparator 314 vergleicht die ID seines eigenen Geräts (d. h. des Geräts, in dem der Komparator angeordnet ist) mit der ID des vorherigen Masters. Wenn die ID seines eigenen Geräts gleich oder kleiner als die ID des vorherigen Masters ist, regt der Komparator 314 eine Leitung 315 an, um dadurch einen Eingang 310b des Multiplexers 308 freizugeben und somit eine Entscheidung für das bestimmte Gerät auf den Datenleitungen niedriger Priorität einzurichten. Alternativ dazu regt der Komparator 314 dann, wenn die ID des gegenwärtigen Geräts größer als die ID des vorherigen Masters ist, eine Leitung 317 an und gibt somit einen Eingang 310a des Multiplexers 308 über Gatter 318 und 322 frei, um dadurch eine Entscheidung für dieses Gerät auf Leitungen hoher Priorität der Datenleitungen 82 einzurichten.
  • Fig. 8 stellt auch die Art dar, auf die bestimmt wird, daß ein bestimmtes Gerät eine Entscheidung "gewonnen" hat. Insbesondere bestimmt eine Prioritäts-Auflösungseinheit 380 in der Verbindungseinrichtung das Gewinn-/Verlust-Ergebnis der Entscheidung. Empfangstreiber 341 empfangen das Entscheidungszyklus-Bitmuster von Datenleitungen 78, wenn sie durch die ARB-Signalaktivierung freigegeben werden, deren Quelle die Zyklus-Steuerung 300 ist. Die Ausgänge der Treiber 341 sind in 16-Leitungs-Gruppierungen aufgeteilt, und zwar in D[15 : 0], was der Satz hoher Priorität ist, und D[31 : 16], was der Satz niedriger Priorität ist. Der Satz von Leitungen D[15 : 0] bzw. D[31 : 16] geben jeweils Prioritätscodierer 370 und 372 ein. Jeder Prioritätscodierer enthält eine Schaltung für die Be- stimmung der codierten ID des höchsten Prioritätspegels, der ein Gerät in dem 16-Bit-Eingabemuster aktiviert, und gibt das Ergebnis auf Leitungen 362 während des Entscheidungszyklus aus.
  • Ein Multiplexer 367 wird wie folgt freigegeben. Ein Signal 364 ist "0 DETECT", das dann aktiviert, wenn keine Bits durch 370 erfaßt werden, um während des Entscheidungszyklus auf D[15 : 0] aktiviert zu werden. Eine Aktivierung eines Signals 364 veranlaßt einen Eingang 362 eines Bitmusters dazu, zu 368 kanalisiert zu werden. Eine Deaktivierung eines Signals 364 veranlaßt, 362b ein Muster zu 368 auszugeben. Diese Funktion gibt einen Komparator 366 frei, die eigene ID eines Geräts nur mit der ID der höchsten Priorität zu vergleichen.
  • Ausgänge WON ARB des Komparators 366 aktivieren daher wie folgt
  • ID 368 = Diese Geräte-ID.
  • WON ARB wird für alle anderen Bedingungen der Eingänge von 366 deaktiviert. Somit wird nur jenes Gerät (oder jene Geräte), die bestimmt sind, die höchste Priorität zu haben, ein "Entscheidung gewonnen"-Signal in ihrer Verbindungs-Steuerung erzeugen. Wenn dieses Signal erzeugt wird, kann das Gerät den Zustand eines Hänge-Masters in dem nächsten Zyklus annehmen und wird jenen Zustand beibehalten, bis es eine Steuerung des nachfolgenden Vorgangs als aktueller Master annimmt.
  • Schlußfolgerung
  • Aus dem Vorangehenden wird gesehen werden, daß wir ein System zum effizienten Zuordnen einer Priorität unter einer Gruppe von Geräten geschaffen haben, wobei jedes nach einer Steuerung eines beschränkten Geräts wie beispielsweise eines Kommunikationspfades sucht. Geräte in dem System können in unterschiedlichen Prioritätsmoden einschließlich einem Modus mit fester Priorität und einem "doppelten Round-Robin"-Modus arbeiten. Diese Moden können durch das Operationssystem oder durch das Gerät selbst geändert werden, um die Leistungsfähigkeit des Gesamtsystems zu optimieren. Demgemäß wird ein normalerweise vielseitiges System geschaffen.
  • Weiterhin bestimmt jedes Gerät für sich selbst, ob und wann ihm erlaubt wird, den Kommunikationspfad zu steuern, und zwar unabhängig von der Gesamtanzahl von Geräten, die entweder mit dem Pfad verbunden sind oder nach einer Steuerung von ihm suchen, und seine physikalische Anordnung an dem Pfad ist nicht eingeschränkt. Dies läßt das Hinzufügen und Entfernen von Geräten zu oder von dem Kommunikationspfad ohne die Notwendigkeit zu, Geräte abzuändern, die schon mit ihm verbunden sind, oder den Pfad selbst abzuändern.
  • Zusätzlich erfordert das System nur eine einzige zusätzliche Leitung in dem Kommunikationspfad über jene hinausgehend, die für andere Zwecke vorgesehen sind, zum Durchführen der nachgefragten Entscheidung, und erleichtert somit eine Implementierung der Verbindungseinrichtung auf einem einzelnen integrierten Schaltkreis mit vorhandener Technologie. Dies resultiert in einem normalerweise ökonomischen Steuermechanismus zum Steuern einer Kommunikation zwischen Computergeräten, die verbunden sind, um ein Digitalcomputersystem zu bilden.

Claims (13)

1. Verbindungsschaltung in einem Gerät zur Bereitstellung einer Kommunikationsschnittstelle für das Gerät zu einem nicht-hängenden Bus (Fig. 8 : 78), wobei das Gerät eine einzige Identifikationsnummer (302) hat und das Gerät einen Vorgang zu Zeiten einleitet, wenn ein Anforderungssignal durch die Aktivierung einer besetzten Leitung (92) aktiviert wird, um Zugriff auf den Bus zu erreichen, wobei der Bus eine Vielzahl von Informationsleitungen (80), eine Vielzahl von Datenleitungen (82), eine Nicht-Entscheidungs-Leitung (no arbitration line) (90) und die besetzte Leitung umfaßt, und worin jeder der Vorgänge einen Befehls-/Adreß-Zyklus (z. B. Fig. 4A : 180) hat, der von einem eingebetteten Entscheidungszyklus (182) gefolgt wird, der dann von mindestens einem Datenzyklus (184, 186) gefolgt wird, wobei die Nicht-Entscheidungs-Leitung von jedem Gerät aktiviert wird, ausgenommen während dem Befehls-/Adreß-Zyklus und die Schaltung folgendes umfaßt:
eine Steuereinrichtung (300), die mit der Nicht-Entscheidungs-Leitung (90) und der besetzten Leitung (92) verbunden ist und auf eine Deaktivierung der Nicht-Entscheidungs-Leitung anspricht, um anzuzeigen, wenn der eingebettete Entscheidungszyklus während eines aktuellen Vorgangs stattfindet;
eine Treibereinrichtung (334), die mit der Steuereinrichtung verbunden ist, um eine der zwei Datenleitungen, entsprechend dem Gerät, während dem eingebetteten Entscheidungszyklus zu aktivieren;
eine Prioritätsauflösungs-Einrichtung (380), die mit der Datenleitung (82) verbunden ist, um ein gewonnenes Vorrangsignal zu aktivieren, das anzeigt, daß das Gerät die höchste Priorität während dem eingebetteten Entscheidungszyklus hat, wobei die Aktivierung des gewonnenen Vorrangssignals es dem Gerät ermöglicht, die besetzte Leitung während einem anschließenden Zyklus zu aktivieren, um den nächsten Vorgang dann einzuleiten, nachdem die besetzte Leitung durch ein vorheriges Gerät, das während des aktuellen Vorgangs Zugriff auf den Bus hat, deaktiviert wird;
eine Empfangsregister- und Vergleichs-Einrichtung (340, 314), die mit den Informationsleitungen (80) verbunden ist, um die Identifikationsnummer (302) des Gerätes mit einer Identifikationsnummer des vorherigen Gerätes, die auf den Informationsleitungen (80) während dem eingebetteten Entscheidungszyklus vorhanden ist, zu vergleichen, und um eine Bezugszahl (315, 317) in sowohl einem ersten als auch einem zweiten Zustand zu setzen, dementsprechend ob die Identifikationsnummer des Gerätes, das einen Vorgang einleiten will, größer ist als die des vorherigen Gerätes; und
eine Schaltungseinrichtung (308), die auf die Empfangsregister- und Vergleichs-Einrichtung (340, 314) anspricht und mit der Treibereinrichtung (334) verbunden ist, um eine dem Gerät entsprechende Datenleitung mit geringer Priorität zu aktivieren, während dem eingebetteten Entscheidungszyklus, wenn die Bezugszahl im ersten Zustand ist, und um eine dem Gerät entsprechende Datenleitung hoher Priorität während der eingebetteten Vermittlungsperiode zu aktivieren, wenn die Bezugszahl im zweiten Zustand ist, worin das Gerät eine variable Priorität hat und ihm der Zugriff auf den Bus zugeteilt ist, der einem zweifach durchlaufenen, doppelten Round-Robin-Algorithmus ziemlich entspricht.
2. Schaltung nach Anspruch 1, worin das Gerät einen Fehler-Unterbrechungs-Vorgang einleitet, wenn ein Fehlerzustand während einer Systemoperation eintritt, und die Schaltung weiterhin gekennzeichnet ist durch:
eine Busfehler-Register-Einrichtung (204) für die Aufzeichnung des Fehlerzustandes, der während einer Systemoperation eintritt.
3. Schaltung nach Anspruch 2, in der die Busfehler-Register-Einrichtung dem Gerät anzeigt, daß ein Paritätsfehler von dem Bus während einem Datenzyklus eines Schreib-Typ-Vorgangs empfangen wurde.
4. Schaltung nach Anspruch 3, in der das Gerät ein Speicher (12) ist.
5. Schaltung nach Anspruch 3, in der das Gerät ein Massenspeicher (16) ist.
6. Schaltung nach Anspruch 2, in der die Busfehler-Register-Einrichtung dem Gerät anzeigt, daß ein unerlaubter Bestätigungs-Code von dem Bus während eines Vorgangs empfangen wurde.
7. Schaltung nach Anspruch 2, in der die Busfehler-Register-Einrichtung dem Gerät anzeigt, daß keine Empfangsbestätigung von dem Bus während eines Identifikationsvorgangs empfangen wurde.
8. Schaltung nach Anspruch 1, in der das Gerät ein Speicher (12) ist.
9. Schaltung nach Anspruch 1, worin der Vorgang ein Fehler-Unterbrechungs-Vorgang ist und die Steuereinrichtung weiterhin folgendes umfaßt:
eine Einrichtung (18) zur Aktivierung eines Anforderungssignals zu Zeiten, wenn das Gerät den Fehler-Unterbrechungs-Vorgang einleiten will;
10. Schaltung mit einem Speicher entsprechend Anspruch 9, worin das Gerät den Fehler-Unterbrechungs-Vorgang dann einleitet, wenn ein Fehlerzustand während einer Systemoperation eintritt, und weiterhin durch folgendes gekennzeichnet ist:
eine Busfehler-Register-Einrichtung (204) zur Aufzeichnung des Fehlerzustands, der während einer Systemoperation eintritt.
11. Schaltung nach Anspruch 10, in der die Busfehler-Register-Einrichtung anzeigt, daß ein Paritätsfehler von dem Bus während einem Datenzyklus eines Schreib-Typ-Vorgangs empfangen wurde.
12. Schaltung nach Anspruch 10, in der die Busfehler-Register-Einrichtung anzeigt, daß ein unerlaubter Bestätigungs-Code von dem Bus während eines Vorgangs empfangen wurde.
13. Schaltung nach Anspruch 10, in der die Busfehler-Register-Einrichtung anzeigt, daß keine Empfangsbestätigung von dem Bus während eines Identifikationsvorgangs empfangen wurde.
DE3486299T 1983-09-22 1984-09-21 Bus-Arbitrierungssystem. Expired - Fee Related DE3486299T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/534,829 US4787033A (en) 1983-09-22 1983-09-22 Arbitration mechanism for assigning control of a communications path in a digital computer system

Publications (2)

Publication Number Publication Date
DE3486299D1 DE3486299D1 (de) 1994-05-11
DE3486299T2 true DE3486299T2 (de) 1994-11-03

Family

ID=24131702

Family Applications (2)

Application Number Title Priority Date Filing Date
DE198888200854T Pending DE340347T1 (de) 1983-09-22 1984-09-21 Bus-arbitrierungssystem und -verfahren.
DE3486299T Expired - Fee Related DE3486299T2 (de) 1983-09-22 1984-09-21 Bus-Arbitrierungssystem.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE198888200854T Pending DE340347T1 (de) 1983-09-22 1984-09-21 Bus-arbitrierungssystem und -verfahren.

Country Status (9)

Country Link
US (1) US4787033A (de)
EP (1) EP0139569A3 (de)
JP (1) JPS60246460A (de)
KR (1) KR910001790B1 (de)
AU (3) AU561050B2 (de)
BR (1) BR8404841A (de)
CA (1) CA1218467A (de)
DE (2) DE340347T1 (de)
FI (1) FI82991C (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661905A (en) * 1983-09-22 1987-04-28 Digital Equipment Corporation Bus-control mechanism
EP0192049A1 (de) * 1985-01-24 1986-08-27 Siemens Aktiengesellschaft Schaltungsanordnung zum Übertragen von Daten über eine Busleitung
US5051946A (en) * 1986-07-03 1991-09-24 Unisys Corporation Integrated scannable rotational priority network apparatus
US5142682A (en) * 1987-03-26 1992-08-25 Bull Hn Information Systems Inc. Two-level priority arbiter generating a request to the second level before first-level arbitration is completed
US5341510A (en) * 1987-05-01 1994-08-23 Digital Equipment Corporation Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor
US5111424A (en) * 1987-05-01 1992-05-05 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfer
US4941083A (en) * 1987-05-01 1990-07-10 Digital Equipment Corporation Method and apparatus for initiating interlock read transactions on a multiprocessor computer system
US4979097A (en) * 1987-09-04 1990-12-18 Digital Equipment Corporation Method and apparatus for interconnecting busses in a multibus computer system
US5388228A (en) * 1987-09-30 1995-02-07 International Business Machines Corp. Computer system having dynamically programmable linear/fairness priority arbitration scheme
US5249182A (en) * 1988-03-16 1993-09-28 U.S. Philips Corporation Communication bus system with lock/unlock capability
US4872004A (en) * 1988-05-02 1989-10-03 Sun Electric Corporation Plural source arbitration system
US5203007A (en) * 1988-12-30 1993-04-13 International Business Machines Corporation Overriding programmable priority and selective blocking in a computer system
US5168568A (en) * 1989-02-06 1992-12-01 Compaq Computer Corporation Delaying arbitration of bus access in digital computers
US5119292A (en) * 1989-07-21 1992-06-02 Clearpoint Research Corporation Bus device which abstains from round robin arbitration
US5204951A (en) * 1989-10-02 1993-04-20 International Business Machines Corporation Apparatus and method for improving the communication efficiency between a host processor and peripheral devices connected by an scsi bus
US5081578A (en) * 1989-11-03 1992-01-14 Ncr Corporation Arbitration apparatus for a parallel bus
US5072363A (en) * 1989-12-22 1991-12-10 Harris Corporation Multimode resource arbiter providing round robin arbitration or a modified priority arbitration
US5263163A (en) * 1990-01-19 1993-11-16 Codex Corporation Arbitration among multiple users of a shared resource
JP2539313B2 (ja) * 1990-01-19 1996-10-02 コーデックス・コーポレーション 共有される資源の多数のユ―ザ間での調停
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
US5461723A (en) * 1990-04-05 1995-10-24 Mit Technology Corp. Dual channel data block transfer bus
US5619066A (en) * 1990-05-15 1997-04-08 Dallas Semiconductor Corporation Memory for an electronic token
US5230044A (en) * 1990-07-02 1993-07-20 Digital Equipment Corporation Arbitration apparatus for shared bus
US5239630A (en) * 1990-07-02 1993-08-24 Digital Equipment Corporation Shared bus arbitration apparatus having a deaf node
US5230041A (en) * 1990-12-11 1993-07-20 International Business Machines Corporation Bus interface circuit for a multimedia system
US5195089A (en) * 1990-12-31 1993-03-16 Sun Microsystems, Inc. Apparatus and method for a synchronous, high speed, packet-switched bus
US5390302A (en) * 1991-02-21 1995-02-14 Digital Equipment Corporation Transaction control
US5689657A (en) * 1991-03-30 1997-11-18 Deutsche Itt Industries Gmbh Apparatus and methods for bus arbitration in a multimaster system
EP0506988B1 (de) * 1991-03-30 1999-06-09 Micronas Intermetall GmbH Verfahren zur Busarbitration eines Multimastersystems
JP2625589B2 (ja) * 1991-04-22 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
EP0535822B1 (de) * 1991-09-27 1997-11-26 Sun Microsystems, Inc. Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
US5708784A (en) * 1991-11-27 1998-01-13 Emc Corporation Dual bus computer architecture utilizing distributed arbitrators and method of using same
US5506964A (en) * 1992-04-16 1996-04-09 International Business Machines Corporation System with multiple interface logic circuits including arbitration logic for individually linking multiple processing systems to at least one remote sub-system
US5301283A (en) * 1992-04-16 1994-04-05 Digital Equipment Corporation Dynamic arbitration for system bus control in multiprocessor data processing system
US5420985A (en) * 1992-07-28 1995-05-30 Texas Instruments Inc. Bus arbiter system and method utilizing hardware and software which is capable of operation in distributed mode or central mode
US5553310A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
US5535395A (en) * 1992-10-02 1996-07-09 Compaq Computer Corporation Prioritization of microprocessors in multiprocessor computer systems
US5553248A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal
JPH06161873A (ja) * 1992-11-27 1994-06-10 Fujitsu Ltd 主記憶に対する複数のアクセスポイントのハングアップ処理方式
US5301332A (en) * 1992-12-23 1994-04-05 Ncr Corporation Method and apparatus for a dynamic, timed-loop arbitration
US5506968A (en) * 1992-12-28 1996-04-09 At&T Global Information Solutions Company Terminating access of an agent to a shared resource when a timer, started after a low latency agent requests access, reaches a predetermined value
US5455912A (en) * 1993-06-18 1995-10-03 Vtech Industries, Inc. High speed/low overhead bus arbitration apparatus and method for arbitrating a system bus
US5729702A (en) * 1993-06-21 1998-03-17 Digital Equipment Corporation Multi-level round robin arbitration system
JPH0793273A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd 障害監視機構を具備したマルチcpuシステム
US5612865A (en) * 1995-06-01 1997-03-18 Ncr Corporation Dynamic hashing method for optimal distribution of locks within a clustered system
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5982672A (en) * 1996-10-18 1999-11-09 Samsung Electronics Co., Ltd. Simultaneous data transfer through read and write buffers of a DMA controller
US5915102A (en) * 1996-11-06 1999-06-22 International Business Machines Corporation Common arbiter interface device with arbitration configuration for centralized common bus arbitration
US6076127A (en) * 1996-11-06 2000-06-13 International Business Machines Corporation Configuration of a single point bus arbitration scheme using on-chip arbiters
US6240474B1 (en) * 1997-09-16 2001-05-29 International Business Machines Corporation Pipelined read transfers
US6073132A (en) * 1998-03-27 2000-06-06 Lsi Logic Corporation Priority arbiter with shifting sequential priority scheme
US6678774B2 (en) * 1999-12-16 2004-01-13 Koninklijke Philips Electronics N.V. Shared resource arbitration method and apparatus
US6715042B1 (en) * 2001-10-04 2004-03-30 Cirrus Logic, Inc. Systems and methods for multiport memory access in a multimaster environment
US20070097858A1 (en) * 2005-11-01 2007-05-03 Lesartre Gregg B Method and computer system for employing an interconnection fabric providing multiple communication paths
US7903556B2 (en) 2005-11-03 2011-03-08 Hewlett-Packard Development Company, L.P. Method of controlling data transfers between nodes in a computer system
EP2228944A1 (de) * 2009-03-09 2010-09-15 Alcatel Lucent Verfahren und System zur Fernkonfiguration einer Vorrichtung
US8930586B2 (en) * 2013-04-03 2015-01-06 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Identification of electronic devices operating within a computing system

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3445822A (en) * 1967-07-14 1969-05-20 Ibm Communication arrangement in data processing system
US3553656A (en) * 1969-06-03 1971-01-05 Gen Electric Selector for the dynamic assignment of priority on a periodic basis
US3699524A (en) * 1970-08-10 1972-10-17 Control Data Corp Adaptive data priority generator
US3676860A (en) * 1970-12-28 1972-07-11 Ibm Interactive tie-breaking system
US3798591A (en) * 1971-09-28 1974-03-19 Gen Electric Co Ltd Access circuit for a time-shared data processing equipment
US3919693A (en) * 1974-07-26 1975-11-11 Honeywell Inc Associative interface for single bus communication system
US3988716A (en) * 1974-08-05 1976-10-26 Nasa Computer interface system
US4009470A (en) * 1975-02-18 1977-02-22 Sperry Rand Corporation Pre-emptive, rotational priority system
US3993981A (en) * 1975-06-30 1976-11-23 Honeywell Information Systems, Inc. Apparatus for processing data transfer requests in a data processing system
US4030075A (en) * 1975-06-30 1977-06-14 Honeywell Information Systems, Inc. Data processing system having distributed priority network
US4130864A (en) * 1976-10-29 1978-12-19 Westinghouse Electric Corp. Priority selection circuit for multiported central functional unit with automatic priority reduction on excessive port request
US4320502A (en) * 1978-02-22 1982-03-16 International Business Machines Corp. Distributed priority resolution system
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4225921A (en) * 1978-10-02 1980-09-30 Honeywell Information Systems Inc. Transfer control technique between two units included in a data processing 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
IT1100916B (it) * 1978-11-06 1985-09-28 Honeywell Inf Systems Apparato per gestione di richieste di trasferimento dati in sistemi di elaborazione dati
US4232294A (en) * 1979-04-30 1980-11-04 Control Data Corporation Method and apparatus for rotating priorities between stations sharing a communication channel
US4334288A (en) * 1979-06-18 1982-06-08 Booher Robert K Priority determining network having user arbitration circuits coupled to a multi-line bus
JPS5660932A (en) * 1979-10-10 1981-05-26 Magnuson Computer Systems Inc Data processor having series and parallel priority order
US4326250A (en) * 1979-10-10 1982-04-20 Magnuson Computer Systems, Inc. Data processing apparatus with serial and parallel priority
US4320457A (en) * 1980-02-04 1982-03-16 General Automation, Inc. Communication bus acquisition circuit
US4320467A (en) * 1980-02-25 1982-03-16 Raytheon Company Method and apparatus of bus arbitration using comparison of composite signals with device signals to determine device priority
US4390944A (en) * 1980-05-13 1983-06-28 Bti Computer Systems System for controlling access to a common bus in a computer system
US4380065A (en) * 1980-09-29 1983-04-12 Honeywell Information Systems Inc. Communication multiplexer variable priority scheme
CA1162316A (en) * 1980-10-29 1984-02-14 Steven A. Rose Bus access control circuitive
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
US4494113A (en) * 1981-03-13 1985-01-15 Hitachi, Ltd. Method and apparatus for self-control in distributed priority collision
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
FR2503898B1 (fr) * 1981-04-08 1986-02-28 Thomson Csf Procede et dispositif d'allocation d'une ressource dans un systeme comportant des unites de traitement de donnees autonomes
US4453211A (en) * 1981-04-28 1984-06-05 Formation, Inc. System bus for an emulated multichannel 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
FR2513407B1 (fr) * 1981-09-24 1987-01-16 Finger Ulrich Systeme d'arbitrage des demandes d'acces de plusieurs processeurs a des ressources communes, par l'intermediaire d'un bus commun
US4451881A (en) * 1981-11-03 1984-05-29 International Business Machines Corp. Data processing system bus for multiple independent users
JPS58119247A (ja) * 1982-01-08 1983-07-15 Hitachi Ltd デ−タ通信方式
US4450572A (en) * 1982-05-07 1984-05-22 Digital Equipment Corporation Interface for serial data communications link
US4490785A (en) * 1982-05-07 1984-12-25 Digital Equipment Corporation Dual path bus structure for computer interconnection
US4476467A (en) * 1982-06-08 1984-10-09 Cromemco Inc. Random entry intercomputer network with collision prevention
US4484273A (en) * 1982-09-03 1984-11-20 Sequoia Systems, Inc. Modular computer system
US4597054A (en) * 1982-12-02 1986-06-24 Ncr Corporation Arbiter circuit and method
US4514843A (en) * 1982-12-02 1985-04-30 At&T Bell Laboratories Packet switched communication system comprising collision avoidance means
US4493036A (en) * 1982-12-14 1985-01-08 Honeywell Information Systems Inc. Priority resolver having dynamically adjustable priority levels
US4675812A (en) * 1983-02-14 1987-06-23 International Business Machines Corp. Priority circuit for channel subsystem having components with diverse and changing requirement for system resources
AU580359B2 (en) * 1984-12-12 1989-01-12 Telefonaktiebolaget Lm Ericsson (Publ) Arrangement for apportioning priority among co-operating computers

Also Published As

Publication number Publication date
BR8404841A (pt) 1985-08-13
US4787033A (en) 1988-11-22
KR910001790B1 (ko) 1991-03-23
FI82991B (fi) 1991-01-31
DE340347T1 (de) 1990-09-27
AU7420587A (en) 1987-10-15
JPS60246460A (ja) 1985-12-06
JPH0418340B2 (de) 1992-03-27
DE3486299D1 (de) 1994-05-11
FI843714L (fi) 1985-03-23
KR850002913A (ko) 1985-05-20
FI82991C (fi) 1991-05-10
EP0139569A3 (de) 1986-09-17
EP0139569A2 (de) 1985-05-02
AU3334684A (en) 1985-03-28
FI843714A0 (fi) 1984-09-21
AU579519B2 (en) 1988-11-24
AU561050B2 (en) 1987-04-30
CA1218467A (en) 1987-02-24
AU7420487A (en) 1987-10-15
AU579770B2 (en) 1988-12-08

Similar Documents

Publication Publication Date Title
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE3687257T2 (de) Arbitrierungsvorrichtung zur bestimmung der zugriffsprioritaet auf einen gemeinsamen bus.
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3782335T2 (de) Speichersteuersystem.
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE68920435T2 (de) Steuereinheit für den speicher.
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE60036096T2 (de) Vorrichtung zur kommunikation zwischen mehreren funktionseinheiten in einer rechnerumgebung
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3788805T2 (de) Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem.
DE3606211A1 (de) Multiprozessor-computersystem
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE69731917T2 (de) Datenströmung in einer Busbrücke
JP3634932B2 (ja) データ完全性を維持するためのスピン・バッファおよび方法
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE3882988T2 (de) Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen.
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
CA1209272A (en) Control mechanism for multiprocessor systems
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee