DE69230483T2 - Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung - Google Patents
Quadraturbusprotokoll zum Ausführen von Transaktionen in einer RechneranordnungInfo
- Publication number
- DE69230483T2 DE69230483T2 DE69230483T DE69230483T DE69230483T2 DE 69230483 T2 DE69230483 T2 DE 69230483T2 DE 69230483 T DE69230483 T DE 69230483T DE 69230483 T DE69230483 T DE 69230483T DE 69230483 T2 DE69230483 T2 DE 69230483T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- bus
- state
- quad
- during
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Description
- Die vorliegende Erfindung bezieht sich allgemein auf Pipeline-Bus-Protokolle zum Ausführen von Transaktionen bei einem Computersystem. Insbesondere bezieht sich die Erfindung auf ein Verfahren und eine entsprechende Vorrichtung zum Ausführen von Transaktionen bei einem Mehr-Prozessor- Computersystem durch Unterteilen der Transaktionen in "Quadraturzustand"-Prozesse.
- Viele Computersysteme weisen eine Mehrzahl von Verarbeitungseinheiten, z. B. Masterprozessoren, auf, die gleichzeitig mit gemeinschaftlich verwendeten Betriebsmitteln in Wechselwirkung stehen, wie z. B. Eingabe/Ausgabe- (I/O-) Vorrichtungen (Eingabe/Ausgabe-Vorrichtungen), Slave-Prozessoren und Speichervorrichtungen. Die Master-Prozessoren dieser Systeme sind typischerweise mit den verschiedenen Betriebsmitteln über einen einzigen Adressbus und einen einzigen Datenbus gekoppelt. Signale zu/von den jeweiligen Master-Prozessoren müssen von/zu den jeweiligen Betriebsmittelvorrichtungen über einen dieser Busse gesendet werden.
- Es gibt drei wichtige Parameter, die berücksichtigt werden müssen, wenn ein Bus definiert wird: Bandbreite, Latenz und Kosten.
- Die Bandbreite ist ein Maß für die Menge an Daten, die über den Bus pro Sekunde übertragen werden kann. Die Bandbreite ist wichtig, da der Datenbus, der die Speichervorrichtungen mit den Master-Prozessoren verbindet, einen "Flaschenhals" erzeugt, den alle Speicher-Transaktionen durchlaufen müssen; folglich ist ein Datenbus mit einer großen Bandbreite wich tig für die Gesamtgeschwindigkeit des Computers.
- Die Latenz stellt die Zeitdauer dar, die benötigt wird, um Daten zwischen einem Speicher und einem Prozessor zu übertragen. Einem System kann eine große Menge an Komplexität hinzugefügt werden, um die Bandbreite und die Latenz zu verbessern; diese hinzugefügte Komplexität erhöht jedoch die Kosten des Systems. Ein Ziel des Busentwicklers besteht darin, bei geringstmöglichen Kosten die Bandbreite zu maximieren und die Latenz zu minimieren. Um dieses Ziel zu erreichen, ist ein Protokoll erforderlich, um auf den Adreßbus zuzugreifen, wenn mehr als einer der Master-Prozessoren "wünscht", eine Transaktion mit einem der Betriebsmittel durchzuführen, z. B. eine Lese- oder Schreib-Transaktion zu oder von dem Speicher. In der Theorie ist eine unendliche Vielzahl solcher Protokolle möglich, es ist jedoch wünschenswert, daß das Protokoll einen vereinfachten Busentwurf erleichtert, indem alle Transaktionen standardisiert werden. Es ist ferner wünschenswert, daß es das Protokoll nicht erforderlich macht, daß die Speichervorrichtungen komplex oder "intelligent" sind. Die vorliegende Erfindung erreicht diese Ziele.
- Ein "Ansteh"-Bus-Protokoll für Mehr-Prozessor-Computersysteme ist in Digest of Papers of the 34th IEEE Computer Society International Conference (Compcon 89), 3. März 1989, Washington, USA, S. 72-90, P. Woodburey u. a. offenbart. Dieses System weist eine Entscheidung bezüglich des Datenbusses (Spalte 1 unten, S. 74) auf, wobei die vorliegende Erfindung organisiert ist, um dies zu vermeiden.
- Die Erfindung schafft ein Verfahren, wie es hiernach in Anspruch 1 spezifiziert ist, zum Ausführen von Transaktionen zwischen einem Prozessor und einem gemeinschaftlich verwendeten Betriebsmittel, wie z. B. einem Slave-Prozessor.
- Die Erfindung schafft ferner ein Computersystem, wie es hiernach in Anspruch 5 spezifiziert ist, das eine Mehrzahl von Prozessoren, zumindest ein gemeinschaftlich verwendetes Betriebsmittel, einen Bus, der die Prozessoren mit dem gemeinschaftlich verwendeten Betriebsmittel bzw. den gemeinschaftlich verwendeten Betriebsmitteln koppelt, und eine Einrichtung zum Implementieren eines Protokolls zum Ausführen einer Transaktion zwischen einem der Prozessoren und einem gemeinschaftlich verwendeten Betriebsmittel auf. Die Einrichtung zum Ausführen des Protokolls weist eine Einrichtung zum Ausführen des Verfahrens der Schritte von Anspruch 1 auf.
- Fig. 1 ist ein Blockdiagramm eines Pipeline-Mehrprozessor-Computersystems gemäß der vorliegenden Erfindung.
- Fig. 2 ist ein Flußdiagramm eines Teils eines Verfahrens zum Ausführen von Transaktionen bei einem Pipeline-Mehrprozessor-Computersystem gemäß der vorliegenden Erfindung.
- Fig. 3 ist ein Flußdiagramm eines Verfahrens zum Entscheiden bezüglich des Zugreifens auf einen Bus, das dem Block 10 von Fig. 2 entspricht.
- Fig. 4 ist eine erweiterte Ansicht des Slave-Adressblocks 14 von Fig. 2.
- Fig. 5 ist eine erweiterte Ansicht des virtuellen Adressblocks 16 von Fig. 2.
- Fig. 6A-6F stellen zusammen ein Zeiteinteilungsdiagramm für ein Computersystem gemäß der vorliegenden Erfindung dar.
- Die vorliegende Erfindung ist ein Versuch, die Bandbreite bei einem Computersystem zu maximieren und die Latenz zu minimieren, während die Komplexität und die Kosten an einem vernünftigen Pegel gehalten werden. Dieselbe erreicht dies durch Kombinieren des pipelinemäßigen Verarbeitens mit einem neuartigen Adressbusprotokoll.
- Um das pipelinemäßige Verarbeiten zu erreichen, werden alle Speichertransaktionen über einen Adressbus ausgesendet, wobei die Daten über einen getrennten Datenbus zurückgesendet werden. Mehrere Adressen können ausgesendet werden, bevor Daten zurückgesendet werden. Die Zeitspanne, währenddessen Daten zurückgesendet werden, steht durch das System fest und basiert auf der Antwortzeit des Speichers. Dies vereinfacht den Speicherentwurf und verringert die Kosten, während es ferner ermöglicht wird, daß der Speicherentwurf auf eine minimale Latenz hin optimiert wird.
- Der Adressbus ist in Gruppen von vier Zuständen geteilt, die als "Vierer" (quads) bekannt sind. Die Steuerung des Busses wird vereinfacht, indem definiert wird, daß alle Transaktionen aus diesen vier Zuständen bestehen. Die vier Zustände sind der "Entscheidungszustand", der "Eingabe/Ausgabe-Zustand", der "Slave-Adresse-Zustand" und der "Virtuelle- Adresse-Zustand". Da der Bus pipelinemäßig betrieben wird und alle Transaktionen dieselbe Zeitdauer in Anspruch nehmen, ermöglicht es ein bevorzugtes Ausführungsbeispiel der Erfindung, daß ein Prozessor im voraus bestimmt, ob der Speicherblock, auf den derselbe zugreifen muß, mit einer Anforderung von einem weiteren Prozessor beschäftigt ist; folglich kann derselbe seine Entscheidung unterbinden, bis derselbe bestimmt, daß der Speicherblock frei ist. Dies re duziert die Anzahl von Transaktionen auf dem Bus, die durch den Prozessor "abgearbeitet" (neu versucht) werden müssen, wodurch die Bandbreite verbessert wird.
- Die bevorzugten Ausführungsbeispiele der Erfindung werden nun bezugnehmend auf die Zeichnungen beschrieben, wobei sich gleiche Bezugszeichen auf gleiche Elemente oder Schritte beziehen.
- Fig. 1 stellt ein Pipeline-Computersystem gemäß der vorliegenden Erfindung dar. Wie es gezeigt ist, weist das System von Fig. 1 eine Mehrzahl von Master-Prozessoren ("MPs") 2a, 2b, 2c usw. auf, von denen jeder mit einer zugeordneten Einheit eines Hochgeschwindigkeits-Cache-Speichers 6a, 6b, 6c, usw. gekoppelt ist. Die Master-Prozessoren 2a, 2b, 2c usw. sind über einen Adressbus ferner mit einer oder mehreren Slave-Vorrichtungen 4a, 4b (z. B. einer Slave-Eingabe/Ausgabe-Einheit und einem Slave-Prozessor) und einer Einheit eines Haupt-Speichers 5 gekoppelt. Auf die Hochgeschwindigkeits-Cache-Einheiten 6a, 6b, 6c, usw. werden über einen Datenbus 9 von einem Haupt-Speicher 5 Daten oder Befehle geladen. Alle Transaktionen zwischen den Master-Prozessoren 2a, 2b, 2c, usw. und den Slave-Vorrichtungen 4a, 4b oder dem Haupt-Speicher 5 werden in ein Adress-Vierer und einen zugeordneten Daten-Vierer unterteilt. Der Datenvierer wird während eines festen Zeitintervalls durchgeführt, das auf den zugeordneten Adressvierer desselben folgt. Die Standardisierung aller Transaktionen vereinfacht den Entwurf der Schnittstellen zwischen den verschiedenen Komponenten des Systems. Die Standardisierung vereinfacht ferner den Speicherentwurf, da der Speicher seine Adressbuszugriffe einfach während eines Adressvierers startet und die Daten während eines entsprechenden Datenvierers ausgibt.
- Bezugnehmend auf Fig. 2 und 6A-6F weist ein Adressvierer gemäß der Erfindung vier Zuständen mit einer festen Zeitdauer auf, während der verschiedene Prozesse ausgeführt werden, wobei die Prozesse auf das Ausführen einer Trans aktion zwischen einem Master-Prozessor und einer Slave- Eingabe/Ausgabe-Vorrichtung 4a, einem Slave-Prozessor 4b oder einer Speicher-Vorrichtung 5 gerichtet sind. Der Adressvierer weist einen Entscheidungszustand 10, einen Eingabe/Ausgabe-Zustand 12, einen Slave-Adresse- (SA-) Zustand 14 und einen Virtuelle-Adresse- (VA-) Zustand 16 auf. Während des Entscheidungszustandes 10 bewerben sich die verschiedenen Master-Prozessoren 2a, 2b, 2c, usw. um einen Zugriff auf den Adressbus 8. Diese Prozedur wird detaillierter später unter Bezugnahme auf Fig. 3 beschrieben.
- Während des Eingabe/Ausgabe-Zustandes 12 werden Daten über einen Adressbus 8 zwischen dem Master-Prozessor, der während einer vorhergehenden Entscheidung die Priorität über den Bus gewonnen hat, und einer Eingabe/Ausgabe-Vorrichtung 4a oder einem Slave-Prozessor 4b übertragen. Es wird darauf hingewiesen, daß die Daten, die während jedes Eingabe/Ausgabe-Zustandes 12 übertragen werden, Daten sind, die während eines vorhergehenden Vierers angefordert wurden. Zusätzlich sollte darauf hingewiesen werden, daß Transaktionen zwischen einem Master-Prozessor und einer Speicher-Vorrichtung 5 den Datenbus 9 verwenden. Das im vorhergehenden Erwähnte kann aus dem Zeiteinteilungsdiagramm ersehen werden, das in Fig. 6A-6F dargestellt ist, wobei "MA" Masterardresse, "TT" Transaktionstyp und "ST" Zustandinformationen von einer Slave-Vorrichtung bezeichnen.
- Während des Slave-Adresse-Zustandes 14 wird als nächstes die Adresse der Slave-Vorrichtung 4a, 4b, mit der durch den gewinnenden Master-Prozessor 2a, 2b, 2c, usw., eine Transaktion eingegangen werden soll, auf den Adressbus 8 übertragen, von wo aus dieselbe durch die jeweiligen Slave-Vorrichtungen empfangen werden kann. Wie es in Fig. 4 und 6A-6F gezeigt ist, finden während des Slave-Adresse-Zustandes 14 drei parallele Operationen 14a, 14b, 14c statt: die Slave- Adresse wird auf den Adressbus gesendet (Block 14a), eine Transaktionstyp- (TT-) Identifikation wird auf den Adressbus gesendet (Block 14b) und eine Block-ID- (BLK-ID-) Nummer wird auf den Adressbus gesendet (Block 14c). Diese Operationen werden vorzugsweise gleichzeitig durchgeführt. Es wird darauf hingewiesen, daß die Block-ID-Nummer zum Ineinanderschachteln von Speicherblöcken verwendet wird.
- Während des Virtuelle-Adresse-Zustandes 16 wird schließlich eine virtuelle Adresse von dem Master-Prozessor, der (während des Entscheidungszustandes 10) die Priorität über den Adressbus gewonnen hat, zu dem Adressbus übertragen. Der Virtuelle-Adresse-Zustand 16 wird verwendet, um eine Cache- Kohärenz zu überprüfen, d. h. zum Überprüfen, um sicherzustellen, daß alle Cache-Speichereinheiten 6a, 6b, 6c, usw., identische Daten für dieselbe Adresse enthalten. Während des Virtuelle-Adresse-Zustands 16 wird zusätzlich die Masterprozessoradresse (MA) (d. h. die Adresse des Master-Prozessors mit der Priorität über den Adressbus) auf den Bus übertragen. Diese Schritte werden parallel durchgeführt, wie es in Fig. 5 und 6A-6F gezeigt ist.
- Bezugnehmend auf Fig. 3 wird nun ein bevorzugtes Verfahren zum Entscheiden bezüglich des Zugriffs auf den Bus während des Entscheidungszustands 10 detaillierter beschrieben. Zuerst wird eine Bestimmung durch einen Master-Prozessor durchgeführt, ob die beabsichtigte Transaktion mit einer Nicht-Speicher-Eingabe/Ausgabe-Vorrichtung (Slave) oder einem Speicher-Betriebsmittel durchgeführt werden soll (Schritt 17). Falls die beabsichtigte Transaktion mit einer Nicht-Speicher-Vorrichtung 4a, 4b stattfindet, wird Schritt 24 als nächstes ausgeführt; falls andernfalls die beabsichtigte Transaktion mit einer Speicher-Vorrichtung stattfindet, wird die Speicheradresse auf eine Block-ID-Nummer abgebildet (Schritt 18).
- In den Schritten 20 und 22 bestimmt der Master-Prozessor den Zustand der beabsichtigten Vorrichtung. Falls eine Nicht- Speicher-Vorrichtung beschäftigt ist, sendet dieselbe ein Beschäftigt-Zustand-Signal (ST (siehe Fig. 6B-6F)) zu dem Master-Prozessor. Falls die Vorrichtung, auf die zugegriffen werden soll, folglich eine Eingabe/Ausgabe-Vorrichtung 4a oder ein Slave-Prozessor 4b ist, ist keine Abbildung oder keine Zustandsüberprüfung erforderlich; der Master-Prozessor ist frei, zu entscheiden, vorausgesetzt, daß die Eingabe/Ausgabe-Vorrichtung nicht beschäftigt ist. Der Master überprüft den Zustand einer Speicher-Vorrichtung, indem eine Liste von Speicherblock-ID-Nummern beibehalten wird, die während der vorhergehenden N Zustände auf den Bus gesendet wurden. N entspricht typischerweise der Anzahl von Zuständen innerhalb der vorhergehenden 120 ns. Falls auf die Speicher-Vorrichtung während der vorhergehenden N Zustände nicht zugegriffen worden ist, wird angenommen, daß dieselbe nicht beschäftigt ist, und der Master-Prozessor frei ist, zu entscheiden. Falls die beabsichtigte Vorrichtung in einem beschäftigt-Zustand vorgefunden wird, wird während des Entscheidungszustands nichts weiteres durchgeführt. Falls die beabsichtigte Vorrichtung nicht beschäftigt ist, wird eine Bestimmung durchgeführt, welchem Master-Prozessor die Priorität über den Bus gegeben werden soll (Schritt 24). Die Bestimmung bezüglich der Priorität kann anhand eines beliebigen einer Mehrzahl von bekannten Entscheidungsalgorithmen, z. B. einem LRU- (least recently used; least recently used = in letzter Zeit am wenigsten verwendeter) oder einem DPL- (distributed priority list; distributed priority list = verteilte Prioritätsliste) Algorithmus, durchgeführt werden.
- Die Beziehung zwischen den Adressvierern 10, 12, 14, 16 und den Datenvierern D0, D1, D2, D3 ist in Fig. 6A-6F gezeigt. Sechs Adressvierer sind gezeigt. Die ersten zwei sind Speichertransaktionen, bei denen Daten auf dem Datenbus eine gewisse feste Zeitdauer nach dem entsprechenden Adressvierer zurückgesendet werden. Typische Zeiten sind 120 ns nach dem entsprechenden Slave-Adresse-Zustand.
- Es wird darauf hingewiesen, daß die Speicherzugriffe üblicherweise in Zeilen stattfinden, daß dieselben aber ferner in Doppelzeilen, Halbzeilen, Bytes, usw. stattfinden können. (Eine Zeile ist einfach eine Standardanzahl von Bytes, die einem speziellen Cache-"Etikett" zugeordnet sind.). Falls beispielsweise der Prozessor versucht, eine Speicherposition in dem Cache-Speicher zu lesen und dabei versagt, wird derselbe eine Speichertransaktion über den Bus ausgeben. Eine Zeile (z. B. 32 Bytes) wird in den Cache-Speicher geladen und einem speziellen Cache-Etikett zugeordnet werden. Falls die Transaktion mit einem Eingabe/Ausgabe-Register stattfindet, werden die Daten über den Adressbus 8 während des Eingabe/Ausgabe-Zustands des Adressvierers zurückgesendet. Dies wird getan, um unaufwendige Eingabe/Ausgabe-Vorrichtungsimplementierungen zu ermöglichen, die nicht mit dem Datenbus 9 verbunden sein müssen.
- Es sollte darauf hingewiesen werden, daß die vorliegende Erfindung nicht dazu gedacht ist, auf die spezifische Architektur oder die spezifischen Verfahren, die im vorhergehenden beschrieben wurden, begrenzt zu sein. Die Erfindung kann beispielsweise bei Computersystemen verwendet werden, die anders als diejenigen sind, die mit dem Blockdiagramm in Fig. 1 exakt übereinstimmen. Die Erfindung ist ferner nicht dazu gedacht, auf einen beliebigen spezifischen Satz von Entscheidungsregeln begrenzt zu sein. Andere Variationen und Modifikationen der bevorzugten Ausführungsbeispiele werden den Fachleuten auf diesem Gebiet offensichtlich sein.
Claims (8)
1. Ein Verfahren zum Ausführen von Transaktionen bei einem
Computersystem, wobei das Computersystem eine Mehrzahl
von Prozessoren (2a, 2b, 2c) und eines oder mehrere
gemeinschaftlich verwendete Betriebsmittel (4a, 4b, 5)
aufweist, die über einen Bus (8, 9) miteinander
verbunden sind, und wobei jede Transaktion zwischen einem
identifizierten Prozessor der Mehrzahl von Prozessoren
und einem Betriebsmittel des einen oder der mehreren
gemeinschaftlich verwendeten Betriebsmitteln
stattfindet, wobei das Verfahren folgende Schritte aufweist:
a) Definieren
i) eines periodischen Adressvierers bezüglich
eines Adressabschnitts des Busses, wobei der
Adressvierer vier aufeinanderfolgende
Zustände aufweist: einen Entscheidungszustand (10),
einen Eingabe/Ausgabe-Zustand (12), einen
Slave-Adresse-Zustand (14) und einen
Virtuelle-Adresse-Zustand (16); und
ii) eines periodischen Datenvierers bezüglich
eines Datenabschnitts des Busses;
b) während eines Entscheidungszustandes,
i) Ermöglichen, daß diejenigen Prozessoren, die
wünschen, eine Transaktion einzuleiten,
Entscheidungsdaten über den Adressabschnitt des
Busses übertragen; und
ii) Identifizieren eines Prozessors mit Priorität
über den Adressabschnitt des Busses für den
gegenwärtigen Adressvierer;
c) während eines Slave-Adresse-Zustandes,
Ermöglichen, daß ein Prozessor mit Priorität über den
Adressabschnitt des Busses eine Adresse eines
speziellen gemeinschaftlich verwendeten
Betriebsmittels zu dem Adressabschnitt des Busses überträgt;
d) während eines Virtuelle-Adresse-Zustandes,
Ermöglichen, daß ein Prozessor mit Priorität über den
Adressabschnitt des Busses eine virtuelle Adresse
einer Speicherposition zu dem Adressabschnitt des
Busses überträgt, wobei die virtuelle Adresse in
einem speziellen gemeinschaftlich verwendeten
Betriebsmittel definiert ist, das in einem
unmittelbar vorhergehenden Zustand eines gegenwärtigen
Adressvierers adressiert wird;
e) falls während eines Adressvierers eine
Speichertransaktion eingeleitet wird, Übertragen von Daten
über den Datenabschnitt des Busses während eines
Datenvierers, der zu einem festen Zeitpunkt,
nachdem die Speichertransaktion eingeleitet ist,
beginnt; und
f) falls während eines Adressvierers eine
Eingabe/Ausgabe-Transaktion eingeleitet wird,
Übertragen von Daten über den Adressabschnitt des Busses
während eines Eingabe/Ausgabe-Zustandes, der zu
einem festen Zeitpunkt, nachdem die
Eingabe/Ausgabe-Transaktion eingeleitet ist, beginnt.
2. Ein Verfahren gemäß Anspruch 1, das ferner den Schritt
aufweist, einem Prozessor eine Fähigkeit,
Entscheidungsdaten über den Adressabschnitt des Busses zu
übertragen, zu unterbinden, wenn es bestimmt wird, daß eine
Vorrichtung, mit der der Prozessor eine Transaktion
einzuleiten wünscht, beschäftigt ist.
3. Ein Verfahren gemäß Anspruch 1 oder 2, bei der die vier
aufeinanderfolgenden Zustände vier vordefinierte
Zeitdauern lang stattfinden.
4. Ein Verfahren gemäß Anspruch 3, bei dem die vier
Zeitdauern im wesentlichen gleich lang sind.
5. Ein Computersystem mit
a) einer Mehrzahl von Prozessoren (2a, 2b, 2c);
b) einem Bus mit Adress- (8) und Daten- (9)
Abschnitten;
c) einem oder mehreren gemeinschaftlich verwendeten
Betriebsmitteln (4a, 4b, 5), die über den Bus mit
der Mehrzahl von Prozessoren verbunden sind; und
d) einer Einrichtung zum Implementieren eines
Protokolls zum Ausführen von Transaktionen zwischen
identifizierten Prozessoren der Mehrzahl von
Prozessoren und dem einen oder den mehreren
gemeinschaftlich verwendeten Betriebsmitteln, die
folgende Merkmale aufweist:
i) eine Einrichtung zum Definieren
A) eines periodischen Adressvierers
bezüglich des Adressabschnittes des Busses,
wobei der Adressvierer vier
aufeinanderfolgende Zustände aufweist: einen
Entscheidungszustand (10), einen
Eingabe/Ausgabe-Zustand (12), einen Slave-
Adresse-Zustand (14) und einen
Virtuelle-Adresse-Zustand (16); und
B) eines periodischen Datenvieres bezüglich
des Datenabschnittes des Busses;
ii) eine Einrichtung zum
A) Ermöglichen, daß diejenigen Prozessoren,
die wünschen, eine Transaktion
einzuleiten, Entscheidungsdaten über den
Adressabschnitt des Busses übertragen, und
B) Identifizieren eines Prozessors mit
Priorität über den Adressabschnitt des
Busses für den gegenwärtigen
Adressvierer
während eines Entscheidungszustandes;
iii) eine Einrichtung zum Ermöglichen, daß ein
Prozessor mit Priorität über den
Adressabschnitt des Busses während eines Slave-
Adresse-Zustandes eine Adresse eines
speziellen gemeinschaftlich verwendeten
Betriebsmittels zu dem Adressabschnitt des Busses
überträgt;
iv) eine Einrichtung zum Ermöglichen, daß ein
Prozessor mit Priorität über den
Adressabschnitt des Busses während eines Virtuelle-
Adresse-Zustandes eine virtuelle Adresse
einer Speicherposition zu dem Adressabschnitt
des Busses überträgt, wobei die virtuelle
Adresse in einem speziellen gemeinschaftlich
verwendeten Betriebsmittel definiert ist, das
in einem unmittelbar vorhergehenden Zustand
eines gegenwärtigen Adressvierers adressiert
wird;
v) eine Einrichtung zum Übertragen von Daten
über den Datenabschnitt des Busses während
eines Datenvierers, der zu einem festen
Zeitpunkt, nachdem die Speichertransaktion
gestartet ist, beginnt, falls während eines
Adressvierers eine Speichertransaktion
eingeleitet wird; und
vi) eine Einrichtung zum Übertragen von Daten
über den Adressabschnitt des Busses während
eines Eingabe/Ausgabe-Zustandes, der zu einem
festen Zeitpunkt, nachdem die
Eingabe/Ausgabe-Transaktion gestartet ist, beginnt, falls
während eines Adressvierers eine
Eingabe/Ausgabe-Transaktion gestartet wird.
6. Ein Computersystem gemäß Anspruch 5, das eine
Einrichtung zum Unterbinden einer Fähigkeit eines Prozessors
aufweist, Entscheidungsdaten über den Adressabschnitt
des Busses zu übertragen, wenn bestimmt ist, daß eine
Vorrichtung, mit der der Prozessor wünscht, eine
Transaktion einzuleiten, beschäftigt ist.
7. Ein Computersystem gemäß Anspruch 5 oder 6, bei dem die
vier aufeinanderfolgenden Zustände vier vorbestimmte
Zeitdauern lang stattfinden.
8. Ein Computersystem gemäß Anspruch 7, bei dem die vier
Zeitdauern im wesentlichen gleich lang sind.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/694,265 US5249297A (en) | 1991-04-29 | 1991-04-29 | Methods and apparatus for carrying out transactions in a computer system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69230483D1 DE69230483D1 (de) | 2000-02-03 |
| DE69230483T2 true DE69230483T2 (de) | 2000-05-11 |
Family
ID=24788104
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69230483T Expired - Fee Related DE69230483T2 (de) | 1991-04-29 | 1992-04-06 | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5249297A (de) |
| EP (1) | EP0512685B1 (de) |
| JP (1) | JPH05274252A (de) |
| KR (1) | KR920020316A (de) |
| DE (1) | DE69230483T2 (de) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2098791T3 (es) * | 1992-11-04 | 1997-05-01 | Siemens Ag | Disposicion con varios usuarios activos y pasivos del bus. |
| JP2826028B2 (ja) * | 1993-01-28 | 1998-11-18 | 富士通株式会社 | 分散メモリ型プロセッサシステム |
| CA2116826C (en) * | 1993-03-11 | 1998-11-24 | Timothy J. Sullivan | Data processing system using a non-multiplexed, asynchronous address/data bus system |
| US5581713A (en) * | 1994-10-25 | 1996-12-03 | Pyramid Technology Corporation | Multiprocessor computer backplane bus in which bus transactions are classified into different classes for arbitration |
| US5812799A (en) * | 1995-06-07 | 1998-09-22 | Microunity Systems Engineering, Inc. | Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing |
| US5737547A (en) * | 1995-06-07 | 1998-04-07 | Microunity Systems Engineering, Inc. | System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device |
| US6260126B1 (en) | 1998-06-05 | 2001-07-10 | International Busines Machines Corporation | Data storage subsystem having apparatus for enabling concurrent housekeeping processing while an input/output data transfer occurs |
| US6189061B1 (en) * | 1999-02-01 | 2001-02-13 | Motorola, Inc. | Multi-master bus system performing atomic transactions and method of operating same |
| US8010751B2 (en) * | 2002-04-14 | 2011-08-30 | Bay Microsystems | Data forwarding engine |
| US7664968B2 (en) * | 2005-06-09 | 2010-02-16 | International Business Machines Corporation | System and method for managing power usage of a data processing system subsystem |
| US7467311B2 (en) * | 2005-06-09 | 2008-12-16 | International Business Machines Corporation | Distributed system and method for managing power usage among server data processing systems |
| US7386743B2 (en) * | 2005-06-09 | 2008-06-10 | International Business Machines Corporation | Power-managed server and method for managing power consumption |
| US7421599B2 (en) * | 2005-06-09 | 2008-09-02 | International Business Machines Corporation | Power management server and method for managing power consumption |
| US7509506B2 (en) * | 2005-06-09 | 2009-03-24 | International Business Machines Corporation | Hierarchical system and method for managing power usage among server data processing systems |
| US8805590B2 (en) * | 2009-12-24 | 2014-08-12 | International Business Machines Corporation | Fan speed control of rack devices where sum of device airflows is greater than maximum airflow of rack |
| US10055691B2 (en) | 2014-09-08 | 2018-08-21 | Pivotal Software, Inc. | Stream processing with dynamic event routing |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3886524A (en) * | 1973-10-18 | 1975-05-27 | Texas Instruments Inc | Asynchronous communication bus |
| AU518055B2 (en) * | 1977-06-06 | 1981-09-10 | Sits Soc It Telecom Siemens | Interface unit between a data processor anda remote unit |
| US4449183A (en) * | 1979-07-09 | 1984-05-15 | Digital Equipment Corporation | Arbitration scheme for a multiported shared functional device for use in multiprocessing systems |
| US4320457A (en) * | 1980-02-04 | 1982-03-16 | General Automation, Inc. | Communication bus acquisition circuit |
| US4661905A (en) * | 1983-09-22 | 1987-04-28 | Digital Equipment Corporation | Bus-control mechanism |
| JPS61166653A (ja) * | 1985-01-19 | 1986-07-28 | Panafacom Ltd | アドレス変換エラー処理方法 |
| US5121488A (en) * | 1986-06-12 | 1992-06-09 | International Business Machines Corporation | Sequence controller of an instruction processing unit for placing said unit in a ready, go, hold, or cancel state |
| US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
| US5129090A (en) * | 1988-05-26 | 1992-07-07 | Ibm Corporation | System bus preempt for 80386 when running in an 80386/82385 microcomputer system with arbitration |
| US5235684A (en) * | 1988-06-30 | 1993-08-10 | Wang Laboratories, Inc. | System bus having multiplexed command/id and data |
| US4977494A (en) * | 1989-02-17 | 1990-12-11 | Hughes Aircraft Company | High speed digital motion controller architecture |
| US4993023A (en) * | 1989-06-09 | 1991-02-12 | Honeywell Inc. | Apparatus for providing multiple controller interfaces to a standard digital modem and including multiplexed contention resolution |
| US5072363A (en) * | 1989-12-22 | 1991-12-10 | Harris Corporation | Multimode resource arbiter providing round robin arbitration or a modified priority arbitration |
-
1991
- 1991-04-29 US US07/694,265 patent/US5249297A/en not_active Expired - Lifetime
-
1992
- 1992-04-06 DE DE69230483T patent/DE69230483T2/de not_active Expired - Fee Related
- 1992-04-06 EP EP92303034A patent/EP0512685B1/de not_active Expired - Lifetime
- 1992-04-28 KR KR1019920007181A patent/KR920020316A/ko not_active Withdrawn
- 1992-04-28 JP JP4135771A patent/JPH05274252A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| KR920020316A (ko) | 1992-11-21 |
| DE69230483D1 (de) | 2000-02-03 |
| EP0512685B1 (de) | 1999-12-29 |
| JPH05274252A (ja) | 1993-10-22 |
| US5249297A (en) | 1993-09-28 |
| EP0512685A1 (de) | 1992-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE19580990C2 (de) | Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen | |
| DE3909948C2 (de) | ||
| DE69312192T2 (de) | Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen | |
| DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
| DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
| DE69027515T2 (de) | Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung | |
| DE69230483T2 (de) | Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung | |
| DE69424272T2 (de) | Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus | |
| DE68927375T2 (de) | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem | |
| DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
| DE3689042T2 (de) | Gerät zur Pufferung von Schreibanforderungen. | |
| DE3587439T2 (de) | Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher. | |
| DE69230462T2 (de) | Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln | |
| DE3853574T2 (de) | Steuerung von Benutzerantworten in einem Übertragungsbus. | |
| DE69604564T2 (de) | Busbrückenschaltung und verfahren mit vorhersage-snoopoperationen | |
| DE69426447T2 (de) | Verfahren zur Durchführung von Bustransaktionen in einem Rechnersystem und Rechnersystem | |
| DE3851534T2 (de) | Vorrichtung und verfahren zur buszugriffssteuerung. | |
| DE69114961T2 (de) | Vorrichtung für Zusammenschaltungskanäle. | |
| DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
| DE69628609T2 (de) | Distribuiertes Pipeline-Busarbitrierungssystem | |
| DE69016837T2 (de) | VME-Multibus II-Schnittstellen-Anpassungsbaustein. | |
| DE3882991T2 (de) | Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus". | |
| DE3606211A1 (de) | Multiprozessor-computersystem | |
| DE3914265A1 (de) | Steuerung des fliessbandbetriebs in einem dynamische busanpassung anwendenden mikrocomputersystem | |
| DE69513211T2 (de) | Schnelles verteiltes Pipeline-Arbitrierungsschema |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
| 8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
| 8339 | Ceased/non-payment of the annual fee |