-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die
Erfindung betrifft allgemein Hostcontroller wie etwa USB-Hostcontroller
(USB: Universal Serial Bus), zugehörige Betriebsverfahren, Southbridgebauelemente
und Computersysteme und insbesondere Cachemechanismen zum Speichern
im voraus geholter Deskriptoren.
-
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.
-
In
Southbridges und anderen integrierten Schaltkreischips, die zur
Steuerung des Datenverkehrs in Computersystemen verwendet werden,
können
Hostcontroller wie etwa USB-Hostcontroller Deskriptoren verwenden.
Ein Deskriptor ist eine Datenstruktur mit einem definierten Format,
die Informationen beinhaltet, die für einige in Bezug stehende
Sachverhalte beschreibend sind.
-
Beispielsweise
definiert die USB-Spezifikation Deskriptoren eines eher hohen Protokollniveaus.
Solche Deskriptoren können
von USB-Geräten
verwendet werden, um ihre Attribute zu berichten. Andere Deskriptoren
sind beispielsweise solche, wie sie in den Abschnitten 3.3 bis 3.7
der EHCI-Spezifikation
definiert sind. Solche Deskriptoren beschreiben Attribute des Datentransfers
zu und von den Geräten,
die vom Hostcontroller gesteuert werden.
-
Bei
der Verwendung von Deskriptoren in Hostcontrollern können die
Deskriptoren geholt werden, indem Requests (Anforderungen, Anfragen)
nach Deskriptoren ausgesandt und Deskriptoren in Erwiderung auf die
Anforderungen empfangen werden. Dies kann jedoch ein ziemlich ineffizienter
Mechanismus werden, insbesondere wenn auf Deskriptoren schnell zugegriffen
werden muss. Wenn jedoch Deskriptoren im voraus geholt werden, ist
eine signifikante Speicherkapazität erforderlich, die die Schaltkreisstruktur
des Geräts
unangemessen kompliziert.
-
Die
US 2002/0052987 A1 offenbart eine Hostcontrollerschnittstellen-Deskriptorholeinrichtung.
Die Deskriptorholeinrichtung soll das Im-Voraus-Holen von Deskriptoren
erleichtern. Die Deskriptorholeinrichtung dient dem Im-Voraus-Holen
und Bewahren von Deskriptoren. Die Deskriptoren werden in Erwiderung
auf Deskriptorrequests geholt und gespeichert. Eine Deskriptorholkontext-Abitriereinrichtung überwacht
den Deskriptorspeicher, um Kontexte aufzufinden, denen es an Deskriptoren
fehlt, die in dem Deskriptorspeicher gespeichert sind. Wenn die
Deskriptorholkontext-Abitriereinrichtung einen Kontext auffindet,
dem Deskriptoren in dem Deskriptorspeicher fehlen, so weist die
Deskriptorholkontext-Abitriereinrichtung dem nächsten Request, der einen solchen
Deskriptor benötigt,
einen Holprioritätswert
zu. Wenn die Abitriereinrichtung einem Deskriptorrequest einen höchsten Prioritätswert zuweist,
steuert die Abitriereinrichtung einen Deskriptorholkontext-Multiplexer.
-
Die
US 5,526,511 offenbart ein
Cachemanagementverfahren für
einen Post-Store-Cache.
Dem Management unterliegt der verfügbare Cache-Speicher. Cacheersetzungsverfahren
sollen verwendet werden, um einen alloziierbaren Teil des Cachespeichers
auszuwählen,
in dem Daten zu speichern sind, wenn ein Cacheverlust angetroffen
wird. Ein Ersetzungskandidatursegment wird in dem Cachespeicher
etabliert, wobei eine Letztverwendungszone vor dem Segment bereitgestellt
wird. Diese Zone umfasst eine Destage-Zone vor dem Segment. Round-Robin-Cachemanagementverarbeitung
wird beschrieben.
-
US 6,311,212 B1 offenbart
Systeme und Verfahren zur On-Chip-Speicherung virtueller Verbindungsdeskriptoren.
-
Die
nachveröffentlichte
DE 102 11 054 A1 beschreibt
einen USB-Hostcontroller mit einer Deskriptorholeinrichtung und
einem Deskriptorcache.
-
Aus
der
US 6,105,111 A sind
ein Verfahren und eine Vorrichtung zur Bereitstellung einer Cachemanagementtechnik
bekannt, bei der jeder Einfügung
in den Cache ein Alterswert zugewiesen ist.
-
-
Die
US 4,334,289 A beschreibt
eine Vorrichtung zum Verzeichnen der Benutzungsreihenfolge von Speicherorten.
-
ÜBERSICHT ÜBER DIE
ERFINDUNG
-
Der
Erfindung liegt die Aufgabe zugrunde, einen Hostcontroller, ein
Southbridgebauelement, ein Verfahren zum Betreiben eines Hostcontrollers
und ein Computersystem bereitzustellen, bei denen die Effizienz des
gesamten Betriebs verbessert wird, ohne die zum Speichern von Deskriptoren
benötigte
Speicherkapazität
stark zu erhöhen.
-
Diese
Aufgabe wird durch die Gegenstände
der unabhängigen
Patentansprüche
gelöst.
-
Bevorzugte
Ausgestaltungen sind in den Unteransprüchen angegeben.
-
Eine
verbesserte Deskriptorverarbeitungstechnik für Hostcontroller wird bereitgestellt,
die die Effizienz des gesamten Gerätebetriebs verbessern kann, wobei
die zum Speichern von Deskriptoren benötigte Speicherkapazität in einem
vernünftigen
Bereich gehalten wird.
-
In
einer Ausgestaltung wird ein Hostcontroller bereitgestellt, der
eine Deskriptorholeinrichtung umfasst, die angepasst ist, um Anforderungen
für Deskriptoren
auszusenden und Deskriptoren in Erwiderung auf die Anforderungen
zu empfangen. Die Deskriptoren sind Datenstrukturen zum Beschreiben
von Attributen des Datentransfers zu und von Geräten, die von dem Hostcontroller
gesteuert werden. Der Hostcontroller umfasst ferner einen Deskriptorcache,
der angepasst ist zum Steuern im voraus geholter Deskriptoren. Der
Deskriptorcache ist weiterhin angepasst zum Speichern individueller
Ersetzungssteuerwerte für
wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren.
Der Hostcontroller ist eingerichtet zum Ersetzen eines gespeicherten
im voraus geholten Deskriptors in dem Deskriptorcache durch einen
erneut im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwertes,
der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist.
-
In
einer anderen Ausgestaltung kann ein Southbridgebauelement bereitgestellt
werden, das eine USB-Hostcontrollerschaltung aufweist. Die USB-Hostcontrollerschaltung
umfasst eine Deskriptorholeinrichtung, die angepasst ist, um Anforderungen
für Deskriptoren
auszusenden und Deskriptoren in Erwiderung auf die Anforderungen
zu empfangen. Die Deskriptoren sind Datenstrukturen zum Beschreiben
von Attributen des Datentransfers zu und von USB-Geräten. Die
USB-Hostcontrollerschaltung umfasst ferner einen Deskriptorcache,
der angepasst ist zum Speichern im voraus geholter Deskriptoren.
Der Deskriptorcache ist weiterhin angepasst zum Speichern individueller
Ersetzungssteuerwerte für
wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren.
Die USB-Hostcontrollerschaltung ist eingerichtet zum Ersetzen eines
gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache
durch einen erneut im voraus geholten Deskriptor auf Grundlage des
Ersetzungssteuerwertes, der dem gespeicherten im voraus geholten
Deskriptor zugeordnet ist.
-
In
noch einer anderen Ausgestaltung wird ein Verfahren zum Betreiben
eines Hostcontrollers bereitgestellt. Das Verfahren umfasst das
Holen von Deskriptoren im voraus durch Aussenden von Anforderungen für Deskriptoren
und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen.
Die Deskriptoren sind Datenstrukturen zum Beschreiben von Attributen
des Datentransfers zu und von Geräten, die von dem Hostcontroller
gesteuert werden. Das Verfahren umfasst ferner das Zugreifen auf
einen Deskriptorcache des Hostcontrollers. Der Deskriptorcache speichert
im voraus geholte Deskriptoren. Der Deskriptorcache speichert ferner
individuelle Ersetzungssteuerwerte für wenigstens einen Teil der
gespeicherten im voraus geholten Deskriptoren. Das Verfahren umfasst
ferner das Ersetzen eines gespeicherten im voraus geholten Deskriptors
in dem Deskriptorcache durch einen erneut im voraus geholten Deskriptor
auf Grundlage des Ersetzungssteuerwertes, der dem gespeicherten
im voraus geholten Deskriptor zugeordnet ist.
-
In
einer weiteren Ausgestaltung umfasst ein Computersystem einen Hostcontroller
zum Steuern des Datenverkehrs zu und von wenigstens einem Peripheriegerät, das mit
dem Computersystem über
einen seriellen Bus verbunden ist. Der Hostcontroller umfasst eine
Deskriptorholeinrichtung, die angepasst ist zum Aussenden von Anforderungen
von Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf
die Anforderungen. Die Deskriptoren sind Datenstrukturen zum Beschreiben
von Attributen des Datentransfers zu und von Peripheriegeräten, die
von dem Hostcontroller gesteuert werden. Der Hostcontroller umfasst
ferner einen Deskriptorcache, der angepasst ist zum Speichern im
voraus geholter Deskriptoren. Der Deskriptorcache ist weiterhin
angepasst zum Speichern individueller Ersetzungssteuerwerte für wenigstens
einen Teil der gespeicherten im voraus geholten Deskriptoren. Der
Hostcontroller ist eingerichtet zum Ersetzen eines gespeicherten im
voraus geholten Deskriptors in dem Deskriptorcache durch einen erneut
im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwertes,
der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist.
-
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
verdeutlicht, in denen:
-
1 ein
USB-2.0-gemäßes Beispielssystem
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 ein
Blockdiagramm ist, das die Komponenten des Deskriptorcaches verdeutlicht,
der ein Teil des erweiterten Hostcontrollers ist, der in 5 gezeigt
wird;
-
7 ein
Blockdiagramm ist, das die Komponenten der Transaktionsvervollständigungsmaschine
verdeutlicht, die ein Teil des erweiterten Hostcontrollers ist,
der in 5 gezeigt wird;
-
8 ein
Timingdiagramm ist, das die Signale in einem Deskriptorlesevorgang
an der Schnittstelle zwischen dem Deskriptorcache und der Deskriptorholeinrichtung
des in 5 gezeigten erweiterten Hostcontrollers verdeutlicht;
-
9 ein
Timingdiagramm ist, das die Signale eines entsprechenden Deskriptorschreibvorgangs
verdeutlicht;
-
10 ein
Timingdiagramm ist, das verschiedene Vorgänge an der Schnittstelle zwischen
dem Deskriptorcache und der Deskriptorholeinrichtung verdeutlicht;
-
11 ein
Timingdiagramm ist, das andere verschiedene Vorgänge an der Schnittstelle verdeutlicht;
-
12 ein
Timingdiagramm ist, das Signale eines Schreibvorgangs der Transaktionsvervollständigungsmaschine
verdeutlicht;
-
13 ein
Timingdiagramm ist, das Signale an der Schnittstelle zwischen der
Transaktionsvervollständigungsmaschine
und der Deskriptorspeichereinrichtung verdeutlicht, die eine Komponente
des erweiterten Hostcontrollers von 5 ist;
-
14 ein
Timingdiagramm ist, das Signale an der Schnittstelle zwischen der
Paketbearbeitungseinrichtung und der Deskriptorspeichereinrichtung
verdeutlicht, wobei von nicht versuchsweisen Transaktionselementen
Gebrauch gemacht wird;
-
15 ein
Timingdiagramm entsprechend dem von 14 ist,
wobei jedoch Gebrauch von versuchsweisen Transaktionselementen gemacht
wird; und
-
16 ein
Flussdiagramm ist, das den Deskriptorersetzungsprozess 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 mit gleichen Bezugszeichen angegeben
sind.
-
In
den Ausgestaltungen werden im voraus geholte Deskriptoren in einem
Deskriptorcache zusammen mit individuellen Ersetzungssteuerwerten
für wenigstens
einen Teil der gespeicherten im voraus geholten Deskriptoren gespeichert.
Ein gespeicherter, im voraus geholter Deskriptor in dem Cache wird
durch einen neuen Deskriptor auf Grundlage des Ersetzungssteuerwertes
ersetzt, der dem gespeicherten im voraus geholten Deskriptor zugeordnet
ist. Es wird unten in weiteren Einzelheiten beschrieben werden,
dass der Ersetzungssteuerwert ein Sympathiewert sein kann, der eine
Angabe für
die Nützlichkeit
des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache
ist. In einer anderen Ausgestaltung kann der Ersetzungssteuerwert
ein im voraus berechneter Wert sein.
-
Im
folgenden werden Deskriptoren als von der Art verstanden, dass sie
Attribute des Datentransfers zu und von den Geräten, die vom Hostcontroller
gesteuert werden, beschreiben. Wie oben erwähnt, sind solche Deskriptoren
beispielsweise diejenigen, die in den Abschnitten 3.3 bis 3.7 de
EHCI-Spezifikation
definiert sind. Jedoch können
ebenso andere Deskriptoren dieser Art existieren.
-
Es
wird angemerkt, dass andere Ausgestaltungen andere Hostcontroller
als USB-Hostcontroller betreffen können. Die folgende detailliertere
Beschreibung betrifft das Beispiel eines Hostcontrollers in einem USB-System.
-
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 besteht der Hostcontroller
aus 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 den physikalischen USB-1.1-Geräte auszubilden.
-
Eine
Plug-and-Play-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-Pins
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 asynchrone 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 sogar 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 enthält
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 Speicherzugriffslatenzen 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 enthä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 enthält 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 Deskriptorspeichereinrichtung 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 enthält 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 enthält.
-
Wird
nun zu 6 übergegangen,
so sind die Komponenten des Deskriptorcaches 545 in weiteren Einzelheiten
gezeigt. Wie oben erwähnt,
speichert der Deskriptorcache 545 Transferdeskriptoren,
die von der Deskriptorholeinrichtung 530 für schnelleren
wiederholten Zugriff geholt wurden. Der Cache 545 der vorliegenden
Ausgestaltung arbeitet in einer vollassoziativen Write-Through-Weise. Zwei Quellen
können
von dem Cache lesen und in ihn schreiben: die Deskriptorholeinrichtung 530 und
die Transaktionsvervollständigungsmaschine 540.
In der vorliegenden Ausgestaltung greifen die Deskriptorholeinrichtung 530 und
die Transaktionsvervollständigungsmaschine 540 niemals
auf denselben Deskriptor zu.
-
Ein
Sympathiewert wird für
jeden Mikrorahmen periodisch aktualisiert, d.h. er wird durch einen
neuen Wert ersetzt, der von der Deskriptorholeinrichtung 530,
die gerade auf einen gegebenen Deskriptor zugreift, berechnet wird.
Zusätzlich
oder als alternative Ausgestaltung wird der Sympathiewert für jeden
neuen Holvorgang aktualisiert. Periodische Deskriptoren werden in
natürlicher
Weise an Rahmengrenzen verfallen. Asynchrone Deskriptoren werden
mit ihrem Alter markiert und werden nicht länger als zwei, drei oder vier
Rahmen gehalten, um die Kohärenz
mit dem Systemspeicher zu garantieren, wo sie von der Software geändert worden sein
könnten.
Weiterhin können
Deskriptoren von der Transaktionsvervollständigungsmaschine 540 ungültig gemacht
werden, wenn diese einen Deskriptor zurückzieht. Ein Deskriptor kann
herausgeschoben werden, wenn es einen neuen mit einem höheren Sympathiewert
gibt und wenn keine freien Cacheeinträge mehr vorhanden sind.
-
In
der vorliegenden Ausgestaltung kann der Cachespeicher eine Maximalzahl
von 16 Deskriptoren speichern, die ein Maximum von 16 Doppelwörtern enthalten,
die jeweils 32 Bit breit sind. Wie aus 6 gesehen
werden kann, wird zu diesem Zweck eine RAM-Einrichtung (RAM: Random
Access Memory) 600 bereitgestellt. Der eingebettete RAM
ist mit 256 × 32
Bits organisiert. Die oberen vier Adressleitungen werden zur Deskriptorbasisadressierung
verwendet und die vier unteren Adressleitungen dienen der Adressierung
der Datenwörter
innerhalb des Deskriptors. Die RAM-Einrichtung 600 der
vorliegenden Ausgestaltung umfasst separate Lese- und Schreibports,
die gleichzeitige Lese- und Schreibvorgänge gestatten. Für Write-Through-Vorgänge von
der Transaktionsvervollständigungsmaschine 540 und
der Deskriptorholeinrichtung 530 kann es reservierte RAM-Resourcen
geben, die an der Deskriptorbasisadresse 0 × 15 am Ende des Adressraums
liegen.
-
Die
Anzahl im Cache befindlicher periodischer und asynchroner Deskriptoren
kann permanent an das Registerfile 505 berichtet werden.
-
Der
Deskriptorcache 545 von 6 umfasst
ferner eine Leseholsteuereinrichtung 620 und eine Schreibholsteuereinrichtung 640,
die Lese- und Schreibtransfers von und zu der Deskriptorholeinrichtung 530 bei
Bedarf unterstützen.
Ferner wird eine TACM-Steuereinrichtung 630 bereitgestellt,
die Daten von der Transaktionsvervollständigungsmaschine 540 bei
Bedarf annimmt. Darüber
hinaus wird eine Speicherschnittstellensteuereinrichtung 610 bereitgestellt,
die Daten von der RAM-Einrichtung 600 liest und diese auf
die Speicherschnittstelle 500 schreibt.
-
Die
RAM-Einrichtung 600 kann weiterhin eine Datenflusssteuereinrichtung
zum Steuern des Datentransfers zwischen dem Deskriptorcache 545 und
der Transaktionsvervollständigungsmaschine 540 umfassen.
Die Datenflusssteuereinrichtung kann die Informationen verwenden,
die innerhalb von Tags (Markierungen) gespeichert sind, um zu Entscheidungen
zu gelangen. Weiterhin kann die Datensteuereinrichtung Lese- und
Schreibmultiplexer 650, 660 steuern, die die verschiedenen
Deskriptorquellen und Deskriptorsenken zu und von der RAM-Einrichtung 600 multiplexieren.
-
Darüber hinaus
kann die Datenflusssteuereinrichtung auch in Enablesignale des eingebetteten
RAM steuern. Die Adress- und Datenleitungen des eingebetteten RAM
werden direkt von den schreibenden oder lesenden Untermodulen gesteuert
und durch die Multiplexer 650, 660 geleitet.
-
Wenn
der normale Cachebetrieb außer
Kraft gesetzt ist, kann der Deskriptorcache 545 in einem
Write-Through-Modus wie folgt arbeiten: Der Deskriptorcache 545 verwendet
den Speicher 600 für
Write-Through-Vorgänge.
Ferner wird die Deskriptorholeinrichtung 530 niemals einen
Cachehit bekommen. Der Write-Through-Vorgang ist möglich von
der Deskriptorholeinrichtung 530 und der Transaktionsvervollständigungsmaschine 540.
Das Altern und Töten
von Deskriptoren kann ignoriert werden. Darüber hinaus kann das Starten von
Leseanforderungen von der Deskriptorholeinrichtung 530 verboten
werden und Daten von, der Deskriptorholeinrichtung 530 mit
aktiviertem Write-Through werden nicht in den Cache 545 geschrieben
werden.
-
Es
wird nun in weiteren Einzelheiten der Betrieb der Deskriptorholeinrichtung
530 diskutiert.
Diese Einrichtung ist verantwortlich für das Auslesen der geeigneten
Datenstrukturen aus dem Systemspeicher oder dem Deskriptorcache
545.
Die Deskriptorholeinrichtung
530 berechnet den Sympathiewert
für den
Deskriptorcache
545 und interagiert mit der Deskriptorspeichereinrichtung
535,
um zu bestimmen, wann zwischen dem periodischen und dem asynchronen
Planungsschema zurück-
bzw. vorwärtsgeschaltet
werden muss. Im wesentlichen führt
die Deskriptorholeinrichtung
530 der vorliegenden Ausgestaltung
den folgenden Algorithmus aus:
-
In
dem Spezialfall einer asynchronen "frame-wrapping"-Splittransaktion, wie sie in den Abschnitten 4.12.3.1
und 4.12.3.3.2.1 der EHCI-Spezifikation beschrieben ist, kann die
Deskriptorholeinrichtung 530 den vorigen Deskriptor aus
dem Deskriptorcache 545 lesen müssen, bevor sie ihn aktualisieren
kann. Infolge des Sympathiewertes, der solchen Frame-Wrapped-Deskriptoren
gegeben wird, werden sie fast sicher in dem Deskriptorcache 545 gefunden
werden. Andernfalls wird die Deskriptorholeinrichtung 530 den
Deskriptor aus dem Speicher über
die Speicherschnittstelle 500 lesen.
-
Die
Deskriptorholeinrichtung 530 kann auch eine geschätzte Zeitdauer
berechnen, die von der Transaktion/den Transaktionen des Deskriptors
zur Vervollständigung
benötigt
wird, und sie kann diese der Deskriptorspeichereinrichtung 535 präsentieren.
Es kann bis zu vier solcher geschätzter Dauerwerte für einen
Deskriptor geben: einen pro Transaktion (d.h. bis zu drei für einen
Hochbandbreitentransfer) und die Summe für den gesamten Transfer (d.h.
die Summe der vorherigen drei). Diese Werte können verwendet werden, um ein Dauermanagement
in der Deskriptorspeichereinrichtung 535 zu unterstützen. Die
Deskriptorholeinrichtung 530 kann den Best-Fit-Approximationsalgorithmus
verwenden, der in Abschnitt 4.4.1.1 der EHCI-Spezifikation beschrieben ist, um den
geschätzten
Wert für
jede Transaktion zu bestimmen.
-
Wie
oben erwähnt,
werden Sympathiewerte in der vorliegenden Ausgestaltung verwendet,
um ein Mittel bereitzustellen zum Schätzen der Nützlichkeit des Cachespeicherns
eines bestimmten Deskriptors zugunsten von anderen (wenn es mehr
Deskriptoren als Cacheplätze
gibt) und folglich zum Bestimmen, welcher Deskriptor in dem Cache
durch einen neuerlich geholten zu ersetzen ist. Somit gibt der Sympathiewert
die Nützlichkeit
für jeden
Deskriptor an. Der Deskriptor mit dem niedrigsten Sympathiewert
kann als erster aufgegeben werden. Es kann eine Grundregel sein,
den Sympathiewert zum einzigen Kriterium zu machen, über das
entschieden wird; es sind also keine zusätzlichen Informationen wie
etwa Deskriptortypen etc. notwendig. Dies bedeutet, dass Sympathiewerte
für verschiedene
Deskriptortypen einen konsistenten Wertebereich betreffen können müssen.
-
Ferner
können
Sympathiewerte regelmäßig aktualisiert
werden, z.B. in jedem Mikrorahmen und/oder bei jedem neuen Holvorgang.
Die Sympathiewerte können
auch als ein Tag zu jedem Deskriptor gespeichert werden. Somit minimiert
die Minimierung der Bitbreite der Sympathiewerte in vorteilhafterweise
den Speicheroverhead, der durch das Speichern der Sympathiewerte
verursacht wird.
-
Es
kann eine andere Grundregel sein, vernünftige Privilegmaßregeln
zu etablieren. Beispielsweise können
periodische Deskriptoren allgemein eine bessere Priorität erhalten
als asynchrone Deskriptoren, jedoch kann eine hinreichende Betonung
auf asynchrone Deskriptoren für
lange Transaktionen gelegt werden. Weiterhin können einzelne Transkriptionsdeskriptoren,
z.B. Setup-Deskriptoren, davon abgehalten werden, in den Cache zu
gelangen. Darüber
hinaus können
rückwärtsverlinkte
("back-linked") Deskriptoren eine
Priorität über allen
anderen Deskriptoren erhalten.
-
Die
Berechnung von Sympathiewerten kann auf der Erkenntnis basieren,
dass es umso nützlicher
ist, einen Deskriptor im Cache zu speichern, je häufiger er
aufgesucht wird. Somit kann die Anzahl weiterer wiederholter Aufsuchungen
auf Grundlage des Typs und Zustandes des Deskriptors und der Mikrorahmennummer
berechnet werden. Eine kompaktere Repräsentation kann verwendet werden,
die eine lineare Funktion der Anzahl wiederholter Aufsuchungen für periodische
Deskriptoren ist, während
für asynchrone
Deskriptoren ein Schätzwert
des Logarithmus der Anzahl wiederholter Aufsuchungen verwendet wird.
Eine lineare Funktion für
periodische Deskriptoren kann ausreichen, wenn periodische Deskriptoren
nicht häufiger
als z.B. acht Mal aufgesucht werden, so dass die Anzahl wiederholter
Aufsuchungen höchstens
sieben betragen würde.
Die Anwendung einer Logarithmusfunktion führt zu einem exponentiellen
Vorteil für
periodische Deskriptoren mit großer Datenlast. Beispielsweise
wird ein periodischer Deskriptor mit sechs wiederholten Aufsuchungen
denselben Sympathiewert erhalten wie ein asynchroner Deskriptor
mit acht wiederholten Aufsuchungen.
-
Beispiele
dafür,
wie Sympathiewerte für
periodisch geplante Deskriptoren berechnet werden können, sind
in dieser Tabelle aufgeführt:
-
Für einen
asynchronen Deskriptor können
Sympathiewerte gemäß folgender
Regeln berechnet werden:
-
Es
wird nun auf 7 Bezug genommen, die die Komponenten
der Transaktionsvervollständigungsmaschine 540 in
weiteren Einzelheiten verdeutlicht. Wie oben bereits erwähnt, ist
die Transaktionsvervollständigungsmaschine 540 der
vorliegenden Ausgestaltung für
die Aktualisierung verantwortlich sowie möglicherweise für das Zurückziehen
von Deskriptoren nach Transaktionen auf dem USB-Bus. Um dies zu
bewerkstelligen, wird sie Informationen von der Deskriptorspeichereinrichtung 535 sammeln,
um den gerade verarbeiteten Deskriptor zu erhalten, sowie Informationen
von DMA-Sende-und-Empfangseinrichtungen 550, 510,
um die Menge verschobener Daten zu erhalten.
-
Die
Transaktionsvervollständigungsmaschine 540 aktualisiert
die Deskriptoren und schreibt die aktualisierten Deskriptoren in
den Deskriptorcache 545. Der Deskriptorcache 545 wird
die aktualisierten Deskriptoren über
die Speicherschnittstelle 500 in einem Write-Through-Modus
schreiben.
-
Wie
aus 7 ersichtlich ist, umfasst die Transaktionsvervollständigungsmaschine 540 einen
Queuekopfprozessor 700, einen Non-Split-Isochronous-Prozessor 710 und
einen Split-Isochronous-Prozessor 720. Der Queuekopfprozessor 700 der
vorliegenden Ausgestaltung ist verantwortlich für Statusaktualisierungen für alle Transaktionen,
die von der Queuekopfdaten struktur, wie sie in der EHCI-Spezifikation
beschrieben ist, umfasst sind. Diese Transaktionen sind Nonsplit/Split-Bulk/Steuer/Interrupt-In/Out/Setup-Transaktionen.
Der Transaktionstyp ist als ein Teil der Deskriptordatenstruktur
gegeben.
-
Wie
weiterhin aus 7 ersichtlich ist, kann ein
isochroner Prozessor 710 bereitgestellt werden, der für Statusaktualisierungen
für alle
isochronen Nonsplit-Transaktionen verantwortlich ist, die von der
iTD-Datenstruktur, wie sie in der EHCI-Spezifikation beschrieben
ist, umfasst werden. Darüber
hinaus kann ein Split-Isochronous-Prozessor 720 bereitgestellt
werden, der für
Statusaktualisierungen für
alle isochronen Splittransaktionen verantwortlich ist, die von der
siTD-Datenstruktur, wie sie in der EHCI-Spezifikation beschrieben ist,
umfasst werden.
-
Die
Transaktionsvervollständigungsmaschine 540 von 7 umfasst
weiterhin Abtasteinrichtungen 730-750, die Daten
von der DMA-Sende-und-Empfangseinrichtung 550 510 bzw.
der Deskriptorspeichereinrichtung 535 empfangen. Darüber hinaus
werden Multiplexer 780-790 zum Multiplexieren
von Signalen zu dem Deskriptorcache 545, zu dem Registerfile 505 bzw.
von der Deskriptorspeichereinrichtung 535 bereitgestellt. Vor
der Statusaktualisierung können
Deskriptordaten von der Deskriptorspeichereinrichtung 535 in
die Deskriptorspeicherzugriffseinrichtung 760 gelesen werden.
Darüber
hinaus wird eine Paketbearbeitungssynchronisationseinrichtung 770 bereitgestellt,
die für
die Synchronisation aller Signale verantwortlich ist, die von der
Paketbearbeitungseinrichtung 570 kommen, die sich in der
60-MHz-Taktdomäne befindet,
sowie für
das Aufnehmen der Signale beim Auftreten eines Transmissionsendeereignisses.
Die Taktsynchronisationseinrichtung 770 realisiert die
Schnittstelle zu der Paketbearbeitungseinrichtung 570,
insbesondere zu dem Paketdecodierer 575.
-
Die
Funktionsweise des Deskriptorcaches 545, der Deskriptorholeinrichtung 530,
der Transaktionsvervollständigungsmaschine 540,
der Deskriptorspeicher einrichtung 535 und der Paketbearbeitungseinrichtung 570 werden
aus den 8 bis 15 deutlicher
werden, die Timingdiagramme der Signale an den verschiedenen Schnittstellen
zwischen den Einrichtungen zeigen.
-
Wird
zunächst
zu 8 übergegangen,
so wird ein Timingdiagramm bereitgestellt, das die Schnittstelle
zwischen dem Deskriptorcache 545 und der Deskriptorholeinrichtung 530 betrifft.
Die dargestellten Signale zeigen einen Deskriptorlesevorgang, bei
dem acht Datenwörter
aus dem Deskriptorcache 545 gelesen werden.
-
9 ist
ein entsprechendes Timingdiagramm, das einen Deskriptorschreibvorgang
betrifft. In dem Beispiel von 9 werden
sechs Datenwörter
in den Deskriptorcache 545 geschrieben.
-
Verschiedene
andere Deskriptorvorgänge
an der Schnittstelle zwischen dem Deskriptorcache 545 und der
Deskriptorholeinrichtung 530 werden in den Timingdiagrammen
der 10 und 11 gezeigt.
In den Signalformen der 10 wird
zunächst
eine Überprüfung durchgeführt, ob
ein Cachehit vorliegt. Dann werden die Sympathiewerte aktualisiert.
Der in 11 gezeigte Vorgang betrifft
das Altern und Töten
von Deskriptoren.
-
Wird
nun zu dem Timingdiagramm von 12 übergegangen,
so betreffen die gezeigten Signale die Schnittstelle zwischen dem
Deskriptorcache 545 und der Transaktionsvervollständigungsmaschine 540.
In dem Beispiel von 12 schreibt die Transaktionsvervollständigungsmaschine 540 fünf Datenwörter in
den Deskriptorcache 545.
-
Wie
oben diskutiert, kann die Transaktionsvervollständigungsmaschine 540 weiterhin
auf die Deskriptorspeichereinrichtung 535 zugreifen. Dies
ist in weiteren Einzelheiten in 13 gezeigt,
wo die Transaktionsvervollständigungsmaschine 540 Daten
von der Deskriptorspeichereinrichtung 535 liest und Daten
in den Deskriptorcache 545 schreibt.
-
Um
eine Taktdomänenübersetzungsverzögerung zwischen
der Deskriptorspeichereinrichtung 535 und der Paketbearbeitungseinrichtung 570 zu
minimieren, kann die Deskriptorspeichereinrichtung 535 das
nächste Transaktionselement
bereitstellen, sobald das vorhergehende von der Paketbearbeitungseinrichtung 570 absorbiert
worden ist, was durch das nach unten gehende Transmissionsendesignal
angezeigt wird. Dies ist in dem Timingdiagramm von 14 verdeutlicht.
-
Im
Falle einer Hochbandbreitentransaktion kann die maximale Anzahl
von Transaktionselementen drei betragen. Wenn eine der zwischenliegenden
Transaktionen fehlschlägt
oder wenn eine Kurzpaketbedingung bei einer hereinkommenden Transaktion
auftritt, kann das im voraus gewandelte Transaktionselement ungültig werden.
Aus diesem Grunde können
solche Transaktionselemente, wie in 15 gezeigt,
als versuchsweise ("tentative") markiert werden.
Wenn die Paketbearbeitungseinrichtung 570 von einer Transaktion
mit einem gesetzten Transaktionsfehlschlagflag zurückkehrt
und die Deskriptorspeichereinrichtung 535 das aktuelle
Transaktionselement als versuchsweise markiert hat, darf die Paketbearbeitungseinrichtung 570 der
vorliegenden Ausgestaltung dieses Transaktionselement nicht verwenden.
Statt dessen wartet sie darauf, dass das gültige Signal wieder nach unten
geht, was anzeigt, dass die Deskriptorspeichereinrichtung 535 die
fehlgegangene vorherige Transaktion wahrgenommen hat. Das Transaktionselement
wird dann nur das nächste
Mal gültig, wenn
das Gültigkeitssignal
gesetzt ist.
-
Das
Versuchssignal kann eine andere Rolle während vollständiger Splittransaktionen
spielen. Wenn die Paketbearbeitungseinrichtung 570 detektiert
hat, dass die durchzuführende
Transaktion eine vollständige Splittransaktion
ist, und wenn die Transaktion als Versuchstransaktion markiert ist,
kann sie die letzte Transaktion sofort wiederholen, wenn sie mit
dem gesetzten Transaktionsfehlschlagflag zurückgekehrt ist. Wenn die letzte
Transaktion ohne Fehler vervollständigt wurde, wartet die Paketbearbeitungseinrichtung 570 darauf, dass
das Gültigkeitssignal
wieder nach unten geht, und das Transaktionselement wird nur dann
gültig,
wenn das Gültigkeitssignal
das nächste
Mal gesetzt ist.
-
Wird
nun zu 16 übergegangen, die ein Flussdiagramm
ist, das den Prozess des Betriebs des Deskriptorcaches 545 der
obigen Ausgestaltungen zur Durchführung des Deskriptorersetzungsprozesses
verdeutlicht, so beginnt der Prozess mit dem Empfangen eines im
voraus geholten Deskriptors im Schritt 1600. Dieser Schritt
kann das Aussetzen einer Anforderung für den im voraus zu holenden
Deskriptor enthalten. Ist der Deskriptor einmal empfangen, wird
auf die Deskriptoren, die bereits im Cache gespeichert sind, im
Schritt 1610 zugegriffen. Für jeden oder wenigstens einen
Teil der gespeicherten Deskriptoren werden die Ersetzungssteuerwerte
mit dem Ersetzungssteuerwert des erneut im voraus geholten Deskriptors
verglichen (Schritt 1620). Wie oben erwähnt wurde, können Ersetzungssteuerwerte
Sympathiewerte oder im voraus berechnete Werte sein. Wenn in Schritt 1630 auf
Grundlage des Vergleichs von Schritt 1620 und der freien
Speicherkapazität
in dem Deskriptorcache 545 festgestellt wird, dass einer
der gespeicherten Deskriptoren durch den erneut im voraus geholten
Deskriptor ersetzt werden soll, wird die Ersetzung in Schritt 1640 durchgeführt. Es
wird dann in Schritt 1650 festgestellt, ob die Ersetzungssteuerwerte
in dem Deskriptorcache 545 aktualisiert werden müssen. Ist
dies der Fall, so wird in Schritt 1660 eine Werteaktualisierung
durchgeführt.
-
Es
ist anzumerken, dass das Flussdiagramm von 16 nur
aus Gründen
der Erläuterung
bereitgestellt wird und andere Ausgestaltungen möglich sind, in denen die Abfolge
der Schritte von der der 16 abweichen
kann und einige der Schritte sogar weggelassen werden können.
-
Wie
aus der vorangegangenen Beschreibung der Ausgestaltungen ersichtlich
ist, wird ein Prefetch-Mechanismus bereitgestellt, der sowohl periodische
als auch asynchrone Planungsschemata unterstützt. Ein Deskriptorcache 545 und eine
Deskriptorspeichereinrichtung 535 werden bereitgestellt.
Der Deskriptorcache 545 kann ein Look-Aside-Cache sein,
und er kann vollassoziativ und mit Write-Through-Möglichkeiten
ausgestattet sein. Die Technik der oben beschriebenen Ausgestaltungen
kann die Effizienz der Gesamtperformance verbessern, ohne eine unangemessen
große
Speicherkapazität
in dem Cache zu erfordern.
-
Während die
Erfindung in Bezug auf die physikalischen Ausgestaltungen, die in Übereinstimmung
damit konstruiert worden sind, beschrieben worden ist, 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 beabsichtigten Umfang der Erfindung abzuweichen.
Zusätzlich
sind solche Bereiche, 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äß zu verstehen,
dass die Erfindung nicht durch die spezifisch verdeutlichten Ausgestaltungen
sondern nur durch den Umfang der beigefügten Ansprüche beschränkt ist.