DE112020006807B4 - System und verfahren zur driftkompensation für datenabtaster - Google Patents

System und verfahren zur driftkompensation für datenabtaster Download PDF

Info

Publication number
DE112020006807B4
DE112020006807B4 DE112020006807.2T DE112020006807T DE112020006807B4 DE 112020006807 B4 DE112020006807 B4 DE 112020006807B4 DE 112020006807 T DE112020006807 T DE 112020006807T DE 112020006807 B4 DE112020006807 B4 DE 112020006807B4
Authority
DE
Germany
Prior art keywords
data
value
sampler
drift compensation
speculative
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.)
Active
Application number
DE112020006807.2T
Other languages
English (en)
Other versions
DE112020006807T5 (de
Inventor
Peter John Waldemar Graumann
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112020006807T5 publication Critical patent/DE112020006807T5/de
Application granted granted Critical
Publication of DE112020006807B4 publication Critical patent/DE112020006807B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0054Detection of the synchronisation error by features other than the received signal transition
    • H04L7/0058Detection of the synchronisation error by features other than the received signal transition detection of error based on equalizer tap values
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03878Line equalisers; line build-out devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03012Arrangements for removing intersymbol interference operating in the time domain
    • H04L25/03019Arrangements for removing intersymbol interference operating in the time domain adaptive, i.e. capable of adjustment during data reception
    • H04L25/03057Arrangements for removing intersymbol interference operating in the time domain adaptive, i.e. capable of adjustment during data reception with a recursive structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/06Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection
    • H04L25/061Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection providing hard decisions only; arrangements for tracking or suppressing unwanted low frequency components, e.g. removal of dc offset
    • H04L25/063Setting decision thresholds using feedback techniques only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0079Receiver details
    • H04L7/0087Preprocessing of received signal for synchronisation, e.g. by code conversion, pulse generation or edge detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0334Processing of samples having at least three levels, e.g. soft decisions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)

Abstract

