DE112016006660T5 - Technologien zur fehlerbehandlung für hochgeschwindigkeits-e/a-datentransfer - Google Patents

Technologien zur fehlerbehandlung für hochgeschwindigkeits-e/a-datentransfer Download PDF

Info

Publication number
DE112016006660T5
DE112016006660T5 DE112016006660.0T DE112016006660T DE112016006660T5 DE 112016006660 T5 DE112016006660 T5 DE 112016006660T5 DE 112016006660 T DE112016006660 T DE 112016006660T DE 112016006660 T5 DE112016006660 T5 DE 112016006660T5
Authority
DE
Germany
Prior art keywords
register value
tuning
computing device
data transfer
value set
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.)
Pending
Application number
DE112016006660.0T
Other languages
English (en)
Inventor
Ning Zhang
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112016006660T5 publication Critical patent/DE112016006660T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)

Abstract

Technologien zur Fehlerverarbeitung von Hochgeschwindigkeits-Eingangs-/Ausgangs (E/A)-Datentransfer werden offenbart. Vor einem Datentransfer zwischen einer externen E/A-Vorrichtung (wie einer SDIO-Karte, einer anderen SDIO-Vorrichtung oder einer USB-Vorrichtung) und einem E/A-Hostcontroller der Rechenvorrichtung, können Abstimmregister des E/A-Hostcontrollers eingestellt werden. Falls der Datentransfer nicht erfolgreich ist, kann die Rechenvorrichtung auf eine Tabelle zugreifen, die in dem E/A-Hostcontroller gespeichert ist (oder anderswo in der Rechenvorrichtung gespeichert ist), die andere Sätze von Werten der Abstimmregister aufweist, die verwendet werden können, um Daten erfolgreich zu übertragen, und dann den Datentransfer mit einem anderen Satz von Werten der Abstimmregister probieren. Um die Tabelle mit Sätzen von Werten, die verwendet werden können, zu initialisieren, führt die Rechenvorrichtung zunächst Datentransfers mit diversen Einstellungen der Abstimmregister aus.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Mit der Entwicklung von Hochgeschwindigkeitsdatentransfer von einer externen Vorrichtung zu einem Hostcontroller auf einer Rechenvorrichtung wie einem SD/SDIO-Protokoll, wurde das Aufrechterhalten der Stabilität der Daten, die auf dem Eingangs-/Ausgangs (E/A)-Bus übertragen werden, zu einem signifikanten Problem für die Designer von E/A-Hostcontrollern und Entwickler von Treibern. In vielen Fällen kann zum Beispiel eine hohe Fehlerrate während eines Hochgeschwindigkeitsdatentransfers auftreten. Hohe Fehlerraten bei einem Hochgeschwindigkeitsdatentransfer können durch Verringern der Geschwindigkeit des Datentransfers behoben werden, was bei einigen Anwendungen unerwünscht sein kann.
  • In einigen Fällen kann die Stabilität des Datentransfers von der spezifischen Ausführungsform des E/A-Hostcontrollers abhängen. Die Stabilität kann zum Beispiel von der Leiterplatte abhängen, mit der der E/A-Hostcontroller verbunden ist, oder sogar von dem Treiber, der verwendet wird. Ferner kann die Stabilität von der E/A-Vorrichtung, mit der der E/A-Hostcontroller in Kommunikation steht, abhängen.
  • Figurenliste
  • Die hierin beschriebenen Konzepte sind in den anliegenden Figuren lediglich beispielhaft und nicht einschränkend veranschaulicht. Aus Gründen der Einfachheit und Klarheit der Darstellung sind Elemente, die in den Figuren veranschaulicht werden, nicht notwendigerweise maßstabsgetreu gezeichnet. Wo es als angebracht angesehen wurde, wurden Bezugszeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente zu kennzeichnen.
    • 1 ist ein vereinfachtes Blockschaltbild mindestens einer Ausführungsform einer Rechenvorrichtung zum Übertragen von Daten mit einem E/A-Hostcontroller;
    • 2 ist ein vereinfachtes Blockschaltbild mindestens einer Ausführungsform eines E/A-Hostcontrollers der 1;
    • 3 ist ein Blockschaltbild mindestens einer Ausführungsform einer Umgebung, die von der Rechenvorrichtung der 1 erstellt werden kann;
    • 4 ist ein vereinfachtes Ablaufdiagramm mindestens einer Ausführungsform eines Verfahrens zum Filtern von Abstimmregisterwerten, das von der Rechenvorrichtung der 1 ausgeführt werden kann, und
    • die 5 und 6 sind vereinfachte Ablaufdiagramme mindestens einer Ausführungsform für ein Verfahren zum Übertragen von Daten, die von der Rechenvorrichtung der 1 ausgeführt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Obwohl die Konzepte der vorliegenden Offenbarung für diverse Modifikationen und alternative Formen geeignet sind, wurden spezifische Ausführungsformen davon in den Zeichnungen beispielhaft gezeigt und werden hier ausführlich beschrieben. Es versteht sich jedoch, dass nicht beabsichtigt wird, die Konzepte der vorliegenden Offenbarung auf die besonderen offenbarten Formen zu beschränken; es besteht vielmehr im Gegenteil die Absicht, alle Modifikationen, Äquivalente und Alternativen, die konsistent zur vorliegenden Offenbarung und den angehängten Ansprüchen sind, abzudecken.
  • Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „Ausführungsform“, „eine veranschaulichende Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform ein besonderes Merkmal, eine besondere Struktur oder eine besondere Eigenschaft aufweisen kann, dass aber nicht jede Ausführungsform notwendigerweise diese besondere Eigenschaft, Struktur oder dieses besondere Merkmal aufweist oder nicht. Darüber hinaus verweisen derartige Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ein besonderes Merkmal, eine besondere Struktur oder eine besondere Eigenschaft des Weiteren in Verbindung mit einer Ausführungsform beschrieben wird, wird außerdem unterstellt, dass es im Kenntnisbereich eines Fachmanns liegt, ein derartiges Merkmal, eine derartige Struktur oder eine derartige Eigenschaft in Verbindung mit anderen Ausführungsformen zustande zu bringen, ob es nun explizit beschrieben wurde oder nicht. Zusätzlich versteht sich, dass Einträge, die in einer Liste in der Form von „mindestens einer von A, B und C“ enthalten sind, Folgendes bedeuten können: (A); (B); (C): (A und B); (B und C); (A und C); oder (A, B, und C). Auf ähnliche Art können Einträge in der Form von „mindestens einer von A, B oder C“ aufgelistet sind, Folgendes bedeuten können: (A); (B); (C): (A und B); (B und C); (A und C) oder (A, B, und C).
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon umgesetzt sein. Die offenbarten Ausführungsformen können auch als Anweisungen implementiert sein, die von einem oder mehreren flüchtigen oder nichtflüchtigen maschinenlesbaren (zum Beispiel computerlesbaren) Speichermedien getragen oder in diesen gespeichert werden, die von einem oder mehreren Prozessoren ausgelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als eine beliebige Speichervorrichtung, ein Speichermechanismus oder als eine andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (zum Beispiel einem flüchtigen oder nichtflüchtigen Speicher, einer Medien-Disc oder einer anderen Medien-Vorrichtung) realisiert sein.
  • In den Zeichnungen sind einige strukturelle oder methodische Merkmale möglicherweise in speziellen Anordnungen und/oder Abfolgen gezeigt. Allerdings sollte zur Kenntnis genommen werden, dass derartige spezielle Anordnungen und/oder Abfolgen möglicherweise nicht nötig sind. Vielmehr sind bei einigen Ausführungsformen derartige Merkmale möglicherweise auf andere Weise und/oder in anderer Reihenfolge angeordnet als in den veranschaulichenden Figuren gezeigt. Zusätzlich soll die Einschließung eines strukturellen oder methodischen Merkmals in einer bestimmten Figur nicht bedeuten, dass ein derartiges Merkmal in allen Ausführungsformen erforderlich ist und, bei einigen Ausführungsformen, möglicherweise nicht eingeschlossen oder mit anderen Merkmalen kombiniert sein kann.
  • Unter Bezugnahme auf 1, weist eine veranschaulichende Rechenvorrichtung 100 einen Eingangs-/Ausgangs (E/A)-Hostcontroller 108 auf, der konfiguriert ist, um mit einer E/A-Vorrichtung 114 in Verbindung zu stehen, um Daten zu und von der E/A-Vorrichtung 114 zu übertragen. Beim Gebrauch, wie unten ausführlicher beschrieben, testet die Rechenvorrichtung 100 anfänglich mögliche Einstellungen der Abstimmregister 202 des E/A-Hostcontrollers 108 durch Ausführen eines Testdatentransfers mit jeder möglichen Einstellung (siehe 2 unten für mehr Einzelheiten der Abstimmregister 202). Der Wert der Abstimmregister 202 kann angeben, auf welcher Flanke eines dazugehörenden Taktgebersignals der E/A-Hostcontroller 108 schreiben oder lesen soll, (das heißt steigende Flanke oder fallende Flanke), die Verzögerungsabstimmung zum Schreiben und/oder andere Parameter der Kommunikation zwischen dem E/A-Hostcontroller 108 und der E/A-Vorrichtung 114. Für jeden erfolgreichen Testdatentransfer werden die entsprechenden Abstimmregisterwerte in dem E/A-Hostcontroller 108 gespeichert. Bei einem darauf folgenden aktiven oder „Nicht-Test“-Datentransfer, wird einer der gespeicherten Abstimmregisterwertesätze auf die Abstimmregister 202 angewandt, und der Datentransfer wird gestartet. Falls ein Fehler angetroffen wird, wird ein Abstimmregisterwertesatz ähnlich dem gegenwärtig verwendeten angewandt, und der Datentransfer wird wieder aufgenommen. Zusätzlich, wenn ein Datentransfer mit einem Abstimmregisterwertesatz nicht erfolgreich ist, wird ein Gewichtswert, der diesem besonderen Abstimmregisterwertesatz entspricht, in dem E/A-Hostcontroller 108 verringert. Wenn ein Datentransfer mit einem Abstimmregisterwertesatz erfolgreich ist, wird ein Gewichtswert, der diesem besonderen Abstimmregisterwertesatz entspricht, in dem E/A-Hostcontroller 108 erhöht. Der anfängliche Abstimmregisterwertesatz, der für Datentransfer zu verwenden ist, kann auf den Gewichtswerten, die in dem E/A-Hostcontroller 108 gespeichert sind, basieren.
  • Die Rechenvorrichtung 100 kann als ein beliebiger Typ von Rechenvorrichtung verkörpert sein, die fähig ist, die Funktionen, die hier beschrieben sind, auszuführen. Beispielsweise kann die Rechenvorrichtung 100 unter anderem ohne Einschränkung umgesetzt sein als oder enthalten sein in einem Smartphone, einem Funktelefon, einem eingebetteten Rechensystem, einem System-auf-einem-Chip (SoC), einem Desktop-Computer, einem Servercomputer, einem Tabletcomputer, einem Notebookcomputer, einem Laptopcomputer, einem anziehbaren Computer, einem Handgerät, einer Messagingvorrichtung, einer Kameravorrichtung, einem Multiprozessorsystem, einem prozessorbasierten System, einer Unterhaltungselektronikvorrichtung und/oder einer beliebigen anderen Rechenvorrichtung. Die veranschaulichende Rechenvorrichtung 100 weist einen Prozessor 102, einen Speicher 104, ein E/A-Subsystem 106, den Eingangs-/Ausgangs (E/A)-Hostcontroller 108, ein Display 110 und einen Datenspeicher 112 auf. Bei einigen Ausführungsformen können eine oder mehrere der veranschaulichenden Komponenten der Rechenvorrichtung 100 in einer anderen Komponente eingebaut sein oder anderswie einen Teil dieser bilden. Zum Beispiel kann bei einigen Ausführungsformen der Speicher 104, oder Teile davon, in dem Prozessor 102 eingebaut sein.
  • Der Prozessor 102 kann als ein beliebiger Typ von Prozessor verkörpert sein, der dazu in der Lage ist, die hier beschriebenen Funktionen auszuführen. Der Prozessor 102 kann zum Beispiel als ein Einzel- oder Multi-Kern-Prozessor bzw. -Prozessoren, ein Einzel- oder Multi-Sockel-Prozessor, ein digitaler Signalprozessor, ein Grafikprozessor, ein Mikrocontroller oder ein anderer Prozessor oder als eine Verarbeitungs-/Steuerschaltung realisiert sein. Auf ähnliche Art kann der Speicher 104 als ein beliebiger Typ flüchtigen oder nichtflüchtigen Speichers oder einer Datenablage, die fähig ist, die hier beschriebenen Funktionen durchzuführen, verkörpert sein. Beim Betrieb kann der Speicher 104 diverse Daten und Software, die während des Betriebs der Rechenvorrichtung 100 verwendet werden, wie etwa Betriebssysteme, Anwendungen, Programme, Bibliotheken und Treiber, speichern. Der Speicher 104 ist kommunizierend über das E/A-Subsystem 106, das als Schaltungen und/oder Komponenten realisiert sein kann, mit dem Prozessor 102 gekoppelt, um Eingabe-/Ausgabe-Vorgänge mit dem Prozessor 102, dem Speicher 104 und anderen Komponenten der Rechenvorrichtung 100 zu erleichtern. Das E/A-Subsystem 106 kann zum Beispiel als Speichersteuerhubs, Eingabe-/Ausgabesteuerhubs, Firmware-Vorrichtungen, Kommunikationsverbindungen (das heißt Punkt-zu-Punkt-Verbindungen, Busverbindungen, Drähte, Kabel, Lichtwellenleiter, Bahnen auf gedruckten Leiterplatten usw.) und/oder anderen Komponenten und Subsystemen realisiert sein oder diese anderswie beinhalten, um die Eingabe-/Ausgabe-Vorgänge zu erleichtern. Bei einigen Ausführungsformen kann das E/A-Subsystem 106 einen Abschnitt eines Systems-auf-Chip (SoC) bilden und gemeinsam mit dem Prozessor 102, dem Speicher 104 oder anderen Komponenten der Rechenvorrichtung 100 auf einem einzigen Integrierte-Schaltung-Chip eingebaut sein.
  • Der E/A-Hostcontroller 108 kann als ein beliebiger Typ einer Vorrichtung zum Übertragen von Daten zu und/oder von einer E/A-Vorrichtung 114, die eine externe E/A-Vorrichtung sein kann, verkörpert werden. Der E/A-Hostcontroller 108 kann zum Beispiel als ein SDIO-Hostcontroller, ein USB-Hostcontroller oder dergleichen verkörpert werden, und die entsprechende E/A-Vorrichtung kann eine SD-Karte oder andere SDIO-Vorrichtung, eine USB-Vorrichtung oder dergleichen sein. Bei der veranschaulichenden Ausführungsform, ist der E/A-Hostcontroller 108 kommunikationsfähig mit dem Prozessor 102 und/oder dem Speicher 104 durch das E/A-Subsystem 106 gekoppelt. Bei einigen Ausführungsformen kann der E/A-Hostcontroller 108 einen Abschnitt des Prozessors 102 und/oder des Speichers 104 bilden. Bei zusätzlichen Ausführungsformen kann der E/A-Hostcontroller 108 einen Abschnitt eines SoC bilden und kann gemeinsam mit dem Prozessor 108, dem Speicher 104, dem E/A-Subsystem 106 und anderen Komponenten der Rechenvorrichtung 100 auf einem einzigen Integrierte-Schaltung-Chip eingebaut sein.
  • Das Display 110 kann als ein beliebiger Typ von Display verkörpert sein, auf dem Informationen für einen Benutzer der Rechenvorrichtung 100 angezeigt werden werden können, wie ein Flüssigkristall-Display (LCD), ein Licht emittierendes Dioden- (LED)-Display, ein Kathodenstrahlröhren (CRT)-Display, ein Plasmadisplay, ein Bildprojektor (zum Beispiel 2D oder 3D), ein Laserprojektor, ein Touchscreen-Display, ein Heads-Up-Display und/oder eine andere Displaytechnologie sein.
  • Der Datenspeicher 112 kann als ein beliebiger Typ einer Vorrichtung oder von Vorrichtungen verkörpert sein, die zur Kurzzeit- oder Langzeitspeicherung von Daten ausgelegt ist/sind. Beispielsweise kann der Datenspeicher 112 eine oder mehr beliebige Speichervorrichtungen und Schaltungen, Speicherkarten, Festplattenlaufwerke, Festkörperlaufwerke oder andere Datenspeichervorrichtungen aufweisen.
  • Natürlich kann die Rechenvorrichtung 100 bei einigen Ausführungsformen andere oder zusätzliche Komponenten aufweisen, wie die, die man gewöhnlich in einer Rechenvorrichtung antrifft. Die Rechenvorrichtung 100 kann zum Beispiel auch Peripheriegeräte 116, wie eine Tastatur, eine Maus, eine Kommunikationsschaltung usw. haben.
  • Unter Bezugnahme auf 2, weist der E/A-Hostcontroller 108 Abstimmregister 202, eine Datenleseschaltung 204, eine Datenschreibschaltung 206, eine Rechenvorrichtungsschnittstelle 208, eine Abstimmregisterwertetabelle 210, ein Taktgebersignal 212 und E/A-Kontakte 214 auf. Bei der veranschaulichenden Ausführungsform sind die Abstimmregister 202, die Abstimmregisterwertetabelle 210 und die E/A-Kontakte 214 jeweils als Hardware verkörpert, und die Datenleseschaltung 204, die Datenschreibschaltung 206 sowie die Rechenvorrichtungsschnittstelle 208 sind als eine Kombination aus Hardware und Firmware verkörpert. Bei einigen Ausführungsformen können beliebige der Abstimmregister 202, die Abstimmregisterwertetabelle 210, die Datenleseschaltung 204, die Datenschreibschaltung 206 und die Rechenvorrichtungsschnittstelle 208 als Hardware, Software, Firmware oder eine Kombination dieser verkörpert werden. Natürlich weisen bei jeder Ausführungsform die Datenleseschaltung 204 und die Datenschreibschaltung 206 jeweils die erforderliche Hardware auf, um die gewünschte Abstimmung basierend auf den Abstimmregistern 202 umzusetzen, wie unten ausführlicher beschrieben.
  • Die veranschaulichenden Abstimmregister 202 weisen Flankenabtastabstimmregister 214, Schreibverzögerungsabstimmregister 216, Leseverzögerungsabstimmregister 218 und E/A-Kontaktmerkmalregister 220 auf. Natürlich sind bei einigen Ausführungsformen einige dieser Abstimmregister 202 eventuell nicht vorhanden und/oder zusätzliche Abstimmregister können vorhanden sein. Jedes der Abstimmregister 202 ist als ein Register oder ein anderer Speicherplatz, auf den der E/A-Hostcontroller zugreift, um einen Lese- und/oder Schreibvorgang des E/A-Hostcontrollers während eines Datentransfers abzustimmen, verkörpert. Das Register oder der Speicherplatz kann ein beliebiger Typ eines flüchtigen oder nichtflüchtigen Speichers sein. Bei der veranschaulichenden Ausführungsform, gibt es ein Register jedes Typs von Registern für jeden E/A-Kontakt 214 des E/A-Hostcontrollers (das heißt ein Flankenabtastabstimmregister 214, ein Schreibverzögerungsabstimmregister 216 usw. für jeden E/A-Kontakt 214). Bei anderen Ausführungsformen kann ein Register jedes Typs das Verhalten von mehr als einem E/A-Kontakt 214 steuern (das heißt ein Flankenabtastabstimmregister 214 kann die Abtastflanke für zwei oder mehr der E/A-Kontakte 214 steuern). Natürlich können bei einigen Ausführungsformen einige Register einen einzigen E/-A-Kontakt 214 steuern, und andere Register können mehr als einen E/A-Kontakt 214 steuern.
  • Die Flankenabtastregister 216 geben an, an welcher Flanke des Taktgebersignals 212 der E/A-Hostcontroller 108 einen oder mehr entsprechende E/A-Kontakte 214 abtastet (das heißt die steigende Flanke oder die fallende Flanke). Die Flankenabtastregister 216 sind als mindestens ein Einzelbitregister verkörpert, um eine von zwei Möglichkeiten anzugeben.
  • Die Schreibverzögerungsabstimmregister 218 geben eine zeitliche Schreibverzögerung an, die der E/A-Hostcontroller 108 verwenden soll, wenn er zu dem einen oder mehr entsprechenden E/A-Kontakten 214 schreibt. Die Schreibverzögerungsabstimmregister 218 können die digitale zeitliche Schreibverzögerung in einem beliebigen Format darstellen, wie eine Ganzzahl, Doppel, Gleit- oder ein anderes Format. Bei der veranschaulichenden Ausführungsform können die Schreibverzögerungsabstimmregister 218 eine relativ kleine Anzahl von Verzögerungsauswahlen angeben, die durch eine Ganzzahl eines Verzögerungsschritts getrennt sind, wie negativ 8 zu positiv 7 des Verzögerungsschritts. Diese 16 Möglichkeiten könnten durch ein Vier-Bit-Register dargestellt werden. Der Verzögerungsschritt kann bei einigen Ausführungsformen 0,1, 0,2, 0,5, 1, 2, 5, 10, 20, 50, oder 100 Nanosekunde(n) betragen. Mit einem Verzögerungsschritt von 1 Nanosekunde und einem Vier-Bit-Register, kann das Schreibverzögerungsabstimmregister eine Verzögerung von negativ 8 Nanosekunden bis positiv 7 Nanosekunden angeben. Bei anderen Ausführungsformen könnten mehr oder weniger Möglichkeiten mit einem größeren oder kleineren Register verwendet werden. Zusätzlich oder alternativ ist bei einigen Ausführungsformen der Verzögerungsschritt zwischen benachbarten Verzögerungswerten eventuell nicht gleichmäßig.
  • Die Leseverzögerungsabstimmregister 220 geben eine zeitliche Leseverzögerung an, die der E/A-Hostcontroller 108 verwenden soll, wenn er von einem oder mehr entsprechenden E/A-Kontakten 214 liest. Die Leseverzögerungsabstimmregister 220 können die digitale zeitliche Leseverzögerung in einem beliebigen Format ähnlich dem Schreibverzögerungsabstimmregister darstellen. Bei der veranschaulichenden Ausführungsform, geben die Leseverzögerungsabstimmregister 220 die Verzögerung auf eine ähnliche Art wie die Schreibverzögerungsabstimmregister 218, die oben beschrieben sind, an. Natürlich können bei einigen Ausführungsformen das Format oder die Registergröße, die von den Leseverzögerungsabstimmregistern 220 verwendet wird/werden, von dem Format oder der Registergröße unterschiedlich sein, die von den Schreibverzögerungsabstimmregistern 218 verwendet werden.
  • Die E/A-Kontaktmerkmalregister 222 geben eine Abschlussimpedanz an, die der E/A-Hostcontroller 108 verwenden soll, wenn er von dem einen oder mehr entsprechenden E/A-Kontakten 214 liest. Die E/A-Kontaktmerkmalregister 222 können die digitale Abschlussimpedanz in einem beliebigen Format darstellen, wie eine Ganzzahl, Doppel, Gleit- oder ein anderes Format. Die E/A-Kontaktmerkmalregister 222 können eine Abschlussimpedanz mit einem beliebigen Wert angeben, der gleich oder nahe der Nennimpedanz jedes der E/A-Kontakte 214 ist, wie 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105 oder 110 Ohm. Bei einigen Ausführungsformen gibt ein Wert der E/A-Kontaktmerkmalregister 222 an, dass eine hohe Impedanz verwendet werden sollte.
  • Man muss zu schätzen wissen, dass die Abstimmregister 202 bei einigen Ausführungsformen einen Wert angeben können, den der E/A-Hostcontroller 108 eventuell nicht fähig ist umzusetzen. Die Schreibverzögerungsabstimmregister 218 können zum Beispiel 32 Bit breit sein, mit 2^32 möglichen Werten für jedes Schreibverzögerungsabstimmregister 218, aber der E/A-Hostcontroller 108 ist eventuell nur fähig, 16 unterschiedliche Schreibabstimmverzögerungen umzusetzen. Bei einer solchen Ausführungsformen kann der E/A-Hostcontroller 108 konfiguriert sein, um das Verhalten umzusetzen, das dem am nächsten ist, das von dem entsprechenden Abstimmregister 202 angegeben wird.
  • Die Datenleseschaltung 204 ist konfiguriert, um Daten aus den E/A-Kontakten 214 zu lesen, und die Datenschreibschaltung 206 ist konfiguriert, um Daten zu den E/A-Kontakten 214 zu schreiben. Jede der Datenleseschaltung 204 und der Datenschreibschaltung 206 setzt die Einstellungen um, die von den Abstimmregister 202 als erforderlich angegeben werden. Die veranschaulichende Datenleseschaltung 204 wird zum Beispiel aktiviert, um entweder auf der steigenden Flanke oder der fallenden Flanke des Taktgebersignals 212 basierend auf den Flankenabtastregistern 216 abzutasten, wird aktiviert, um ein Lesetiming basierend auf den Leseverzögerungsabstimmregister 220 zu verzögern, und wird aktiviert, um die Abschlussimpedanz eines oder mehrerer E/A-Kontakte 214 basierend auf den E/A-Kontaktmerkmalregistern 222 zu ändern. Auf ähnliche Art wird die veranschaulichende Datenschreibschaltung 206 aktiviert, um ein Schreibtiming basierend auf den Schreibverzögerungsabstimmregistern 218 zu verzögern.
  • Die Rechenvorrichtungsschnittstelle 208 ist konfiguriert, um mit anderen Elementen der Rechenvorrichtung 100, wie dem Prozessor 102 und/oder dem Speicher 104, zu kommunizieren. Die Rechenvorrichtungsschnittstelle 208 kann beliebige Mittel zur Kommunikation verwenden, um mit den anderen Elementen der Rechenvorrichtung 100 zu kommunizieren.
  • Die Abstimmregisterwertetabelle 210 ist konfiguriert, um Informationen zu speichern, die angeben, welche Abstimmregisterwerte wahrscheinlich zu einem erfolgreichen Datentransfer führen werden. Bei der veranschaulichenden Ausführungsform, weist die Abstimmregisterwertetabelle 210 Einträge in die Tabelle auf, wobei jeder Eintrag einen Abstimmregisterwertesatz 224 und einen Gewichtswert 226 aufweist. Jeder Gewichtswert 226 gibt eine vergangene Ausführung von Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes an. Bei der veranschaulichenden Ausführungsform, ist die Abstimmregisterwertetabelle 210 in nichtflüchtigem Speicher des E/A-Hostcontrollers 108 gespeichert. Bei anderen Ausführungsformen kann die Abstimmregisterwertetabelle 210 in dem Speicher 104 oder dem Datenspeicher 112 gespeichert sein.
  • Das Taktgebersignal 212 ist ein Signal, das verwendet wird, um das Lesen und/oder Schreiben des E/A-Hostcontrollers 108 zu den E/A-Kontakten 214 zu synchronisieren. Das Taktgebersignal 212 kann durch einen oder Verwenden eines Kristalls, einer Taktgebersignal-Erzeugungsschaltung oder einen anderen Mechanismen erzeugt werden, die zum Erzeugen eines zweckdienlichen Taktgebersignals verwendbar sind. Bei einigen Ausführungsformen kann das Taktgebersignal 212 mit einer anderen Timervorrichtung der Rechenvorrichtung 100, wie einem Taktgebersignal des Prozessors 102 oder einem Taktgebersignal des E/A-Busses 106, synchronisiert werden. Bei anderen Ausführungsformen, kann das Taktgebersignal 212 von einem beliebigen anderen Taktgebersignal der Rechenvorrichtung 100 unabhängig sein. Bei einigen Ausführungsformen kann das Taktgebersignal 212 als ein Taktgebersignal zum Verarbeiten oder anderen Aktionen verwendet werden, die in dem E/A-Hostcontroller 108 neben denen, die direkt mit Lesen und/oder Schreiben der E/A-Kontakte 214 zusammenhängen, erfolgen, und bei anderen Ausführungsformen kann es nur für Aktionen verwendet werden, die direkt mit dem Lesen und/oder Schreiben der E/A-Kontakte 214 zusammenhängen.
  • Die E/A-Kontakte 214 können ein beliebiger Typ elektrischen Kontakts sein, der es dem E/A-Hostcontroller 108 erlaubt, mit der E/A-Vorrichtung 114 zu kommunizieren. Die E/A-Kontakte 214 können zum Beispiel, ohne darauf beschränkt zu sein, als ein oder mehr Kontakte, Pads und/oder andere elektrische Kontakte verkörpert werden.
  • Unter Bezugnahme auf 3, kann die Rechenvorrichtung 100 beim Gebrauch eine Umgebung 300 erstellen. Die veranschaulichende Umgebung 300 weist ein E/A-Abstimmfiltermodul 302, ein Datentransfermodul 304 und ein E/A-Abstimmverfeinerungsmodul 306 auf. Die diversen Module der Umgebung 300 können als Hardware, Software, Firmware oder als eine Kombination davon verkörpert werden. Die diversen Module, die Logik und anderen Komponenten der Umgebung 300 können zum Beispiel einen Abschnitt des Prozessors 102 oder andere Hardwarekomponenten der Rechenvorrichtung 100 bilden oder anderswie von ihm/ihnen erstellt werden. Daher können bei einigen Ausführungsformen ein oder mehr der Module der Umgebung 300 als eine Schaltung oder Sammlung elektrischer Bauteile verkörpert werden (zum Beispiel eine E/A-Abstimmfilterschaltung 302, eine Datentransferschaltung 304, eine E/A-Abstimmverfeinerungsschaltung 306 usw.). Man sollte zu schätzen wissen, dass ein oder mehr der Schaltungen (zum Beispiel die E/A-Abstimmfilterschaltung 302, die Datentransferschaltung 304, die E/A-Abstimmverfeinerungsschaltung 306 usw.) einen Abschnitt des einen oder mehr der Prozessoren 102, des Speichers 104, des E/A-Subsystems 106, des E/A-Hostcontrollers 108 und/oder des Datenspeichers 112 bilden können. Zusätzlich können bei einigen Ausführungsformen ein oder mehr der veranschaulichenden Module einen Abschnitt eines anderen Moduls bilden, und/oder ein oder mehr der veranschaulichenden Module können voneinander unabhängig sein.
  • Das E/A-Filtermodul 302 ist konfiguriert, um zu bestimmen, welche Abstimmregisterwertesätze zu einem erfolgreichen Datentransfervorgang führen, und um diese Abstimmregisterwertesätze in der Abstimmregisterwertetabelle 210 zu speichern. Bei der veranschaulichenden Ausführungsform,probiert das E/A-Filtermodul 302 einen Testdatentransfer für jede mögliche Einstellung der Abstimmregister. Bei anderen Ausführungsformen kann das E/A-Filtermodul 302 einen Datentransfer mit weniger als jeder möglichen Einstellung probieren, insbesondere, falls es eine unüberblickbar große Anzahl möglicher Kombinationen gibt. Bei einer solchen Ausführungsformen kann das E/A-Filtermodul 302 eine Auswahl der Abstimmregisterwertesätze auswählen, für die es einen Datentransfer probieren wird. Ein Testdatentransfer ist unten ausführlicher in Zusammenhang mit 4 beschrieben. Nach einem erfolgreichen Testdatentransfer, fügt ein Abstimmregisterwertetabelle-Initialisierungsmodul 308 des E/A-Filterabstimmmoduls 302 den entsprechenden Abstimmregisterwertesatz zu der Abstimmregisterwertetabelle 210 hinzu.
  • Das Datentransfermodul 304 ist konfiguriert, um Daten unter Verwenden der Informationen zu übertragen, die in der Abstimmregisterwertetabelle 210 gespeichert sind. Bevor ein Datentransfer gestartet wird, wählt das Datentransfermodul 304 einen Abstimmregisterwertesatz 224 der Abstimmregisterwertetabelle 210 aus, und wendet ihn an die Abstimmregister 202 an. Bei der veranschaulichenden Ausführungsform, wählt das Datentransfermodul 304 den Abstimmregisterwertesatz 224 an, der den höchsten Gewichtswert 226 hat, aus.
  • Das Datentransfermodul 304 weist ein Fehlererfassungsmodul 310 auf, das konfiguriert ist, um zu bestimmen, ob ein gegebener Datentransfer erfolgreich ist. Bei der veranschaulichenden Ausführungsform, weist jeder Datentransfer (inklusive Befehle) von dem E/A-Hostcontroller 108 zu der E/A-Vorrichtung 114 einen Fehlererfassungscode, wie eine Paritätsprüfung, eine zyklische Redundanzprüfung oder einen anderen Fehlererfassungscode auf. Die E/A-Vorrichtung 114 ist konfiguriert, um basierend auf dem Fehlererfassungscode zu bestimmen, ob der Datentransfer fehlerfrei ausgeführt wurde. Wenn ein Fehler auftritt, ist die E/A-Vorrichtung 114 konfiguriert, um den E/A-Hostcontroller zu verständigen, was durch das Fehlererfassungsmodul 310 erfasst werden kann. Auf ähnliche Art weist jeder veranschaulichende Datentransfer von der E/A-Vorrichtung 114 zu dem E/A-Hostcontroller 108 einen Fehlererfassungscode auf. Das Fehlererfassungsmodul 310 ist konfiguriert, um basierend auf dem empfangenen Fehlererfassungscode zu bestimmen, ob der Datentransfer von der E/A-Vorrichtung 110 erfolgreich war.
  • Bei einigen Ausführungsformen ist eventuell ein Fehlererfassungscode nicht in jedem Datentransfervorgang enthalten. Bei solchen Ausführungsformen kann das Fehlererfassungsmodul 310 konfiguriert sein, um Fehler zum Beispiel durch Lesen von Daten, die soeben zu der E/A-Vorrichtung 114 geschrieben wurden, und Prüfen, dass die Daten korrekt geschrieben wurden, zu erfassen. Man sollte zu schätzen wissen, dass bei einigen Ausführungsformen der Fehlererfassungscode einen Fehlererfassungscode aufweisen kann, der verwendet werden kann, um einen Fehler zu korrigieren, ohne die entsprechenden Daten neu zu senden. Bei solchen Ausführungsformen kann das Fehlererfassungsmodul 310 einen korrigierbaren Fehler als einen erfassten Fehler betrachten oder nicht.
  • Das veranschaulichende E/A-Abstimmverfeinerungsmodul 306 ist konfiguriert, um die Auswahl der Abstimmregisterwertesätze 224 in der Abstimmregisterwertetabelle 210 zu verfeinern und zu bestimmen, welche Abstimmregisterwerte beim Auftreten eines Fehlers verwendet werden sollen. Das veranschaulichende E/A-Abstimmverfeinerungsmodul 306 ist konfiguriert, um den nächsten Abstimmregisterwertesatz 224 der Abstimmregisterwertetabelle 210, der zu probieren ist, basierend darauf zu bestimmen, welcher Satz dem aktuellen Abstimmregisterwertesatz am nächsten liegt, wie unten unter Bezugnahme auf 6 ausführlicher beschrieben ist. Falls dieser Abstimmregisterwertesatz 224 nicht funktioniert, wird der nächste Satz probiert usw. Jedes Mal, wenn ein Abstimmregisterwertesatz 224 zu einem nicht erfolgreichen Datentransfer führt, speichert das Abstimmregisterwertetabellen-Aktualisierungsmodul 312 des E/A-Abstimmverfeinerungsmoduls 306 eine Angabe dieses Versagens in dem entsprechenden Gewichtswert 226, wie durch Dekrementieren des Gewichtswerts 226. Wenn ein Abstimmregisterwertesatz 224 zu einem erfolgreichen Datentransfer führt, speichert das Abstimmregisterwertetabellen-Aktualisierungsmodul 312 eine Angabe dieses Erfolgs in dem entsprechenden Gewichtswert 226, wie durch Inkrementieren des Gewichtswerts 226.
  • Unter Bezugnahme auf 4, kann die Rechenvorrichtung 100 beim Gebrauch ein Verfahren 400 zum Filtern von Abstimmregisterwerten ausführen. Das Verfahren 400 beginnt bei Block 402, in dem die Rechenvorrichtung 100 bestimmt, welche Abstimmregisterwertesätze aller möglichen Abstimmregisterwertesätze zu testen sind. Bei der veranschaulichenden Ausführungsform, kann die Rechenvorrichtung 100 jeden möglichen Abstimmregisterwertesatz testen. Bei anderen Ausführungsformen, wie solchen mit einer sehr großen Anzahl möglicher Abstimmregisterwertesätze, kann die Rechenvorrichtung 100 nicht über jeden möglichen Abstimmregisterwertesatz iterieren, und kann weniger Abstimmregisterwertesätze zum Testen auswählen. Die Rechenvorrichtung 100 kann zum Beispiel eine relativ kleine Anzahl möglicher Registerwerte für jedes Abstimmregister 202 auswählen, und dann jede mögliche Kombination der Abstimmregister 202 für diese Registerwerte testen.
  • Bei Block 404, wählt die Rechenvorrichtung 100 einen der ungetesteten Abstimmregisterwertesätze, die zu testen sind, aus. Die Rechenvorrichtung kann die ungetesteten Registerwertesätze auf eine beliebige Art auswählen, wie durch Starten mit dem niedrigsten möglichen Wert für jedes Register und Wiederholen über jeden Wert für jedes Register von dem kleinsten zu dem größten. Bei Block 406 wendet die Rechenvorrichtung 100 den ausgewählten Abstimmregisterwertesatz auf die Abstimmregister 202 an.
  • Bei Block 408, führt die Rechenvorrichtung 100 einen Testdatentransfer unter Verwenden des Abstimmregisterwertesatzes aus. Bei der veranschaulichenden Ausführungsform, führt die Rechenvorrichtung 100 sowohl einen Schreibvorgang als auch einen Lesevorgang als Teil des Testdatentransfers aus, und betrachtet den Test als nicht erfolgreich, falls entweder der Lese- oder der Schreibvorgang zu einem Fehler führt. Bei einigen Ausführungsformen, kann die Rechenvorrichtung 100 nur einen Schreibvorgang oder nur einen Lesevorgang als Teil des Testdatentransfers ausführen, und der Test wird als nicht erfolgreich betrachtet, falls dieser Vorgang zu einem Fehler führt. Man muss zu schätzen wissen, dass, falls der Lesevorgang der Testdatentransfer ist, Testdaten zu der E/A-Vorrichtung 114 vor dem Lesevorgang geschrieben werden können. Bei einigen Ausführungsformen kann die Rechenvorrichtung 100 separat das Ausführen eines Lesevorgangs und eines Schreibvorgangs in Betracht ziehen und Werte in der Abstimmregisterwertetabelle 210 speichern, die für Lesevorgänge gewendet werden sollten, und Werte speichern, die für Schreibvorgänge verwendet werden sollten.
  • Bei der veranschaulichenden Ausführungsform, wird ein einziger Testdatentransfer ausgeführt. Bei einigen Ausführungsformen können mehrere Testdatentransfers ausgeführt werden, und jeder Abstimmregisterwertesatz, der zu einem erfolgreichen Testdatentransfer für mindestens einen Schwellenanteil der Testdatentransfers führt, kann als erfolgreich betrachtet werden. Der Schwellenanteil kann ein beliebiger Wert sein. Bei einigen Ausführungsformen, falls zum Beispiel ein einziger Testdatentransfer aller Testdatentransfers erfolgreich ist, kann dieser Anteil über dem Schwellenabschnitt liegen. Bei anderen Ausführungsformen, wenn ein einziger Testdatentransfer aller Testdatentransfer nicht erfolgreich ist, liegt dieser Anteil eventuell nicht über dem Schwellenanteil. Ein Fehler bei einem Lese- oder Schreibvorgang kann unter Verwenden des Fehlererfassungsmodul 310, das oben beschrieben ist, bestimmt werden.
  • Bei Block 410 bestimmt die Rechenvorrichtung 100, ob der Testdatentransfer erfolgreich war. Bei Block 412, falls der Datentransfer nicht erfolgreich war, springt das Verfahren 400 zu Block 418. Anderenfalls geht das Verfahren 400 zu Block 414 weiter.
  • Bei Block 414 speichert die Rechenvorrichtung 100 den Abstimmregisterwertesatz in die Abstimmregisterwertetabelle 210. Bei der veranschaulichenden Ausführungsform, wird der entsprechende Gewichtswert 226 in der Abstimmregisterwertetabelle 210 auf einen Standardwert, wie auf null, initialisiert. Bei einigen Ausführungsformen wie einer, bei der mehrere Testdatentransfers für jeden Abstimmregisterwertesatz ausgeführt werden, kann die Rechenvorrichtung 100 einen Gewichtswert speichern, der den Anteil der Testdatentransfers, der erfolgreich war, in Block 416 angibt.
  • Bei Block 418, falls ein zusätzlicher ungetesteter Abstimmregisterwertesatz, der zu testen ist, noch nicht getestet wurde, springt das Verfahren 400 zu Block 404 zurück. Anderenfalls geht das Verfahren zu Block 420 weiter, bei dem die Abstimmregisterwertefilterstufe endet. Man muss zu schätzen wissen, dass bei bestimmten Ausführungsformen das Verfahren 400, das oben beschrieben ist, an oder kurz nach dem Zeitpunkt der Herstellung und vor dem Verkauf der Rechenvorrichtung an den Endbenutzer ausgeführt werden kann. In einigen Fällen wird die Rechenvorrichtung 100 verwendet, um das Verfahren 400 auszuführen, so dass es von der Rechenvorrichtung 100 unterschiedlich ist, die verwendet wird, um das Verfahren 500, das unten beschrieben ist, auszuführen (obwohl der E/A-Hostcontroller 108 derselbe sein kann).
  • Unter Bezugnahme auf 5 kann die Rechenvorrichtung 100 beim Gebrauch ein Verfahren zum Übertragen von Daten zwischen einem E/A-Hostcontroller 108 und einer E/A-Vorrichtung 114 ausführen. Das Verfahren 500 beginnt bei Block 502, in dem die Rechenvorrichtung 100 einen oder mehr Datentransfers beginnt. Die Datentransfers können zum Beispiel durch einen Befehl von einem Benutzer, einen Befehl von einem Programm, das auf der Rechenvorrichtung 100 läuft, einem Befehl durch die E/A-Vorrichtung 114 und/oder dergleichen initiiert werden. Bei der veranschaulichenden Ausführungsform, ist jeder Datentransfer ein Transfer eines einzigen Datenblocks, und alle der Datentransfers gemeinsam können zum Beispiel eine einzelne Datendatei übertragen. Man muss zu schätzen wissen, dass die E/A-Vorrichtung 114, die bei dem Verfahren 500 verwendet wird, von der E/A-Vorrichtung 114, die bei dem Verfahren 400 verwendet wird, unterschiedlich sein kann.
  • Bei Block 504 wendet die Rechenvorrichtung 100 den Abstimmregisterwertesatz 224 der Abstimmregisterwertetabelle 210 mit dem höchsten Gewichtswert 226 auf die Abstimmregister 202 des E/A-Hostcontrollers 108 an. Bei Ausführungsformen, bei welchen mehr als ein Abstimmregisterwertesatz 224 denselben Gewichtswert 226 hat, kann die Rechenvorrichtung willkürlich aus den Abstimmregisterwertesätzen 224 mit demselben Gewichtswert 226 in dem Block 506 auswählen.
  • Bei Block 508 führt die Rechenvorrichtung 100 einen Datentransfer unter Verwenden des E/A-Hostcontrollers 108 mit den Werten der Abstimmregister 202, die dem aktuellen Abstimmregisterwertesatz 224 entsprechen, aus. Bei Block 510 bestimmt die Rechenvorrichtung 100, ob der Testdatentransfer erfolgreich war. Bei der veranschaulichenden Ausführungsform kann die Rechenvorrichtung 100 einen Fehlererfassungscode betrachten in Betracht ziehen, der als Teil des Datentransfers gesendet wurde, um zu bestimmen, ob der Datentransfer erfolgreich war. Bei anderen Ausführungsformen kann die Rechenvorrichtung 100 bestimmen, ob ein Fehler aufgetreten ist, indem sie andere Mittel, wie oben in Zusammenhang mit dem Fehlererfassungsmodul 304 beschrieben, verwendet. Bei der veranschaulichenden Ausführungsform werden die zu übertragenden Daten Datenblock für Datenblock bei jeder Iteration des Blocks 510 übertragen, wobei jeder Datenblock einen entsprechenden Fehlererfassungscode hat, und der Erfolg des Datentransfers wird basierend auf jedem einzelnen Datenblock und jedem einzelnen Fehlererfassungscode bestimmt. Bei anderen Ausführungsformen können mehrere Blöcke mit mehreren entsprechenden Fehlererfassungscodes als Teil des Datentransfers, der bei Block 510 ausgeführt wird, übertragen werden, und der Datentransfer kann als erfolgreich betrachtet werden, falls die Fehlerrate unter einem Schwellenwert liegt.
  • Falls bei Block 512 der Datentransfer nicht erfolgreich war, springt das Verfahren zu Block 520 in 6. Anderenfalls geht das Verfahren 500 zu Block 514 weiter. Bei Block 514 speichert die Rechenvorrichtung 100 eine Angabe, dass der Datentransfer erfolgreich war, in der Abstimmregisterwertetabelle 210, die dem aktuellen Abstimmregisterwertesatz 224 entspricht. Bei der veranschaulichenden Ausführungsform, tut die Rechenvorrichtung 100 das durch Inkrementieren des entsprechenden Gewichtswerts 226 in der Abstimmregisterwertetabelle 210. Bei der veranschaulichenden Ausführungsform inkrementiert die Rechenvorrichtung 100 den Gewichtswert 226 für jeden Datenblock, der erfolgreich übertragen wird. Bei anderen Ausführungsformen inkrementiert die Rechenvorrichtung 100 den Gewichtswert 226 für jeden Datenblock, der erfolgreich übertragen wird, eventuell nicht. Die Rechenvorrichtung 100 kann zum Beispiel nur den Gewichtswert 226 der ersten mehreren aufeinanderfolgenden Datentransfers inkrementieren, für die der Abstimmregisterwertesatz 224 verwendet wird, wie für den/die ersten 1, 2, 5 oder 10 aufeinanderfolgenden Datentransfer(s), und dann den Gewichtswert 226 für darauffolgende aufeinanderfolgende Datentransfers unter Verwenden desselben Abstimmregisterwertesatzes 224 nicht inkrementieren.
  • Falls bei Block 516 zusätzliche Daten zum Übertragen verfügbar sind (zum Beispiel, falls nur einige der Datentransfers, die in Block 502 initiiert werden, abgeschlossen wurden), springt das Verfahren zu Block 508 zurück. Anderenfalls geht das Verfahren zu Block 518 weiter, bei dem die Datentransfers, die bei Block 502 begonnen wurden, beendet werden.
  • Unter erneuter Bezugnahme auf Block 512, falls der Datentransfer nicht erfolgreich ist, springt das Verfahren 500 zu Block 520 in 6. Bei Block 520 speichert die Rechenvorrichtung 100 eine Angabe, dass der Datentransfer nicht erfolgreich war, in der Abstimmregisterwertetabelle 210, die dem aktuellen Abstimmregisterwertesatz 224 entspricht. Bei der veranschaulichenden Ausführungsform, tut die Rechenvorrichtung 100 das durch Dekrementieren des entsprechenden Gewichtswerts 226 in der Abstimmregisterwertetabelle 210.
  • Bei Block 522 bestimmt die Rechenvorrichtung 100, ob es beliebige andere Abstimmregisterwertesätze 224 der Abstimmregisterwertetabelle 210 gibt, die während des aktuellen Datentransfers noch nicht probiert wurden. Falls bei Block 524 keine nicht probierten Abstimmregisterwertesätze 224 vorhanden sind, geht das Verfahren zu Block 526 weiter, bei dem die Rechenvorrichtung 100 den Datentransfer abbricht. Anderenfalls geht das Verfahren zu Block 528 weiter.
  • Bei Block 528 bestimmt die Rechenvorrichtung 100 einen Abstand von den aktuellen Abstimmregisterwertesätzen zu den nicht probierten Abstimmregisterwertesätzen. Bei der veranschaulichenden Ausführungsform,bestimmt die Rechenvorrichtung 100 einen Abstand für jeden der nicht probierten Abstimmregisterwertesätze, aber bei anderen Ausführungsformen kann die Rechenvorrichtung 100 einen Abstand nur für einen Subsatz aller nicht probierten Abstimmregisterwertesätze bestimmen können. Bei einigen Ausführungsformen kann die Rechenvorrichtung 100 Abstände zwischen den diversen Abstimmregisterwertesätzen vorbestimmt haben, und kann eine Angabe der gespeicherten Abstände haben, zum Beispiel in einer Nachschlagetabelle in der Abstimmregisterwertetabelle 210.
  • Bei der veranschaulichenden Ausführungsform, wird der Abstand zwischen zwei Abstimmregisterwertesätzen 224 durch Vergleichen, wie viele der Abstimmregisterwerte der beiden unterschiedlich sind, bestimmt. Falls es zum Beispiel insgesamt zehn Abstimmregister 202 gibt und jeder Abstimmregisterwertesatz 224 zehn entsprechende Werte hat, falls ein erster Abstimmregisterwertesatz 224 sieben Werte hat, die gleich sind wie die eines zweiten Abstimmregisterwertesatzes 224, und drei Werte, die unterschiedlich sind, würde der Abstand drei betragen. Bei anderen Ausführungsformen kann der Abstand zwischen zwei Abstimmregisterwertesätzen 224 durch andere Mittel bestimmt werden. Dem Mindestwert für jedes Register kann zum Beispiel ein Wert von null zugewiesen werden, und dem Höchstwert jedes Registers kann ein Wert von eins zugewiesen werden. Jeder Abstimmregisterwertesatz 244 kann dann als ein Punkt in n-dimensionalem Raum betrachtet werden, der von n Werten zwischen null und eins definiert wird, wobei n die Anzahl von Abstimmregisterwerten ist. Der Abstand zwischen zwei Abstimmregisterwertesätzen kann dann durch Berechnen der Abstände zwischen den Punkten in dem n-dimensionalen Raum bestimmt werden.
  • Bei Block 530, wendet die Rechenvorrichtung 100 auf den E/A-Hostcontroller 108 den nicht probierten Abstimmregisterwertesatz 224 mit dem kleinsten Abstand von dem aktuellen Abstimmregisterwertesatz 224 an. Bei einigen Ausführungsformen kann die Computervorrichtung 100 den nicht probierten Abstimmregisterwertesatz 224 mit dem kleinsten Abstand von dem aktuellen Abstimmregisterwertesatz 224 anwenden, der auch ein Mindestschwellenabstand von dem aktuellen Abstimmregisterwertesatz 224 ist. Zusätzlich oder alternativ kann die Rechenvorrichtung 100 die Gewichtswerte 226 beim Auswählen des nicht probierten Abstimmregisterwertesatzes 224, der anzuwenden ist, berücksichtigen. Bei einigen Ausführungsformen kann die Rechenvorrichtung 100 zum Beispiel den nicht probierten Abstimmregisterwertesatz 224 anwenden, der den höchsten entsprechenden Gewichtswert 226 hat. Nach Block 530, kehrt das Verfahren 500 zu Block 508 in 6 zurück, um beliebige zusätzliche Datentransfers auszuführen. Man sollte zu schätzen wissen, dass die Blöcke der Verfahren 400 und 500 bei einigen Ausführungsformen von Software, die auf der Rechenvorrichtung 100 läuft, wie ein Vorrichtungstreiber, durch Firmware des E/A-Hostcontrollers 108 und/oder durch eine Kombination beider ausgeführt werden.
  • BEISPIELE
  • Veranschaulichende Beispiele der hier offenbarten Vorrichtungen, Systeme und Verfahren sind nachstehend bereitgestellt. Eine Ausführungsform der Vorrichtungen, Systeme und Verfahren kann ein oder mehrere der nachstehend beschriebenen Beispiele und jede Kombination davon aufweisen.
  • Beispiel 1 weist eine Rechenvorrichtung zum Übertragen von Daten auf, die einen E/A-Hostcontroller umfasst, der ein oder mehr Abstimmregister umfasst; ein E/A-Abstimmfiltermodul, um eine Vielzahl von Abstimmregisterwertesätzen zu bestimmen, wobei jeder Abstimmregisterwertesatz eine Einstellung für jedes des einen oder mehr Abstimmregister(s) angibt; Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes auf das eine oder die mehr Abstimmregister; Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen, eines Testdatentransfers zwischen der Rechenvorrichtung und einer ersten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem entsprechenden Abstimmregisterwertesatz; Bestimmen für jeden der Vielzahl von Abstimmregisterwertesätzen, ob der entsprechende Testdatentransfer erfolgreich war; und Speichern in einer Abstimmregisterwertetabelle der Rechenvorrichtung einer Angabe für jeden der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen als Reaktion auf ein Bestimmen, dass der entsprechende Testdatentransfer jedes der mindestens zwei Abstimmregisterwertesätze erfolgreich war.
  • Beispiel 2 weist den Gegenstand des Beispiels 1 auf, und weist ferner ein Datentransfermodul zum Anwenden eines ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; Ausführen eines ersten Datentransfers zwischen der Rechenvorrichtung und einer zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem ersten Abstimmregisterwertesatz, und Bestimmen, ob der erste Datentransfer erfolgreich war, auf, und ein E/A-Abstimmverfeinerungsmodul zum Aktualisieren der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der erste Datentransfer nicht erfolgreich war, und, als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, und, als Reaktion, dass der erste Datentransfer nicht erfolgreich war, Anwenden eines zweiten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller, wobei das Datentransfermodul ferner als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, einen zweiten Datentransfer zwischen der Rechenvorrichtung und der zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem zweiten Abstimmregisterwertesatz ausführen soll, und Bestimmen, ob der zweite Datentransfer erfolgreich war, wobei das E/A-Abstimmverfeinerungsmodul ferner die Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der zweite Datentransfer erfolgreich war, aktualisieren soll.
  • Beispiel 3 weist den Gegenstand eines beliebigen der Beispiele 1 und 2 auf, wobei die erste E/A-Vorrichtung von der zweiten E/A-Vorrichtung unterschiedlich ist.
  • Beispiel 4 weist den Gegenstand eines beliebigen der Beispiele 1 bis 3 auf, wobei die Abstimmregisterwertetabelle eine Vielzahl von Gewichtswerten umfasst, wobei jeder der Vielzahl von Gewichtswerten einem der Abstimmregisterwertesätze der mindestens zwei Abstimmregisterwertesätze entspricht, wobei jeder Gewichtswert der Vielzahl von Gewichtswerten eine vergangene Ausführung eines oder mehrerer vergangener Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes angibt, wobei der eine oder die mehr vergangenen Datentransfers von dem entsprechenden Testdatentransfer unterschiedlich ist/sind, wobei das Anwenden des ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze das Auswählen, basierend auf der Vielfalt von Gewichtswerten, des ersten Abstimmregisterwertesatzes umfasst.
  • Beispiel 5 weist den Gegenstand eines beliebigen der Beispiele 1 bis 4 auf, wobei basierend auf der Vielzahl von Gewichtswerten der erste Abstimmregisterwertesatz das Bestimmen umfasst, ob der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat, und das Auswählen des ersten Abstimmregisterwertesatzes basierend auf einem Bestimmen, dass der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat.
  • Beispiel 6 weist den Gegenstand eines beliebigen der Beispiele 1 bis 5 auf, wobei das E/A-Abstimmverfeinerungsmodul ferner als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, den Gewichtswert der Vielzahl von Gewichtswerten aktualisieren soll, die dem ersten Abstimmregisterwertesatz entsprechen, und als Reaktion auf das Bestimmen, dass der zweite Datentransfer erfolgreich war, den Gewichtswert der Vielzahl von Gewichtswerten, die dem zweiten Abstimmregisterwertesatz entspricht, zu aktualisieren.
  • Beispiel 7 weist den Gegenstand eines beliebigen der Beispiele 1 bis 6 auf, wobei das Aktualisieren des Gewichtswerts, der dem ersten Abstimmregisterwertesatz entspricht, das Dekrementieren des Gewichtswerts umfasst, der dem ersten Abstimmregisterwertesatz entspricht, wobei das Aktualisieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, das Inkrementieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, umfasst.
  • Beispiel 8 weist den Gegenstand eines beliebigen der Beispiele 1 bis 7 auf, wobei das Anwenden des zweiten Abstimmregisterwertesatzes das Bestimmen einer Vielzahl von Abstandsparametern umfasst, wobei jeder der Vielzahl von Abstandsparametern einen Abstand zu einem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze von dem ersten Abstimmregisterwertesatz angibt, das Bestimmen, ob der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter der Vielzahl von Abstandsparametern hat, und, basierend auf einem Bestimmen, dass der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter hat, das Anwenden der zweiten Abstimmregisterwertesatzes auf den E/A-Hostcontroller.
  • Beispiel 9 weist den Gegenstand eines beliebigen der Beispiele 1 bis 8 auf, wobei der Abstand von dem ersten Abstimmregisterwertesatz zu dem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze eine Anzahl von Werten des entsprechenden Abstimmregisterwertesatzes angibt, die von dem ersten Abstimmregisterwertesatz unterschiedlich ist.
  • Beispiel 10 weist den Gegenstand eines beliebigen der Beispiele 1 bis 9 auf, wobei das Anwenden des zweiten Abstimmregisterwertesatzes das Auswählen basierend auf der Vielzahl von Gewichtswerten, des zweiten Abstimmregisterwertesatzes umfasst.
  • Beispiel 11 weist den Gegenstand eines beliebigen der Beispiele 1 bis 10 auf, wobei zum Speichern in der Abstimmregisterwertetabelle einer Angabe der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen, für die der Testdatentransfer erfolgreich war, das Speichern in der Abstimmregisterwertetabelle jedes Abstimmregisterwertesatzes, für den der Testdatentransfer erfolgreich war, umfasst.
  • Beispiel 12 weist den Gegenstand eines beliebigen der Beispiele 1 bis 11 auf, wobei der E/A-Hostcontroller ein SDIO-Hostcontroller ist.
  • Beispiel 13 weist den Gegenstand eines beliebigen der Beispiele 1 bis 12 auf, wobei der E/A-Hostcontroller ein USB-Hostcontroller ist.
  • Beispiel 14 weist den Gegenstand eines beliebigen der Beispiele 1 bis 13 auf, wobei das Bestimmen, ob der entsprechende Testdatentransfer erfolgreich war, das Ausführen einer zyklischen Redundanzprüfung umfasst.
  • Beispiel 15 weist den Gegenstand eines beliebigen der Beispiele 1 bis 14 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Flankenabtastregister umfassen, wobei das eine oder mehr Flankenabtastregister angibt/angeben, ob der E/A-Hostcontroller einen oder mehr E/A-Kontakte des E/A-Hostcontrollers an einer steigenden Flanke eines Taktgebersignals der E/A-Hostvorrichtung oder an einer fallenden Flanke des Taktgebersignals lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Flankenabtastregisterwerte aufweist.
  • Beispiel 16 weist den Gegenstand eines beliebigen der Beispiele 1 bis 15 auf, wobei das eine oder mehr Flankenabtastregister ein einziges Flankenabtastregister umfasst/umfassen, wobei das einzige Flankenabtastregister angibt, ob der E/A-Hostcontroller jeden des einen oder der mehr E/A-Kontakte auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Flankenabtastregisterwert aufweist.
  • Beispiel 17 weist den Gegenstand eines beliebigen der Beispiele 1 bis 16 auf, wobei das eine oder mehr Flankenabtastregister eine Vielzahl von Flankenabtastregistern umfasst/umfassen, wobei jedes der Vielzahl von Flankenabtastregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte angibt, ob der E/A-Hostcontroller den entsprechenden E/A-Kontakt auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen eine Vielzahl von Flankenabtastregisterwerten aufweist.
  • Beispiel 18 weist den Gegenstand eines beliebigen der Beispiele 1 bis 17 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Flankenabtastregisterwerts(e) auf das eine oder mehr Flankenabtastregister umfasst, wobei das Ausführen des Testdatentransfers für jeden der Vielzahl von Abtastregisterwertesätzen das Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Flankenabtastregisterwerte(n), umfasst.
  • Beispiel 19 weist den Gegenstand eines beliebigen der Beispiele 1 bis 18 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um zu einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu schreiben, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Schreibverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 20 weist den Gegenstand eines beliebigen der Beispiele 1 bis 19 auf, wobei das eine oder mehr Schreibverzögerungsabstimmregister ein einziges Schreibverzögerungsabstimmregister umfasst, wobei das einzige Schreibverzögerungsabstimmregister eine einzige zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu jedem des einen oder der mehr E/A-Kontakte zu schreiben, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Schreibverzögerungsregisterwert aufweist.
  • Beispiel 21 weist den Gegenstand eines beliebigen der Beispiele 1 bis 20 auf, und wobei das eine oder mehr Schreibverzögerungsabstimmregister eine Vielzahl von Schreibverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Schreibverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder mehr E/A-Kontakten eine entsprechende zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu dem entsprechenden E/A-Kontakt zu schreiben, und wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Schreibverzögerungsregisterwerten aufweist.
  • Beispiel 22 weist den Gegenstand eines beliebigen der Beispiele 1 bis 21 auf, wobei zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen der entsprechende Abstimmregisterwertesatz zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Schreibverzögerungsabstimmregisterwerts(e) auf das eine oder mehr Schreibverzögerungsabstimmregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Schreiben für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Schreibverzögerungsabstimmregisterwerten umfasst.
  • Beispiel 23 weist den Gegenstand eines beliebigen der Beispiele 1 bis 22 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Leseverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Leseverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um aus einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Leseverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 24 weist den Gegenstand eines beliebigen der Beispiele 1 bis 23 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister ein einziges Leseverzögerungsabstimmregister umfasst/umfassen, wobei das einzige Leseverzögerungsabstimmregister eine einzige zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um aus jedem des einen oder der mehr E/A-Kontakte zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Leseverzögerungsregisterwert aufweist.
  • Beispiel 25 weist den Gegenstand eines beliebigen der Beispiele 1 bis 24 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister eine Vielzahl von Leseverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Leseverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte eine entsprechende zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um aus dem entsprechenden E/A-Kontakt zu lesen, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Leseverzögerungsregisterwerten aufweist.
  • Beispiel 26 weist den Gegenstand eines beliebigen der Beispiele 1 bis 25 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen der entsprechende Abstimmregisterwertesatz zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen den einen oder mehr Leseverzögerungsabstimmregisterwerte zu dem einen oder mehr Leseverzögerungsabstimmregistern umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Leseverzögerungsabstimmregisterwerten umfasst.
  • Beispiel 27 weist den Gegenstand eines beliebigen der Beispiele 1 bis 26 auf, wobei das eine oder mehr Abstimmregister ein oder mehr E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine oder mehr Abschlussimpedanzen angibt/angeben, die für den einen oder mehr E/A-Kontakte des E/A-Hostcontrollers zu verwenden ist/sind, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr E/A-Kontaktmerkmalregisterwerte aufweist.
  • Beispiel 28 weist den Gegenstand eines beliebigen der Beispiele 1 bis 27 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister ein einziges E/A-Kontaktmerkmalregister umfasst, wobei das einzige E/A-Kontaktmerkmalregister eine einzige Abschlussimpedanz angibt, die für jeden des einen oder der mehr E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen E/A-Kontaktmerkmalregisterwert aufweist.
  • Beispiel 29 weist den Gegenstand eines beliebigen der Beispiele 1 bis 28 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine Vielzahl von E/A-Kontaktmerkmalregistern aufweist/aufweisen, wobei jedes der Vielzahl von E/A-Kontaktmerkmalregistern eine entsprechende Abschlussimpedanz angibt, die für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von E/A-Kontaktmerkmalregisterwerten aufweist.
  • Beispiel 30 weist den Gegenstand eines beliebigen der Beispiele 1 bis 29 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen der entsprechende Abstimmregisterwertesatz das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen den einen oder mehr E/A-Kontaktmerkmalregisterwerte auf das eine oder mehr E/A-Kontaktmerkmalregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr E/A-Kontaktmerkmalregisterwerten umfasst.
  • Beispiel 31 weist ein Verfahren zum Übertragen von Daten durch eine Rechenvorrichtung mit einem E/A-Hostcontroller auf, wobei das Verfahren das Bestimmen durch die Rechenvorrichtung einer Vielzahl von Abstimmregisterwertesätzen umfasst, wobei jeder Abstimmregisterwertesatz eine Einstellung für ein oder mehr Abstimmregister des E/A-Hostcontrollers der Rechenvorrichtung angibt; das Anwenden durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes auf das eine oder mehr Abstimmregister; das Ausführen durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen eines Testdatentransfers zwischen der Rechenvorrichtung und einer ersten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem entsprechenden Abstimmregisterwertesatz; das Bestimmen durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen, ob der entsprechende Testdatentransfer erfolgreich war; und das Speichern durch die Rechenvorrichtung und in einer Abstimmregisterwertetabelle der Rechenvorrichtung einer Angabe für jeden von mindestens zwei Abstimmregisterwertesätzen der Vielzahl von Abstimmregisterwertesätzen als Reaktion auf ein Bestimmen, dass der entsprechende Testdatentransfer für jeden der mindestens zwei Abstimmregisterwertesätze erfolgreich war.
  • Beispiel 32 weist den Gegenstand des Beispiels 31 auf und weist ferner das Anwenden durch die Rechenvorrichtung eines ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; das Ausführen durch die Rechenvorrichtung eines ersten Datentransfers zwischen der Rechenvorrichtung und einer zweiten E/A-Vorrichtung, die den E/A-Hostcontrollern mit dem ersten Abstimmregisterwertesatz verwendet; das Bestimmen durch die Rechenvorrichtung, ob der erste Datentransfer erfolgreich war; und das Aktualisieren durch die Rechenvorrichtung der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der erste Datentransfer nicht erfolgreich war; das Anwenden durch die Rechenvorrichtung und als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; das Ausführen durch die Rechenvorrichtung und als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Datentransfers zwischen der Rechenvorrichtung und der zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem zweiten Abstimmregisterwertesatz verwendet; das Bestimmen durch die Rechenvorrichtung, ob der zweite Datentransfer erfolgreich war; und das Aktualisieren durch die Rechenvorrichtung der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der zweite Datentransfer erfolgreich war.
  • Beispiel 33 weist den Gegenstand eines beliebigen der Beispiele 31 und 32 auf, wobei die erste E/A-Vorrichtung von der zweiten E/A-Vorrichtung unterschiedlich ist.
  • Beispiel 34 weist den Gegenstand eines der Beispiele 31 bis 33 auf, wobei die Abstimmregisterwertetabelle eine Vielzahl von Gewichtswerten umfasst, wobei jeder der Vielzahl von Gewichtswerten einem der Abstimmregisterwertesätze der mindestens zwei Abstimmregisterwertesätze entspricht, wobei jeder Gewichtswert der Vielzahl von Gewichtswerten eine vergangene Ausführung eines oder mehrerer vergangener Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes angibt, wobei der eine oder die mehr vergangenen Datentransfers von dem entsprechenden Testdatentransfer unterschiedlich ist/sind, wobei das Anwenden des ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze das Auswählen durch die Rechenvorrichtung und basierend auf der Vielzahl von Gewichtswerten des ersten Abstimmregisterwertesatzes umfasst.
  • Beispiel 35 weist den Gegenstand eines beliebigen der Beispiele 31 bis 34 auf, wobei basierend auf der Vielzahl von Gewichtswerten der erste Abstimmregisterwertesatz das Bestimmen durch die Rechenvorrichtung umfasst, ob der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat, und das Auswählen des ersten Abstimmregisterwertesatzes durch die Rechenvorrichtung des ersten Abstimmregisterwertesatzes basierend auf einem Bestimmen, dass der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat.
  • Beispiel 36 weist den Gegenstand eines der Beispiele 31 bis 35 auf, und weist ferner das Aktualisieren als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem ersten Abstimmregisterwertesatz entspricht, auf, und das Aktualisieren als Reaktion auf das Bestimmen, dass der zweite Datentransfer erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem zweiten Abstimmregisterwertesatz entspricht.
  • Beispiel 37 weist den Gegenstand eines beliebigen der Beispiele 31 bis 36 auf, wobei das Aktualisieren des Gewichtswerts, der dem ersten Abstimmregisterwertesatz entspricht, das Dekrementieren des Gewichtswerts umfasst, der dem ersten Abstimmregisterwertesatz entspricht, wobei das Aktualisieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, das Inkrementieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, umfasst.
  • Beispiel 38 weist den Gegenstand eines beliebigen der Beispiele 31 bis 37 auf, wobei das Anwenden des zweiten Abstimmregisterwertesatzes das Bestimmen durch die Rechenvorrichtung einer Vielzahl von Abstandsparametern umfasst, wobei jeder der Vielzahl von Abstandsparametern einen Abstand zu einem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze von dem ersten Abstimmregisterwertesatz angibt; das Bestimmen durch die Rechenvorrichtung, ob der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter der Vielzahl von Abstandsparametern hat, und, basierend auf einem Bestimmen, dass der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter hat, das Anwenden des zweiten Abstimmregisterwertesatzes auf den E/A-Hostcontroller.
  • Beispiel 39 weist den Gegenstand eines beliebigen der Beispiele 31 bis 38 auf, wobei der Abstand von dem ersten Abstimmregisterwertesatz zu dem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze eine Anzahl von Werten des entsprechenden Abstimmregisterwertesatzes angibt, die von dem ersten Abstimmregisterwertesatz unterschiedlich ist.
  • Beispiel 40 weist den Gegenstand eines beliebigen der Beispiele 31 bis 39 auf, wobei das Anwenden des zweiten Abstimmregisterwertesatzes das Auswählen durch die Rechenvorrichtung und basierend auf der Vielzahl von Gewichtswerten, des zweiten Abstimmregisterwertesatzes umfasst.
  • Beispiel 41 weist den Gegenstand eines beliebigen der Beispiele 31 bis 40 auf, wobei das Speichern in der Abstimmregisterwertetabelle einer Angabe der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen, für die der Testdatentransfer erfolgreich war, das Speichern in der Abstimmregisterwertetabelle jedes Abstimmregisterwertesatzes, für den der Testdatentransfer erfolgreich war, umfasst.
  • Beispiel 42 weist den Gegenstand eines beliebigen der Beispiele 31 bis 41 auf, wobei der E/A-Hostcontroller ein SDIO-Hostcontroller ist.
  • Beispiel 43 weist den Gegenstand eines beliebigen der Beispiele 31 bis 42 auf, wobei der E/A-Hostcontroller ein USB-Hostcontroller ist.
  • Beispiel 44 weist den Gegenstand eines beliebigen der Beispiele 31 bis 43 auf, wobei das Bestimmen, ob der entsprechende Testdatentransfer erfolgreich war, das Ausführen einer zyklischen Redundanzprüfung umfasst.
  • Beispiel 45 weist den Gegenstand eines beliebigen der Beispiele 31 bis 44 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Flankenabtastregister umfasst/umfassen, wobei das eine oder mehr Flankenabtastregister angibt/angeben, ob der E/A-Hostcontroller einen oder mehr E/A-Kontakte des E/A-Hostcontrollers an einer steigenden Flanke eines Taktgebersignals der E/A-Hostvorrichtung oder an einer fallenden Flanke des Taktgebersignals lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Flankenabtastregisterwerte aufweist.
  • Beispiel 46 weist den Gegenstand eines beliebigen der Beispiele 31 bis 45 auf, wobei das eine oder mehr Flankenabtastregister ein einziges Flankenabtastregister umfasst/umfassen, wobei das einzige Flankenabtastregister angibt, ob der E/A-Hostcontroller jeden des einen oder der mehr E/A-Kontakte auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Flankenabtastregisterwert aufweist.
  • Beispiel 47 weist den Gegenstand eines beliebigen der Beispiele 31 bis 46 auf, wobei das eine oder mehr Flankenabtastregister eine Vielzahl von Flankenabtastregistern umfasst/umfassen, wobei jedes der Vielzahl von Flankenabtastregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte angibt/angeben, ob der E/A-Hostcontroller den entsprechenden E/A-Kontakt auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen eine Vielzahl von Flankenabtastregisterwerten aufweist.
  • Beispiel 48 weist den Gegenstand eines beliebigen der Beispiele 31 bis 47 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Flankenabtastregisterwerts(e) auf das eine oder mehr Flankenabtastregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Lesen durch die Rechenvorrichtung für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Flankenabtastregisterwerten umfasst.
  • Beispiel 49 weist den Gegenstand eines beliebigen der Beispiele 31 bis 48 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um zu einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Schreibverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 50 weist den Gegenstand eines beliebigen der Beispiele 31 bis 49 auf, wobei das eine oder mehr Schreibverzögerungsabstimmregister ein einziges Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das einzige Schreibverzögerungsabstimmregister eine einzige zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu jedem des einen oder der mehr E/A-Kontakte zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Schreibverzögerungsregisterwert aufweist.
  • Beispiel 51 weist den Gegenstand eines beliebigen der Beispiele 31 bis 50 auf, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine Vielzahl von Schreibverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Schreibverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte eine entsprechende zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu dem entsprechenden E/A-Kontakt zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Schreibverzögerungsregisterwerten aufweist.
  • Beispiel 52 weist den Gegenstand eines beliebigen der Beispiele 31 bis 51 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Schreibverzögerungsabstimmregisterwerts(e) auf das eine oder mehr Schreibverzögerungsabstimmregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Schreiben durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Schreibverzögerungsabstimmregisterwerte umfasst.
  • Beispiel 53 weist den Gegenstand eines beliebigen der Beispiele 31 bis 52 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Leseverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Leseverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um aus einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Leseverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 54 weist den Gegenstand eines beliebigen der Beispiele 31 bis 53 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister ein einziges Leseverzögerungsabstimmregister umfasst, wobei das einzige Leseverzögerungsabstimmregister eine einzige zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um von jedem des einen oder mehr E/A-Kontakten zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Leseverzögerungsregisterwert aufweist.
  • Beispiel 55 weist den Gegenstand eines beliebigen der Beispiele 31 bis 54 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister eine Vielzahl von Leseverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Leseverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder mehr E/A-Kontakte eine entsprechende zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um von dem entsprechenden E/A-Kontakt zu lesen, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Leseverzögerungsregisterwerten aufweist.
  • Beispiel 56 weist den Gegenstand eines beliebigen der Beispiele 31 bis 55 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen der entsprechende Abstimmregisterwertesatz das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Leseverzögerungsabstimmregisterwerts(e) auf das eine oder mehr Leseverzögerungsabstimmregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Lesen durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Schreibverzögerungsabstimmregisterwerten umfasst.
  • Beispiel 57 weist den Gegenstand eines beliebigen der Beispiele 31 bis 56 auf, wobei das eine oder mehr Abstimmregister ein oder mehr E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine oder mehr Abschlussimpedanzen angibt/angeben, die für den einen oder mehr E/A-Kontakte des E/A-Hostcontrollers zu verwenden ist/sind, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr E/A-Kontaktmerkmalregisterwerte aufweist.
  • Beispiel 58 weist den Gegenstand eines beliebigen der Beispiele 31 bis 57 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister ein einziges E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das einzige E/A-Kontaktmerkmalregister eine einzige Abschlussimpedanz angibt, die für jeden des einen oder der mehr E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen E/A-Kontaktmerkmalregisterwert aufweist.
  • Beispiel 59 weist den Gegenstand eines beliebigen der Beispiele 31 bis 58 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine Vielzahl von E/A-Kontaktmerkmalregistern aufweist, wobei jedes der Vielzahl von E/A-Kontaktmerkmalregistern eine entsprechende Abschlussimpedanz angibt, die für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von E/A-Kontaktmerkmalregisterwerten aufweist.
  • Beispiel 60 weist den Gegenstand eines beliebigen der Beispiele 31 bis 59 auf, wobei das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen der entsprechende Abstimmregisterwertesatz das Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr E/A-Kontaktmerkmalregisterwerte auf das eine oder mehr E/A-Kontaktmerkmalregister umfasst, wobei zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer das Lesen durch die Rechenvorrichtung für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr E/A-Kontaktmerkmalregisterwerten umfasst.
  • Beispiel 61 weisen ein maschinenlesbares Medium oder maschinenlesbare Medien auf, die eine Vielzahl von darauf gespeicherten Anweisungen umfassen, die als Reaktion auf ihr Ausführen darin resultieren, dass eine Rechenvorrichtung das Verfahren nach einem der Beispiele 31 bis 60 ausführt.
  • Beispiel 62 weist eine Rechenvorrichtung zum Übertragen von Daten mit einem E/A-Hostcontroller auf, der Mittel umfasst, um eine Vielzahl von Abstimmregisterwertesätzen zu bestimmen, wobei jeder Abstimmregisterwertesatz eine Einstellung für ein oder mehr Abstimmregister des E/A-Hostcontrollers der Rechenvorrichtung angibt; Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes auf das eine oder mehr Abstimmregister; Mittel zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen eines Testdatentransfers zwischen der Rechenvorrichtung und einer ersten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem entsprechenden Abstimmregisterwertesatz; Mittel zum Bestimmen für jeden der Vielzahl von Abstimmregisterwertesätzen, ob der entsprechende Testdatentransfer erfolgreich war; und Mittel zum Speichern in einer Abstimmregisterwertetabelle der Rechenvorrichtung einer Angabe für jeden von mindestens zwei Abstimmregisterwertesätzen der Vielzahl von Abstimmregisterwertesätzen als Reaktion auf ein Bestimmen, dass der entsprechende Testdatentransfer für jeden der mindestens zwei Abstimmregisterwertesätze erfolgreich war.
  • Beispiel 63 weist den Gegenstand des Beispiels 62 auf und weist ferner Mittel zum Anwenden eines ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller auf; Mittel zum Ausführen eines ersten Datentransfers zwischen der Rechenvorrichtung und einer zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem ersten Abstimmregisterwertesatz; Mittel zum Bestimmen, ob der erste Datentransfer erfolgreich war; Mittel zum Aktualisieren der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der erste Datentransfer nicht erfolgreich war; Mittel zum Anwenden als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; Mittel zum Ausführen als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Datentransfers zwischen der Rechenvorrichtung und der zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem zweiten Abstimmregisterwertesatz; Mittel zum Bestimmen, ob der zweite Datentransfer erfolgreich war; und Mittel zum Aktualisieren der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der zweite Datentransfer erfolgreich war.
  • Beispiel 64 weist den Gegenstand eines beliebigen der Beispiele 62 und 63 auf, wobei die erste E/A-Vorrichtung von der zweiten E/A-Vorrichtung unterschiedlich ist.
  • Beispiel 65 weist den Gegenstand eines der Beispiele 62 bis 64 auf, wobei die Abstimmregisterwertetabelle eine Vielzahl von Gewichtswerten umfasst, wobei jeder der Vielzahl von Gewichtswerten einem der Abstimmregisterwertesätze der mindestens zwei Abstimmregisterwertesätze entspricht, wobei jeder Gewichtswert der Vielzahl von Gewichtswerten eine vergangene Ausführung eines oder mehrerer vergangener Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes angibt, wobei der eine oder die mehr vergangenen Datentransfers von dem entsprechenden Testdatentransfer unterschiedlich ist/sind, wobei das Mittel zum Anwenden des ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze Mittel zum Auswählen, basierend auf der Vielzahl von Gewichtswerten, des ersten Abstimmregisterwertesatzes umfasst.
  • Beispiel 66 weist den Gegenstand eines beliebigen der Beispiele 62 bis 65 auf, wobei basierend auf der Vielzahl von Gewichtswerten das Mittel zum Auswählen des ersten Abstimmregisterwertesatzes Mittel zum Bestimmen umfasst, ob der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat, und Mittel zum Auswählen des ersten Abstimmregisterwertesatzes basierend auf einem Bestimmen, dass der erste Abstimmregisterwertesatz den höchsten Gewichtswert der Vielzahl von Gewichtswerten hat.
  • Beispiel 67 weist den Gegenstand eines der Beispiele 62 bis 66 auf, und weist ferner Mittel zum Aktualisieren als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem ersten Abstimmregisterwertesatz entspricht, auf, und Mittel zum Aktualisieren als Reaktion auf das Bestimmen, dass der zweite Datentransfer erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem zweiten Abstimmregisterwertesatz entspricht.
  • Beispiel 68 weist den Gegenstand eines beliebigen der Beispiele 62 bis 67 auf, wobei das Mittel zum Aktualisieren des Gewichtswerts, der dem ersten Abstimmregisterwertesatz entspricht, Mittel zum Dekrementieren des Gewichtswerts gemäß dem ersten Abstimmregisterwertesatz umfasst, wobei das Mittel zum Aktualisieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, Mittel zum Inkrementieren des Gewichtswerts, der dem zweiten Abstimmregisterwertesatz entspricht, umfasst.
  • Beispiel 69 weist den Gegenstand eines beliebigen der Beispiele 62 bis 68 auf, wobei das Mittel zum Anwenden des zweiten Abstimmregisterwertesatzes Mittel zum Bestimmen einer Vielzahl von Abstandsparametern umfasst, wobei jeder der Vielzahl von Abstandsparametern einen Abstand zu einem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze von dem ersten Abstimmregisterwertesatz angibt; Mittel zum Bestimmen, ob der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter der Vielzahl von Abstandsparametern hat, und Mittel zum Anwenden basierend auf einem Bestimmen, dass der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter hat, des zweiten Abstimmregisterwertesatzes auf den E/A-Hostcontroller.
  • Beispiel 70 weist den Gegenstand eines beliebigen der Beispiele 62 bis 69 auf, wobei der Abstand von dem ersten Abstimmregisterwertesatz zu dem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze eine Anzahl von Werten des entsprechenden Abstimmregisterwertesatzes angibt, die von dem ersten Abstimmregisterwertesatz unterschiedlich ist.
  • Beispiel 71 weist den Gegenstand eines beliebigen der Beispiele 62 bis 70 auf, wobei das Mittel zum Anwenden des zweiten Abstimmregisterwertesatzes Mittel zum Auswählen basierend auf der Vielzahl von Gewichtswerten, des zweiten Abstimmregisterwertesatzes umfasst.
  • Beispiel 72 weist den Gegenstand eines beliebigen der Beispiele 62 bis 71 auf, wobei das Mittel zum Speichern in der Abstimmregisterwertetabelle einer Angabe der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen, für die der Testdatentransfer erfolgreich war, das Speichern in der Abstimmregisterwertetabelle jedes Abstimmregisterwertesatzes, für den der Testdatentransfer erfolgreich war, umfasst.
  • Beispiel 73 weist den Gegenstand eines beliebigen der Beispiele 62 bis 72 auf, wobei der E/A-Hostcontroller ein SDIO-Hostcontroller ist.
  • Beispiel 74 weist den Gegenstand eines beliebigen der Beispiele 62 bis 73 auf, wobei der E/A-Hostcontroller ein USB-Hostcontroller ist.
  • Beispiel 75 weist den Gegenstand eines beliebigen der Beispiele 62 bis 74 auf, wobei das Bestimmen, ob der entsprechende Testdatentransfer erfolgreich war, das Ausführen einer zyklischen Redundanzprüfung umfasst.
  • Beispiel 76 weist den Gegenstand eines beliebigen der Beispiele 62 bis 75 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Flankenabtastregister umfasst/umfassen, wobei das eine oder mehr Flankenabtastregister angibt/angeben, ob der E/A-Hostcontroller einen oder mehr E/A-Kontakte des E/A-Hostcontrollers an einer steigenden Flanke eines Taktgebersignals der E/A-Hostvorrichtung oder an einer fallenden Flanke eines Taktgebersignals lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Flankenabtastregisterwerte aufweist.
  • Beispiel 77 weist den Gegenstand eines beliebigen der Beispiele 62 bis 76 auf, wobei das eine oder mehr Flankenabtastregister ein einziges Flankenabtastregister umfasst/umfassen, wobei das einzige Flankenabtastregister angibt, ob der E/A-Hostcontroller jeden des einen oder der mehr E/A-Kontakte auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Flankenabtastregisterwert aufweist.
  • Beispiel 78 weist den Gegenstand eines beliebigen der Beispiele 62 bis 77 auf, wobei das eine oder mehr Flankenabtastregister eine Vielzahl von Flankenabtastregistern umfasst/umfassen, wobei jedes der Vielzahl von Flankenabtastregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte angibt, ob der E/A-Hostcontroller den entsprechenden E/A-Kontakt auf der steigenden Flanke oder der fallenden Flanke lesen soll, wobei jeder der Vielzahl von Abstimmregisterwertesätzen eine Vielzahl von Flankenabtastregisterwerten aufweist.
  • Beispiel 79 weist den Gegenstand eines beliebigen der Beispiele 62 bis 78 auf, wobei das Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Flankenabtastregisterwerts(e) auf das eine oder mehr Flankenabtastregister umfasst, wobei das Mittel zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer Mittel zum Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Flankenabtastregisterwerten, umfasst.
  • Beispiel 80 weist den Gegenstand eines beliebigen der Beispiele 62 bis 79 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um zu einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Schreibverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 81 weist den Gegenstand eines beliebigen der Beispiele 62 bis 80 auf, wobei das eine oder mehr Schreibverzögerungsabstimmregister ein einziges Schreibverzögerungsabstimmregister umfasst, wobei das einzige Schreibverzögerungsabstimmregister eine einzige zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu jedem des einen oder der mehr E/A-Kontakte zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Schreibverzögerungsregisterwert aufweist.
  • Beispiel 82 weist den Gegenstand eines beliebigen der Beispiele 62 bis 81 auf, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine Vielzahl von Schreibverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Schreibverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte eine entsprechende zeitliche Schreibverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um zu dem entsprechenden E/A-Kontakt zu schreiben, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Schreibverzögerungsregisterwerten aufweist.
  • Beispiel 83 weist den Gegenstand eines beliebigen der Beispiele 62 bis 82 auf, wobei das Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Schreibverzögerungsabstimmregisterwerts(e) auf das eine oder mehr Schreibverzögerungsabstimmregister umfasst, wobei das Mittel zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen des Testdatentransfers Mittel zum Schreiben für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Schreibverzögerungsabstimmregisterwerten umfasst.
  • Beispiel 84 weist den Gegenstand eines beliebigen der Beispiele 62 bis 83 auf, wobei das eine oder mehr Abstimmregister ein oder mehr Leseverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Leseverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um aus einem oder der mehr E/A-Kontakte des E/A-Hostcontrollers zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Leseverzögerungsabstimmregisterwerte aufweist.
  • Beispiel 85 weist den Gegenstand eines beliebigen der Beispiele 62 bis 84 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister ein einziges Leseverzögerungsabstimmregister umfasst, wobei das einzige Leseverzögerungsabstimmregister eine einzige zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um aus jedem des einen oder mehr E/A-Kontakten zu lesen, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Leseverzögerungsregisterwert aufweist.
  • Beispiel 86 weist den Gegenstand eines beliebigen der Beispiele 62 bis 85 auf, wobei das eine oder mehr Leseverzögerungsabstimmregister eine Vielzahl von Leseverzögerungsabstimmregistern umfasst/umfassen, wobei jedes der Vielzahl von Leseverzögerungsabstimmregistern für einen entsprechenden E/A-Kontakt des einen oder der mehr E/A-Kontakte eine entsprechende zeitliche Leseverzögerung angibt, die der E/A-Hostcontroller verwenden soll, um von dem entsprechenden E/A-Kontakt zu lesen, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von Leseverzögerungsregisterwerten aufweist.
  • Beispiel 87 weist den Gegenstand eines beliebigen der Beispiele 62 bis 86 auf, wobei das Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr Leseverzögerungsabstimmregisterwerts(e) auf das eine oder mehr Leseverzögerungsabstimmregister umfasst, wobei das Mittel zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen des Testdatentransfers Mittel zum Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr Leseverzögerungsabstimmregisterwerten umfasst.
  • Beispiel 88 weist den Gegenstand eines beliebigen der Beispiele 62 bis 87 auf, wobei das eine oder mehr Abstimmregister ein oder mehr E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine oder mehr Abschlussimpedanzen angeben, die für den einen oder mehr der E/A-Kontakte des E/A-Hostcontrollers zu verwenden ist/sind, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr E/A-Kontaktmerkmalregisterwerte aufweist.
  • Beispiel 89 weist den Gegenstand eines beliebigen der Beispiele 62 bis 88 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister ein einziges E/A-Kontaktmerkmalregister umfasst, wobei das einzige E/A-Kontaktmerkmalregister eine einzige Abschlussimpedanz angibt, die für jeden des einen oder der mehr E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen E/A-Kontaktmerkmalregisterwert aufweist.
  • Beispiel 90 weist den Gegenstand eines beliebigen der Beispiele 62 bis 89 auf, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine Vielzahl von E/A-Kontaktmerkmalregistern aufweist, wobei jedes der Vielzahl von E/A-Kontaktmerkmalregistern eine entsprechende Abschlussimpedanz angibt, die für einen entsprechenden E/A-Kontakt des einen oder mehr der E/A-Kontakte zu verwenden ist, wobei jeder der Vielzahl von Abstimmregisterwerten eine Vielzahl von E/A-Kontaktmerkmalregisterwerten aufweist.
  • Beispiel 91 weist den Gegenstand eines beliebigen der Beispiele 62 bis 90 auf, wobei das Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes Mittel zum Anwenden für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder mehr E/A-Kontaktmerkmalregisterwerts(e) auf das eine oder mehr E/A-Kontaktmerkmalregister umfasst, wobei das Mittel zum Ausführen für jeden der Vielzahl von Abstimmregisterwertesätzen der Testdatentransfer Mittel zum Lesen für jeden der Vielzahl von Abstimmregisterwertesätzen des einen oder der mehr E/A-Kontakte mit dem entsprechenden einen oder mehr E/A-Kontaktmerkmalregisterwerten, umfasst.

