DE102013017985A1 - Suchalgorithmus für Entzerrungskoeffizienten - Google Patents

Suchalgorithmus für Entzerrungskoeffizienten Download PDF

Info

Publication number
DE102013017985A1
DE102013017985A1 DE102013017985.8A DE102013017985A DE102013017985A1 DE 102013017985 A1 DE102013017985 A1 DE 102013017985A1 DE 102013017985 A DE102013017985 A DE 102013017985A DE 102013017985 A1 DE102013017985 A1 DE 102013017985A1
Authority
DE
Germany
Prior art keywords
point
eye
level
map
equalization
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
DE102013017985.8A
Other languages
English (en)
Inventor
Michael Hopgood
Robert Huang
Vishal Mehta
Hitendra Dutt
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013017985A1 publication Critical patent/DE102013017985A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Information Transfer Systems (AREA)
  • Dc Digital Transmission (AREA)

Abstract

Ein Verfahren umfasst das Auswählen eines Anfangspunkts in einer Abbildung aus Entzerrungskoeffizienten und die Messung einer Augenhöhe eines Signals, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendet wurde, die mit dem Anfangspunkt verknüpft ist, und die Messung einer Augenhöhe, die mit jedem benachbarten Punkt relativ zu dem Anfangspunkt in der Abbildung verknüpft ist. Die Augenhöhe, die mit einem benachbarten Punkt verknüpft ist, beruht auf einem Signal, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendet wurde, die mit dem benachbarten Punkt verknüpft ist. Das Verfahren umfasst ferner das Weiterschreiten in der Abbildung in einer ersten Richtung ausgehend von dem Anfangspunkt zu dem benachbarten Punkt, der mit der größten Augenhöhe verknüpft ist, wobei die Augenhöhe, die mit dem benachbarten Punkt verknüpft ist, größer oder gleich ist der Augenhöhe, die mit dem Anfangspunkt verknüpft ist.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Datenübertragungen und insbesondere eine Vorgehensweise zur Ausführung eines Trainings für eine Kanalentzerrung unter Anwendung eines Suchalgorithmus für einen Entzerrungskoeffizienten.
  • Beschreibung des Stands der Technik
  • Eine typische Datenverbindung, etwa eine periphere Komponenten-Schnittstelle (PCI) oder eine PCI-Expressverbindung auf PCIe) ermöglicht es unterschiedlichen Verarbeitungseinheiten in einem Computersystem, miteinander Daten auszutauschen. Beispielsweise kann ein konventionelles Computersystem eine zentrale Recheneinheit (CPU) aufweisen, die Daten mit einer grafischen Verarbeitungseinheit (GPU) über einen PCIe-Bus austauscht.
  • Wenn ein Signal über die Datenverbindung auf einem Übertragungskanal gesendet wird, können gewisse Frequenzkomponenten stärker abgeschwächt werden als andere, was das Signal an den Empfangsende unverständlich machen kann. Wenn Übertragungsgeschwindigkeiten größer werden, unterliegen die Übertragungen in stärkerem Maße Fehlern, da die Auswirkungen des Rauschens ausgeprägter sind. In Hochgeschwindigkeitsübertragungskanälen ist die Signalqualität äußerst wichtig. Eine Technik, um diese Tendenz zu bekämpfen, besteht darin, den Kanal zu „entzerren”, so dass die die Beiträge des Signals im Frequenzbereich am Eingangsende zuverlässig am Ausgangsende reproduziert werden, woraus weniger Fehler resultieren. Protokolle für die serielle Hochgeschwindigkeitskommunikation, etwa wie PCIe, verwenden Entzerrer, um Datensignale für die Übertragung aufzubereiten.
  • Eine Entzerrung kann sowohl auf der Sendeseite als auch auf der Empfangsseite eines Kanals ausgeführt werden. Für die Sender-Entzerrung kann das Signal am Senderende umgeformt werden, bevor das Signal gesendet wird, um zu versuchen, der Verzerrung zu begegnen, die von dem Kanal eingeführt wird. An dem Empfangsende kann das Signal wiederaufbereitet werden, um die Signalqualität zu verbessern.
  • Für eine Sender-Entzerrung in PCIe können zwei Parameter, die als Entzerrungskoeffizienten bekannt sind, zur Abstimmung des Senders verwendet werden. Ein typisches System kann Hunderte von Kombinationen an Entzerrungskoeffizienten aufweisen, und einige diese Kombinationen erzeugen bessere Entzerrungsergebnisse als andere. Die Signalqualität ist bei Hochgeschwindigkeitsübertragungskanälen von entscheidender Bedeutung, so dass eine optimale Festlegung von Koeffizienten wichtig, um eine genaue Übertragung sicherzustellen. Während des Entzerrungsprozesses muss eine einzelne Kombination aus Koeffizienten festgelegt werden, die die Leistungsanforderungen des Systems erfüllt. Ferner muss die Auswahl dieser Kombination innerhalb einer festgelegten zeitlichen Grenze erfolgen, so dass das System hochlaufen kann oder andere Prozesse beginnen kann. Das Prüfen jeder Kombination an Koeffizienten zur Auffindung der besten Koeffizienten, ist nicht machbar, da diese Vorgehensweise für gewöhnlich zu viel Zeit erfordert. Ferner führen aktuelle Vorgehensweisen, die zum Prüfen einer Teilmenge an Kombinationen von Koeffizienten eingesetzt werden, häufig zu der Auswahl einer nicht optimalen Kombination.
  • Was daher auf diesem Gebiet der Technik benötigt wird, ist eine Technik, die Entzerrungskoeffizienten für einen Hochgeschwindigkeitsbus in einer effizienten Weise prüft und auswählt.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Eine Ausführungsform der vorliegenden Erfindung gibt ein Verfahren zur Analyse von Entzerrungskoeffizienten für eine Hochgeschwindigkeitsdatenübertragung an. Das Verfahren umfasst: Auswählen eines Anfangspunkts in einer Abbildung von Entzerrungskoeffizienten, und Messen einer Augenhöhe eines Signals, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendet wurde, die mit dem Anfangspunkt verknüpft ist, und einer Augenhöhe, die mit jedem benachbarten Punkt in der Abbildung relativ zu dem Anfangspunkt verknüpft ist. Die mit einem benachbarten Punkt verknüpfte Augenhöhe beruht auf einem Signal, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten, die mit dem benachbarten Punkt verknüpft ist, gesendet wurde. Das Verfahren umfasst ferner Durchlaufen der Abbildung in einer ersten Richtung von dem Anfangspunkt zu dem benachbarten Punkt, der mit der größten Augenhöhe verknüpft ist, wobei die mit dem benachbarten Punkt verknüpfte Augenhöhe größer oder gleich der Augenhöhe ist, die mit dem Anfangspunkt verknüpft ist.
  • Vorteilhafterweise erlaubt die Auswahl von Entzerrungskoeffizienten unter Anwendung der obigen genannten Techniken eine schnellere Auswahl von Koeffizienten, die die von dem System geforderten Qualitätskriterien erfüllen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Um die Art und Weise, in der die oben genannten Merkmale der vorliegenden Erfindung detailliert verstanden werden können, anzugeben, wird eine speziellere Beschreibung der Erfindung, die zuvor kurz zusammengefasst ist, mit Bezug zu Ausführungsformen angegeben, wovon einige in den angefügten Zeichnungen gezeigt sind. Es ist jedoch zu beachten, dass die angefügten Zeichnungen nur typische Ausführungsformen dieser Erfindung darstellen und daher nicht als einschränkend für ihren Schutzbereich zu betrachten sind, da die Erfindung andere gleichermaßen wirksame Ausführungsformen zulässt.
  • 1 ist eine Blockansicht, die ein Computersystem zeigt, das ausgebildet ist, einen oder mehrere Aspekte der vorliegenden Erfindung zu realisieren;
  • 2 ist eine Blockansicht eines Parallelverarbeitungssubsystems für das Computersystem aus 1 gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 3 ist eine konventionelle Darstellung gesendeter Signale und empfangener Signale;
  • 4 ist eine konventionelle Darstellung gesendeter Daten und empfangener Daten, die zu Fehlern führen;
  • 5 ist eine Darstellung von Signalen am Empfangsende vor und nach einer Entzerrung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 6 ist eine konventionelle Darstellung eines Augendiagramms aus einem Oszilloskop;
  • 7 ist eine Darstellung einer Zuordnung von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 8A und 8B zeigen eine Technik zur Ausführung einer grob unterteilten Suche in einer Abbildung von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 9 ist eine Darstellung einer weiteren Technik zum Ausführen einer grob unterteilten Suche in einer Abbildung von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 10 ist eine Darstellung einer Technik zur Ausführung einer fein unterteilten Suche in einer Abbildung von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 11 ist ein Flussdiagramm, das eine anschauliche Vorgehensweise mit mehreren Durchläufen für ein Kanalentzerrungstraining gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
  • 12 ist ein Flussdiagramm, das eine anschauliche Technik zur Ausführung einer grob unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 13 ist ein Flussdiagramm, das eine weitere anschauliche Technik zur Ausführung einer grob unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung zeigt; und
  • 14 ist ein Flussdiagramm, das eine anschauliche Technik zur Ausführung einer fein unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung sind zahlreiche spezielle Details angegeben, um ein gründlicheres Verständnis der vorliegenden Erfindung zu ermöglichen. Der Fachmann erkennt jedoch, dass die vorliegende Erfindung auch ohne eines oder mehrere dieser speziellen Details in die Praxis umgesetzt werden kann. In anderen Fällen sind gut bekannte Merkmale nicht beschrieben, um eine Verdunkelung der vorliegenden Erfindung zu vermeiden.
  • Systemüberblick
  • 1 ist eine Blockansicht, die ein Computersystem 100 darstellt, das ausgebildet ist, einen oder mehrere Aspekte der vorliegenden Erfindung zu realisieren. Das Computersystem 100 umfasst eine zentrale Recheneinheit (CPU) 102 und einen Systemspeicher 104, der einen Gerätetreiber 103 enthält. Die CPU 102 und der Systemspeicher 104 kommunizieren über einen Verbindungspfad, der eine Speicherbrücke 105 umfassen kann. Die Speicherbrücke 105, die beispielsweise ein Nordbrücken-Chip sein kann, ist über einen Bus oder einen anderen Kommunikationspfad 106 (beispielsweise eine HyperTransport-Verbindung) mit einer Eingabe/Ausgabe-(I/O-)Brücke 107 verbunden. Die I/O-Brücke 107, die beispielsweise ein Südbrücken-Chip sein kann, empfängt eine Anwendereingabe aus einem oder mehreren Anwender-Eingabegeräten 108 (beispielsweise Tastatur, Maus) und leitet die Eingabe an die CPU 102 über den Pfad 106 und die Speicherbrücke 105 weiter. Ein Parallelverarbeitungssubsystem 112 ist mit der Speicherbrücke 105 über einen Bus oder einen anderen Kommunikationspfad 113 (beispielsweise ein peripherer Komponenten-Verbindung-(PCI)Express, ein beschleunigter Graphikport (AGP), oder eine HyperTransport-Verbindung) verbunden; in einer Ausführungsform ist das Parallelverarbeitungssubsystem 112 ein Grafiksubsystem, das Pixel an ein Anzeigegerät 110 (beispielsweise ein Monitor auf Basis einer konventionellen Kathodenstrahlröhre (CRT) oder einer Flüssigkristallanzeige) liefert. Eine Systemdiskette 114 ist ebenfalls mit der I/O-Brücke 107 verbunden. Ein Schalter 116 stellt Verbindungen zwischen der I/O-Brücke 107 und anderen Komponenten, etwa einem Netzwerkadapter 118 und diversen Zusatzkarten 120 und 121 bereit. Andere Komponenten (nicht explizit gezeigt), wozu ein universeller serieller Bus (USB) oder andere Portverbindungen, Kompaktdisketten-(CD)Laufwerke, Laufwerke für digitale Videodisketten (DVD), Filmaufzeichnungsgeräte und dergleichen gehören, können ebenfalls mit der I/O-Brücke 107 verbunden sein. Kommunikationspfade, welche die diversen Komponenten in 1 miteinander verbinden, können unter Anwendung beliebiger geeigneter Protokolle realisiert werden, etwa durch PCI, PCI-Express (PCIe), AGP, HyperTransport, oder durch ein oder mehrere andere Bus- oder Punkt-Zu-Punkt-Kommunikationsprotokolle, und Verbindungen zwischen unterschiedlichen Einrichtungen können unterschiedliche Protokolle verwenden, wie dies im Stand der Technik bekannt ist.
  • Die PPU 112 ist ausgebildet, eine Softwareanwendung auszuführen, etwa den Gerätetreiber 103, der es der CPU 112 erlaubt, beliebige Paketarten, die über den Kommunikationspfad 113 gesendet werden können, zu erzeugen. Diese Paketarten sind durch das von dem Kommunikationspfad 113 verwendete Kommunikationsprotokoll spezifiziert. In Situationen, in denen eine neue Paketart in dem Kommunikationsprotokoll eingeführt wird (beispielsweise aufgrund einer Erweiterung des Kommunikationsprotokolls), kann die PPU 112 ausgebildet sein, Pakete auf der Grundlage der neuen Paketart zu erzeugen und Daten mit der CPU 102 (oder anderen Verarbeitungseinheiten) über den Kommunikationspfad 113 unter Anwendung der neuen Paketarten auszutauschen.
  • In einer Ausführungsform enthält das Parallelverarbeitungssubsystem 112 eine Schaltung, die für Grafik- und Videoverarbeitung optimiert ist, wozu beispielsweise eine Video-Ausgabeschaltung gehört, und sie bildet eine grafische Verarbeitungseinheit (GPU). In einer weiteren Ausführungsform enthält das Parallelverarbeitungssubsystem 112 eine Schaltung, die für eine Verarbeitung für Allgemeinzwecke optimiert ist, während die zu Grunde liegende Rechenarchitektur beibehalten wird, die nachfolgend detaillierter beschrieben ist. In einer noch weiteren Ausführungsform kann das Parallelverarbeitungssubsystem 112 mit einem oder mehreren anderen Systemelementen, etwa der Speicherbrücke 105, der CPU 102 und der I/O-Brücke 107 integriert sein, um ein System-auf-einem-Chip (SoC) zu bilden.
  • Zu beachten ist, dass das hierin gezeigte System anschaulicher Natur ist und dass Änderungen und Modifizierungen möglich sind. Die Verbindungstopologie, einschließlich der Anzahl und der Anordnung von Brücken, die Anzahl an CPUs 102 und die Anzahl an Parallelverarbeitungssubsystemen 112 kann nach Bedarf modifiziert werden. Beispielsweise ist in einigen Ausführungsformen der Systemspeicher 104 mit der CPU 102 direkt anstatt über eine Brücke verbunden, und andere Einrichtungen kommunizieren mit dem Systemspeicher 104 über die Speicherbrücke 105 und die CPU 102. In anderen alternativen Topologien ist das Parallelverarbeitungssubsystem 112 mit der I/O-Brücke 107 oder direkt mit der CPU 102 anstatt mit der Speicherbrücke 105 verbunden. In noch anderen Ausführungsformen können die I/O-Brücke 107 und die Speicherbrücke 105 in einem einzelnen Chip integriert sein. Große Ausführungsformen können zwei oder mehr CPUs 102 und zwei oder mehr Parallelverarbeitungssubsysteme 112 enthalten. Die speziellen hierin gezeigten Komponenten sind optional; beispielsweise kann eine beliebige Anzahl an Zusatzkarten oder peripheren Geräten unterstützt werden. In einigen Ausführungsformen ist der Schalter 116 weggelassen, und der Netzwerkadapter 118 und die Zusatzkarten 120, 121 sind direkt mit der I/O-Brücke 107 verbunden.
  • 2 zeigt ein Parallelverarbeitungssubsystem 112 gemäß einer Ausführungsform der vorliegenden Erfindung. Wie gezeigt, umfasst das Parallelverarbeitungssubsystem 112 eine oder mehrere Parallelverarbeitungseinheiten (PPUs) 202, wovon jede mit einem lokalen Parallelverarbeitungs-(PP-)Speicher 204 verbunden ist. Generell enthält ein Parallelverarbeitungssubsystem eine Anzahl U von PPUs, wobei U ≥ 1 ist. (Hierin werden mehrere Instanzen der gleichen Objekte mit Bezugszeichen bezeichnet, die das Objekt angeben, und Zahlen in Klammern kennzeichnen die Instanz, wenn dies erforderlich ist.) Die PPUs 202 und die Parallelverarbeitungsspeicher 204 können unter Anwendung einer oder mehrerer integrierter Schaltungseinrichtungen, etwa durch programmierbare Prozessoren, anwendungsspezifische integrierte Schaltungen (ASIC) oder Speichereinrichtungen oder in einer beliebigen anderen technisch machbaren Weise realisiert werden.
  • Es sei wieder auf 1 verwiesen; in einigen Ausführungsformen sind einige oder alle PPUs 202 in dem Parallelverarbeitungssubsystem 112 Grafikprozessoren mit Bilderzeugungs-Pipelines, die ausgebildet sein können, diverse Aufgaben auszuführen, die mit der Erzeugung von Pixeldaten aus Grafikdaten zusammenhängen, die von der CPU 102 und/oder dem Systemspeicher 104 über die Speicherbrücke 105 und den Bus 113 zugeleitet werden, um mit dem lokalen Parallelverarbeitungsspeicher 204 zu interagieren (der als Grafikspeicher verwendet werden kann, und beispielsweise einen konventionellen Blockpuffer bzw. Bildpuffer enthält), um Pixeldaten zu speichern und zu aktualisieren, wobei Pixeldaten an das Anzeigegerät 110 geliefert werden, und dergleichen. In einigen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 eine oder mehrere PPUs 202 enthalten, die als Grafikprozessoren arbeiten, und kann eine oder mehrere andere PPUs 202 enthalten, die für Berechnungen für Allgemeinzwecke verwendet werden. Die PPUs können identisch oder unterschiedlich sein, und jede PPU kann eine oder mehrere eigene zugeordnete Parallelverarbeitungsspeichereinrichtungen oder keine spezielle zugewiesene Parallelverarbeitungsspeichereinrichtung aufweisen. Eine oder mehrere PPUs 202 können Daten an das Anzeigegerät 110 ausgeben, oder es kann jede PPU 202 Daten an ein oder mehrere Anzeigegeräte 110 ausgeben.
  • Während des Betriebs ist die CPU 102 der übergeordnete Prozessor des Computersystems 100 und steuert und koordiniert den Betrieb anderer Systemkomponenten. Insbesondere gibt die CPU 102 Befehle aus, die den Betrieb der PPUs 202 steuern. In einigen Ausführungsformen schreibt die CPU 102 einen Strom aus Befehlen für jede PPU 202 in einen Schiebepuffer (in 1 oder 2 nicht explizit gezeigt), der in dem Systemspeicher 104, dem Parallelverarbeitungsspeicher 204 oder einem anderen Speicherplatz liegen kann, auf den sowohl die CPU 102 als auch die PPU 202 zugreifen können. Die PPU 202 liest den Befehlsstrom aus dem Schiebepuffer aus und führt dann Befehle asynchron relativ der Arbeitsweise der CPU 102 aus.
  • Es sei nun wieder zurückverwiesen auf 2; jede PPU 202 umfasst eine I/O-Einheit 205, die mit dem Rest des Computersystems 100 über den Kommunikationspfad 113 kommuniziert, der mit der Speicherbrücke 105 (oder in einer alternativen Ausführungsform direkt mit der CPU 102) verbunden ist. Die Verbindung der PPU 202 mit dem Rest des Computersystems 100 kann auch anders sein. In einigen Ausführungsformen ist das Parallelverarbeitungssubsystem 112 als eine Zusatzkarte realisiert, die in einen Erweiterungssteckplatz des Computersystems 100 eingeführt werden kann. In anderen Ausführungsformen kann eine PPU 202 in einem einzelnen Chip mit einer Busbrücke, etwa der Speicherbrücke 105 oder der I/O-Brücke 107 integriert sein. In noch anderen Ausführungsformen können einige oder alle Elemente der PPU 202 zusammen mit der CPU 102 in einem einzelnen Chip integriert sein.
  • In einer Ausführungsform ist der Kommunikationspfad 113 eine PCIe-Verbindung, in der spezielle Bahnen jeder PPU 202 zugewiesen sind, wie dies im Stand der Technik bekannt ist. Es können auch andere Kommunikationspfade verwendet werden. Wie zuvor dargelegt ist, kann die Gegenstrom-Zwischenverbindung ebenfalls verwendet werden, um den Kommunikationspfad 113 sowie einen beliebigen anderen Kommunikationspfad in dem Computersystem 100, der CPU 102 oder der PPU 202 zu realisieren. Eine I/O-Einheit 205 erzeugt Pakete (oder andere Signale) für die Übertragung über den Kommunikationspfad 113 und empfängt auch alle eintreffenden Pakete (oder andere Signale) aus dem Kommunikationspfad 113, und leitet die eintreffenden Pakete zu geeigneten Komponenten der PPU 202. Beispielsweise können Befehle, die Verarbeitungsaufgaben betreffen, einer Hauptschnittstelle 206 zugeleitet werden, während Befehle, die Speicheroperationen (beispielsweise lesen aus oder schreiben in den Parallelverarbeitungsspeicher 204) betreffen, einer Speicherkreuzungseinheit 210 zugeleitet werden können. Die Hauptschnittstelle 206 liest jeden Schiebepuffer aus und gibt die von dem Schiebepuffer angegebene Arbeit an einen Frontbereich 212 aus.
  • Jede PPU 202 realisiert vorteilhafterweise eine äußerst parallele Verarbeitungsarchitektur. Wie detailliert gezeigt ist, umfasst die PPU 202(0) ein Verarbeitung-Cluster-Array 230, das eine Anzahl C an allgemeinen Verarbeitungs-Clustern (GPCs) 208 enthält, wobei C ≥ 1 ist. Jeder GPC 208 ist in der Lage, eine große Anzahl (beispielsweise hunderte oder tausende) Stränge gleichzeitig auszuführen, wobei jeder Strang eine Instanz eines Programms ist. In diversen Anwendungen können unterschiedliche GPCs 208 für unterschiedliche Arten von Programmen oder zur Ausführung unterschiedlicher Arten von Berechnungen reserviert werden. Beispielsweise kann in einer Grafikanwendung eine erste Gruppe aus GPCs 208 definiert werden, um Parkettierungs-Vertex-Operationen auszuführen, und um grundlegende Topologien für Flecken zu erzeugen, und eine zweite Gruppe aus GPCs 208 kann reserviert werden, um eine Parkettierungs-Schattierung auszuführen, um Flecken-Parameter für die grundlegenden Topologien zu bewerten und Vertex-Positionen oder andere Attribute pro Vertex zu ermitteln. Die Zuweisung von GPCs 208 kann sich in Abhängigkeit von der Arbeitslast, die für jede Art von Programm oder Berechnung auftritt, ändern.
  • Die GPCs 208 empfangen auszuführende Verarbeitungsaufgaben über eine Arbeitsverteilungseinheit 200, die Befehle, die Verarbeitungsaufgaben definieren, von einer Frontbereichseinheit 212 empfängt. Die Verarbeitungsaufgaben enthalten Indizes für zu verarbeitenden Daten (beispielsweise Oberflächen-(Flecken-)Daten, primitive Daten bzw. grundlegende Daten, Vertex-Daten und/oder Pixeldaten, sowie Zustandsparameter und Befehle, die festlegen, wie die Daten zu verarbeiten sind (beispielsweise welches Programm auszuführen ist). Die Arbeitsverteilungseinheit 200 kann ausgebildet sein, die den Aufgaben entsprechenden Indizes abzuholen, oder die Arbeitsverteilungseinheit 200 kann die Indizes aus dem Frontbereich 212 empfangen. Der Frontbereich 212 stellt sicher, dass die GPCs 208 in einen zulässigen Zustand konfiguriert werden, bevor die durch die Schiebepuffer spezifizierte Verarbeitung begonnen wird.
  • Wenn die PPU 202 beispielsweise für eine grafische Verarbeitung verwendet wird, dann wird die Arbeitslast für die Verarbeitung für jeden Flecken in ungefähr gleich große Aufgaben unterteilt, um eine Verteilung der Parkettierungs-Schattierungs-Verarbeitung auf mehrere GPCs 208 zu ermöglichen. Eine Arbeitsverteilungseinheit 200 ist gegebenenfalls ausgebildet, Aufgaben mit einer Frequenz zu erzeugen, die es erlaubt, dass Aufgaben an mehrere GPCs 208 für die Verarbeitung ausgegeben werden. Im Gegensatz dazu wird in konventionellen Systemen typischerweise die Verarbeitung durch eine einzelne Verarbeitungseinheit ausgeführt, während die anderen Verarbeitungseinheiten untätig bleiben und darauf warten, dass die einzelne Verarbeitungseinheit ihre Aufgaben abgeschlossen hat, bevor sie ihre Verarbeitungsaufgaben beginnen. In einigen Ausführungsformen der vorliegenden Erfindung sind Teile der GPCs 208 ausgebildet, unterschiedliche Arten der Verarbeitung auszuführen. Beispielsweise kann ein erster Teil ausgebildet sein, eine Vertex-Schattierung und eine Topologie-Erzeugung auszuführen, ein zweiter Teil kann ausgebildet sein, eine Parkettierung bzw. eine mosaikartige Unterteilung und eine Geometrie-Schattierung auszuführen, und ein dritter Teil kann ausgebildet sein, eine Pixel-Schattierung in dem Bildschirm-Raum auszuführen, um ein erzeugtes Bild zu schaffen. Zwischendaten, die von den GPCs 208 erzeugt werden, können in Puffern gespeichert werden, so dass die Zwischendaten unter den GPCs 208 für die weitere Verarbeitung ausgetauscht werden können.
  • Die Speicherschnittstelle 214 enthält eine Anzahl D an Partitionseinheiten 215, die jeweils direkt mit einem Bereich des Parallelverarbeitungsspeichers 204 verbunden sind, wobei D ≥ 1 ist. Wie gezeigt, ist die Anzahl an Partitionseinheiten 215 generell gleich der Anzahl an DRAM 220. In anderen Ausführungsformen ist die Anzahl an Partitionseinheiten 215 nicht gleich der Anzahl an Speichereinrichtungen. Der Fachmann erkennt, dass die dynamischen Speicher mit wahlfreiem Zugriff (DRAM) 220 durch andere geeignete Speichereinrichtungen ersetzt werden können und dass sie von allgemein konventioneller Gestaltung sein können. Eine detaillierte Beschreibung wird daher weggelassen. Bilderzeugungsziele, etwa Blockpuffer bzw. Bildpuffer oder Texturzuordnungen können in den DRAM 220 gespeichert werden, wodurch es den Partitionseinheiten 215 möglich ist, Bereiche jedes Bilderzeugungsziels parallel zu beschreiben, um in effizienter Weise die verfügbare Bandbreite des Parallelverarbeitungsspeichers 204 auszunutzen.
  • Jeder der GPCs 208 kann Daten verarbeiten, die in einen der DRAMs 220 innerhalb des Parallelverarbeitungsspeichers 204 zu schreiben sind. Die Kreuzungseinheit 210 ist ausgebildet, die Ausgabe jedes GPC 208 zum Eingang einer Partitionseinheit 215 oder einem weiteren GPC 208 für die weitere Verarbeitung zuzuleiten. Die GPCs 208 kommunizieren mit der Speicherschnittstelle 214 über die Kreuzungseinheit 210, um aus diversen externen Speichereinrichtungen zu lesen oder in diese zu schreiben. In einer Ausführungsform hat die Kreuzungseinheit 210 eine Verbindung zu der Speicherschnittstelle 214, um mit der I/O-Einheit 205 zu kommunizieren, und hat auch eine Verbindung zu dem lokalen Parallelverarbeitungsspeicher 204, wodurch es den Verarbeitungskernen in den unterschiedlichen GPCs 208 möglich ist, mit dem Systemspeicher 104 oder einem anderen Speicher, der nicht lokal in der PPU 202 angeordnet ist, in Verbindung zu treten. In der in 2 gezeigten Ausführungsform ist die Kreuzungseinheit 210 direkt mit der I/O-Einheit 205 verbunden. Die Kreuzungseinheit 210 kann virtuelle Kanäle verwenden, um Verkehrsströme zwischen den GPCs 208 und den Partitionseinheiten 215 zu trennen.
  • Die GPCs 208 können wiederum programmiert sein, um Verarbeitungsaufgaben auszuführen, die eine Fülle von Anwendungen betreffen, wozu gehören, ohne einschränkend zu sein, lineare und nicht-lineare Datentransformationen, die Filterung von Video- und/oder Audiodaten, Modellierungsoperationen (beispielsweise die Anwendung physikalischer Gesetze zur Bestimmung der Position, Geschwindigkeit und anderer Attribute von Objekten), Bilderzeugungsoperationen (beispielsweise Programme zur Parkettierungs-Schattierung, Vertex-Schattierung, Geometrie-Schattierung und/oder Pixel-Schattierung), usw. Die PPUs 202 können Daten aus dem Systemspeicher 104 und/oder den lokalen Parallelverarbeitungsspeichern 204 in einen internen (Chip internen) Speicher übertragen, die Daten verarbeiten und die Ergebnisdaten zurück in den Systemspeicher 104 und/oder in die lokalen Parallelverarbeitungsspeicher 204 schreiben, wo auf derartige Daten von anderen Systemkomponenten einschließlich der CPU 102 oder einem weiteren Parallelverarbeitungssubsystem 112 zugegriffen werden kann.
  • Eine PPU 202 kann mit einer beliebigen Größe an lokalem Parallelverarbeitungsspeicher 204 ausgestattet sein, wobei auch kein lokaler Speicher mit eingeschlossen ist, und sie kann den lokalen Speicher und den Systemspeicher in beliebiger Kombination verwenden. Beispielsweise kann eine PPU 202 in einer Ausführungsform einer vereinheitlichten Speicherarchitektur (UMA) ein Grafikprozessor sein. In derartigen Ausführungsformen wird wenig oder kein spezieller graphischer (Parallelverarbeitungs-)Speicher bereitgestellt, und die PPU 202 würde ausschließlich oder nahezu ausschließlich den Systemspeicher benutzen. In UMA-Ausführungsformen kann eine PPU 202 in einem Brückenchip oder einem Prozessorchip integriert sein oder kann als ein diskreter Chip mit einer Hochgeschwindigkeitsverbindung bereitgestellt sein (beispielsweise PCIe), die die PPU 202 in dem Systemspeicher über einen Brückenchip oder eine andere Kommunikationseinrichtungen verbindet.
  • Wie zuvor ausgeführt ist, kann eine beliebige Anzahl an PPUs 202 in einem Parallelverarbeitungssubsystem 112 enthalten sein. Beispielsweise können mehrere PPUs 202 auf einer einzelnen Zusatzkarte vorgesehen sein, oder es können mehrere Zusatzkarten mit dem Kommunikationspfad 113 verbunden werden, oder eine oder mehrere PPUs 202 können in einem Brückenchip integriert sein. Die PPUs 202 in einem Multi-PPU-System können identisch oder unterschiedlich zueinander sein. Beispielsweise können unterschiedliche PPUs 202 eine unterschiedliche Anzahl an Verarbeitungskernen, eine unterschiedliche Größe an lokalem Parallelverarbeitungsspeicher usw. aufweisen. Wenn mehrere PPUs 202 vorhanden sind, können diese PPUs parallel betrieben werden, um Daten mit einem höheren Durchsatz zu verarbeiten, als dies mit einer einzelnen PPU 202 möglich wäre. Systeme mit einer oder mehreren PPUs 202 können in einer Vielzahl von Konfigurationen und Formfaktoren realisiert werden, wozu Tischrechner, mobile Rechner oder Personalcomputer in Form von Handgeräten, Dienstleister-Rechner, Arbeitsplatzrechner, Spielekonsolen, eingebettete Systeme und dergleichen gehören.
  • Suchalgorithmus für Entzerrungskoeffizienten
  • 3 ist eine konventionelle Darstellung von gesendeten Signalen und empfangenen Signalen. In einem Computersystem können Signale in Form von 1'en und 0'en über Geräte zu ihrem Ziel übertragen werden. Die Signale können beeinträchtigt werden, wenn sie über einen Kanal transportiert werden, so dass es am Ziel schwierig sein kann zu ermitteln, ob das empfangene Bit eine 1 oder eine 0 ist. Eingangssignal 10 repräsentiert einen Datenpunkt 1 am Senderende eines Kanals. Das Eingangssignal 10 umfasst eine Pulsbreite von ungefähr Tb. Ein Eingangssignal 12 repräsentiert einen Datenpunkt 0 am Senderende des Kanals. Das Eingangssignal 12 hat ebenfalls eine Pulsbreite von ungefähr Tb. Die Eingangssignale 10 und 12 treten als scharfe, stufenartige Funktionen in Erscheinung.
  • Die rechte Seite der 3 zeigt zwei Ausgangssignale am Empfangsende des Kanals. Ein Ausgangssignal 20 umfasst einen empfangenen Datenpunkt 1, und ein Ausgangssignal 22 umfasst einen empfangenen Datenpunkt 0. Diese Ausgangssignale sind aufgrund der Zwischensymbolstörung bzw. Interferenz (ISI) verzerrt und somit stimmen die Ausgangssignale nicht exakt mit der scharfen Erscheinungsform der Eingangssignale 10 und 12 über ein. Wenn die Verzerrung am Empfangsende zu stark wird, kann eine 1 fälschlicherweise als eine 0 (oder umgekehrt) angesehen werden, und es würde ein Fehler in der Übertragung eingeführt.
  • 4 ist eine konventionelle Darstellung von gesendeten Daten und empfangenen Daten, die zu Fehlern führen. Die empfangenen Daten an einem Kanaleingang sind durch eine Signalform 30 repräsentiert. Die Signalform 30 umfasst eine Reihe von 1'en und 0'en, die über einen Kanal gesendet werden. Die Signalform 30 erscheint scharf, mit deutlichen Übergängen zwischen den 1'en und 0'en. Die gepunktete Linie repräsentiert eine Zeit, die die Grenze zwischen einem Datenpunkt 1 und einen Datenpunkt 0 repräsentiert. Eine Signalform 40 ist eine Darstellung des Signals am Empfangsende. Aufgrund der Störung in dem Kanal kann das empfangene Signal verzerrt sein und erscheint nicht mehr als scharf, wie die gesendeten Daten, die durch die Signalform 30 repräsentiert sind. Eine Signalform 50 ist eine Darstellung der Daten in der Signalform 40. Anders ausgedrückt, wenn die Signalform 40 in 1'en und 0'en umgewandelt wird, dann ist das Ergebnis die Signalform 50. Wie in 4 gezeigt, stimmt die Signalform 50 (die empfangenen Daten) nicht exakt mit der Signalform 30 (die gesendeten Daten) überein. In der Übertragung sind Fehler aufgetreten. Eine fehlerhafte null 42 ist gezeigt, das bedeutet, dass eine 0 gesendet wurde, am Empfänger aber als eine 1 empfangen wurde. Eine fehlerhafte eins 44 ist ebenfalls gezeigt, wobei eine 1 gesendet wurde, aber der Empfänger eine 0 empfangen hat. Wenn Daten schnell zwischen 1'en und 0'en umschalten, wie in der Signalform 30 gezeigt ist, können einige der Übergänge aufgrund der Störung in dem empfangenen Signal (Signalform 40) verloren gehen, woraus sich Fehler (etwa die Fehler 42 und 44) in den empfangenen Daten (Signalform 50) ergeben. In dem Maße, wie Datenverbindungen und Datenübertragungen schneller werden, treten diese Arten von Fehler häufiger auf, da die empfangenen Signale nicht ausreichend Zeit haben, um vollständig von einer 1 in eine 0 oder umgekehrt überzugehen. Es kann eine Entzerrung ausgeführt werden, um dabei unterstützend zu wirken, diese Fehler zu verhindern.
  • In PCI-Express Gen 3 umfasst die Entzerrung die Implementierung von Einstellungen, die ISI kompensieren, so dass das empfangene Signal wie das ursprünglich gesendete Signal aussieht. Es können sowohl eine Sendeentzerrung als auch eine Empfangsentzerrung ausgeführt werden. Bei der Sendeentzerrung wird das Signal am Senderende „umgeformt”, bevor das Signal gesendet wird in einer Weise, die komplementär zu der Verzerrung ist, die durch den Kanal hervorgerufen wird. Anders ausgedrückt, die Umformung kann der Verzerrung entgegenwirken. Die Umformung ermöglicht es, dass das Empfangsende besser zwischen 1'en und 0'en unterscheiden kann. Bei der Empfangsentzerrung wird das Signal am Empfangsende aufbereitet, um der Verzerrung entgegenzuwirken, die von dem Kanal eingeführt wurde, und um die Signalqualität zu verbessern. In PCI-Express Gen 3 können sowohl eine Sendeentzerrung als auch eine Empfangsentzerrung ausgeführt werden.
  • 5 zeigt ein Beispiel von Signalen am Empfangsende einer Übertragung vor und nach einer Entzerrung gemäß einer Ausführungsform der vorliegenden Erfindung. Die in einer Signalform 60 gezeigten Signale wurden keiner Entzerrung unterworfen. Die in der Signalform 62 gezeigten Signale stellen Signale nach einer Entzerrung dar. Die Übergänge zwischen 1'en und 0'en können deutlicher in der Signalform 62 als in der Signalform 60 aufgrund der Entzerrung erkannt werden.
  • 6 ist eine konventionelle Darstellung eines Augendiagramms 70 aus einem Oszilloskop, das am Empfangsende eines Übertragungskanals aufgenommen wurde. Die Messung #5 ist die Augenhöhe. Die Augenhöhe stellt ein Maß des Rauschens oder der Störung in dem Kanal dar. Wenn die Störungen zunehmen, scheint sich das „Auge” zu schließen und das Messergebnis für die Augenhöhe wird kleiner. Wenn die Störungen abnehmen, wird das Messergebnis für die Augenhöhe größer. Daher kann die Augenhöhe gemessen werden, um die Qualität der Übertragungen auf einem Kanal zu prüfen. Während eines Entzerrungstrainingsprozesses können jeweils mehrere Gruppen aus Parametern geprüft werden, wobei ein Augendiagramm verwendet wird, um eine optimale Gruppe an Parametern zu finden. Es ist gut bekannt, dass andere Messungen, die in dem Augendiagramm 70 gezeigt sind (Messwerte 1–4 und 6–9) benutzt werden können, um andere Leistungsmaßzahlen des Kanals abzuleiten.
  • Im Anschluss findet sich eine Erläuterung einer Reihe von anschaulichen Entzerrungsalgorithmen. Diese Algorithmen können verwendet werden, um eine Entzerrung innerhalb gegebener Zeitgrenzen auszuführen. Modifizierungen und Änderungen können an diesen Algorithmen vorgenommen werden, ohne von dem breiteren Grundgedanken und dem Schutzbereich der Erfindung abzuweichen.
  • Eine Entzerrung in PCIe kann bewerkstelligt werden, indem optimale Sendeentzerrungskoeffizienten ermittelt werden, die zur Justierung des Senders verwendet werden können. Es können drei Koeffizienten (die als der Vorläufer, der Nachläufer und der Hauptzeiger bekannt sind) angegeben werden, und die Koeffizienten sind durch die folgenden Gleichungen festgelegt:
    • (1) Vorläufer + Hauptzeiger + Nachläufer = SF
    • (2) FS – 2·(Vorläufer + Nachläufer) >= LF
    • (3) Vorläufer <= FS/4
    wobei LF = die Niederfrequenz und FS = der volle Signalhub sind, wobei beide für einen speziellen Port bzw. Zugang konstant sind. Koeffizienten, die diese Gleichungen erfüllen, werden als „legal” bezeichnet, und jene, die diese nicht erfüllen, werden als „illegal” bezeichnet. Der Begriff „optimale Koeffizienten” meint Koeffizienten, die zu einer Bitfehlerrate (BER) von 10–12 oder weniger führen. Ein typisches Computersystem kann hunderte von legalen Kombinationen aus Entzerrungskoeffizienten aufweisen. Die in dieser Offenbarung beschriebenen Algorithmen und Techniken können eingesetzt werden, um in effizienter Weise eine Gruppe aus optimalen Koeffizienten aus den legalen Kombinationen an Koeffizienten aufzufinden.
  • 7 ist eine Darstellung einer Abbildung bzw. einer Karte von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung. Eine Abbildung, etwa wie die in dem vorliegenden Beispiel, kann zur Visualisierung von Koeffizienten verwendet werden. Jeder Punkt in der Abbildung bzw. Karte repräsentiert eine Kombination eines Vorläufers und eines Nachläufers. Da der Hauptzeiger aus den anderen beiden Koeffizienten unter der Verwendung der obigen Gleichung (1) abgeleitet werden kann, verfolgt der Suchalgorithmus nur den Vorläufer und den Nachläufer. 7 zeigt den Nachläufer (C+1) auf der x-Achse und den Nachläufer (C–1) auf der y-Achse. In diesem Beispiel ist der FS-Wert 24 und die Koeffizienten sind als Verhältnisse von FS ausgedrückt. Die schattierten Quadrate in der Karte repräsentieren Voreinstellungen, und die gepunkteten Linien repräsentieren die Grenzen, die legale Koeffizienten von illegalen Koeffizienten trennen.
  • Jeder Punkt in der Abbildung hat eine mit ihm verknüpfte Augenhöhe, die die Verbindungsqualität repräsentiert, die durch die Koeffizienten an diesem Punkt erzeugt wird. Die Bewertung dieser Verbindungsqualität kann von einer Zustandsmaschine ausgeführt werden, etwa einem Entscheidungsrückkopplungs-Entzerrer oder DFE. Es kann ein beliebiger geeigneter Entzerrer verwendet werden, und kann als ein EQ-Train in gewissen anschaulichen Ausführungsformen in dieser Offenbarung bezeichnet werden. Das Endergebnis ist ein Resultat, das als „qeye” in gewissen anschaulichen Ausführungsformen in dieser Offenbarung bezeichnet wird. Das qeye ist ein Maß der Augenhöhe und höhere Werte repräsentieren eine bessere Verbindungsqualität. Das Ziel der Suchalgorithmen besteht darin, den höchsten Wert in der Abbildung zu finden, oder alternativ einen Wert zu finden, der gleich einem vorbestimmten Schwellwert ist oder diesen übertrifft. Es können auch andere Qualitätsmaßzahlen anstelle der Augenhöhe verwendet werden, etwa ein Maß der Augenbreite oder ein Maß der Augenfläche.
  • Wie zuvor ausgeführt ist, gibt es häufig nicht ausreichend Zeit, um jeden Punkt in der Abbildung zu prüfen. In einer anschaulichen Realisierung unter Anwendung von PCIe kann jeder Punkt mehr als 200 μs für die Bewertung erfordern. Die Bewertung von 52 Punkten wurde daher ungefähr 50 ms erfordern, wobei jedoch die PCIe-Spezifikation beispielsweise nur maximal 24 ms zulässt, um die optimalen Koeffizienten zu ermitteln. Ferner ist es wünschenswert, möglichst schnell fertig zu sein, so dass andere Operationen ausgeführt werden können. Die Suchalgorithmen, die hier beschrieben sind, sind geeignet für kurze Kanäle (wobei viele Punkte in der Abbildung akzeptabel sind) und für lange Kanäle (in denen nur wenige Punkte in der Abbildung akzeptabel sind). Die Suchalgorithmen, die hier beschrieben sind, können ferner vorteilhaft ein monotones Ansteigen der qeye-Werte in lokalen Bereichen der Abbildung ausnutzen, um eine effizientere Suche auszuführen.
  • In einer Ausführungsform dieser Erfindung wird eine grob unterteilte Suche über eine große Koeffizientenabbildung hinweg ausgeführt, um ein Gebiet der Abbildung zu finden, das mit hoher Wahrscheinlichkeit das höchste qeye hat. Sobald die Analyse abgeschlossen ist, kann eine fein unterteilte Suche auf einem kleineren Teilbereich der Abbildung ausgeführt werden, um das höchste qeye Auge zu finden. Das Ausführen der grob unterteilten Suche liefert einen Überblick über die Abbildung in einer kurzen Zeit, und anschließend kann die genauere fein unterteilte Suche angewendet werden, um eine Gruppe optimaler Koeffizienten zu ermitteln.
  • Die grob unterteilte Suche kann auf vielerlei Weisen ausgeführt werden. 8A und 8B zeigen eine anschauliche Ausführungsform einer grob unterteilten Suche. Wie gezeigt, hat die grob unterteilte Suche vier Sequenzen – wovon jede iterativ in der Abbildung „weiter schreitet”, wobei eine Schrittlänge von 2 verwendet wird. Die erste Sequenz, die in 8A gezeigt ist, beginnt bei den Koordinaten (0, 0) in der Karte bzw. Abbildung, während die zweite, die dritte und die vierte Sequenz entsprechend beginnen bei (1, 1), (0, 1) und (1, 0). Die erste Sequenz umfasst die schattierten Punkte in der Karte in der folgenden Reihenfolge: (0, 0), (0, 2), (0, 4), (0, 6), (2, 4), (2, 2), (2, 0), (4, 0), (4, 2), (4, 4), (6, 2), (6, 0), (8, 0). 8B zeigt die zweite Sequenz, die bei (1, 1) beginnt und die Karte mit einer Schrittlänge von 2 durchläuft, wie gezeigt. Sequenzen drei und vier (nicht gezeigt) werden ebenfalls ausgeführt. Durch Unterteilung der grob unterteilten Suche in vier Sequenzen ist der Algorithmus in der Lage, einen weiten Bereich der Abbildung während der frühen Phase der Suche abzudecken, und dann die gesamte Abbildung abzudecken, wenn dies die Zeit zulässt. Wenn die grob unterteilte Suche an eine Zeitgrenze stößt, bevor alle vier Sequenzen abgeschlossen sind, wird der beste Punkt, der bis zu diesem Zeitpunkt ermittelt wurde, gespeichert und an die fein unterteilte Suche übergeben.
  • Es können für die grob unterteilte Suche Abbruchbedingungen angegeben werden. In einer anschaulichen Ausführungsform kann der grob unterteilte Suchalgorithmus bewendet werden, wenn eines oder mehrere der folgenden Ereignisse auftreten:
    • (1) es wurde ein Punkt entdeckt, der den minimalen akzeptablen qeye-Schwellwert übersteigt;
    • (2) die Anzahl an Iterationen hat einen vorbestimmten Wert überschritten;
    • (3) die gesamte Zeit in der grob unterteilten Suche hat einen vorbestimmten Wert überschritten; oder
    • (4) alle Punkte, die in allen ausgewählten grob unterteilten Sequenzen angegeben wurden, wurden geprüft.
  • Sobald die Abbruchbedingung auftritt, wird der beste Punkt in der Abbildung als der Anfangspunkt für die fein unterteilte Suche verwendet.
  • 9 ist eine Darstellung einer weiteren Technik zur Ausführung einer grob unterteilten Suche in einer Abbildung von Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung. In dieser anschaulichen Ausführungsform unterteilt die grob unterteilte Suche jede Achse in 2, 4 oder 8 Teile, um die Koeffizientenabbildung in näherungsweise gleiche Gebiete zu unterteilen. Dann wird der Mittelpunkt jedes Gebiets ausgewählt und die mit diesen Mittelpunkten verknüpften Koeffizienten werden im Hinblick auf die Legalität geprüft. Das qeye für jeden legalen Punkt wird ermittelt, und der Punkt mit dem höchsten qeye wird als der „beste Punkt” ermittelt und wird als der Anfangspunkt für die fein unterteilte Suche verwendet.
  • In einigen Ausführungsformen können Techniken, die keine grob unterteilte Suche sind, eingesetzt werden, um einen Anfangspunkt für die fein unterteilte Suche auszuwählen. Die Verwendung dieser Techniken kann schneller sein als das Ausführen einer grob unterteilten Suche. Beispielsweise können ein Softwareprogramm oder ein Prozess verwendet werden, um eine Gruppe an Koeffizienten für die Bewertung anzugeben. Die spezifizierte Gruppe an Koeffizienten kann eine Gruppe an Koeffizienten sein, die zuvor für die Entzerrung in dem System verwendet wurde. In einigen geschlossenen Systemen, etwa tragbaren Computern, ändern sich gegebenenfalls die optimalen Entzerrungskoeffizienten nach jedem Hochlaufen nicht, so dass diese Koeffizienten als Anfangspunkt für die fein unterteilte Suche verwendet werden können oder sogar ohne eine fein unterteilte Suche erneut verwendet werden können, wenn die mit den Koeffizienten verknüpfte Augenhöhe mit einem akzeptablen Schwellwert verträglich ist.
  • 10 ist eine Darstellung einer Technik zur Ausführung einer fein unterteilten Suche in einer Abbildung aus Entzerrungskoeffizienten gemäß einer Ausführungsform der vorliegenden Erfindung. Die grob unterteilten Suchealgorithmen, die zuvor beschrieben sind, werden verwendet, um einen „besten Suchpunkt” zu finden, der als der Anfangspunkt für die fein unterteilte Suche verwendet wird. Ein anschaulicher Algorithmus für eine fein unterteilte Suche wird nun beschrieben. Jede Gruppe an Koeffizienten, die bewertet wird, wird als ein „Justierversuch” oder „Iteration” des Algorithmus bezeichnet. Der fein unterteilte Suchalgorithmus beginnt mit einer Bewertung der benachbarten Koeffizienten um den Anfangspunkt herum. Dann „schreitet” der Algorithmus mit einem Punkt pro Zeiteinheit in der Richtung des benachbarten Punkts, der die höchste Augenhöhe hat. Der angrenzende oder benachbarte Punkt, der mit der größten Augenhöhe verknüpft ist, kann als ein aktuell durchlaufener Punkt bezeichnet werden. Das Weiterschreiten in dieser Richtung (eine erste Richtung) und das Bewerten jedes Punktes entlang des Weges gehen weiter, bis die Augenhöhe anfängt, kleiner zu werden, oder bis eine Grenze erreicht ist. An dem Punkt in der Abbildung, in der die Augenhöhe beginnt keiner zu werden (oder eine Grenze erreicht ist), bewertet der Algorithmus die acht umgebenden Punkte in der Abbildung (oder weniger im Falle einer Grenze). Der Algorithmus schreitet dann wieder in der Richtung des Punktes mit der höchsten Augenhöhe weiter (eine zweite Dichtung) und wiederholt die Schritte für das Weiterschreiten und das Untersuchen, bis eine Abbruchbedingung erfüllt ist. Vier mögliche Abbruchbedingungen sind:
    • (1) alle acht umgebenden Punkte sind kleiner – der Algorithmus hat ein lokales Maximum erreicht;
    • (2) die Zeitgrenze ist erreicht;
    • (3) die Anzahl an Iterationen hat einen vorbestimmten Schwellwert erreicht; oder
    • (4) die Augenhöhe erreicht einen akzeptablen Schwellwert.
  • Wiederum stellt 10 ein detailliertes Beispiel einer fein unterteilten Suche bereit. Es sei angenommen, dass die fein unterteilte Suche den Punkt (3, 5) als den Anfangspunkt ausgewählt hat. Die Zahlen in der Abbildung in 10 sind nur anschaulich und werden verwendet, die Augenhöhe für die Entzerrungskoeffizienten, die mit jedem Punkt in der Abbildung verknüpft sind, darzustellen. Die Zahl am Anfangspunkt (2, 5) ist 5. Der Algorithmus bewertet die benachbarten Koeffizienten um diesen Anfangspunkt herum und findet, dass der Punkt (4, 5) die höchste Augenhöhe aller benachbarter Punkte besitzt – eine Augenhöhe von 6. Die Bewertung der benachbarten Punkte auf diese Weise kann als der „Erforschungsmodus” bezeichnet werden. Der Algorithmus geht dann weiter in Richtung des Punktes (4, 5) mit einem Schritt pro Zeiteinheit, bis die Augenhöhe beginnt keiner zu werden. Diese Richtung kann als eine erste Richtung betrachtet werden, und der Punkt (4, 5) kann als der aktuell durchlaufene Punkt bezeichnet werden. Das Durchlaufen der Abbildung kann als der „Schrittmodus” bezeichnet werden. Am Punkt (8, 5) beträgt die Augenhöhe 10, und am Punkt (9, 5) beträgt die Augenhöhe 9. Der Algorithmus wird sich daher um den Punkt herum zentrieren, an welchem die Augenhöhe beginnt abzunehmen, d. h. der Punkt (8, 5). Der Algorithmus bewertet dann die acht Punkte, die den Punkt (8, 5) in der Abbildung umgeben und erkennt, dass der Punkt (8, 6) mit einer Augenhöhe von 12 der Punkt mit der höchsten Augenhöhe ist. Daher schreitet der Algorithmus vom Punkt (8, 5) in die Richtung des Punktes (8, 6) weiter (d. h. in einer zweiten Richtung) und dies wird fortgesetzt, bis die Augenhöhe beginnt, kleiner zu werden. Die Augenhöhe am Punkt (8, 10) beträgt 19 und fällt am Punkt (8, 11) auf 14 ab. Wiederum zentriert sich der Algorithmus erneut, dieses Mal um den Punkt (8, 10) herum und bewertet die acht Punkte, die den Punkt (8, 10) umgeben. Nach dieser Bewertung erkennt der Algorithmus, dass die Augenhöhe aller acht umgebenden Punkte kleiner ist als die Augenhöhe am Punkt (8, 10). Daher hat der Algorithmus eine Abbruchbedingung erreicht und die Entzerrungskoeffizienten am Punkt (8, 10) werden für die Verwendung in dem System ausgewählt. In diesem Beispiel ist die fein unterteilte Suche beendet.
  • Während der fein unterteilten Suche kann jede Gruppe an Koeffizienten in der Abbildung, die von dem Algorithmus angetroffen wird, zunächst im Hinblick auf Legalität geprüft werden. Wenn ein illegaler Punkt angetroffen wird im Erforschungsmodus, kann der Algorithmus diesen Punkt überspringen und kann weiter schreiten. Wenn ein illegaler Punkt im Schrittmodus angetroffen wird, kann der Algorithmus den Durchlauf an diesem Punkt unterbrechen und kann in den Erforschungsmodus umschalten.
  • Die zuvor beschriebenen Durchsuchungen mit grober Unterteilung und feiner Unterteilung können auf eine Vielzahl von Arten und in einer Vielzahl von Systemen realisiert werden. Diese Techniken können beispielsweise in Verbindung mit seriellen Hochgeschwindigkeitskommunikationsprotokollen, etwa PCIe verwendet werden, um Datensignale für die Übertragung aufzubereiten. Die PCIe 3.0 Basisspezifikation betrifft keine Entzerrungsalgorithmen.
  • In einer anschaulichen Realisierung, die PCIe 3.0 betrifft, ist Wiederherstellung.Entzerrung bzw. Recovery.Equalization eine Unteranweisung der Wiederherstellung-Anweisung des Automaten für das Verbindungstraining und die Statuszustände (LTSSM). Diese Unteranweisung wird verwendet, um die optimalen Sendekoeffizienten für einen korrekten Betrieb bei einer Geschwindigkeit von 8,0 GT/s zu ermitteln. Die Entzerrungskoeffizienten können automatisch durch Hardware unter Anwendung eines Übergabe-Protokolls ermittelt werden. Daher wird ein Wiederherstellung.Entzerrung-Trainingsalgorithmus verwendet, um die optimalen Koeffizienten in der kürzesten möglichen Zeit zu finden.
  • Die Wiederherstellung.Entzerrung-Unteranweisung ist ferner in fünf Sub-Unteranweisungen unterteilt:
    • (1) Wiederherstellung.Entzerrung Phase 0
    • (2) Wiederherstellung.Entzerrung Phase 1
    • (3) Wiederherstellung.Entzerrung Phase 2 Req Coeff bzw. Anford Koeff
    • (4) Wiederherstellung.Entzerrung Phase 2 EQ Train bzw. Entz. Training
    • (5) Wiederherstellung.Entzerrung Phase 3
  • Wiederherstellung.Entzerrung Phase 0 ist nur für vorgeordnete Ports bzw. Anschlüsse reserviert (d. h. Endpunkt). Wenn der nachgeordnete Port (d. h. Ursprungsport) Eintritt in die Wiederherstellung.Entzerrung anfordert, tritt der Endpunkt zuerst in diesen Zustand ein. Vor dem Eintritt in diesen Zustand wendet der Endpunkt die für den Ursprungsport vorgeschlagenen Entzerrungskoeffizienten auf seinen Sender an (die für den Ursprungsport vorgeschlagene Voreinstellung wird dem Ursprungsport mit der Geschwindigkeit gen1/gen2 zugeleitet unmittelbar vor der ersten Geschwindigkeitsänderung auf gen3). Der Grund für eine vom Ursprungsport vorgeschlagene Voreinstellung besteht darin, dass, da der Hauptanteil der Leiterbahnen in der Hauptplatine liegt, der Hersteller des Ursprungsports in einer besseren Position ist vorherzusagen, was die optimale Voreinstellung sein würde, so dass der Hersteller die Voreinstellung, mit der zu beginnen ist, angeben wird. Diese Herstellerspezifikation kann es dem Suchalgorithmus ermöglichen, sich schneller auf den optimalen Punkt einzustellen.
  • Wiederherstellung.Entzerrung Phase 1 ist sowohl für den vorgeordneten als auch den nachgeordneten Port. Beide Ports wenden diese von dem Ursprungsport vorgeschlagene Voreinstellung auf ihre Sender an. Die Ports teilen ferner ihre FS- und LF-Werte über Trainingsgruppen einander mit (TS1s), so dass jeder Port diese Werte in die Bedingungsgleichungen, die oben angegeben sind, einfügen kann. Dieser Schritt ermöglicht es jedem Port, nur nach illegalen Koeffizienten in seiner entsprechenden „dominierenden” Phase zu suchen (d. h. Phase 2 für vorgeordnete Ports, Phase 3 für nachgeordnete Ports).
  • In Wiederherstellung.Entzerrung Phase 2 Req Coeff sendet der vorgeordnete Port (Endpunkt) Anforderungen an den nachgeordneten Port (Ursprungsport), um seine Tx-(Sende)Einstellungen auf Werte zu setzen, die von dem vorgeordneten Port als optimal erachtet werden, und wartet darauf, dass die Anforderung akzeptiert oder zurückgewiesen wird. Der vorgeordnete Port kann Maßnahmen ergreifen, um nur legale Koeffizienten anzufordern, kann aber auch eine Mechanismus aufweisen, um den Fall zu handhaben, in welchem legale Koeffizienten von der anderen Seite zurückgewiesen werden. Der vorgeordnete Port kann anfordern, dass Entzerrungseinstellungen angewendet werden, indem die einzelnen Koeffizienten (Vorläufer, Hauptzeiger, Nachläufer) angegeben werden.
  • In Wiederherstellung.Entzerrung Phase 2 EQ Train bewertet der vorgeordnete Port die Verbindungsqualität, die von den Koeffizienten hervorgerufen wird, die in Wiederherstellung.Entzerrung Phase 2 Req Coeff angefordert wurden. Diese Bewertung kann von einem Entzerrer ausgeführt werden, und das Endergebnis ist das qeye. Der Ports verzeichnet diesen Wert und vergleicht diesen mit den qeye-Werten, die in früheren Anforderungen aufgetreten sind – wenn dies bislang der höchste Wert ist, speichert der Port die angeforderten Koeffizienten in einer temporären Variablen, etwa (best_precursor, best_maincursor, best_postcursor).
  • Der nächste Zustand ist Wiederherstellung.Entzerrung Phase 2 Req Coeff, wenn mehr Koeffizienten geprüft werden müssen (um nach einem höheren qeye zu suchen), oder Wiederherstellung.Entzerrung Phase 3, wenn das maximale qeye größer ist als der akzeptable Schwellwert (oder wenn der Algorithmus keine weiteren Punkte findet, die einen Versuch wert sind). Die maximale Zeit, die für die Iteration zwischen Wiederherstellung.Entzerrung Phase 2 Req Coeff und Wiederherstellung.Entzerrung Phase 2 EQ Train aufgewendet werden kann, beträgt 24 ms in dieser Ausführungsform. Nach Ablauf von 24 ms geht der Port in Wiederherstellung.Entzerrung Phase 3 über.
  • In Wiederherstellung.Entzerrung Phase 3 setzt der nachgeordnete Port Anforderungen an den vorgeordneten Port ab, um die Tx-Einstellungen des vorgeordneten Port zu ändern, und der nachgeordnete Port versucht das beste qeye für die Verbindung in Richtung vorgeordneter Port-zu-nachgeordneter Port zu ermitteln. Diese Phase hat eine zeitliche Grenze von 32 ms. Der vorgeordnete Port muss einfach die Anforderungen empfangen, diese zurückgeben und „akzeptiert” angeben, wenn diese legal sind (oder „zurückgewiesen”, wenn diese illegal sind), und er kann die legalen auf seine eigenen Sendereinstellungen anwenden.
  • Der Wiederherstellung.Entzerrung-Trainingsalgorithmus ist nur auf die Sub-Unteranweisungen Wiederherstellung.Entzerrung Phase 2 Req Coeff und Wiederherstellung.Entzerrungsphase 2 EQ Train anwendbar, da nur diese Zustände dem Endpunkt zur Ausführung der Koeffizientensuche zugewiesen sind. Jede Gruppe an Koeffizienten, die versucht wurde, wird als ein „Justierversuch” oder „Iteration” des Algorithmus bezeichnet. Der Übergang von der Wiederherstellung.Entzerrung Phase 2 Anforderungen Koeff kann auftreten, wenn gewisse Bedingungen erfüllt werden. Der Übergang von Wiederherstellung.Entzerrung Phase 2 EQ Train zu Wiederherstellung.Entzerrungsphase 2 Req Coeff kann auftreten, wenn ein EQ Train-Signal hoch-pegelig wird.
  • Eine beispielhafte Ausführungsform eines Suchalgorithmus, der sowohl eine grobe als auch eine feine Vorgehensweise umfasst, sowie andere Vorgehensweisen, sind nachfolgend beschrieben. Diese anschauliche Ausführungsform kann im weiteren Sinne in fünf Sub-Algorithmen eingeteilt werden:
    • (1) Anforderung vorhergehender bester Einstellungen – wenn die „besten Koeffizienten-”Variablen zulässige Werte haben, dann werden diese Werte erneut angefordert. Dieser Sub-Algorithmus ist nützlich, wenn die Verbindung erneut den Wiederherstellung.Entzerrung-Zustand antrifft und der Anwender wünscht, den bei der vorhergehenden Entzerrung gefundenen Punkt zu prüfen.
    • (2) SBIOS voreingestellte Anforderung – anfordern der Voreinstellung, die von dem Ursprungsport vor dem Eintritt in gen3 empfohlen wurde.
    • (3) Software spezifizierte Koeffizientenanforderung – Software liefert eine Gruppe an Koeffizienten, die optimal sein kann, über Register
    • (4) Grob unterteilter Algorithmus – Durchsuchen des Koeffizientenraums mit einer gewissen Schrittweite (oder Schritt_Länge), um ein Gebiet mit hohen qeye-Werten zu finden; oder Ausführen einer anderen Art an grob unterteiltem Algorithmus, wie zuvor beschrieben ist
    • (5) Fein unterteilter Algorithmus – Suche in der Nähe des höchsten Punktes, der in den vorhergehenden Schritten entdeckt wurde, jedoch beschränkt auf Schrift_Länge von 1. Immer in der Richtung weitergehen, die den höchsten Gradienten beim Anwachsen von qeye hat, wie zuvor beschrieben ist.
    • (6) Ein letzter Schritt besteht darin, den besten Punkt, der in den vorhergehenden 5 Schritten ermittelt wurde, erneut anzufordern. Dieser Schritt ist ein Durchgangsschritt für eine einmalige Iteration.
  • 11 ist ein Flussdiagramm von Verfahrensschritten zum Ausführen eines Kanalentzerrungstrainings mit mehreren Durchlaufen gemäß einer Ausführungsform der vorliegenden Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den 1, 2 und 710 geschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zum Ausführen der Verfahrensschritte in beliebiger Reihenfolge geeignet ist, innerhalb des Schutzbereichs der vorliegenden Erfindung liegt. Die Verarbeitungseinheit 102 ist ausgebildet, die diversen Schritte des Verfahrens 1100 auszuführen, wenn eine Softwareanwendung ausgeführt wird, die in einem Speicher abgelegt ist, etwa in dem Systemspeicher 104. In einigen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 einige der Schritte des Verfahrens 1100 ausführen.
  • Wie gezeigt, beginnt ein Verfahren 1100 im Schritt 1110, in welchem die Verarbeitungseinheit 102 einen ersten Durchlauf der Prüfung an der Gruppe aus Entzerrungskoeffizienten ausführt. Der erste Durchlauf der Prüfung erzeugt eine oder mehrere gefilterte Gruppen an Entzerrungskoeffizienten, die jeweils ein gewisses Kriterium erfüllen. Der erste Durchlauf der Prüfung kann einen der grob unterteilten Suchalgorithmen umfassen, die zuvor beschrieben sind. Der erste Durchlauf der Prüfung kann beispielsweise eine Augenhöhe ermitteln, die mit jeder Gruppe aus Entzerrungskoeffizienten verknüpft ist, und die Gruppen an Entzerrungskoeffizienten ausfiltern auf der Grundlage zumindest teilweise dieser Augenhöhe.
  • Im Schritt 1120 führt die Verarbeitungseinheit 102 einen zweiten Durchlauf der Prüfung an der einen oder den mehreren gefilterten Gruppen an Entzerrungskoeffizienten aus, um eine endgültige Gruppe aus Entzerrungskoeffizienten zu ermitteln. Der zweite Durchlauf der Prüfung erzeugt genauere Ergebnisse als der erste Durchlauf der Prüfung. Der zweite Durchlauf der Prüfung kann eine längere Zeit für die Ausführung in Anspruch nehmen als der erste Durchlauf der Prüfung. Ferner kann der zweite Durchlauf der Prüfung den fein unterteilten Suchalgorithmus beinhalten, der zuvor beschrieben ist. Der zweite Durchlauf der Prüfung kann beispielsweise eine Augenhöhe ermitteln, die mit jeder Gruppe aus Entzerrungskoeffizienten verknüpft ist, und Gruppe aus Entzerrungskoeffizienten auf der Grundlage zumindest eines Teils dieser Augenhöhe auswählen oder zurückweisen.
  • 12 ist ein Flussdiagramm von Verfahrensschritten zur Ausführung einer grob unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den 1, 2 und 710 beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zur Ausführung der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der vorliegenden Erfindung liegt. Die Verarbeitungseinheit 102 ist ausgebildet, die diversen Schritte des Verfahrens 1200 auszuführen, wenn eine Softwareanwendung ausgeführt wird, die in einem Speicher, etwa dem Systemspeicher 104, abgelegt ist. In einigen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 einige der Schritte des Verfahrens 1200 ausführen.
  • Der Prozess beginnt im Schritt 1210. Der Prozessor 102 führt die Softwareanwendung aus, um einen Anfangspunkt in einer Abbildung bzw. Karte aus Entzerrungskoeffizienten auszuwählen. In einer anschaulichen Ausführungsform, die in 8A dargestellt ist, ist der ausgewählte Anfangspunkt (0, 0). Es können in anderen Ausführungsformen auch andere Punkte ausgewählt werden.
  • Im Schritt 1220 führt der Prozessor 102 die Softwareanwendung aus, um iterativ in der Abbildung unter Anwendung einer Schrittlänge, die größer als eins ist, weiter zu schreiten. In der in 8A dargestellten anschaulichen Ausführungsform ist die Schrittlänge gleich 2. Es können auch andere Schrittlängen in anderen Ausführungsformen verwendet werden. In der anschaulichen Ausführungsform schreitet die Technik vom Punkt (0, 0) zum Punkt (0, 2), geht dann zu den Punkten (0, 4), (0, 6), (2, 6), usw., wie dies zuvor mit Bezug zu 8A beschrieben ist. Dieses Verfahren kann einen weiten Bereich der Abbildung in einer kurzen Zeitspanne unter Anwendung einer Schrittlänge, die größer als eins ist, abdecken.
  • Im Schritt 1230 führt der Prozessor 102 die Softwareanwendung aus, um die Augenhöhe jedes Punktes zumessen. Der Punkt mit der höchsten Augenhöhe wird im Speicher gespeichert, wobei auch andere Punkte gespeichert werden können. Es kann ein beliebig geeigneter Prozess zur Messung der Augenhöhe eingesetzt werden. Der Punkt mit der höchsten Augenhöhe kann als die optimalen Koeffizienten verwendet werden, oder kann als ein Anfangspunkt für einen weiteren Suchalgorithmus verwendet werden, etwa eine fein unterteilte Suche.
  • Im Schritt 1240 führt der Prozessor 102 die Softwareanwendung aus, um das Verfahren zu verlassen, wenn eine Abbruchbedingung angetroffen wird. Es können eine Reihe von möglichen Abbruchbedingungen verwendet werden. Eine erste Abbruchbedingung tritt auf, wenn ein Punkt ermittelt wurde, der den minimalen akzeptablen qeye-Schwellwert überschritten hat. Wenn diese Abbruchbedingung auftritt, hat die Suche eine Gruppe optimaler Koeffizienten ermittelt und diese Koeffizienten können ausgewählt und für Übertragungen verwendet werden. Eine zweite Abbruchbedingung tritt auf, wenn die Anzahl an Iterationen einen vorbestimmten Wert überschritten hat. Die Suche kann mit einer vorbestimmten maximalen Anzahl an Iterationen ausgeführt werden, so dass eine Zeitgrenze für die grob unterteilte Suche nicht überschritten wird. Wenn die Anzahl an Iterationen erreicht ist, kann der Suchprozess beendet werden. Eine weitere Abbruchbedingung kann auftreten, wenn die gesamte Zeit in der grob unterteilten Suche einen vorbestimmten Wert überschritten hat. Die vierte Abbruchbedingung kann auftreten, wenn alle Punkte, die in allen ausgewählten grob unterteilten Sequenzen angegeben wurden, geprüft worden sind. Wenn eine Abbruchbedingung auftritt, kann der Prozessor 102 die Softwareanwendung ausführen, um die besten ermittelten Entzerrungskoeffizienten auszuwählen (gemessen durch die Augenhöhe) und kann diese Koeffizienten für die Entzerrung verwenden oder kann diese Koeffizienten als den Anfangspunkt für eine fein unterteilte Suche verwenden.
  • Im Schritt 1250 führt der Prozessor 102, wenn keine Abbruchbedingung angetroffen wird, die Softwareanwendung so aus, dass das Verfahren wiederholt wird, indem im Schritt 1210 begonnen wird und ein anderer Ausgangspunkt verwendet wird. In einer beispielhaften Ausführungsform kann der Prozess mit dem Anfangspunkt (0, 0) für die erste Sequenz beginnen und kann dann den Anfangspunkt (0, 1) für die zweite Sequenz verwenden. Die zweite Sequenz verläuft exakt wie die erste, indem die Abbildung unter Anwendung einer Schrittlänge durchlaufen wird, die größer als eins ist, indem die Augenhöhen gemessen werden und indem die Sequenz beendet wird, wenn eine Abbruchbedingung angetroffen wird. Es kann eine beliebige Anzahl zusätzlicher Sequenzen ausgeführt werden, wenn die Abbruchbedingungen nicht erfüllt sind.
  • 13 ist ein Flussdiagramm von Verfahrensschritten zur Ausführung einer grob unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den 1, 2 und 710 beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zur Ausführung der Verfahrensschritte in beliebiger Reihenfolge ausgebildet ist, innerhalb des Schutzbereichs der vorliegenden Erfindung liegt. Die Verarbeitungseinheit 102 ist ausgebildet, die diversen Schritte des Verfahrens 1300 auszuführen, wenn eine Softwareanwendung ausgeführt wird, die in einem Speicher, etwa dem Systemspeicher 104, gespeichert ist. In einigen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 einige der Schritte des Verfahrens 1300 ausführen.
  • Der Prozess beginnt im Schritt 1310. In diesem Schritt führt der Prozessor 102 die Softwareanwendung aus, um eine Abbildung aus Entzerrungskoeffizienten in mehrere Gebiete zu unterteilen. Ein Beispiel einer Aufteilung einer Abbildung auf diese Weise kann in der 9 betrachtet werden. Die Abbildung kann in Gebiete mit ungefähr gleicher Größe oder in Gebiete mit ungleicher Größe unterteilt werden. Die Abbildung kann in eine beliebige geeignete Anzahl an Gebieten unterteilt werden.
  • Im Schritt 1320 führt der Prozessor 102 die Softwareanwendung so aus, dass die Augenhöhe in einem einzelnen Punkt in jedem Gebiet gemessen wird. Der Punkt, der in jedem Gebiet gemessen wird, kann auf eine vielfältige Weise ausgewählt werden. In einigen Ausführungsformen kann der Mittelpunkt des Gebiets ausgewählt werden. In anderen Ausführungsformen kann ein zufälliger Punkt oder ein pseudo-zufälliger Punkt ausgewählt werden. Die Augenhöhen können unter Anwendung einer beliebigen geeigneten Technik gemessen werden.
  • Im Schritt 1330 führt der Prozessor 102 die Softwareanwendung so aus, dass der Punkt mit der höchsten Augenhöhe als der Anfangspunkt für einen Algorithmus mit fein unterteilter Suche oder für einen anderen Suchalgorithmus ausgewählt wird. Idealerweise führt die Auswahl des Punktes mit der höchsten Augenhöhe als Anfangspunkt dazu, dass eine optimale Gruppe aus Entzerrungskoeffizienten rascher ermittelt wird, als wenn mit einem anderen Punkt begonnen würde.
  • 14 ist ein Flussdiagramm von Verfahrensschritten zur Ausführung einer fein unterteilten Suche gemäß einer Ausführungsform der vorliegenden Erfindung. Obwohl die Verfahrensschritte in Verbindung mit den 1, 2 und 710 beschrieben sind, erkennt der Fachmann, dass ein beliebiges System, das zur Ausführung der Verfahrensschritte in beliebiger Reihenfolge geeignet ist, innerhalb des Schutzbereichs der vorliegenden Erfindung liegt. Die Verarbeitungseinheit 102 ist ausgebildet, die diversen Schritte des Verfahrens 1400 auszuführen, wenn sie eine Softwareanwendung ausführt, die in einem Speicher, etwa dem Systemspeicher 104, gespeichert ist. In einigen Ausführungsformen kann das Parallelverarbeitungssubsystem 112 einige der Schritte des Verfahrens 1400 ausführen.
  • Die Technik beginnt mit dem Schritt 1410. Im Schritt 1410 wählt die Verarbeitungseinheit 102 einen Anfangspunkt in einer Abbildung aus Entzerrungskoeffizienten aus. Die Abbildung aus Entzerrungskoeffizienten kann ähnlich zu der Abbildung sein, die in 7 in einer anschaulichen Ausführungsform gezeigt ist. Der Anfangspunkt kann durch eine beliebige geeignete Technik ausgewählt werden, wozu einer der Suchalgorithmen mit grober Unterteilung oder einer der zuvor beschriebenen Sub-Algorithmen gehört.
  • Im Schritt 1420 führt die Verarbeitungseinheit 102 die Softwareanwendung so aus, dass die Augenhöhen des Anfangspunkts und jedes Punktes, der benachbart zum Anfangspunkt liegt, gemessen werden. Diese Augenhöhen können verwendet werden, um eine optimale Gruppe aus Entzerrungskoeffizienten in der Abbildung zu ermitteln. Es kann eine beliebige geeignete Vorgehensweise verwendet werden, um die Augenhöhen zu messen.
  • Im Schritt 1430 führt der Prozessor 102 die Softwareanwendung so aus, dass entlang der Abbildung aus Entzerrungskoeffizienten in der Richtung desjenigen Punktes durchschritten wird, der dem Anfangspunkt mit der höchsten Augenhöhe am nächsten liegt. Dieser Prozess ist oben mit Bezug zu 10 erläutert.
  • Im Schritt 1440 führt der Prozessor 102 die Softwareanwendung so aus, dass ermittelt wird, ob die Augenhöhe weiter ansteigt oder nicht. Wenn die Augenhöhe weiter anwächst, dann kehrt das Verfahren zum Schritt 1430 zurück und beginnt mit dem Durchlaufen in der Richtung des Punktes mit der höchsten Augenhöhe. Die Schritte 1430 und 1440 werden wiederholt, solange die Augenhöhe ansteigt (oder bis gewisse Abbruchbedingungen erfüllt sind, wie nachfolgend erläutert ist). Wenn die Augenhöhe nicht weiter anwächst, geht das Verfahren weiter zum Schritt 1450.
  • Im Schritt 1450 führt der Prozessor 102 die Softwareanwendung so aus, dass der Punkt ausgewählt wird, an dem die Augenhöhe anfängt, kleiner zu werden, und er misst die Augenhöhe des benachbarten Punkts. Dieser Vorgang ist ebenfalls mit Bezug zu 7 erläutert. Diese Augenhöhen werden verwendet, um eine neue Richtung zu ermitteln, in der weiter zu schreiten ist, oder um zu ermitteln, ob eine Abbruchbedingung erfüllt ist. Der Prozess geht dann weiter zum Schritt 1460.
  • Im Schritt 1460 führt der Prozessor 102 die Softwareanwendung so aus, dass ermittelt wird, ob eine Abbruchbedingung nicht erfüllt worden ist. Es können eine Reihe möglicher Abbruchbedingungen verwendet werden, wie zuvor mit Bezug zu 10 beschrieben ist. Wenn jeder benachbarte Punkt eine geringere Augenhöhe als der Punkt aufweist, an welchem die Augenhöhen beginnen, kleiner zu werden, hat das Verfahren ein lokales Maximum gefunden und dies kann in einigen Ausführungsformen zum Beenden des Suchalgorithmus mit feiner Unterteilung führen. Eine weitere Abbruchbedingung kann sein, wenn eine vorbestimmte Schwellwertzahl nicht eingehalten wird. Eine dritte Abbruchbedingung kann sein, wenn die Augenhöhe über einem vorbestimmten Schwellwert liegt. Wenn dies der Fall ist, erfüllt diese Augenhöhe die Anforderungen des Systems und jene Koeffizienten können von dem Prozessor 102 für die Verwendung ausgewählt werden. Eine dritte Abbruchbedingung kann erfüllt werden, wenn die Anzahl an Iterationen des Algorithmus eine gewisse Schwelle erreicht hat. Wenn eine Abbruchbedingung nicht erfüllt worden ist, geht das Verfahren zum Schritt 1430 zurück, um das Weiterschreiten in der Richtung des Punktes mit der höchsten Augenhöhe fortzusetzen. Wenn eine Abbruchbedingung erfüllt worden ist, geht das Verfahren weiter zum Schritt 1470.
  • Im Schritt 1470 führt der Prozessor 102 die Softwareanwendung so aus, dass die Koeffizienten mit der höchsten Augenhöhe aus all den Gruppen an Koeffizienten ausgewählt werden, die analysiert worden sind. Mindestens eine der Abbruchbedingungen, die zuvor beschrieben wurden, ist im Schritt 1460 erfüllt worden, und das System kann nun mit den anderen Hochlaufprozessen weitermachen. Idealerweise werden die Entzerrungskoeffizienten, die ausgewählt werden, die Fehlerrate für übertragene Signale reduzieren.
  • Zusammengefasst gilt: eine Vorgehensweise mit zwei Durchläufen kann eingesetzt werden, um eine Gruppe an optimalen Entzerrungskoeffizienten für eine Hochgeschwindigkeitsdatenübertragung zu ermitteln und auszuwählen. Der erste Durchlauf umfasst eine grob unterteilte Suche in einer Abbildung, die Punkte enthält, die eine Gruppe aus Entzerrungskoeffizienten an jedem Punkt umfasst. Das Ziel der grob unterteilten Suche besteht darin, eine Gruppe aus Entzerrungskoeffizienten auszuwählen, die für eine Hochgeschwindigkeitsdatenübertragung verwendet werden können, oder die als der Anfangspunkt für einen zweiten Durchlauf verwendet werden können. Die grob unterteilte Suche kann auf viele Weisen ausgeführt werden, wozu gehören: Unterteilen der Koeffizientenabbildung in eine Reihe von Gebieten und Prüfen eines einzelnen Punktes in jedem Gebiet oder iteratives Durchlaufen der Abbildung und Prüfen einer Teilgruppe der Punkte in der Abbildung. Die Prüfung, die ausgeführt wird, kann die Messung einer Augenhöhe beinhalten, die mit jeder Gruppe aus Entzerrungskoeffizienten verknüpft ist. Der zweite Durchlauf umfasst eine fein unterteilte Suche in der Abbildung. Die fein unterteilte Suche umfasst die Messung der Augenhöhe eines Anfangspunkts und der Augenhöhe jedes Punktes, der benachbart zum Anfangspunkt liegt. Der Suchalgorithmus läuft dann in der Abbildung in der Richtung des Punktes weiter, der die höchste Augenhöhe hat, und der Durchlauf geht weiter, solange die Augenhöhe weiter ansteigt. Wenn die Augenhöhe anfängt, kleiner zu werden, zentriert sich der Algorithmus erneut an dem Punkt mit der höchsten Augenhöhe und bewertet alle benachbarten Punkte. Der Algorithmus geht dann wieder weiter in der Richtung des Punktes mit der höchsten Augenhöhe und setzt die fein unterteilte Suche fort, bis eine Abbruchbedingung erfüllt ist. Sobald eine Abbruchbedingung erfüllt ist, wählt der Algorithmus die Entzerrungskoeffizienten mit der höchsten Augenhöhe aus und verwendet diese Koeffizienten für die Entzerrung von Übertragungen über die Hochgeschwindigkeitsdatenverbindung.
  • Vorteilhafterweise ergibt die Auswahl an Entzerrungskoeffizienten unter Anwendung der obigen Techniken eine schnellere Auswahl von Koeffizienten, die die Qualitätskriterien erfüllen, die von dem System gefordert werden. In einigen Systemen, etwa in Server-Rechnern, ist der Kanal lang und kann extrem verrauscht sein. Die Teilgruppe akzeptabler Koeffizienten ist daher sehr klein. Die Suchalgorithmen, die zuvor beschrieben sind, sind effizient für das Auffinden optimaler Koeffizienten, indem zunächst ein Gebiet der Abbildung an Entzerrungskoeffizienten ermittelt wird, in welchem optimale Koeffizienten liegen können, und indem dann eine gründliche Suche in diesem Gebiet ausgeführt wird, um die besten Koeffizienten zu ermitteln. In Systemen mit kurzem Kanal (etwa in Tischrechnern) kann eine große Anzahl von Punkten die Betriebsanforderungen erfüllen. Die hierin beschriebenen Algorithmen können rasch eine grob unterteilte Suche ausführen und können dann einen optimalen Punkt in der Abbildung unter Anwendung der fein unterteilten Suche ermitteln. Die fein unterteilte Suche kann dann in irgendeiner von acht möglichen Richtungen weitergehen, und dies hilft, rasch einen optimalen Punkt zu ermitteln. Ferner haben einige Systeme, etwa tragbare Computer, eingebettete Verbindungen, die nicht veränderbar sind, was bedeutet, dass erwartet wird, dass sich die Entzerrungskoeffizienten auch nicht ändern. Diese Offenbarung stellt Software bereit, die direkt Entzerrungskoeffizienten bekannter Qualität als Anfangspunkt für die Suche zuweist. Eine Suche, die an oder in der Nähe eines Punktes mit Qualität beginnt, kann häufig sehr rasch abgeschlossen werden.
  • Zu anderen Vorteilen gehört die Fähigkeit, die Suchalgorithmen in feiner Weise einzustellen, wie dies oben erläutert ist, indem die Schrittlängen, die Abbruchbedingungen oder andere Variablen geändert werden. Die zuvor erläuterten Algorithmen können sowohl legale als auch illegale Punkte behandeln. Die für die grob unterteilte Suche und/oder die fein unterteilte Suche zugewiesene Zeit kann ebenfalls eingestellt werden.
  • Eine Ausführungsform der Erfindung kann als ein Programmprodukt zur Verwendung in einem Computersystem realisiert werden. Das bzw. die Programme des Programmprodukts definieren Funktionen der Ausführungsformen (einschließlich der hierin beschriebenen Verfahren) und können in einer Vielzahl von computerlesbaren Speichermedien enthalten sein. Zu anschaulichen computerlesbaren Speichermedien gehören, ohne Einschränkung: (i) nicht-beschreibbare Speichermedien (beispielsweise Nur-Lese-Speichereinrichtungen in einem Computer, etwa Kompaktdisketten-Nur-Lese-Speicher-(CD-)Disketten, die von einem CD-Raum-Laufwerk lesbar sind, Flash-Speicher, Nur-Lese-Speicher-(ROM)Chips oder eine andere Art eines nicht-flüchtigen Halbleiterspeichers), auf denen Information permanent gespeichert ist; und (ii) beschreibbare Speichermedien (beispielsweise Disketten in einem Diskettenlaufwerk oder ein Festplattenlaufwerk oder eine andere Art eines Halbleiterspeichers mit wahlfreiem Zugriff), auf welchen änderbare Information gespeichert ist.
  • Die Erfindung ist mit Bezug zu speziellen Ausführungsformen beschrieben. Der Fachmann erkennt jedoch, dass diverse Modifizierungen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Grundgedanken und dem Schutzbereich der Erfindung, wie sie in den angefügten Patentansprüchen angegeben ist, abzuweichen. Die vorhergehende Beschreibung und die Zeichnungen sind daher in einem anschaulichen Sinne anstatt in einem beschränkenden Sinne zu betrachten.

Claims (10)

  1. Ein computerimplementiertes Verfahren zur Analyse von Entzerrungskoeffizienten für einen Hochgeschwindigkeitsbus, wobei das Verfahren umfasst: Auswählen eines Anfangspunkts in einer Abbildung aus Entzerrungskoeffizienten, wobei jeder Punkt in der Abbildung eine andere Gruppe aus Entzerrungskoeffizienten umfasst; Messen einer mit dem Anfangspunkt verknüpften Augenhöhe eines unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendeten Signals, und einer Augenhöhe, die mit jedem benachbarten Punkt relativ zu dem Anfangspunkt in der Abbildung verknüpft ist, wobei die Augenhöhe, die mit einem benachbarten Punkt verknüpft ist, auf einem Signal beruht, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten übertragen wurde, die mit dem benachbarten Punkt verknüpft ist; und Weiterschreiten in der Abbildung in einer ersten Richtung von dem Anfangspunkt zu dem benachbarten Punkt, der mit der größten Augenhöhe verknüpft ist, wobei die Augenhöhe, die mit dem benachbarten Punkt verknüpft ist, größer oder gleich der Augenhöhe ist, die mit dem Anfangspunkt verknüpft ist.
  2. Das Verfahren nach Anspruch 1, das ferner umfasst: Kennzeichnen des benachbarten Punkts, der mit der größten Augenhöhe verknüpft ist, als einen aktuell durchlaufenen Punkt; und Weiterschreiten in der Abbildung in der ersten Richtung von dem aktuell durchlaufenen Punkt zu einem benachbarten Punkt relativ zu dem aktuell durchlaufenen Punkt in der Abbildung, wobei eine Augenhöhe, die mit dem benachbarten Punkt verknüpft ist, größer oder gleich ist der Augenhöhe, die mit dem aktuell durchlaufenen Punkt verknüpft ist.
  3. Das Verfahren nach Anspruch 2, wobei die Schritte der Kennzeichnung und des Weiterschreitens in der Abbildung in der ersten Richtung wiederholt werden, bis ein aktuell durchlaufener Punkt in der Abbildung erreicht ist, an welchem eine Augenhöhe, die mit einem benachbarten Punkt relativ zu dem aktuell durchlaufenen Punkt in der Abbildung verknüpft ist, kleiner ist als die Augenhöhe, die mit dem aktuell durchlaufenen Punkt verknüpft ist.
  4. Das Verfahren nach Anspruch 2, das ferner umfasst: Messen einer Augenhöhe, die mit jedem benachbarten Punkt relativ zu dem aktuell durchlaufenen Punkt in der Abbildung verknüpft ist, wobei die Augenhöhe, die mit einem benachbarten Punkt verknüpft ist, auf einem Signal beruht, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendet wurde, die mit dem benachbarten Punkt verknüpft ist; und Weiterschreiten in der Abbildung in einer zweiten Richtung von dem aktuell durchlaufenen Punkt zu dem benachbarten Punkt, der mit der größten Augenhöhe verknüpft ist, wobei die Augenhöhe, die mit dem benachbarten Punkt verknüpft ist, größer oder gleich der Augenhöhe ist, die mit dem aktuell durchlaufenen Punkt verknüpft ist.
  5. Das Verfahren nach Anspruch 2, wobei die Schritte der Kennzeichnung und des Weiterschreitens in der Abbildung in der ersten Richtung wiederholt werden, bis eine Abbruchbedingung erfüllt ist.
  6. Das Verfahren nach Anspruch 5, wobei die Abbruchbedingung umfasst: Abbrechen, wenn eine gemessene Augenhöhe über einem vorbestimmten Schwellwert liegt; Abbrechen, wenn eine vorbestimmte Anzahl an Punkten ausgesucht worden ist; Abbrechen, wenn eine vorbestimmte Zeitgrenze überschritten ist; oder Abbrechen, wenn jeder Punkt benachbart zu dem aktuell durchlaufenen Punkt eine kleinere Augenhöhe als die Augenhöhe hat, die mit dem aktuell durchlaufenen Punkt verknüpft ist.
  7. Das Verfahren nach Anspruch 1, wobei Auswählen des Anfangspunkts umfasst: Aufteilen der Abbildung in mehrere Gebiete; Messen der Augenhöhe eines einzelnen Punkts in jedem Gebiet; und Auswählen des Punkts mit der höchsten Augenhöhe als den Anfangspunkt.
  8. Das Verfahren nach Anspruch 1, wobei Auswählen des Anfangspunkts umfasst: iteratives Weiterschreiten in der Abbildung aus Entzerrungskoeffizienten zu mindestens einem neuen Punkt; und Prüfen der Gruppe aus Entzerrungskoeffizienten, die durch den mindestens einen neuen Punkt repräsentiert ist.
  9. Das Verfahren nach Anspruch 8, wobei der Anfangspunkt ausgewählt wird, wenn eine Abbruchbedingung erfüllt worden ist.
  10. Eine Recheneinrichtung mit: einem Prozessor; und einem Speicher, der mit dem Prozessor verbunden ist und eine Softwareanwendung enthält, die, wenn sie von dem Prozessor ausgeführt wird, den Prozessor veranlasst, um: einen Anfangspunkt in einer Abbildung aus Entzerrungskoeffizienten auszuwählen, wobei jeder Punkt in der Abbildung eine unterschiedliche Gruppe aus Entzerrungskoeffizienten umfasst; eine Augenhöhe eines Signals, das unter der Verwendung der Gruppe aus Entzerrungskoeffizienten, die mit dem Anfangspunkt verknüpft ist, gesendet wurde, und eine Augenhöhe zu messen, die mit jedem benachbarten Punkt relativ zu dem Anfangspunkt in der Abbildung verknüpft ist, wobei die Augenhöhe, die mit einem benachbarten Punkt verknüpft ist, auf einem Signal beruht, das unter Anwendung der Gruppe aus Entzerrungskoeffizienten gesendet wurde, die mit dem benachbarten Punkt verknüpft ist; und in der Abbildung in einer ersten Richtung von dem Anfangspunkt zu dem benachbarten Punkt weiter zu schreiten, der mit der größten Augenhöhe verknüpft ist, wobei die Augenhöhe, die mit dem benachbarten Punkt verknüpft ist, größer oder gleich ist zu der Augenhöhe, die mit dem Anfangspunkt verknüpft ist.
DE102013017985.8A 2012-12-20 2013-11-29 Suchalgorithmus für Entzerrungskoeffizienten Pending DE102013017985A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/722,240 US9886402B2 (en) 2012-12-20 2012-12-20 Equalization coefficient search algorithm
US13/722,240 2012-12-20

Publications (1)

Publication Number Publication Date
DE102013017985A1 true DE102013017985A1 (de) 2014-06-26

Family

ID=50878786

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013017985.8A Pending DE102013017985A1 (de) 2012-12-20 2013-11-29 Suchalgorithmus für Entzerrungskoeffizienten

Country Status (4)

Country Link
US (1) US9886402B2 (de)
CN (1) CN103885907A (de)
DE (1) DE102013017985A1 (de)
TW (1) TW201442467A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111384905A (zh) * 2018-12-29 2020-07-07 鹤壁天海电子信息系统有限公司 调相器的控制方法及装置、抵消电路、前馈功率放大器

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
CN105282065B (zh) * 2014-07-18 2020-09-15 特克特朗尼克公司 用于提供高速串行数据链路的最优dfe的方法和系统
US20160182257A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Data rate detection to simplify retimer logic
US10002101B2 (en) * 2015-03-06 2018-06-19 Apple Inc. Methods and apparatus for equalization of a high speed serial bus
US10423545B2 (en) 2015-07-08 2019-09-24 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
US10241937B2 (en) 2015-07-08 2019-03-26 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
US10114788B2 (en) 2015-07-08 2018-10-30 International Business Machines Corporation Adjusting an optimization parameter to customize a signal eye for a target chip on a shared bus
CN106817258A (zh) * 2017-01-13 2017-06-09 郑州云海信息技术有限公司 一种选取及验证pcie链路均衡参数的方法及装置
CN109308360A (zh) * 2017-07-27 2019-02-05 中兴通讯股份有限公司 信道参数寻找方法、装置、存储介质和计算机设备
KR102433040B1 (ko) * 2017-12-12 2022-08-18 삼성전자주식회사 메모리 모듈, 메모리 시스템 및 메모리 모듈의 동작 방법
CN109376103B (zh) * 2018-06-19 2021-10-19 华为技术有限公司 快速均衡的方法、芯片和通信系统
CN109388607A (zh) * 2018-10-25 2019-02-26 江苏华存电子科技有限公司 适用于外设互联标准PCIe传送端系数均衡机制的方法
US10728062B1 (en) * 2019-02-27 2020-07-28 Nvidia Corporation Techniques for improving high-speed communications in a computing system
US11061849B2 (en) * 2019-10-17 2021-07-13 Dell Products L.P. Adaptive transmitter preset mechanism in PCIe link equalization procedure
CN112737713B (zh) * 2020-12-30 2023-12-19 海光信息技术股份有限公司 PCIe链路均衡系数自动调节方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149755A1 (en) * 2002-02-06 2003-08-07 Emek Sadot Client-controlled load balancer
US7386427B2 (en) * 2003-09-18 2008-06-10 Wyatt Technology Corporation Method for correcting the effects of interdetector band broadening
US7295618B2 (en) * 2004-06-16 2007-11-13 International Business Machines Corporation Automatic adaptive equalization method and system for high-speed serial transmission link
US7630466B2 (en) * 2005-11-15 2009-12-08 Broadcom Corporation Search engine for a receive equalizer
CN1983832A (zh) * 2006-05-01 2007-06-20 华为技术有限公司 一种确定滤波器系数的方法和系统
US20080094107A1 (en) * 2006-10-20 2008-04-24 Cortina Systems, Inc. Signal magnitude comparison apparatus and methods
JP2008243138A (ja) * 2007-03-29 2008-10-09 Hitachi Ltd ストレージシステム及びデータ復元方法
US20090154626A1 (en) * 2007-12-15 2009-06-18 Anderson Warren R Continuous receiver clock alignment and equalization optimization
US8228972B2 (en) * 2008-06-04 2012-07-24 Stmicroelectronics, Inc. SERDES with jitter-based built-in self test (BIST) for adapting FIR filter coefficients
US8472513B2 (en) * 2009-01-14 2013-06-25 Lsi Corporation TX back channel adaptation algorithm
US8705602B1 (en) * 2009-10-16 2014-04-22 Altera Corporation Equalizer circuitry with selectable tap positions and coefficients
US8644369B1 (en) * 2009-12-01 2014-02-04 Pmc-Sierra, Inc. Equalizer adaptation for heavily compressed or clipped communications signals
CN101820259B (zh) * 2010-02-08 2013-04-24 成都市华为赛门铁克科技有限公司 调节信号幅度的方法及装置
EP2378727A1 (de) * 2010-04-14 2011-10-19 Texas Instruments Limited Kanalentzerrung mit anwendungsspezifischer Digitalsignalverarbeitung in digitalen Hochgeschwindigkeitsübertragungssystemen
US8626474B2 (en) * 2010-04-19 2014-01-07 Altera Corporation Simulation tool for high-speed communications links
US8737459B2 (en) * 2011-07-08 2014-05-27 Texas Instruments Incorporated Transmitter equalizer optimization
US8942334B1 (en) * 2011-07-13 2015-01-27 Pmc-Sierra, Inc. Parallel replica CDR to correct offset and gain in a baud rate sampling phase detector
US8989325B2 (en) * 2012-01-30 2015-03-24 Intel Corporation Multi-mode frequency domain equalization with adaptation to varying channel conditions
US8737549B2 (en) * 2012-04-30 2014-05-27 Lsi Corporation Receiver having limiter-enhanced data eye openings
US8873615B2 (en) * 2012-09-19 2014-10-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and controller for equalizing a received serial data stream
US9235543B2 (en) * 2012-11-26 2016-01-12 International Business Machines Corporation Systems for signal detection
US9143369B2 (en) * 2013-03-15 2015-09-22 Intel Corporation Adaptive backchannel equalization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111384905A (zh) * 2018-12-29 2020-07-07 鹤壁天海电子信息系统有限公司 调相器的控制方法及装置、抵消电路、前馈功率放大器
CN111384905B (zh) * 2018-12-29 2023-08-22 鹤壁天海电子信息系统有限公司 调相器的控制方法及装置、抵消电路、前馈功率放大器

Also Published As

Publication number Publication date
US20140181339A1 (en) 2014-06-26
CN103885907A (zh) 2014-06-25
TW201442467A (zh) 2014-11-01
US9886402B2 (en) 2018-02-06

Similar Documents

Publication Publication Date Title
DE102013018138A1 (de) Ein Ansatz mit mehreren Durchgängen zur Ausführung eines Kanalentzerrungstrainings
DE102013017985A1 (de) Suchalgorithmus für Entzerrungskoeffizienten
DE102012224342A1 (de) Vorrichtung und verfahren zur leistungssteuerung für die v2x- kommunikation
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE10319118A1 (de) Verfahren und Vorrichtung zur Parametrisierten Schärfung und Glättung
DE102013020808A1 (de) Effiziente Autostereo-Unterstützung unter Verwendung von Anzeigesteuerungsfenster
DE112006001132B4 (de) Regulieren der Taktung zwischen einem Abtastsignal und einem Datensignal
DE102013213047A1 (de) System, Verfahren und Computerprogrammprodukt zum Testen von Vorrichtungsparametern
DE102013212482A1 (de) System, Verfahren und Computerprogrammprodukt zum Bestimmen, ob Parameterkonfigurationen vorbestimmte Kriterien erfüllen
DE102013213094A1 (de) System, Verfahren und Computer-Programm-Produkt zum Berechnen von Einstellungen für ein Gerät, unter Benutzung von einer oder mehreren Einschränkungen
DE112015002650T5 (de) Systeme und Verfahren zur prädiktiven Auslieferung von Inhalten mit hohen Bitraten zur Wiedergabe
DE112006003503T5 (de) Mehrfachanschluss-Speicher mit Banksätzen zugeordneten Anschlüssen
DE102019117800A1 (de) Rechensystem und Verfahren zum Betreiben eines Rechensystems
DE102013213048A1 (de) System, Verfahren und Computerprogrammprodukt zum Bestimmen von Einstellungen für eine Vorrichtung
DE112019004997T5 (de) Vorrichtungen, Systeme und Verfahren zum Auswählen von Übertragungsfrequenzen für Kommunikationsprotokolle
DE102015203202A1 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE112022001059T5 (de) Verringerte bandbreiten-inanspruchnahme über generative adversarial networks
DE102014206914A1 (de) Ein stereoskopisches Aufbereitungssystem
DE112012005046B4 (de) Koordinieren von Schreiboperationsabfolgen in einem Datenspeichersystem
DE112012006131T5 (de) Dynamisch adaptive Frequenzanpassung
DE102012005054A1 (de) Verfahren, Mobilgerät und Infotainmentsystem zum Projizieren einer Benutzeroberfläche auf einen Bildschirm
DE112015006287T5 (de) Informationsverarbeitungs-Vorrichtung
DE102013021045A1 (de) Ausführung von Objekterkennungsoperationen mittels einer grafischen Verarbeitungseinheit
DE102021131290A1 (de) Verfahren zur optimierung drahtloser kommunikation durch dynamische steuerung der anstiegsgeschwindigkeit eines drahtgebundenen kommunikationskanals
DE102013020813B4 (de) Technik zur Optimierung der Phase eines Datensignals, das über eine Kommunikationsverbindung gesendet wird

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: VERSCHT, THOMAS K., DIPL.-PHYS.(UNIV.), DE

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication