-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
Erfindung betrifft allgemein Hostcontroller wie etwa USB-Controller
(USB: Universal Serial Bus) und zugehörige Verfahren und insbesondere Testschaltkreise
und Verfahren in solchen Hostcontrollern.
-
2. Beschreibung des Standes
der Technik
-
USB
wurde ursprünglich
im Jahre 1995 entwickelt, um einen externen Erweiterungsbus zu definieren,
der die Verbindung zusätzlicher
Peripheriegeräte
an ein Computersystem erleichtert. Die USB-Technik wird durch PC-Hostcontrollerhardware und
-software (PC: Personalcomputer) implementiert, sowie durch peripheriefreundliche
Master-Slave-Protokolle, und sie ermöglicht robuste Verbindungen
und Kabelanordnungen. USB-Systeme sind durch Mehrport-Hubs erweiterbar.
-
In
USB-Systemen besteht die Rolle der Systemsoftware darin, eine vereinheitlichte
Sicht auf die Eingabe/Ausgabe-Architektur für die gesamte Anwendungssoftware
dadurch bereitzustellen, dass Hardwareimplementierungsdetails verdeckt
werden. Die Systemsoftware verwaltet insbesondere das dynamische
Anschließen
und Abtrennen von Peripheriegeräten
und kommuniziert mit dem Peripheriegerät, um dessen Identität zu ermitteln.
Während
der Laufzeit veranlasst der Host Transaktionen zu spezifischen Peripheriegeräten, und
jedes Peripheriegerät akzeptiert
seine Transaktionen und antwortet demgemäß.
-
Hubs
werden in das System eingefügt,
um eine zusätzliche
Konnektivität
für periphere
USB-Geräte
bereitzustellen und um angeschlossene Geräte kontrolliert mit Leistung
zu versorgen (Powermanagement). Die Peripheriegeräte sind
Slaves, die auf vom Host gesendete Anforderungstransaktionen reagieren
müssen.
Solche Anforderungstransaktionen enthalten Requests (Anforderungen,
Anfragen) nach detaillierten Informationen über das Gerät und dessen Konfiguration.
-
Während diese
Funktionen und Protokolle bereits in der USB-1.1-Spezifikation implementiert waren,
wurde diese Technik weiter verbessert, um eine höher performante Schnittstelle
bereitzustellen. 1 verdeutlicht ein beispielhaftes
USB-2.0-System, das einen Hostcontroller 100, eine Anzahl
von USB-Geräten 115, 120, 125, 130 und
zwei Hubs 105, 110 umfasst. In dem System von 1 sind
die Hubs 105, 110 zur Erhöhung der Konnektivität eingefügt, jedoch
können
die USB-Geräte
in anderen USB-2.0-Systemen direkt mit dem Hostcontroller 100 verbunden
sein.
-
Wie
oben erwähnt,
stellt USB 2.0 eine höher performante
Schnittstelle bereit, und die Geschwindigkeitsverbesserung kann
bis zu einem Faktor von 40 betragen. Darüber hinaus ist USB 2.0, wie
aus 1 ersichtlich, rückwärtskompatibel zu USB 1.1, da
es gestattet, USB-1.1-Geräte 120, 125, 130 zu verbinden,
um von demselben Hostcontroller 100 betrieben zu werden.
Es können
sogar USB-1.1-Hubs 110 verbunden werden.
-
Wie
aus 1 gesehen werden kann, kann ein USB-1.1-Gerät 120 direkt
mit einem USB-2.0-Hub 105 verbunden werden. Darüber hinaus
kann das USB-1.1-Gerät auch direkt
mit dem Hostcontroller 100 verbunden werden. Dies wird durch
die Fähigkeit
von USB-2.0-Hostcontrollern und -Hubs ermöglicht, sowohl höhere als
auch niedrigere Transmissionsgeschwindigkeiten auf Zwischengerätebasis
zu verhandeln.
-
Wird
nun zu 2 übergegangen,
so wird die Systemsoftware und -hardware eines USB-2.0-Systems verdeutlicht.
Die Systemkomponenten können
hierarchisch organisiert sein, indem mehrere Schichten wie in der
Figur gezeigt definiert werden.
-
In
der allerobersten Schicht läuft
die Clienttreibersoftware 200 auf dem Host-PC, die einem bestimmten
USB-Gerät 230 entspricht.
Die Clientsoftware ist typischerweise Teil des Betriebssystem oder wird
mit dem Gerät
geliefert.
-
Der
USB-Treiber 205 ist ein Systemsoftwarebustreiber, der die
Details des bestimmten Hostcontrollertreibers 210, 220 für ein bestimmtes
Betriebssystem abstrahiert. Die Hostcontrollertreiber 210, 220 stellen
eine Softwareschicht zwischen einer speziellen Hardware 215, 225, 230 und
dem USB-Treiber 205 bereit, um eine Treiberhardwareschnittstelle bereitzustellen.
-
Während die
soweit diskutierten Schichten softwareimplementiert sind, enthält die alleroberste Hardwarekomponentenschicht
die Hostcontroller 215, 225. Diese Controller
sind mit dem USB-Gerät 230 verbunden,
das die Endnutzerfunktion bereitstellt. Bei einem gegebenen USB-Gerät ist das
Gerät natürlich nur
mit einem der Hostcontroller 215, 225 verbunden.
-
Wie
aus der Figur ersichtlich ist, gibt einen Hostcontroller 225,
der ein erweiteter Hostcontroller (EHC: Enhanced Host Controller)
für die
Hochgeschwindigkeits-USB-2.0-Funktionalität ist. Dieser Hostcontroller
arbeitet gemäß der EHCI-Spezifikation
(EHCI: Enhanced Host Controller Interface) für USB 2.0. Auf der Softwareseite
ist dem Hostcontroller 225 ein spezifischer Hostcontrollertreiber
EHCD 220 zugeordnet.
-
Ferner
gibt es Hostcontroller 215 für Voll- und Niedergeschwindigkeitsvorgänge. UHCI
(Universal Host Controller Interface) oder OHCI (Open Host Controller
Interface) sind die zwei Industriestandards, die in den universellen
oder offenen Hostcontrollern (UHC/OHC) 215 zur Bereitstellung von USB-1.1-Hostcontrollerschnittstellen
angewendet werden. Den Hostcontrollern 215 sind universelle/offene
Hostcontrollertreiber (UHCD/OHCD) 210 in der untersten
Softwareschicht zugeordnet.
-
Somit
umfasst das USB-2.0-gemäße Hostcontrollersystem
eine Treibersoftware und Hostcontrollerhardware, die der EHCI-Spezifikation
genügen müssen. Während diese
Spezifikation die Schnittstelle auf Registerebene sowie zugehörige speicherresidente
Datenstrukturen definiert, enthält
sie weder eine Definition noch eine Beschreibung der Hardwarearchitektur,
die erforderlich ist, um einen entsprechenden Hostcontroller aufzubauen.
-
Wird
nun auf 3 Bezug genommen, so sind die
Hardwarekomponenten eines gewöhnlichen Motherboardlayouts
dargestellt. Die Basiselemente, die auf einem Motherboard zu finden
sind, schließen die
CPU (Central Processing Unit, zentrale Verarbeitungseinheit) 300,
eine Northbridge 305, eine Southbridge 310 und
einen Systemspeicher 315 ein. Die Northbridge 305 ist
gewöhnlicherweise
ein einzelner Chip in einem Core-Logic-Chipsatz, der den Prozessor 300 mit
dem Systemspeicher 315 und dem AGP-Bus (AGP: Accelerated
Graphic Port) und dem PCI-Bus (PCI: Peripheral Component Interface)
verbindet. Der PCI-Bus wird in Personalcomputern gewöhnlicherweise
zur Bereitstellung eines Datenpfades zwischen dem Prozessor und
Peripheriegeräten wie
etwa Videokarten, Soundkarten, Netzwerkschnittstellenkarten und
Modems verwendet. Der AGP-Bus ist ein Hochgeschwindigkeitsgrafikerweiterungsbus,
der den Displayadapter und den Systemspeicher 315 direkt
verbindet. AGP arbeitet unabhängig
von dem PCI-Bus.
Es ist anzumerken, dass andere Motherboardlayouts existieren, die
keine Northbridge enthalten oder eine Northbridge ohne AGP- oder
PCI-Optionen aufweisen.
-
Die
Southbridge 310 ist üblicherweise
der Chip in einem System-Core-Logic-Chipsatz, der den IDE-Bus (IDE: Integrated
Drive Electronics) oder EIDE-Bus (EIDE: Enhanced IDE) steuert, den USB-Bus
steuert, der eine Plug-and-Play-Unterstützung ermöglicht,
der eine PCI-ISA-Brücke
(ISA: Industry Standard Architecture) steuert, der den Tastatur/Maus-Controller
verwaltet, der Powermanagementfeatures bereitstellt und andere Peripheriegeräte steuert.
-
USB-Hostcontroller
und andere Hostcontroller in Southbridges oder I/O-Hubs sind Hardwarekomponenten,
die extrem komplex strukturiert sind. Es können somit Fehler im Betrieb
solcher Hostcontroller auftreten und es ist gewöhnlich schwierig aufzudecken,
ob Fehler durch Hardwarekomponenten oder durch den Softwaretreiber
oder durch irgendwelche anderen Hardware- oder Softwarekomponenten
verursacht werden.
-
Aus
diesem Grunde verfügen
Hostcontroller, Hubs und andere Funktionen gewöhnlich über einige Testmechanismen,
die es gestatten, statische und dynamische elektrische Tests durchzuführen. Solche Mechanismen
sind jedoch schwierig zu implementieren und die Tests schwer auszuführen. Beispielsweise
benötigen
USB-1.1-gemäße Controller
eine spezielle Software, die eingestellt ist, um ein physikalisches
Gerät auf
eine Weise zu stimulieren, dass es elektrisch charakterisiert werden
kann. Bei USB-2.0-gemäßen Hostcontrollern
werden verschiedene Testmoden unterstützt, um das Testen auf Kompatibilität (ein Compliance-Testing)
zu erleichtern. Jedoch betreffen diese Testmoden nur den USB-2.0-Hochgeschwindigkeitsdatenverkehr.
-
Es
wurde daher als nachteilig in den Systemen des Standes der Technik
gefunden, insbesondere in USB-Systemen, dass in vielen Fällen viele
verschiedene Testmechanismen bereitgestellt sein müssen und
jede der Diagnosefunktionen ihren eigenen Implementierungsregeln
genügen
muss. Insbesondere in erweiterten USB-2.0-Hostcontrollern unterliegt
das Testen von Voll- und Niedergeschwindigkeitsdatentransfers noch
den Beschränkungen
und Nachteilen der USB-1.1-gemäßen Techniken.
-
W.
Talarek, „USB
2.0 Transceiver and Macrocell Tester (T&MT) Interface Specification", Version 1.0 beschreibt
ein mechanisches und elektrisches Interface für den Transceiver-and-Macroceil-Tester.
-
ÜBERSICHT ÜBER DIE ERFINDUNG
-
Der
Erfindung liegt die Aufgabe zugrunde, einen verbesserten Testmechanismus
für Hostcontroller
für einen
seriellen Bus bereitzustellen, der auf der einen Seite die Testprozedur
vereinfachen oder auf der anderen Seite die verfügbaren Testmoden erweitem kann,
um die Zuverlässigkeit
des Gesamtbetriebs der Hardware und Software zu steigern.
-
Diese
Aufgabe wird durch die Gegenstände der
unabhängigen
Patentansprüche
gelöst.
-
Bevorzugte
Ausgestaltungen sind in den Unteransprüchen angegeben.
-
In
einer Ausgestaltung wird ein USB-Hostcontroller bereitgestellt,
der einen erweiterten Hostcontroller umfasst, der angepasst ist
zum Steuern eines USB-Hochgeschwindigkeitsdatenverkehrs.
Ferner umfasst der USB-Hostcontroller wenigstens einen Begleithostcontroller,
der angepasst ist zum Steuern eines USB-Vollgeschwindigkeits- und/oder USB-Niedergeschwindigkeitsdatenverkehrs,
und eine USB-Transceiver-Makrozelle, die mit dem erweiterten Hostcontroller
verbunden ist, um den Datentransfer zu und von einem USB-Gerät abzuwickeln.
Der erweiterte Hostcontroller umfasst eine Testschaltung zum Steuern
der USB-Transceiver-Makrozelle, um Vollgeschwindigkeits- und/oder Niedergeschwindigkeits-Testfunktionen
durchzuführen.
-
In
einer anderen Ausgestaltung wird ein Southbridgebauelement bereitgestellt,
das eine USB-Funktionalität
aufweist. Das Southbridgebauelement umfasst einen erweiterten USB-Hostcontroller,
der angepasst ist zum Steuern eines Hochgeschwindigkeitsdatenverkehrs,
und eine USB-Transceiver-Makrozelle, die mit dem erweiterten USB-Hostcontroller
verbunden ist, um den Datentransfer zu und von einem USB-Gerät abzuwickeln. Das
Southbridgebauelement umfasst ferner eine Transceiver-Testschaltung
zum Steuern der Transceiver-Makrozelle, um Vollgeschwindigkeits- und/oder
Niedergeschwindigkeits-Testfunktionen durchzuführen.
-
In
noch einer anderen Ausgestaltung kann ein Hostcontroller bereitgestellt
werden zum Steuern des Transfers von Daten zu und von Peripheriegeräten über einen
seriellen Bus. Der Hostcontroller umfasst eine erste Steuerschaltung,
die angepasst ist zum Steuern eines Datentransfers bei einer ersten Datensendegeschwindigkeit,
und eine zweite Steuerschaltung, die angepasst ist zum Steuern eines
Datentransfers bei einer zweiten Datensendegeschwindigkeit, die
niedriger als die erste Datensendegeschwindigkeit ist. Der Hostcontroller
umfasst ferner eine Transceiver-Schaltung,
die mit der ersten Steuerschaltung verbunden ist, um den Datentransfer
zu und von den Peripheriegeräten
bei der ersten und zweiten Datensendegeschwindigkeit abzuwickeln. Die
erste Steuerschaltung umfasst eine Testschaltung zum Steuern der
Transceiver-Schaltung, um Testfunktionen durchzuführen, um
den Betrieb der Transceiver-Schaltung bei der zweiten Datensendegeschwindigkeit
zu testen.
-
In
noch einer anderen Ausgestaltung umfasst ein Computersystem wenigstens
ein USB-Gerät
und ein Southbridgebauelement. Das Southbridgebauelement umfasst
einen erweiterten USB-Hostcontroller, der angepasst ist zum Steuern eines
Hochgeschwindigkeitsdatenverkehrs, und eine USB-Transceiver-Makrozelle, die mit
dem erweiterten USB-Hostcontroller verbunden ist, um den Datentransfer
zu und von dem wenigstens einen USB-Gerät abzuwickeln. Das Southbridgebauelement
umfasst ferner eine Transceiver-Testschaltung zum Steuern der USB-Transceiver-Makrozelle,
um Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen
durchzuführen.
-
In
noch einer anderen Ausgestaltung kann ein Verfahren zum Betreiben
eines USB-Hostcontrollers bereitgestellt werden. Das Verfahren umfasst das
Betreiben eines erweiterten Hostcontrollers, um einen USB-Hochgeschwindigkeitsdatenverkehr
zu steuern, und das Betreiben wenigstens eines Begleithostcontrollers,
um einen USB-Vollgeschwindigkeits- und/oder USB-Niedergeschwindigkeitsdatenverkehr zu
steuern. Das Verfahren umfasst ferner das Abwickeln des Datentransfers
zu und von einem USB-Gerät
in einer USB-Transceiver-Makrozelle.
Darüber
hinaus umfasst das Verfahren das Betreiben einer Testschaltung in
dem erweiterten Hostcontroller, um die USB-Transceiver-Makrozelle
zu steuern, um Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen
durchzuführen.
-
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,
wie die Erfindung gemacht und verwendet werden kann, beschränkend zu
verstehen. 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
beispielhaftes USB-2.0-gemäßes System
verdeutlicht;
-
2 die
Hardware- und Softwarekomponentenschichten in dem System von 1 verdeutlicht;
-
3 ein
gewöhnliches
Motherboardlayout verdeutlicht;
-
4 die
Hauptkomponenten des USB-2.0-gemäßen Hostcontrollers
gemäß einer
Ausgestaltung verdeutlicht;
-
5 ein
Blockdiagramm ist, das die Komponenten des erweiterten Hostcontrollers
verdeutlicht, der eine Komponente der Anordnung von 4 ist;
-
6 schematisch
die Verbindung zwischen einem Southbridgebauelement gemäß einer
Ausgestaltung und einem USB-Gerät
verdeutlicht; und
-
7 ein
Timingdiagramm ist, das ein Beispiel eines Testpakets im Niedergeschwindigkeitsmodus
gemäß einer
Ausgestaltung verdeutlicht.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Die
verdeutlichten Ausgestaltungen der vorliegenden Erfindung werden
unter Bezugnahme auf die Zeichnungen beschrieben werden, in denen
gleiche Elemente und Strukturen durch gleiche Bezugszeichen angegeben
sind.
-
Bevor
die erweiterte Testmodusunterstützung
für Hostcontroller
gemäß den Ausgestaltungen im
einzelnen diskutiert wird, wird ein beispielhafter Aufbau vorgestellt,
wie ein Hostcontroller gemäß einer
Ausgestaltung im allgemeinen eingerichtet sein kann. Obwohl die
folgenden Ausgestaltungen die USB-Technik betreffen, ist anzumerken, dass
andere Ausgestaltungen möglich
sind, in denen der Datentransfer zu und von Peripheriegeräten über einen
seriellen Bus, der kein USB-Bus ist, gesteuert wird.
-
Wird
nun auf die Zeichnungen und insbesondere auf 4 Bezug
genommen, so sind die Hauptkomponenten eines USB-2.0-gemäßen Hostcontrollers 400 gemäß einer
Ausgestaltung gezeigt. Im Allgemeinen umfasst der Hostcontroller
drei Hauptkomponenten: den erweiterten Hostcontroller (EHC) 225, einen
oder mehrere Begleithostcontroller 215 und den Port-Router 415.
-
Der
erweiterte Hostcontroller 225 wickelt den USB-2.0-Hochgeschwindigkeitsverkehr
ab. Zusätzlich
steuert er den Port-Router 415.
-
In
der Begleithostcontrollereinheit 215 der vorliegenden Ausgestaltung
gibt es zwei OHCI-gemäße Hostcontroller,
OHC0 405 und OHC1 410. Diese Controller wickeln
den gesamten USB-1.1-gemäßen Verkehr
ab und können
die Legacy-Tastaturemulation für
nicht USB-gemäße Umgebungen
enthalten.
-
Der
Port-Router 415 weist den physikalischen Portschnittstellen
ihre jeweiligen Eigner zu. Die Eignerschaft wird durch EHC-Register
gesteuert und standardmäßig werden
alle Ports auf die Begleithostcontroller geroutet, um die Funktion
eines Systems zu ermöglichen,
das nur USB-1.1-gemäße Treiber aufweist.
Wenn ein USB-2.0-gemäßer Treiber
in dem System vorhanden ist, wird der Port-Router die Ports entweder
einem Begleithostcontroller 405, 410 für Nieder-
und Vollgeschwindigkeitsgeräte
und -hubs (USB-1.1-Verkehr) oder dem EHC 225 für Hochgeschwindigkeitsgeräte und -hubs
zuweisen.
-
Das
bedeutet, dass der in 4 gezeigte USB-2.0-Hostcontroller
der EHCI-Spezifikation
genügt
und die Verwendung bestehender OHCI-USB-1.1-Hostcontroller ermöglicht, wobei eine minimale
Anpassung erforderlich ist, um eine Schnittstelle zu dem Port-Routerblock 415 anstelle
zu der physikalischen USB-1.1-Treiberzelle auszubilden.
-
Eine
Plug-and-Plag-Konfiguration kann von jedem Hostcontroller 405, 410, 225 separat
behandelt werden. Es kann eine durch EHCI auferlegte Beschränkung geben,
wonach die OHCI-Controller 215 niedrigere Funktionsnummern
haben müssen
als der EHCI-Controller 225.
-
Der
USB-2.0-gemäße Hostcontroller
von 4 kann als Hardwarearchitektur definiert sein, um
einen EHCI-gemäßen Hostcontroller
zur Integration in eine Southbridge 310 zu implementieren.
Der Hostcontroller sitzt dann zwischen den analogen USB-2-Eingabe/Ausgabe-eins
und einem Verbindungsschnittstellenmodul, um in Upstreamrichtung eine
Schnittstelle in Richtung auf den Systemspeicher bereitzustellen,
z.B. eine Schnittstelle zu einer Northbridge, wenn eine solche in
dem System vorhanden ist. Diese Schnittstelle kann eine interne
HyperTransportTM-Schnittstelle sein. Die
HyperTransport-Technologie ist eine hochperformante Hochgeschwindigkeits-Punkt-zu-Punkt-Verbindung,
um integrierte Schaltungen auf einem Motherboard miteinander zu
verbinden. Sie kann signifikant schneller sein als ein PCI-Bus bei
einer äquivalenten
Anzahl von Pins. Die HyperTransport-Technologie wurde entworfen, um eine
signifikant höhere
Bandbreite als aktuelle Technologien bereitzustellen, um Antworten mit
geringer Latenz zu verwenden, um eine geringe Pinzahl bereitzustellen,
um zu Legacy-PC-Bussen kompatibel zu sein, um auf neue Systemnetzwerkarchitekturbusse
erweiterbar zu sein, um für
Betriebssysteme transparent zu sein, und um geringe Auswirkungen
auf Peripherietreiber zu haben.
-
Somit
wird in der Ausgestaltung von 4 ein HyperTransport-basierter
USB-Hostcontroller
bereitgestellt, bei dem ein erweiterter Hostcontroller 225 für die Abwicklung
des gesamten Hochgeschwindigkeits-USB-Verkehrs sowie für die Steuerung
der Porteignerschaft für
sich selbst und die Begleitcontroller 215 über den
Port-Router 415 verantwortlicht ist. Nach einem Rücksetzen
beim Einschalten oder einem softwaregesteuerten Reset des EHC 225 kann
er standardmäßig einen
Zustand einnehmen, in dem alle Ports von den Begleithostcontrollern 215 besessen
und gesteuert werden, alle Betriebsregister ihre jeweiligen Defaultwerte
aufweisen und der EHC 225 angehalten ist, d.h. er weder
Deskriptoren aus dem Systemspeicher 315 holt noch irgendeine USB-Aktivität herausgibt.
Im Normalbetrieb kann der EHC 225 isosynchrone und Interrupttransfers
von einer periodischen Liste verarbeiten sowie Bulk und Steuerungen
von einer asynchronen Liste. Beide Listen können leer sein oder ihre Abarbeitung
kann softwaregesteuert ruhen.
-
Wird
nun auf 5 Bezug genommen, so werden
die Komponenten des erweiterten Hostcontrollers EHC 225 in
weiteren Einzelheiten gezeigt. Wie aus der Figur gesehen werden
kann, kann der erweiterte Hostcontroller 225 in eine 100-MHz-Core-Taktdomäne und eine
60-MHz-Taktdomäne
aufgeteilt werden. Während
die 60-MHz-Taktdomäne
die Schaltung für
das Routen von Transaktionen auf physikalische Geräte enthält, führt die
100-MHz-Taktdomäne die eigentliche
Deskriptorverarbeitung durch. Es ist anzumerken, dass die Domänen in anderen Ausgestaltungen
Taktraten aufweisen können,
die von den obigen Werten 100 MHz und 60 MHz abweichen. In diesen
Ausgestaltungen weist der Deskriptorverarbeitungsdomänentakt
noch eine Frequenz auf, die wenigstens so hoch wie die der anderen
Domäne
ist, oder höher.
-
In
der 100-MHz-Domäne
wird die Abwicklung des Datenverkehrs zu und von dem Systemspeicher
durch den Stub 500 bewerkstelligt. Der Stub 500 weist
die internen Quellen und Senken den jeweiligen HyperTransport-Strömen zu,
d.h. Posted Requests, Non-Posted Requests, Responses (Antworten).
Der Stub 500 arbitriert die interne HyperTransport-Schnittstelle
zwischen allen internen Busmastern, d.h. der DMA-Empfangseinrichtung
(DMA: Direct Memory Access) 510, dem Deskriptorcache 545, der
Deskriptorverarbeitungseinrichtung 525 und der DMA-Sendeeinrichtung 550.
Somit arbitriert der Stub 500 zwischen dem Holen eines
Deskriptors, dem Zurückschreiben
von Deskriptoren, dem Empfangen und dem Senden von Daten.
-
Der
Stub 500 ist mit einem Register-File 505 verbunden,
das die EHCI-Register
enthält.
In der vorliegenden Ausgestaltung speichern die EHCI-Register Daten bezüglich der
PCI-Konfiguration, der Hostcontrollerfähigkeiten und der Hostcontrollerbetriebsmodi.
-
Die
Deskriptorverarbeitungseinrichtung 525 ist mit dem Stub 500 verbunden
und umfasst drei Untereinheiten: die Deskriptorholeinrichtung (DescrFetch) 530,
die Deskriptorspeichereinrichtung (DescrStore) 535 und
die Transaktionsvervollständigungsmaschine
(TACM) 540. Die Deskriptorholeinrichtung 530 bestimmt
basierend auf Timinginformationen und Registereinstellungen, welcher
Deskriptor zu holen oder als nächster
im voraus zu holen ist, und sendet die Anforderung an den Stub 500 und/oder
an den Deskriptorcache 545. Wenn sie den Deskriptor empfängt, sendet
sie ihn an die Deskriptorspeichereinrichtung 535.
-
Die
Deskriptorspeichereinrichtung 535 hält die im voraus geholten Deskriptoren.
Durch die Durchführung
eines Speichermanagements liegt ihre Hauptfunktion in der Bereitstellung
einer Speicherkapazität,
um Speicherzugriffslegacies für
Deskriptorholvorgänge
zu mitteln.
-
Die
Transaktionsvervollständigungsmaschine 540 ist
mit der Deskriptorholeinrichtung 530 verbunden, um die
Statusrückschreibung
zu Deskriptoren zu managen. Zu diesem Zweck ist die Transaktionsvervollständigungsmaschine 540 mit
dem Deskriptorcache 545 verbunden.
-
Der
Cache hält
Deskriptoren, die mittels der Deskriptorholeinrichtung 530 für schnellen
wiederholten Zugriff im voraus geholt worden sind. Die in dem Deskriptorcache 545 gehaltenen
Deskriptoren werden von der Transaktionsvervollständigungsmaschine 540 aktualisiert
und über
den Stub 500 in den Systemspeicher eventuell zurückgeschrieben.
Der Deskriptorcache 545 kann vollassoziativ mit Write-Through-Eigenschaften
sein. Er kann ferner das Ersetzen des Inhalts abhängig von
dem Alter der gespeicherten Deskriptoren steuern.
-
Wie
aus 5 ersichtlich ist, werden weiterhin die DMA-Sendeeinrichtung 550 und
die DMA-Empfangseinrichtung 510 bereitgestellt. Die DMA-Sendeeinrichtung 550 umfasst
eine Datenholeinrichtung (DataFetch) 555 und einen Datensendepuffer
(TxBuf) 560. Die Datenholeinrichtung 555 ist der
DMA-Lesebusmaster
und untersucht die Einträge
in der Deskriptorspeichereinrichtung 535 der Deskriptorverarbeitungseinrichtung 525.
Die Datenholeinrichtung 555 holt die entsprechenden Daten
im voraus und leitet sie an den Datensendepuffer 560 weiter.
-
Der
Datensendepuffer 560 kann ein FIFO-Puffer (FIFO: First
In First Out) sein, und seine Funktion entspricht der der Desciptorspeichereinrichtung 535 darin,
dass sie es gestattet, genügend
Daten für
herausgehende Transaktionen im voraus zu holen, um die Speichersystemlatenz
abzudecken. Der Datensendepuffer 560 kann ferner der Taktdomänenübersetzung
dienen, um die verschiedenen Takte der Domänen zu behandeln.
-
Die
DMA-Empfangsmaschine 510 enthält die Datenschreibeinrichtung
(DataWrite) 515, die als DMA-Schreibbusmastereinrichtung
dient, um die empfangenen Daten, die in dem Datenempfangspuffer
(RxBuf) 520 gespeichert sind, an ihren jeweiligen Platz
im Systemspeicher zu schieben. Der Datenempfangspuffer 520 kann
ein einfacher FIFO-Puffer sein und ebenfalls der Taktdomänenübersetzung
dienen.
-
In
der 60-MHz-Taktdomäne
wird eine Rahmentimingeinrichtung (FrameTiming) 565 bereitgestellt,
die die USB-Masterzeitreferenz ist. Ein Taktpuls der Rahmentimingeinrichtung
entspricht einem ganzzahligen Vielfachen (z.B. 8 oder 16) der USB-Hochgeschwindigkeitsbitzeiten.
Die Rahmentimingeinrichtung 565 ist mit der Deskriptorspeichereinrichtung 535 und
dem Paketbearbeitungsblock 570 verbunden.
-
Der
Paketbearbeitungsblock 570 umfasst eine Paketaufbaueinrichtung
(PktBuild) 585, die die notwendigen USB-Busoperationen
zum Senden von Daten und Handshakes konstruiert, und einen Paketdekodierer
(PktDecode) 575, der empfangene USB-Pakete zerlegt. Weiterhin
wird eine Transaktionssteuereinrichtung (TaCtrl) 580 bereitgestellt,
die die Paketaufbaueinrichtung 585 und den Paketdekodierer 575 überwacht.
Weiterhin umfasst der Paketbearbeitungsblock 570 eine CRC-Einrichtung
(CRC: Cyclic Redundancy Check) 590 zum Erzeugen und Überprüfen von
CRC-Daten für
gesendete und empfangene Daten.
-
Die
Paketaufbaueinrichtung 585 und der Paketdekodierer 575 des
Paketbearbeitungsblocks 570 sind mit dem Root-Hub 595 verbunden,
der portspezifische Steuerregister, eine Verbindungsdetektionslogik
und eine Streu/Einsammelfunktionalität für Pakete zwischen dem Paketbearbeitungsblock 570 und dem
Port-Router umfasst.
-
Während die
obige Beschreibung dazu diente, die Datenverarbeitung in einem USB-Hostcontroller
gemäß einer
Ausgestaltung in weiteren Einzelheiten zu beschreiben, wird nun
die erweiterte Testmodusunterstützung
für Host controller
gemäß den Ausgestaltungen
unter Bezugnahme auf 6 und 7 beschrieben
werden.
-
6 verdeutlicht
die Verbindung zwischen einem Southbridgebauelement 600 gemäß einer Ausgestaltung
und einem USB-Gerät 230.
Sowohl das Southbridgebauelement 600 als auch das USB-Gerät 230 umfassen
eine USB-Transceiver-Makrozelle
(UTM) 610, 630. Diese Blöcke behandeln das USB-Protokoll und die
Signalisierung der unteren Ebene, einschließlich von Features wie etwa
der Datenseriellwandlung und Datenrückwandlung, des Bitstuffing
und der Taktwiedergewinnung und Taktsynchronisation.
-
In
der Ausgestaltung von 6 ist das USB-Gerät 230 als
USB-2.0-Gerät
gezeigt. Es ist jedoch anzumerken, dass die Southbridge 600 in
einer anderen Ausgestaltung mit einem USB-1.1-Gerät verbunden
sein kann. In diesem Falle wird eine USB-2.0-Transceiver-Makrozelle 610 nur
innerhalb der Southbridge 600 bereitgestellt.
-
Wird
nun zu der Ausgestaltung von 6 zurückgegangen,
so unterstützen
die USB-2.0-Transceiver-Makrozellen 610, 630 all
diejenigen Transmissionsraten für
serielle Daten, die in der USB-2.0-Spezifikation spezifiziert sind:
die Hochgeschwindigkeitsrate von 480 Mbit/s, die Vollgeschwindigkeitsrate
von 12 Mbit/s und die Niedergeschwindigkeitsrate von 1.5 Mbit/s.
In dem USB-Gerät 230 verfügt die USB-2.0-Transceiver-Makrozelle 630 über eine UTM-Schnittstelle zu
der seriellen Schnittstelleneinrichtung 640, die mit der
gerätespezifischen
Logik 650 verbunden ist, um eine Verbindung zur Gerätehardware
herzustellen.
-
In
der Southbridge 600 werden die Transceiver-Makrozelle 610 und
der erweiterte Hostcontroller 225 bereitgestellt. Zusätzlich wird
eine Testschaltung 620 bereitgestellt, die mit der Transceiver-Makrozelle 610 verbunden
ist. Obwohl die Testschaltung 620 in 6 als
von dem erweiterten Hostcontroller 225 getrennt gezeigt
wird, ist anzumerken, dass die Testschaltung 620 auch in dem
erweiterten Hostcontroller 225 umfasst sein kann. In diesem
Falle wird eine Testschaltung 620 in dem erweiterten Hostcontroller 225 bereitgestellt
zum Steuern der Transceiver-Makrozelle 610 der Southbridge 600,
um Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen
durchzuführen.
-
Bevor
zu den Einzelheiten dieser Testfunktionen übergegangen wird, ist zu erwähnen, dass
die Transceiver-Makrozellen 610, 630 imstande
sind, einen NRZI-Datentransfer (NRZI: Non Return to Zero Invert)
zu behandeln. NRZI ist ein Verfahren zum Kodieren serieller Daten,
bei dem die Einsen und Nullen durch entgegengesetzte und abwechselnde
hohe und niedrige Spannungen repräsentiert sind (auf die im folgenden
als K- oder J-Zustände
Bezug genommen wird), wobei es zwischen den kodierten Bits keine
Rückkehr
zur Nullspannung gibt. Diese Technik hält den Sendetakt und Empfangstakt
synchronisiert und ist insbesondere in Situationen nützlich,
in denen Bitstuffing angewendet wird.
-
Wie
bereits oben erwähnt,
unterstützen USB-2.0-gemäße Hostcontroller
verschiedene Testmoden, um in dem Hochgeschwindigkeitsdatenverkehr
das Kompatibilitätstesten
zu erleichtern. Diese Testmodusunterstützung ist im Abschnitt 7.1.20
der USB-2.0-Spezifikation beschrieben. In den Ausgestaltungen wird
diese Technik nun auch auf Vollgeschwindigkeits- und/oder Niedergeschwindigkeitsdatentransfers
angewendet.
-
Im
Einzelnen steuert die Testschaltung 620, die in dem erweiterten
Hostcontroller 600 enthalten sein kann, die USB-Transceiver-Makrozelle 610,
um Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen
durchzuführen.
Eine dieser Testfunktionen ist eine Test-J-Funktion, die die Transceiver-Makrozelle 610 zwingt,
den J-Zustand einzunehmen und in diesem Zustand zu verbleiben, bis
eine Beendigungsaktion stattfindet. Eine andere Testfunktion ist
die Test-K-Funktion, die die Transceiver-Makrozelle 610 zwingt,
den K-Zustand einzunehmen und in diesem Zustand zu verbleiben, bis
eine Beendigungsaktion stattfindet. Die Test-J- und Test-K-Funktionen ermöglichen
das Testen der hohen Ausgangtreiberpegel selbst in den Voll- und
Niedergeschwindigkeitsmoden.
-
Eine
andere Vollgeschwindigkeits- und Niedergeschwindigkeitstestfunktion
ist die Single-Ended-Zero-Funktion (SE0), die die USB-Transceiver-Makrozelle 610 zwingt,
einen Vollgeschwindigkeits- oder Niedergeschwindigkeitsempfangsmodus
einzunehmen und in diesem Modus zu verbleiben, bis eine Beendigungsaktion
stattfindet. Dies ermöglicht
das Testen der Ausgangsimpedanz, der niedrigen Ausgangsspannung
und der Ladecharakteristiken und stellt ferner einen allgemein verwendbaren
Stimulus/Antworttest für
grundlegende Funktionstests bereit.
-
Es
kann eine andere Testfunktion zum Testen des Vollgeschwindigkeits- und/oder Niedergeschwindigkeitsbetriebs
der Transceiver-Makrozelle 610 geben, indem Testpakete
verwendet werden. Die Verwendung eines Testpakets zwingt die Transceiver-Makrozelle 610,
wiederholt ein Voll- oder Niedergeschwindigkeitstestmuster zu senden,
bis eine Beendigungsaktion stattfindet. Diese Testfunktion kann das
Testen von Anstiegs- und Abfallzeiten, Eyepatterns, Jitter und anderen
dynamischen Signalformspezifizierungen ermöglichen. Ein Beispiel der Verwendung
einer Testfunktion, die ein Testpaket verwendet, ist in 7 gezeigt.
-
7 verdeutlicht
ein Niedergeschwindigkeitsmodusbeispiel, bei dem die Datensignalleitung und
die Single-Ended-Zero-Signalleitung gesetzt sind, um ein Testmuster
zu senden, das eine Zusammenfügung
von vier KJ-Zustandspaaren,
zwei Single-Ended-Zero-Signalen und zwei J-Zuständen ist. Wenn man die Leerperiode
am Ende der Testpaketperiode mit einbezieht, werden 14 Taktzyklen
benötigt,
um das Testmuster zu senden.
-
Es
ist anzumerken, dass in anderen Ausgestaltungen Testmuster verwendet
werden können, die
in der Abfolge von K-Zuständen,
J-Zuständen
und Single- Ended-Zero-Signalen
von der Sequenz in dem Testmuster von 7 abweichen.
Darüber
hinaus können
die Längen
der Testmuster sogar von dem Wert von 14 Taktzyklen abweichen.
-
Nimmt
man die oben diskutierten Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen,
so erweitert das Hostcontrollerbauelement nach den Ausgestaltungen
die existierenden Test- und Debugfeatures, um einen erschöpfenden Test
der USB-Transceiver-Makrozelle 610 zu
ermöglichen.
-
Um
diese Testmodusunterstützungserweiterungen
zu steuern und durchzuführen,
können
zusätzliche
Register bereitgestellt werden. Wie bereits oben erwähnt wurde,
speichert das Registerfile 505 Daten bezüglich der
Hostcontrollerfähigkeiten
und Hostcontrollerbetriebsmoden. Oberhalb dieser EHC-Register können die
folgenden zusätzlichen Register
in dem Registerfile 505 bereitgestellt werden: ein Steuerregister,
ein Statusregister und ein Verkäuferbefehlssteuerregister.
-
Das
Steuerregister speichert Daten, die eine der Vollgeschwindigkeits-
und Niedergeschwindigkeitstestfunktionen angeben. Ferner speichert
das Steuerregister ein Flag, das anzeigt, ob die angegebene Testfunktion
gegenwärtig
durchgeführt
werden soll.
-
Das
Statusregister speichert Daten, die einen Status angegeben, wenn
die USB-Transceiver-Makrozelle 610 gesteuert wird, um eine
der Voll- oder Niedergeschwindigkeitstestfunktionen durchzuführen. Darüber hinaus
kann das Statusregister ein Flag speichern, das das Auftreten eines
Datensendefehlers anzeigt. Das Statusregister kann weiterhin Zusatzinformationen
bezüglich
der Leitungszustände und
Verbindungszustände
oder andere in Bezug bestehende Informationen speichern.
-
Das
Verkäuferbefehlssteuerregister
gestattet den direkten Zugriff auf die Verkäuferbefehlsports der USB-Transceiver-Makrozelle 610.
Das Register kann einen Verkäufersteuerbefehl
oder eine Indikation desselben speichern und kann ferner ein Flag
speichern, das anzeigt, dass der Verkäufersteuerbefehl geladen werden
soll. Wenn der Ladevorgang beendet ist, kann das Bit automatisch
durch die Hardware gelöscht
werden. Die Software kann das Register dann lesen, um alle benötigten Statusinformationen zu
erhalten.
-
Wie
bereits zuvor erwähnt
wurde, erweitern die Testmoden, die von den Ausgestaltungen unterstützt werden,
die Testtechniken, die bereits zum Testen des Hochgeschwindigkeitsverkehrs
verfügbar waren,
auf Vollgeschwindigkeits- und
Niedergeschwindigkeitstransfermoden. Dies kann bewerkstelligt werden
durch die Bereitstellung einer Testschaltung in dem erweiterten
Hostcontroller, d.h. in der Einheit, die den Hochgeschwindigkeitsdatenverkehr steuert.
Die Testschaltung in dem erweiterten Hostcontroller steuert die
USB-Transceiver-Makrozelle 610,
um Vollgeschwindigkeits- und/oder Niedergeschwindigkeitstestfunktionen
durchzuführen.
-
Während die
obigen Ausgestaltungen auf USB-2.0-gemäße Hostcontroller gerichtet
waren, ist anzumerken, dass andere Ausgestaltungen Hostcontroller
betreffen können,
die keine USB-Hostcontroller sind. Solche Hostcontroller steuern
den Datentransfer zu und von Peripheriegeräten über einen seriellen Bus. Es
kann eine erste Steuerschaltung zum Steuern des Datenverkehrs bei
einer ersten Geschwindigkeit und eine zweite Steuerschaltung zum Steuern
des Transfers bei einer zweiten Geschwindigkeit geben, die niedriger
als die erste Geschwindigkeit ist. Die erste Steuerschaltung umfasst
eine Testschaltung zum Steuern einer Transceiver-Schaltung, um Testfunktionen
durchzuführen,
die die zweite Geschwindigkeit betreffen.
-
In
weiteren Ausgestaltungen können
Southbridgebauelemente bereitgestellt werden, die eine Schaltung
zum Bereitstellen der oben beschriebenen erweiterten Testmodusunterstützung eingebaut
haben.
-
Während die
Erfindung in Bezug auf die physikalischen Ausgestaltungen beschrieben
worden ist, die in Übereinstimmung
damit konstruiert worden sind, wird Fachleuten ersichtlich sein,
dass verschiedene 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 beabsichtigten Umfang der Erfindung abzuweichen.
Zusätzlich
sind solche Gebiete, in denen davon ausgegangen wird, dass sich
Fachleute auskennen, hier nicht beschrieben worden, um die hier
beschriebene Erfindung nicht unnötig
zu verschleiern. Es ist demgemäss
zu verstehen, dass die Erfindung nicht durch die spezifisch verdeutlichten Ausgestaltungen,
sondern nur durch den Umfang der beigefügten Ansprüche beschränkt wird.