Claims (25)

  1. Rechenvorrichtung zum Übertragen von Daten, die Folgendes umfasst: einen E/A-Hostcontroller, der ein oder mehr Abstimmregister umfasst; ein E/A-Abstimmfiltermodul, um: eine Vielzahl von Abstimmregisterwertesätzen zu bestimmen, wobei jeder Abstimmregisterwertesatz eine Einstellung für jedes des einen oder mehr Abstimmregister(s) angibt; für jeden einer Vielzahl von Abstimmregisterwertesätzen den entsprechenden Abstimmregisterwertesatz auf das eine oder mehr Abstimmregister anzuwenden; für jeden der Vielzahl von Abstimmregisterwertesätzen einen Testdatentransfer zwischen der Rechenvorrichtung und einer ersten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem entsprechenden Abstimmregisterwertesatz auszuführen; für jeden der Vielzahl von Abstimmregisterwertesätzen zu bestimmen, ob der entsprechende Testdatentransfer erfolgreich war, und in einer Abstimmregisterwertetabelle der Rechenvorrichtung eine Angabe für jeden der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen als Reaktion auf ein Bestimmen, dass der entsprechende Testdatentransfer jedes der mindestens zwei Abstimmregisterwertesätze erfolgreich war, zu speichern.
  2. Rechenvorrichtung nach Anspruch 1, die ferner Folgendes umfasst: ein Datentransfermodul, um: einen ersten Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller anzuwenden; einen ersten Datentransfer zwischen der Rechenvorrichtung und einer zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem ersten Abtastregisterwertesatz auszuführen, und zu bestimmen, ob der erste Datentransfer erfolgreich war, und ein E/A-Abstimmverfeinerungsmodul, um: die Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der erste Datentransfer nicht erfolgreich war, zu aktualisieren und als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, einen zweiten Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller anzuwenden; wobei das Datentransfermodul ferner: als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, einen zweiten Datentransfer zwischen der Rechenvorrichtung und der zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem zweiten Abstimmregisterwertesatz auszuführen, und zu bestimmen, ob der zweite Datentransfer erfolgreich war, und wobei das E/A-Abstimmverfeinerungsmodul ferner die Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der zweite Datentransfer erfolgreich war, aktualisieren soll.
  3. Rechenvorrichtung nach Anspruch 2, wobei die Abstimmregisterwertetabelle eine Vielzahl von Gewichtswerten umfasst, wobei jeder der Vielzahl von Gewichtswerten einem der Abstimmregisterwertesätze der mindestens zwei Abstimmregisterwertesätze entspricht, wobei jeder Gewichtswert der Vielzahl von Gewichtswerten eine vergangene Ausführung des einen oder mehr vergangenen Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes angibt, wobei der eine oder mehr vergangene Datentransfers von dem entsprechenden Testdatentransfer unterschiedlich ist/sind, wobei das Anwenden des ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze das Auswählen basierend auf der Vielzahl von Gewichtswerten des ersten Abstimmregisterwertesatzes umfasst.
  4. Rechenvorrichtung nach Anspruch 3, wobei das E/A-Abstimmverfeinerungsmodul ferner: als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, den Gewichtswert der Vielzahl von Gewichtswerten, die dem ersten Abstimmregisterwertesatz entspricht, aktualisieren soll, und als Reaktion auf das Bestimmen, dass der zweite Datentransfer erfolgreich war, den Gewichtswert der Vielzahl von Gewichtswerten, die dem zweiten Abstimmregisterwertesatz entspricht, aktualisieren soll.
  5. Rechenvorrichtung nach Anspruch 3, wobei das Anwenden des zweiten Abstimmregisterwertesatzes Folgendes umfasst: Bestimmen einer Vielzahl von Abstandsparametern, wobei jeder der Vielzahl von Abstandsparametern einen Abstand zu einem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze von dem ersten Abstimmregisterwertesatz angibt; Bestimmen, ob der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter der Vielzahl von Abstandsparametern hat, und basierend auf einem Bestimmen, dass der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter hat, Anwenden des zweiten Abstimmregisterwertesatzes auf den E/A-Hostcontroller.
  6. Rechenvorrichtung nach Anspruch 5, wobei der Abstand von dem ersten Abstimmregisterwertsatz zu dem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze eine Anzahl von Werten des entsprechenden Abstimmregisterwertesatzes angibt, die von dem ersten Abstimmregisterwertesatz unterschiedlich ist.
  7. Rechenvorrichtung nach Anspruch 1, wobei das Speichern in der Abstimmregisterwertetabelle einer Angabe der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen, für die der Testdatentransfer erfolgreich war, das Speichern in der Abstimmregisterwertetabelle jedes Abstimmregisterwertesatzes, für den der Testdatentransfer erfolgreich war, umfasst.
  8. Rechenvorrichtung nach Anspruch 1, wobei der E/A-Hostcontroller ein SDIO-Hostcontroller ist.
  9. Rechenvorrichtung nach einem der Ansprüche 1 bis 8, wobei das eine oder mehr Abstimmregister ein oder mehr Flankenabtastregister umfasst/umfassen, wobei das eine oder mehr Flankenabtastregister angibt/angeben, ob der E/A-Hostcontroller einen oder mehr E/A-Kontakte des E/A-Hostcontrollers an einer steigenden Flanke eines Taktgebersignals der E/A-Hostvorrichtung oder an einer fallenden Flanke des Taktgebersignals lesen soll, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Flankenabtastregisterwerte aufweist.
  10. Rechenvorrichtung nach Anspruch 9, wobei das eine oder mehr Flankenabtastregister ein einziges Flankenabtastregister umfasst/umfassen, wobei das einzige Flankenabtastregister angibt, ob der E/A-Hostcontroller jeden des einen oder mehr E/A-Kontakte auf der steigenden Flanke oder der fallenden Flanke lesen soll, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Flankenabtastregisterwert aufweist.
  11. Rechenvorrichtung nach einem der Ansprüche 1 bis 8, wobei das eine oder mehr Abstimmregister ein oder mehr Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um zu einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu schreiben, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Schreibverzögerungsabstimmregisterwerte aufweist.
  12. Rechenvorrichtung nach einem der Ansprüche 1 bis 8, wobei das eine oder mehr Abstimmregister ein oder mehr E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine oder mehr Abschlussimpedanzen angibt/angeben, die für einen oder mehr der E/A-Kontakte des E/A-Hostcontrollers verwendet werden sollen, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr E/A-Kontaktmerkmalregisterwerte aufweist.
  13. Verfahren zum Übertragen von Daten durch eine Rechenvorrichtung mit einem E/A-Hostcontroller, wobei das Verfahren Folgendes umfasst: Bestimmen durch die Rechenvorrichtung einer Vielzahl von Abstimmregisterwertesätzen, wobei jeder Abstimmregisterwertesatz eine Einstellung für ein oder mehr Abstimmregister des E/A-Hostcontrollers der Rechenvorrichtung angibt; Anwenden durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen des entsprechenden Abstimmregisterwertesatzes auf das eine oder mehr Abstimmregister; Ausführen durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen eines Testdatentransfers zwischen der Rechenvorrichtung und einer ersten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem entsprechenden Abstimmregisterwertesatz; Bestimmen durch die Rechenvorrichtung und für jeden der Vielzahl von Abstimmregisterwertesätzen, ob der entsprechende Testdatentransfer erfolgreich war, und Speichern durch die Rechenvorrichtung und in einer Abstimmregisterwertetabelle der Rechenvorrichtung einer Angabe für jeden der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen als Reaktion auf ein Bestimmen, dass der entsprechende Testdatentransfer jedes der mindestens zwei Abstimmregisterwertesätze erfolgreich war.
  14. Verfahren nach Anspruch 13, das ferner Folgendes umfasst: Anwenden durch die Rechenvorrichtung eines ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; Ausführen durch die Rechenvorrichtung eines ersten Datentransfers zwischen der Rechenvorrichtung und einer zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem ersten Abstimmregisterwertesatz; Bestimmen durch die Rechenvorrichtung, ob der erste Datentransfer erfolgreich war; Aktualisieren durch die Rechenvorrichtung der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der erste Datentransfer nicht erfolgreich war; Anwenden durch die Rechenvorrichtung und als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze auf den E/A-Hostcontroller; Ausführen durch die Rechenvorrichtung und als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, eines zweiten Datentransfers zwischen der Rechenvorrichtung und der zweiten E/A-Vorrichtung unter Verwenden des E/A-Hostcontrollers mit dem zweiten Abstimmregisterwertesatz; Bestimmen durch die Rechenvorrichtung, ob der zweite Datentransfer erfolgreich war; und Aktualisieren durch die Rechenvorrichtung der Abstimmregisterwertetabelle als Reaktion auf ein Bestimmen, dass der zweite Datentransfer erfolgreich war.
  15. Verfahren nach Anspruch 14, wobei die Abstimmregisterwertetabelle eine Vielzahl von Gewichtswerten umfasst, wobei jeder der Vielzahl von Gewichtswerten einem der Abstimmregisterwertesätze der mindestens zwei Abstimmregisterwertesätze entspricht, wobei jeder Gewichtswert der Vielzahl von Gewichtswerten eine vergangene Ausführung eines oder mehr vergangener Datentransfers unter Verwenden des entsprechenden Abstimmregisterwertesatzes angibt, wobei der eine oder mehr vergangene Datentransfers von dem entsprechenden Testdatentransfer unterschiedlich ist/sind, wobei das Anwenden des ersten Abstimmregisterwertesatzes der mindestens zwei Abstimmregisterwertesätze das Auswählen durch die Rechenvorrichtung und basierend auf der Vielzahl von Gewichtswerten des ersten Abstimmregisterwertesatzes umfasst.
  16. Verfahren nach Anspruch 15, das ferner Folgendes umfasst: das Aktualisieren als Reaktion auf das Bestimmen, dass der erste Datentransfer nicht erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem ersten Abstimmregisterwertesatz entspricht, und das Aktualisieren als Reaktion auf das Bestimmen, dass der zweite Datentransfer erfolgreich war, des Gewichtswerts der Vielzahl von Gewichtswerten, die dem zweiten Abstimmregisterwertesatz entspricht.
  17. Verfahren nach Anspruch 15, wobei das Anwenden des zweiten Abstimmregisterwertesatzes Folgendes umfasst: Bestimmen durch die Rechenvorrichtung einer Vielzahl von Abstandsparametern, wobei jeder der Vielzahl von Abstandsparametern einen Abstand zu einem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze von dem ersten Abstimmregisterwertesatz angibt; Bestimmen durch die Rechenvorrichtung, ob der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter der Vielzahl von Abstandsparametern hat, und Anwenden durch die Rechenvorrichtung und basierend auf einem Bestimmen, dass der zweite Abstimmregisterwertesatz den entsprechenden kleinsten Abstandsparameter hat, des zweiten Abstimmregisterwertesatzes auf den E/A-Hostcontroller.
  18. Verfahren nach Anspruch 17, wobei der Abstand von dem ersten Abstimmregisterwertsatz zu dem entsprechenden Abstimmregisterwertesatz der mindestens zwei Abstimmregisterwertesätze eine Anzahl von Werten des entsprechenden Abstimmregisterwertesatzes angibt, die von dem ersten Abstimmregisterwertesatz unterschiedlich ist.
  19. Verfahren nach Anspruch 13, wobei das Speichern in der Abstimmregisterwertetabelle einer Angabe der mindestens zwei Abstimmregisterwertesätze der Vielzahl von Abstimmregisterwertesätzen, für die der Testdatentransfer erfolgreich war, das Speichern in der Abstimmregisterwertetabelle jedes Abstimmregisterwertesatzes, für den der Testdatentransfer erfolgreich war, umfasst.
  20. Verfahren nach Anspruch 13, wobei das eine oder mehr Abstimmregister ein oder mehr Flankenabtastregister umfasst/umfassen, wobei das eine oder mehr Flankenabtastregister angibt/angeben, ob der E/A-Hostcontroller einen oder mehr E/A-Kontakte des E/A-Hostcontrollers an einer steigenden Flanke eines Taktgebersignals der E/A-Hostvorrichtung oder an einer fallenden Flanke des Taktgebersignals lesen soll, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Flankenabtastregisterwerte aufweist.
  21. Verfahren nach Anspruch 20, wobei das eine oder mehr Flankenabtastregister ein einziges Flankenabtastregister umfasst/umfassen, wobei das einzige Flankenabtastregister angibt, ob der E/A-Hostcontroller jeden des einen oder der mehr E/A-Kontakte auf der steigenden Flanke oder der fallenden Flanke lesen soll, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen einzigen Flankenabtastregisterwert aufweist.
  22. Verfahren nach Anspruch 13, wobei das eine oder mehr Abstimmregister ein oder mehr Schreibverzögerungsabstimmregister umfasst/umfassen, wobei das eine oder mehr Schreibverzögerungsabstimmregister eine oder mehr zeitliche Schreibverzögerungen angibt/angeben, die der E/A-Hostcontroller verwenden soll, um zu einem oder mehr E/A-Kontakten des E/A-Hostcontrollers zu schreiben, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr Schreibverzögerungsabstimmregisterwerte aufweist.
  23. Verfahren nach Anspruch 13, wobei das eine oder mehr Abstimmregister ein oder mehr E/A-Kontaktmerkmalregister umfasst/umfassen, wobei das eine oder mehr E/A-Kontaktmerkmalregister eine oder mehr Abschlussimpedanzen angibt/angeben, die für einen oder mehr der E/A-Kontakte des E/A-Hostcontrollers verwendet werden sollen, und wobei jeder der Vielzahl von Abstimmregisterwertesätzen einen oder mehr E/A-Kontaktmerkmalregisterwerte aufweist.
  24. Maschinenlesbares Medium oder maschinenlesbare Medien, die eine Vielzahl von darauf gespeicherten Anweisungen umfassen, die als Reaktion auf ihr Ausführen darin resultieren, dass eine Rechenvorrichtung das Verfahren nach einem der Ansprüche 13 bis 23 ausführt.
  25. Rechenvorrichtung zum Übertragen von Daten mit einem E/A-Hostcontroller, der Mittel zum Ausführen des Verfahrens eines der Ansprüche 13 bis 23 umfasst.
