DE69829987T2 - E/a bus mit schnellen 16-bit zerteilten transaktionen - Google Patents

E/a bus mit schnellen 16-bit zerteilten transaktionen Download PDF

Info

Publication number
DE69829987T2
DE69829987T2 DE69829987T DE69829987T DE69829987T2 DE 69829987 T2 DE69829987 T2 DE 69829987T2 DE 69829987 T DE69829987 T DE 69829987T DE 69829987 T DE69829987 T DE 69829987T DE 69829987 T2 DE69829987 T2 DE 69829987T2
Authority
DE
Germany
Prior art keywords
data
bus
clock
building block
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69829987T
Other languages
English (en)
Other versions
DE69829987D1 (de
Inventor
Michael D. Bell
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE69829987D1 publication Critical patent/DE69829987D1/de
Application granted granted Critical
Publication of DE69829987T2 publication Critical patent/DE69829987T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals

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)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein synchrones Bussystem und ein entsprechendes Verfahren.
  • STAND DER TECHNIK
  • Das U.S. Patent US-A-5,101,347 offenbart ein System zur Übertragung digitaler Datenzeichen in parallelen Datenschlitzen sowie eine Technik zur Verbesserung der Busübertragungsraten, indem ein einzelner Datenschlitz und dessen zugeordnetes Taktsignal durch den gleichen Datenpfad fließen können.
  • Busse werden häufig zur Datenübertragung zwischen Vorrichtungen bzw. Bausteinen eingesetzt. Im Allgemeinen werden zwei Arten von Bussen verwendet, und zwar synchrone und asynchrone Busse. In einem synchronen System arbeiten die mit dem Bus gekoppelten Vorrichtungen bzw. Bausteine synchron zueinander. Ferner entspricht das Zeitsteuerungsbudget für die Datenübertragung, das heißt der Zeitraum von der Ausgabe der Daten von der übertragenden Vorrichtung bis zu dem Zeitpunkt, an dem die empfangende Vorrichtung die Daten abtastet, einem Taktzyklus. Im Zuge der zunehmenden Komplexität von Computersystemen ist es zunehmend schwierig geworden, die Bausteine bzw. Vorrichtungen ausreichend dicht aneinander zu verbinden, so dass die Übertragungs- bzw. Flugzeit über die Verbindung zuzüglich der Einstell- und Speicherzeit des empfangenden Bausteins das Zeitsteuerungsbudget nicht überschreitet.
  • In einem asynchronen System ist es nicht erforderlich, dass die Takte der empfangenden und sendenden Bausteine zueinander synchron sind. Der empfangende Baustein muss jedoch eine Logik zum Warten über eine Mehrzahl von Taktzyklen aufweisen, bevor die erfassten Daten ausgelesen und abgetastet werden, um sicherzustellen, dass die Daten stabil sind.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Computersystem gemäß dem gegenständlichen Anspruch 14.
  • Vorgesehen ist gemäß einem dritten Aspekt der vorliegenden Erfindung eine Busanordnung gemäß dem gegenständlichen Anspruch 24.
  • Das erfindungsgemäße System und Verfahren stellen ein synchrones Bussystem bereit. Der sendende Baustein sendet während dem ersten Taktzyklus Daten und einen Strobe aus. Der empfangende Baustein speichert die Daten auf der Basis des Strobe-Empfangs. Der empfangende Baustein tastet die gespeicherten Daten über eine vorbestimmte Mehrzahl von Taktzyklen nach dem ersten Taktzyklus weiter ab. Im Gegensatz zu dem Stand der Technik entsprechenden synchronen Bussystemen muss der Bus die Daten nicht innerhalb einem Taktzyklus senden, abgeben und abtasten. Ein innovativer Rücksetzprozess synchronisiert beide Bausteine derart, so dass eine einfache Logik implementiert wird, welche die empfangenen Daten speichert und abtastet. Im Gegensatz zu asynchronen Bussystemen kann somit auf den Overhead verzichtet werden, der erforderlich ist, um zu gewährleisten, dass die empfangenen ausgegebenen Daten vor dem Abtasten stabil sind. Durch Erweiterung des zeitlichen Budgets auf mehrere Taktperioden wird die Taktversatzempfindlichkeit verringert, da sich der Versatz über mehrere Taktperioden verteilt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden für den Fachmann auf dem Gebiet aus der folgenden genauen Beschreibung deutlich. In den Zeichnungen zeigen:
  • 1 ein Beispiel für ein System, das das Bussystem gemäß der vorliegenden Erfindung verwendet;
  • die 2a, 2b, 2c, 2d und 2e die Signalgebungstopologie eines Ausführungsbeispiels des Bussystems gemäß der vorliegenden Erfindung;
  • 3 ein Taktdiagramm der Strobe-Startup-Zeitsteuerungsdetails für ein Zeitsteuerungsbudget von zwei Taktzyklen;
  • 4 die Grundstruktur für den Empfang von über den Bus übertragenen Paketen;
  • 5 ein Taktdiagramm der Details der Datenübertragung;
  • 6 ein Flussdiagramm eines Ausführungsbeispiels des Rücksetzprozesses, der zur Synchronisierung der Schaltkreisanordnungen des empfangenden und des sendenden Bausteins verwendet wird;
  • 7 ein Flussdiagramm des Paketübertragungsprozesses gemäß den Lehren der vorliegenden Erfindung;
  • 8 ein vereinfachtes Blockdiagramm eines Ausführungsbeispiels des Flusssteuerungsmechanismus gemäß der vorliegenden Erfindung;
  • die 9a und 9b Flussdiagramme eines Ausführungsbeispiels des Prozesses zur Datenübertragung gemäß den Lehren der vorliegenden Erfindung;
  • die 10a, 10b und 10c Anforderungs- und Ausführungsformate, die in einem Ausführungsbeispiel des Systems gemäß der vorliegenden Erfindung verwendet werden; und
  • 11 ein vereinfachtes Blockdiagramm eines Ausführungsbeispiels eines Prozesses unter Verwendung eines durch einen Baustein konfigurierbaren Felds gemäß den Lehren der vorliegenden Erfindung.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Die Abbildung aus 1 zeigt ein beispielhaftes System, das die Lehren der vorliegenden Erfindung aufweist. Es ist leicht ersichtlich, dass die vorliegende Erfindung auf eine Vielzahl von Systemen und Systemkonfigurationen anwendbar ist. Die Abbildung aus 1 veranschaulicht die Bandbreite, die das erfindungsgemäße Bussystem vorsehen kann. In Bezug auf die Abbildung aus 1 sieht das abgebildete synchrone Bussystem 100 Verbindungen vor zwischen einer Steuereinheit 115, die als eine Brücke zwischen einem Mikroprozessorbus 110, mit dem ein oder mehrere Mikroprozessorbausteine verbunden sind, oder einem Speicherbus (nicht abgebildet) fungiert, mit dem ein oder mehrere Speicherbausteine verbunden sind, und Buserweiterungsbrücken 117, 120 und 125. Gemäß der Abbildung in einem Ausführungsbeispiel erweitern und formatieren die Brücken 117 und 120 die über den Bus 100 empfangenen Daten, um eine Ausgabe an einen 64-Bit-PCI-Bus 121 (PCI als englische Abkürzung von Peripheral Component Interface) oder zwei 32-Bit-PCI-Busse 122, 123 vorzusehen; mit denen PCI-kompatible Bausteine bzw. Vorrichtungen (nicht abgebildet) verbunden sind. Ferner ist dargestellt, dass der Bus 100 Daten an eine Brücke vorsehen kann, die eine Schnittstellenverbindung mit einem Grafikbus und verbundenen Bausteinen bzw. Vorrichtungen (nicht abgebildet) aufweist.
  • Die Signalgebungstopologie des Bussystems gemäß der vorliegenden Erfindung ist in den Abbildungen der 2a, 2b, 2c, 2d und 2e dargestellt. In Bezug auf die Abbildung aus 2a verbindet der synchrone Bus 200 eine Steuereinheit 215 mit einer Erweiterungsbrücke 220, wie etwa der PCI-Erweiterungsbrücke, welche eine Überbrückung zu einem PCI-Bus (nicht abgebildet) herstellt. In dem vorliegenden Ausführungsbeispiel ist eine Steuereinheit über den Bus mit einer Buserweiterungsbrücke verbunden dargestellt. Es ist jedoch leicht ersichtlich, dass der Bus eine Vielzahl verschiedenartiger Bausteine und Teilsysteme verbinden kann. Die Abbildungen der 2b, 2c, 2d und 2e zeigen Tabellen, welche die verschiedenen Signale beschreiben, die in dem vorliegenden Ausführungsbeispiel verwendet werden.
  • In einem Ausführungsbeispiel handelt es sich bei dem Bus um einen Datenbus mit einer Breite von 16 Bit, der Befehle, Adressen, Daten und Transaktions-ID-Informationen führt. Zusätzlich führen zwei zusätzliche Bits Maskierungs- und sonstige Informationen für die Datenfelder. In einem Ausführungsbeispiel variiert die Funktion der beiden zusätzlichen Bits gemäß dem Taktzyklus. Zum Beispiel sehen die Felder Bytefreigaben (Maskierungsinformationen) vor, welche die Bytes identifizieren, die gültige Informationen aufweisen, und wobei sie alternativ einen Befehlstyp oder eine Parität führen.
  • Der Bus ist zwischen den sendenden und empfangenden Bausteinen bzw. Vorrichtungen bidirektional. In dem vorliegenden Ausführungsbeispiel handelt es sich bei den Bustransaktionen um ganze Split-Transaktionen, und wobei sie aus einem Anforderungspaket und einem Ausführungspaket bestehen. Das Anforderungspaket leitet eine Transaktion ein. Die Ausführungspakete werden zur Rückführung von Daten verwendet sowie zur neuen Zuordnung von Pufferquellen zwischen der Quellen- und Zielvorrichtung. Alle Transaktionen können als eine Leseanforderung oder eine Schreibanforderung klassifiziert werden. Leseanforderungen weisen Befehlsadressbitfreigaben für nicht abrufbare Lesevorgänge, Routinginformationen und eine Länge für gewünschte Daten auf.
  • Das Leseausführungspaket weist den Status der Anforderung, die als Reaktion auf die Leseanforderung abgerufenen Daten und Routing- sowie Transaktionsinformationen zur Identifikation der entsprechenden Anforderung auf. Eine Schreibanforderung weist die Schreibdaten in ihrem Paket auf. Die Schreibausführung weist keine Daten auf, zeigt jedoch an, ob der Schreibvorgang erfolgreich ausgeführt worden ist. Jeder Buszyklus (XCLK) ist mit dem System-Host-Taktzyklus äquivalent. Jeder Buszyklus weist jedoch einen Halbzyklus "P" und einen Halbzyklus "N" auf. Der Halbzyklus "P" tritt zum Beispiel auf, während der Takt XCLK hoch ist. Der Habzyklus "N" tritt auf, während der Takt XCLK niedrig ist, wobei der Durchsatz somit durch die Übermittlung von Paketen bei jedem Halbzyklus verdoppelt wird.
  • Ein Informationspaket besteht aus einer Mehrzahl von 32-Bit-Wörtern. Einem Wort zugeordnete Bytefreigaben werden bei jedem Zyklus XCLK über den Bus übermittelt. Jedes Wort wird zwischen der positiven und der negativen Phase des Bustaktzyklus vereilt, wobei die Bits [31:16] auf die positive Phase eingestellt sind, während die Bits [15:0] auf die negative Phase eingestellt sind. Es ist leicht ersichtlich, dass der Bus nicht auf diese Paketstruktur beschränkt ist, und dass eine Vielzahl von Implementierungen verwendet werden kann.
  • Ein wichtiger Aspekt eines synchronen Hochgeschwindigkeitsbusses gemäß der vorliegenden Erfindung ist es, dass das Rücksetzsignal (XRST#) die Synchronisierung aller mit dem Bus verbundenen Bausteine bzw. Vorrichtungen ermöglicht. Nach der Synchronisierung arbeiten die sendenden und empfangenden Bausteine synchron gemäß vorab spezifizierten Takt- bzw. Zeitsteuerungsprotokollen, so dass sie synchron Pakete zwischen Bausteinen bzw. Vorrichtungen über mehrere Taktzyklen übertragen.
  • Wie dies in der Abbildung aus 2 dargestellt ist, erreichen das Rücksetzsignal (XRST#) und das Taktsignal (XCLK) gleichzeitig an jeder verbundenen Komponente, um den synchronen Betrieb aufrechtzuerhalten. In dem vorliegenden Ausführungsbeispiel werden die Signale XCLK und XRST# von einer Komponente 215 ausgegeben und zu der zweiten Komponente 220 übertragen und über die Leitungen 217, 219 zurück zu der ersten Komponente 215 übertragen, wobei die Leitungen 217, 219 ungefähr die gleiche Länge aufweisen wie die Leitungen 221, 223, die zwischen die ersten und zweiten Komponenten 215, 220 geschaltet sind. Dies gewährleistet, dass beide Komponenten 215, 220 die Signale gleichzeitig empfangen und den synchronen Betrieb aufrechterhalten. Vorzugsweise werden die Längen der Leitungen 217, 223 so genau wie möglich angeglichen, da die Taktzeitsteuerung kritisch ist. Die Angleichung der Leitungen 219, 221 kann in Bezug auf die Länge weniger genau vorgenommen werden.
  • Ein veranschaulichendes Taktdiagramm für den Rücksetzprozess bzw. den Rückstellprozess für ein Zeitbudget von zwei Taktzyklen ist in der Abbildung aus 3 dargestellt. Jede mit dem Bus verbundene Vorrichtung sieht die Deaktivierung von XRST# bei der gleichen Erzeugung des Taktsignals XCLK. Jede Komponente beginnt mit der Ausführung ihres synchronen Strobe-Signals nach einer vorbestimmten Anzahl von Taktzyklen (z.B. drei Taktzyklen) nach der Beobachtung einer Deaktivierung bzw. Aufhebung von XRST#. In dem vorliegenden Ausführungsbeispiel sind zwar drei Taktzyklen angegeben, wobei die Anzahl der vorbestimmten Zyklen jedoch veränderlich ist, sofern alle Bausteine bzw. alle Vorrichtungen ihr synchrones Strobe-Signal an dem gleichen Zyklus beginnen. In Bezug auf die Abbildung aus 3 erfasst jeder Baustein die Aufhebung von XRST# an der ansteigenden Flanke des Takts T3. Jede Komponente leitet somit ihren Strobe-Signalgenerator nach der ansteigenden Flanke von Takt T6 ein. Die quellensynchrone Signalerfassungsschaltung kann somit ihre Abtasttakte synchronisieren, da sie das Zeitsteuerungsverhältnis zwischen der Aufhebung von XRST# und dem ersten Daten-Strobe kennt.
  • Für die Definition der System- und Zeitverhältnisse gibt es eine Vielzahl von Möglichkeiten. In dem vorliegenden Ausführungsbeispiel wird allerdings die ansteigende Taktflanke, welche die Aufhebung von XRST# abtastet, als der ungerade Zyklus bezeichnet, und wobei der erste Daten-Strobe bei einer geraden Taktflanke beginnt. Die früheste gerade Taktflanke, welche die Strobe-Signale beginnt, ist die zweite gerade Taktflanke nach dem Abtasten der Aufhebung von XRST#. In dem vorliegenden Ausführungsbeispiel, das ein Zeitbudget von zwei Taktzyklen implementiert, wählt die Abtastung für den Datenempfang immer das Erfassungselement (z.B. Flipflop) aus, das Daten aufweist, die zwei Taktzyklen früher ausgegeben worden sind. In einem Modus mit drei Taktzyklen würde die Auswahl das auswählen, was drei Taktzyklen vorher eingeleitet bzw. ausgegeben worden ist. Der Multiplexer identifiziert den ungeraden Takt, wenn XRST# aufgehoben wird. Da definiert ist, dass der erste Strobe immer bei einem geraden Takt gesendet wird, bleiben die Erfassungs-Flipflops und die Abtast-Multiplexer synchronisiert.
  • Wie dies bereits vorstehend im Text beschrieben worden ist, ist der Abstand zwischen Bausteinen länger als typische synchrone Bussysteme, da das Zeitbudget erweitert worden ist, so dass es mehrere Taktzyklen umspannt. Ferner wird ein höherer Datendurchsatz unter Verwendung von weniger Pins bzw. Stiften erreicht, und zwar teilweise durch die Ausgabe von Daten sowohl bei geraden als auch bei ungeraden Taktzyklen. Der Erfassungsmechanismus an dem Empfänger, der diese Fähigkeit ebenso ermöglicht wie die Erweiterung des Zeitbudgets, ist in der Abbildung aus 4 dargestellt. Die Daten werden über ein oder zwei Erfassungs-Flipflops 405 oder 410 empfangen. Die Flipflop-Freigabe wird durch ein drittes Flipflop 415 gesteuert, das bewirkt, dass das freigegebene Flipflop zwischen den Erfassungs-Flipflops umschaltet, gesteuert durch das positive Daten-Strobe-Signal (P_STB#). Somit werden Daten, die während einem geraden Takt ausgegeben werden, immer durch das ungerade Erfassungs-Flipflop 405 erfasst. Die in der Abbildung aus 4 veranschaulichte vorliegende Schaltung veranschaulicht die Erfassungsschaltkreisanordnung für die positiven Datenphasen des Signals. Somit wäre auch eine negative Datenphasen-Erfassungsschaltung vorhanden, die durch ein negatives Strobe-Signal (N_STB#) gesteuert wird. In einer derartigen Schaltung wäre das das Kern-Takt-Abtast-Flipflop ferner invertiert.
  • In erneutem Bezug auf die Abbildung aus 4 tastet der Abtast-Multiplexer 420 die Daten von den Erfassungs-Flipflops zwei Taktzyklen nach der Einleitung der Datenübertragung ab (d.h. nach deren Ausgabe bzw. Start). Der Multiplexer 420 wird durch das Rücksetzsignal XRST# und die durch das Rücksetzsignal gesteuerte Schaltkreisanordnung 430 synchronisiert. Wenn der Abtast-Multiplexer 420 somit so synchronisiert ist, dass anfänglich während dem geraden Takt abgetastet wird und die Daten während dem ungeraden Takt ankommen, wie dies in dem Strobe-Startup-Zeitsteuerungsdetails dargestellt ist, tastet der Multiplexer 420 die ungeraden und geraden Taktdaten zwei Zyklen nach der Ausgabe ab.
  • Nachdem die Daten durch den Abtast-Multiplexer verarbeitet worden sind, werden die Daten in eine kombinatorische Logik und in ein Abtast-Flipflop 440 eingegeben: Dabei werden sie in der Folge in eine andere Schaltkreisanordnung der Vorrichtung bzw. des Bausteins ausgegeben. Hiermit wird festgestellt, dass die Schaltkreisanordnung 430 eine Anzahl von Flipflops zeigt, die eine ausreichende Verzögerung bewirken, um eine zweckmäßige Initialisierung für eine gültige Datenabtastung vorzusehen. Der Verzögerungspfad synchronisiert den Abtast-Multiplexer 420 mit den ausgegebenen Daten. Die Verzögerung kann gemäß der implementierten Konfiguration variiert werden. Vorzugsweise werden XCLKout (das Taktsignal) und XRSTout# (das Rücksetzsignal) durch eine gemeinsame Quelle erzeugt, wie dies in der Abbildung aus 2 dargestellt ist. Beide Signale werden in dem vorliegenden Ausführungsbeispiel durch die Steuereinheit erzeugt und synchron gehalten, indem beide durch eine externe Taktverstärkereinrichtung geführt werden, und indem ungefähr die gleiche Wegführungssignallänge beibehalten wird, wie dies in der Abbildung aus 2 dargestellt ist. Es wird bevorzugt, dass die Länge des Busses durch die folgenden Faktoren beschränkt ist: XCLK, SCLK zu P_STB# + TOF (Laufzeit zwischen Bausteinen) + P_STB# zur Erfassung gültiger Daten + Einrichtzeit für Datenabtastwert P ist kleiner oder gleich der Anzahl der zugewiesenen Taktperioden (in dem vorliegenden Beispiel zwei Taktperioden). In dem vorliegenden Ausführungsbeispiel muss die Verzögerung durch die kombinatorische Logik 435 zwischen dem Abtast-Flipflop und dem Abtast-Multiplexer somit in der Einrichtzeit bzw. der Vorbereitungszeit (Setup-Zeit) enthalten sein. Vorzugsweise muss die Durchlaufzeit von dem Empfang bis zum Senden von einer Taktperiode auf zwei ansteigen, wenn XCLK zu P_STB + TOF größer oder gleich einem Taktzyklus ist. Dies ist erforderlich, um es zu verhindern, dass gesendete Daten mit den hinteren Empfangsdaten der negativen Datenphase kollidieren.
  • Die Abbildung aus 5 zeigt eine Taktschaltung für die Taktung bzw. die Zeitsteuerung beispielhafter Paketübertragungen. In Bezug auf die Abbildung aus 5 wurde XRST# bereits zu einem bestimmten Zeitpunkt vor T5 aufgehoben. Die Strobes (P_STB#, N_STB#) werden bereits ausgeführt und die Abtastschaltkreisanordnung ist synchronisiert. Die auf der linken Seite in Klammern gesetzten Signale mit der Bezeichnung „Senden" zeigen die beobachtete Signaltaktung an dem sendenden Ende an. "Empfangen" zeigt die gleichen beobachteten Signale an dem empfangenden Ende an. Der Unterschied liegt in der Zeitverschiebung durch die Übertragungszeit der Signale zwischen der Sendevorrichtung und der Empfangsvorrichtung.
  • Zum Zeitpunkt T37 behauptet die Sendervorrichtung HRTS#, um ihre Anforderung zu senden anzuzeigen. Zum Zeitpunkt T37 wurde XRTS# (nicht abgebildet) als behauptet beobachtet, so dass die sendende Vorrichtung bzw. der sendende Baustein weiß, dass er die Arbitrierung um den Bus gewonnen hat. Der Sender behauptet XADS# zum Zeitpunkt T38, um die als 1P, 1N, 2P, 2N angezeigten Paketinformationen zu begrenzen.
  • An dem empfangenden Ende beobachtet (erfasst) die Empfängervorrichtung HRTS# zum Zeitpunkt T38 als behauptet. Dabei handelt es sich um das zum Zeitpunkt T37 behauptete zeitlich verschobene Signal HRTS#. Der Empfänger weiß, dass XADS# während dem nächsten Takt (T39) zu erwarten ist. Das vorliegende Ausführungsbeispiel verwendet einen verteilten Arbiter. Wenn der Sender in dem vorliegenden Beispiel nicht die höchste Priorität aufwies, so wäre XADS# zwei Takte nach HRTS# und nicht einen Takt nach HRTS# gesendet worden. Jede Vorrichtung kennt ihre Priorität. Gemäß den Vorgaben übermittelt die Vorrichtung mit hoher Priorität ihre Daten einen Takt früher als die Vorrichtung mit niedriger Priorität (wobei angenommen wird, dass die Vorrichtung mit niedriger Priorität nicht bereits eine Anforderung vorgenommen hat). Somit muss die Vorrichtung mit niedriger Priorität einen zusätzlichen Takt lang warten, wenn sie ihre Anforderung geltend macht, um zu garantieren, dass die Vorrichtung mit hoher Priorität die Anforderung beachtet hat. Während dem Takt T39 tastet der Empfänger HRTS# von dem Erfassungs-Flipflop ab, das das Signal erfasst hat. Danach werden die Daten während T39 aus den entsprechenden Flipflops abgetastet.
  • Die Abbildungen der 6 und 7 zeigen vereinfachte Flussdiagramme, welche die Prozesse zum Zurücksetzen des Systems in einen synchronen Betrieb sowie zur Datenübermittlung veranschaulichen. Der Prozess für ein Zurücksetzen wird allgemein in Bezug auf die Abbildung aus 6 beschrieben. In dem Schritt 605 wird das Rücksetzsignal übermittelt, so dass es von allen Vorrichtungen bzw. Bausteinen gleichzeitig empfangen wird. Ferner wird das Rücksetzsignal (XRST#) über Treiber bzw. Steuereinrichtungen ausgegeben und in die ursprüngliche Vorrichtung zurückgeführt, so dass die Leitungslängen kompatibel sind, und so dass das Rücksetzsignal von allen Bausteinen bzw. Vorrichtungen gleichzeitig empfangen wird. Das Rücksetzsignal wird durch einen PLL-Takt ausgetaktet, der für gewöhnlich nicht phasengleich ist mit dem Kerntakt der Steuervorrichtung (z.B. Vorrichtung 215 aus 2). Die Rückkopplungsspur mit übereinstimmender Länge gewährleistet jedoch, dass der Takt (und das damit synchrone Rücksetzsignal) phasengleich ist mit den Kerntakten, wenn das Signal an dem Ende der Drähte ankommt. In dem Schritt 610 beobachten die Vorrichtungen bzw. die Bausteine die Aufhebung des Rücksetzsignals. In dem Schritt 616 wird die erste ansteigende Taktflanke, welche das Rücksetzsignal abtastet, als der ungerade Taktzyklus identifiziert, und die nächste Flanke wird als gerade Taktflanke identifiziert. Der erste Daten-Strobe ist somit als die zweite Taktflanke (gerade) nach der Aufhebung des Rücksetzsignals bezeichnet. In dem Schritt 620 identifiziert ein Flipflopauswahl-Multiplexer in der Empfängerschaltkreisanordnung jedes Bausteins den ungeraden Taktzyklus, wenn das Rücksetzsignal aufgehoben wird, um die Abtastschaltkreisanordnung mit der Sendeschaltkreisanordnung zu synchronisieren, welche den Daten-Strobe und die Daten ausgibt.
  • In dem Schritt 630 wird die Datenübertragung an einer Taktflanke eines geraden Taktzyklus eingeleitet, der mit der Ausgabe der Daten-Strobes an dem geraden Taktzyklus übereinstimmt. Vorzugsweise wartet das System eine vorbestimmte Anzahl von Taktzyklen, wie etwa 64 Taktzyklen, bevor es die Datenübertragung einleitet, so dass auseichend Zeit für die Initialisierung der Schaltkreisanordnung gegeben ist.
  • Der Übertragungsprozess wird nachstehend in Bezug auf die Abbildung aus 7 beschrieben. In dem Schritt 700 gibt die sendende Vorrichtung gleichzeitig einen Strobe und Daten an die empfangende Vorrichtung aus. In dem Schritt 701 werden Strobe und Daten an der empfangenden Vorrichtung empfangen. Wenn der Strobe während einem geraden Takt gesendet worden ist, werden die Daten in dem Schritt 702 von den geraden Flipflops erfasst; wobei die Daten durch die ungeraden Flipflops erfasst werden, wenn der Strobe während einem ungeraden takt übermittelt worden ist. In dem Schritt 703 werden die Daten an dem Empfänger zwei Takte nach der Ausgabe aus der sendenden Vorrichtung abgetastet. Daten werden somit durch das gerade Flipflop abgetastet, wenn sie während dem geraden Taktzyklus ausgegeben worden sind, und sie werden durch das ungerade Flipflop abgetastet, wenn sie während dem ungeraden Taktzyklus ausgegeben worden sind. Sobald die Schaltkreisanordnungen in beiden Vorrichtungen bzw. Bausteinen synchronisiert sind, schaltet die Empfängerschaltkreisanordnung einfach zwischen geraden Flipflops und ungeraden Flipflops um, wie dies bereits vorstehend im Text beschrieben worden ist. Beschrieben wird somit ein Prozess für den Betrieb der synchronen Busübertragung übe mehrere Taktzyklen, wobei die sendenden und empfangenden Vorrichtungen Taktsignale mit der gleichen Frequenz empfangen.
  • Obwohl dies für den Betrieb des vorstehend beschriebenen synchronen Hochgeschwindigkeitssystems nicht erforderlich ist, erhöht sich die Wirksamkeit des Systems weiter unter Verwendung des integrierten Flusssteuerungsverfahrens sowie der Vorrichtung gemäß nachstehenden Beschreibung.
  • Im Besonderen wird der Bus-Overhead durch die Verteilung der Flusssteuerung auf mit dem Bus gekoppelte Bausteine bzw. Vorrichtungen und die Integration von Flusssteuerdaten in die Pakete reduziert. Jede Vorrichtung weist mindestens eine Nachführvorrichtung oder -schaltung auf, welche den Datenfluss sowie eingehende und abgehende Busanforderungen auf dem Bus verfolgt. Bei der Initialisierung ist jede Nachführeinrichtung mit Informationen zu den Pufferkapazitäten der anderen gekoppelten Bausteine versehen. Während dem Prozess der Übertragung von Paketen greift die Nachführeinrichtung auf vorbestimmte Bits jedes Pakets zu, um die Zustände der Warteschlangen zu bestimmen (d.h. wie voll/leer), und wobei sie den Paketfluss zwischen Vorrichtungen steuert. Somit ist die Flusssteuerung in das Paketprotokoll integriert.
  • In dem vorliegenden Ausführungsbeispiel wird die Flusssteuerung zwischen zwei Bausteinen bzw. Vorrichtungen beschrieben. Die Struktur kann jedoch auch erweitert werden, so dass sie die Flusssteuerung zwischen mehreren Vorrichtungspaaren durch Replikation der Nachführeinrichtungen unterstützt. Die Abbildung aus 8 veranschaulicht ein vereinfachtes Blockdiagramm des Flussteuerungsabschnitts des Systems. In Bezug auf die Abbildung aus 8 ist eine Speichersteuereinheit 805 mit dem Speicher 802 und einem Prozessor 803 gekoppelt. Alternativ ist die Speichersteuereinheit mit einem Prozessorbus gekoppelt, mit dem ein oder mehrere Prozessoren 803 gekoppelt sind. Die Speichersteuereinheit 805 ist ferner über einen Bus 815 mit der Busbrücke 810 verbunden. In einem Ausführungsbeispiel ist die Busbrücke 810 mit einem PCI-Bus 820 verbunden. Die abgebildete Busbrücke 810 sieht eine Busverbindung (z.B. eine 64-Bit-Verbindung) mit dem PCI-Bus 820 vor. Es ist aber auch möglich, dass die Busbrücke mehrere Busanschlüsse unterstützt (z.B. zwei 32-Bit-Anschlüsse). In einer Anordnung mit mehreren Busanschlüssen verfolgt die Nachführschaltkreisanordnung den Status von zwei Warteschlangen, und zwar einer je Verbindung. Die hierin beschriebene Vorrichtung 805 weist ferner eine Speichersteuereinheit auf. Es ist jedoch leicht ersichtlich, dass die Vorrichtung 805 einer Vielzahl von verschiedenartigen Vorrichtungen entsprechen kann, die mit dem Bus 815 gekoppelt sind. In ähnlicher Weise kann die Vorrichtung 810 als eine Vielzahl von Vorrichtungen ausgeführt werden, und wobei sie nicht auf eine Busbrücke beschränkt ist.
  • Die Speichersteuereinheit 805 weist eine Anforderungswarteschlangen-Nachführlogik 822, eine Datenwarteschlangen-Nachführlogik 832, eine abgehende Anforderungswarteschlange 824, einen abgehenden Datenpuffer 826, eine eingehende Anforderungswarteschlange 828 und eine eingehende Datenwarteschlange 830 auf. Ferner abgebildet ist die Schnittstellen-/Steuerlogik 834, die eine unterstützende Logik für eine Schnittstellenfunktion mit dem Speicher 802 und dem Prozessor 803 vorsieht, wobei sie Speicheroperationen mit dem Speicher 802 und dem Prozessor 803 ausführt sowie die Anforderungspakete und Bestätigungspakete vorsieht, die nachstehend im Text beschrieben sind.
  • Zum Zwecke der Vereinfachung der Erläuterung ist die Kommunikation der Daten zwischen dem Speicher 802, dem Prozessor 803 und der Speichersteuereinheit 805 in der Übertragung durch die Schnittstellen-/Steuerlogik 834 dargestellt; wobei die Daten jedoch auch direkt zwischen den Warteschlangen und dem Speicher 802 sowie dem Prozessor 803 übertragen werden können. Die Anforderungswarteschlangen-Nachführlogik 822 und die Datenwarteschlangen-Nachführlogik 832 verfolgen entsprechend, wie voll die entsprechenden Warteschlangen 824, 852 und 826, 856 sind, so dass, sobald eine Warteschlange voll ist, die Nachführeinrichtung verhindert, dass ein Paket erzeugt und in den Warteschlangen 824, 826 platziert wird. In dem vorliegenden Ausführungsbeispiel arbeitet die Nachführeinrichtung 822, 832 als ein Zähler zur Verwaltung der Zählwerte des verfügbaren Warteschlangenraums. Die Schnittstellen-/Steuerlogik 834 arbeitet in Verbindung mit der Nachführeinrichtung 822, 832, um die entsprechenden Steuersignale/-daten an den Prozessor 803 und den Speicher 802 auszugeben, um das Erzeugen und Platzieren abgehender Pakete in den entsprechenden Warteschlangen zu ermöglichen/zu verhindern. Die eingehende Anforderungswarteschlange 828 und die eingehende Datenwarteschlange 830 empfangen entsprechend eingehende Anforderungen und Bestätigungspakete (und zugeordnete Daten) von der Busbrücke 810. In einem Ausführungsbeispiel werden Schreibdaten und Lesedaten separat in Warteschlangen verarbeitet und verfolgt. In einem Ausführungsbeispiel verwaltet die Anforderungswarteschlange sowohl Lese- als auch Schreibanforderungen, wobei die Nachführeinrichtung nur eine vorbestimmte maximale Anzahl von Leseanforderungen und eine vorbestimmte Anzahl von Schreibanforderungen zulässt, und zwar unabhängig von der Anzahl der verfügbaren Plätze in der Warteschlange.
  • In einem Ausführungsbeispiel ist die Nachführlogik 822 so konfiguriert, dass sie in einer Warteschlange mit einer Tiefe von acht nur zwei Leseanforderungen und sechs Schreibanforderungen zulässt. Dies ist wünschenswert, so dass die eine Anforderungsart, wie z.B. die Schreibanforderung, nicht die Warteschlangenverarbeitung von Leseanforderungen verhindert, wenn die Anzahl der Anforderungen die Größe einer Warteschlange überschreitet. Wenn in dem aktuellen Beispiel somit sechs Schreibanforderungen gleichzeitig in der Warteschlange verarbeitet werden und die Vorrichtung eine siebte Schreibanforderung in der Warteschlange verarbeiten möchte, so lässt die Nachführeinrichtung dies nicht zu, obwohl die Warteschlange die Kapazität für den Empfang von zwei weiteren Anforderungen aufweist (die nach Leseanforderungen vorab zugeordnet werden). Wenn die Warteschlange aktuell sechs Schreibanforderungen aufweist und die Vorrichtung eine Leseanforderung ausgeben möchte, so lässt die Nachführeinrichtung die Warteschlangenverarbeitung der Leseanforderung zu.
  • Die Busbrücke 810 ist in ähnlicher Weise mit einer Anforderungswarteschlangen-Nachführeinrichtung 850, einer Datenwarteschlangen-Nachführeinrichtung 860, einer abgehenden Anforderungswarteschlange 852, einer eingehenden Anforderungswarteschlange 854, einer abgehenden Datenwarteschlange 856, einer eingehenden Datenwarteschlange 858 und einer Schnittstellen-/Steuerlogik 882 konfiguriert. Die Warteschlangen-Nachführfunktionen werden in ähnlicher Weise ausgeführt, wie dies vorstehend im Text beschrieben worden ist. Die Nachführeinrichtungen 850, 860 verwalten Zählwerte über die in den entsprechenden Warteschlangen 854, 828 und 858, 830 gespeicherten Informationen, und sie verhindern die Erzeugung von Paketen, wenn eine der Warteschlangen voll ist. Die hierin nicht im Detail beschriebene Schnittstellen-/Steuerlogik 882 stellt die Logik dar, die für die Kommunikation mit dem Bus 820 verwendet wird sowie zur Erzeugung der Anforderungs- und Bestätigungspakete, wie dies nachstehend im Text näher beschrieben ist.
  • Die Abbildungen der 9a, 9b und 9c zeigen vereinfachte Flussdiagramme, die entsprechend den Flusssteuerprozess für Anforderungen und Daten veranschaulichen. Obwohl die beiden Prozesse einzeln beschrieben sind und die Flusssteuerung unter Verwendung eines Prozesses oder beider Prozesse eingeleitet werden kann, wird es bevorzugt, dass beide Prozesse gleichzeitig zur Regelung der Flusssteuerung verwendet werden, wie dies in der Abbildung aus 9c dargestellt ist. In dem vorliegenden Ausführungsbeispiel verwaltet die Nachführeinrichtung einen Zählwert, der die Daten darstellt, die in dem empfangenden Puffer gespeichert sind. Zum Beispiel verwaltet die Nachführeinrichtung 824 einen Zählwert der in der Warteschlange 852 gespeicherten Anforderungen. Wenn der Zählwert einen vorbestimmten Höchstwert überschreitet, steuert die Nachführeinrichtung die Vorrichtung, wie z.B. den Prozessor 803, so dass die Erzeugung des Pakets verhindert wird, und wobei bewirkt wird, dass die Vorrichtung weiter die Ausgabe der Anforderung versucht, bis der Raum in der Warteschlange verfügbar wird. In dem vorliegenden Ausführungsbeispiel wird ein Paket nicht erzeugt, wenn die Nachführeinrichtung anzeigt, dass die empfangende Warteschlange voll ist; wobei es in anderen Ausführungsbeispielen durchaus möglich ist, dass die Nachführeinrichtung andere Mechanismen verwendet, um es zu verhindern, dass eine Anforderung in eine volle Warteschlange eintritt.
  • Wenn in erneutem Bezug auf das vorliegende Ausführungsbeispiel zum Beispiel eine eingehende PCI-(Schreib)-Anforderungen von dem Bus 820 versucht wird, wird die Anforderung wiederholt versucht, bis die eingehende Nachführeinrichtung 850 anzeigt, dass die eingehende Warteschlange in der Vorrichtung 805 Platz für die Schreibanforderung aufweist. Das gleiche erfolgt für abgehende Transaktionen. Wenn eine eingehende Anforderungswarteschlange eine Transaktion annehmen wollen würde, für die in der empfangenden eingehenden Warteschlange kein Platz ist, so kann eine gegenseitige Blockierung auftreten, obwohl kein Paket übermittelt wird, bis Platz in der empfangenden Warteschlange vorhanden ist.
  • In Bezug auf die Abbildung aus 9a wird in dem Schritt 900 der in der Nachführeinrichtung verwaltete Anforderungspufferzählwert initialisiert. Der Zählwert kann zum Beispiel auf Null initialisiert werden. Bei dem tatsächlichen Wert kann es sich aber auch um einen anderen Wert handeln, so dass für den Fall, dass der Zählwert den vorbestimmten Höchstwert erreicht, der der Größe des entsprechenden Puffers entspricht, tritt ein Registerüberlauf auf. Alternativ wird der Zählwert auf einen Wert initialisiert, der dem vorbestimmten Höchstwert entspricht, und die Nachführeinrichtung setzt den Zählwert für jede zu übermittelnde Anforderung herab. Somit wird der Pufferhöchstwert erreicht, wenn der Zählwert die Null erreicht. Die maximale Größe des Puffers kann hart codiert sein oder aus einem Konfigurationsregister gelesen oder gefüllt werden. Vorzugsweise werden die Kapazitäten der entsprechenden Pufferpaare, z.B. 724, 752 geprüft, um den Puffer mit der geringeren Kapazität zu bestimmen; in diesem Fall würde die maximale Größe der Größe der Puffer mit der kleineren Kapazität entsprechen. Ferner ist das vorbestimmte Maximum nicht unbedingt identisch mit der genauen Kapazität des Puffers und kann aus einer Vielzahl von Gründen einem Wert entsprechen, der niedriger ist als die tatsächliche Puffergröße. In dem vorliegenden Ausführungsbeispiel entspricht das vorbestimmte Maximum für Schreibanforderungen zum Beispiel sechs (6), während die Pufferkapazität acht (8) Schreibanforderungen entspricht. Andere Ausführungsbeispiele sind ebenfalls möglich.
  • Wenn in dem Schritt 905 ein Ausführungspaket empfangen wird, setzt die Anforderungs-Nachführeinrichtung in dem Schritt 910 den Zählwert des Anforderungspuffers herab, da der Empfang eines Ausführungspakets anzeigt, dass die Anforderung verarbeitet worden ist und sich nicht länger in dem Puffer befindet. Wenn in dem Schritt 915 ein Anforderungspaket gesendet werden soll, wird in dem Schritt 920 der Zählwert des Anforderungspuffers inkrementiert, und in dem Schritt 925 wird bestimmt, ob der Zählwert das vorbestimmte Maximum überschreitet. Wenn der Zählwert das vorbestimmte Maximum nicht überschreitet, so weist der empfangende Puffer in der Vorrichtung die Kapazität auf, die Anforderung zu empfangen, und das Anforderungspaket ist zur Übertragung und zur folgenden Übermittlung über den Bus in dem Schritt 940 bereit. Wenn der Zählwert das vorbestimmte Maximum überschreitet, so kann die verfügbare Kapazität des Puffers das Anforderungspaket nicht annehmen, und die Anforderungspaket-Nachführeinrichtung verhindert die Erzeugung oder die Aufnahme in die Warteschlange des Anforderungspakets und bewirkt die Wiederholung des Übertragungsprozesses an dem einleitenden Busses, Schritt 935.
  • Hiermit wird festgestellt, dass die Abbildung aus 9a in Bezug auf die Übermittlung von Anforderungspaketen von einer ersten Vorrichtung (z.B. der Vorrichtung 805 aus 8) beschrieben wird. Der gleiche Prozess wird aber auch ausgeführt, wenn die gleiche Vorrichtung ein Ausführungspaket sendet, wenn die Pakete in dem gleichen Puffer (z.B. dem eingehenden Anforderungspuffer 852 aus 8) gepuffert werden. Wenn der Prozess mit einem Baustein mit zwei Ports wie etwa der vorstehend beschriebenen Busbrücke ausgeführt wird, würde der erste Baustein weiter senden (vorzugsweise würde er an verschiedene Puffer senden), bis beide Puffer die volle Kapazität aufweisen.
  • Ein sehr ähnlicher Prozess wird ausgeführt, um die Flusssteuerung in Bezug auf die Daten in dem Paket zu regeln. Ein Anforderungspaket weist eine bestimmte Größe auf, die in einen vorbestimmten Platz passt. Dabei ist die Datenmenge jedoch variabel. Bei Datenpuffern wird somit auf ein Längenfeld in dem Paket zugegriffen, um die erforderliche Menge des Pufferraums zu bestimmen. Danach wird ein ähnlicher Prozess ausgeführt, um zu bestimmen, wann Daten in der Warteschlangenverarbeitung ein Überschreiten der Kapazität der Datenwarteschlange bewirken würden. Die Nachführeinrichtung lässt es nicht zu, dass die Kapazität des Datenpuffers überschritten wird. Wenn eine Vorrichtung bzw. ein Baustein an dem Bus 820 zum Beispiel versucht, 16 DWORDS (16 × 4 Bytes) zu schreiben, die Nachführeinrichtung jedoch nur Platz für 8 anzeigt, so akzeptiert die Steuerlogik 883 lediglich acht DWORDS. Die Vorrichtung (nicht abgebildet) an dem Bus 820 muss einen Schreibvorgang für die verbleibenden DWORDS erneut versuchen, bis die Nachführeinrichtung den Platz für diese anzeigt. Alternativ ist die Steuerlogik 882 so konfiguriert, dass die Logik die Erzeugung von Paketen nur zulässt, wenn alle Daten in der Warteschlange platziert werden können.
  • In Bezug auf die Abbildung aus 9b wird der Zählwert des Datenpuffers in dem Schritt 950 initialisiert. Wenn ein Ausführungspaket in dem Schritt 955 empfangen wird, wird der Zählwert des Datenpuffers in dem Schritt 960 durch den Längenwert (LEN) herabgesetzt, der in dem Ausführungspaket gespeichert ist. Unter Verwendung des Wertes LEN kann eine präzise Puffernachführung ausgeführt werden, die für die Pufferkapazitäten relevant ist. Hiermit wird festgestellt, dass der Wert LEN die gleiche Länge aufweist, wie sie in den abgehenden Informationen gegeben ist. Wenn in dem Schritt 965 eine Anforderung übermittelt werden soll, wird der Wert LEN bestimmt, und der Datenpufferzählwert wird in einem LEN entsprechenden Ausmaß inkrementiert. Wenn in dem Schritt 970 die Datenmenge des Pakets plus der aktuellen Datenmenge in dem Puffer die Kapazität des Puffers überschreitet, wird verhindert, dass die Vorrichtung das Paket erzeugt und das Paket in dem Puffer platziert. Die Vorrichtung wiederholt den Versuch in dem Schritt 990, bis die Kapazität des Puffers die Datenmenge des Pakets akzeptieren kann. Vorzugsweise kann die anfordernde Vorrichtung anzeigen, dass Teil der Daten übermittelt werden soll, der in den verbleibenden Pufferraum passt (z.B. durch Ausgabe eines Befehls an die Nachführeinrichtung). Die anfordernde Vorrichtung gibt in der Folge Anforderungen aus und wiederholt diese bei Bedarf, um die Daten auszugleichen. Wenn der Pufferzählwert nicht überschritten wird, wird das Paket in dem Schritt 995 durch die anfordernde Vorrichtung gebildet und in dem Puffer platziert.
  • Wie dies bereits vorstehend im Text beschrieben worden ist, wird es bevorzugt, dass der Flusssteuerungsprozess den verfügbaren Platz bzw. Raum in dem Anforderungspuffer und den verfügbaren Platz in dem Datenpuffer berücksichtigt. Wenn einer der Puffer voll ist und keine Daten empfangen kann, kann die Anforderung nicht verarbeitet werden. Dies ist durch das Flussdiagramm aus 9c veranschaulicht. In dem Schritt 996 wird bestimmt, ob ein Ausführungspaket empfangne wird, und wenn ein Ausführungspaket empfangen wird, wird der Zählwert des Anforderungspuffers in dem Schritt 997 in einem Ausmaß herabgesetzt, dass dem LEN-Wert entspricht. Wenn in dem Schritt 998 eine Anforderung empfangen wird, wird bestimmt, ob sich in dem Anforderungspuffer und in dem Datenpuffer ausreichend Pufferraum befindet. Da die Datenmenge variieren kann, ist es möglich, dass ein Puffer voll ist, während der andere Puffer noch Kapazität aufweist. Wenn keiner der Puffer für den Empfang einer Anforderung zur Verfügung steht, wird die Anforderung nicht verarbeitet, und in dem Schritt 1000 wird ein Wiederholungssignal an die sendende Vorrichtung ausgegeben, um eine spätere Wiederholung der Anforderung anzuzeigen.
  • Ansonsten wird die Anforderung in dem Schritt 1001 an den Anforderungspuffer ausgegeben, während die entsprechenden Daten an den Datenpuffer ausgegeben werden.
  • Die Flusssteuerung ist somit in das Paketprotokoll integriert. Die Abbildungen der 10a, 10b und 10c zeigen veranschaulichende Pakete. Der beschriebene Flusssteuermechanismus betrifft Felder für die Typcodierung (TP[1:0]), die Anforderungsbefehlscodierung (RCOM[4:0]), die Ausführungsbefehlscodierung (CCOM[4:0]) und die Länge (LEN[7:0]), die sich in den Anforderungspaketen (10a) und den Ausführungspaketen (10b) befinden. Vorzugsweise werden die Schreib- und Lesevorgänge separat durch die Nachführeinrichtung gesteuert, so dass verschiedene maximale Zählwerte für Schreibanforderungen und Leseanforderungen verwendet werden können.
  • Wenn zum Beispiel eine Leseanforderung in die abgehende Transaktionswarteschlange der Speichersteuereinheit gedrückt wird, entspricht TP[1:0] 00, um eine Anforderung ohne Daten anzuzeigen, und wobei RCOM[4:0] gleich 0 ist, um anzuzeigen, dass die Anforderung einen Lesewarteschlangenplatz verwendet.
  • Das Paket wird erzeugt und in der Warteschlange platziert, und die abgehende Lesewarteschlangen-Nachführeinrichtung wird somit um eins herabgesetzt. Wenn ein der Leseanforderung entsprechendes Ausführungspaket durch PXB zurückgesendet wird, entspricht TP[1:0] [1:x], wobei x gleich 1 ist, wenn die Daten zurückgeführt werden, und wobei x gleich 0 ist, wenn keine Daten zurückgeführt werden. CCOM[4:0] ist gleich 0, um anzuzeigen, dass es sich dabei um eine Ausführung für eine Leseanforderung handelt. Die abgehende Lesewarteschlangen-Nachführeinrichtung inkrementiert den Zählwert somit um eins. Wenn eine Leseausführung aus der eingehenden Speichersteuereinheits-Transaktionswarteschlange ausgegeben wird, so ergibt sich, dass die abgehende Lesewarteschlangen-Nachführeinrichtung um eins erhöht wird. Ähnliche Operationen treten in Bezug auf die Busbrücke auf.
  • Wenn ein Schreibvorgang ausgeführt werden soll, wird die Anforderung in die abgehende Transaktionswarteschlange der Vorrichtung bewegt. TP[1:0] entspricht 01, um eine Anforderung mit Daten anzuzeigen, und RCOM[4:0] entspricht 1, um anzuzeigen, dass die Anforderung einen Schreibwarteschlangenplatz verwendet. Die abgehende Schreibanforderungs-Warteschlangen-Nachführeinrichtung wird um 1 erhöht. Wenn die Ausführung für eine Schreibanforderung zurückgesendete wird, entspricht TP[1:0] 10, um eine Ausführung ohne Daten anzuzeigen. CCOM[4:0] entspricht 1, um eine Ausführung für eine Schreibanforderung anzuzeigen. Wenn eine Schreibausführung aus der eingehenden Transaktionswarteschlange der Vorrichtung ausgegeben wird, wird die abgehende Schreibwarteschlangen-Nachführeinrichtung um 1 erhöht. Wenn eine Transaktionswarteschlangen-Nachführeinrichtung auf 0 herabgesetzt wird, so können Transaktionen dieser Art nicht mehr in die Transaktionswarteschlange geschoben werden, wie dies bereits vorstehend im Text beschrieben worden ist. Vorzugsweise versucht die anfordernde Vorrichtung erneut alle etwaigen zusätzlichen Aktionen dieser Art.
  • In dem vorliegenden Ausführungsbeispiel wird die Datenpufferverwaltung etwas anders gehandhabt; dabei ist es durchaus möglich, dass die Datenpufferverwaltung ebenso wie Anforderungen gehandhabt werden kann. Die Felder TP[1:0], RCOM[4:0] und LEN[7:0] in dem Header des Anforderungspakets werden dazu verwendet, Datenpuffer durch die Datenpuffer-Nachführeinrichtungen zuzuweisen. Die Felder TP[1:0], CCOM[4:0] und LEN[7:0] in dem Header des Ausführungspakets werden zur Aufhebung von Datenpuffern durch die Datenpuffer-Nachführeinrichtungen verwendet.
  • Wenn zum Beispiel eine Leseanforderung in die abgehende Transaktionswarteschlange der Speichersteuereinheit geschoben wird, wie z.B. durch den Prozessor, entspricht TP[1:0] 00, um eine Anforderung ohne Daten anzuzeigen, und RCOM[0] ist gleich 0, um anzuzeigen, dass die Anforderung einen Lesewarteschlangenplatz verwendet. Die abgehende Lesedatenpuffer-Nachführeinrichtung wird durch LEN herabgesetzt, wobei LEN die Datengröße anzeigt, und zwar in dem vorliegenden Ausführungsbeispiel die Anzahl der angeforderten DWORDS.
  • Wenn das Ausführungspaket für die Leseanforderung durch die Busbrücke zurückgesendet wird, entspricht TP[1:0] [1:x], wobei x gleich 1 ist, wenn Daten zurückgegeben werden, und wobei x gleich 0 ist, wenn keine Daten zurückgegeben worden sind. CCOM[4:0] entspricht 0, um anzuzeigen, dass das Paket ein Ausführungspaket für eine Leseanforderung ist. Wenn eine Leseanforderung aus der eingehenden Transaktionswarteschlange der Speichersteuereinheit ausgegeben wird, wird der abgehende Lesedatenpuffer um LEN inkrementiert.
  • Wenn ein Schreibpaket in die abgehende Transaktionswarteschlange der Speichersteuereinheit gedrückt wird, wie z.B. durch den gekoppelten Prozessor, so entspricht TP[1:0] 01, um eine Anforderung mit Daten anzuzeigen, und wobei RCOM[4:0] gleich 1 ist, um anzuzeigen, dass die Anforderung einen Schreibwarteschlangenplatz verwendet. Die abgehende Schreibdatenpuffer-Nachführeinrichtung wird um LEN herabgesetzt, wobei LEN die Anzahl der geschriebenen DWORDS anzeigt. Der Wert in dem Feld LEN des Schreibanforderungspakets und dem zugeordneten Ausführungspaket stimmen stets überein, selbst wenn die Schreibanforderung an dem anderen Bus nicht erfolgreich gewesen ist.
  • Wenn das Ausführungspaket für die Schreibanforderung durch PXB zurückgesendet wird, entspricht TP[1:0] 10, um eine Ausführung ohne Daten anzuzeigen. CCOM[0] entspricht 1, um anzuzeigen, dass es sich bei dem Paket um ein Ausführungspaket für eine Schreibanforderung handelt. Wenn die Schreibausführung von der abgehenden Schreibdatenpuffer-Nachführeinrichtung empfangen wird, wird der Zählwert um LEN inkrementiert. Normalerweise verlassen Anforderungen und Ausführungen eine Transaktionswarteschlange in der gleichen Reihenfolge, in der sie in diese eingetreten sind. Dies ist erforderlich, um die ordnungsgemäße Anordnung bzw. Reihenfolge der Transaktion zu erhalten, d.h. die Reihenfolge des Auftretens an einem Bus entspricht der Reihenfolge an dem empfangenden Bus. Eine Schreibausführung weist jedoch keine Daten auf und somit auch keine Anordnungsanforderung. Somit wird es bevorzugt, dass das Ausführungspaket direkt an die Nachführeinrichtung gesendet wird.
  • Wenn eine Datenpuffer-Nachführeinrichtung auf Null herabsetzt oder nicht ausreichend Datenpuffer für eine bestimmte Anforderung aufweist, kann diese Anforderung nicht in die Transaktionswarteschlange verschoben werden. Die Busschnittstelle der Datenpuffer-Nachführeinrichtung versucht somit, etwaige zusätzliche Transaktionen dieser Art erneut zu versuchen. Eine ähnliche Logik wird dazu verwendet, durch die Busbrücke ausgegebene Schreibpakete zu unterstützen.
  • Weiter unten ist ein vereinfachtes Beispiel des integrierten Flusssteuerungsprozesses dargestellt. Das Beispiel ist zu Zwecken der Erläuterung vereinfacht dargestellt und berücksichtigt keine anderen Konfigurationsparameter als die mit dem Prefetching (Vorerfassung) verbundenen Parameter. Darüber hinaus erörtert das unten stehende Beispiel sowie die Beschreibung den Flusssteuermechanismus in Verbindung mit einer Vorrichtung bzw. mit einem Baustein, wie etwa einer Speichersteuereinheit, die über den Hochgeschwindigkeitsbus der vorliegenden Erfindung mit einer PCI-Busbrückenerweiterung gekoppelt ist, welche die Daten an 2 32-Bit-PCI-Busse oder 1 64-Bit-PCI-Bus überträgt.
  • Datenpuffer-Nachführeinrichtung (Separate Nachführeinrichtung für Transaktionen)
    Figure 00270001
  • Figure 00280001
  • Bestimmte Transaktionen erfordern eine feste Anzahl von DWORDs für die Übertragung. Zum Beispiel muss ein Zeilenschreibbefehl (PCI MWI) eine ganze Zeile übertragen. Wenn eine Zeile aus 8 DWORDs besteht und ein Puffer für weniger als 8 DWORDs zur Verfügung steht, so muss die Transaktion wiederholt werden. Ein normaler Schreibübertragungsblock kann jedoch dazu führen, dass ein Teil der Mehrzahl der DWORDs akzeptiert und der Rest erneut versucht bzw. wiederholt wird. Zum Beispiel würde eine Transaktion Memory Read Line (MRL) (Speicher Zeile lesen) wiederholt werden, wenn nicht der Pufferraum zur Verfügung steht, der eine ganzen Zeile von DWORDs entspricht.
  • Wie dies bereits vorstehend im Text festgestellt worden ist, ist die Busbrücke vorzugsweise so konfiguriert, dass Pakete für duale 32-Bit-Betriebsmodi und einfache 64-Bit-Betriebsmodi geleitet werden. In dem dualen 32-Bit-Modus arbeiten die Transaktionswarteschlangen 'a' und 'b' unabhängig an ihren entsprechenden Bussen. Die einzige Interaktion erfolgt an der Hochgeschwindigkeitsbus-Schnittstelle, an der eine der Warteschlangenanordnungen an dem Hochgeschwindigkeitsbus zwischen der Busbrücke und der Speichersteuereinheit sendet oder empfängt.
  • Im einzelnen 64-Bit-Modus werden die abgehenden Transaktionswarteschlangen paarweise zusammengefasst, so dass sie als eine abgehende Warteschlange erscheinen, und die eingehenden Transaktionswarteschlangen werden paarweise zusammengefasst, so dass sie als eine eingehende Transaktionswarteschlange erscheinen. Die 64-Bit-PCI-Busschnittstelle weist effektiv die doppelte Warteschlangentiefe jeder der dualen 32-Bit-PCI-Schnittstellen, auf. Die Warteschlangennachführung ist somit so konfigurierbar, dass sie ein Paar von eingehenden/ausgehenden Warteschlangen verfolgt sowie eine einzelne Anordnung von Warteschlangen.
  • Die abgehenden Transaktionswarteschlangen werden ähnlich behandelt wie die eingehenden Transaktionswarteschlangen. Wenn eine abgehende Transaktion der Hochgeschwindigkeitsbusschnittstelle in eine abgehende Warteschlange 'a' (OutQa) eintritt, tritt die nächste abgehende Transaktion in die abgehende Warteschlange 'b' (OutQb) ein und so weiter. An der Busbrückenschnittstelle wechselt die Logik (z.B. eine Zustandsmaschine) zwischen OutQa und OutQb. Beginnend bei OutQa wird die erste abgehende Transaktion an dem Bus versucht, der mit der Busbrücke gekoppelt ist (z.B. ein PCI-Bus). Wenn die Transaktion abgeschlossen ist, wird sie aus der OutQa ausgegeben und das Ausführungspaket wird in die eingehende Warteschlange eingegeben, auf die der Warteschlangenzeiger aktuell zeigt. Als nächstes wird die Transaktion an der Spitze der OutQb versucht. Wenn jede abgehende Transaktion beim ersten Versuch abgeschlossen ist, schaltet der abgehende Warteschlangenzeiger weiter mit jeder ausgeführten Transaktion um.
  • Wenn eine Lesetransaktion an der Spitze der abgehenden Warteschlange wiederholt wird, wird sie in die entsprechende Leseanforderungs-Warteschlange RRQ (a oder b) bewegt, und der abgehende Warteschlangenzeiger schaltet auf die andere Warteschlange um. Wenn eine Schreibtransaktion an der Spitze der abgehenden Warteschlange erneut versucht wird, wird bevorzugt, dass der Warteschlangenzeiger nicht umschaltet. Ein wiederholter Schreibvorgang muss erfolgreich ausgeführt werden, bevor der abgehende Warteschlangenzeiger auf die entgegengesetzte Warteschlange umschaltet. Zwischen Versuchen zur Ausführung der Schreibanforderung an der Spitze der aktuellen Warteschlange können jedoch auch alle Leseanforderungen in jeder der RRQ versucht werden. Sobald eine aktuelle abgehende Schreibanforderung erfolgreich ist, wird sie aus der Warteschlange ausgegeben und ein Ausführungspaket wird in die aktuelle eingehende Warteschlange eingegeben. Der abgehende Warteschlangenzeiger schaltet danach auf die entgegengesetzte Warteschlange um, selbst wenn eine nicht ausgeführte Leseanforderung in der RRQ verbleibt.
  • Zusammengefasst wechselt der abgehende Warteschlangenzähler zu der entgegengesetzten Warteschlange, sobald eine Transaktion aus der aktuellen Warteschlange ausgegeben wird. Eine wiederholte Schreibanforderung wird erst dann ausgegeben, wenn sie erfolgreich ist. Eine wiederholte Leseanforderung wird aus der abgehenden Warteschlange ausgegeben und in die RRQ verschoben. Eine Leseanforderung in einer RRQ kann jederzeit versucht werden, da ihre Anforderungen in Bezug auf die Anordnung zu dem Zeitpunkt erfüllt worden sind, als sie aus der abgehenden Warteschlange ausgegeben worden ist. (Hiermit wird festgestellt, dass abgehende Leseanforderungen in einer RRQ abgehende Leseanforderungen in der anderen RRQ in einem 64-Bit-PCI-Modus weiterleiten können.
  • In dem 32-Bit-Modus wird eine abgehende Transaktion von dem Hochgeschwindigkeitsbus entweder zu der abgehenden Warteschlange 'a' oder 'b' geleitet, abhängig von der Zielkennung des Pakets (Ziel-ID). Multiplexer wählen die nächste abgehende Anforderung oder eine vorher zurückgezogene Leseanforderung aus, wie dies in dem vorstehenden Abschnitt erörtert worden ist. Vorzugsweise wird für den 64-Bit-PCI-Modus ein separater Multiplexer verwendet. Wenn die Busbrücke eine PCI-Transaktion in dem 64-Bit-Modus einleitet, wählt ein Multiplexer den Befehl und die Adressbits entweder aus der abgehenden Warteschlange 'a' oder der abgehenden Warteschlange 'b' aus.
  • Eingehende Transaktionen können mehr als 32 Bits adressieren, so dass eingehende Warteschlangen eine duale Adresszyklus-Decodierung (DAC-Decodierung) in dem 32-Bit-Modus und dem 64-Bit-Modus unterstützen. Die eingehenden Anforderungswarteschlangen weisen getrennte Latch-Freigaben für die oberen und unteren 32 Bits der Adresse auf. In dem 32-Bit-Modus wird die Adresse niedriger Ordnung in dem Adress-Latch 'a' oder Adress-Latch 'b' für den PCI-Bus 'a' bzw. 'b' gespeichert. Die eingehende Anforderungswarteschlange speichert die Adresse niedriger Ordnung vor dem nächsten PCI-Takt in Vorbereitung auf die Ankunft der Adresse hohoer Ordnung eines dualen Adresszyklus (DAC). Wenn es sich bei der eingehenden Transaktion um eine einzelne Adresszyklustransaktion handelt, müssen Nullen in das Adressfeld hoher Ordnung der eingehenden Anforderungswarteschlangen geladen.
  • In dem 64-Bit-Modus kann die eingehende Transaktion durch einen 32-Bit-PCI-Master oder einen 64-Bit-PCI-Master eingeleitet werden. Der DAC muss an C/B[3:0] in Paketen durch 32-Bit- und 64-Bit-PCI-Master (z.B. Speichersteuereinheit) behauptet werden, mit einer Adressierung oberhalb von 4 GB, da es dem Master zu diesem Zeitpunkt nicht bekannt ist, ob das Ziel 64-Bit-fähig ist oder nicht. Ein 64-Bit-PCI-Master muss die Adressbits hoher Ordnung für Adressen unterhalb von 4 GB nicht unbedingt auf Null steuern. Wenn REQ64# mit FRAME# behauptet bzw. geltend gemacht wird, und wenn PXB DAC bei C/B[3:0] während dem ersten Adresszyklus decodiert, kann die vollständige Adresse sofort decodiert werden. Wenn C/B[3:0] DAC nicht anzeigt, muss PXB die Adresse hoher Ordnung auf ausschließlich Nullen bringen, bevor die Adresse decodiert wird.
  • Wie dies bereits vorstehend im Text beschrieben worden ist, wird es bevorzugt, dass die Datenpuffer als getrennte Strukturen von den Transaktions- oder Anforderungswarteschlangen bestehen. Die Daten für die PCI-Transaktionen werden in einer separaten Warteschlangenstruktur zu den Transaktionswarteschlangen gespeichert. Diese Datenwarteschlangenstruktur wird als die Datenpuffer oder die Datenwarteschlangen bezeichnet. Getrennte Warteschlangen sind für die Daten erforderlich, da die Transaktionen und Ausführungen in den Transaktionswarteschlangen nicht immer in der gleichen Reihenfolge zurückgezogen werden in der sie in die Transaktionswarteschlangen eingetreten sind. Zum Beispiel können Schreibtransaktionen Lesetransaktionen in die gleiche Richtung weiterleiten. Ferner werden PCI-verzögerte Leseanforderungen in der Reihenfolge zurückgezogen, in der die PCI-Master in Bezug auf ihr Daten zurückgeben, wobei es sich dabei nicht unbedingt um die gleiche Reihenfolge handelt, in der die Leseanforderungen oder die Lesedaten empfangen worden sind.
  • Wenn in dem dualen 32-Bit-PCI-Modus eine eingehende PCI-Schreibtransaktion in InQa eintritt, treten die Daten, die der Adresse und dem Befehl auf dem PCI-Bus folgen, in die eingehende Datenwarteschlange PW Data 1 ein. Wenn das zugeordnete Schreibpaket über den Bus F16 übermittelt wird, wird der Paket-Header, der den Schreibbefehl und die Adresse aufweist, aus der Transaktionswarteschlange InQa gezogen, und die Schreibdaten werden aus der eingehenden Datenwarteschlange PW Data 1/DRPLY Data 1 gezogen. In ähnlicher Weise drückt eine eingehende PCI-Schreibanforderung an dem PCI-Bus 'b' den Befehl und die Adresse in InQb, und die zugeordneten Daten, die auf dem PCI-Bus folgen, werden in die eingehende Datenwarteschlange PW Data 2 gedrückt.
  • In dem dualen 32-Bit-PCI-Modus wird eine abgehende 32-Bit-PCI-Leseanforerung an den PCI-Bus 'a' von OutQa oder RRQa gezogen, wenn die Leseanforderung an dem PCI-Bus erfolgreich ist, und wobei eine Leseausführung in die eingehende Transaktionswarteschlange InQa geschoben wird. Die zugeordneten Lesedaten treten in die eingehende Datenwarteschlange PW Data 1/DRPLY Data 1 ein. Wenn das Ausführungspaket über den Bus F16 übermittelt wird, wird der Paket-Header, der den Leseausführungsbezeichner aufweist, von der Spitze der Transaktionswarteschlange InQa gezogen und die Lesedaten werden der eingehenden Datenwarteschlange PW Data 1/DRPLY Data 1 entzogen.
  • Jeder 32-Bit-PCI-Port kann zwei ausstehende PCI-Leseanforderungen aufweisen. Eine eingehende PCI-Leseanforderung an dem PCI-Port a wird in InQa geshoben, wenn ein Platz in der eingehenden PXB-Warteschlange für eine Leseanforderung vorhanden ist, und es stehen eingehende Lesedatenpuffer in PXB und MIOC zur Verfügung. Zu diesem Zeitpunkt wird eingehende verzögerte Leseausführungs-Nachführeinrichtung mit den Befehls- und Adressfeldern der eingehenden Leseanforderung geladen, so dass sie den PCI-Master identifizieren kann, der den Lesevorgang anfordert. Ein für diese eingehende Transaktion einzigartiger Transaktionsbezeichner wird ebenfalls in die eingehende, verzögerte Leseausführungs-Nachführeinrichtung geladen, so dass die Leseausführung identifiziert werden kann, wenn sie in der OutQa ankommt. Wenn der eingehende Lesevorgang an dem P6-Bus ausgeführt wird, erreicht ein verzögertes Leseausführungspaket (DRC-Paket), das die Lesedaten aufweist, die Busbrücke über den Hochgeschwindigkeitsbus. Der DRC-Transaktions-Header, der den eingehenden Lesebezeichner aufweist, wird in die OutQa verschoben. Die in dem Paket folgenden Lesedaten werden in die Datenwarteschlange DRC Data 1 oder die Datenwarteschlange DRC 2 verschoben, abhängig davon, welcher DRC-Datenwarteschlange diesem eingehenden Lesevorgang zugeordnet worden ist. Wenn der PCI-Master für diese Daten zurückkehrt (er wird dauerhaft zurückgeführt, bis die Daten ankommen), empfängt er die Daten von der Datenwarteschlange DRC Data 1 oder DRC Data 2, wenn die zugeordnete eingehende Leseausführung von der Spitze der Transaktionswarteschlange OutQa ausgegeben worden ist, und wobei der eingehende Lesevorgang in der eingehenden, verzögerten Leseausführungs-Nachführeinrichtung markiert wird.
  • In dem 64-Bit-PCI-Modus werden zwei Anordnungen von Datenpuffer-Warteschlangen paarweise angeordnet, ähnlich der Transaktionswarteschlange in dem 64-Bit-PCI-Modus. Ein eingehender Schreibvorgang führt dazu, dass die Daten wechselweise in die Datenwarteschlangen PW Data 1 und PW Data 2 geschoben werden. Die Datenwarteschlangen sind 32 Bits breit (DWord). Wenn Daten zu einem Zeitpunkt als 64 Bits von einem 64-Bit-PCI-Master empfangen werden und der Datenwarteschlangenzeiger auf die Warteschlange PW Data 1 zeigt, wird das erste DWord in die Datenwarteschlange PW Data 1 geschoben, und das nächste DWord wird in die Datenwarteschlange PW Data 2 geschoben. Zusätzliche DWORDs alternieren zwischen den beiden eingehenden Datenwarteschlangen.
  • Die DRC-Datenwarteschlangen und die Schreib-Datenwarteschlangen werden paarweise zusammengefasst und auf ähnliche Art und Weise verschachtelt.
  • Das vorstehend beschriebene innovative Paketformat sieht zusätzlich zu den integrierten Flusssteuerungsinformationen mindestens ein Feld vor, das hierin als Transaktionsidentifikationsfeld (TID) bezeichnet wird, das auf verschiedene Art und Weise verwendet werden kann. Das Feld ist vorzugsweise abhängig von der Anwendung konfigurierbar. Der Vorteil ist der, dass die sendende Vorrichtung, d.h. die Vorrichtung, die ein Anforderungspaket ausgibt, vorbestimmte Daten in diesem Feld speichern kann, wie z.B. einen Transaktionsbezeichner oder einen anderen Bezeichner. Nach der Verarbeitung der Anforderung und der Vorbereitung des Ausführungspakets kopiert die Steuerlogik der empfangenden Vorrichtung einfach den Inhalt des Felds in das Ausführungspaket für die Übertragung zurück an die ursprünglich sendende Vorrichtung. Die Konfiguration kann somit derart beschaffen sein, dass der Feldinhalt nur für die sendende Vorrichtung einen Sinn macht, da die empfangende Vorrichtung einfach den Inhalt kopiert und zurück sendet. Da das Paket nicht auf die spezifischen Daten beschränkt ist, kann das Feld ferner für eine Vielzahl verschiedener Zwecke eingesetzt werden. Da die empfangende Vorrichtung einfach den Inhalt in das Ausführungspaket kopiert, bleibt der Inhalt ferner unbeeinträchtigt.
  • Dieser Prozess wird in Bezug auf die Abbildung aus 11 näher beschriebne. In dem Schritt 1105 bildet die sendende Vorrichtung ein Anforderungspaket. Das Anforderungspaket weist das Transaktions-ID-Feld auf, das zum Speichern der Daten der anfordernden Vorrichtung verwendet wird. In dem Schritt 1110 wird das Anforderungspaket ausgegeben, und in dem Schritt 1115 empfängt die empfangende Vorrichtung das Paket und bildet in dem Schritt 1120 ein Antwortpaket. Die empfangende Vorrichtung kopiert einfach das TID-Feld in das Antwortpaket für einen folgenden Zugriff durch die sendende Vorrichtung. Der Inhalt des TID muss somit nicht durch die empfangende Vorrichtung interpretiert werden, da lediglich eine Operation einer einfachen Kopie erforderlich ist. In dem Schritt 1125 wird das Antwortpaket, das den kopierten Inhalt des TID-Felds aufweist, zurück an die anfordernde Vorrichtung gesendet.
  • In dem vorliegenden Ausführungsbeispiel wird das Feld für eine zurückgestellte abgehende Lesetransaktion (Prozessor an PCI) verwendet. Eine zurückgestellte Transaktion ist eine Split-Transaktion, wo der Lesevorgang in die anfängliche Leseanforderung geteilt wird, gefolgt von einer zurückgestellten Antwort zu einem späteren Zeitpunkt. Die angeforderten Daten werden durch die zurückgestellte Antwort zurückgegeben. Die Vorrichtungs- und die Transaktions-ID der Leseanforderungseinrichtung wird somit in das TID-Feld eingegeben. Wenn das Ausführungspaket mit den Lesedaten gesendet wird, wird der TID aus dem Anforderungspaket in das Ausführungspaket kopiert. Wenn die Ausführung die Spitze der eingehenden Anforderungswarteschlange erreicht, wird eine zurückgestellte Antwort zu dem anfordernden Prozessor gesendet. Die zurückgestellte Antwort kopiert den Ausführungs-TID in die zurückgestellte Antwort, wo er zur Adressierung des Prozessors verwendet wird; der den ursprünglichen Lesevorgang initiiert hat.
  • Die Erfindung wurde vorstehend in Bezug auf das bevorzugte Ausführungsbeispiel beschrieben. Es ist ersichtlich, dass die zahlreichen Alternativen, Modifikationen, Variationen und Anwendungen für den Fachmann auf dem Gebiet in Verbindung mit der vorstehenden Beschreibung erkennbar werden.

Claims (28)

  1. Verfahren, das folgendes umfasst: Aussenden von Daten und eines Daten-Strobes von einem ersten Baustein während einem ersten Taktzyklus; Speichern der genannten Daten an einem zweiten Baustein auf der Basis des Empfangs des genannten Daten-Strobes; Abtasten der genannten Daten an dem genannten empfangenden Baustein eine vorbestimmte Anzahl von Taktzyklen nach dem genannten ersten Taktzyklus; Ausgabe eines Rücksetzsignals von dem genannten ersten Baustein an den genannten zweiten Baustein, wobei der genannte erste Baustein ferner das genannte Rücksetzsignal als Eingabe nach einer Verzögerung empfängt, die einem Zeitraum für die Übertragung des genannten Rücksetzsignals zwischen dem genannten ersten Baustein und dem zweiten Baustein entspricht, wobei der genannte erste Baustein und der genannte zweite Baustein das Rücksetzsignal gleichzeitig empfangen; und Wobei der genannte erste Baustein und der genannte zweite Baustein nach dem Empfang des genannten Rücksetzsignals einen vorbestimmten Rücksetzprozess ausführen.
  2. Verfahren nach Anspruch 1, wobei das genannte Speichern vor einem vorbestimmten Zeitraum vor dem genannten Taktzyklus erfolgt, während dem das genannte Abtasten erfolgt.
  3. Verfahren nach Anspruch 2, wobei der genannte vorbestimmte Zeitraum einen Setup- und Haltezeitraum für einen Datenspeicher des genannten zweiten Bausteins erfüllt.
  4. Verfahren nach Anspruch 1, wobei der genannte vorbestimmte Rücksetzprozess folgendes umfasst: das Identifizieren einer ersten vorbestimmten Taktflanke als ein erster ungerader Taktzyklus; das Identifizieren einer folgenden Taktflanke als ein erster gerader Taktzyklus; und das Einleiten des genannten Daten-Strobes an einer Taktflanke eines vorher spezifizierten geraden Taktzyklus, wobei der genannte erste Taktzyklus nach der Einleitung des genannten Daten-Strobes auftritt.
  5. Verfahren nach Anspruch 1, wobei die übermittelten und gespeicherten Daten n-Bit-Pakete von Daten umfassen, und wobei der genannte empfangende Baustein ferner empfangene Daten als m-Bit-Datenpakete formatiert und die genannten m-Bit-Pakete an einen dritten Baustein überträgt.
  6. Verfahren nach Anspruch 5, wobei m größer ist als n.
  7. Verfahren nach Anspruch 1, wobei die genannten übermittelten Daten n-Bit-Datenpakete umfassen, wobei der genannte erste Baustein ferner m-Bit-Datenpakete auf einem Bus empfängt und die genannten m-Bit-Pakete vor dem Senden als n-Bit-Pakete formatiert.
  8. Verfahren nach Anspruch 1, wobei das Verfahren ferner das Weiterleiten der genannten gespeicherten Daten von dem genannten zweiten Baustein über ein Übertragungsmedium an einen dritten Baustein umfasst.
  9. Verfahren nach Anspruch 1, wobei das Verfahren ferner folgendes umfasst: das Abtasten der genannten Daten an dem genannten zweiten Baustein für den Empfange eines Datenpakets eine vorbestimmte Anzahl von Taktzyklen nach dem genannten ersten Taktzyklus; das Übertragen des genannten Datenpakets von dem genannten zweiten Baustein über einen zweiten Bus; und das Empfangen des genannten Pakets über den genannten zweiten Bus an einem dritten Baustein.
  10. Verfahren nach Anspruch 1, wobei der genannte erste Baustein und der genannte zweite Baustein synchron zueinander arbeiten.
  11. Verfahren nach Anspruch 10, wobei der genannte zweite Bus eine Datenbreite umfasst, die sich von der Datenbreite des genannten ersten Busses unterscheidet.
  12. Verfahren nach Anspruch 11, wobei das Verfahren ferner das selektive Übersetzen der genannten Daten in ein kompatibles Format zur Übertragung von der genannten Busbrücke auf den genannten ersten Bus oder den genannten zweiten Bus umfasst.
  13. Verfahren nach Anspruch 12, wobei es sich bei dem genannten zweiten Baustein um eine Busbrücke handelt, die einen Buserweiterungsbaustein aufweist.
  14. Rechensystem, das folgendes umfasst: eine Steuereinheit (115), die mit einem ersten Bus (110) gekoppelt ist, wobei die genannte Steuereinheit so konfiguriert ist, dass sie mit einem mit dem ersten Bus gekoppelten ersten Baustein kommuniziert; gekennzeichnet durch: einen synchronen zweiten Hochgeschwindigkeitsbus (100), der zwischen die genannte Steuereinheit und einen Brückenbaustein (117, 120) gekoppelt ist, wobei die genannte Steuereinheit so konfiguriert ist, dass sie Daten und einen Daten-Strobe während einem ersten Taktzyklus sendet; wobei der genannte Brückenbaustein so konfiguriert ist, dass er die genannten Daten nach dem Empfang des genannten Daten-Strobes speichert und die genannten Daten eine vorbestimmte Anzahl von Taktzyklen nach dem genannten ersten Taktzyklus abtastet; wobei die genannte Steuereinheit ferner so konfiguriert ist, dass sie ein Rücksetzsignal an den genannten Brückenbaustein ausgibt und das genannte Rücksetzsignal als eine Eingabe nach einer Verzögerung empfängt, die einem Zeitraum zur Übermittlung des genannten Rücksetzsignals zwischen der genannten Steuereinheit und dem genannten Brückenbaustein entspricht, wobei die genannte Steuereinheit und der genannte Brückenbaustein das genannte Rücksetzsignal gleichzeitig empfangen; und wobei die genannte Steuereinheit und der genannte Brückenbaustein ferner so konfiguriert sind, dass sie nach dem Empfang des genannten Rücksetzsignals einen vorbestimmten Rücksetzprozess ausführen.
  15. Rechensystem nach Anspruch 14, wobei der genannte Brückenbaustein ferner mit einem dritten Bus gekoppelt ist, und wobei gespeicherte Daten an einen mit dem genannten dritten Bus gekoppelten zweiten Baustein übertragen werden.
  16. Rechensystem nach Anspruch 14, wobei sich eine Datenbreite eines dritten Busses von einer Datenbreite des genannten zweiten Busses unterscheidet, wobei der genannte Brückenbaustein ferner so konfiguriert ist, dass empfangene Daten selektiv in ein Format übersetzt werden, dass kompatibel ist zur Übertragung entweder auf dem genannten zweiten Bus oder dem genannten dritten Bus.
  17. Rechensystem nach Anspruch 14, wobei der genannte vorbestimmte Rücksetzprozess folgendes umfasst: das Identifizieren einer ersten vorbestimmten Taktflanke als ein erster ungerader Taktzyklus; das Identifizieren einer folgenden Taktflanke als ein erster gerader Taktzyklus; und das Einleiten des genannten Daten-Strobes an einer Taktflanke eines vorher spezifizierten geraden Taktzyklus; wobei der genannte erste Taktzyklus nach der Einleitung des genannten Daten-Strobes auftritt.
  18. Rechensystem nach Anspruch 14, wobei der genannte Brückenbaustein zu einem Zeitraum speichert, der vor einem vorbestimmten Zeitraum vor dem genannten Taktzyklus liegt, während dem das Abtasten des genannten Brückenbausteins erfolgt.
  19. Rechensystem nach Anspruch 18, wobei der genannte vorbestimmte Zeitraum einen Setup- und Haltezeitraum für einen Datenspeicher an dem genannten Brückenbaustein erfüllt.
  20. Rechensystem nach Anspruch 14, wobei es sich bei dem genannten ersten Baustein um einen Mikroprozessor handelt.
  21. Rechensystem nach Anspruch 14, wobei es sich bei dem genannten ersten Baustein um einen Speicher handelt.
  22. Rechensystem nach Anspruch 15, wobei es sich bei dem genannten zweiten Baustein um einen Speicher handelt.
  23. Rechensystem nach Anspruch 15, wobei es sich bei dem genannten zweiten Baustein um einen Mikroprozessor handelt.
  24. Busanordnung, die folgendes umfasst: eine erste Gruppe von Leitungen, die zwischen einen ersten Baustein (215) und einen zweiten Baustein (220) gekoppelt und zur Datenübermittlung konfiguriert sind; eine Taktleitung, die so konfiguriert ist, dass sie ein Taktsignal an den genannten ersten Baustein und den genannten zweiten Baustein bereitstellt; eine Strobe-Leitung, die so konfiguriert ist, dass sie gleichzeitig zu der genannten Datenübertragung zwischen dem genannten ersten Baustein und dem genannten zweiten Baustein ein Strobe-Signal bereitstellt, gekennzeichnet durch: eine mit dem genannten ersten Baustein und dem genannten zweiten Baustein gekoppelte Rücksetzleitung (221), wobei die genannte Rücksetzleitung so konfiguriert ist, dass sie ein Rücksetzsignal gleichzeitig an den genannten ersten Baustein und den genannten zweiten Baustein überträgt, wobei der genannte erste Baustein und der genannte zweite Baustein das genannte Rücksetzsignal verwenden, um das Abtasten der Daten zu synchronisieren, die gemäß dem genannten Strobe-Signal gespeichert werden, eine vorbestimmte Anzahl von Taktzyklen nach der Datenübertragung; und wobei die genannte Rücksetzleitung eine erste Rücksetzleitung (219) umfasst, die mit dem genannten ersten Baustein gekoppelt ist, und eine zweite Rücksetzleitung (221), die mit dem genannten zweiten Baustein gekoppelt ist, wobei das genannte Rücksetzsignal durch den genannten ersten Baustein auf die genannte erste Rücksetzleitung ausgegeben wird.
  25. Busanordnung nach Anspruch 24, wobei die genannte erste Rücksetzleitung und die genannte zweite Rücksetzleitung ungefähr die gleiche Länge aufweisen, wobei das genannte Rücksetzsignal ungefähr zum gleichen Zeitpunkt von dem genannten ersten Baustein und dem genannten zweiten Baustein empfangen wird.
  26. Busanordnung nach Anspruch 24, wobei das genannte Taktsignal durch den genannten ersten Baustein auf eine erste Taktleitung (217) ausgegeben wird, und wobei die genannte Taktleitung eine erste Taktleitung umfasst, die mit dem genannten ersten Baustein gekoppelt ist, und eine zweite Taktleitung (223), die mit dem genannten zweiten Baustein gekoppelt ist.
  27. Busanordnung nach Anspruch 26, wobei die genannte erste Taktleitung und die genannte zweite Taktleitung ungefähr die gleiche Länge aufweisen, wobei das genannte Taktsignal ungefähr gleichzeitig von dem genannten ersten Baustein und dem genannten zweiten Baustein empfangen wird.
  28. Busanordnung nach Anspruch 24, wobei diese ferner eine zweite Gruppe von Leitungen zur Übertragung von Adressinformationen umfasst.
DE69829987T 1997-09-22 1998-07-15 E/a bus mit schnellen 16-bit zerteilten transaktionen Expired - Lifetime DE69829987T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US934640 1997-09-22
US08/934,640 US6088370A (en) 1997-09-22 1997-09-22 Fast 16 bit, split transaction I/O bus
PCT/US1998/014682 WO1999015981A1 (en) 1997-09-22 1998-07-15 Fast 16-bit, split transaction i/o bus

Publications (2)

Publication Number Publication Date
DE69829987D1 DE69829987D1 (de) 2005-06-02
DE69829987T2 true DE69829987T2 (de) 2006-05-04

Family

ID=25465844

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69829987T Expired - Lifetime DE69829987T2 (de) 1997-09-22 1998-07-15 E/a bus mit schnellen 16-bit zerteilten transaktionen

Country Status (8)

Country Link
US (3) US6088370A (de)
EP (1) EP1019838B1 (de)
CN (1) CN1146804C (de)
AU (1) AU8488698A (de)
DE (1) DE69829987T2 (de)
HK (1) HK1026961A1 (de)
TW (1) TW501019B (de)
WO (1) WO1999015981A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6163819A (en) 1998-07-21 2000-12-19 Micron Technology, Inc. Sequential data transfer circuit
US20030110317A1 (en) * 1998-11-03 2003-06-12 Jasmin Ajanovic Method and apparatus for an improved interface between a memory control hub and an input/output control hub
US6732208B1 (en) * 1999-02-25 2004-05-04 Mips Technologies, Inc. Low latency system bus interface for multi-master processing environments
US6425024B1 (en) * 1999-05-18 2002-07-23 International Business Machines Corporation Buffer management for improved PCI-X or PCI bridge performance
US6381703B1 (en) * 1999-08-04 2002-04-30 Qualcomm Incorporated Guaranteeing clock slew correction in point-to-point protocol packet detection without data loss after baud rate detection in autobaud mode
US7039047B1 (en) 1999-11-03 2006-05-02 Intel Corporation Virtual wire signaling
US6829763B1 (en) * 2000-05-16 2004-12-07 Litton Systems, Inc. Partitioned executive structure for real-time programs
US6622218B2 (en) * 2000-06-10 2003-09-16 Hewlett-Packard Development Company, Lp. Cache coherence protocol engine and method for efficient processing of interleaved memory transactions in a multiprocessor system
US6622194B1 (en) 2000-08-28 2003-09-16 Intel Corporation Efficient use of multiple buses for a scalable and reliable high-bandwidth connection
US6973524B1 (en) * 2000-12-14 2005-12-06 Lsi Logic Corporation Interface for bus independent core
US6694397B2 (en) * 2001-03-30 2004-02-17 Intel Corporation Request queuing system for a PCI bridge
AU2002330668B2 (en) * 2001-06-29 2007-11-15 Nanomics Biosystems Pty, Ltd. Synthesis and use of organosilica particles
US6941408B2 (en) * 2002-09-30 2005-09-06 Lsi Logic Corporation Bus interface system with two separate data transfer interfaces
US7007122B2 (en) * 2002-11-27 2006-02-28 Lsi Logic Corporation Method for pre-emptive arbitration
US7018206B2 (en) * 2002-12-31 2006-03-28 John Heasley Rubber dam frames with improved retraction, stability, and safety characteristics
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
US7444448B2 (en) * 2005-08-03 2008-10-28 Via Technologies, Inc. Data bus mechanism for dynamic source synchronized sampling adjust
US7788420B2 (en) * 2005-09-22 2010-08-31 Lsi Corporation Address buffer mode switching for varying request sizes
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法
DE102008004819B4 (de) * 2008-01-17 2010-06-24 Texas Instruments Deutschland Gmbh Schaltung und Verfahren zur Detektion von Netzknotenalterung in Kommunikationsnetzen
JP2010033555A (ja) * 2008-06-30 2010-02-12 Olympus Corp コントロール・ユニット、分散処理システム及び分散処理方法
US10102030B2 (en) 2015-10-26 2018-10-16 International Business Machines Corporation Using 64-bit storage to queue incoming transaction server requests
CN108470013B (zh) * 2018-01-24 2020-04-21 中国科学院宁波材料技术与工程研究所 一种实现双mcu数据传输的spi通信方法

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764920A (en) * 1972-06-15 1973-10-09 Honeywell Inf Systems Apparatus for sampling an asynchronous signal by a synchronous signal
US4503499A (en) 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4941089A (en) 1986-12-12 1990-07-10 Datapoint Corporation Input/output network for computer system
US4922486A (en) 1988-03-31 1990-05-01 American Telephone And Telegraph Company User to network interface protocol for packet communications networks
WO1990000841A1 (en) * 1988-07-15 1990-01-25 Luminis Pty. Ltd. Access protection and priority control in distributed queueing
US5101347A (en) * 1988-11-16 1992-03-31 National Semiconductor Corporation System for reducing skew in the parallel transmission of multi-bit data slices
GB9012970D0 (en) * 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
US5210858A (en) * 1989-10-17 1993-05-11 Jensen Jan E B Clock division chip for computer system which interfaces a slower cache memory controller to be used with a faster processor
GB2251099B (en) * 1990-12-19 1994-08-03 Motorola Inc Bus system
US5367643A (en) 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5257258A (en) 1991-02-15 1993-10-26 International Business Machines Corporation "Least time to reach bound" service policy for buffer systems
US5491799A (en) * 1992-01-02 1996-02-13 Amdahl Corporation Communication interface for uniform communication among hardware and software units of a computer system
SE470002B (sv) * 1992-03-13 1993-10-18 Ellemtel Utvecklings Ab Förfarande för att förhindra att det på någon av ett antal kanaler på en gemensam överföringsledning sänds datapaket med högre intensitet än ett för kanalen förutbestämt värde samt anordning för utövande av sättet
US5404171A (en) * 1992-06-19 1995-04-04 Intel Corporation Method and apparatus for synchronizing digital packets of information to an arbitrary rate
US5471587A (en) * 1992-09-30 1995-11-28 Intel Corporation Fractional speed bus coupling
US5448708A (en) * 1992-10-30 1995-09-05 Ward; James P. System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
US5467464A (en) * 1993-03-09 1995-11-14 Apple Computer, Inc. Adaptive clock skew and duty cycle compensation for a serial data bus
US5574862A (en) * 1993-04-14 1996-11-12 Radius Inc. Multiprocessing system with distributed input/output management
US5657457A (en) * 1994-01-31 1997-08-12 Dell Usa, L.P. Method and apparatus for eliminating bus contention among multiple drivers without performance degradation
US5784579A (en) * 1994-03-01 1998-07-21 Intel Corporation Method and apparatus for dynamically controlling bus access from a bus agent based on bus pipeline depth
US5548733A (en) * 1994-03-01 1996-08-20 Intel Corporation Method and apparatus for dynamically controlling the current maximum depth of a pipe lined computer bus system
US5659718A (en) * 1994-08-19 1997-08-19 Xlnt Designs, Inc. Synchronous bus and bus interface device
US5671441A (en) * 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
US5541919A (en) 1994-12-19 1996-07-30 Motorola, Inc. Multimedia multiplexing device and method using dynamic packet segmentation
US5625779A (en) * 1994-12-30 1997-04-29 Intel Corporation Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US5771356A (en) * 1995-01-04 1998-06-23 Cirrus Logic, Inc. Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds
US5802278A (en) 1995-05-10 1998-09-01 3Com Corporation Bridge/router architecture for high performance scalable networking
US5715438A (en) * 1995-07-19 1998-02-03 International Business Machines Corporation System and method for providing time base adjustment
US5894567A (en) * 1995-09-29 1999-04-13 Intel Corporation Mechanism for enabling multi-bit counter values to reliably cross between clocking domains
US5786545A (en) 1995-10-11 1998-07-28 The United States Of America As Represented By The Secretary Of The Navy Unmanned undersea vehicle with keel-mounted payload deployment system
US5768550A (en) * 1995-11-21 1998-06-16 International Business Machines Corporation Bus interface logic system
US5751969A (en) * 1995-12-04 1998-05-12 Motorola, Inc. Apparatus and methods for predicting and managing congestion in a network
KR0157924B1 (ko) * 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
US5905766A (en) * 1996-03-29 1999-05-18 Fore Systems, Inc. Synchronizer, method and system for transferring data
US5764961A (en) 1996-04-03 1998-06-09 Ncr Corporation Predictable diverse data delivery enablement method and apparatus for ATM based computer system
US5758166A (en) * 1996-05-20 1998-05-26 Intel Corporation Method and apparatus for selectively receiving write data within a write buffer of a host bridge
US5768545A (en) * 1996-06-11 1998-06-16 Intel Corporation Collect all transfers buffering mechanism utilizing passive release for a multiple bus environment
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5862338A (en) 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
US6044474A (en) * 1997-04-08 2000-03-28 Klein; Dean A. Memory controller with buffered CAS/RAS external synchronization capability for reducing the effects of clock-to-signal skew
JP3420018B2 (ja) * 1997-04-25 2003-06-23 株式会社東芝 データレシーバ
US6347351B1 (en) * 1999-11-03 2002-02-12 Intel Corporation Method and apparatus for supporting multi-clock propagation in a computer system having a point to point half duplex interconnect

Also Published As

Publication number Publication date
CN1279790A (zh) 2001-01-10
EP1019838A4 (de) 2002-01-23
AU8488698A (en) 1999-04-12
DE69829987D1 (de) 2005-06-02
WO1999015981A1 (en) 1999-04-01
US6088370A (en) 2000-07-11
EP1019838B1 (de) 2005-04-27
HK1026961A1 (en) 2000-12-29
US6266778B1 (en) 2001-07-24
US7016989B1 (en) 2006-03-21
EP1019838A1 (de) 2000-07-19
CN1146804C (zh) 2004-04-21
TW501019B (en) 2002-09-01

Similar Documents

Publication Publication Date Title
DE69829987T2 (de) E/a bus mit schnellen 16-bit zerteilten transaktionen
DE69828980T2 (de) System und verfahren zur flusskontrolle für ein hochgeschwindigkeitsbus
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
US5392422A (en) Source synchronized metastable free bus
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE68925763T2 (de) Verbindungs- und Zugriffsarbitrierungsanordnung für Multiprozessorsystem
DE3751514T2 (de) Adressieranordnung für RAM-Puffer-Steuereinrichtung.
DE68923834T2 (de) Leistungsfähiges Protokoll für die Übertragung zwischen asynchronen Vorrichtungen.
DE69935065T2 (de) Datenübertragungssteuerinrichtung und elektronisches gerät
DE3750680T2 (de) Multiprozessor-Busprotokoll.
DE10212642A1 (de) Speichersteuerung mit 1X/MX-Lesefähigkeit
DE3878908T2 (de) Hochgeschwindigkeitsbusschnittstelle mit einer niedrigen pinanzahl.
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
EP2030116A1 (de) Kommunikationsbaustein
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE4307449A1 (de)
WO2007039620A1 (de) Teilnehmerschnittstelle zwischen einem flexray-kommunikationsbaustein und einem flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
DE69124043T2 (de) Arbeitsplatzrechner mit Schnittstellenmitteln zur Datenübertragung zwischen zwei Bussen
DE19900251B4 (de) Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals
DE60303119T2 (de) Echtzeitdatenströmung von antworten auf lesezugriffe in einer verbindung zwischen zwei datenknoten
DE68920443T2 (de) Systembus mit multiplexbetriebenen steuer-kennzeichnungsinformationen und daten.

Legal Events

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

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806