DE10234990B4 - Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache - Google Patents

Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache Download PDF

Info

Publication number
DE10234990B4
DE10234990B4 DE10234990A DE10234990A DE10234990B4 DE 10234990 B4 DE10234990 B4 DE 10234990B4 DE 10234990 A DE10234990 A DE 10234990A DE 10234990 A DE10234990 A DE 10234990A DE 10234990 B4 DE10234990 B4 DE 10234990B4
Authority
DE
Germany
Prior art keywords
descriptor
host controller
descriptors
cache
prefetched
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10234990A
Other languages
English (en)
Other versions
DE10234990A1 (de
Inventor
Siegfried Kay Hesse
Dale E. Austin Gulick
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Priority to DE10234990A priority Critical patent/DE10234990B4/de
Priority to US10/464,966 priority patent/US7194583B2/en
Publication of DE10234990A1 publication Critical patent/DE10234990A1/de
Application granted granted Critical
Publication of DE10234990B4 publication Critical patent/DE10234990B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms

Abstract

Hostcontroller umfassend:
eine Deskriptorholeinrichtung (530), die angepasst ist zum Aussenden von Anforderungen für Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen, wobei die Deskriptoren Datenstrukturen zum Beschreiben von Attributen des Datentransfers zu und von Geräten sind, die von dem Hostcontroller gesteuert werden; und
einen Deskriptorcache (545), der angepasst ist zum Speichern im voraus geholter Deskriptoren,
wobei der Deskriptorcache weiterhin angepasst ist zum Speichern individueller Ersetzungssteuerwerte für wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren, wobei die Ersetzungssteuerwerte Sympathiewerte sind, die die Nützlichkeit des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache angeben,
wobei der Hostcontroller eingerichtet ist zum Ersetzen eines gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen neu im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwerts, der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist, und
wobei die Deskriptorholeinrichtung angepasst ist zum Berechnen des Sympathiewertes und mit dem Deskriptorcache verbunden...

Description

  • 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 6,272,499 B1 beschreibt verlinkte Listen von Transferdeskriptoren.
  • 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:
    Figure 00210001
    Figure 00220001
  • 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:
    Figure 00250001
  • Für einen asynchronen Deskriptor können Sympathiewerte gemäß folgender Regeln berechnet werden:
    Figure 00250002
    Figure 00260001
  • 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.

Claims (78)

  1. Hostcontroller umfassend: eine Deskriptorholeinrichtung (530), die angepasst ist zum Aussenden von Anforderungen für Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen, wobei die Deskriptoren Datenstrukturen zum Beschreiben von Attributen des Datentransfers zu und von Geräten sind, die von dem Hostcontroller gesteuert werden; und einen Deskriptorcache (545), der angepasst ist zum Speichern im voraus geholter Deskriptoren, wobei der Deskriptorcache weiterhin angepasst ist zum Speichern individueller Ersetzungssteuerwerte für wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren, wobei die Ersetzungssteuerwerte Sympathiewerte sind, die die Nützlichkeit des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache angeben, wobei der Hostcontroller eingerichtet ist zum Ersetzen eines gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen neu im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwerts, der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist, und wobei die Deskriptorholeinrichtung angepasst ist zum Berechnen des Sympathiewertes und mit dem Deskriptorcache verbunden ist, um den berechneten Sympathiewert in den Deskriptorcache zu schreiben.
  2. Hostcontroller nach Anspruch 1, wobei der Hostcontroller eingerichtet ist zum Ersetzen des gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen erneut im voraus geholten Deskriptor auf Grundlage eines Vergleichs des Sympathiewerts des gespeicherten im voraus geholten Deskriptors und eines Sympathiewerts des erneut im voraus geholten Deskriptors.
  3. Hostcontroller nach Anspruch 2, wobei der Hostcontroller eingerichtet ist zum Ersetzen des gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch den erneut im voraus geholten Deskriptor, wenn der Sympathiewert des erneut im voraus geholten Deskriptors den des gespeicherten im voraus geholten Deskriptors übersteigt.
  4. Hostcontroller nach Anspruch 2, wobei der Hostcontroller eingerichtet ist, um den gespeicherten im voraus geholten Deskriptor in dem Deskriptorcache nicht durch den erneut im voraus geholten Deskriptor zu ersetzen, wenn es in dem Deskriptorcache eine freie Kapazität zum Speichern des erneut im voraus geholten Deskriptors gibt.
  5. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache weiterhin angepasst ist zum Speichern eines periodisch aktualisierten Sympathiewerts.
  6. Hostcontroller nach Anspruch 1, wobei die Deskriptorholeinrichtung angepasst ist, um den Sympathiewert beim Zugriff auf einen in dem Deskriptorcache gespeicherten Deskriptor zu berechnen.
  7. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache eingerichtet ist, um periodisch geplante Deskriptoren und asynchron geplante Deskriptoren zu speichern.
  8. Hostcontroller nach Anspruch 7, dazu angepasst, die periodisch geplanten Deskriptoren an Rahmengrenzen verfallen zu lassen.
  9. Hostcontroller nach Anspruch 7, wobei der Deskriptorcache weiterhin angepasst ist, um Altersdaten für jeden der asynchron geplanten Deskriptoren zu speichern, und wobei der Hostcontroller dazu angepasst ist, die asynchron geplanten Deskriptoren gemäß der jeweiligen Altersdaten verfallen zu lassen.
  10. Hostcontroller nach Anspruch 9, wobei die Altersdaten als eine gegebene Altersgrenze nicht überschreitend gewählt sind.
  11. Hostcontroller nach Anspruch 10, wobei die Altersgrenze der Länge von vier Datenrahmen entspricht.
  12. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache eine RAM-Einrichtung (RAM: Random Access Memory) (600) umfasst, die die Speicherkapazität zum Speichern der im voraus geholten Deskriptoren bereitstellt, wobei die RAM-Einrichtung verbunden ist, um Adressen über Adressleitungen zu empfangen, wobei ein Teil der Adressleitungen zur Deskriptorbasisadressierung und ein anderer Teil der Adressleitungen zur Adressierung von Datenwörtern innerhalb der Deskriptoren verwendet wird.
  13. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache eine RAM-Einrichtung (RAM: Random Access Memory) (600) umfasst, die die Speicherkapazität zum Speichern der im voraus geholten Deskriptoren bereitstellt, wobei die RAM-Einrichtung separate Lese- und Schreibports umfasst, die gleichzeitige Lese- und Schreibvorgänge gestatten.
  14. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache eine Speicherschnittstellensteuereinrichtung (610) umfasst, die angepasst ist zum Schreiben von Daten, die gespeicherte im voraus geholte Deskriptoren betreffen, zu einer Speicherschnittstelleneinrichtung (500) des Hostcontrollers.
  15. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache eine Datenflusssteuereinrichtung (600) umfasst, die angepasst ist zum Steuern des Datentransfers zu und von dem Deskriptorcache.
  16. Hostcontroller nach Anspruch 15, wobei die Datenflusssteuereinrichtung angepasst ist zum Steuern des Datentransfers zwischen dem Deskriptorcache und der Deskriptorholeinrichtung.
  17. Hostcontroller nach Anspruch 15, wobei der Deskriptorcache mit einer Transaktionsvervollständigungsmaschine (540) verbunden ist, die angepasst ist, um die Statusrückschreibung von Deskriptoren zu verwalten, und wobei die Datenflusssteuereinrichtung angepasst ist, um die Datentransfers zwischen dem Deskriptorcache und der Transaktionsvervollständigungsmaschine zu steuern.
  18. Hostcontroller nach Anspruch 15, wobei der Deskriptorcache mit einer Speicherschnittstellensteuereinrichtung (610) verbunden ist, die angepasst ist zum Schreiben von Daten, die gespeicherte im voraus geholte Deskriptoren betreffen, zu einer Speicherschnittstelleneinrichtung (500) des Hostcontrollers, und wobei die Datenflusssteuereinrichtung angepasst ist, um die Datentransfers zwischen dem Deskriptorcache und der Speicherschnittstellensteuereinrichtung zu steuern.
  19. Hostcontroller nach Anspruch 15, wobei die Datenflusssteuereinrichtung angepasst ist zum Steuern des Datentransfers unter Verwendung von Taginformationen der Deskriptoren.
  20. Hostcontroller nach Anspruch 15, wobei der Deskriptorcache weiterhin einen Lesemultiplexer (650) und einen Schreibmultiplexer (660) umfasst, die angepasst sind zum Multiplexieren verschiedener Deskriptorquellen und -senken zu und von einer RAM-Einrichtung (RAM: Random Access Memory) (600), die die Speicherkapazität zum Speichern der im voraus geholten Deskriptoren bereitstellt, wobei die Multiplexer von der Datenflusssteuereinrichtung gesteuert werden.
  21. Hostcontroller nach Anspruch 20, wobei die Datenflusssteuereinrichtung weiterhin angepasst ist zum Steuern von Adress- und Datenleitungen der RAM-Einrichtung.
  22. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache mit der Deskriptorholeinrichtung verbunden und angepasst ist, um Lese- und Schreibanforderungen von der Deskriptorholeinrichtung anzunehmen.
  23. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache mit einer Transaktionsvervollständigungsmaschine (540) verbunden ist, die angepasst ist zum Verwalten der Statusrückschreibung von Deskriptoren, wobei der Deskriptorcache weiterhin angepasst ist, um Lese- und Schreibanforderungen von der Transaktionsvervollständigungsmaschine anzunehmen.
  24. Hostcontroller nach Anspruch 23, wobei die Transaktionsvervollständigungsmaschine angepasst ist, um einen Deskriptor in dem Deskriptorcache beim Zurückziehen des Deskriptors ungültig zu machen.
  25. Hostcontroller nach Anspruch 23, weiterhin umfassend: eine Deskriptorspeichereinrichtung (535), die angepasst ist zum Speichern geholter Deskriptoren, wobei die Transaktionsvervollständigungsmaschine mit der Deskriptorspeichereinrichtung verbunden ist, um den gerade verarbeiteten Deskriptor zu erhalten.
  26. Hostcontroller nach Anspruch 23, weiterhin umfassend: eine DMA-Sende- und -Empfangseinrichtung (DMA: Direct Memory Access) (550, 510), die angepasst ist, um Datenanforderungen zu senden und angeforderte Daten zu empfangen, wobei die Transaktionsvervollständigungsmaschine mit der DMA-Sende- und -Empfangseinrichtung verbunden ist, um die Menge der verschobenen Daten zu erlangen.
  27. Hostcontroller nach Anspruch 23, wobei die Statusrückschreibung eine Deskriptoraktualisierung und das Zurückziehen umfasst.
  28. Hostcontroller nach Anspruch 27, wobei die Transaktionsvervollständigungsmaschine angepasst ist zum Schreiben aktualisierter Deskriptoren in den Deskriptorcache.
  29. Hostcontroller nach Anspruch 28, wobei der Deskriptorcache eingerichtet ist, um aktualisierte Deskriptoren, die von der Transaktionsvervollständigungsmaschine empfangen worden sind, auf eine Speicherschnittstelle (500) in einem Write-Through-Modus zu schreiben.
  30. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache ein vollassoziativer Cache ist.
  31. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache Write-Through-Eigenschaften aufweist.
  32. Hostcontroller nach Anspruch 31, wobei der Deskriptorcache angepasst ist, um als Write-Through-Cache in einem vordefinierten Betriebsmodus zu arbeiten, in dem der normale Cachebetrieb außer Kraft gesetzt ist.
  33. Hostcontroller nach Anspruch 31, wobei der Deskriptorcache mit einer Transaktionsvervollständigungsmaschine (540) verbunden ist, die angepasst ist, um eine Statusrückschreibung von Deskriptoren zu verwalten, und wobei der Deskriptorcache angepasst ist, um Write-Through-Vorgänge von der Deskriptorholeinrichtung und der Transaktionsvervollständigungsmaschine zu ermöglichen.
  34. Hostcontroller nach Anspruch 1, wobei der Deskriptorcache verbunden ist, um als Look-Aside-Cache zu arbeiten.
  35. Hostcontroller nach Anspruch 1, weiterhin umfassend: eine Transaktionsvervollständigungsmaschine (540), die angepasst ist zum Steuern eines Deskriptoraktualisierungsprozesses, wobei die Transaktionsvervollständigungsmaschine einen Prozessor (700) umfasst, die für Statusaktualisierungen von Transaktionen verschiedener Arten verantwortlich ist, einschließlich Split- und Nonsplit-Transaktionen, Bulk-, Steuer- und Interrupt-Transaktionen sowie hereinkommende, herausgehende und Setup-Transaktionen.
  36. Hostcontroller nach Anspruch 1, wobei der Hostcontroller ein USB-Hostcontroller (USB: Universal Serial Bus) ist, weiterhin umfassend: eine Transaktionsvervollständigungsmaschine (540), die angepasst ist zum Steuern eines Deskriptoraktualisierungsprozesses, wobei die Transaktionsvervollständigungsmaschine einen Kopfprozessor (700) umfasst, der verantwortlich ist für Statusaktualisierungen aller Transaktionen, die von einer EHCI-gemäßen (EHCI: Enhanced Host Controller Interface) Queuekopfdatenstrukturumfasst sind.
  37. Hostcontroller nach Anspruch 1, weiterhin umfassend: eine Transaktionsvervollständigungsmaschine (540), die angepasst ist zum Steuern eines Deskriptoraktualisierungsprozesses, wobei die Transaktionsvervollständigungsmaschine einen Prozessor (710) umfasst, der verantwortlich für Statusaktualisierungen von isochronen Nonsplit-Transaktionen ist.
  38. Hostcontroller nach Anspruch 1, weiterhin umfassend: eine Transaktionsvervollständigungsmaschine (540), die angepasst ist zum Steuern eines Deskriptoraktualisierungsprozesses, wobei die Transaktionsvervollständigungsmaschine einen Prozessor (720) umfasst, der für Statusaktualisierungen isochroner Split-Transaktionen verantwortlich ist.
  39. Hostcontroller nach Anspruch 1, weiterhin eine Transaktionsvervollständigungsmaschine (540) umfassend, die angepasst ist zum Steuern eines Deskriptoraktualisierungsprozesses, wobei die Transaktionsvervollständigungsmaschine umfasst: einen ersten Prozessor (700), der verantwortlich ist für Aktualisierungen nichtisochroner Split- und Nonsplit-Transaktionen; einen zweiten Prozessor (710), der verantwortlich ist für Statusaktualisierungen isochroner Nonsplit-Transaktionen; und einen dritten Prozessor (720), der verantwortlich ist für Statusaktualisierungen isochroner Split-Transaktionen.
  40. Hostcontroller nach Anspruch 1, weiterhin umfassend: eine Deskriptorspeichereinrichtung (535), die mit der Deskriptorholeinrichtung verbunden ist, wobei die Deskriptorholeinrichtung angepasst ist zum Holen von Deskriptoren nach entweder einem periodischen oder einem asynchronen Planungsschema, und wobei die Deskriptorholeinrichtung feststellen kann, wann zwischen den Planungsschemata umzuschalten ist.
  41. Hostcontroller nach Anspruch 1, wobei die Deskriptorholeinrichtung angepasst ist zum Durchführen eines Algorithmus zum Auffinden des nächsten Deskriptors, um den nächsten zu holenden Deskriptor festzustellen.
  42. Hostcontroller nach Anspruch 1, wobei die Deskriptorholeinrichtung angepasst ist zum Berechnen wenigstens eines geschätzten Transaktionsdauerwertes für einen gegebenen Deskriptor.
  43. Hostcontroller nach Anspruch 1, weiterhin umfassend: eine Deskriptorspeichereinrichtung (535), die angepasst ist zum Speichern geholter Deskriptoren, wobei die geholten Deskriptoren angefordert werden, wenn sie benötigt werden, und wobei die im voraus geholten Deskriptoren im voraus angefordert werden.
  44. Hostcontroller nach Anspruch 1, wobei der Hostcontroller ein Hostcontroller zum Steuern des Datenverkehrs zu und von wenigstens einem Peripheriegerät ist, das mit dem Hostcontroller mittels eines seriellen Busses verbunden ist.
  45. Hostcontroller nach Anspruch 1, wobei der Hostcontroller ein USB-Hostcontroller (USB: Universal Serial Bus) ist, wobei die Geräte, die von dem USB-Hostcontroller gesteuert werden, USB-Geräte sind.
  46. Hostcontroller nach Anspruch 45, wobei der Hostcontroller ein USB-2-gemäßer Hostcontroller ist.
  47. Southbrigdebauelement mit einer USB-Hostcontrollerschaltung (USB: Universal Serial Bus), umfassend: eine Deskriptorholeinrichtung (530), die angepasst ist zum Aussenden von Anforderungen für Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen, wobei die Deskriptoren Datenstrukturen zum Beschreiben von Attributen des Datentransfers zu und von USB-Geräten sind; und einen Deskriptorcache (545), der angepasst ist zum Speichern im voraus geholter Deskriptoren, wobei der Deskriptorcache weiterhin angepasst ist zum Speichern individueller Ersetzungssteuerwerte für wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren, wobei die Ersetzungssteuerwerte Sympathiewerte sind, die die Nützlichkeit des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache angeben, wobei die USB-Hostcontrollerschaltung eingerichtet ist zum Ersetzen eines gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen neu im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwerts, der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist, und wobei die Deskriptorholeinrichtung angepasst ist zum Berechnen des Sympathiewertes und mit dem Deskriptorcache verbunden ist, um den berechneten Sympathiewert in den Deskriptorcache zu schreiben.
  48. Verfahren zum Betreiben eines Hostcontrollers (225), wobei das Verfahren umfasst: Holen (1600) von Deskriptoren im voraus durch Aussenden von Anforderungen für Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen, wobei die Deskriptoren Datenstrukturen zum Beschreiben von Attributen des Datentransfers zu und von Geräten sind, die von dem Hostcontroller gesteuert werden; und Zugreifen (1610) auf einen Deskriptorcache (545) des Hostcontrollers, wobei der Deskriptorcache im voraus geholte Deskriptoren speichert und wobei der Deskriptorcache weiterhin individuelle Ersetzungssteuerwerte für wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren speichert; und Ersetzen (1640) eines gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen neu im voraus geholten Deskriptor auf Grundlage des Ersetzungssteuerwertes, der dem gespeicherten im voraus geholten Deskriptor zugeordnet ist, wobei der Ersetzungssteuerwert ein Sympathiewert ist, der die Nützlichkeit des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache angibt, und wobei das Verfahren weiterhin umfasst: Berechnen des Sympathiewertes; und Schreiben des berechneten Sympathiewertes in den Deskriptorcache.
  49. Verfahren nach Anspruch 48, wobei das Ersetzen des gespeicherten im voraus geholten Deskriptors in dem Deskriptorcache durch einen erneut im voraus geholten Deskriptor umfasst: Vergleichen des Sympathiewerts des gespeicherten im voraus geholten Deskriptors mit einem Sympathiewert des erneut im voraus geholten Deskriptors.
  50. Verfahren nach Anspruch 49, wobei der gespeicherte im voraus geholte Deskriptor durch den erneut im voraus geholten Deskriptor ersetzt wird, wenn der Sympathiewert des erneut im voraus geholten Deskriptors den des gespeicherten im voraus geholten Deskriptors überschreitet.
  51. Verfahren nach Anspruch 49, wobei der gespeicherte im varaus geholte Deskriptor durch den erneut im voraus geholten Deskriptor nicht ersetzt wird, wenn es eine freie Kapazität in dem Deskriptorcache zum Speichern des erneut im voraus geholten Deskriptors gibt.
  52. Verfahren nach Anspruch 48, weiterhin umfassend: eine periodische Aktualisierung der Sympathiewerte.
  53. Verfahren nach Anspruch 48, wobei der Sympathiewert berechnet wird, wenn auf einen in dem Deskriptorcache gespeicherten Deskriptor zugegriffen wird.
  54. Verfahren nach Anspruch 48, wobei der Deskriptorcache periodisch geplante Deskriptoren und asynchron geplante Deskriptoren speichert.
  55. Verfahren nach Anspruch 54, weiterhin umfassend: Verfallenlassen der periodisch geplanten Deskriptoren an Rahmengrenzen.
  56. Verfahren nach Anspruch 54, wobei der Deskriptorcache weiterhin Altersdaten für jeden der asynchron geplanten Deskriptoren speichert und das Verfahren weiterhin umfasst: Verfallenlassen der asynchron geplanten Deskriptoren gemäß der jeweiligen Altersdaten.
  57. Verfahren nach Anspruch 56, wobei die Altersdaten als eine gegebene Altergrenze nicht überschreitend gewählt sind.
  58. Verfahren nach Anspruch 57, wobei die Altersgrenze der Länge von vier Datenrahmen entspricht.
  59. Verfahren nach Anspruch 48, weiterhin umfassend: Steuern des Datentransfers zu und von dem Deskriptorcache unter Verwendung von Taginformationen der Deskriptoren.
  60. Verfahren nach Anspruch 48, weiterhin umfassend: Verwalten der Statusrückschreibung von Deskriptoren durch Senden von Lese- und Schreibanforderungen an den Deskriptorcache.
  61. Verfahren nach Anspruch 60, wobei das Verwalten der Statusrückschreibung von Deskriptoren umfasst: Ungültigmachen eines Deskriptors in dem Deskriptorcache beim Zurückziehen des Deskriptors.
  62. Verfahren nach Anspruch 60, wobei das Verwalten der Statusrückschreibung von Deskriptoren umfasst: Berücksichtigen des Umfangs der zu und von einem Speicher verschobenen Daten.
  63. Verfahren nach Anspruch 60, wobei das Verwalten der Statusrückschreibung von Deskriptoren umfasst: Aktualisieren und Zurückziehen von Deskriptoren.
  64. Verfahren nach Anspruch 63, wobei das Verwalten der Statusrückschreibung von Deskriptoren weiterhin umfasst: Schreiben aktualisierter Deskriptoren in den Deskriptorcache.
  65. Verfahren nach Anspruch 64, wobei das Verwalten der Statusrückschreibung von Deskriptoren weiterhin umfasst: Schreiben aktualisierter Deskriptoren auf eine Speicherschnittstelle (500) in einem Write-Through-Modus des Deskriptorcaches.
  66. Verfahren nach Anspruch 48, wobei der Deskriptorcache ein vollassoziativer Cache ist.
  67. Verfahren nach Anspruch 48, wobei der Deskriptorcache Write-Through-Eigenschaften aufweist.
  68. Verfahren nach Anspruch 67, weiterhin umfassend: Betreiben des Deskriptorcaches als Write-Through-Cache in einem vordefinierten Betriebsmodus, in dem der normale Cachebetrieb außer Kraft gesetzt ist.
  69. Verfahren nach Anspruch 48, weiterhin umfassend: Betreiben des Deskriptorcaches als Look-Aside-Cache.
  70. Verfahren nach Anspruch 48, weiterhin umfassend: Steuern eines Deskriptoraktualisierungsprozesses durch Aktualisieren eines Status von Transaktionen verschiedener Arten einschließlich Split- und Nonsplit-Transaktionen, Bulk-, Steuer- und Interrupt-Transaktionen und hereinkommenden, herausgehenden und Setup-Transaktionen.
  71. Verfahren nach Anspruch 48, wobei das Verfahren zum Betreiben eines USB-Hostcontrollers (USB: Universal Serial Bus) ist und weiterhin umfasst: Steuern eines Deskriptoraktualisierungsprozesses zum Aktualisieren eines Status aller Transaktionen, die von einer EHCI-gemäßen (EHCI: Enhanced Host Controller Interface) Queuekopfdatenstruktur umfasst sind.
  72. Verfahren nach Anspruch 48, weiterhin umfassend: Steuern eines Deskriptoraktualisierungsprozesses durch Aktualisieren eines Status isochroner Nonsplit-Transaktionen.
  73. Verfahren nach Anspruch 48, weiterhin umfassend: Steuern eines Deskriptoraktualisierungsprozesses durch Aktualisieren eines Status isochroner Split-Transaktionen.
  74. Verfahren nach Anspruch 48, wobei das Holen von Deskriptoren im voraus nach entweder einem periodischen oder einem asynchronen Planungsschema durchgeführt wird und umfasst: Bestimmen, wann zwischen den Planungsschemata umzuschalten ist.
  75. Verfahren nach Anspruch 48, wobei das Holen von Deskriptoren im voraus umfasst: Durchführen eines Algorithmus zum Auffinden des nächsten Deskriptors zum Bestimmen des nächsten zu holenden Deskriptors.
  76. Verfahren nach Anspruch 48, wobei das Holen von Deskriptoren im voraus umfasst: Berechnen wenigstens eines geschätzten Transaktionsdauerwertes für einen gegebenen Deskriptor.
  77. Verfahren nach Anspruch 48, wobei das Verfahren ein Verfahren zum Betreiben eines USB-2-gemäßen (USB-2: Universal Serial Bus Revision 2) Hostcontrollers ist und wobei die Geräte, die von dem USB-Hostcontroller gesteuert werden, USB-Geräte sind.
  78. Computersystem, das einen Hostcontroller (225) zum Steuern des Datenverkehrs zu und von wenigstens einem Peripheriegerät (115, 120, 125, 130, 230) umfasst, das mit dem Computersystem über einen seriellen Bus verbunden ist, wobei der Hostcontroller umfasst: eine Deskriptorholeinrichtung (530), die angepasst ist zum Aussenden von Anforderungen für Deskriptoren und Empfangen von Deskriptoren in Erwiderung auf die Anforderungen, wobei die Deskriptoren Datenstrukturen zum Beschreiben von Attributen des Datentransfers zu und von Peripheriegeräten sind, die von dem Hostcontroller gesteuert werden; und einen Deskriptorcache (545), der zum Speichern im voraus geholter Deskriptoren angepasst ist, wobei der Deskriptorcache weiterhin zum Speichern individueller Ersetzungssteuerwerte für wenigstens einen Teil der gespeicherten im voraus geholten Deskriptoren angepasst ist, wobei die Ersetzungssteuerwerte Sympathiewerte sind, die die Nützlichkeit des Speicherns des jeweiligen Deskriptors in dem Deskriptorcache angeben, und wobei der Hostcontroller eingerichtet ist 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, und wobei die Deskriptorholeinrichtung angepasst ist zum Berechnen des Sympathiewertes und mit dem Deskriptorcache verbunden ist, um den berechneten Sympathiewert in den Deskriptorcache zu schreiben.
DE10234990A 2002-07-31 2002-07-31 Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache Expired - Lifetime DE10234990B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE10234990A DE10234990B4 (de) 2002-07-31 2002-07-31 Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
US10/464,966 US7194583B2 (en) 2002-07-31 2003-06-19 Controlling the replacement of prefetched descriptors in a cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10234990A DE10234990B4 (de) 2002-07-31 2002-07-31 Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache

Publications (2)

Publication Number Publication Date
DE10234990A1 DE10234990A1 (de) 2004-02-19
DE10234990B4 true DE10234990B4 (de) 2007-03-29

Family

ID=30469281

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10234990A Expired - Lifetime DE10234990B4 (de) 2002-07-31 2002-07-31 Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache

Country Status (2)

Country Link
US (1) US7194583B2 (de)
DE (1) DE10234990B4 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10211054A1 (de) * 2002-03-13 2003-10-09 Advanced Micro Devices Inc USB-Hostcontroller
CA2406047A1 (en) * 2002-09-30 2004-03-30 Ali Solehdin A graphical user interface for digital media and network portals using detail-in-context lenses
US7337278B2 (en) * 2004-04-15 2008-02-26 International Business Machines Corporation System, method and storage medium for prefetching via memory block tags
US7386679B2 (en) * 2004-04-15 2008-06-10 International Business Machines Corporation System, method and storage medium for memory management
JP4837659B2 (ja) * 2004-06-15 2011-12-14 エヌエックスピー ビー ヴィ 分割トランザクションを処理するためのバス・コントローラ
US7634587B2 (en) * 2004-08-11 2009-12-15 Apple Inc. I/O descriptor cache for bus mastering I/O controllers
US7281074B2 (en) * 2005-06-29 2007-10-09 Intel Corporation Method and apparatus to quiesce USB activities using interrupt descriptor caching and asynchronous notifications
US7702825B2 (en) * 2005-06-29 2010-04-20 Intel Corporation Enhancements to universal serial bus (USB) suspend and resume operations
US7490255B2 (en) * 2006-06-30 2009-02-10 Intel Corporation Power efficient flow control model for USB asynchronous transfers
US20090119460A1 (en) * 2007-11-07 2009-05-07 Infineon Technologies Ag Storing Portions of a Data Transfer Descriptor in Cached and Uncached Address Space
US7853748B2 (en) * 2008-09-30 2010-12-14 Intel Corporation Method and apparatus to obtain code data for USB device
JP5287301B2 (ja) * 2009-01-30 2013-09-11 富士通株式会社 ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
WO2012140668A2 (en) * 2011-04-11 2012-10-18 Ineda Systems Pvt. Ltd Usb virtualization
US9075730B2 (en) 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
US20140280960A1 (en) * 2013-03-15 2014-09-18 Apple, Inc. Methods and apparatus for dynamically allocating devices between multiple controllers
US9081705B2 (en) 2013-06-11 2015-07-14 Apple Inc. Methods and apparatus for reliable detection and enumeration of devices
US9661105B2 (en) 2014-12-11 2017-05-23 Wand Labs, Inc. Virtual assistant system to enable actionable messaging
US20190158429A1 (en) * 2019-01-29 2019-05-23 Intel Corporation Techniques to use descriptors for packet transmit scheduling
US11138116B2 (en) * 2019-07-29 2021-10-05 Xilinx, Inc. Network interface device supporting multiple interface instances to a common bus

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4334289A (en) * 1980-02-25 1982-06-08 Honeywell Information Systems Inc. Apparatus for recording the order of usage of locations in memory
US5526511A (en) * 1993-12-23 1996-06-11 Unisys Corporation Enhanced least recently used round robin cache management method and apparatus for allocation and destaging of cache segments
US6105111A (en) * 1998-03-31 2000-08-15 Intel Corporation Method and apparatus for providing a cache management technique
US6272499B1 (en) * 1995-09-05 2001-08-07 Compaq Computer Corporation Linked lists of transfer descriptors scheduled at intervals
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US20020052987A1 (en) * 1998-11-19 2002-05-02 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
DE10211054A1 (de) * 2002-03-13 2003-10-09 Advanced Micro Devices Inc USB-Hostcontroller

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
DE19536819C2 (de) 1995-09-20 1998-03-12 Siemens Ag Einrichtung zum Überwachen von Gleichspannungen
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US5926841A (en) * 1996-03-13 1999-07-20 Advanced Micro Devices, Inc. Segment descriptor cache for a processor
US6119190A (en) 1996-11-06 2000-09-12 Intel Corporation Method to reduce system bus load due to USB bandwidth reclamation
US6292490B1 (en) * 1998-01-14 2001-09-18 Skystream Corporation Receipts and dispatch timing of transport packets in a video program bearing stream remultiplexer
US6275499B1 (en) * 1998-03-31 2001-08-14 Alcatel Usa Sourcing, L.P. OC3 delivery unit; unit controller
US6266715B1 (en) 1998-06-01 2001-07-24 Advanced Micro Devices, Inc. Universal serial bus controller with a direct memory access mode
US6216183B1 (en) * 1998-11-20 2001-04-10 Compaq Computer Corporation Apparatus and method for securing information entered upon an input device coupled to a universal serial bus
EP1102173A3 (de) 1999-11-22 2005-01-19 Texas Instruments Incorporated USB-Architektur
US6742076B2 (en) * 2000-01-03 2004-05-25 Transdimension, Inc. USB host controller for systems employing batched data transfer
US6691178B1 (en) * 2000-02-22 2004-02-10 Stmicroelectronics, Inc. Fencepost descriptor caching mechanism and method therefor
US6546461B1 (en) * 2000-11-22 2003-04-08 Integrated Device Technology, Inc. Multi-port cache memory devices and FIFO memory devices having multi-port cache memory devices therein
US6857030B2 (en) * 2001-09-12 2005-02-15 Sun Microsystems, Inc. Methods, system and article of manufacture for pre-fetching descriptors
US6938103B2 (en) * 2001-10-19 2005-08-30 Dell Products L.L.P. Universal serial bus transaction processing tasks scheduling method for computer system, involves assigning transaction to periodic queue head list with faster polling interval
US7073030B2 (en) * 2002-05-22 2006-07-04 International Business Machines Corporation Method and apparatus providing non level one information caching using prefetch to increase a hit ratio

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4334289A (en) * 1980-02-25 1982-06-08 Honeywell Information Systems Inc. Apparatus for recording the order of usage of locations in memory
US5526511A (en) * 1993-12-23 1996-06-11 Unisys Corporation Enhanced least recently used round robin cache management method and apparatus for allocation and destaging of cache segments
US6272499B1 (en) * 1995-09-05 2001-08-07 Compaq Computer Corporation Linked lists of transfer descriptors scheduled at intervals
US6105111A (en) * 1998-03-31 2000-08-15 Intel Corporation Method and apparatus for providing a cache management technique
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US20020052987A1 (en) * 1998-11-19 2002-05-02 Sun Microsystems, Inc. Host controller interface descriptor fetching unit
DE10211054A1 (de) * 2002-03-13 2003-10-09 Advanced Micro Devices Inc USB-Hostcontroller

Also Published As

Publication number Publication date
US20040030840A1 (en) 2004-02-12
US7194583B2 (en) 2007-03-20
DE10234990A1 (de) 2004-02-19

Similar Documents

Publication Publication Date Title
DE10234990B4 (de) Hostcontroller, Verfahren zum Betreiben, zugehöriges Southbridgebauelement und Computersystem zur Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE10234991B4 (de) Hostcontrollerdiagnose für einen seriellen Bus
DE60215417T2 (de) Netzwerkschaltung
DE60304455T2 (de) Usb host controller
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE69839374T2 (de) Multitorspeicher verwendende intelligente datenbusschnittstelle
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE69729243T2 (de) Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE60013470T2 (de) Gerät zur initialisierung einer rechnerschnittstelle
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE60037036T2 (de) Vier-gepumpte busarchitektur-/protokoll
DE69733384T2 (de) Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur
DE10239814B4 (de) Erweiterte Testmodusunterstützung für Hostcontroller
DE102009061252B3 (de) Vorrichtung, Verfahren und System zur Verarbeitung einer Transaktion auf einem PCI-Bus mittels eines Root-Komplexes
DE60309391T2 (de) Datenübertragungssteuerungssystem, Programm und Datenübertragungssteuerungsverfahren
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE10213839B4 (de) DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus
DE202010017668U1 (de) Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung
US20020087803A1 (en) Apparatus for identifying memory requests originating on remote I/O devices as noncacheable
DE202010018020U1 (de) Opportunistische Verbesserung einer MMIO-Anfrageabwicklung aufgrund eines Zielberichts von Raumerfordernissen
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
DE102009043263B4 (de) Verfahren, Vorrichtung und System zum Abfragen eines Gerätes nach Informationen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right