DE10057794A1 - Verfahren für Datentransaktionen zwischen Steuerchipsätzen - Google Patents
Verfahren für Datentransaktionen zwischen SteuerchipsätzenInfo
- Publication number
- DE10057794A1 DE10057794A1 DE10057794A DE10057794A DE10057794A1 DE 10057794 A1 DE10057794 A1 DE 10057794A1 DE 10057794 A DE10057794 A DE 10057794A DE 10057794 A DE10057794 A DE 10057794A DE 10057794 A1 DE10057794 A1 DE 10057794A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- read
- write
- signal line
- queue
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Ein Datenübertragungs-Verfahren zwischen Steuerchips. Datenpuffer der Steurchips des Steuerchipsatzes weisen feste Größe und Menge auf. Zusätzlich werden Lese/Schreib-Betätigungsbefehle in folge gemäß den Lese/Schreibbefehlen erklärt, durch die die Steuerchips den Zustand des Puffers innerhalb anderer Steuerchips ermitteln können. Wenn die Steuerchip einen Befehl erklärt, müssen die entsprechenden Daten vorher bereit sein. Folglich kann die Signalleitung zum Liefern des Wartezustands, Datenübertragungstakte und das Stop/Neuversuch-Protokoll weggelassen werden. Entspechend können Befehle oder Daten andauernd ohne Warten, Stop/Neuversuche übertragen werden, wobei die Leistung gesteigert ist.
Description
Diese Anmeldung beansprucht die Priorität der am 15. Dezember eingereichten Taiwanesischen
Anmeldung mit der Seriennummer 88121972.
Die vorliegende Erfindung betrifft ein Verfahren für Busvorgänge, und betrifft insbesondere ein
Verfahren für Datentransaktionen zwischen den Steuerchipsätzen in einem Computersystem und
ein Verfahren zur Arbitration bzw. Zugriffsregelung zwischen den Steuerchipsätzen.
Fig. 1 zeigt ein PCI-Bussystem, das verschiedene Komponenten eines herkömmlichen
Computersystems verbindet. Wie in Fig. 1 gezeigt, ist eine Zentraleinheit 10 mit dem PCI-Bus 14
über eine Hostbrücke 12 verbunden. Das Leitsteuergerät von PCI-kompatiblen Peripheriegeräten,
wie ein Graphikadapter 16a, eine Expansionsbusbrücke 16b, einen LAN-Adapter 16c und einen
SCSI-Hostbus-Adapter 16d, ist ebenfalls mit dem PCI-Bus 14 verbunden. Jedes Leitsteuergerät
sendet ein Anforderungssignal (RST), das die Verwendung des PCI-Busses 14 fordert, aus. Die
Hostbrücke 12 dient als Arbitrator, der Bewilligungssignale GNT zu dem Steuergerät sendet,
wenn der PCI-Bus 14 verfügbar ist.
Datenübertragungen zwischen PCI-kompatiblen Vorrichtungen (so wie die Leitsteuergeräte oder
die obere Brücke) werden durch wenige Schnittstellen-Steuerungssignale gesteuert. Ein
Taktrahmen (FRAME) wird von einem Initiator (das Leitsteuergerät oder die obere Brücke)
erklärt, und zeigt den Beginn einer Datenzugriffsoperation und dessen Dauer an. Sobald das
FRAME-Signal abgeschickt ist, beginnt die Datentransaktion über den PCI-Bus. Ein tiefes
FRAME-Signal zeigt an, dass eine Übertragung stattfindet. Nach dem Beginn der
Datentransaktion verschickt der Adressbus AD während des Adresstaktes eine gültige Adresse.
in der Zwischenzeit senden die Befehl/Byte-einschalt-(CBE[3:0]) Signalleitungen einen (gemäß
der PCI-Spezifikation) gültigen Busbefehl ab, um die Zielvorrichtung über den von dem Initiator
verlangten Datentransaktionsmodus zu informieren. Im Allgemeinen codieren die vier Bits der
Befehl/Byte-Signalleitungen bis zu maximal 16 verschiedene Befehle, und jeder Befehl ist im
Detail in der PCI-Spezifikation definiert. Nachdem die gültige Adresse ausgesendet wurde,
beginnt ein Datentakt, in dem Daten durch den Adressbus AD übertragen werden. In der
Zwischenzeit werden Byte/Einschaltsignale versendet, so dass Daten übertragen werden können.
Wenn die Übertragung des FRAME-Signals aufhört, ist der letzte Satz Daten übertragen, und es
gibt keinen Vorgang mehr. Ein "Initiator bereit"- (IRDY) Signal und ein "Ziel bereit"- (TRDY)
Signal werden paarweise durch das System verwendet, um die Bereitschaft der beginnenden
Vorrichtung und der Zielvorrichtung in der Datentransaktion anzuzeigen. In einer Datenlese
operation zeigt das IRDY-Signal an, dass der Initiator bereit ist, die verlangten Daten zu
empfangen. In einer Datenschreiboperation zeigt das TRDY-Signal an, dass die Zielvorrichtung
bereit ist, die verlangten Daten zu empfangen. Ein Stopp- (STOP) Signal wird durch die
Zielvorrichtung verwendet, um ein Beenden der Datentransaktion von dem Initiator zu fordern.
Fig. 2 ist ein Zeitdiagramm, das die verschiedenen Signale in der PCI-Busschnittstelle während
einer Leseoperation zeigt. Der Zeitabschnitt, in dem Daten über den PCI-Bus übertragen werden,
ist als ein Busvorgangstakt 20 bekannt. Der Busvorgangstakt 20 umfasst einen Adresstakt 22 und
verschiedene Datentakte, beispielsweise 24a, 24b und 24c. Jeder Datentakt 24a/b/c kann weiter
in einen Wartetakt 26a/b/c und in einen Datenübertragungstakt 28a/b/c unterteilt werden. Das
folgende ist eine kurze Beschreibung der PCI-Busschnittstelle während einer Leseoperation, um
die PCI-Spezifikationgemäßen Steuersignale zu verdeutlichen.
Bei Takt T1, versendet ein Initiator (Leiter) ein Anforderungssignal REQ, um auf den PCI-Bus
zuzugreifen. Zu dieser Zeit, falls keine andere Vorrichtung mit hoher Priorität einen Zugriff auf
den PCI-Bus anfordert, wird während des Taktes T2 die Hauptbrücke (Arbitrator) ein
Bewilligungssignal GNT senden, um dem Initiator den Buszugriff zu gewähren. Während des
Taktes T3 wird durch den Initiator ein FRAME-Signal gesendet, um den Beginn einer
Datentransaktion anzuzeigen, während eine Startadresse auf die Adressbus- AD Leitungen
gesetzt wird, um die Zielvorrichtung des Vorgangs zu ermitteln. In der Zwischenzeit wird ein
Lesebefehl durch die CBE-Leitungen übertragen. Nach der Zustellung des Lesebefehls wird ein
Byte/Einschaltsignal auf die CBE-Leitungen gesetzt. Die Byte/Einschaltsignale werden während
der Datentakte (umfassend 24a, 24b und 24c) gesendet. Während des Taktes T4, legt der
Initiator ein Initiator-bereit-Signal IRDY vor, um Bereitschaft zur Datenübertragung anzuzeigen.
Die Zielvorrichtung ist jedoch bislang noch nicht bereit. Daher fährt die Zielvorrichtung fort,
Daten vorzubereiten, während der Initiator in dem Wartetakt 26a des Datentaktes 24a leerläuft.
Während des Taktes T5 bereitet die Zielvorrichtung bereits alle notwendigen Daten zur
Übertragung vor, und sendet dabei das Ziel-bereit-Signal TRDY aus. Deshalb wird im Datentakt
28a sowohl IRDY als auch TRDY ausgegeben, und der Initiator beginnt Daten von der
Zielvorrichtung zu lesen. Während des Datentaktes T6, gibt die Zielvorrichtung nicht mehr das
Ziel-bereit-Signal TRDY aus, und die Übertragung des ersten Datensatzes ist erledigt. In der
Zwischenzeit wird ein anderer Datensatz durch die Zielvorrichtung vorbereitet. Wieder läuft der
Initiator in einem Wartetakt 26b des Datentaktes 24b leer. Während des Taktes T7 wird das Ziel
bereit-Signal TRDY erneut ausgegeben, um anzuzeigen, dass der zweite Datensatz bereit ist. In
Takt 28b werden sowohl das IRDY als auch das TRDY ausgegeben und der Initiator beginnt
Daten von der Zielvorrichtung zu lesen. Falls der Initiator nicht ausreichend Zeit hat, alle Daten
der Zeilvorrichtung zu lesen, endet das IRDY-Signal. Wenn das TRDY-Signal weiter
ausgegeben wird, wird der Wartetakt 26c durch den Initiator aktiviert. Sobald der Initiator
wieder, wie in Takt T9, bereit ist, wird das IRDY-Signal wieder ausgegeben. Während des
Datentaktes 28c liest der Initiator Daten von der Zielvorrichtung, wenn sowohl das IRDY- als
auch das TRDY-Signal ausgegeben werden, und dadurch eine einzelne Leseoperation erledigt
wird.
Um ordentliche Datentransaktionen gemäß der herkömmlichen PCI-Spezifikation auszuführen,
müssen komplizierte Steuersignale, Wartezustände und Arbitrationsschritte verwendet werden.
Gewöhnlich werden gemäß der PCI-Spezifikation etwa 45 bis 50 Signalstifte benötigt. Im
Allgemeinen ist ein kompliziertes Verfahren für interne Vorgänge zwischen Steuerchipsätzen
nicht notwendig. Folglich wird ein vereinfachtes Transaktionsverfahren, das sich an die
herkömmliche PCI-Spezifikation hält, benötigt, um die internen Vorgänge zwischen
Steuerchipsätzen zu beschleunigen.
Jedoch, verwenden im Allgemeinen die Vorgänge zwischen den Steuerchips eines PCs nicht alle
der komplizierten Funktionen, die durch die PCI-Spezifikation bereitgestellt werden. Die
Leistung zwischen den Steuerchips wird gewöhnlich durch unnötige Vorgänge herabgesetzt. Mit
der zunehmenden Integration der Vorrichtungen können die Steuerchips auf einem einzelnen
Chip integriert und mehrere Funktionen bereitgestellt werden. Beispielsweise werden die CPU,
die obere und die untere Brücke integral auf einem einzelnen Chip geformt. Dadurch werden die
einzelnen Stifte der Chippackung wichtiger. Um die Geschwindigkeit der Vorgänge zwischen
den Steuerchips zu steigern, wird eine vereinfachte und besondere Spezifikation zur Verwendung
zwischen den Steuerchips benötigt.
Die vorliegende Erfindung liefert ein Stererchchip-Datentransaktionsverfahren zwischen
Steuerchips innerhalb des Steuerchipsatzes und ein Busarbitrationsverfahren zwischen den
Steuerchips innerhalb des Steuerchipsatzes. Daher steigt die Leistung des Steuerchipsatzes und
die Art und Anzahl der Signalleitungen zwischen den Steuerchips wird reduziert.
Die vorliegende Erfindung liefert ein Datentransaktionsverfahren zwischen Steuerchips. Die
Daten oder Befehle werden ohne irgendein Warten, Stoppen, oder Neuversuch fortwährend
übertragen.
Die vorliegende Erfindung liefert ein Datentransaktionsverfahren zwischen Steuerchips innerhalb
eines Steuerchipsatzes, wobei die Warte-, Stopp- und Neuversuchs-Takte verringert werden.
Die vorliegende Erfindung liefert ein Busarbitratiosverfahren zwischen den Steuerchips das die
Arbitrations- und Bewilligungszeit verringert.
Erfindungsgemäß weisen Datenpuffer der Steuerchips des Chipsatzes feste Größe und Betrag
auf. Zusätzlich werden Lese/Schreib-Bestätigungsbefehle in Folge mit Lese/Schreib-Befehlen
erklärt, durch die die Steuerchips den Zustand der Puffer innerhalb anderer Steuerchips
feststellen können. Wenn ein Steuerchip ein Befehl erklärt, müssen die entsprechenden Daten
vorher vorbereitet werden. Deshalb kann die Signalleitung zum Bereitstellen des Wartezustands,
des Datentransaktionstaktes und des Stop/Neuversuchs-Protokolls weggelassen werden. Folglich
können Befehle oder Daten andauernd ohne Warten, Stop oder Neuversuch übertragen werden,
und die Leistung ist verbessert.
Es ist klar, dass sowohl die vorstehende allgemeine Beschreibung als auch die nachstehende
detaillierte Beschreibung beispielhaft sind und ist dazu beabsichtigt eine weitere Erläuterung der
beanspruchten Erfindung zu liefern.
Die begleitenden Zeichnungen wurden Aufgenommen, um ein weiters Verstehen der Erfindung
zu liefern und sind in einen Teil dieser Spezifikation aufgenommen und bilden einen Teil dieser
Spezifikation. Die Zeichnungen stellen Ausführungsformen der Erfindung dar dienen zusammen
mit der Beschreibung dazu die Grundsätze der Erfindung zu erläutern. In den Zeichnungen,
ist Fig. 1 ein Blockdiagramm, das ein PCI-Bussystem zeigt, dass verschiedene Bausteine eines
herkömmlichen Computersystems verbindet;
ist Fig. 2 ein Zeitverlaufsdiagramm, dass die verschiedenen Signale in der PCI-Busschnittstelle
während einer Leseoperation zeigt;
ist Fig. 3 ein Blockdiagramm, das die Steuersignale zeigt, die gemäß der Ausführungsform dieser
Erfindung in einem Datentransaktion zwischen Steuerchipsätzen innerhalb eines Steuerchipsatz-
Moduls verwendet werden;
ist Fig. 4 ein Zeitverlaufsdiagramm, dass einen erfindungsgemäßen Taktzyklus der 4 Bitzeiten
zur Befehlscodierung enthält zeigt;
stellt Fig. 5A schematisch ein Blockdiagramm eines Steuerchipsatzes gemäß einer bevorzugten
Ausführungsform für erfindungsgemäße Schreiboperationen dar;
zeigt Fig. 5B ein Beispiel eines Zeitverlaufsdiagramms eines erfindungsgemäßen
Schreibvorgangs;
stellt Fig. 6A ein Blockdiagramm eines Steuerchipsatzes gemäß einer bevorzugten
Ausführungsform für erfindungsgemäße Lesevorgänge dar; und
zeigt Fig. 6B ein Beispiel eines Zeitverlaufsdiagramms eines erfindungsgemäßen Lesevorgangs.
Die vorliegende Erfindung liefert ein Transaktionsverfahren und ein Arbitrationsverfahren
zwischen Steuerchipsätzen oder zwischen Chipsätzen innerhalb eine Steuerchipsatzes, die die
Datentransaktionseffizienz zwischen den Steuerchips steigern kann. Der Busvorgangsprozess
wird nämlich zwischen Steuerchipsätzen vereinfacht. Die Steuerchipsätze, beispielsweise eine
obere Brücke und eine untere Brücke innerhalb eines Computersystems, werden als Beispiel zum
Beschreiben der bevorzugten erfindungsgemäßen Ausführungsform verwendet. Wie in der
herkömmlichen PCI-Spezifikation definiert, werden 45 Signalleitungen zum Kommunizieren
zwischen der oberen Brücke und der unteren Brücke benötigt. Es werden in der bevorzugten
Ausführungsform der vorliegenden Erfindung jedoch nur 16 Signale, das heißt 16
Signalleitungen, benötigt. Die neu definierten 16 Befehle der vorliegenden Erfindung werden
VLINK-Befehle genannt.
Unter Bezugnahme auf Fig. 3 und Tabelle 1. Zeigt Fig. 3 schematisch ein Blockdiagramm eines
Steuerchipsatzes gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung, in dem
Steuersignalleitungen zwischen einer oberen Brücke und einer unteren Brücke im Detail
dargestellt sind. In Tabelle 1 wird jede der in Fig. 3 gezeigten Steuersignalleitungen aufgelistet.
Der Steuerchipsatz umfasst beispielsweise die unter Brücke 30 und die obere Brücke 32. In der
vorliegenden Erfindung sind die Signalleitungen (Signale) zwischen der unteren Brücke 30 und
der oberen Brücke 32, von 45 Signalleitungen (Signalen) auf 16 Signalleitungen (Signalen)
verringert. Deshalb können andere Stifte für andere Aufgaben verwendet werden, um die
Funktionen des Chipsatzes zu unterstützen.
In der vorliegenden Erfindung umfassen die 16 Signale: Taktsignal (CLK), AD [7:0], DNSTB,
UPSTB, DNCMD, BE, VREF, und COMP. Wie in Fig. 3 und Tabelle 1 gezeigt, bleibt der durch
die ursprüngliche PCI-Spezifikation definierte Daten- und Adressbus (AD-Bus) erhalten wird
aber auf 8 Zweiweg-Signalleitungen reduziert. CBE-, FRAME-, IRDY-, TRDY-, STOP-,
DEVSEL-, REQ- und GNT-Signalleitungen werden vereinfacht zu einer Zweiweg-Byte
einschalt-Signalleitung (BE), einer Aufwärtsstrecken-Befehlssignalleitung UPCMD, und einer
Aufwärtsstrecken-Strobesignalleitung UPSTB, die beide von der unteren Brücke getrieben
werden, und einer Abwärtsstrecken-Befehlssignalleitung DNCMD und einer Abwärtsstrecken-
Strobesignalleitung DNSTB, die beide von der oberen Brücke getrieben werden. Das
VREF-Signal bezieht sich auf eine Referenzspannung und das COMP-Signal bezieht sich auf
einen Impedanzvergleich. Das CLK-Signal ist ein 66 MHz Taktsignal, das weder von der oberen
Brücke noch von der unteren Brücke gestartet wird. Sowohl die obere Brücke 32 als auch die
untere Brücke 30 treiben jeweils eine unabhängige Befehlssignalleitung DNCMD und UPCMD
die beide Busbefehle erklären können. Zusätzlich, falls ein Busbefehl erklärt ist, und die
Busberechtigung durch irgendeinen Steuerchip erlangt ist, kann der Steuerchip Adressen auf dem
AD-Bus senden und Datenlängen entsprechend des aktuellen Befehls auf der BE-Signalleitung
senden oder Daten auf dem AD-Bus und ein Byte-einschalt-Signal um die Daten auf der BE-
Signalleitung senden.
Fig. 4 stellt den Zeitlichen Zusammenhang zwischen einem Taktsignal (CLK), einem
Strobesignal (STB) und Bitzeiten der Datenleitungen zur erfindungsgemäßen Datenübertragung
dar. Wie in Fig. 4 gezeigt, ist eine Taktperiode gleich zwei Strobetaktperioden. Die Frequenz des
Aufwärtsstrobesignals/Abwärtsstrobesignals hat nämlich die doppelte Frequenz des
Bustaktsignals. Es gibt 4 Bitzeiten 0~3, die durch die steigenden und fallenden Flanken des
Strobesignals definiert sind. Folglich werden 4 Datenbit durch die Verwendung der vier Bitzeiten
0~3 auf jeder Datenleitung erhalten und Busbefehle werden durch die vier Bitzeiten 0~3 codiert.
Entsprechend werden durch die Verwendung der 8 Datenleitungen während jeder Taktperiode 32
Bit Daten erhalten, was gleich den Daten ist, die durch die Verwendung von 32 Datenleitungen
in der herkömmlichen PCI-Spezifikation übertragen werden. Zusätzlich wird, falls die BE-
Signalleitung eine Datenlänge überträgt, 1~16 (4 Bit) Datenlängeninformation innerhalb einer
Taktperiode erhalten. Verschiedene Arten von Datentransaktionen werden durch den
Aufwärtsbefehl UPCMD und den Abwärtsbefehl DNCMD definiert. Der von der unteren Brücke
getriebene Aufwärtsbefehl UPCMD umfasst einen Lesebestätigungs-Befehl (NB nach SB)
C2PRA, einen Schreibbestätigungs-Befehl (NB nach SB) C2PWA, einen Lesebefehl P2CR (SB
nach NB) und einen Schreibbefehl (SB nach NB) P2CW usw. Die Verhältnisse zwischen
Aufwärtsbefehlen und den Bitzeiten sind in Tabelle 2 aufgelistet. Das Anforderungssignal REQ
wird zu der Bitzeit 0 erklärt und nicht von den anderen Busbefehlen überlappt. Deshalb kann das
REQ-Signal zu jeder Zeit gesendet werden, sogar während der gleichen Taktperiode, während
eine Busanforderung erklärt wird. Der durch die obere Brücke getriebene Abwärtsstrecken-
Befehl DNCMD umfasst einen Eingabe/Ausgabe-Lesebefehl (NB nach SB) C2PIOR, einen
Speicher-Lesebefehl (NB nach SB) C2PMR, einen Eingabe/Ausgabe-Schreibbefehl (NR nach
SB) C2PIOW, einen Speicher-Schreibbefehl (NB nach SB) C2PMW, einen Lesebestätigungs-
Befehl (SB nach NB) P2CRA und einen Schreibbestätigungs-Befehl (SB nach NB) P2CWA usw.
Die Verhältnisse zwischen den Abwärtsstrecken-Befehlen und der Bitzeitcodierung sind in
Tabelle 3 aufgelistet. Es wird kein Bewilligungssignal GNT in der vorliegenden Erfindung
definiert oder erfordert.
Die durch die obere Brücke und die untere Brücke erklärten Signale entsprechen einander. Wenn
die untere Brücke nacheinander eine Anzahl P2CR und/oder P2CW erklärt, muss die obere
Brücke die entsprechenden P2CRA- und/oder P2CWA-Befehle als Antwort zu den P2CR
und/oder P2CW Befehlen erklären. Gleichfalls muss, wenn die obere Brücke nacheinander eine
Anzahl von C2PIOR-, C2PMR-, C2PIOW- und C2 PMW-Befehlen erklärt, muss die untere
Brücke nacheinander die entsprechenden C2PRA- und C2PWA-Befehle als Antwort zu den
P2CR- und/oder P2CW-Befehlen erklären. Zusätzlich, wie in der bevorzugten Ausführungsform
beschrieben, müssen die jedem, durch den Steuerchip erklärten, Befehl entsprechenden Daten
durch die obere Brücke/untere Brücke vorher vorbereitet werden. Zum Beispiel müssen in den
Speicher geschriebene Daten bereit sein, bevor die obere Brücke einen P2CW-Befehl erklärt, und
Daten zum Übertragen der Lesedaten von dem Speicher zu der unteren Brücke müssen bereit
sein, bevor die obere Brücke ein P2CRA-Befehl erklärt. Entsprechend gibt es kein Unterbrechen
der Datenübertragung und es existiert kein Wartezustand.
Fig. 5A stellt schematisch ein Blockdiagramm eines Steuerchipsatzes für Schreibvorgänge
gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung dar. Der Steuerchipsatz
umfasst beispielsweise einen ersten Steuerchip und einen zweiten Steuerchip. Allgemein kann
der erste und zweite Steuerchip die obere Brücke 500 und die untere Brücke 600 sein. Der erste
Steuerchip (obere Brücke) 500 und der zweite Steuerchip (untere Brücke) 600 sind durch einen
speziellen Bus, VLINK, miteinander verbunden. Die obere Brücke 500 umfasst einen Daten-
Sendeempfänger 510, eine Zielsteuerung 520 (beispielsweise eine Speichersteuerung), eine
Schreib-Datenwarteschlange 525 und eine Datentransaktions-Warteschlange 540. Die untere
Brücke 600 umfasst einen Daten-Sendeempfänger 610, ein Schreib-Puffer-Größenregister 535,
ein Schreib-Puffer-Zählregister 540, einen Schreibvorgangs-Erzeugungsmittel 545 eine
Schreibvorgangs-Aufzeichnungs-Warteschlangenschaltung 550 und einen Schreibkomperator
555.
Der Daten-Sendeempfänger 510 der die VLINK-Spezifikation der vorliegenden Erfindung erfüllt
ist direkt mit dem VLINK-Bus verbunden. Durch den VLINK-Bus kann der Daten-
Sendeempfänger 510 Daten empfangen und übertragen, um eine Anzahl von Schreibvorgängen
zu erledigen. Ein Schreibvorgang wird dadurch definiert, dass die untere Brücke 600 ein P2CW-
Befehl und dem P2CW-Befehl entsprechende Daten sendet und dann die obere Brücke 500 ein
P2CWA-Befehl zum beantworten des P2CW-Befehls erklärt. Die Schreib-Datenwarteschlange
530 speichert vorübergehend die entsprechende Datenlänge und Schreibadressen aller
Schreibvorgänge nacheinander. Die Tiefe der Schreib-Datenwarteschlange 530 bestimmt die
Gesamtanzahl der, der oberen Brücke 500 möglichen, Schreibvorgänge. Die Schreib-
Datenwarteschlange 525 speichert alle die Nachschreibdaten der untere Brücke 600. Die Tiefe
der Schreib-Datenwarteschlange bestimmt die Maximalanzahl der, der oberen Brücke 500
möglichen Schreibdaten. Nachdem die Zielsteuerung 520 Daten an das Ziel beispielsweise einem
externen Speicher sendet, werden Daten gemäß einer Schreibadresse und Datenlänge zuerst in
der Schreibvorgangs-Datenwarteschlange 530, und Daten in der Schreib-Datenwarteschlange
525 entsprechend zu der Schreibadresse und Datenlänge gespeichert. Der erste Daten-
Sendeempfänger 510 sendet ein Schreibbestätigungs-Signal (den P2CWA-Befehl), um die untere
Brücke 600 zu informieren, dass der Schreibvorgang erledigt ist, und alle Schreibdaten in der
Zielvorrichtung sind. Die entsprechenden, in der Schreib-Datenwarteschlange 525 gespeicherten
Daten werden dann freigegeben.
Das Schreib-Puffer-Zählregister 540 speichert die Maximalanzahl der Schreibvorgänge die, die
Schreibvorgangs-Warteschlange 530 der oberen Brücke 500 abwickeln kann, das heißt deren
Tiefe. Das Schreib-Puffer-Größenregister 535 speichert die Maximalanzahl der Schreibvorgänge
die, die Schreib-Datenwarteschlange 525 der oberen Brücke 500 abwickeln kann, das heißt deren
Tiefe. Beispielsweise ist das Schreib-Puffer-Zählregister 540 auf 4 und das Schreib-Puffer-
Größenregister 535 auf 16 gesetzt. Deshalb weiss die untere Brücke 600, dass die obere Brücke
500 bis zu 4 Schreibvorgänge akzeptieren kann und die Maximalanzahl der Daten in der
Schreibvorgangs-Warteschlange 16 DW (Datenworte) nicht überschreiten kann. Die zwei
Parameter, die Maximalanzahl der Schreibvorgänge und Daten kann durch eine BIOS (basic
input output system) Konfiguration während des Bootens angelegt werden.
Der mit dem VLINK-Bus verbundene Daten-Sendeempfänger 610, empfängt und überträgt
Daten durch den VLINK-Bus um alle Schreibvorgänge zu erledigen. Wenn der Daten-
Sendeempfänger 610 einen P2CWA-Befehl empfängt, sendet der Daten-Sendeempfänger 610 ein
Signal, dass eine erfolgreiche Schreib- und Pufferfreigabe an die Schreibvorgangs-
Aufzeichnungs-Warteschlangen-Schaltung 550 anzeigt, um den Raum freizugeben der die
Datenlänge entsprechend des momentanen Schreibvorgangs speichert. Wenn eine neue
Datenlänge, eine Schreibadresse und Daten des nächsten Schreibvorgangs durch das
Schreibvorgangs-Erzeugungsmittel 545 erzeugt werden, wird dann die neue Datenlänge zu der
Schreibvorgangs-Aufzeichnungs-Warteschlangen-Schaltung 550 gesendet.
Die Schreibvorgangs-Aufzeichnungs-Schaltung 550 ist in der Lage die in der Schreib-
Datenwarteschlange 525 mögliche Datenanzahl und die in der Schreibvorgangs-Warteschlange
530 mögliche Schreibvorgangsanzahl zu berechnen. Dieses ist so, da die Schreibvorgangs-
Aufzeichnungs-Schaltung 550 nacheinander die Datenlängen aller Schreibvorgänge speichert,
und der durch die obere Brücke 500 erklärte P2CWA in Übereinstimmung der Sequenz der durch
die untere Brücke 600 erklärten P2CW-Befehle beantwortet. Deshalb kann die untere Brücke 600
den Zustand der Puffer in den Warteschlangen in der oberen Brücke 500 erkennen.
Die Schreibvorgangsschaltung 550 kann die in der Schreib-Datenwarteschlange 525 mögliche
Datenanzahl und die in der Schreibvorgangs-Warteschlange 530 mögliche
Schreibvorgangsanzahl an den Schreibkomparator 555 senden. Der Schreibkomparator 555
vergleicht dann jeweils die empfangenen Daten mit der Maximalanzahl der in dem Schreib-
Puffer-Größenregister 535 Schreibdaten und der Maximalanzahl der in dem Schreib-Puffer-
Zählregister 540 gespeicherten Schreibvorgänge. Wenn die durch den Schreibkomparator 555
empfangen Daten weniger sind als die Daten- und Vorgangsmaximalanzahl, bestätigt der
Schreibkomparator 555 dem Daten-Sendeempfänger 610 eine weitere
Schreibvorgangsinformaiton zu schicken. Im anderen Fall kann die untere Brücke 600 keine
weiteren Schreibvorgänge zu der obere Brücke 500 schicken.
Fig. 5B zeigt ein Beispiel eines Zeitverlaufsdiagramm eines erfindungsgemäßen Schreib
vorgangs. Beispielsweise wird es vorausgesetzt, dass die untere Brücke 600 die Berechtigung
erhält, den Datenbus zu verwenden und einen ersten Schreibvorgang bei T1 startet. Die untere
Brücke 600 erklärt einen Schreibbefehl P2CW auf der Aufwärtsstrecken-Befehlsleitung
UPCMD, eine Schreibadresse ADDR auf dem Adress/Daten-(AD) Bus und eine Datenlänge
(beispielsweise) LEN = 2 aus, die auf die Byte-einschalt-(BE) Signalleitung geschrieben werden
soll. Bei dem Takt T2 sendet die untere Brücke 600 erste Daten auf den AD-Bus und einen BE-
Befehl der ersten Daten auf die BE-Signalleitung. Bei dem Takt T3 werden zweite Daten durch
die untere Brücke 600 gesendet. Zu der Zeit läuft immer noch ein unbeendeter Schreibvorgang in
der oberen Brücke 500. Die untere Brücke 600 ist in der Lage die Maximalanzahl der
Schreibvorgänge und die Maximalgröße der Schreib-Datenwarteschlange zu erkennen, die
gleichzeitig der oberen Brücke 500 möglich sind, deshalb bestimmt die untere Brücke 600 ob die
obere Brücke 500 neue Schreibvorgänge empfängt oder nicht. Falls noch leerer Raum in der
Schreibvorgangs-Warteschlange 530 und in der Schreib-Datenwarteschlange 525 ist, startet die
untere Brücke 600 einen zweiten Schreibvorgang bei Takt T4. Zu dieser Zeit befinden sich zwei
unbeendete Schreibvorgänge in der oberen Brücke 500. Bei Takt T9 bestimmt die untere Brücke
ob ein dritter Schreibvorgang gestartet werden kann oder nicht. Wenn die untere Brücke
feststellt, dass das Starten eines dritten Schreibvorgangs eine Kapazitätsüberschreitung der
Schreibvorgangs-Warteschlange 530 oder der Schreib-Datenwarteschlange 525 verursachen
würde, startet die untere Brücke dann bei Takt T9 den dritten Schreibvorgang nicht. Wenn die
obere Brücke 500 Daten entsprechend des ersten Schreibvorgangs in den Speicher schreibt,
erklärt die obere Brücke 500 bei Takt T9 ein Schreibbestätigungs-Signal durch die
Abwärtsstrecken-Signalleitung DNCMD um der unteren Brücke 600 zu Bestätigen, dass der
erste Schreibvorgang (der Länge LEN = 2) beendet ist. Dann kann die untere Brücke 600
feststellen, dass ein Raum der Schreibvorgangs-Warteschlange 530 und zwei Räume der Schreib-
Datenwarteschlange 525 der obere Brücke 500 freigegeben sind. Die untere Brücke 600 weiss
Nämlich; dass der erste Schreibvorgang beendet wurde nachdem die untere Brücke 600 den
Schreibbestätigungs-Befehl empfängt. Die Räume der Schreibvorgangs-Warteschlange 530 und
der Schreib-Datenwarteschlange 525 gemäß des ersten Schreibvorgangs werden freigegeben.
Dann bestimmt die untere Brücke 600, dass die obere Brücke 500 den dritten Schreibvorgang
bearbeiten kann. Und dann beginnt bei Takt T12 der dritte Schreibvorgang.
Fig. 6A zeigt schematisch ein Blockdiagramm eines Steuerchipsatzes für Schreibvorgänge
gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Der Steuerchipsatz
umfasst beispielsweise einen ersten Steuerchip und einen zweiten Steuerchip. Im Allgemeinen
können der erste und der zweite Steuerchip die obere Brücke 500 und die untere Brücke 600 sein.
Der erste Steuerchip (obere Brücke) 500 und der zweite Steuerchip (untere Brücke) 600 sind
durch einen speziell ausgelegten Bus VLINK verbunden. Die obere Brücke 500 umfasst einen
Daten-Sendeempfänger 510, eine Datensteuerung 520 (Beispielsweise eine Speichersteuerung),
Lese-Datenwarteschlange 625 und eine Lesevorgangs-Warteschlange 630. Die untere Brücke 600
umfasst einen Daten-Sendeempfänger 610, ein Puffer-Größenregister 635 ein Puffer-
Zählregister 640, einen Lesevorgang-Erzeugungsmittel 645, eine Lesevorgangs-Aufzeichnungs-
Schaltung 650 und einen Lesekomparator 655.
Der die VLINK-Spezifikationen der vorliegenden Erfindung erfüllende Daten-
Sendeempfänger 510 ist direkt mit dem VLINK-Bus verbunden. Durch den VLINK-Bus kann
der Daten-Sendeempfänger 510 Daten empfangen und übertragen, um Lesevorgänge zu
erledigen. Ein Lesevorgang wird dadurch bestimmt, dass die untere Brücke 600 ein P2CR-Befehl
sendet, und dann die obere Brücke 500 ein P2CRA-Befehl und entsprechende Daten zum
Beantworten des P2CR-Befehls sendet. Die Lesevorgangs-Warteschlange 630 speichert
vorübergehend Datenlängen und Datenadressen aller Lesevorgänge nacheinander. Die Tiefe der
Lesevorgangs-Warteschlange 630 bestimmt eine Gesamtzahl von Lesevorgängen die durch die
obere Brücke 500 möglich sind. Die Lese-Datenwarteschlange 625 speichert alle die Lesedaten
der Zielsteuerung 520, die später zu der unteren Brücke 600 gesendet werden. Die Tiefe der
Lese-Datenwarteschlange bestimmt die Maximalanzahl der Lesedaten die durch die obere
Brücke 500 möglich sind. Die Zielsteuerung 520 liest Daten von einem Ziel, beispielsweise
einem externen Speicher, gemäß einer Leseadresse und einer Datenlänge die zuerst in der
Lesevorgangs-Warteschlange 630 gespeichert sind. Der erste Daten-Sendeempfänger 510 sendet
ein Lese-Bestätigungssignal (den P2CRA-Befehl). Zur gleichen Zeit, werden entsprechende, in
der Lese-Datenwarteschlange 625 gespeicherte Daten durch den VLINK-Bus zu der unteren
Brücke 600 gesendet, und der freigegebene Raum kann andere Daten für den nächsten
Lesevorgang speichern.
Das Lese-Puffer-Zählregister 640 und der Lese-Puffer-Größenregister 635 der untere Brücke 600
speichern jeweils die Maximalanzahl der Lesevorgänge die die Lesevorgangs-Warteschlange 625
bearbeiten kann, und die Maximalanzahl von Daten, die die Lese-Datenwarteschlange 630
speichern kann. Beispielsweise ist die Maximalanzahl der Lesevorgänge die die Lesevorgangs-
Warteschlange 630 bearbeiten kann (die Lesepufferzahl) 4 und die Maximalanzahl der Daten die
die Lese-Datenwarteschlange 625 speichern kann (die Lesepuffergröße) ist 16 DW. Die zwei
Parameter, die Lesepuffergröße und die Lesepufferzahl kann während des Bootes durch BIOS-
(basic input output system) Konfiguration während angelegt oder während der Chipsatz
auslegung festgelegt werden.
Der Daten-Sendeempfänger 610 ist mit dem VLINK-Bus verbunden um Daten durch den
VLINK-Bus zu empfangen und zu versenden, um alle Lesevorgänge zu erledigen. Wenn der
Daten-Sendeempfänger 610 einen P2CRA-Befehl empfängt, sendet der Daten-Sendeempfänger
610 ein Signal das erfolgreiches Lesen und erfolgreiche Pufferfreigabe zur Lese-Aufzeichnungs-
Schaltung 650 zum Freigeben des Raumes anzeigt, der die Datenlänge des entsprechenden
momentanen Lesevorgangs speichert. Wenn eine neue Datenlänge und eine neue Leseadresse des
nächsten Lesevorgangs durch den Lesevorgangs-Erzeugungsmittel 645 erzeugt werden, wird die
neue Datenlänge dann zu der Lese-Aufzeichnungs-Schaltung 650 gesendet.
Die Lese-Aufzeichnung-Wartschlangen-Schaltung 650 ist in der Lage die in der Lese-
Datenwarteschlange 630 mögliche Datenanzahl und die in der Lesevorgangs-Warteschlange 625
mögliche Lesevorgangsanzahl zu berechnen. Dies erfolgt, da die Lesevorgangs-Aufzeichnungs-
Warteschlangen-Schaltung 650 nacheinander die Datenlängen aller Lesevorgänge speichert, und
der durch die obere Brücke 500 erklärte P2CRA gemäß der Sequenz, der durch die untere Brücke
600 erklärten P2CR-Befehle beantwortet wird. Deshalb kann die untere Brücke 600 den Zustand
der Puffer in den Warteschlangen in der obere Brücke 500 erkennen.
Die Lesevorgangs-Aufzeichnungs-Schaltung 650 kann die in der Lese-Datenwarteschlange 630
mögliche Datenanzahl und die in der Lesevorgangs-Warteschlange 625 mögliche
Lesevorgangsanzahl zu dem Lesekomparator 655 senden. Der Lesekomparator 655 vergleicht
dann jeweils die empfangenen Daten mit der Datenmaximalanzahl der Lese-Datenwarteschlange
625 die in dem Lesedaten-Puffer-Größenregister 635 gespeichert sind und der
Lesevorgangsmaximalanzahl der Lesevorgangs-Warteschlange 630, die in dem Lese-Puffer-
Zählregister 640 gespeichert sind. Wenn die durch den Lesekomparator 655 empfangenen Daten
weniger sind als die Datenmaximalanzahlen und die Lesevorgangsmaximalanzahlen, bestätigt
der Lesekomparator 655 dem Daten-Sendeempfänger 610, dass er eine weitere
Lesevorgangsinformation senden kann.
Fig. 6B zeigt ein Beispiel eines Zeitverlaufsdiagramm eines erfindungsgemäßen Lesevorgangs.
Beispielsweise wird es zuerst vorausgesetzt, dass die untere Brücke 600 die Berechtigung erhält,
den Datenbus zu verwenden und einen ersten Lesevorgang bei T1 startet. Die untere Brücke 600
erklärt einen Lesebefehl P2CR auf der Aufwärtsstrecken-Befehlsleitung UPCMD, eine
Schreibadresse ADDR auf dem Adress/Daten- (AD) Bus und sendet eine Datenlänge
(beispielsweise) LEN = 2, die auf die Byte/einschalt- (BE) Signalleitung gelesen werden soll. Zu
der Zeit läuft immer noch ein unbeendeter Schreibvorgang in der oberen Brücke 500. Die untere
Brücke 600 ist in der Lage die Anzahl der Lesevorgänge und die Größe der Datenwarteschlangen
zu erkennen, die der oberen Brücke möglich sind, und deshalb kann die untere Brücke
bestimmen, ob die obere Brücke neue Lesevorgänge empfangen kann oder nicht. Falls noch
leerer Raum in der Lesevorgangs-Warteschlange 630 und in der Lese-Datenwarteschlange 625
ist, kann die untere Brücke 600 einen zweiten Lesevorgang bei Takt T2 (beispielsweise LEN = 3)
starten. Zu dieser Zeit befinden sich zwei unbeendete Lesevorgänge in der oberen Brücke 500.
Bei Takt T3 stellt die untere Brücke fest, dass das Starten eines dritten Lesevorgangs eine
Kapazitätsüberschreitung der Lesevorgangs-Warteschlange 630 oder der Lese-
Datenwarteschlange 625 verursacht, und dann startet die untere Brücke bei Takt T3 den dritten
Vorgang nicht. Wenn die obere Brücke 500 die, dem ersten Lesevorgang einer Speichersteuerung
520 entsprechenden Daten bekommt, und dann die Daten in der Lese-Datenwarteschlange 625
speichert, erklärt die obere Brücke 500 ein Lese-Bestätigungsbefehl um Daten an die untere
Brücke 600 zu senden. Bei Takt T7 erhält die obere Brücke die Berechtigung den Bus zu
verwenden und schickt dann den Lese-Bestätigungsbefehl P2CRA auf der Abwärtsstrecken-
Befehlssignalleitung DNCMD und Daten des ersten Doppelwortes des ersten Lesevorgangs auf
den AD-Bus. Bei Takt T8 wird das zweite Doppelwort des ersten Lesevorgangs abgeschickt. Zu
dieser Zeit erkennt die untere Brücke 600, dass die Räume der Lesevorgangs-Warteschlange 630
und der Lese-Datenwarteschlange 625 entsprechend des ersten Lesevorgangs freigegeben
werden. Dann bestimmt die untere Brücke 600 ob ein dritter Lesevorgang gestartet werden kann
oder nicht. Die untere Brücke 600 muss die Berechtigung den VLINK-Bus zu verwenden vor
dem Starten des dritten Lesevorgangs erhalten. Deshalb erklärt die untere Brücke 600 zum
Zeitpunkt T10 ein Anforderungsbefehl REQ durch die Aufwärtsstrecken-Befehlssignalleitung
UPCMD, um die Berechtigung den VLINK-Bus zu verwenden anzufordern. Während der Takte
T9-T10-T11, sendet die obere Brücke 500 den Lese-Bestätigungsbefehl um die Daten des
zweiten Lesevorgangs zu der unteren Brücke 600 zu senden, und dann erhält die untere Brücke
600 die Berechtigung den Bus bei Takt T13 zu verwenden. Dann wird der dritte Lesevorgang
durch die untere Brücke 600 gestartet.
Die obere Brücke und die untere Brücke sind jeweils der erste Steuerchipsatz und der zweite
Steuerchipsatz, und die Befehle werden durch die untere Brücke verschickt, um die obere Brücke
zu steuern um Daten zu lesen, oder zu schreiben. (Es ist) jedoch, dem Fachmann (klar), dass
sowohl die obere als auch die untere Brücke entsprechende Strukturen aufweisen können, und
deshalb die Befehle nicht darauf beschränkt sind durch die untere Brücke oder die obere Brücke
versendet zu werden. Es können nämlich die untere und die obere Brücke jeweils der erste
Steuerchipsatz und der zweite Steuerchipsatz sein.
Die Beschreibung entsprechend den Fig. 5A, 5B und 6A, 6B sind lediglich Beispiele, die
nicht zur Beschränkung des Schutzumfangs der Erfindung verwendet werden. Die Merkmale der
vorliegenden Erfindung umfassen mindestens:
- 1. Wenn ein Schreib- oder Lesevorgang gestartet wird, wird zusätzlich zu den Adressen und Befehl, auch die Datenlänge entsprechend des Schreib- oder Lesevorgangs gesendet, und deshalb wird kein FRAME-Signal benötigt, um die Beendung des Datentransaktions mitzuteilen.
- 2. Wenn eine Anzahl auszuführender Schreib- oder Lesevorgänge vorhanden ist, wird eine Anzahl Schreib- oder Lesebestätigungs-Befehle entsprechend zu den Schreib- oder Lesevorgängen nacheinander geschickt und ausgetauscht und deshalb können die Chipsätze voneinander den Zustand der internen Warteschlangen der Chipsätze kennen.
- 3. Die Anwendung ist nicht auf die obere und untere Brücke eines PCs beschränkt, sondern kann für jeglichen Datentransaktion zwischen zwei Chips verwendet werden.
Es ist für den Fachmann erkennbar, dass verschiedene Modifikationen und Variationen an der
Struktur der Erfindung vorgenommen werden können, ohne den Schutzumfang oder das Wesen
der vorliegenden Erfindung zu verlassen. In Hinsicht auf das Vorstehende ist es beabsichtigt,
dass die vorliegende Erfindung Modifikationen und Variationen dieser Erfindung abdeckt,
vorausgesetzt, sie fallen unter den Schutzumfang der folgenden Ansprüche und ihrer
Äquivalente.
Claims (10)
1. Steuerchipsatz, umfassend:
einen Bus;
einen ersten Steuerchip, umfassend:
einen ersten Daten-Sendeempfänger, der zum Empfangen und Versenden von Datensignalen mit dem Bus verbunden ist, um Lese/Schreibvorgänge zu erledigen;
eine Lese/Schreib-Datenwarteschlange, die mit dem ersten Daten-Sendeempfänger verbunden ist, um Daten der Lese/Schreibvorgänge vorübergehend zu speichern;
eine Lese/Schreibvorgang-Datenwarteschlange, die mit dem ersten Daten-Sende empfänger verbunden ist, um Datenlängen und Datenadressen der Lese/Schreib vorgänge vorübergehend zu speichern;
eine Zielsteuerung, die mit der Lese-/Schreib-Datenwarteschlange und der Lese/Schreibvorgang-Datenwarteschlange verbunden ist, wobei die Zielsteuerung, gemäß den in der Lese/Schreibvorgang-Datenwarteschlange gespeicherten Lese- /Schreibadressen und gemäß den in der Lese/Schreib-Datenwarteschlange gespeicherten Daten entsprechend dem ersten gespeicherten Lese/Schreibvorgang Daten zu einer Zielvorrichtung sendet; wobei sodann der erste Daten-Sendeempfänger ein Lese/Schreibbestätigungs-Signal erklärt; und die Lese/Schreibadressen und die den Lese/Schreibadressen entsprechende Lese/Schreib-Datenwarteschlange freigegeben werden; und
einen zweiten Steuerchip, der mit dem Bus verbunden ist, umfassend:
ein Lese/Schreib-Puffer-Größenregister, zum Speichern einer Maximalanzahl von Daten die in der Lese/Schreib-Datenwarteschlange möglich sind;
ein Lese/Schreib-Puffer-Zählregister zum Speichern einer Maximalanzahl an Vorgängen, die in der Lese/Schreibvorgang-Warteschlange möglich sind;
einen zweiten Daten-Sendeempfänger, der mit dem Bus verbunden ist, um Datensignale durch den Bus zu empfangen und zu versenden, um die Lese/Schreibvorgänge zu erledigen und um ein freigebendes Puffersignal zu erklären, wenn er das Lese/Schreibbestätigungs-Signal empfängt;
einen Lese/Schreibvorgang-Erzeugungsmittel, der mit dem zweiten Daten- Sendeempfänger zum Erzeugen von Datenlänge der Lese/Schreibvorgänge, der Lese/Schreibadressen und Daten verbunden ist;
eine Lese/Schreib-Aufzeichnungs-Schaltung, die mit dem zweiten Daten- Sendeempfänger und mit dem Lese/Schreibvorgang-Erzeugungsmittel verbunden ist, um die Datenlänge der Lese/Schreibvorgänge vorübergehend zu speichern und um eine Anzahl nutzbarer Daten der Lese/Schreib-Datenwarteschlange, und eine Anzahl zulässiger Vorgänge in der Lese/Schreib-Datenwarteschlange gemäß dem freigebenden Puffersignal zu berechnen; und
einen Lese/Schreibkomparator, der mit den dem zweiten Daten-Sendeempfänger, dem Lese/Schreib-Puffer-Größenregister, dem Lese/Schreib-Puffer-Zählregister und der Lese/Schreib-Aufzeichnungs-Schaltung verbunden ist, um den zweiten Daten- Sendeempfänger über Daten entsprechend eines nächsten Lese/Schreibvorgangs zu informieren.
einen Bus;
einen ersten Steuerchip, umfassend:
einen ersten Daten-Sendeempfänger, der zum Empfangen und Versenden von Datensignalen mit dem Bus verbunden ist, um Lese/Schreibvorgänge zu erledigen;
eine Lese/Schreib-Datenwarteschlange, die mit dem ersten Daten-Sendeempfänger verbunden ist, um Daten der Lese/Schreibvorgänge vorübergehend zu speichern;
eine Lese/Schreibvorgang-Datenwarteschlange, die mit dem ersten Daten-Sende empfänger verbunden ist, um Datenlängen und Datenadressen der Lese/Schreib vorgänge vorübergehend zu speichern;
eine Zielsteuerung, die mit der Lese-/Schreib-Datenwarteschlange und der Lese/Schreibvorgang-Datenwarteschlange verbunden ist, wobei die Zielsteuerung, gemäß den in der Lese/Schreibvorgang-Datenwarteschlange gespeicherten Lese- /Schreibadressen und gemäß den in der Lese/Schreib-Datenwarteschlange gespeicherten Daten entsprechend dem ersten gespeicherten Lese/Schreibvorgang Daten zu einer Zielvorrichtung sendet; wobei sodann der erste Daten-Sendeempfänger ein Lese/Schreibbestätigungs-Signal erklärt; und die Lese/Schreibadressen und die den Lese/Schreibadressen entsprechende Lese/Schreib-Datenwarteschlange freigegeben werden; und
einen zweiten Steuerchip, der mit dem Bus verbunden ist, umfassend:
ein Lese/Schreib-Puffer-Größenregister, zum Speichern einer Maximalanzahl von Daten die in der Lese/Schreib-Datenwarteschlange möglich sind;
ein Lese/Schreib-Puffer-Zählregister zum Speichern einer Maximalanzahl an Vorgängen, die in der Lese/Schreibvorgang-Warteschlange möglich sind;
einen zweiten Daten-Sendeempfänger, der mit dem Bus verbunden ist, um Datensignale durch den Bus zu empfangen und zu versenden, um die Lese/Schreibvorgänge zu erledigen und um ein freigebendes Puffersignal zu erklären, wenn er das Lese/Schreibbestätigungs-Signal empfängt;
einen Lese/Schreibvorgang-Erzeugungsmittel, der mit dem zweiten Daten- Sendeempfänger zum Erzeugen von Datenlänge der Lese/Schreibvorgänge, der Lese/Schreibadressen und Daten verbunden ist;
eine Lese/Schreib-Aufzeichnungs-Schaltung, die mit dem zweiten Daten- Sendeempfänger und mit dem Lese/Schreibvorgang-Erzeugungsmittel verbunden ist, um die Datenlänge der Lese/Schreibvorgänge vorübergehend zu speichern und um eine Anzahl nutzbarer Daten der Lese/Schreib-Datenwarteschlange, und eine Anzahl zulässiger Vorgänge in der Lese/Schreib-Datenwarteschlange gemäß dem freigebenden Puffersignal zu berechnen; und
einen Lese/Schreibkomparator, der mit den dem zweiten Daten-Sendeempfänger, dem Lese/Schreib-Puffer-Größenregister, dem Lese/Schreib-Puffer-Zählregister und der Lese/Schreib-Aufzeichnungs-Schaltung verbunden ist, um den zweiten Daten- Sendeempfänger über Daten entsprechend eines nächsten Lese/Schreibvorgangs zu informieren.
2. Steuerchipsatz gemäß Anspruch 1, wobei der Bus eine Referenzspannungs-Signalleitung,
eine Impedanzvergleichs-Signalleitung, einen Adress/Datenbus, eine Längen/Byte-Einschalt-
Signalleitung, eine Aufwärtsstrecken-Befehlssignalleitung, eine Aufwärtsstrecken-
Strobesignalleitung, eine Abwärtsstrecken-Befehlssignalleitung, eine Abwärtsstrecken-
Strobesignalleitung und eine Taktsignalleitung umfasst.
3. Steuerchipsatz gemäß Anspruch 1, wobei die Frequenzen sowohl der Aufwärtsstrecken-
Strobesignalleitung als auch der Abwärtsstrecken-Strobesignalleitung doppelt so groß sind
wie die Frequenz des Taktsignals.
4. Steuerchipsatz gemäß Anspruch 1, wobei der erste und der zweite Steuerchip entsprechend
der obere Brückenchip und der untere Brückenchip sind, die Zielsteuerung eine
Speichersteuerung ist und der Bus ein VLINK-Bus ist.
5. Steuerchipsatz umfassend:
einen ersten Chip umfassend eine Vorgangswarteschlange mit einer Tiefe n und eine Datenwarteschlange mit einer Tiefe m; und
einen zweiten Chip zum aufzeichnen des Status der Vorgangswarteschlange und der Datenwarteschlange, wobei ein nächster Vorgang eingeleitet wird, falls eine Menge des ausstehenden Vorgangs kleiner als n ist und die Datenmenge kleiner als m ist.
einen ersten Chip umfassend eine Vorgangswarteschlange mit einer Tiefe n und eine Datenwarteschlange mit einer Tiefe m; und
einen zweiten Chip zum aufzeichnen des Status der Vorgangswarteschlange und der Datenwarteschlange, wobei ein nächster Vorgang eingeleitet wird, falls eine Menge des ausstehenden Vorgangs kleiner als n ist und die Datenmenge kleiner als m ist.
6. Steuerchipsatz gemäß Anspruch 5, wobei der erste und der zweite Steuerchip entsprechende
obere und untere Brücken einer Computergrundplatine sind.
7. Signalübertragungs-Vorrichtung zum Verbinden zwischen Chips, umfassend:
eine Abwärtsstrecken-Signalleitung (DNCMD) zum Bestimmen von Datentransaktionsarten einer Vielzahl von Abwärtsstrecken-Befehlen;
eine Abwärtsstrecken-Strobesignalleitung (DNSTB) zum Eintakten der Abwärtsstrecken- Befehlssignalleitung;
eine Aufwärtsstrecken-Befehlssignalleitung (UPCMD), zum Bestimmen von Datentransaktionsarten einer Vielzahl von Aufwärtsstrecken-Befehlen;
eine Aufwärtsstrecken-Strobesignalleitung (UPSTB) zum Eintakten der Aufwärts strecken-Befehlssignalleitung;
eine Byte-Einschalt-Signalleitung (BE) die eine Zweiweg-Byte-einschalt-Signalleitung ist;
eine Adress/Datenleitung (AD) zum Erklären eines Adress/Datensignals; und
eine Taktsignalleitung (CLK) zum bereitstellen eines Betriebstaktsignals.
eine Abwärtsstrecken-Signalleitung (DNCMD) zum Bestimmen von Datentransaktionsarten einer Vielzahl von Abwärtsstrecken-Befehlen;
eine Abwärtsstrecken-Strobesignalleitung (DNSTB) zum Eintakten der Abwärtsstrecken- Befehlssignalleitung;
eine Aufwärtsstrecken-Befehlssignalleitung (UPCMD), zum Bestimmen von Datentransaktionsarten einer Vielzahl von Aufwärtsstrecken-Befehlen;
eine Aufwärtsstrecken-Strobesignalleitung (UPSTB) zum Eintakten der Aufwärts strecken-Befehlssignalleitung;
eine Byte-Einschalt-Signalleitung (BE) die eine Zweiweg-Byte-einschalt-Signalleitung ist;
eine Adress/Datenleitung (AD) zum Erklären eines Adress/Datensignals; und
eine Taktsignalleitung (CLK) zum bereitstellen eines Betriebstaktsignals.
8. Vorrichtung gemäß Anspruch 7, worin die Abwärtsstrecken-Strobesignalleitung und die
Aufwärtsstrecken-Strobesignalleitung einseitig gerichtet sind.
9. Vorrichtung gemäß Anspruch 7, worin die Frequenzen sowohl der Abwärtsstrecken-Strobe
signalleitung als auch der Aufwärtsstrecken-Strobesignalleitung doppelt so groß sind wie die
Frequenz des Betriebstaktsignals.
10. Datenübertragungsverfahren zum Erledigen einer Vielzahl von Lese/Schreibvorgängen
zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung, die durch einen Bus
verbunden sind, umfassend die Schritte:
Bereitstellen einer Maximalanzahl zum Ausführen der Lese/Schreibvorgänge und einer Datenmaximallänge die durch jeden der Lese/Schreibvorgänge übertragen wird;
Durchführen eines Lese/Schreibvorganges, wenn eine Lese/Schreibadresse entsprechend des Lese/Schreibvorganges erklärt ist, um Daten entsprechen zu dem Lese/Schreibvor gang zu lesen/schreiben, der nicht die Datenmaximallänge von Daten überschreitet.
Erklären eines Lese/Schreibbestätigungs-Signals;
Freigeben der Lese/Schreibadresse entsprechend zu dem Lese/Schreibvorgang und den in der Lese/Schreib-Datenwarteschlange gespeicherten Daten.
erzeugen einer Datenlänge eines nächsten Lese/Schreibvorgangs, von Lese/Schreib adressen und von entsprechenden Daten;
Berechnen einer Datenpufferanzahl der Lese/Schreibdaten und einer Lese/Schreib vorgangsanzahl des Lese/Schreibvorgangs gemäß des Lese/Schreibbestätigungs-Signals; und
Bestimmen der Datenlänge, des Lese/Schreibvorgangs, der Lese/Schreibadressen und der entsprechenden Daten des nächsten Lese/Schreibvorgangs gemäß der Datenpufferanzahl, der Lese/Schreibvorgangsanzahl, der Gesamtvorgangsanzahl des Lese/Schreibvorgangs und der Datenmaximalanzahl der Lese/Schreibdaten.
Bereitstellen einer Maximalanzahl zum Ausführen der Lese/Schreibvorgänge und einer Datenmaximallänge die durch jeden der Lese/Schreibvorgänge übertragen wird;
Durchführen eines Lese/Schreibvorganges, wenn eine Lese/Schreibadresse entsprechend des Lese/Schreibvorganges erklärt ist, um Daten entsprechen zu dem Lese/Schreibvor gang zu lesen/schreiben, der nicht die Datenmaximallänge von Daten überschreitet.
Erklären eines Lese/Schreibbestätigungs-Signals;
Freigeben der Lese/Schreibadresse entsprechend zu dem Lese/Schreibvorgang und den in der Lese/Schreib-Datenwarteschlange gespeicherten Daten.
erzeugen einer Datenlänge eines nächsten Lese/Schreibvorgangs, von Lese/Schreib adressen und von entsprechenden Daten;
Berechnen einer Datenpufferanzahl der Lese/Schreibdaten und einer Lese/Schreib vorgangsanzahl des Lese/Schreibvorgangs gemäß des Lese/Schreibbestätigungs-Signals; und
Bestimmen der Datenlänge, des Lese/Schreibvorgangs, der Lese/Schreibadressen und der entsprechenden Daten des nächsten Lese/Schreibvorgangs gemäß der Datenpufferanzahl, der Lese/Schreibvorgangsanzahl, der Gesamtvorgangsanzahl des Lese/Schreibvorgangs und der Datenmaximalanzahl der Lese/Schreibdaten.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW088121972A TW449698B (en) | 1999-12-15 | 1999-12-15 | Control chipsets and data exchange method among them |
TW088121972 | 1999-12-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10057794A1 true DE10057794A1 (de) | 2001-06-28 |
DE10057794B4 DE10057794B4 (de) | 2009-08-06 |
Family
ID=21643385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10057794A Expired - Lifetime DE10057794B4 (de) | 1999-12-15 | 2000-11-22 | Verfahren für Datentransaktionen zwischen Steuerchipsätzen |
Country Status (4)
Country | Link |
---|---|
US (1) | US6684284B1 (de) |
JP (2) | JP3602435B2 (de) |
DE (1) | DE10057794B4 (de) |
TW (1) | TW449698B (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW594490B (en) * | 2003-03-20 | 2004-06-21 | Via Tech Inc | Bus for control chipset and the arbitration method |
DE102004002004A1 (de) | 2004-01-14 | 2005-08-11 | Schifferle, René | Kaffeemaschine zum Aufbrühen von in einer Kapsel abgepacktem Pulverkaffee |
US20060271718A1 (en) * | 2005-05-27 | 2006-11-30 | Diplacido Bruno Jr | Method of preventing error propagation in a PCI / PCI-X / PCI express link |
FR2887661B1 (fr) * | 2005-06-27 | 2007-10-05 | Giga Byte Tech Co Ltd | Dispositif et procede de transmission de donnees |
US7698493B2 (en) * | 2005-08-31 | 2010-04-13 | Ati Technologies, Inc. | Methods and apparatus for translating write request messages in a computing system |
US7805560B2 (en) * | 2005-08-31 | 2010-09-28 | Ati Technologies Inc. | Methods and apparatus for translating messages in a computing system |
CN100461148C (zh) * | 2007-07-30 | 2009-02-11 | 威盛电子股份有限公司 | 芯片组的数据链结层及用于其处理包的方法 |
US20140223051A1 (en) * | 2013-02-07 | 2014-08-07 | Andes Technology Corporation | Information collection system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049223A (en) * | 1995-03-22 | 2000-04-11 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US5867672A (en) * | 1996-05-21 | 1999-02-02 | Integrated Device Technology, Inc. | Triple-bus FIFO buffers that can be chained together to increase buffer depth |
US5815677A (en) * | 1996-12-31 | 1998-09-29 | Compaq Computer Corporation | Buffer reservation method for a bus bridge system |
US5867724A (en) * | 1997-05-30 | 1999-02-02 | National Semiconductor Corporation | Integrated routing and shifting circuit and method of operation |
US6209068B1 (en) * | 1997-12-29 | 2001-03-27 | Intel Corporation | Read line buffer and signaling protocol for processor |
GB9809201D0 (en) * | 1998-04-29 | 1998-07-01 | Sgs Thomson Microelectronics | Microcomputer chips with interconnected address and data paths |
US6230228B1 (en) * | 1999-04-01 | 2001-05-08 | Intel Corporation | Efficient bridge architecture for handling multiple write transactions simultaneously |
US6385676B1 (en) * | 1999-07-12 | 2002-05-07 | Hewlett-Packard Company | Coherent ordering queue for computer system |
-
1999
- 1999-12-15 TW TW088121972A patent/TW449698B/zh not_active IP Right Cessation
-
2000
- 2000-11-22 US US09/718,811 patent/US6684284B1/en not_active Expired - Lifetime
- 2000-11-22 DE DE10057794A patent/DE10057794B4/de not_active Expired - Lifetime
- 2000-11-27 JP JP2000360181A patent/JP3602435B2/ja not_active Expired - Lifetime
-
2003
- 2003-04-24 JP JP2003120508A patent/JP4037788B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP4037788B2 (ja) | 2008-01-23 |
DE10057794B4 (de) | 2009-08-06 |
TW449698B (en) | 2001-08-11 |
JP3602435B2 (ja) | 2004-12-15 |
JP2003316724A (ja) | 2003-11-07 |
US6684284B1 (en) | 2004-01-27 |
JP2001209610A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69936060T2 (de) | Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten | |
DE3909948C2 (de) | ||
DE60309391T2 (de) | Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren | |
DE69018100T2 (de) | Datenübertragung über Busadressleitungen. | |
DE69027515T2 (de) | Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung | |
DE69932400T2 (de) | Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen | |
DE3852904T2 (de) | Eingangs-/Ausgangssystem für Multiprozessoren. | |
DE19900325B4 (de) | Vorrichtung und Verfahren zum Senden und Empfangen von Daten in eine und aus einer universellen seriellen Buseinrichtung | |
DE3889366T2 (de) | Interface für ein Rechnersystem mit reduziertem Befehlssatz. | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE60013470T2 (de) | Gerät zur initialisierung einer rechnerschnittstelle | |
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 | |
EP0929041A2 (de) | Verfahren und Anordnung zum Betreiben eines Bussystems | |
DE3725343A1 (de) | Vielzweck-kanalsteuersystem | |
DE102005009174A1 (de) | Bussystem, zugehöriges Busbelegungszuteilverfahren und Datenübertragungsverfahren | |
DE4018481C2 (de) | ||
DE69114961T2 (de) | Vorrichtung für Zusammenschaltungskanäle. | |
DE10234934A1 (de) | Antwortreihenwiederherstellungsmechanismus | |
DE69214702T2 (de) | Speicherzugriff für die Datenübertragung in einer Ein-Ausgabevorrichtung | |
DE10296959T5 (de) | System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen | |
DE10234992A1 (de) | Retry-Mechanismus für blockierende Schnittstellen | |
DE19900251B4 (de) | Vorrichtung und Verfahren zum Steuern eines vielseitigen USB-Endpunktkanals | |
DE10314175A1 (de) | Bussystem sowie Informationsverarbeitungssystem, das ein Bussystem einschliesst | |
DE10061770B4 (de) | Zugriffsregelung für Steuerchipsätzen bei Bustransaktion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right |