-
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.
-
1 zeigt
ein PCI-Bussystem, das verschiedene Komponenten eines herkömmlichen
Computersystems verbindet. Wie in 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-Rostbus-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 Datenleseoperation 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.
-
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
auf einem einzelnen Chip integriert gebildet. 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.
-
US 5,815,677 offenbart ein
Verfahren zur Datenübertragung über eine
Bus-Brücke.
Die Bus-Brücke beinhaltet
eine Anzahl Datenbuffer zum Speichern von Daten. Eine Vorrichtung,
die mit der Busbrücke
in Verbindung steht kann einen Buffer durch einen der beiden Resevierungsmechanismen
reservieren. Der Reservierungsmechanismus stellt eine Busbrücke mit
Adresse und Byte-Zähler
bereit.
-
EP 0 953 916 offenbart ein
Computersystem, umfassend: verschaltete Chips, wobei jeder eine On-Chip-Adresse
und einen Datenpfad aufweist, eine CPU, die eingerichtet ist adressierte
Bit-Packete auf dem Pfad zu senden und zu empfangen, und Module
mit Ereignisschaltung, um adressierte Ereignisanfragepakete zur
Verteilung auf dem Pfad (15) zu erzeugen. Die beiden Chips sind über jeweilige
externe Ports verschaltet.
-
Es
ist die Aufgabe der vorliegenden Erfindung, das Datenübertragungsverfahren
der internen Vorgänge
zwischen Steuerchipsätzen
zu beschleunigen und gleichzeitig dabei die herkömmlichen PCI-Spezifikationen
einzuhalten.
-
Diese
Aufgabe wird gelöst
durch einen Steuerchipsatz und ein Verfahren gemäß den Ansprüchen 1, 5 und 9, wobei der
erfindungsgemäße Steuerchipsatz
nach Anspruch 1 folgendes umfasst: 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-Sendeempfänger
verbunden ist, um Datenlängen
und Datenadressen der Lese/Schreibvorgä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.
-
Weiter
umfasst der erfindungsgemäße Steuerchipsatz
nach Anspruch 5 folgendes: einen ersten Chip, umfassend eine Lese/Schreib-Transaktions-Warteschlange
mit einer Tiefe n und eine Lese/Schreib-Daten-Warteschlange mit
einer Tiefe m; einen zweiten Chip zum Aufzeichnen des Zustands der
Lese/Schreib-Transaktions-Warteschlange und der Lese/Schreib-Daten-Warteschlange,
wobei eine nächste
Lese/Schreib-Transaktion eingeleitet wird, wenn eine Menge des ausstehenden
Vorgangs kleiner als n ist und eine Datenmenge geringer als m ist;
und eine Signalübertragungsvorrichtung,
um zwischen dem ersten und dem zweiten Chip zu verbinden, 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ärtsstrecken-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
-
Die
vorliegende Erfindung stellt ein Steuerchip-Datentransaktionsverfahren
gemäß Anspruch
9 zwischen Steuerchips innerhalb des Steuerchipsatzes und ein Busarbitrationsverfahren
zwischen den Steuerchips innerhalb des Steuerchipsatzes bereit.
Daher steigt die Leistung des Steuerchipsatzes und die Art und Anzahl
der Signalleitungen zwischen den Steuerchips wird reduziert.
-
Die
vorliegende Erfindung stellt ein Datentransaktionsverfahren zwischen
Steuerchips bereit. Die Daten oder Befehle werden ohne irgendein
Warten, Stoppen, oder Neuversuch fortwährend übertragen.
-
Die
vorliegende Erfindung stellt ein Datentransaktionsverfahren zwischen
Steuerchips innerhalb eines Steuerchipsatzes bereit, 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 einen 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 wird verbessert.
-
Es
ist klar, dass sowohl die vorstehende allgemeine Beschreibung als
auch die nachstehende detaillierte Beschreibung nur beispielhaft
sind und sie nur eine weitere Erläuterung der beanspruchten Erfindung
bereitstellen.
-
Die
begleitenden Zeichnungen wurden aufgenommen, um ein weiteres Verstehen
der Erfindung bereitzustellen 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 1 ein
Blockdiagramm, das ein PCI-Bussystem zeigt, dass verschiedene Bausteine
eines herkömmlichen
Computersystems verbindet;
-
ist 2 ein
Zeitverlaufsdiagramm, dass die verschiedenen Signale in der PCI- Busschnittstelle
während
einer Leseoperation zeigt;
-
ist 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 4 ein
Zeitverlaufsdiagramm, dass einen erfindungsgemäßen Taktzyklus der 4 Bitzeiten
zur Befehlscodierung enthält
zeigt;
-
stellt 5A schematisch
ein Blockdiagramm eines Steuerchipsatzes gemäß einer bevorzugten Ausführungsform
für erfindungsgemäße Schreiboperationen
dar;
-
zeigt 5B ein
Beispiel eines Zeitverlaufsdiagramms eines erfindungsgemäßen Schreibvorgangs;
-
stellt 6A ein
Blockdiagramm eines Steuerchipsatzes gemäß einer bevorzugten Ausführungsform für erfindungsgemäße Lesevorgange
dar; und
-
zeigt 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 3 und Tabelle 1. Zeigt 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 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
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. Tabelle 1
Signale | Gestartet
von | Bemerkung |
CLK | | 66
MHz Taktsignal |
DNSTB | oberer
Brücke | Abwärts-Strobe |
UPSTB | unterer
Brücke | Aufwärts-Strobe |
DNCMD | oberer
Brücke | Abwärts-Befehl |
UPCMD | unterer
Brücke | Aufwärts-Befehl |
BE | oberer
Brücke/unterer
Brücke | Byte-Einschalten |
AD
[7:0] | oberer
Brücke/unterer
Brücke | Adress/Datenbus |
VREF | | Referenzspannung |
COMP | | Impedanzvergleich |
-
4 stellt
den Zeitlichen Zusammenhang zwischen einem Taktsignal (CLK), einem
Strobesignal (STB) und Bitzeiten der Datenleitungen zur erfindungsgemäßen Datenübertragung
dar. Wie in 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 (NB 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. Tabelle 2 (Aufwärtsstrecken-Befehl UPCMD)
Bitzeit
0
REQ | Bitzeit
1
PMSTR | Bitzeit
2
MIO | Bitzeit
3
WR | Erklärung |
- | 0 | - | 0 | C2PRA |
- | 0 | - | 1 | C2PWA |
- | 0 | 0 | 0 | P2CR |
- | 0 | 0 | 1 | P2CW |
- | 1 | 1 | 0 | NOP |
0 | - | - | - | REQ |
Tabelle 3 (Abwärtsstrecken-Befehl DNCMD)
Bitzeit
0 | Bitzeit
1
PMSTR | Bitzeit
2
MIO | Bitzeit
3
WR | Erklärung |
- | 0 | 0 | 0 | C2PIOR |
- | 0 | 0 | 1 | C2PIOW |
- | 0 | 1 | 0 | C2PMR |
- | 0 | 1 | 1 | C2PMW |
- | 1 | 0 | 0 | P2CRA |
- | 1 | 0 | 1 | P2CWA |
- | 1 | 1 | 1 | NOP |
-
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 Datenlange 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 Schreibpuffer-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.
-
5B zeigt
ein Beispiel eines Zeitverlaufsdiagramm eines erfindungsgemäßen Schreibvorgangs. 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.
-
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 Chipsatzauslegung 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-Aufzeichnungs-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.
-
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 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
jegliche Datentransaktion zwischen zwei Chips verwendet werden.