-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft allgemein
Datenschnittstellen auf einem Chip (on-chip) und insbesondere integrierte
Schaltkreischips mit Schaltungseinheiten, die Anforderungen (Requests)
und Antworten (Responses) untereinander austauschen können.
-
Integrierte Schaltkreischips werden
für Datenverarbeitung
oft verwendet und umfassen bekanntermaßen eine Anzahl verschiedener
Schaltungseinheiten. Im Allgemeinen dient jede Schaltungseinheit
der Durchführung
einer spezifischen Funktion und es können natürlich auch verschiedene Schaltungseinheiten
auf einem Chip zum Durchführen
derselben Funktion bereitgestellt werden, oder zum Durchführen verschiedener
Funktionen. Die Schaltungseinheiten können sequentiell oder simultan
arbeiten und ihre Funktion unabhängig
voneinander ausführen,
oder abhängig
vom Betrieb anderer Schaltungseinheiten.
-
Im letzteren Falle sind die Schaltungseinheiten
gewöhnlich
miteinander über
eine Schnittstelle verbunden, um den Schaltungseinheiten zu gestatten,
Daten untereinander auszutauschen, die benötigt werden, um den Betrieb
einer Schaltungseinheit abhängig
vom Betrieb der anderen Schaltungseinheit zu machen. Der Datenaustausch
wird oft durch das Senden von Transaktionen von einer Schaltungseinheit
zu der anderen Schaltungseinheit durchgeführt.
-
Eine Transaktion ist eine Abfolge
von Paketen, die zwischen den Schaltungseinheiten ausgetauscht werden
und zu einem Transfer von Informationen führen. Die Schaltungseinheit,
die eine Transaktion veranlasst, wird Quelle (Source) genannt, und die
Schaltungseinheit, die schließlich
die Transaktion für
die Sourceeinheit ableistet, wird Ziel (Target) genannt. Es ist
anzumerken, dass es auch zwischenliegende Einheiten zwischen der
Sourceeinheit und der Targeteinheit geben kann.
-
Transaktionen können verwendet werden, um Anforderungen
zu plazieren oder auf eine empfangene Anforderung zu antworten:
Nimmt man die Anforderungen, so können Posted-Anforderungen von
Non-Posted-Anforderungen
unterschieden werden, abhängig
davon, ob die Anforderung eine Antwort erfordert. Genauer gesagt
ist eine Non-Posted-Anforderung eine Anforderung, die eine Antwort erfordert,
während
eine Posted-Anforderung eine Antwort nicht erfordert.
-
Wendet man sich den Funktionen zu,
die von den untereinander verbundenen Schaltungseinheiten durchgeführt werden,
können
die Schaltungseinheiten oft in Hosts und Devices (Geräte) unterteilt werden.
Der Begriff Host bedeutet dann eine Schaltungseinheit, die für das abhängige Device
Dienste bereitstellt. Eine Transaktion vom Host zum Devise wird
als downstream (nach unten) bezeichnet, während eine Transaktion in die
andere Richtung als upstream (nach oben) bezeichnet wird. In bidirektionalen
Konfigurationen können
sowohl der Host als auch das Device Anforderungen und Antworten
senden und empfangen, so dass ein Devise sowohl eine Sourceeinheit
als auch eine Targeteinheit sein kann und auch der Host sowohl als
Sourceeinheit als auch als Devise arbeiten kann.
-
Ein Gebiet, in dem integrierte Schaltkreischips
allgemein verwendet werden, sind Personalcomputer. Wird auf 1 Bezug genommen, so sind die
Hardwarekomponenten eines gewöhnlichen
Motherboard-Layouts dargestellt. Es ist anzumerken, dass diese Figur
nur ein Beispiel eines Motherboard- Layouts zeigt und andere Konfigurationen ebenfalls
bestehen. Die Basiselemente, die auf dem Motherboard von 1 zu finden sind, schließen die CPU
(Central Processing Unit, zentrale Verarbeitungseinheit) 100,
eine Northbridge 105, eine Southbridge 110 und
den Systemspeicher 115 ein. Die Northbridge 105 ist
gewöhnlich
ein einzelner Chip in einem Core-Logic-Chipsatz, der den Prozessor 100 mit dem
Systemspeicher 115 verbindet sowie z.B. mit dem AGP-Bus
(Accelerated Graphie Port) und PCI-Bus (Peripheral Component Intertace).
Der PCI-Bus wird in Personalcomputern gewöhnlich zum Bereitstellen eines
Datenpfades zwischen dem Prozessor 100 und Peripheriegeräten wie
etwa Videokarten, Soundkarten, Netzwerkschnittstellenkarten und
Modems verwendet. Der AGP-Bus ist ein Hochgeschwindigkeitsgrafikerweiterungsbus,
der den Displayadapter und den Systemspeicher 115 direkt
verbindet. AGP arbeitet unabhängig
von dem PCI-Bus.
-
Die Southbridge 110 ist
gewöhnlich
der Chip in einem Core-Logic-Systemchipsatz,
der den IDE-Bus (Integrated Drive Electronics) oder EIDE-Bus (Enhanced IDE)
steuert, den USB-Bus (Universal Serial Bus), der Plug-and-Play unterstützt, die PCI-ISA-Bridge
(Industry Standard Architecture) steuert, die Tastatur/Maus-Steuerung
verwaltet, Powermanagementeigenschaften bereitstellt und andere
Peripheriegeräte
steuert.
-
Somit enthalten übliche Personalcomputer Southbridges 110,
die integrierte Schaltkreischips im Wesentlichen wie oben beschrieben
sind. Um dem Bedarf an Hochgeschwindigkeits-Chip-zu-Chip-Kommunikation
zu und von der Southbridge 110 nachzukommen, wurde die
HyperTransport®-Technologie entwickelt,
die eine hochperformante Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung auf dem
Board (on-board) zum Verbinden integrierter Schaltkreise untereinander
auf einem Motherboard bereitstellt. Sie kann signifikant schneller
als ein PCI-Bus für
eine äquivalente
Anzahl von Pins sein. Die HyperTransport-Technologie wurde entworfen,
um signifikant mehr Bandbreite als gegenwärtige Technologien bereitzustellen,
Low-Latency-Antworten zu verwenden, eine geringe Pinzahl bereitzustellen,
zu Legacy-Computerbussen kompatibel zu sein, auf neue Systemnetzwerkarchitekturbusse
erweiterbar zu sein, für
Betriebssysteme transparent zu sein und geringe Auswirkungen auf
Peripheriegeräte
zu haben.
-
Während
die HyperTransport-Schnittstelle somit eine Hochgeschwindigkeits-Chip-zu-Chip-Schnittstelle
bereit stellt, kann die Datenverarbeitung, die innerhalb der Chips
selbst durchgeführt
wird, oft zum Flaschenhals werden. Es gibt somit im Stand der Technik
ein Problem damit, dass die vollen Leistungseigenschaften, die durch
Interchipschnittstellen auf dem Board wie etwa der HyperTransport-Schnittstelle
bereitgestellt werden, nicht zu den Peripheriegeräten heruntergeführt werden
können,
da die On-Chip-Schnittstellen
in zwischenliegenden integrierten Schaltkreischips die Gesamtperformance
verringern.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Eine verbesserte Schnittstelle auf
einem Chip wird somit bereitgestellt, die die Verbesserung der gesamten
Systemperformance gestatten und eine niedrigere Latency bereitstellen
kann.
-
In einer ersten Ausgestaltung wird
ein integrierter Schaltkreischip bereitgestellt, der eine erste und
eine zweite Schaltungseinheit umfasst. Jede der ersten und zweiten
Schaltungseinheiten kann Anforderungen an die andere der ersten
und zweiten Schaltungseinheiten senden. Weiterhin kann jede der
ersten und zweiten Schaltungseinheiten eine Antwort zurücksenden,
wenn sie eine Anforderung empfängt,
die eine Antwort erfordert. Die erste Schaltungseinheit kann Daten
speichern, die eine zu sendende Anforderung betreffen. Die zweite
Schaltungseinheit kann nicht Daten speichern, die eine empfangene
Anforderung betreffen.
-
In einer anderen Ausgestaltung kann
ein Southbridgebauelement bereitgestellt werden, das einen integrierten
Schaltkreischip umfasst, der eine erste und eine zweite Schaltungseinheit
aufweist. Jede der ersten und zweiten Schaltungseinheiten kann Anforderungen
an die andere der ersten und zweiten Schaltungseinheiten senden.
Weiterhin kann jede der ersten und zweiten Schaltungseinheiten eine
Antwort zurücksenden,
wenn sie eine Anforderung empfängt,
die eine Antwort erfordert. Die erste Schaltungseinheit kann Daten
speichern, die eine zu sendende Anforderung betreffen. Die zweite
Schaltungseinheit kann nicht Daten speichern, die eine empfangene
Anforderung betreffen.
-
In einer weiteren Ausgestaltung wird
ein Verfahren zum Betreiben eines integrierten Schaltkreischips
bereitgestellt, der eine erste und eine zweite Schaltungseinheit
umfasst. Das Verfahren umfasst das Senden von Anforderungen von
einer der ersten und zweiten Schaltungseinheiten zu der anderen
der ersten und zweiten Schaltungseinheiten, und das Zurücksenden
einer Antwort von der anderen der ersten und zweiten Schaltungseinheiten
zu der einen der ersten und zweiten Schaltungseinheiten, wenn die Anforderung
eine Antwort erfordert. Das Verfahren umfasst weiterhin das Betreiben
der ersten Schaltungseinheit, um Daten zu speichern, die eine von der
ersten Schaltungseinheit zu sendende Anforderung betreffen, und
das Betreiben der zweiten Schaltungseinheit, um keine Daten zu speichern,
die eine Anforderung betreffen, die von der zweiten Schaltungseinheit
empfangen wird.
-
Die beigefügten Zeichnungen sind in die
Beschreibung eingefügt
und bilden einen Teil derselben zum Zwecke der Erläuterung
der Prinzipien der Erfindung. Die Zeichnungen sind nicht als die
Erfindung nur auf die verdeutlichten und beschriebenen Beispiele
beschränkend
zu verstehen, wie die Erfindung gemacht und verwendet werden kann.
Weitere Merkmale und Vorteile werden aus der folgenden und genaueren
Beschreibung der Erfindung ersichtlich werden, wie in den beigefügten Zeichnungen
erläutert,
in denen:
-
1 ein
gewöhnliches
Motherboard-Layout verdeutlicht;
-
2 eine
Southbridge gemäß einer
Ausgestaltung verdeutlicht;
-
3 eine
Targetschnittstelle gemäß einer Ausgestaltung
verdeutlicht;
-
4 ein
Flussdiagramm ist, das den Prozess der Durchführung einer Downstreamanforderungstransmission
unter Verwendung der in 3 gezeigten
Targetschnittstelle verdeutlicht;
-
5 ein
Signalformdiagramm ist, das Signalformen verdeutlicht, die auftreten
können,
wenn eine Downstreamanforderungstransmission durchgeführt wird;
-
6 ein
anderes Signalformdiagramm ist, das eine Downstreamanforderungstransmission
betrifft;
-
7 wiederum
ein anderes Signalformdiagramm zur Verdeutlichung der Downstreamanforderungstransmission
ist;
-
8 ein
Flussdiagramm ist, das den Prozess der Durchführung einer Upstreamantworttransmission
gemäß einer
Ausgestaltung verdeutlicht;
-
9 ein
Signalformdiagramm ist, das Signalformen zeigt zur Verdeutlichung
einer Upstreamanforderungstransmission;
-
10 ein
anderes Signalformdiagramm ist, das eine Upstreamanforderungstransmission
verdeutlicht;
-
11 eine
Sourceschnittstelle gemäß einer Ausgestaltung
verdeutlicht;
-
12 ein
Flussdiagramm ist, das den Prozess der Durchführung einer Upstreamanforderungstransmission
gemäß einer
Ausgestaltung verdeutlicht;
-
13 ein
Signalformdiagramm ist, das Signalformen verdeutlicht, die auftreten
können,
wenn eine Upstreamanforderungstransmission durchgeführt wird;
-
14 ein
anderes Signalformdiagramm ist, das die Upstreamanforderungstransmission
betrifft;
-
15 ein
weiteres Signalformdiagramm zur Verdeutlichung von Signalformen
in einer Upstreamanforderungstransmission ist;
-
16 ein
Flussdiagramm ist, das den Prozess der Durchführung einer Downstreamantworttransmission
gemäß einer
Ausgestaltung verdeutlicht;
-
17 ein
Signalformdiagramm ist, das Signalformen zeigt, die auftreten können, wenn
die Downstreamantworttransmission von 16 durchgeführt wird;
-
18 ein
anderes Signalformdiagramm ist, das die Downstreamantworttransmission
betrifft;
-
19 ein
Signalformdiagramm ist, das ein anderes Beispiel von Signalformen
in dem Prozess der Durchführung
einer Downstreamantworttransmission zeigt; und
-
20 ein
anderes Signalformdiagramm des Downstreamantworttransmissionsprozesses
ist.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Die verdeutlichenden Ausgestaltungen
der vorliegenden Erfindung werden unter Bezugnahme auf die Zeichnungen
beschrieben werden.
-
Wird nun auf die Zeichnungen und
insbesondere auf 2 Bezug
genommen, die die Komponenten einer Southbridge einer Ausgestaltung
verdeutlicht, umfasst das Bauelement eine Hostschaltung 210 und
eine Deviceschaltung (Geräteschaltung) 230.
Die Hostschaltung 210 ist über eine Chip-zu-Chip-Schnittstelle 200 mit
einer Northbridge oder einem anderen integrierten Schaltkreischip
wie etwa einem Speicherkontrollen oder einem Prozessor verbunden.
Die Chip-zu-Chip-Schnittstelle 200 der vorliegenden Ausgestaltung
kann eine HyperTransport-Verbindung sein.
-
Auf der anderen Seite enthält die Southbridge
eine Chip-zu-Peripheriegerät-Schnittstelle 240,
um die Deviceschaltung 230 mit den Peripheriegeräten zu verbinden.
-
Weiterhin wird eine On-Chip-Schnittstelle 220 zwischen
der Hostschaltung 210 und der Deviceschaltung 230 bereitgestellt.
Diese On-Chip-Schnittstelle kann eine Split-Transaktionsschnittstelle
sein. Split-Transaktionsschnittstellen sind Schnittstellen, bei
denen Anforderungen und Antworten auf dem Bus als vollständig entkoppelte
und unabhängige Transaktionen übertragen
werden. Ein Beispiel einer Split-Transaktionsverbindung ist die
HyperTransport-Schnittstelle,
die jedoch eine Chip-zu-Chip-Schnittstelle 200 ist. In
der vorliegenden Ausgestaltung handelt es sich um eine On-Chip-Schnittstelle
220, die diese Funktionalität aufweist.
-
Die On-Chip-Schnittstelle 220 der
vorliegenden Ausgestaltung weist zwei Komponenten auf, eine Targetschnittstelle
und eine Sourceschnittstelle. Diese Schnittstellen sind in weiteren
Einzelheiten in den 3 bzw. 11 gezeigt und werden unten
diskutiert werden. Die Targetschnittstelle ist die Schnittstelle,
bei der Anforderungen downstream gesendet werden, d.h. vom Host
zum Device, und Antworten upstream. Andererseits ist die Sourceschnittstelle diejenige
Schnittstelle, bei der Anforderungen upstream und Antworten downstream
gesendet werden. Im Folgenden wird eine Anforderung in der Targetschnittstelle
auch Targetbefehl und eine Anforderung in der Sourceschnittstelle
Sourcebefehl genannt.
-
Ausgehend von den in den 3 bzw. 11 gezeigten Target- und Sourceschnittstellen
wird eine Schnittstelle zwischen zwei Schaltungseinheiten 210, 230, 300, 330, 1100, 1130 bereitgestellt,
bei der jede Einheit Anforderungen an die andere Einheit senden
und auch eine Antwort, wenn erforderlich, zurücksenden kann, d.h. im Falle
einer Non-Posted-Anforderung.
Die Targetschnittstelle kann mehrere ausstehende Non-Posted-Anforderungen
unterstützen, d.h.
Tags. Darüber
hinaus werden alle Daten für
die Sourceschnittstelle, z.B. die Busmasterdaten, nur in dem Device 230, 330, 1130,
jedoch nicht im Host 210, 300, 1100 gespeichert.
-
Das bedeutet, dass der Host alle
Targetbefehle und Antworten auf Targetbefehle puffert und es dem
Device somit ermöglicht
wird, eine Targetbefehlstransmission zeitweilig zu unterbrechen
(eine Pause einzufügen),
während
es dem Host nicht gestattet ist, eine Targetantworttransmission
zeitweilig zu unterbrechen. Andererseits puffert das Device alle
Sourcebefehle (einschließlich
der Daten) und alle Antworten auf Sourcebefehle. Folglich ist es
dem Device nicht gestattet, eine Sourcebefehlstransmission und eine
Antworttransmission zeitweilig zu unterbrechen, während der
Host Antwort- oder Befehlstransmissionen zeitweilig unterbrechen
kann.
-
In der vorliegenden Ausgestaltung
kann es zwei Arten von Antworten geben: Leseantworten und Targeterledigungsantworten.
Beide können
Beendigungsinformationen enthalten. Zusätzlich geben Leseantworten
auch Daten zurück.
Die Befehle können durch
ihre Typen (Lesetyp oder Schreibtyp) unterschieden werden sowie
abhängig
davon, ob die Anforderung eine Posted- oder eine Non-Posted-Anforderung
ist. Non-Posted-Anforderungen vom Lesetyp erfordern eine Leseantwort
und Non-Posted-Anforderungen vom Schreibtyp erfordern eine Targeterledigungsantwort.
-
Weiterhin können die Befehle eine verschiedene
Anzahl von Datenphasen aufweisen und die Anzahl der Datenphasen,
die für
eine Anforderung zulässig
sind, kann vordefiniert sein. Dies legt die Länge der Anforderung (wenn vom
Schreibtyp) oder der Antwort (wenn vom Lesetyp) fest.
-
Wird nun zu 3 übergegangen,
die eine Ausgestaltung einer Targetschnittstelle verdeutlicht, so
sind der Host 300 und das Targetdevice 330 über vielfache
Signalleitungen zum Übertragen
von Anforderungs- und Antwortdaten verbunden. Zu diesem Zweck umfasst
sowohl der Host 300 als auch das Targetdevice 330 eine
Befehlsschnittstelleneinrichtung 310 bzw. 340 und
eine Antwortschnittstelleneinrichtung 320 bzw. 350.
Diese Einheiten bilden Befehls- und Antwortkanäle.
-
In dem Befehlskanal kann es Downstreamtransmissionen
von der Befehlsschnittstelleneinrichtung 310 des Hosts 300 zu
der Befehlsschnittstelleneinrichtung 340 des Targetdevices 330 geben.
Beispielsweise wird die Adressdatensignalleitung verwendet, um Adressen,
Zählwerte
und Schreibdaten zu übertragen.
Die Befehlssignalleitung kann verwendet werden, um Befehle und Bytefreigabesignale zu übertragen.
Die Befehlstag-Signalleitung
wird verwendet, um Tags und Wortindizes zu übertragen. Weiterhin gibt es
eine Befehlstransferanforderungssignalleitung, die es dem Host 300 gestattet,
einen Befehlstransfer anzufordern.
-
In dem Befehlskanal gibt es auch
Upstreamsignalleitungen, die es dem Device 330 gestatten
zu signalisieren, wenn es bereit ist, einen Befehl oder eine Datenphase
entgegenzunehmen (die Bereitschaftssignalleitung oder Ready-Signalleitung) und das
Auswerfen (Flushing) der ausstehenden Datenphasen anzufordern (die
Flush-Anforderungssignalleitung).
-
In dem Antwortkanal können die
folgenden Upstreamsignalleitungen bereitgestellt werden: die Leseantwortdatensignalleitung
zum Übertragen
von Leseantwortdaten, die Beendigungscodesignalleitung zum Übertragen
von Transaktionsbeendigungscodes, die Antworttag-Signalleitung zum Übertragen von
Antworttags und die Antworttransferanforderungssignalleitung zum
Anfordern der Übertragung einer
Antwort.
-
Der Betrieb der Targetschnittstelle
wird nun in weiteren Einzelheiten unter Bezugnahme auf die 4 und 8 beschrieben werden, die Flussdiagramme
sind, die den Downstreamanforderungstransmissionsprozess bzw. den
Upstreamantworttransmissionsprozess verdeutlichen. Beispiele von
Signalformen auf den Signalleitungen der Targetschnittstelle sind
in den Signalformdiagrammen der 5 bis 7 und 9 bis 10 gezeigt.
-
Wird nun zunächst zu dem Flussdiagramm von 4 übergegangen, so verwenden alle Downstreamanforderungen,
die vom Host 300 kommen, die Targetschnittstelle, um mit
dem Device 330 zu kommunizieren. Die Hostbefehlschnittstelleneinrichtung 310 puffert
alle Downstreamanforderungen, die z.B. über die Chip-zu-Chip-Schnittstelle 200 empfangen
worden sein können,
decodiert die empfangenen Anforderungen und leitet sie an das Device 330 weiter,
und genauer gesagt, an die Befehlsschnittstelleneinrichtung 340.
Ein Device, das eine neue Anforderung annehmen kann, d.h. das sich
in einem Leerlaufmodus befindet, hält die Bereitschaftssignalleitung
gesetzt (Schritt 400). Der Host signalisiert dann eine neue Anforderung
durch das Setzen des Befehltransferanforderungssignals in Schritt
405 und plaziert den Befehlscode auf der Befehlssignalleitung, die
Adresse auf der Adressdatensignalleitung und den Tag auf der Befehlstag-Signalleitung
(Schritt 410).
-
Der Host hält dieses Muster, bis er die
Bereitschaftssignalieitung als gesetzt abtastet (Schritt 415). Dann
plaziert er die Bytefreigabe auf der Befehlsleitung, die Anzahl
von zu übertragenden
Doppelwörtern
auf der Befehlstagleitung und das erste Datenelement, wenn der Befehl
vom Schreibtyp ist, auf der Adressdatensignalleitung (Schritt 420).
Wiederum hält
der Host dieses Muster, bis er die Bereitschaftsleitung als gesetzt
abtastet (Schritt 425).
-
Die Überprüfung in Schritt 425, um festzustellen,
ob das Bereitschaftssignal noch gesetzt ist, befähigt das Device, die Bytefreigabephase
(wenn vom Lesetyp) und/oder die erste Datenphase (wenn vom Schreibtyp)
zu verzögern.
Wenn die Anforderung eine Leseanforderung ist, dann kann der Host gezwungen
sein, das Befehlstransferanforderungssignal herunterzusetzen, um
sicherzustellen, dass Back-to-Back-Prozesse nicht möglich sind
(Schritt 455). Wenn die Anforderung eine Schreibanforderung mit
mehr als einer Datenphase ist (was in Schritt 435 überprüft wird),
dann wird der Host das Befehlstransferanforderungssignal gesetzt
halten und die nächsten
Daten auf der Adressdatensignalleitung plazieren, die nächste Bytefreigabe
auf der Befehlssignalleitung plazieren und den Wert der Befehlstag-Signalleitung
dekrementieren (Schritt 450).
-
Das Device kann das Bereitschaftssignal
heruntersetzen, um die Transmission (Sendung) eines jeden Datenelements
zeitweilig zu unterbrechen (Schritt 440), und die Transmission wird
unterbrochen, bis das Device das Bereitschaftssignal wieder setzt.
Mit jedem Taktzyklus, in dem das Befehlstransferanforderungssignal
und das Bereitschaftssignal als gesetzt abgetastet werden, wird
ein Datenelement gesendet. Mit der Sendung des letzten Datenelements
wird das Befehltag-Signal Null erreichen.
-
Das Devise verfügt auch über die Möglichkeit, ausstehende Datenphasen
durch das Setzen des Flush-Anforderungssignals anstelle des Bereitschaftssignals
für einen
Zyklus auszuwerfen. Wie aus 4 ersichtlich
ist, erfordert die vorliegende Ausgestaltung, dass das Bereitschaftssignal
nicht gesetzt ist (Schritt 440), wenn das Flush-Anforderungssignal
gesetzt wird (Schritt 445). Wenn das Devise ein Flush-Anforderungssignal
sendet, wird der Host das Befehltransferanforderungssignal in Schritt 455
heruntersetzen.
-
Wird nun zu den 5 bis 7 übergegangen, so
werden die Signalformen in weiteren Einzelheiten diskutiert werden,
die auftreten können,
wenn der Prozess des Sendens von Anforderungen in Downstreamrichtung
durchgeführt
wird. In 5 werden zwei
Leseanforderungen in den Zyklen 500 bzw. 510 gesendet.
In jedem Zyklus werden Adressdaten 520, 530 zusammen
mit Befehlsdaten 540, 550 und Befehlstags 560, 570 gesendet.
Wie aus 5 ersehen werden
kann, ist das Bereitschaftssignal zu der Zeit, zu der der zweite
Zyklus 510 beginnt, noch unten. In dem Beispiel von 5 setzt das Devise das Bereitschaftssignal
einen Takt später,
so dass das Devise die Ausführung
des zweiten Zyklus 510 um eine Taktperiode verzögert.
-
In dem Beispiel von 6 wird ein einzelner Schreibzyklus 600 gezeigt,
in dem auf der Adressdatenleitung Adressdaten 610 und eine
Anzahl von Datenelementen 620, 630, 640 übertragen
werden. Nachdem das erste Datenelement 620 übertragen worden
ist, setzt das Devise das Bereitschaftssignal herunter, so dass
die zweite Datenphase 630 um zwei Taktzyklen verzögert wird.
-
Das Beispiel von 7 zeigt wieder einen einzelnen Schreibzyklus 700.
Nach der zweiten Datenphase 730 wird das Bereitschaftssignal
heruntergesetzt, um die dritte Datenphase 740 zu verzögern. Jedoch
wird während
der dritten Datenphase 740 die Flush-Anforderung 750 gesetzt,
so dass das Devise auf die zweite Datenphase folgende Datenphasen auswirft.
-
Wird nun zu 8 übergegangen,
so ist eine Ausgestaltung des Prozesses der Durchführung einer
Upstreamantworttransmission in der Targetschnittstelle gezeigt.
Wie oben erwähnt
wurde, muss das Device zu jeder Non-Posted-Anforderung, die vom Host empfangen
wird, eine Antwort mit dem Tag der Anforderung senden. Antworten
können
in jeder Reihenfolge gesendet werden, sogar ungeordnet (out of order),
d.h. diese Reihenfolge braucht nicht zu der Reihenfolge der Anforderung
zu passen. Die Hostantwortschnittstelleneinrichtung 320 puffert
alle Antworten und verfügt
folglich in der vorliegenden Ausgestaltung über keine Möglichkeit, eine Antworttransmission
zu verzögern
oder zeitweilig zu unterbrechen.
-
Das Device signalisiert den Beginn
einer Antworttransmission durch das Setzen des Antworttransferanforderungssignals
in Schritt 800. Es plaziert weiterhin den Tag auf der Antworttagleitung
und den Beendigungscode auf der Beendigungscodesignalleitung (Schritt
805). Es wird dann in Schritt 810 festgestellt, ob die Antwort Daten
enthält.
Ist dies der Fall, plaziert das Device das erste Datenelement auf der
Leseantwortdatensignalleitung in Schritt 815. Wenn die Antwort mehrere
Datenelemente enthält, kann
das Device das Antworttransferanforderungssignal in Schritt 825
heruntersetzen, um die Antworttransmission zeitweilig zu unterbrechen,
oder es kann die Leitung gesetzt halten, um ein Datendoppelwort
mit jedem Taktzyklus zu senden (Schritt 835).
-
Die Beendigungscodesignalleitung
wird verwendet, um einen Beendigungscode an den Host zu vermitteln.
Ist dieser Code Null, signalisiert das Device, dass der Transfer
vollständig
ist. Beendigungscodes, die nicht Null sind, werden verwendet, um
einen Fehler, einen Transferabbruch oder eine Vervollständigung
mit nicht validierten Daten zu signalisieren.
-
Es kann daher in Schritt 830 überprüft werden,
ob der Beendigungscode Null ist oder nicht. Das Device kann den
Beendigungscode mit jeder Datenphase ändern. Die Antworttransmission
wird dann zu Ende gehen, wenn entweder alle Datenelemente gesendet
worden sind oder der Beendigungscode einen von Null verschiedenen
Wert aufweist und das Antworttransferanforderungssignal gesetzt
ist.
-
Nachdem die Antworttransmission beendet worden
ist, kann das Device das Antworttransferanforderungssignal im Schritt
845 heruntersetzen oder das Anforderungssignal gesetzt halten und
einen neue Antwort plazieren (Schritt 840).
-
Die 9 und 10 zeigen Signalformbeispiele der
oben diskutierten Upstreamantworttransmission. 9 zeigt einen Back-to-Back-Prozess, der
eine Schreib- und eine Leseantwort enthält. Durch Heruntersetzen des
Antworttransferanforderungssignals wird das dritte Datenelement
verzögert.
-
In dem Beispiel von 10 werden die erste und zweite Datenphase 1000, 1010 zeitweilig
unterbrochen und der Beendigungscode während der dritten Datenphase 1020 von
einem Nullcode 1030 in einen von Null verschiedenen Code 1040 geändert, womit
eine Beendigung ohne Vervollständigung
angezeigt wird.
-
In einer anderen Ausgestaltung kann
der Host eine Targetbefehlstransmission oder Antworttransmission
zeitweilig unterbrechen, insbesondere wenn mehr als eine solche
Transmission zur selben Zeit möglich
ist und die Transmissionen von demselben Speicher gelesen und/oder
in ihn geschrieben werden. In dieser Implementierung kann der Host das
Bereitschaftssignal heruntersetzen, während er eine Befehlstransmission
durchführt.
Um eine Antworttransmission zeitweilig zu unterbrechen, könnte ein
anderes Bereitschaftssignal verwendet werden.
-
Wird nun zu 11 übergegangen,
so wird die Sourceschnittstelle der vorliegenden Ausgestaltung gezeigt.
Wiederum wird ein Befehlskanal durch die Signalleitungen gebildet,
die die Befehlsschnittstelleneinrichtung 1110 des Hosts 1100 und
die entsprechende Einheit 1140 des Sourcedevices 1130 verbinden.
Ein Antwortkanal wird gebildet durch die jeweiligen Antwortschnittstelleneinrichtungen 1120, 1150.
In der Sourceschnittstelle werden Anforderungen upstream und Antworten
downstream gesendet.
-
Wird zunächst zu der Upstreamanforderungstransmission übergegangen,
so verdeutlicht 12 die
spezifischen Prozessschritte. Im Schritt 1200 signalisiert das Device
durch Setzen des Befehlstransferanforderungssignals, dass es beabsichtigt,
einen Befehl zu übertragen.
Es können
zu diesem Zwecke eine oder mehrere Leitungen gesetzt werden. Wenn
das Device eine der Anforderungsleitungen setzt, kann es die Beschränkung geben,
in der Lage zu sein, den Befehl und die entsprechenden Daten (wenn
vom Schreibtyp) mit der vollen Schnittstellengeschwindigkeit ohne
Wartezyklen zu liefern. Das Device darf die Anforderungsleitung
nicht heruntersetzen, bis es die Gewährungsleitung (Grant-Leitung)
als gesetzt abtastet. Der Host signalisiert mit der Gewährungsleitung,
wenn er in der Lage ist, eine Transaktion anzunehmen (Schritt 1205).
Er darf nicht eine der Gewährungsleitungen
setzen, ohne die jeweilige Anforderungsleitung zu setzen. Er kann
mehrere oder sogar alle Gewährungsleitungen
setzen und das Device muss in diesem Fall entscheiden, welche Anforderung
es zuerst senden möchte (Schritt
1215).
-
In Schritt 1220 beginnt das Devise
sofort mit dem Senden der Adresse, des Befehlscodes und des Befehlstags
(wenn non-posted), bis es das Bereitschaftssignal als gesetzt abtastet
(Schritt 1225). Es wird dann in Schritt 1230 überprüft, ob es andere unbearbeitete
Anforderungen gibt. Wenn es keine andere unbearbeitete Anforderung
gibt, muss das Devise die jeweilige Anforderungsleitung im Schritt
1235 heruntersetzen; anderenfalls kann es sie gesetzt halten.
-
Es kann dann in Schritt 1240 festgestellt
werden, ob das Bereitschaftssignal noch gesetzt ist. Ist dies der
Fall, sendet das Devise ein Bytefreigabesignal und die Wortzahl
in Schritt 1245 und fährt
mit Schritt 1250 fort. Im Fall einer Lesetransaktion ist der Transfer
nun vollständig.
Wenn die Transaktion eine Schreibtransaktion ist, werden die Daten über die Adressdatenleitung
mit jedem Taktzyklus übertragen, wobei
die Bereitschaftsleitung gesetzt ist, bis die Transmission vollständig ist.
Mit jeder Datenphase wird der Zählwert
auf der Befehlssignalleitung dekrementiert, bis er bei der letzten
Doppelworttransmission Null erreicht.
-
Wird nun zu den Signalformdiagrammen übergegangen,
die Beispiele der Upstreamanforderungstransmission verdeutlichen,
so zeigt 13 den Fall
einer einzelnen Posted-Schreibtransaktion mit zwei Datenphasen 1300, 1310,
bei der der Host die Adresse 1320 um einen Taktzyklus verzögert. 14 verdeutlicht einen Lese-
und Posted-Schreib-Back-to-Back-Zyklus, wobei die Adresse der Lesetransmission
das Signal 1400 ist, die Adresse der Schreibtransmission
das Signal 1410 ist und die Daten der Schreibtransmission
das Signal 1420 sind. 15 verdeutlicht
die Signalformen einer einzelnen Non-Posted-Schreibtransmission
mit einer Adressphase 1500 und einer Datenphase 150.
Durch Heruntersetzen des Bereitschaftssignals unterbricht der Host
zeitweilig die Transmission.
-
Der Downstreamantworttransmissionsprozess
der vorliegenden Ausgestaltung wird in weiteren Einzelheiten in 16 gezeigt. Wie erwähnt, muss das
Device, wenn es eine Non-Posted-Transmission sendet, in der Lage
sein, die jeweilige Antwort mit voller Schnittstellengeschwindigkeit
und ohne Wartezustände
anzunehmen. Antworten können
ungeordnet zurückkommen.
Das Device kann für
die Reihenfolgenwiederherstellung verantwortlich sein, wenn dies notwendig
ist.
-
Der Host beginnt eine Antworttransmission durch
Setzen des Antworttransferanforderungssignals in Schritt 1600. Zur
selben Zeit plaziert er einen Antworttag und einen Beendigungscode
in Schritt 1605. Im Falle einer Leseantwort sendet der Host ferner
das erste Datenelement in Schritt 1615.
-
Wenn die Antwort keine Daten oder
nur ein Datenelement aufweist, dann stellt der Host den abschließenden Beendigungscode
im Schritt 1650 auf die jeweilige Signalleitung und setzt anderenfalls
den Beendigungscode auf einen Wert, der anzeigt, dass die Antwort
noch im Gange ist (Schritt 1625).
-
Während
dieser Zeit kann der Host gezwungen sein, das Anforderungssignal
gesetzt zu halten und den Antworttag und den Beendigungscode unverändert zu
belassen. Der Beendigungscode kann sich auf den abschließenden Beendigungscode
nur ändern,
wenn das letzte Datenelement gesendet wird. Der Host kann Wartezustände einfügen, indem er
das Anforderungssignal heruntersetzt; er kann jedoch gezwungen sein,
den Antworttag und den Beendigungscode unverändert zu halten. Er kann auch Antworten,
die Daten aufweisen, mit Antworten, die keine Daten aufweisen, vermischen.
Der Antworttag und Beendigungscode bekommen die jeweiligen Werte
der eingefügten
Antwort. Der Host kann das Anforderungssignal nach der Antworttransmission heruntersetzen
oder er kann das Anforderungssignal gesetzt halten, um mit einer
neuen Antwort zu beginnen.
-
Mit dem Setzen der Anforderung plaziert
der Host auch die Antwortgültigkeitsintormation
auf den Antwortvalidierungssignalleitungen. Wenn die Antwort nicht
gültig
ist, muss der Host das Validierungssignal nur dann heruntersetzen,
wenn die Antwort gültig
wird, und dieser Wechsel kann während
jedes Zustandes des Anforderungssignals erfolgen. Der Host kann
auch das Validierungssignal gesetzt halten, wenn er das Anforderungssignal
einfügt.
Das bedeutet, dass die gesendete Antwort bereits gültig ist. Der
Host kann auch mehrere Validierungsleitungen zur selben Zeit setzen.
Das Device darf nicht irgendwelche Antwortdaten (einschließlich des
Beendigungscodes) verwenden, bis eine Antwort gültig wird.
-
Das bedeutet, dass die Ausgestaltung
Ordnungsregeln wie etwa solche, die in der HyperTransport-Spezifikation
definiert sind, anwenden kann, insbesondere um Verbindungen zu I/O-Bridges
zu unterstützen.
Die (separate) Validierung von Antworten würde dann auf den Ordnungsregeln
basieren.
-
Signalformbeispiele dieses Prozesses
sind in den 17 bis 20 gezeigt. In 17 ist eine Leseantwort
gezeigt, die um zwei Taktzyklen hingehalten (stalled) wird. Während der
Verzögerung
wird die Antwort validiert. 18 zeigt
den Fall einer Back-to-Back-Lese- und -Schreibantwort, wobei die erste
Antwort später
validiert wird. In dem Beispiel von 19 sind
zwei Antworten gezeigt, die zur selben Zeit validiert werden. In 20 ist eine Leseantwort
gezeigt, die über
eine eingefügte
Schreibantwort verfügt
und um einen Zyklus hingehalten wird.
-
Aus den oben beschriebenen Ausgestaltungen
ist ersichtlich, dass eine On-Chip-Schnittstelle bereitgestellt
wird, die signifikant besser als herkömmliche Techniken ist. Durch
die Bereitstellung einer Targetschnittstelle, die mehrere ausstehende Non-Posted-Anforderungen
unterstützt,
wird die Schnittstellenperformance verbessert. Weiterhin kann die
Sourceschnittstelle, bei der die Daten nicht im Host sondern nur
im Device gespeichert werden, Fläche
auf dem Chip einsparen, da sie weniger Speicher erfordert, und sie
kann die Performance wegen reduzierter Latency verbessern.
-
Somit wird eine verbesserte Schnittstelle
bereitgestellt, die die vollen Leistungseigenschaften von Chip-zu-Chip-Schnittstellen
zu den Peripheriegeräten
herunterführt.
Neben der Verbesserung der Systemperformance können die Pinzahl reduziert und
die Datenprotokolle vereinfacht werden.
-
Während
die Erfindung unter Bezugnahme auf die physikalischen Ausgestaltungen
beschrieben worden sind, die in Übereinstimmung
damit konstruiert worden sind, wird Fachleuten ersichtlich sein, dass
zahlreiche Modifikationen, Variationen und Verbesserungen der vorliegenden
Erfindung im Lichte der obigen Lehren und innerhalb des Umfangs
der beigefügten Ansprüche gemacht
werden können, ohne
von der Idee und dem beabsichtigen Umfang der Erfindung abzuweichen.
Während
beispielsweise die oben beschriebenen Flussdiagramme die Prozessschritte
als in einer spezifischen Abfolge durchgeführt zeigen, ist anzumerken,
dass einige oder alle der Schritte in einer anderen Abfolge oder
sogar simultan durchgeführt
werden können.
Während
ferner die Targetschnittstelle und die Sourceschnittstelle als eine
Anzahl von Signalleitungen enthaltend gezeigt worden sind, können weitere
Signalleitungen bereitgestellt werden, und jede der oben diskutierten
Signalleitungen kann zusätzlich
auch als eine Vielzahl physikalischer Leitungen ausgestaltet sein.
-
Zusätzlich sind solche Bereiche,
in denen davon ausgegangen wird, dass sich Fachleute auskennen,
hier nicht weiter beschrieben worden, um die hier beschriebene Erfindung
nicht unnötig
zu verschleiern. Demgemäß ist zu
verstehen, dass die Erfindung nicht durch die spezifisch verdeutlichten
Ausgestaltungen sondern nur durch den Umfang der beigefügten Ansprüche begrenzt
ist.