[go: up one dir, main page]

DE69230483T2 - Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung - Google Patents

Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung

Info

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
Application number
DE69230483T
Other languages
English (en)
Other versions
DE69230483D1 (de
Inventor
Russell C. Brockmann
William S. Jaffe
Leith L. Johnson
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69230483D1 publication Critical patent/DE69230483D1/de
Publication of DE69230483T2 publication Critical patent/DE69230483T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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

    Gebiet der Erfindung
  • 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.
  • Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • 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.
DE69230483T 1991-04-29 1992-04-06 Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung Expired - Fee Related DE69230483T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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