DE112016006660.0T 2016-03-31 2016-03-31 Technologien zur fehlerbehandlung für hochgeschwindigkeits-e/a-datentransfer Pending DE112016006660T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/077967 WO2017166153A1 (en) 2016-03-31 2016-03-31 Technologies for error handling for high speed i/o data transfer

Publications (1)

Publication Number Publication Date
DE112016006660T5 true DE112016006660T5 (de) 2018-12-13

Family

ID=59963309

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016006660.0T Pending DE112016006660T5 (de) 2016-03-31 2016-03-31 Technologien zur fehlerbehandlung für hochgeschwindigkeits-e/a-datentransfer

Country Status (4)

Country Link
US (1) US11093313B2 (de)
CN (1) CN108780429B (de)
DE (1) DE112016006660T5 (de)
WO (1) WO2017166153A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111224852B (zh) * 2018-11-27 2022-09-23 中车株洲电力机车研究所有限公司 一种针对远程io设备的通讯系统及通讯方法
CN110175139B (zh) * 2019-05-08 2021-01-05 厦门亿联网络技术股份有限公司 一种usb设备的通用调试方法及usb设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
US6321282B1 (en) * 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
GB2411495A (en) 2004-02-27 2005-08-31 Cyan Holdings Ltd Method and apparatus for generating configuration data
JPWO2006082793A1 (ja) * 2005-02-07 2008-06-26 松下電器産業株式会社 SD(SecureDigital)カード、ホストコントローラ
CN101808343B (zh) 2009-02-13 2013-11-06 上海摩波彼克半导体有限公司 Arm数字基带芯片中sim/usim卡控制器自动化测试电路结构及方法
CN101976074B (zh) * 2010-11-03 2012-05-30 浙江工业大学 基于现场总线和控制网络的工业控制系统
JP5829627B2 (ja) * 2011-01-21 2015-12-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 符号化方法、復号方法、符号化器、及び、復号器
US8258835B1 (en) * 2011-06-15 2012-09-04 Asahi Kasei Microdevices Corporation Cancellation system for phase jumps at loop gain changes in fractional-N frequency synthesizers
US9343165B2 (en) * 2012-12-31 2016-05-17 Sandisk Technologies Inc. Dynamic drive strength optimization
EP2779021A3 (de) * 2013-03-15 2014-11-26 Assa Abloy Ab Autonomes Einstellverfahren zur Verbesserung der Funkfrequenzleistung
JP6209357B2 (ja) * 2013-03-29 2017-10-04 株式会社第一興商 デジタル音楽放送受信時のエラー防止システム
US9640270B2 (en) * 2014-08-12 2017-05-02 Sandisk Technologies Llc System and method of using multiple read operations
KR102290974B1 (ko) * 2014-11-07 2021-08-19 삼성전자주식회사 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
US10229742B2 (en) * 2015-06-19 2019-03-12 Hitachi, Ltd. Flash memory device