Verfahren zur Driftkompensation für Datenabtaster in einem Serialisierer-/Deserialisierer-Empfänger (SerDes-Empfänger), das Verfahren umfassend:Empfangen, an einer Driftkompensationsmaschine, von Abweichungsdatenwerten aus einer Vielzahl von Datenwertselektoren, wobei jeder der Vielzahl von Datenwertselektoren mit einem von einer Vielzahl von Datenabtasterpaaren eines spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in einem SerDes-Empfänger gekoppelt ist; undErzeugen eines Driftkompensationswertes für jeden Datenabtaster der Datenabtasterpaare durch die Driftkompensationsmaschine auf der Grundlage der von jedem der mehreren Datenwertselektoren empfangenen Abweichungsdatenwerte.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht die Priorität für die am 20. April 2020 eingereichte vorläufige US-Patentanmeldung mit der Seriennummer 63/012.586 und die am 16. September 2020 eingereichte nicht vorläufige US-Patentanmeldung mit der Seriennummer 17/022.480 , deren jeweiliger Inhalt durch Bezugnahme hierin in vollem Umfang aufgenommen wird.
  • HINTERGRUND DER ERFINDUNG
  • Analoge Serialisierer-/Deserialisator-Empfänger (SerDes-Empfänger), die in Hochgeschwindigkeits-Kommunikationssystemen verwendet werden, sind dazu ausgelegt, eine analoge Wellenform zu untersuchen und dann die abgetasteten Daten zuverlässig zu erfassen. SerDes-Empfänger verwenden mehrere Datenabtaster, wie 1-Bit-Analog-DigitalWandler, um regelmäßig eingehende analoge Signale zu untersuchen und die Abtastwerte in digitale Werte umzuwandeln. Während des Vorgangs wird der Abtastpegel jedes dieser Datenabtaster bei der Inbetriebnahme kalibriert und kann anschließend während des laufenden Verkehrs nicht mehr neu kalibriert werden. Während des Betriebs unterliegen die Datenabtaster des SerDes-Empfängers jedoch Spannung und Temperatur (VT), die zu einer Drift in dem Abtastpegel der Datenabtaster führen können. Die Drift des Abtastpegels der Datenabtaster aufgrund der Änderung der VT-Bedingungen ist eine potenzielle Quelle unerwünschter Bitfehler. Die Einstellung oder Trimmung des Abtastpegels der Datenabtaster ist erforderlich, um die Empfängerleistung während dynamischer Änderungen der VT-Bedingungen zu optimieren.
  • Es ist im Stand der Technik bekannt, doppelte Empfängerschaltlogiken bereitzustellen, wobei ein Empfänger den laufenden Verkehr verarbeitet, während der andere Empfänger Standard-Kalibrierungsprozeduren durchführt, und die Funktion dieser beiden Empfänger periodisch auszutauschen. Die Verwendung doppelter Empfängerschaltlogiken erfordert jedoch einen signifikanten Bereich und erhöht den Energieverbrauch und ist daher in vielen Anwendungen keine praktikable Lösung. Die vollständige oder teilweise redundante Aufnahme von redundanten Empfängern in einer SerDes-Vorrichtung ist aus einer Energie- oder Berichsperspektive nicht akzeptabel.
  • Darüber hinaus ist es im Stand der Technik bekannt, Feedback für vorwärts gerichtete Fehlerkorrektur (FEC) zu verwenden, um Datenabtaster VT-Driftfehler zu korrigieren. Unter Verwendung von FEC-Feedback, wenn ein Datenabtaster auf einen Abtastort gedriftet ist, der zu Bitfehlern im empfangenen Datenstrom führt, werden die Bitfehler durch die FEC erkannt und Korrekturstatistiken werden für jeden Datenabtaster gesammelt. Die Korrekturstatistiken werden dann verwendet, um den VT-Driftzustand des Datenabtasters zu korrigieren. Allerdings sind einige Standards, einschließlich PCI Express (PCIe) GenS, von der Peripheral Component Interconnect Special Interest Group (PCI-SIG) von Beaverton, ODER, ohne die Verwendung von FEC ausgelegt, wodurch die Fähigkeit, FEC zu verwenden, den Datenabtaster VT-Drift zu korrigieren. Die Drift nicht zu kompensieren, wie es derzeit in vielen Empfängern der Fall ist, ist bei modernen Datenraten nicht praktikabel.
  • Die US 2019/0207740 offenbart ein Verfahren zur Driftkompensation, das einen Live-Daten-Ansatz für die Offset-Kalibrierung von Probenehmern bietet, z. B. für Spannungs- oder Temperaturdrift.
  • Dementsprechend ist es im Stand der Technik ein verbessertes System und Verfahren zum Einstellen des Abtastpegels von Datenabtastern in einem SerDes-Empfänger als Reaktion auf dynamische Betriebsbedingungen, wie Änderungen der Spannung und Temperatur während des Betriebs des Empfängers.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In verschiedenen Ausführungsformen stellt die vorliegende Erfindung ein System und Verfahren zur Driftkompensation für Datenabtaster in einem Serialisierer-/Deserialisierer-Empfänger (SerDes-Empfänger) bereit, wobei die Datenabtasterdrift auf die Drift oder Temperatur (VT) zurückzuführen sein kann. Das Reduzieren der Datenabtasterdrift reduziert die Bitfehler am SerDes-Empfänger.
  • In einer Ausführungsform schließt das Verfahren der vorliegenden Erfindung den Empfang von Abweichungsdatenwerten von einer Vielzahl von Datenwertselektoren in einer Driftkompensationsmaschine ein, wobei jeder der Vielzahl von Datenwertselektoren mit einem von einer Vielzahl von Datenabtasterpaaren eines spekulativen entscheidungsrückgekoppelten Entzerres (DFE) in einem SerDes-Empfänger verbunden ist. Ferner schließt das Verfahren ein, dass die Driftkompensationsmaschine einen Driftkompensationswert für jeden der Datenabtaster auf der Grundlage der von jedem der mehreren Datenwertselektoren empfangenen Abweichungsdatenwerte erzeugt. In der vorliegenden Erfindung sind die Abweichungsdatenwerte die spekulativen Datenwerte, die vom Datenwertselektor nicht ausgewählt wurden, weil der angenommene Wert des zuvor empfangenen Bits, der zur Bestimmung des spekulativen Datenwerts verwendet wurde, sich nachträglich als falsch erwiesen hat.
  • In einer besonderen Ausführungsform wird der Driftkompensationswert erzeugt, indem ein Ein-Null-Verzerrungswert für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte bestimmt wird, ein Ein-Null-Verzerrungszielwert unter Verwendung der Ein-Null-Verzerrungswerte für jeden Datenabtaster bestimmt wird, der von der Driftkompensationsmaschine bestimmt wurde, und dann der Driftkompensationswert für jeden der Datenabtaster auf der Grundlage des Ein-Null-Verzerrungszielwertes und des Ein-Null-Verzerrungswertes jedes Datenabtasters bestimmt wird.
  • Ferner schließt das Verfahren ein, dass die Abweichungsdatenwerte, die keine nützlichen Informationen für die Bestimmung des Ein-Null-Verzerrungswertes liefern, vor der Bestimmung des Ein-Null-Verzerrungswertes identifiziert und entfernt werden.
  • Die vorliegende Erfindung stellt außerdem ein System zur Driftkompensation für Datenabtaster in einem Serializer-/Deserializer-Empfänger (SerDes-Empfänger) bereit. Das System schließt eine Vielzahl von Datenwertselektoren ein, wobei jeder der Vielzahl von Datenwertselektoren mit einem einer Vielzahl von Datenabtasterpaaren eines spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in einem SerDes-Empfänger gekoppelt ist, wobei die Vielzahl von Datenwertselektoren Abweichungsdatenwerte aus spekulativen Datenwerten, die von den Datenabtasterpaaren bereitgestellt werden, identifizieren. Ferner schließt das System eine Driftkompensationsmaschine ein, die mit der Vielzahl von Datenwertselektoren gekoppelt ist, wobei die Driftkompensationsmaschine die Abweichungsdatenwerte von der Vielzahl von Datenwertselektoren empfängt und einen Driftkompensationswert für jeden der Datenabtaster jedes Datenabtasterpaares auf der Grundlage der Abweichungsdatenwerte bestimmt, die von jedem der Vielzahl von Datenwertselektoren empfangen werden.
  • In einer weiteren Ausführungsform ist das System ferner so konfiguriert, dass es einen Ein-Null-Verzerrungswert für jeden Datenabtaster der mehreren Datenabtasterpaare des spekulativen DFE unter Verwendung der Abweichungsdatenwerte bestimmt, einen Ein-Null-Verzerrungszielwert unter Verwendung der für jeden Datenabtaster bestimmten Ein-Null-Verzerrungswerte bestimmt und den Driftkompensationswert für jeden der Datenabtaster auf der Grundlage des Ein-Null-Verzerrungszielwerts und des Ein-Null-Verzerrungswerts jedes Datenabtasters bestimmt.
  • In einer besonderen Ausführungsform schließt jeder der Datenwertselektoren des Systems eine erste Multiplexer-Schaltung zur Identifizierung von Datenwerten aus spekulativen Datenwerten eines seriellen Bitstroms, die von einem mit dem Datenwertselektor gekoppelten Datenabtastpaar empfangen werden, und einem vorhergehenden Bitwert des seriellen Bitstroms und eine zweite Multiplexerschaltung zur Identifizierung der Abweichungsdatenwerte aus den spekulativen Datenwerten des seriellen Bitstroms ein, die von dem mit dem Datenwertselektor gekoppelten Datenabtastpaar empfangen werden, und dem vorhergehenden Bitwert des seriellen Bitstroms.
  • In einer anderen Ausführungsform schließt ein System zur Driftkompensation für Datenabtaster in einem Serializer-/Deserializer-Empfänger (SerDes-Empfänger) einen spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) des SerDes-Empfängers ein, wobei der spekulative DFE eine Vielzahl von Datenabtasterpaaren und einen mit jedem der Vielzahl von Datenabtasterpaaren gekoppelten Datenabtaster-Selektor umfasst. Ferner schließt das System eine Driftkompensationsmaschine ein, die mit dem SerDes-Empfänger gekoppelt ist, wobei die Driftkompensationsmaschine Abweichungsdatenwerte von den Datenabtaster-Selektoren empfängt und einen Driftkompensationswert für jeden Datenabtaster des DFE bereitstellt, wobei der Driftkompensationswert auf den spekulativen Datenwerten basiert, die von den Datenabtaster-Selektoren empfangen werden. In diesem System ist der SerDes-Empfänger so konfiguriert, dass er die Abtastspannung jedes der Datenabtaster der mehreren Datenabtasterpaare des DFE auf der Grundlage des Driftkompensationswertes von der Driftkompensationsmaschine anpasst.
  • Dementsprechend bietet die vorliegende Erfindung in verschiedenen Ausführungsformen ein verbessertes System und Verfahren zur Anpassung des Abtastpegels von Datenabtastern in einem SerDes-Empfänger als Reaktion auf eine Abtastpegel-Drift, die sich aus dynamischen Betriebsbedingungen ergibt, wie z. B. Spannungs- und Temperaturänderungen während des Vorgangs des Empfängers.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen, die in diese Patentschrift aufgenommen wurden und einen Bestandteil dieser Patentschrift bilden, veranschaulichen verschiedene Ausführungsformen und dienen zusammen mit der Beschreibung der Ausführungsformen der Erläuterung von nachstehend erörterten Prinzipien. Die Zeichnungen, auf die in dieser Kurzbeschreibung Bezug genommen wird, sind nicht als maßstabsgetreu zu verstehen, es sei denn, dies ist ausdrücklich vermerkt.
    • 1 ist ein Blockdiagramm, das ein System zur Driftkompensation in einem SerDes-Empfänger veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockdiagramm, das einen spekulativen DFE und eine Driftkompensationsmaschine gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
    • 3 ist ein schematisches Diagramm, das den Vorgang der Datenselektoren des spekulativen DFE veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 4 ist ein Diagramm, das ein Empfängerauge und den zugehörigen Abtastpegel für Datenwerte veranschaulicht, wie er in der Technik allgemein bekannt ist.
    • 5A ist ein Diagramm, das ein Empfängerauge und Abtastpegel veranschaulicht, um zu bestimmen, ob die Abweichungsdatenwerte als nützlich für die Bestimmung der Driftkompensationswerte angesehen werden, wobei der logische Wert des zuvor empfangenen Bits eine 1 ist und der logische Wert des aktuell abgetasteten Bits eine logische 1 ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5B ist ein Diagramm, das ein Empfängerauge und Abtastpegel veranschaulicht, um zu bestimmen, ob die Abweichungsdatenwerte als nützlich für die Bestimmung der Driftkompensationswerte angesehen werden, wobei der logische Wert des zuvor empfangenen Bits eine 1 ist und der logische Wert des aktuell abgetasteten Bits eine logische 0 ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5C ist ein Diagramm, das ein Empfängerauge und Abtastpegel veranschaulicht, um zu bestimmen, ob die Abweichungsdatenwerte als nützlich für die Bestimmung der Driftkompensationswerte angesehen werden, wobei der logische Wert des zuvor empfangenen Bits eine 0 ist und der logische Wert des aktuell abgetasteten Bits eine logische 1 ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5D ist ein Diagramm, das ein Empfängerauge und Abtastpegel veranschaulicht, um zu bestimmen, ob die Abweichungsdatenwerte als nützlich für die Bestimmung der Driftkompensationswerte angesehen werden, wobei der logische Wert des zuvor empfangenen Bits eine 0 ist und der logische Wert des aktuell abgetasteten Bits eine logische 0 ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Flussdiagramm, das ein Verfahren zur Driftkompensation in einem SerDes-Empfänger veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 7 ist ein Flussdiagramm, das ein Verfahren zur Identifizierung und Entfernung von Abweichungsdatenwerten veranschaulicht, die keine nützlichen Informationen für die Bestimmung der Driftkompensationswerte liefern, gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 8 ist ein Flussdiagramm, das ein Verfahren zur Bestimmung eines Ein-Null-Verzerrungswertes für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte veranschaulicht, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es wird nun ausführlich auf verschiedene Ausführungsformen Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen veranschaulicht sind. Obwohl hierin verschiedene Ausführungsformen erörtert werden, versteht es sich, dass diese nicht einschränkend sein sollen. Vielmehr sollen die dargestellten Ausführungsformen Alternativen, Modifikationen und Äquivalente abdecken, die innerhalb des Geistes und des Schutzumfangs der durch die verschiedenen durch die beiliegenden Ansprüche definierten Ausführungsformen eingeschlossen sein können. Des Weiteren werden in dieser detaillierten Beschreibung der Erfindung zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis bereitzustellen. Die Ausführungsformen können jedoch auch ohne eines oder mehrere dieser spezifischen Details umgesetzt werden. In anderen Fällen wurden hinlänglich bekannte Verfahren, Abläufe, Komponenten und Schaltungen nicht ausführlich beschrieben, um Gesichtspunkte der beschriebenen Ausführungsformen nicht unnötig zu verunklaren.
  • Es versteht sich, dass, obwohl die Begriffe „erste“, „zweite“, „dritte“ usw. hierin verwendet werden können, um verschiedene Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte zu beschreiben, diese Elemente, Komponenten, Bereiche, Schichten und/oder Abschnitte nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element, eine Komponente, einen Bereich, eine Schicht oder einen Abschnitt von einem anderen Bereich, einer anderen Schicht oder einem anderen Abschnitt zu unterscheiden. Somit könnte ein erstes Element, eine erste Komponente, ein erster Bereich, eine erste Schicht oder ein erster Abschnitt, die nachstehend erörtert werden, auch als ein zweites Element, eine zweite Komponente, ein zweiter Bereich, eine zweite Schicht oder ein zweiter Abschnitt bezeichnet werden, ohne von den Lehren der vorliegenden Erfindung abzuweichen.
  • Sofern nicht anders definiert, haben alle hierin verwendeten Begriffe (einschließlich technischer und wissenschaftlicher Begriffe) die gleiche Bedeutung, wie sie von einem Fachmann auf dem Gebiet, zu dem die vorliegende Erfindung gehört, gemeinhin verstanden wird. Ferner versteht es sich, dass Begriffe, wie diejenigen, die in allgemein gebräuchlichen Wörterbüchern definiert sind, so interpretiert werden sollten, dass sie eine Bedeutung aufweisen, die mit ihrer Bedeutung im Kontext des relevanten Gebiets übereinstimmt, und nicht in einem idealisierten oder übermäßig formalen Sinne interpretiert werden, es sei denn, dass diese hierin ausdrücklich so definiert sind.
  • Ein SerDes-Empfänger schließt eine Vielzahl von Datenabtastern ein. Jeder Datenabtaster des SerDes-Empfängers wird auf eine gegebene Abtastspannung oder einen Abtastpegel eingestellt. Jedes Eingangssignal, das an einem Datenabtaster empfangen wird und höher ist als der Abtastpegel des Datenabtasters zum Zeitpunkt der Abtastung, wird als logische „1“ gewertet, während jedes Eingangssignal, das niedriger ist als der Abtastpegel des Datenabtasters zum Zeitpunkt der Abtastung, als logische „0“ gewertet wird. Die ideale Abtastspannung bzw. der ideale Abtastpegel für jeden Abtaster wird nach sorgfältigen Kalibrierungsschritten ermittelt, die in der Regel während des Startvorgangs des SerDes-Empfängers und vor jeglichem Datenverkehr zum Empfänger durchgeführt werden. Solche Vorgänge werden durch Änderungen der angelegten Versorgungsspannung oder der Betriebstemperatur des Empfängers beeinträchtigt. Solche Kalibrierungsvorgänge werden durch Änderungen der angelegten Versorgungsspannung oder der Betriebstemperatur des Empfängers beeinträchtigt.
  • Gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung werden ein verbessertes System und Verfahren zur Anpassung des Abtastpegels von Datenabtastern in einem SerDes-Empfänger als Reaktion auf dynamische Spannungs- und Temperaturänderungen während des Betriebs des Empfängers bereitgestellt. Insbesondere stellt die vorliegende Erfindung ein System und Verfahren zur Driftkorrektur in einem SerDes-Empfänger unter Verwendung des spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) des Empfängers bereit. Da die vorliegende Erfindung die vorhandene spekulative DFE des Empfängers nutzt, sind die Kosten für die Implementierung des Driftkompensationsverfahrens der vorliegenden Erfindung in Bezug auf Bereich, Energie und Komplexität sehr gering.
  • Bei Hochgeschwindigkeits-SerDes-Implementierungen besteht ein verlustbehafteter Kommunikationskanal zwischen dem Sender und dem Empfänger, und bei hohen Datenraten kann der empfangene Datenstrom stark verzerrt sein, sodass eine Entzerrung erforderlich ist, bevor die empfangenen Daten effektiv abgetastet werden können. Eine wirksame Möglichkeit zum Ausgleich des Kanalverlusts und zum Negieren der Auswirkung von Intersymbolinterferenz (ISI) besteht darin, einen entscheidungsrückgekoppelten Entzerrer (DFE) im Empfänger zu implementieren.
  • Ein DFE verwendet zuvor entschiedene Bits oder Entscheidungen über vergangene Abtastungen, um den Kanal zu entzerren. In einem Empfänger-DFE werden die zuvor entschiedenen Bits mit gewichteten Abgriffskoeffizienten zurückgeführt und zum empfangenen Eingangssignal hinzugefügt. Die gewichteten Abgriffskoeffizienten werden so angepasst, dass sie mit den Kanaleigenschaften übereinstimmen. Dadurch wird die ISI von den vorherigen Bits im Datenstrom unterdrückt und die Datenabtaster können die Bits mit einer niedrigen Bitfehlerrate erkennen. Eine große Herausforderung bei der Entwicklung von DFEs, die mit mehreren Gigabit pro Sekunde arbeiten, besteht jedoch darin, sicherzustellen, dass die Bestimmung des vorherigen Bits abgeschlossen ist, bevor die nächste Entscheidung getroffen werden muss. Diese restriktive Zeitvorgabe für die DFE-Rückkopplungsschleife kann durch die Verwendung eines spekulativen oder unrollierten DFE gelockert werden. Spekulative DFEs sind in der Technik zum Ausgleich von Kanalverlusten bekannt. Ein spekulativer DFE schließt eine Vielzahl von in Reihe geschalteten Threads ein, wobei jeder der Vielzahl von Threads ein Paar von verschachtelten Datenabtastern und einen Datenwertselektor einschließt. Normalerweise liegt die Anzahl der Threads in einem spekulativen DFE zwischen 2 und 8 und ist normalerweise eine Energie von 2. Das Paar verschachtelter Datenabtaster eines spekulativen DFE tastet das Eingangssignal ab und berechnet im Voraus zwei konkurrierende Anpassungsrückkopplungswerte, um den Kanal auszugleichen. Durch diese Vorausberechnung der Werte für die Anpassungsrückmeldungen entfallen die zeitlichen Einschränkungen, die sich aus der Notwendigkeit ergeben, darauf zu warten, dass der Wert eines zuvor empfangenen Bits ermittelt wird. Einer der Datenabtaster des verschachtelten Datenabtasterpaares bestimmt einen Wert eines aktuellen Bits eines Datenstroms auf der Grundlage einer Spekulation, dass das Ergebnis der Verarbeitung des zuvor empfangenen Bits eine logische „1“ sein wird, und der andere Datenabtaster bestimmt einen Wert eines aktuellen Bits auf der Grundlage einer Spekulation, dass das Ergebnis der Verarbeitung des zuvor empfangenen Bits eine logische „0“ sein wird. Sobald das tatsächliche Ergebnis des zuvor empfangenen Bits zur Verfügung steht, wird der vorberechnete Anpassungsrückmeldewert, der dem korrekt spekulierten Wert entspricht, ausgewählt und zur Verarbeitung eines folgenden Bits verwendet. Dementsprechend reduziert ein spekulativer DFE die Latenzzeit zwischen der Bestimmung eines zuvor empfangenen Bits und der Bestimmung eines aktuell empfangenen Bits eines Datenstroms in der Rückkopplungsschleife des DFE.
  • Wie bereits beschrieben, liefert in einem spekulativen DFE jeder Datenabtaster eines Paares von verschachtelten Datenabtastern in einem Thread des spekulativen DFE einen spekulativen Wert an einen Datenwertselektor, basierend auf der Annahme, dass ein zuvor empfangenes Bit einer von zwei entgegengesetzten logischen Pegeln war. Der richtige Wert der spekulativen Werte wird anschließend vom Datenwertselektor ausgewählt, nachdem das zuvor empfangene Bit ermittelt wurde. Der spekulative Wert, der vom Datenwertselektor als der richtige Wert ausgewählt wurde, wird dann an einen nächsten Thread des spekulativen DFE weitergeleitet. Außerdem wird in den bekannten SerDes-Empfängern, die spekulative DFEs verwenden, der spekulative Wert, der vom Datenwertselektor nicht als der richtige Wert auf der Grundlage des zuvor empfangenen Bits ausgewählt wird, anschließend verworfen. In der folgenden Beschreibung wird der Datenwert, der vom Datenwertselektor als richtiger Wert ausgewählt wurde, als „Datenwert“ und der nicht ausgewählte Datenwert als „Abweichungsdatenwert“ bezeichnet.
  • Im Gegensatz zum Stand der Technik wird bei der vorliegenden Erfindung der Abweichungsdatenwert nicht von der spekulativen DFE verworfen, sondern zur Driftkompensation für die Datenabtaster des SerDes-Empfängers verwendet.
  • Bezugnehmend auf 1 schließt ein System 100 für die Driftkompensation für Datenabtaster in einem Serialisierer-/Deserialisierer-Empfänger (SerDes-Empfänger) 105 einen spekulativen entscheidungsrückgekoppelten Entzerrer (DFE) 120 und eine mit dem spekulativen DFE 120 gekoppelte Driftkompensationsmaschine 125 ein. Im Betrieb liefert das spekulative DFE 120 Abweichungsdatenwerte 140 an die Driftkompensationsmaschine 125 und die Driftkompensationsmaschine 125 liefert Driftkompensationswerte 150 an das spekulative DFE 120, um die Drift im Abtastpegel der Datenabtaster des spekulativen DFE 120 während des Betriebs des SerDes-Empfängers 105 zu kompensieren.
  • Der SerDes-Empfänger 105 kann ferner einen analogen Front-End-Filter 115 einschließen, dessen Ausgang mit einem Eingang des spekulativen DFE 120 verbunden ist, sowie einen Seriell-Parallel-Wandler 130, der mit einem Ausgang des spekulativen DFE 120 verbunden ist. Im Betrieb wird der empfangene serielle Bitstrom 110 durch den analogen Front-End-Filter 115 geleitet. Der analoge Front-End-Filter 115 kann auf verschiedene Arten implementiert werden, darunter ein zeitkontinuierlicher linearer Entzerrer (CTLE) und ein Vorwärtsentzerrer (FFE), um eine Filterung mit endlicher Impulsantwort (FIR) für den empfangenen seriellen Bitstrom 110 im SerDes-Empfänger 105 bereitzustellen. Nachdem der serielle Bitstrom 110 durch den analogen Front-End-Filter 115 gefiltert wurde, ist der nächste Schritt des SerDes-Empfängers 105 die entscheidungsrückgekoppelte Entzerrung, bei der Entscheidungen über zuvor empfangene Bits mit DFE-Koeffizienten (oder Abgriffsgewichten) kombiniert werden, um ISI zu entfernen. Der spekulative DFE 120 ist als N-Abgriff-DFE implementiert und als solcher schließt der spekulative DFE 120 einen oder mehrere Abgriffe ein, wobei ein erster Abgriff des spekulativen DFE als ein abgerollter Abgriff implementiert ist, um die Intersymbolinterferenz (ISI) aus dem seriellen Bitstrom 110 zu entfernen. Da für die nachfolgenden Abgriffe des spekulativen DFE 120 üblicherweise ausreichend Zeit zur Verfügung steht, um sicherzustellen, dass eine Bestimmung des vorherigen Bits erfolgt ist, bevor die nächste Entscheidung getroffen werden muss, werden die nachfolgenden Abgriffe des spekulativen DFE 120 vorzugsweise auf eine in der Technik allgemein bekannte Art und Weise implementiert, wobei der Abgriff mit einem Verstärkungswert multipliziert und dann von der Eingangswellenform subtrahiert wird. Das vollständig entzerrte Signal wird vom spekulativen DFE 120 abgetastet und an den Seriell-Parallel-Wandler 130 weitergeleitet, der einen parallelen Strom von Ausgangsdaten auf dem Ausgangsbus 135 erzeugt.
  • Unter Bezugnahme auf 2 kann der spekulative erste Abgriff 122 des spekulativen DFE 120 des SerDes-Empfängers 105 von 1 ferner eine Vielzahl von Threads einschließen, die jeweils ein Paar von Datenabtastern und einen Datenwertselektor umfassen. In diesem Beispiel sind vier Threads veranschaulicht. Dies ist jedoch nicht als Einschränkung zu verstehen, und andere Anzahlen von Threads sind innerhalb des Schutzumfangs der Erfindung möglich. Wie gezeigt, schließt der spekulative erste Abgriff 122 eine Vielzahl von Datenwertselektoren 260, 262, 264, 266 ein, und jeder aus der Vielzahl der Datenwertselektoren 260, 262, 264, 266 ist mit einem aus einer Vielzahl von Datenabtasterpaaren 271, 275, 281, 285 verbunden. In dieser beispielhaften Ausführungsform schließt ein erster Thread des spekulativen ersten Abgriffs 122 ein erstes Datenabtastpaar 271 ein, wobei das erste Datenabtastpaar 271 einen ersten Datenwertselektor 270 und einen zweiten Datenwertselektor 272 einschließt, die jeweils mit dem ersten Datenwertselektor 260 gekoppelte Ausgänge haben. Ein zweiter Thread des spekulativen ersten Abgriffs 122 schließt ein zweites Datenabtastpaar 275 ein, wobei das zweite Datenabtastpaar 275 einen ersten Datenwertselektor 274 und einen zweiten Datenwertselektor 276 einschließt, die jeweils mit ihren Ausgängen an den zweiten Datenwertselektor 262 gekoppelt sind, und wobei der zweite Datenwertselektor 262 ferner einen Eingang hat, der mit einem Ausgang des ersten Datenwertselektors 260 des vorherigen Threads gekoppelt ist. Ein dritter Thread des spekulativen ersten Abgriffs 122 schließt ein drittes Datenabtastpaar 281 ein, wobei das dritte Datenabtastpaar 281 einen ersten Datenwertselektor 280 und einen zweiten Datenwertselektor 282 einschließt, die jeweils mit einem dritten Datenwertselektor 264 gekoppelt sind, und wobei der dritte Datenwertselektor 264 ferner einen Eingang hat, der mit einem Ausgang des zweiten Datenwertselektors 262 des vorherigen Threads gekoppelt ist. Ein vierter Thread des spekulativen ersten Abgriffs 122 schließt ein viertes Datenabtasterpaar 285 ein, wobei das vierte Datenabtasterpaar 285 einen ersten Datenwertselektor 284 und einen zweiten Datenwertselektor 286 einschließt, die jeweils mit einem vierten Datenwertselektor 266 gekoppelt sind, und der vierte Datenwertselektor 266 ferner einen Eingang hat, der mit einem Ausgang des dritten Datenwertselektors 264 des vorherigen Threads gekoppelt ist. Der vierte Datenwertselektor 266 hat einen Ausgang, der mit einem Eingang des ersten Datenwertselektors 260 verbunden ist. In der vorliegenden Erfindung werden die mehreren Datenwertselektoren 260, 262, 264, 266 verwendet, um die Datenwerte 290, 292, 294, 296 und die Abweichungsdatenwerte 240, 242, 244, 246 aus den spekulativen Datenwerten zu identifizieren, die von den Datenabtasterpaaren 275, 281, 285 bereitgestellt werden, wie im Folgenden näher beschrieben.
  • Die Driftkompensationsmaschine 125 ist mit der Vielzahl von Datenwertselektoren 260, 262, 264, 266 gekoppelt und die Driftkompensationsmaschine ist so konfiguriert, dass sie die Abweichungsdatenwerte 240, 242, 244, 246 von der Vielzahl von Datenwertselektoren 260, 262, 264, 266 zu empfangen und ist ferner so konfiguriert, dass sie entsprechende Driftkompensationswerte 150 für jeden der Datenabtaster jedes Datenabtasterpaares 271, 275, 281, 285 auf der Grundlage der von jedem der Vielzahl von Datenwertselektoren 260, 262, 264, 266 empfangenen Abweichungsdatenwerte 240, 242, 244, 246 erzeugt.
  • In der in 2 dargestellten beispielhaften Ausführungsform schließt der erste Thread des spekulativen ersten Abgriffs 122 ein erstes Datenabtasterpaar 271 mit einem ersten Datenabtaster 270 und einem zweiten Datenabtaster 272 ein. Der erste Thread schließt ferner einen ersten Datenwertselektor 260 ein, der so gekoppelt ist, dass er die spekulativen Datenwerte von den Datenabtastern 270, 272 des ersten Datenabtasterpaares 271 empfängt. Der zweite Thread des spekulativen ersten Abgriffs 122 schließt ein zweites Datenabtasterpaar 275 mit zwei Datenabtastern 274, 276 und einem zweiten Datenwertselektor 262 ein, der so angeschlossen ist, dass er die spekulativen Datenwerte von den Datenabtastern 274, 276 empfängt. Der dritte Thread des spekulativen ersten Abgriffs 122 schließt ein drittes Datenabtasterpaar 281 mit zwei Datenabtastern 280, 282 und einem dritten Datenwertselektor 264 ein, der so angeschlossen ist, dass er die spekulativen Datenwerte von den Datenabtastern 280, 282 empfängt. Der vierte Thread des spekulativen ersten Abgriffs 122 schließt ein viertes Datenabtasterpaar 285 mit zwei Datenabtastern 284, 286 und einem vierten Datenwertselektor 266 ein, der so gekoppelt ist, dass er die spekulativen Datenwerte von den Datenabtastern 284, 286 empfängt.
  • Im Betrieb des spekulativen ersten Abgriffs 122 des spekulativen DFE 120 werden abwechselnde Datenabtasterpaare verwendet, um den seriellen Bitstrom 110 abzutasten, um spekulative Datenwerte zu erzeugen, wobei die spekulativen Datenwerte auf der Annahme basieren, dass ein zuvor empfangenes Bit entweder als eine logische „1“ oder eine logische „0“ bestimmt wurde. Insbesondere nehmen die Datenabtasterpaare 271, 275, 281, 285 abwechselnd den seriellen Bitstrom 110 ab, so dass jedes Datenabtasterpaar 271, 275, 281, 285 ¼ der Bits aus dem seriellen Bitstrom 110 sammelt. Obwohl in 2 4 Zeitabschnitte (n) für die Datenerfassung dargestellt sind, ist zu verstehen, dass sich der Prozess über eine Dauer von mehr als 4 Zeitabschnitten erstreckt. Im allgemeinen tastet das Datenabtasterpaar 271 den seriellen Bitstrom zu Zeiten D(m) ab, das Datenabtasterpaar 275 tastet den seriellen Bitstrom zu Zeiten D(m+1) ab, das Datenabtasterpaar 281 tastet den seriellen Bitstrom zu Zeiten D(m+2) ab und das Datenabtasterpaar 285 tastet den seriellen Bitstrom zu Zeiten D(m+3) ab, wobei m eine positive ganze Zahl ist, die nach jeder 4. seriellen Bitstromprobe um 4 erhöht wird.
  • Zum Beispiel kann zu einem ersten Zeitpunkt (n) jeder der Datenabtaster 270, 272 des ersten Datenabtasterpaares 271 den seriellen Bitstrom 110 abtasten, um einen spekulativen Datenwert für ein aktuelles Bit D(n) zu erzeugen, wobei der erste Datenabtaster 270 des ersten Datenabtasterpaares 271 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „1“ ist und der zweite Datenabtaster 272 des ersten Datenabtasterpaares 271 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „0“ ist. Die beiden Datenabtaster 270, 272 stellen dann den spekulativen Datenwert, den sie aus dem seriellen Bitstrom 110 erzeugt haben, an den ersten Datenwertselektor 260 bereit. Nachdem ein zuvor ermittelter Datenwert D(n+3) 296 vom vierten Datenwertselektor 266 am ersten Datenwertselektor 260 empfangen wurde, bestimmt der erste Datenwertselektor 260, welcher der spekulativen Datenwerte der richtige Wert ist. Wenn z. B. D(n+3) 296 als logische „1“ bestimmt wird, dann bestimmt der erste Datenwertselektor 260, dass der spekulative Datenwert, der vom ersten Datenabtaster 270 des ersten Datenabtasterpaares 271 geliefert wird, der korrekte Datenwert D(n) 290 ist, weil der erste Datenabtaster 270 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „1“ war. Wenn D(n+3) 296 als logische „0“ bestimmt wird, bestimmt der erste Datenwertselektor 260, dass der spekulative Datenwert, der vom zweiten Datenabtaster 272 des ersten Datenabtasterpaares 271 geliefert wird, der korrekte Datenwert D(n) 290 ist, weil der zweite Datenabtaster 272 des ersten Datenabtasterpaares 271 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „0“ war. Der ausgewählte Datenwert D(n) 290 wird dann an den zweiten Datenwertselektor 262 des nächsten Threads des ersten Abgriffs 122 weitergeleitet und der nicht ausgewählte Datenwert D(n) 240 wird an die Driftkompensationsmaschine 125 weitergeleitet.
  • Zu einem nächsten Zeitpunkt (n+1) kann jeder der Datenabtaster 274, 276 des zweiten Datenabtasterpaares 275 den seriellen Bitstrom 110 abtasten, um einen spekulativen Datenwert für ein aktuelles Bit D(n+1) 292 zu erzeugen, wobei der erste Datenabtaster 274 des zweiten Datenabtasterpaares 275 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „1“ ist und der zweite Datenabtaster 276 des zweiten Datenabtasterpaares 275 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „0“ ist. Die beiden Datenabtaster 274, 276 liefern dann den spekulativen Datenwert, den sie aus dem seriellen Bitstrom 110 erzeugt haben, an den zweiten Datenwertselektor 262. Nachdem ein zuvor ermittelter Datenwert D(n) 290 vom ersten Datenwertselektor 260 am zweiten Datenwertselektor 262 empfangen wurde, bestimmt der zweite Datenwertselektor 262, welcher der spekulativen Datenwerte der richtige Wert ist. Wird beispielsweise festgestellt, dass D(n) 290 eine logische „1“ ist, dann stellt der zweite Datenwertselektor 262 fest, dass der spekulative Datenwert, der vom ersten Datenabtaster 274 des zweiten Datenabtasterpaares 275 geliefert wird, der korrekte Datenwert D(n+1) 292 ist, weil der erste Datenabtaster 274 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „1“ war. Wenn D(n) 290 als logische „0“ bestimmt wird, bestimmt der zweite Datenwertselektor 262, dass der vom zweiten Datenabtaster 276 des zweiten Datenabtasterpaares 275 gelieferte spekulative Datenwert D(n+1) 292 der richtige Datenwert ist, weil der zweite Datenabtaster 276 des zweiten Datenabtasterpaares 275 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „0“ war. Der ausgewählte Datenwert D(n+1) 292 wird dann an den dritten Datenwertselektor 264 des nächsten Threads des ersten Abgriffs 122 weitergeleitet und der nicht ausgewählte Datenwert D(n+1) 242 wird an die Driftkompensationsmaschine 125 weitergeleitet.
  • Zu einem nächsten Zeitpunkt (n+2) kann jeder der Datenabtaster 280, 282 des dritten Datenabtasterpaares 281 den seriellen Bitstrom 110 abtasten, um einen spekulativen Datenwert für ein aktuelles Bit D(n+2) 294 zu erzeugen, wobei der erste Datenabtaster 280 des dritten Datenabtasterpaares 281 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „1“ ist und der zweite Datenabtaster 282 des dritten Datenabtasterpaares 281 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „0“ ist. Die beiden Datenabtaster 280, 282 stellen dann den spekulativen Datenwert, den sie aus dem seriellen Bitstrom 110 erzeugt haben, an den dritten Datenwertselektor 264 bereit. Nachdem ein zuvor ermittelter Datenwert D(n+1) 292 vom zweiten Datenwertselektor 262 am dritten Datenwertselektor 264 empfangen wurde, bestimmt der dritte Datenwertselektor 264, welcher der spekulativen Datenwerte der richtige Wert ist. Wird beispielsweise festgestellt, dass D(n+1) 292 eine logische „1“ ist, dann stellt der dritte Datenwertselektor 264 fest, dass der spekulative Datenwert, der vom ersten Datenabtaster 280 des dritten Datenabtasterpaares 281 bereitgestellt wird, der richtige Datenwert D(n+2) 294 ist, weil der erste Datenabtaster 280 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „1“ war. Wenn D(n+1) 292 als logische „0“ bestimmt wird, dann bestimmt der dritte Datenwertselektor 264, dass der spekulative Datenwert, der vom zweiten Datenabtaster 282 des dritten Datenabtasterpaares 281 bereitgestellt wird, der korrekte Datenwert D(n+2) 294 ist, weil der zweite Datenabtaster 282 des dritten Datenabtasterpaares 281 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „0“ war. Der ausgewählte Datenwert D(n+2) 294 wird dann an den vierten Datenwertselektor 266 des nächsten Threads des ersten Abgriffs 122 bereitgestellt und der nicht ausgewählte Datenwert D(n+2) 244 wird an die Driftkompensationsmaschine 125 bereitgestellt.
  • Zu einem nächsten Zeitpunkt (n+3) kann jeder der Datenabtaster 284, 286 des vierten Datenabtasterpaares 285 den seriellen Bitstrom 110 abtasten, um einen spekulativen Datenwert für ein aktuelles Bit D(n+3) 296 zu erzeugen, wobei der erste Datenabtaster 284 des vierten Datenabtasterpaares 285 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „1“ ist und der zweite Datenabtaster 286 des vierten Datenabtasterpaares 285 den spekulativen Datenwert unter der Annahme erzeugen kann, dass ein zuvor empfangenes Bit aus dem seriellen Bitstrom 110 eine logische „0“ ist. Die beiden Datenabtaster 284, 286 stellen dann den spekulativen Datenwert, den sie aus dem seriellen Bitstrom 110 erzeugt haben, an den vierten Datenwertselektor 266 bereit. Nachdem ein zuvor ermittelter Datenwert D(n+2) 294 vom dritten Datenwertselektor 264 am vierten Datenwertselektor 266 empfangen wurde, bestimmt der vierte Datenwertselektor 266, welcher der spekulativen Datenwerte der richtige Wert ist. Wenn z. B. D(n+2) 294 als logische „1“ bestimmt wird, dann bestimmt der vierte Datenwertselektor 266, dass der spekulative Datenwert, der vom ersten Datenabtaster 284 des vierten Datenabtasterpaares 285 geliefert wird, der korrekte Datenwert D(n+3) 296 ist, weil der erste Datenabtaster 284 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „1“ war. Wenn D(n+2) 294 als logische „0“ bestimmt wird, bestimmt der vierte Datenwertselektor 266, dass der spekulative Datenwert, der vom zweiten Datenabtaster 286 des vierten Datenabtasterpaares 285 bereitgestellt wird, der korrekte Datenwert D(n+3) 296 ist, weil der zweite Datenabtaster 282 des vierten Datenabtasterpaares 285 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „0“ war. Der ausgewählte Datenwert D(n+3) 296 wird dann dem ersten Datenwertselektor 260 des ersten Threads des ersten Abgriffs 122 bereitgestellt und der nicht ausgewählte Datenwert D(n+3) 246 wird der Driftkompensationsmaschine 125 zugeführt.
  • Im Rahmen der vorliegenden Erfindung werden zur Kompensation jeglicher Drift, die im Abtastpegel eines der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 des spekulativen DFE 120 aufgetreten ist, auch Datenwertselektoren 260, 262, 264, 266 verwendet, um die Abweichungsdatenwerte 240, 242, 244, 246 aus den spekulativen Datenwerten zu identifizieren, die von den Datenabtastern 270, 272, 274, 276, 280, 282, 284, 286 bereitgestellt werden. Wie bereits beschrieben, sind die Abweichungsdatenwerte 240, 242, 244, 246 die spekulativen Werte, die auf einer falschen Annahme des Wertes des zuvor empfangenen Bits basieren. Wenn das zuvor empfangene Bit D(n) 290 als logische „0“ erkannt wird, bestimmt der zweite Datenwertselektor 262, dass der vom ersten Datenabtaster 274 bereitgestellte spekulative Datenwert der Abweichungsdatenwert (D(n+1)) 242 ist, weil der erste Datenabtaster 274 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „1“ war. Wenn D(n) 290 eine logische „1“ ist, bestimmt der zweite Datenwertselektor 262, dass der vom zweiten Datenabtaster 276 bereitgestellte spekulative Datenwert der Abweichungsdatenwert (D(n+1)) 292 ist, weil der zweite Datenabtaster 276 den spekulativen Datenwert unter der Annahme erzeugt hat, dass das zuvor empfangene Bit eine logische „0“ war. Mit anderen Worten: Der spekulative Datenwert, der aufgrund der falschen Annahme des Wertes des zuvor empfangenen Bits erzeugt wird, wird vom zweiten Datenwertselektor 262 als Abweichungsdatenwert bestimmt. Der Abweichungsdatenwert 242 wird dann der Driftkompensationsmaschine 125 bereitgestellt und kann anschließend verwendet werden, um entsprechende Driftkompensationswerte 150 für jeden der Datenabtaster 274, 276 des zweiten Datenabtasterpaares 275 zu erzeugen.
  • Im Allgemeinen nehmen die Datenabtasterpaare 271, 275, 281, 285 abwechselnd das am spekulativen ersten Abgriff 122 empfangene Eingangssignal ab. Wie bereits beschrieben, geht ein Datenabtaster des Datenabtasterpaares davon aus, dass das vorherige Bit eine logische „1“ ist und der andere Datenabtaster des Datenabtasterpaares geht davon aus, dass das vorherige Bit eine logische „0“ ist, um spekulative Datenwerte zu erzeugen. Nach der Bestimmung des tatsächlichen Wertes des vorherigen Bits werden die spekulativen Datenwerte, die von den Datenwertselektoren 240, 242, 244, 246 als Abweichungsdatenwerte 260, 262, 264, 266 identifiziert wurden, der Driftkompensationsmaschine 125 bereitgestellt. Außerdem werden die spekulativen Datenwerte, die als korrekte Datenwerte D(n) 290, D(n+1) 292, D(n+2) 294 und D(n+3) 296 identifiziert wurden, an den Seriell-Parallel-Wandler 130 bereitgestellt, der einen parallelen Strom von Ausgangsdaten auf dem Ausgangsbus 135 erzeugt.
  • Die Driftkompensationsmaschine 125 verwendet diese Abweichungsdatenwerte 240, 242, 244, 246, um einen entsprechenden Driftkompensationswert 150 für jeden der Datenabtaster zu erzeugen. Wie unter Bezugnahme auf 5A - 5D beschrieben wird, werden einige der Abweichungsdatenwerte 240, 242, 244, 246, die von den Datenwertselektoren 260, 262, 264, 266 bereitgestellt werden, als nicht nützlich für die Bestimmung der Driftkompensationswerte 150 angesehen. Bevor die Driftkompensationsmaschine 125 einen Zielwert von Null für die Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 berechnet, werden die Abweichungsdatenwerte 240, 242, 244 und 246 gefiltert, um die Abweichungsdatenwerte zu entfernen, die für die Bestimmung der Driftkompensationswerte 150 nicht als nützlich angesehen werden.
  • 3 veranschaulicht die Funktionsweise jedes der Datenwertselektoren 260, 262, 264, 266 im Detail. Die in 3 dargestellte Schaltlogik ist lediglich beispielhaft und zahlreiche andere Konfigurationen liegen im Rahmen der vorliegenden Erfindung, um die Funktionen der Datenwertselektoren 260, 262, 264, 266 zu erfüllen.
  • Wie in 3 gezeigt, kann ein beispielhafter Datenwertselektor 262 im zweiten Thread des spekulativen ersten Abgriffs 122 eine erste Multiplexerschaltung 350 und eine zweite Multiplexer-Schaltung 360 einschließen. Die erste Multiplexerschaltung 350 kann ein erstes UND-Gatter 300 einschließen, dessen erster Eingang mit dem Ausgang des ersten Datenabtasters 274 des zweiten Datenabtasterpaares 275 und dessen zweiter Eingang mit dem vorherigen Datenwert D(n) 290 verbunden ist. Die erste Multiplexerschaltung 350 kann auch ein zweites UND-Gatter 310 einschließen, dessen erster Eingang mit dem Ausgang des zweiten Datenabtasters 276 des zweiten Datenabtasterpaares 275 und dessen zweiter Eingang über einen Inverter 305 mit dem vorherigen Datenwert D(n) 290 verbunden ist. Die Ausgänge des ersten UND-Gatters 300 und des zweiten UND-Gatters 315 sind mit den jeweiligen Eingängen eines ersten ODER-Gatters 315 verbunden, das den Datenwert D(n+1) 292 an den nächsten Thread des spekulativen DFE 120 bereitstellt. Die zweite Multiplexerschaltung 360 kann ein drittes UND-Gatter 320 einschließen, dessen erster Eingang mit dem Ausgang des zweiten Datenabtasters 276 des zweiten Datenabtasterpaares 275 und dessen zweiter Eingang mit einem vorherigen Datenwert D(n) 290 gekoppelt ist. Die zweite Multiplexerschaltung 360 kann auch ein viertes UND-Gatter 330 einschließen, dessen erster Eingang mit dem Ausgang des ersten Datenabtasters 274 des zweiten Datenabtasterpaares 275 und dessen zweiter Eingang über einen Inverter 325 mit dem vorherigen Datenwert D(n) 290 verbunden ist. Die Ausgänge des dritten UND-Gatters 320 und des vierten UND-Gatters 330 sind mit den jeweiligen Eingängen eines zweiten ODER-Gatters 335 verbunden, das den Abweichungsdatenwert D(n+1) 242 an die Driftkompensationsmaschine 125 bereitstellt. Dementsprechend ist die erste Multiplexerschaltung 350 des Datenwertselektors 262 für die Auswahl des Datenwertes D(n+1) 292 und die zweite Multiplexerschaltung 360 des Datenwertselektors 262 für die Auswahl des Abweichungsdatenwertes D(n+1) 242 zuständig. Ähnliche Schaltlogiken können in den anderen Datenwertselektoren 260, 264, 266 vorgesehen werden, um die Werte außerhalb des Datums zu identifizieren. Wie bereits erwähnt, verwendet die Driftkompensationsmaschine 125 die Abweichungsdatenwerte 240, 242, 244, 246, um die Driftkompensationswerte 150 für die Datenabtaster zu erzeugen.
  • Um die Driftkompensationswerte 150 zu bestimmen, die zur Anpassung des Abtastpegels der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 verwendet werden, bestimmt die Driftkompensationsmaschine 125 zunächst einen Ein-Null-Verzerrungswert für jeden Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 der Vielzahl von Datenabtasterpaaren 271, 275, 281, 285 des spekulativen ersten Abgriffs 122 unter Verwendung der Abweichungsdatenwerte 240, 242, 244, 246. Die Driftkompensationsmaschine 125 bestimmt dann einen Ein-Null-Verzerrungszielwert unter Verwendung der Ein-Null-Verzerrungswerte, die für jeden Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 bestimmt wurden, und erzeugt dann einen entsprechenden Driftkompensationswert 150 für jeden der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 auf der Grundlage des bestimmten Ein-Null-Verzerrungszielwertes und des Ein-Null-Verzerrungswertes jedes Datenabtasters.
  • Einige der Abweichungsdatenwerte 240, 242, 244, 246, die von den Datenwertselektoren 260, 262, 264, 266 bereitgestellt werden, werden für die Bestimmung der Driftkompensationswerte 150 als nicht sinnvoll erachtet. Bevor die Driftkompensationsmaschine 125 den Ein-Null-Zielwert für die Datenabtaster bestimmt, werden die Abweichungsdatenwert, die für die Bestimmung der Driftkompensationswerte 150 nicht als nützlich erachtet werden, aus den Abweichungsdatenwerten 240, 242, 244, 246 gefiltert. Wie in 2 gezeigt, schließt die Driftkompensationsmaschine 125 einen Abweichungsfilter 230 zur Identifizierung und Entfernung von Abweichungsdatenwerten ein, die für die Bestimmung der Driftkompensationswerte 150 als nicht nützlich angesehen werden. Der Abweichungsfilter 230 entfernt die Abweichungsdatenwerte, die nicht als nützlich erachtet werden, bevor die Driftkompensationsmaschine 125 den Ein-Null-Verzerrungszielwert für die Datenabtaster bestimmt. In einer Ausführungsform erfolgt die Bestimmung durch Berechnung.
  • Abweichungsdatenwerte werden nur dann als nützlich erachtet, wenn sie zur Berechnung nützlicher Statistiken über das Driften des Datenabtasters verwendet werden können. Um nützlich zu sein, sollten sich die Abweichungsdatenwerte vorzugsweise innerhalb eines Übergangsabschnitts des empfangenen Auges des Eingangssignals befinden, aber in einigen Fällen liegt der Abweichungsdatenwert selbst weit außerhalb des Auges. Der Übergangsabschnitt ist der Abschnitt, in dem das empfangene Signal mit hoher Wahrscheinlichkeit erscheinen sollte, wie weiter unten erläutert.
  • Ein SerDes-Augendiagramm 400 nach dem Stand der Technik ist in 4 veranschaulicht. In Bezug auf 4 schließt das SerDes-Augendiagramm 400 einen oberen Augenabschnitt 410 und einen unteren Augenabschnitt 415 ein und um ein Eingangssignal am SerDes-Empfänger abzutasten, wird ein Datenabtasterniveau 405 in der Mitte des nominalen SerDes-Empfänger-Augendiagramms 400 positioniert. Der obere Augenabschnitt 410 und der untere Augenabschnitt 415 stellen den Übergangsabschnitt dar. Während jeder Abtastperiode wandelt das Datenabtasterniveau 405 das analoge Eingangssignal entweder in eine Eins um, wenn der Abtastwert des analogen Eingangssignals oberhalb des Datenabtasterniveaus 405 liegt, oder in eine Null, wenn der Abtastwert des analogen Eingangssignals unterhalb des Datenabtasterniveaus 405 liegt. Darüber hinaus kann die Abtastung des analogen Eingangssignals im Wesentlichen mit dem Datenabtasterniveau 405 übereinstimmen, z. B. innerhalb weniger mV, abhängig von der spezifischen Implementierung. Die Ausgabe des Datenabtasters wird als effektiv zufällig bestimmt, wenn die Abtastung des analogen Eingangssignals im Wesentlichen gleich dem Datenabtasterniveau 405 ist. So wird das Datenabtasterniveau 405 von den jeweiligen Datenabtastern, 270, 272, 274, 276, 280, 282, 284, 286 verwendet, um eine Vielzahl von umgewandelten analogen Eingangssignalabtastungen bereitzustellen, und ein Schieberegister ist so positioniert, dass es die umgewandelten analogen Eingangssignalabtastungen sammelt, wenn sie in Reaktion auf die Datenabtasterniveau 405 bereitgestellt werden.
  • Im Allgemeinen wird der DFE-Koeffizient (A1) für einen ersten Abgriff eines DFE als ein positiver Wert betrachtet. Es ist in der Technik bekannt, dass der erste Abgriffskoeffizient (A1) für einen ersten DFE-Abgriff ein positiver Wert für jeden interessanten Kanal ist, der eine Driftkompensation erfordert. Bei sehr kurzen Kanälen kann der erste Abgriffskoeffizient Null oder sogar negativ sein. Für solche kurzen Kanäle ist jedoch keine Driftkompensation erforderlich, da das Auge des empfangenen Signals bekanntermaßen groß ist. Mit zunehmender Länge des Kanals und der damit verbundenen Kanaleinfügedämpfung steigt auch der Wert des ersten Abgriffskoeffizienten. Der erste DFE-Abgriff ist ein positiver Wert, was bedeutet, dass ein gewisses Maß an Rest-ISI von der vorherigen Datenprobe D(n-1) im empfangenen Signal zum Zeitpunkt D(n) vorhanden ist, wobei das Maß an Rest-ISI von der vorherigen Datenprobe als A1 mV*D(n-1) identifiziert wird. A1 ist eine positive Spannung, die vom Empfänger für jeden beliebigen Kanal adaptiv ausgewählt wird, um Rest-ISE zu entfernen. Sie wird hier in Millivolt (mV) angegeben und D(n-1) wird als + 1 angenommen, wenn D(n-1) eine logische „1“ war, und -1, wenn D(n-1) eine logische „0“ war. So wird der erste Datenabtaster eines Datenabtasterpaares, der davon ausgeht, dass das zuvor empfangene Bit eine logische „1“ war, und dessen Datenabtasterniveau 405 auf + A 1 mV und das Datenabtasterniveau 405 des zweiten Datenabtasters des Datenabtasterpaares, der davon ausgeht, dass das zuvor empfangene Bit eine logische „0“ war, auf -A1 mV festgelegt. Im Allgemeinen gehen die ersten Datenabtaster 270, 274, 280, 284 davon aus, dass das zuvor empfangene Bit eine logische „1“ war und ihr Datenabtasterniveau 405 daher bei +A1mV liegt und die zweiten Datenabtaster 272, 276, 282, 286 gehen davon aus, dass das zuvor empfangene Bit eine logische „0“ war und ihr Datenabtasterniveau 405 daher bei -A1mV liegt. A1 ist eine Spannung von typischerweise 20 mV bis 100 mV, abhängig von den Bedingungen des Empfängers, bei Empfängern zum Zeitpunkt des Schreibens. In Bezug auf 2 liegt das Datenabtasterniveau 405 eines unrollierten Datenabtasters, der davon ausgeht, dass das vorhergehende Bit eine 1 ist, wie z. B. der erste Datenabtaster 270, bei +A1 mV, und das Datenabtasterniveau 405 eines Datenabtasters, der davon ausgeht, dass das vorhergehende Bit eine 0 ist, wie z. B. der zweite Datenabtaster 272, liegt bei -A1 mV. Die DFE-Koeffizienten für die nachfolgenden Abgriffe ür den N-Abgriff-DFE haben zufällige Vorzeichen, aber ihre Werte sind für die Bestimmung der Abtaster-Driftkompensationswerte der vorliegenden Erfindung nicht relevant. Während der erste Abgriff des spekulativen DFE 120 in zwei Datenabtaster abgewickelt wird, werden die anderen Abgriffe des DFE von der Eingangswellenform subtrahiert. Der subtrahierte Betrag wird als DFE-Korrektur bezeichnet und wird bestimmt als (A2*D(n-2)+A3*D(n-3)+A4*D(n-4...). A2 und höhere DFE-Koeffizienten sind je nach Übertragungskanal zufällig positive oder negative Werte. Es ist zu beachten, dass ein empfangenes Bit von 1 bedeutet, dass der für die DFE-Multiplikation verwendete D-Wert +1 ist, und ein empfangenes Bit von 0 bedeutet, dass der für die DFE-Multiplikation verwendete D-Wert -1 ist.
  • In einer beispielhaften Ausführungsform des Betriebs des Abweichungsfilters 230 wird davon ausgegangen, dass ein Datenabtasterniveau 405 des ersten Datenabtasters 274 eines Datenabtasterpaares 275 auf einer positiven Spannung (logisch „1“) liegt und ein Datenabtasterniveau 405 des zweiten Datenabtasters 276 des Datenabtasterpaares 275 auf einer negativen Spannung (logisch „0“) liegt. Wenn zum Zeitpunkt (n+1) das vorherige Bit zum Zeitpunkt (n) eine logische „1“ war, ist der A1 DFE-Koeffizient zum Zeitpunkt (n+1) eine positive Spannung. Wenn das vorherige Bit zum Zeitpunkt (n) eine logische „0“ war, dann ist der A1 DFE-Koeffizient zum Zeitpunkt (n+1) eine negative Spannung. Im Allgemeinen ist eine positive Spannung, wie z. B. +A1, ein vom System angepasster Wert (ebenso wie A2...An) der nachfolgenden Anzapfungen. Es ist bekannt, dass je länger der Übertragungskanal ist, desto höher ist die Einfügedämpfung und desto höher ist der Wert von A1.
  • 5A - 5D veranschaulichen ferner, wie die Abweichungsdatenwerte gefiltert werden, um die Abweichungsdatenwerte zu identifizieren und zu entfernen, die für die Bestimmung der Driftkompensationswerte nicht als nützlich erachtet werden. 5A - 5D veranschaulichen vier mögliche Abtastpegel für den Datenabtaster auf der Grundlage der Kombination der logischen Werte des zuvor empfangenen Bits und des aktuell abgetasteten Bits. In dieser beispielhaften Ausführungsform liegt die gestrichelte Mittellinie bei 0 V 505, der erste Datenabtaster (SPn) nimmt an, dass das zuvor empfangene Bit eine logische „1“ war und sein Abtastpegel liegt bei +A1 mV 510, und der zweite Datenabtaster (SMn) nimmt an, dass das zuvor empfangene Bit eine logische „0“ war und sein Abtastpegel liegt bei -A1 mV 515. In 5A - 5D, implementiert auf dem Datenabtasterpaar 275, bei dem der Abtastpegel des ersten Datenabtasters 274 bei +A1 mV 510 und der Abtastpegel des zweiten Datenabtasters 276 bei -A1 mV 515 liegt, wird angenommen, dass der erste Datenabtaster (SPn) mit dem Abtastpegel 510 das empfangene Eingangssignal unter der Annahme abtastet, dass das zuvor empfangene Bit eine logische „1“ ist, und der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 das empfangene Eingangssignal unter der Annahme abtastet, dass das zuvor empfangene Bit eine logische „0“ ist. Der Wert des zuvor empfangenen Bits D(n-1) und der Wert des aktuellen Bits D(n) bestimmen den Zustand des empfangenen Signals. Der vollständige Zustand des Signals wird durch vier mögliche Fälle dargestellt, die zwei Zeitinstanzen und zwei mögliche Zustände für jede Zeitinstanz einschließen. 5A - 5D veranschaulichen die allgemeine Form der empfangenen Wellenform für die vier möglichen Fälle.
  • 5A geht davon aus, dass ein zuvor empfangener Bitwert D(n-1) als logische „1“ bestimmt wurde. In diesem Fall wird der aktuelle Datenwert D(n) des ersten Datenabtasters (SPn) mit Abtastpegel 510 ausgewählt, weil das zuvor empfangene Bit D(n-1) als logische „1“ ermittelt wurde. Wie gezeigt, befindet sich das obere Auge 500 des empfangenen Eingangssignals oberhalb des ersten Datenabtasters (SPn) mit dem Abtastpegel 510 und damit per Definition auch oberhalb des zweiten Datenabtasters (SMn) mit dem Abtastpegel 515. Wenn das zuvor empfangene Bit (D(n-1)) eine logische „1“ war und das aktuelle Bit (D(n)) eine logische „1“ ist, stellen die Abweichungsdaten des zweiten Datenabtasters (SMn) mit dem Abtastpegel 515 keine nützlichen statistischen Informationen über die Drift des Abtasters bereit, die zur Bestimmung der Driftkompensationswerte 150 beitragen könnten. Im Allgemeinen stellen die Abweichungsdaten des zweiten Datenabtasters (SMn) mit dem Abtastpegel 515 unter den meisten interessanten Bedingungen, unter denen ein DFE erforderlich ist, keine nützlichen statistischen Informationen bereit, da sie nicht innerhalb des oberen Auges des empfangenen Eingangssignals liegen (d. h. 410 von 4). Wenn der erste Datenabtaster (SPn) mit Abtastpegel 510 bei einer Abtastposition von +A1 mV einen logischen Wert von „1“ meldet, dann meldet auch der zweite Datenabtaster (SMn) 515 einen logischen Wert von „1“, da SMn im Vergleich zu SPn eine niedrigere Spannung aufweist. Nehmen wir zum Beispiel an, dass der Abtastpegel 510 des ersten Datenabtasters (SPn) bei +A1 mV liegt und A1 gleich 50 mV ist, dann folgt daraus, dass der Abtastpegel 515 des zweiten Datenabtasters (SMn) bei einer negativen Spannung von -50 mV liegt. Wenn der erste Datenabtaster (SPn) mit Abtastpegel 510 für das empfangene Bit einen logischen Wert von „1“ meldet, was bedeutet, dass der Spannungspegel des Bits größer als 50 mV ist, dann folgt daraus, dass auch der Spannungspegel des Bits größer als -50 mV ist. Wenn also das zuvor empfangene Bit eine logische „1“ ist, meldet der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 immer eine logische „1“, wenn der erste Datenabtaster (SPn) mit dem Abtastpegel 510 eine logische „1“ meldet, und daher liefern die Abweichungsdaten des zweiten Datenabtasters (SMn) mit dem Abtastpegel 515 keine nützlichen statistischen Informationen über die Drift des Abtasters, die zur Bestimmung der Driftkompensationswerte 150 beitragen könnten.
  • 5B geht davon aus, dass ein zuvor empfangener Bitwert D(n-1) eine logische „1“ war. In diesem Fall wird der aktuelle Datenwert D(n) des ersten Datenabtasters (SPn) mit Abtastpegel 510 ausgewählt, weil das zuvor empfangene Bit D(n-1) als logische „1“ ermittelt wurde. Wie gezeigt, befindet sich der Abtastpegel 515 des zweiten Abtasters (SMn) im unteren Auge 520 des empfangenen Signals, was üblicherweise bei einer Hochgeschwindigkeitsverbindung der Fall ist, bei der DFE erforderlich ist. Dementsprechend enthalten in dem Fall, in dem Bit D(n-1)=1 und Bit D(n)=0 ist, die Abweichungsdaten des zweiten Datenabtasters (SMn) mit Abtastpegel 515 nützliche Informationen, die zur Bestimmung der Driftkompensationswerte 150 beitragen können. Nehmen wir zum Beispiel wieder an, dass A1 gleich 50 mV ist. Wenn der erste Datenabtaster (SPn) mit Abtastpegel 510 ausgewählt wird, weil das zuvor empfangene Bit als logische „1“ bestimmt wurde, und der erste Datenabtaster (SPn) mit Abtastpegel 510 meldet, dass das empfangene Bit eine logische „0“ ist, dann ist bekannt, dass das empfangene Bit weniger als 50 mV beträgt. Während also bekannt ist, dass der Spannungspegel des empfangenen Bits unter dem Abtastpegel 510 des ersten Datenabtasters (SPn) (+50 mV) liegt, kann der zweite Datenabtaster (SMn) mit Abtastpegel 515 entweder eine logische „1“ oder eine logische „0“ melden, je nach dem Spannungspegel des empfangenen Bits, wie er vom zweiten Datenabtaster (SMn) mit Abtastpegel 515 abgetastet wurde. Daher zeigt das vom zweiten Abtaster (SMn) mit Abtastpegel 515 gelieferte Ergebnis den Spannungspegel des empfangenen Bits relativ zu -50 mV an und liefert damit nützliche Informationen, die zur Bestimmung der Driftkompensationswerte 150 beitragen können.
  • 5C geht davon aus, dass ein zuvor empfangener Bitwert D(n-1) eine logische „0“ war. In diesem Fall wird der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 als Datenabtaster für D(n) ausgewählt. Wie gezeigt, befindet sich der Abtastpegel 510 des ersten Datenabtasters (SPn) im oberen Auge 500 des empfangenen Signals, was üblicherweise bei einer Hochgeschwindigkeitsverbindung der Fall ist, bei der DFE erforderlich ist. Dementsprechend enthalten in dem Fall, in dem Bit D(n-1) =0 und Bit D(n) =1 ist, die Abweichungsdaten des ersten Datenabtasters (SPn) mit Abtastpegel 510 nützliche Informationen, die zur Bestimmung der Driftkompensationswerte beitragen können. Nehmen wir zum Beispiel an, dass A1 gleich 50 mV ist. Wenn der zweite Datenabtaster (SMn) mit Abtastpegel 515 ausgewählt wird, weil das zuvor empfangene Bit als logische „0“ bestimmt wurde, und der zweite Datenabtaster (SMn) mit Abtastpegel 515 meldet, dass das empfangene Bit eine logische „1“ ist, dann ist bekannt, dass das empfangene Bit größer als -50 mV ist. Während also bekannt ist, dass der Spannungspegel des empfangenen Bits über dem Abtastpegel 515 des zweiten Datenabtasters (SMn) (-50 mV) liegt, kann der erste Datenabtaster (SPn) mit Abtastpegel 510 entweder eine logische „1“ oder eine logische „0“ melden, je nach dem Spannungspegel des empfangenen Bits, wie er vom ersten Datenabtaster (SPn) mit Abtastpegel 510 abgetastet wurde. Daher zeigt das Ergebnis des ersten Abtasters (SPn) mit Abtastpegel 510 den Spannungspegel des empfangenen Bits relativ zu 50 mV an und stellt damit nützliche Informationen bereit, die zur Bestimmung der Driftkompensationswerte 150 beitragen können.
  • 5D geht davon aus, dass ein zuvor empfangener Bitwert D(n-1) eine logische „0“ war. In diesem Fall wird der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 als Datenabtaster für D(n) ausgewählt. Wenn jedoch, wie gezeigt, der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 eine logische Null meldet, würde der erste Datenabtaster (SPn) mit dem Abtastpegel 510 ebenfalls eine logische „0“ melden, da sein Abtastpegel 510 auf einer noch höheren Spannung liegt als der zweite Datenabtaster (SMn) mit dem Abtastpegel 515. Dementsprechend stellen in dem Fall, in dem Bit D(n-1)=0 und Bit D(n)=0, die Abweichungsdaten des ersten Datenabtasters (SPn) mit Abtastpegel 510 keine nützlichen Informationen bereit, die zur Bestimmung der Driftkompensationswerte 150 beitragen. Mit anderen Worten, wenn der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 einen logischen Wert von „0“ meldet, wird der erste Datenabtaster (SPn) mit dem Abtastpegel 510 ebenfalls einen logischen Wert von „0“ melden, da der Abtastpegel 510 des ersten Datenabtasters (SPn) bei einer höheren Spannung liegt als der Abtastpegel 515 des zweiten Datenabtasters (SMn). Nehmen wir zum Beispiel an, dass der Abtastpegel 510 des ersten Datenabtasters (SPn) bei +A1 mV liegt und A1 gleich 50 mV ist, dann folgt daraus, dass der Abtastpegel 515 des zweiten Datenabtasters (SMn) bei einer negativen Spannung von -50 mV liegt. Wenn der zweite Datenabtaster (SMn) mit Abtastpegel 515 ausgewählt wird, weil das zuvor empfangene Bit als logische „0“ bestimmt wurde, und der zweite Datenabtaster (SMn) mit Abtastpegel 515 einen logischen Wert von „0“ für das empfangene Bit meldet, was bedeutet, dass der Spannungspegel des Bits kleiner als -50 mV ist, dann folgt daraus, dass der Spannungspegel des Bits ebenfalls kleiner als +50 mV ist. Wenn also das zuvor empfangene Bit eine logische „0“ ist, meldet der erste Datenabtaster (SPn) mit dem Abtastpegel 510 immer eine logische „0“, wenn der zweite Datenabtaster (SMn) mit dem Abtastpegel 515 eine logische „0“ meldet, und daher stellen die Abweichungsdaten des ersten Datenabtasters (SPn) mit dem Abtastpegel 510 keine nützlichen statistischen Informationen über die Drift des Abtasters bereit, die zur Bestimmung der Driftkompensationswerte 150 beitragen könnten.
  • Damit Abweichungsdatenwerte nützlich sind, sollte das empfangene Eingangssignal zwischen den jeweiligen Datenabtasterniveaus der beiden Datenabtaster der Datenabtasterpaare liegen. Die nachstehende Tabelle fasst die Ergebnisse des Betriebs des Abweichungsfilters 230 zusammen, wobei die als „Abweichungsdaten nicht nützlich“ gekennzeichneten Stellen vor der Berechnung der Driftkompensationswerte 150 durch den Abweichungsfilter 230 aus den Abweichungsproben gefiltert werden.
    Referenzfigur Bit D (n-1) Bit D(n) Erster Datenabtaster (SPn) Zweiter Datenabtaster (SMn)
    5A 1 1 D(n) Abweichungsdaten nicht nützlich
    5B 1 0 D(n) Abweichungsdaten nützlich
    5C 0 1 Abweichungsdaten nützlich D(n)
    5D 0 0 Abweichungsdaten nicht nützlich D(n)
  • Wie unter Bezugnahme auf 5A - 5D beschrieben und in der obigen Tabelle zusammengefasst, wird jeder Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 des spekulativen DFE 120 ein Viertel der Zeit einen nützlichen Abweichungsdatenwert erzeugen, während jeder Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 die Hälfte der Zeit als Datenabtaster verwendet wird. Mit anderen Worten: Jeder der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 ist ein Abweichungsdatenabtaster mit einem entsprechenden Abweichungsdatenabtastpegel, der ein Viertel der Zeit nützliche Abweichungsdatenwerte bereitstellt.
  • Bei der vorliegenden Erfindung werden die von den Datenabtastern 270, 272, 274, 276, 280, 282, 284, 286 gesammelten Abweichungsdatenwerte, die normalerweise vom spekulativen DFE 120 verworfen würden, stattdessen verwendet, um jegliche Drift der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 auszugleichen. Die Abweichungsdatenwerte werden periodisch an die Driftkompensationsmaschine 125 weitergeleitet, um die Driftkompensationswerte 150 zu bestimmen. Da die Drift des Datenabtasters, die verfolgt wird, ein niederfrequentes Ereignis ist, ist es nicht notwendig, dass die Abweichungsdatenwerte der Driftkompensationsmaschine 125 mit der vollen Datenrate bereitgestellt werden. Die Abweichungsproben werden zwar von jedem Paar Datenabtaster bereitgestellt, aber es ist nicht notwendig, alle Abweichungsproben von den Datenabtastern an die Driftkompensationsmaschine 125 bereitzustellen. Da es sich bei der Drift, die mit Hilfe der Abweichungsdatenwerte kompensiert wird, um eine langsame Drift handelt, ist der komplette Satz von Abweichungsproben nicht erforderlich, um die Werte für die Driftkompensation zu bestimmen. Außerdem kann es sein, dass die Driftkompensationsmaschine 125 nicht immer in Betrieb ist. In manchen Fällen, z. B. wenn bekannt ist, dass das Auge groß ist, oder wenn bekannt ist, dass die Spannungs-TemperaturBedingungen (VT) stabil sind, kann die Driftkompensationsmaschine 125 deaktiviert werden, um Energie zu sparen. Alternativ kann die Driftkompensationsmaschine 125 auch nur periodisch aktiviert werden, um Energie zu sparen.
  • Wie in 2 gezeigt, kann die Driftkompensationsmaschine 125 ferner einen Zähler 238 einschließen, der bei der Berechnung der Driftkompensationswerte 150 hilft. Nachdem die Abweichungsdatenwerte in der Driftkompensationsmaschine 125 empfangen und durch den Abweichungsfilter 230 gefiltert wurden, wird zur Bestimmung der Driftkompensationswerte 150 für jeden der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 ein Ein-Null-Verzerrungswert für jeden der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 bestimmt. Um die Ein-Null-Verzerrungswerte zu ermitteln, wird zunächst ein Zeitraum ausgewählt, über den die Ein-Null-Verzerrungswerte ermittelt werden sollen. Die Zeitspanne kann von einem Designer des Systems als Steuerparameter für den Algorithmus zur Berechnung der Driftkompensationswerte 150 ausgewählt werden. Der Designer kann die Zeitspanne für die Bestimmung der Ein-Null-Verzerrung sowie die Häufigkeit der Berechnung der Driftkompensationswerte 150 festlegen. Der Steuerparameter kann über Steuerregister des spekulativen DFE 120 konfiguriert werden und kann bei Bedarf angepasst und aktualisiert werden, bis ein endgültiger fester Wert für die Zeitspanne durch geeignete Tests des spekulativen DFE 120 ermittelt wird. Ein ausgewählter Zeitraum kann zum Beispiel dadurch realisiert werden, dass der Zähler 238 eine Periode von 1e3 bis 1e6 Einheitsintervallen (UI) zählt. In Bezug auf SerDes bezieht sich das Einheitsintervall (UI) auf die Zeitspanne, die für ein Bit bei einer gegebenen Datenrate für den Betrieb vorgesehen ist. Während des festgelegten Zeitraums werden die Abweichungsdatenwerte für jeden der Datenabtaster verfolgt. Im Allgemeinen zählt der Zähler 238 für jeden Datenabtaster in einer ersten Richtung, wenn der Abweichungsdatenwert des Datenabtasters eine logische „1“ ist, und zählt in einer zweiten, der ersten Richtung entgegengesetzten Richtung, wenn der Abweichungsdatenwert des Datenabtasters eine logische „0“ ist. In einer besonderen Ausführungsform kann der Zähler 238 für jede Datenprobe aufwärts zählen, wenn der Abweichungsdatenwert des Datenabtasters eine logische „1“ ist, und abwärts zählen, wenn der Abweichungsdatenwert des Abtasters eine logische „0“ ist. Nachdem die Zeitspanne verstrichen ist, wird für jeden Datenabtaster ein Ein-Null-Verzerrungswert bestimmt, der für die Anzahl der gezählten 1en im Vergleich zur Anzahl der 0en repräsentativ ist. Wenn der Ein-Null-Verzerrungswert z. B. gleich Null ist, dann ist bekannt, dass die Wahrscheinlichkeit von 1 und 0 an diesem Datenabtaster gleich ist. Wenn jedoch die Abweichungsdatenwerte als 60 % 1's und 40 % 0's gezählt würden, dann ist zu wissen, dass die Wahrscheinlichkeit, dass der jeweilige Datenabtaster ein umgewandeltes analoges Eingangssignal als eine logische „1“ liefert, um 20 % höher ist als die Wahrscheinlichkeit, dass der jeweilige Datenabtaster ein umgewandeltes analoges Eingangssignal als eine logische „0“ liefert, während des bestimmten Zeitraums. Im Allgemeinen bedeutet ein positiver Ein-Null-Verzerrungswert während des Zeitraums, dass 1er häufiger vorkommen als 0er, ein negativer Ein-Null-Verzerrungswert bedeutet, dass 0er häufiger vorkommen als 1er und ein Null-Ein-Null-Verzerrungswert bedeutet, dass die Anzahl der 1er gleich der Anzahl der 0er ist. Die Größe des Wertes für die Ein-Null-Verzerrung gibt die Differenz zwischen den beiden Werten an, wobei eine große Verzerrung zwischen 1 und 0 zu einem größeren Wert für die Ein-Null-Verzerrung führt. Es sei darauf hingewiesen, dass der absolute Wert des Ein-Null-Verzerrungswertes nicht entscheidend ist. Wichtig für die Driftkompensation ist vielmehr, dass jeder der Datenabtaster nach dem Trimmen im Wesentlichen den gleichen Ein-Null-Verzerrungswert aufweist, was weiter unten beschrieben wird.
  • Nachdem die Ein-Null-Verzerrungswerte für jeden der Datenabtaster, 270, 272, 274, 276, 280, 282, 284, 286 bestimmt wurden, wird ein Ein-Null-Verzerrungszielwert bestimmt. Während verschiedene Verfahren verwendet werden können, um die Ein-Null-Verzerrungs-Zielwerte aus den Ein-Null-Verzerrungswerten der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 zu bestimmen, werden in einer Ausführungsform die Ein-Null-Verzerrungswerte jedes der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 gemittelt, um den Ein-Null-Verzerrungs-Zielwert zu bestimmen. Alle Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 werden anschließend auf diesen Zielwert von eins zu null getrimmt. Dementsprechend muss bei einem Datenabtaster, dessen Ein-Null-Verzerrung höher ist als der Zielwert für die Ein-Null-Verzerrung, was bedeutet, dass der Datenabtaster zu viele logische „1en“ erzeugt, der entsprechende Datenabtasterpegel erhöht werden. Umgekehrt gilt: Wenn ein Datenabtaster eine Verzerrung von eins zu null aufweist, die niedriger ist als der Zielwert für die Verzerrung von eins zu null, dann muss der entsprechende Datenabtastpegel verringert werden. So wird ein Driftkompensationswert für jeden der Datenabtaster von der Driftkompensationsmaschine 125 auf der Grundlage des Ein-Null-Verzerrungswerts für jeden einzelnen Datenabtaster und des Ein-Null-Verzerrungszielwerts, der für alle Datenabtaster des spekulativen DFE 120 bestimmt wurde, berechnet. Die Driftkompensationswerte 150 werden verwendet, um den jeweiligen Datenabtastpegel der einzelnen Datenabtaster zu erhöhen oder zu verringern, sodass alle Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 auf den Zielwert der Nullvorspannung getrimmt werden. So kann beispielsweise eine Differenz zwischen dem Zielwert für die Nullvorspannung und dem Nullvorspannungswert eines der Datenabtaster darauf hinweisen, dass der Datenabtastpegel des Datenabtasters erhöht oder verringert werden sollte, um die dynamische Drift aufgrund sich ändernder VT-Bedingungen zu korrigieren. Der Wert für die Driftkompensation gibt an, ob der Abtastpegel des Datenabtasters nach oben oder unten verschoben werden soll. So wird der Abtastpegel des Datenabtasters um einen einzigen Schritt in der durch den Driftkompensationswert angegebenen Richtung nach oben oder unten angepasst. Die Größe des Schritts ist spezifisch für eine bestimmte Implementierung. In einer besonderen Ausführungsform kann die Größe der Stufe 0,5 mV, 1 mV oder 2 mV betragen. Ein idealer Abtastpegel für jeden der Datenabtaster wird über eine Reihe von Zeitperioden durch Anpassungen des Abtastpegels des Datenabtasters auf der Grundlage des Driftkompensationswertes erreicht. Indem abwechselnd nach oben und nach unten korrigiert wird, wird der Abtastpegel des Datenabtasters auf die ideale Position für die aktuelle VT-Bedingung getrimmt. Während die Verwendung eines einzigen gleichmäßigen Schrittes oben beschrieben wurde und in keiner Art und Weise einschränkend gemeint ist, ist die Verwendung von Schritten, deren Größe in Abhängigkeit vom absoluten Wert der Differenz zwischen der Ein-Null-Verzerrung und dem Ein-Null-Verzerrungszielwert variiert, ausdrücklich in Betracht zu ziehen.
  • Wie in 2 dargestellt, schließt die Driftkompensationseinheit 125 ferner ein Digital-Analog-Register (DAC-Register) 235 zum Speichern der Driftkompensationswerte 150 ein. Gemäß den Driftkompensationswerten 150 werden die Erhöhungen oder Verminderungen des Datenabtastpegels der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 durch einen 1 LSB-Schritt im DAC-Register 235, das die Driftkompensationswerte 150 speichert, erreicht. Nachdem die Driftkompensationswerte 150 im DAC-Register 235 gespeichert sind, werden die Ein-Null-Vorspannungswerte für die Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 und den Zähler 238 zurückgesetzt und die Prozedur zur Erzeugung neuer Driftkompensationswerte beginnt von neuem.
  • Das DAC-Register 235 verfolgt den aktuelle Datenabtasterpegel, der auf jeden Datenabtaster angewandt wird, und passt als Reaktion auf Aktualisierungen zur Erhöhung/Verringerung von der Driftkompensationsmaschine 125 das Datenabtasterniveau jedes Datenabtasters 270, 272, 274, 276, 280, 282, 284, 286 an, indem es ein LSB zum aktuell dargestellten Wert addiert oder subtrahiert.
  • 6 ist ein Flussdiagramm eines Verfahrens 600 zur Driftkompensation für Datenabtaster gemäß einer Ausführungsform der vorliegenden Erfindung. Bei Vorgang 605 schließt das Verfahren den Empfang von Abweichungsdatenwerten von einer Vielzahl von Datenabtastungspaaren eines spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in einem SerDes-Empfänger in einer Driftkompensationsmaschine ein. Wie in 2 dargestellt, stellen die Datenwertselektoren 260, 262, 264, 266 des ersten spekulativen Abgriffs 122 die Abweichungsdatenwerte 240, 242, 244, 246 an die Driftkompensationsmaschine 125 bereit.
  • Bei Vorgang 610 wird das Verfahren 600 fortgesetzt, indem die Driftkompensationsmaschine einen Driftkompensationswert für jeden der Datenabtaster auf der Grundlage der von jedem der mehreren Datenwertselektoren empfangenen Abweichungsdatenwerte erzeugt. Mit Bezug auf 2 erzeugt die Driftkompensationsmaschine 125 die jeweiligen Driftkompensationswerte 150 für jeden der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 der Datenabtasterpaare 271, 275, 281, 285 des ersten spekulativen Abgriffs 122 des spekulativen DFE 120.
  • In Bezug auf 7 kann der Vorgang 705 des Verfahrens 700 vor der Durchführung des Vorgangs 610 von 6 zur Erzeugung der Driftkompensationswerte ferner die Identifizierung und Entfernung der Abweichungsdatenwerte einschließen, die keine nützlichen Informationen liefern. Bezugnehmend auf 2 können in der vorliegenden Erfindung die Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 der Datenabtasterpaare 271, 275, 281, 285 und der Abweichungsfilter 230 verwendet werden, um die Abweichungsdatenwerte zu identifizieren und zu entfernen, die keine nützlichen Informationen bereitstellen.
  • Bei Vorgang 710 kann das Verfahren 700 fortgesetzt werden, indem die Driftkompensationsmaschine einen Ein-Null-Verzerrungswert für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte bestimmt. Bezugnehmend auf 2, verwendet die Driftkompensationsmaschine 125 in der vorliegenden Erfindung den Abweichungsfilter 230 und den Zähler 238, um den Ein-Null-Verzerrungswert für jeden der Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 der Datenabtasterpaare 271, 275, 281, 285 des spekulativen DFE 120 zu bestimmen.
  • Bei Vorgang 715 kann das Verfahren 700 fortgesetzt werden, indem ein Ein-Null-Verzerrungszielwert unter Verwendung der von der Driftkompensationsmaschine 125 ermittelten Ein-Null-Verzerrungswerte für jeden Datenabtaster berechnet wird. In Bezug auf 2 ist die Driftkompensationsmaschine 125 in der vorliegenden Erfindung so konfiguriert, dass sie den Zielwert für die Nullpunktverschiebung für die Datenabtaster 270, 272, 274, 276, 280, 282, 284, 286 bestimmt.
  • Bei Vorgang 720 wird das Verfahren 700 fortgesetzt, indem der Driftkompensationswert für jeden Datenabtaster der Datenabtasterpaare auf der Grundlage des bestimmten Ein-Null-Verzerrungszielwerts und des Ein-Null-Verzerrungswerts jedes Datenabtasters erzeugt wird. Mit Bezug auf 2 ist die Driftkompensationsmaschine 125 in der vorliegenden Erfindung so konfiguriert, dass sie den Driftkompensationswert für jeden Datenabtaster der Datenabtasterpaare auf der Grundlage des ermittelten Ein-Null-Verzerrungszielwerts und des Ein-Null-Verzerrungswerts jedes Datenabtasters 270, 272, 274, 276, 280, 282, 284, 286 erzeugt (was durch Berechnung geschehen kann).
  • Mit Bezug auf 8, wenn Vorgang 710 von 7 durchgeführt wird, um einen Ein-Null-Verzerrungswert für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte zu bestimmen, kann der Vorgang 805 des Verfahrens 800 ferner Folgendes einschließen: Definieren einer Periode, über die der Ein-Null-Verzerrungswert bestimmt wird, gefolgt von Vorgang 810 des Verfahrens 800, der das Verfolgen der Abweichungsdatenwerte über die definierte Periode durch Zählen in einer ersten Richtung, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 1 ist, und Zählen in einer zweiten, der ersten Richtung entgegengesetzten Richtung, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 0 ist, einschließt, um den Ein-Null-Verzerrungswert für jeden Datenabtaster zu bestimmen. Bei Vorgang 815 fährt das Verfahren mit der Mittelwertbildung der Ein-Null-Verzerrungswerte für jeden der Datenabtaster fort. Bei Vorgang 820 schließt das Verfahren durch Einstellen eines Abtastpegels eines oder mehrerer der Datenabtaster auf der Grundlage des für jeden der Datenabtaster erzeugten Driftkompensationswertes ab, wobei der Driftkompensationswert eine Erhöhung des Abtastpegels des Datenabtasters anzeigt, wenn die Ein-Null-Verzerrung des Datenabtasters höher als der Ein-Null-Verzerrungszielwert ist, und der Driftkompensationswert eine Verringerung des Abtastpegels des Datenabtasters anzeigt, wenn die Ein-Null-Verzerrung des Datenabtasters niedriger als der Ein-Null-Verzerrungszielwert ist.
  • Daher stellt die vorliegende Erfindung ein verbessertes System und Verfahren zur Kompensation der Drift in den Abtastpegeln des Datenabtasters bereit, die aus dynamischen VT-Änderungen während des Betriebs eines SerDes-Empfängers resultieren.
  • In einer Ausführungsform können Abschnitte des SerDes-Empfängers in einer integrierten Schaltung als einzelner Halbleiterchip implementiert sein. Alternativ kann die integrierte Schaltung mehrere Halbleiter-Dies einschließen, die elektrisch miteinander gekoppelt sind, wie zum Beispiel ein Multi-Chip-Modul, das in einem einzelnen Gehäuse einer integrierten Schaltung untergebracht ist.
  • In verschiedenen Ausführungsformen können Abschnitte des Systems der vorliegenden Erfindung in einem feldprogrammierbaren Gate-Array (FPGA) oder in einer anwendungsspezifischen integrierten Schaltung (ASIC) implementiert sein. Wie der Fachmann erkennt, können verschiedene Funktionen von Schaltungselementen auch als Verarbeitungsschritte in einem Softwareprogramm implementiert sein. Eine solche Software kann zum Beispiel in einem Digitalsignalprozessor, einem Netzwerkprozessor, einem Mikrocontroller oder einem Universalcomputer eingesetzt werden.
  • Sofern nicht ausdrücklich anders angegeben und aus der Erörterung ersichtlich, versteht es sich, dass sich Erörterungen, die Begriffe, wie „Empfangen“, „Bestimmen“, „Erzeugen“, „Begrenzen“, „Senden“, „Zählen“, „Klassifizieren“ oder dergleichen nutzen, in der gesamten Beschreibung auf Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen können, die Daten, die als physikalische (elektronische) Größen in Registern und Speichern des Computersystems dargestellt werden, manipuliert und in andere Daten umwandelt, die in ähnlicher Art und Weise als physikalische Größen in den Speichern oder Registern des Computersystems oder in anderen derartigen Vorrichtungen zur Speicherung, Übertragung oder Anzeige von Informationen dargestellt werden.
  • Die vorliegende Erfindung kann auf verschiedenen Rechenplattformen ausgeführt sein, die Aktionen als Reaktion auf softwarebasierte Anweisungen durchführen. Im Folgenden wird eine vorausgehende Grundlage für die Informationstechnologie bereitgestellt, die zur Ermöglichung der Erfindung genutzt werden kann.
  • Das Verfahren der vorliegenden Erfindung kann auf einem computerlesbaren Medium gespeichert sein, das ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein kann. Ein computerlesbares Speichermedium kann zum Beispiel, ohne jedoch darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Einrichtung oder eine entsprechende Vorrichtung oder eine beliebige geeignete Kombination des Vorstehenden sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden Folgendes einschließen: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine optische Faser, einen tragbaren Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder eine beliebige geeignete Kombination des Vorstehenden. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes nichtflüchtige, greifbare Medium sein, das ein Programm zur Verwendung durch ein(e) oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein propagiertes Datensignal mit darin verkörpertem computerlesbarem Programmcode einschließen, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches propagiertes Signal kann eine beliebige einer Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, elektromagnetischer, optischer oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch ein(e) oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungseinrichtung oder einer Anweisungsausführungsvorrichtung übermitteln, propagieren oder transportieren kann. Wie vorstehend angegeben, sind jedoch die Ansprüche auf diese Erfindung als Softwareprodukt aufgrund gesetzlicher Beschränkungen für Schaltungen diejenigen, die in einem nichtflüchtigem Softwaremedium, wie einer Computerfestplatte, einem Flash-RAM, einer optischen Platte oder dergleichen, verkörpert sind.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, einschließlich, ohne darauf beschränkt zu sein, drahtlos, drahtgebunden, Glasfaserkabel, Hochfrequenz usw. oder einer beliebigen geeigneten Kombination des Vorstehenden. Computerprogrammcode zum Ausführen von Operationen für Gesichtspunkte der vorliegenden Erfindung kann in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie Java, C#, C++, Visual Basic oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen, wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen.
  • Gesichtspunkte der vorliegenden Erfindung werden nachstehend unter Bezugnahme auf Flussdiagrammveranschaulichungen und/oder Blockdiagramme von Verfahren, Einrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammveranschaulichungen und/oder Blockdiagramme sowie Kombinationen von Blöcken in den Flussdiagrammveranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungseinrichtung bereitgestellt werden, um eine Maschine zu erzeugen, damit die Anweisungen, die über den Prozessor des Computers oder eine andere programmierbare Datenverarbeitungseinrichtung ausgeführt werden, Mittel zum Implementieren der in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegebenen Funktionen/Aktionen erzeugen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder andere Vorrichtungen anweisen kann, in einer bestimmten Art und Weise zu arbeiten, sodass die im computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen einschließt, die die in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegebene Funktion/Aktion implementieren.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungseinrichtung oder andere Vorrichtungen geladen werden, um zu bewirken, dass auf dem Computer, der anderen programmierbaren Einrichtung oder den anderen Vorrichtungen eine Reihe von Betriebsschritten durchgeführt wird, um einen computerimplementierten Prozess zu erzeugen, damit die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Einrichtung ausgeführt werden, Prozesse zum Implementieren der Funktionen/Aktionen, die in dem Block oder in den Blöcken des Flussdiagramms und/oder des Blockdiagramms angegeben sind, bereitstellen.
  • Ferner versteht es sich, dass zum Zwecke der Erörterung und des Verständnisses der Ausführungsformen der Erfindung verschiedene vom Fachmann verwendete Begriffe verwendet werden, um Techniken und Ansätze zu beschreiben. Des Weiteren werden in der Beschreibung zu Erklärungszwecken zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis der vorliegenden Erfindung bereitzustellen. Es ist jedoch für den Durchschnittsfachmann offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details umgesetzt werden kann. In einigen Fällen sind hinlänglich bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms und nicht im Detail gezeigt, um die vorliegende Erfindung nicht zu verunklaren. Diese Ausführungsformen sind hinreichend detailliert beschrieben, um es dem Durchschnittsfachmann zu ermöglichen, die Erfindung umzusetzen, und es versteht sich, dass andere Ausführungsformen genutzt werden können und dass logische, mechanische, elektrische und andere Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen.

Claims (22)

  1. Verfahren zur Driftkompensation für Datenabtaster in einem Serialisierer-/Deserialisierer-Empfänger (SerDes-Empfänger), das Verfahren umfassend: Empfangen, an einer Driftkompensationsmaschine, von Abweichungsdatenwerten aus einer Vielzahl von Datenwertselektoren, wobei jeder der Vielzahl von Datenwertselektoren mit einem von einer Vielzahl von Datenabtasterpaaren eines spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in einem SerDes-Empfänger gekoppelt ist; und Erzeugen eines Driftkompensationswertes für jeden Datenabtaster der Datenabtasterpaare durch die Driftkompensationsmaschine auf der Grundlage der von jedem der mehreren Datenwertselektoren empfangenen Abweichungsdatenwerte.
  2. Verfahren nach Anspruch 1, wobei das Erzeugen des Driftkompensationswertes für jeden Datenabtaster der Datenabtasterpaare durch die Driftkompensation ferner Folgendes umfasst: Bestimmen, durch die Driftkompensationsmaschine, eines Ein-Null-Verzerrungswertes für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte; Bestimmen eines Ein-Null-Verzerrungszielwertes unter Verwendung der von der Driftkompensationsmaschine bestimmten Ein-Null-Verzerrungswerte für jeden Datenabtaster; und Erzeugen des Driftkompensationswertes für jeden Datenabtaster der Datenabtasterpaare auf der Grundlage des bestimmten Ein-Null-Verzerrungszielwertes und des bestimmten Ein-Null-Verzerrungswertes jedes Datenabtasters.
  3. Verfahren nach Anspruch 2, das ferner das Entfernen von Abweichungsdatenwerten umfasst, die keine nützlichen Informationen für die Bestimmung des Ein-Null-Verzerrungswerts bereitstellen, bevor der Ein-Null-Verzerrungswert bestimmt wird.
  4. Verfahren nach Anspruch 3, das ferner umfasst, dass die Abweichungsdatenwerte, die keine nützlichen Informationen für das Bestimmen des Ein-Null-Verzerrungswertes bereitstellen, als abgetastete Werte identifiziert werden, die sich weder in einem oberen noch in einem unteren Auge eines Signals befinden, das einen empfangenen seriellen Bitstrom umfasst.
  5. Verfahren nach Anspruch 2, wobei das Bestimmen des Ein-Null-Verzerrungswertes für jeden Datenabtaster der Vielzahl von Datenabtastern unter Verwendung der Abweichungsdatenwerte durch die Driftkompensationsmaschine Folgendes umfasst: Definieren eines Zeitraums, über den der Ein-Null-Verzerrungswert ermittelt wird; und Verfolgen der Abweichungsdatenwerte über den definierten Zeitraum durch Zählen in einer ersten Richtung, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 1 ist, und Zählen in einer zweiten Richtung, die der ersten Richtung entgegengesetzt ist, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 0 ist, um den Ein-Null-Verzerrungswert für jeden Datenabtaster zu bestimmen.
  6. Verfahren nach Anspruch 2, wobei das Bestimmen des Zielwertes für die Ein-Null-Verzerrung unter Verwendung der ermittelten Ein-Null-Verzerrungswerte für jeden Datenabtaster die Mittelung der Ein-Null-Verzerrungswerte jedes der Datenabtaster umfasst.
  7. Verfahren nach Anspruch 2, ferner umfassend: Einstellen eines Abtastpegels von einem oder mehreren der Datenabtaster auf der Grundlage des erzeugten Driftkompensationswertes, der für jeden der Datenabtaster erzeugt wurde, wobei der Driftkompensationswert eine Erhöhung des Abtastpegels des Datenabtasters anzeigt, wenn die ermittelte Ein-Null-Verzerrung des Datenabtasters höher als der ermittelte Ein-Null-Verzerrungszielwert ist, und der Driftkompensationswert eine Verringerung des Abtastpegels des Datenabtasters anzeigt, wenn die ermittelte Ein-Null-Verzerrung des Datenabtasters niedriger als der ermittelte Ein-Null-Verzerrungszielwert ist.
  8. Verfahren nach Anspruch 1, ferner umfassend: Empfangen spekulativer Datenwerte eines seriellen Bitstroms von dem mit dem Datenwertselektor gekoppelten Datenabtasterpaar an einem der mehreren Datenwertselektoren; Empfangen eines vorherigen Bitwerts des seriellen Bitstroms an einem der mehreren Datenwertselektoren; und Identifizieren der Abweichungsdatenwerte aus den spekulativen Datenwerten und dem empfangenen vorherigen Bitwert am Datenwertselektor.
  9. Verfahren nach Anspruch 1, ferner umfassend: Erzeugen spekulativer Datenwerte aus einem seriellen Bitstrom, der an einem ersten Datenabtastpaar empfangen wird, wobei ein erster der Datenabtaster des ersten Datenabtastpaares einen spekulativen Datenwert unter der Annahme erzeugt, dass ein vorheriger Bitwert aus dem seriellen Bitstrom ein logischer Pegel 1 ist, und ein zweiter Datenabtaster des ersten Datenabtastpaares einen spekulativen Datenwert unter der Annahme erzeugt, dass der vorherige Bitwert aus dem seriellen Bitstrom ein logischer Pegel 0 ist; Bestimmen, durch einen ersten Datenwertselektor, der mit dem ersten Datenabtasterpaar gekoppelt ist, dass der spekulative Datenwert, der durch den ersten Datenabtaster des ersten Datenabtasterpaares erzeugt wird, der Abweichungsdatenwert ist, wenn bestimmt wird, dass der vorherige Bitwert aus dem seriellen Bitstrom ein Logikpegel 0 war, und Bestimmen, dass der spekulative Datenwert, der durch den zweiten Datenabtaster des ersten Datenabtasterpaares erzeugt wird, der Abweichungsdatenwert ist, wenn bestimmt wird, dass der vorherige Bitwert aus dem seriellen Bitstrom ein Logikpegel 1 ist; und Weitergeben der Abweichungsdatenwerte vom ersten Datenwertselektor an die Driftkompensationsmaschine.
  10. Verfahren nach Anspruch 9, ferner umfassend: Bestimmen durch den ersten Datenwertselektor, dass der spekulative Datenwert, der durch den ersten Datenabtaster des ersten Datenabtasterpaares erzeugt wurde, ein Datenwert ist, wenn der vorherige Bitwert gleich einem logischen Pegel 1 ist, und Bestimmen, dass der spekulative Datenwert, der durch den zweiten Datenabtaster des ersten Datenabtasterpaares erzeugt wurde, der Datenwert ist, wenn der vorherige Bitwert gleich einem logischen Pegel 0 ist; und Weitergeben des Datenwertes an einen Selektor für den nächsten Datenwert des spekulativen DFE.
  11. Verfahren nach Anspruch 1, das ferner das Speichern des Driftkompensationswertes für jedes der mehreren Datenabtasterpaare in einem mit den Datenabtastern des spekulativen DFE gekoppelten Digital-Analog-Wandler (DAC)-Register umfasst.
  12. Verfahren nach Anspruch 1, wobei die Vielzahl von Datenwertselektoren jeweils aus einem spekulativen ersten Abgriff des spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in dem SerDes-Empfänger stammen.
  13. System zur Driftkompensation für Datenabtaster in einem Serializer-/Deserializer-Empfänger (SerDes-Empfänger), das System umfassend: eine Vielzahl von Datenwertselektoren, wobei jeder der Vielzahl von Datenwertselektoren mit einem einer Vielzahl von Datenabtasterpaaren eines spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in einem SerDes-Empfänger gekoppelt ist, wobei die Vielzahl von Datenwertselektoren dazu dient, Abweichungsdatenwerte aus spekulativen Datenwerten zu identifizieren, die von den Datenabtasterpaaren bereitgestellt werden; und eine Driftkompensationsmaschine, die mit der Vielzahl von Datenwertselektoren gekoppelt ist, wobei die Driftkompensationsmaschine dazu dient; die Abweichungsdatenwerte von der Vielzahl der Datenwertselektoren zu empfangen; und einen Driftkompensationswert für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren auf der Grundlage der von jedem der Vielzahl von Datenwertselektoren empfangenen Abweichungsdatenwerte zu erzeugen.
  14. System nach Anspruch 13, wobei die Driftkompensationsmaschine ferner dazu dient: einen Ein-Null-Verzerrungswerts für jeden Datenabtaster der Vielzahl von Datenabtasterpaaren unter Verwendung der Abweichungsdatenwerte zu bestimmen; einen Ein-Null-Verzerrungszielwert unter Verwendung der ermittelten Ein-Null-Verzerrungswerte für jeden Datenabtaster der Datenabtasterpaare zu bestimmen; und den Driftkompensationswert für jeden Datenabtaster der Datenabtasterpaare auf der Grundlage des ermittelten Ein-Null-Verzerrungszielwertes und des ermittelten Ein-Null-Verzerrungswertes jedes Datenabtasters der Datenabtasterpaare zu erzeugen.
  15. System nach Anspruch 14, wobei die Driftkompensationsmaschine ferner einen Abweichungsfilter umfasst, um die Abweichungsdatenwerte zu entfernen, die keine nützlichen Informationen für die Bestimmung des Ein-Null-Verzerrungswert für jeden Datenabtaster bereitstellen, bevor die Driftkompensationsmaschine den Ein-Null-Verzerrungswert für jeden Datenabtaster bestimmt.
  16. System nach Anspruch 14, wobei die Driftkompensationsmaschine ferner so konfiguriert ist, dass sie: einen Zeitraum definiert, über den der Ein-Null-Verzerrungswert ermittelt wird; und die Abweichungsdatenwerte über den definierten Zeitraum durch Zählen in einer ersten Richtung verfolgt, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 1 ist, und Zählen in einer zweiten Richtung, die der ersten Richtung entgegengesetzt ist, wenn der empfangene Abweichungsdatenwert ein logischer Pegel 0 ist, um den Ein-Null-Verzerrungswert für jeden Datenabtaster zu bestimmen.
  17. System nach Anspruch 14, wobei die Driftkompensationsmaschine ferner so konfiguriert ist, dass sie den Zielwert für die Ein-Null-Verzerrung unter Verwendung der Ein-Null-Verzerrungswerte für jeden Datenabtaster durch Mittelwertbildung der Ein-Null-Verzerrungswerte jedes der Datenabtaster bestimmt.
  18. System nach Anspruch 13, wobei jeder der Datenwertselektoren ferner Folgendes umfasst: eine erste Multiplexerschaltung zum Identifizieren von Datenwerten aus spekulativen Datenwerten eines seriellen Bitstroms, die von einem mit dem Datenwertselektor gekoppelten Datenabtasterpaar empfangen werden, und einem vorherigen Bitwert des seriellen Bitstroms; und eine zweite Multiplexerschaltung zum Identifizieren der Abweichungsdatenwerte aus den spekulativen Datenwerten des seriellen Bitstroms, die von dem mit dem Datenwertselektor gekoppelten Datenabtasterpaar empfangen werden, und dem vorherigen Bitwert des seriellen Bitstroms.
  19. System nach Anspruch 13, wobei jedes der mehreren Datenabtasterpaare des spekulativen DFE so konfiguriert ist, dass es: spekulative Datenwerte aus einer Probe eines seriellen Bitstroms erzeugt, der an einem ersten Datenabtastpaar der Vielzahl von Datenabtastpaaren empfangen wird, wobei ein erster der Datenabtaster des ersten Datenabtastpaares einen spekulativen Datenwert unter der Annahme erzeugt, dass ein vorheriger Bitwert aus dem seriellen Bitstrom ein logischer Pegel 1 ist, und ein zweiter Datenabtaster des ersten Datenabtastpaares einen spekulativen Datenwert unter der Annahme erzeugt, dass der vorherige Bitwert aus dem seriellen Bitstrom ein logischer Pegel 0 ist; und wobei ein mit dem ersten Datenabtastpaar gekoppelter erster Datenwertselektor so konfiguriert ist, dass er bestimmt, dass der vom ersten Datenabtaster des ersten Datenabtastpaares erzeugte spekulative Datenwert der Abweichungsdatenwert ist, wenn festgestellt wird, dass der vorherige Bitwert aus dem seriellen Bitstrom ein Logikpegel 0 war, und dass er bestimmt, dass der vom zweiten Datenabtaster des ersten Datenabtastpaares erzeugte spekulative Datenwert der Abweichungsdatenwert ist, wenn festgestellt wird, dass der vorherige Bitwert aus dem seriellen Bitstrom ein Logikpegel 1 ist.
  20. System nach Anspruch 13, wobei die Driftkompensationsmaschine ferner ein Digital-Analog-Wandler (DAC)-Register zum Speichern der Driftkompensationswerte für jeden der mehreren Datenabtaster und des spekulativen DFE des SerDes-Empfängers umfasst und wobei das DAC-Register einen Abtastpegel eines oder mehrerer der Datenabtaster der mehreren Datenabtasterpaare auf der Grundlage des für jeden der Datenabtaster gespeicherten Driftkompensationswertes einstellt, wobei der Driftkompensationswert eine Erhöhung des Abtastpegels des Datenabtasters anzeigt, wenn die Ein-Null-Verzerrung des Datenabtasters höher als der Ein-Null-Verzerrungszielwert ist, und der Driftkompensationswert eine Verringerung des Abtastpegels des Datenabtasters anzeigt, wenn die Ein-Null-Verzerrung des Datenabtasters niedriger als der Ein-Null-Verzerrungszielwert ist.
  21. System nach Anspruch 13, wobei die Vielzahl von Datenwertselektoren jeweils aus einem spekulativen ersten Abgriff des spekulativen entscheidungsrückgekoppelten Entzerrers (DFE) in dem SerDes-Empfänger stammen.
  22. System zur Driftkompensation für Datenabtaster in einem Serializer-/Deserializer-Empfänger (SerDes-Empfänger), das System umfassend: einen spekulativen entscheidungsrückgekoppelten Entzerrer (DFE) eines SerDes-Empfängers, wobei der spekulative DFE eine Vielzahl von Datenabtasterpaaren und einen Datenabtasterselektor umfasst, der mit jedem der Vielzahl von Datenabtasterpaaren gekoppelt ist; und eine Driftkompensationsmaschine, die mit dem SerDes-Empfänger gekoppelt ist, wobei die Driftkompensationsmaschine dazu dient, Abweichungsdatenwerte von den Datenabtasterselektoren zu empfangen und einen Driftkompensationswert für jeden Datenabtaster der mehreren Datenabtasterpaare des DFE bereitzustellen, wobei der Driftkompensationswert auf den spekulativen Datenwerten basiert, die von den Datenabtasterselektoren empfangen werden; den SerDes-Empfänger, um eine Abtastfrequenz jedes der Datenabtaster der Vielzahl von Datenabtasterpaare des DFE basierend auf dem Driftkompensationswert von der Driftkompensationsmaschine einzustellen.
DE112020006807.2T 2020-04-20 2020-10-19 System und verfahren zur driftkompensation für datenabtaster Active DE112020006807B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063012586P 2020-04-20 2020-04-20
US63/012,586 2020-04-20
US17/022,480 2020-09-16
US17/022,480 US10972249B1 (en) 2020-04-20 2020-09-16 System and method for data sampler drift compensation
PCT/US2020/056353 WO2021216113A1 (en) 2020-04-20 2020-10-19 System and method for data sampler drift compensation

Publications (2)

Publication Number Publication Date
DE112020006807T5 DE112020006807T5 (de) 2023-01-19
DE112020006807B4 true DE112020006807B4 (de) 2024-06-13

Family

ID=75275540

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020006807.2T Active DE112020006807B4 (de) 2020-04-20 2020-10-19 System und verfahren zur driftkompensation für datenabtaster

Country Status (4)

Country Link
US (1) US10972249B1 (de)
CN (1) CN115362657B (de)
DE (1) DE112020006807B4 (de)
WO (1) WO2021216113A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014068B2 (en) 2021-04-27 2024-06-18 Microchip Technology Inc. System and method for double data rate (DDR) chip-kill recovery
US11381269B1 (en) 2021-05-28 2022-07-05 Marvell Asia Pte, Ltd. Method and device for timing recovery decoupled FFE adaptation in SerDes receivers
DE112022001547T5 (de) 2021-06-01 2024-01-11 Microchip Technology Inc. Speicheradressenschutz
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190207740A1 (en) 2017-12-28 2019-07-04 Microsemi Storage Solutions, Inc. System and method for drift compensation in data communications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101083641B (zh) * 2006-05-30 2010-06-09 富士通株式会社 输入信号调节方法、自适应均衡器以及控制变量调节方法
EP2498463A3 (de) 2007-01-08 2013-09-11 Rambus Inc. Adaptiver zeitkontinuierlicher Leitungsentzerrer zur Korrektur der Intersymbolinterferenz des ersten Nachläufers
US8229020B2 (en) 2009-03-23 2012-07-24 Oracle America, Inc. Integrated equalization and CDR adaptation engine with single error monitor circuit
US8300684B2 (en) 2009-06-29 2012-10-30 Lsi Corporation Real-time eye monitor for statistical filter parameter calibration
US8923382B2 (en) * 2012-03-16 2014-12-30 Lsi Corporation Tap adaptation with a fully unrolled decision feedback equalizer
WO2014209326A1 (en) 2013-06-27 2014-12-31 Intel Corporation Low power equalizer and its training
US8971396B1 (en) 2013-08-22 2015-03-03 Pmc-Sierra Us, Inc. Windowed-based decision feedback equalizer and decision feedback sequence estimator
JP6532777B2 (ja) 2015-07-02 2019-06-19 株式会社日立製作所 等化器
US9455848B1 (en) * 2015-08-18 2016-09-27 Xilinx, Inc. DFE-skewed CDR circuit
US10181969B2 (en) 2016-12-08 2019-01-15 Intel Corporation High performance receiver with single calibration voltage
US10355889B1 (en) * 2016-12-12 2019-07-16 Cadence Design Systems, Inc. Adaptive pattern filtering for clock and data recovery to minimize interaction with decision feedback equalization
US11316726B2 (en) * 2018-06-27 2022-04-26 Intel Corporation Calibration for mismatch in receiver circuitry with multiple samplers
US10230552B1 (en) 2018-07-26 2019-03-12 Microsemi Storage Solutions, Inc. System and method for decision feedback equalizer (DFE) adaptation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190207740A1 (en) 2017-12-28 2019-07-04 Microsemi Storage Solutions, Inc. System and method for drift compensation in data communications

Also Published As

Publication number Publication date
CN115362657B (zh) 2023-07-14
DE112020006807T5 (de) 2023-01-19
US10972249B1 (en) 2021-04-06
CN115362657A (zh) 2022-11-18
WO2021216113A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
DE112020006807B4 (de) System und verfahren zur driftkompensation für datenabtaster
DE102011086659B4 (de) Verfahren und vorrichtung zur steuerung eines zeitkontinuierlichen linear-equalizers
DE112013005182B4 (de) Hochgeschwindigkeits-Empfängerschaltungen
DE69822479T2 (de) Impedanzsteuerungsschaltung
DE112013004799B4 (de) Symmetrisierung von Entzerrungsbestrebungen von Strukturen von Sendefiltern mit endlicher Impulsantwort und Empfangslinearentzerrern oder Entscheidungsrückkopplungsentzerrern in Hochgeschwindigkeits-Serien-Verkettungen
DE102014113920A1 (de) Ein modaler, PAM2/4, gepipelineter, programmierbarer Empfänger mit einem vorwärtsgerichteten Equalizer (FFE) und einem entscheidungsrückgekoppelten Equalizer (DFE), die für eine Vorwärts-Fehlerkorrektur (FEC)- und eine Bit-Fehlerraten (BER)-Performanz optimiert sind
DE102005022684B4 (de) DFE-Eingabepuffer, Entzerreinheit, Speicherbauelement, Speichersystem und Entzerrverfahren
DE112006001042T5 (de) Zeitkontinuierlicher Equalizer
DE2213897B2 (de) Vorrichtung zum Übertragen eines Mehrpegelsignals
EP0488456B1 (de) Maximalwahrscheinlichkeitsempfänger
DE3001397C2 (de)
DE102007034574A1 (de) Datenempfänger und Verfahren zum Verarbeiten von empfangenen Daten
DE19907529B4 (de) Vorrichtung und Verfahren zum adaptiven Ausgleichen von Arbeitszyklusstörungen
DE60033623T2 (de) Entzerrung für einen Mehrkanal-Empfangsknoten
DE19738362B4 (de) Schaltungsanordnung und Verfahren zur Minimierung von Bitfehlern
DE2711292A1 (de) Verzoegerungsleitung
DE102014115814A1 (de) Ein ratenadaptiver Entzerrer, der sich selbst basierend auf detektierten Kanalbedingungen automatisch initialisiert, und ein entsprechendes Verfahren
DE102007013314A1 (de) Konzept zur Reduktion von Übersprechen
DE10101950C1 (de) Entscheidungsrückgekoppelte Entzerrervorrichtung
DE102004026800A1 (de) Verfahren zum Verändern einer Tiefe einer Interleaver-Vorrichtung oder Deinterleaver-Vorrichtung sowie entsprechende Interleaver-Vorrichtung und Deinterleaver-Vorrichtung
DE102004037857A1 (de) Verfahren zum Korrigieren von Rauschfehlern in einem Digitalsignal
DE102014111716A1 (de) Adaptiver Entzerrer
DE102013020813B4 (de) Technik zur Optimierung der Phase eines Datensignals, das über eine Kommunikationsverbindung gesendet wird
DE2060159C3 (de) Adaptives Filter
EP1005731A2 (de) Verfahren zur unterdrückung von störungen in einem bipolaren datenstrom und schaltungsanordnung zur durchführung des verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H03M0009000000

Ipc: H04L0025030000

R016 Response to examination communication
R018 Grant decision by examination section/examining division