-
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,
sowie Southbridgebauelemente und zugehörige Verfahren.
-
2. Beschreibung des Standes
der Technik
-
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 Device 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 Device sowohl eine Sourceeinheit
als auch eine Targeteinheit sein kann und auch der Host sowohl als
Sourceeinheit als auch als Target-einheit 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 Graphic Port) und PCI-Bus (Peripheral Component Interface).
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.
-
Aus
der
US 6,151,651 A eine
Kommunikationsverbindung mit isochronen und asynchronen Prioritätsmodi bekannt,
die Brückenschaltungen
in einem Computersystem verbindet.
-
Die
US 5,764,933 A betrifft
die Vermeidung von Deadlock-Situationen in einem System mit zwei Brücken durch
das Auswerfen (Flushing) von Schreibpuffern in der ersten Brücke.
-
Die
US 6,353,867 B1 beschreibt
eine On-Chip-Schnittstelle für
virtuelle Komponenten.
-
US 6,266,715 B1 offenbart
einen US B-Controller, der einen DMA-Modus aufweist. Ein Kanal kann über ein
DMA-Anforderungssignal von einem Peripheriegerät oder einem Speicherbauelement
aktiviert werden. Ein Microcontroller ist speziell darauf angepasst,
eine Funktionalität
auf einem Chip zu kombinieren. USB kann einen Microcontroller mit
einem Computersystem verbinden. Es wird beschrieben, dass die USB-Urheber
mit einer Pufferung beabsichtigt haben, eine Quelle und eine Bestimmung für USB-Daten
bereitzustellen. Der Microcontroller wird als bevorzugterweise einen
internen Bus enthaltend beschrieben. Der Begriff „Microcontroller” deckt hierbei
alle Produkte ab und bedeutet allgemein eine Ausführungseinheit
mit zusätzlicher
Funktionalität, die
vollständig
auf einer einzelnen monolithischen integrierten Schaltung implementiert
ist. Ein US B-Gerät
kann ein Microcontroller sein. Ein USB-Gerät ist bereit zum Empfangen
oder Senden von Daten, wann immer der USB-Host einen solchen Transfer anfordert.
Ein USB-Empfangs-FIFO ist nicht leer. Ein USB-Sende-FIFO arbeitet
zirkulär,
solange der USB-Empfangs-FIFO nicht voll ist.
-
US 5,007,012 A offenbart
ein Fly-by-Datentransfersystem. Eine DMA-Einrichtung ist zwischen dem
Gerät und
einem Speicher gelegen. In Fly-by-DMA-Lesedatentransfers werden
Daten vom Speicher gelesen und an das anfordernde Gerät unter
Steuerung der DMA-Einrichtung gesendet, jedoch nicht in einem temporären Speicherregister
desselben. Lesedaten können
in einem temporären
Register gespeichert werden. Die DMA-Einrichtung umfasst ein temporäres Register,
das übertragene
Daten hält.
Die Daten aus dem Speicher werden in dem temporären Register gespeichert. Das
temporäre Register
ist in dem DMA-Gerät
gelegen.
-
ÜBERSICHT ÜBER DIE ERFINDUNG
-
Der
Erfindung liegt die Aufgabe zugrunde, einen integrierten Schaltkreischip
mit einer On-Chip-Hochgeschwindigkeitsdatenschnittstelle sowie ein
zugehöriges
Southbridgebauelement und Verfahren bereitzustellen, die die Leistung
der On-Chip-Schnittstelle erhöhen.
-
Die
Erfindung wird durch die Gegenstände der
unabhängigen
Patentansprüche
angegeben. Bevorzugte Ausgestaltungen sind in den Unteransprüchen definiert.
-
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.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
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 Speicherkontroller 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 Bereitschaftssignalleitung 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
Device 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 Device 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 Device das Bereitschaftssignal einen Takt später, so dass das Device 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 Device 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 Device 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 dass die jeweilige Anforderungsleitung gesetzt ist.
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 Device 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 Device 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 Device 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 1510. 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ültigkeitsinformation
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.