Also Published As

Publication number Publication date
CN108780429A (zh) 2018-11-09
CN108780429B (zh) 2022-05-31
US20190026178A1 (en) 2019-01-24
US11093313B2 (en) 2021-08-17
WO2017166153A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
DE102010053097B4 (de) Memory-Controller-Funktionalitäten zur Unterstützung von Daten-Swizzling
DE102012210232B4 (de) Vorbeugende Speicherreparatur auf der Grundlage der Analyse einer Vielzahl von Symbolen und Bereinigungszyklen
DE10315490B4 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE102018105943A1 (de) Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem
DE102007009300B4 (de) Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE102012024886A1 (de) Boundary Scan-Kette für gestapelten Speicher
DE112013001809T5 (de) Zyklusgenauer und zyklusreproduzierbarer Speicher für einen Hardware-Beschleuniger auf der Grundlage von FPGAs
DE102017104073B4 (de) Verallgemeinertes Verifikationsverfahren für Schreiboperationen
DE112018004637T5 (de) Maschinelles lernen zum verbessern von wiederherstellungen von redundanten anordnungen von unabhängigen festplatten
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE112018000839T5 (de) Datenspeichervorrichtung, die eingerichtet ist, um Vorgänge unter Verwendung einer drahtlosen Schnittstelle durchzuführen
DE102020105939A1 (de) Enhanced-Serial-Peripheral-Interface-(eSPI)-Signalisierung zurAbsturzereignisbenachrichtigung
DE102016100773A1 (de) Erfassen von Komprimierungsleistungsmesswerten für die Verarbeitung von Daten
DE102016206170B4 (de) Serielle draht-debug-brücke
DE112012002796T5 (de) Übertragen von in virtuellen Datenträgern organisierten deduplizierten Daten in einen Zielsatz von physischen Medien
DE102018209188A1 (de) Technologien zum Verwalten der Dienstgüte für Plattformverbindungen
DE112015003569T5 (de) Verfahren und System zum Verwenden von NAND-Seitenpuffern, um die Übertragungspuffernutzung eines Festkörperlaufwerks zu verbessern
DE102013202627B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Verwalten einer Speichereinheit unter Verwendung einer hybriden Steuereinheit
DE112021001470T5 (de) Konfigurieren von datenverarbeitungsknoten in einer dreidimensionalen netztopologie
DE112016006660T5 (de) Technologien zur fehlerbehandlung für hochgeschwindigkeits-e/a-datentransfer
KR102316207B1 (ko) 대표 입출력 생성기를 통해 스토리지 디바이스를 테스트하기 위한 방법 및 시스템
DE102019117475A1 (de) Cache-kohärente Eingabe-/Ausgabesteuerungen mit hohem Durchsatz
DE102021130630A1 (de) Testen von software-anwendungskomponenten
DE102013114558A1 (de) Ausschneiden-bei-der Diagnose (CID) - Ein Verfahren zur Verbesserung des Durchsatzes des Vorgangs für Anhebung der Ausbeute
DE102021127003A1 (de) Ufs-vorrichtung, verfahren zum betreiben der ufs-vorrichtung, und system, welches die ufs-vorrichtung enthält

Legal Events

Date Code Title Description
R012 Request for examination validly filed