DE102019123711A1 - Kodierung zur vermeidung von maximalen übergängen - Google Patents

Kodierung zur vermeidung von maximalen übergängen Download PDF

Info

Publication number
DE102019123711A1
DE102019123711A1 DE102019123711.4A DE102019123711A DE102019123711A1 DE 102019123711 A1 DE102019123711 A1 DE 102019123711A1 DE 102019123711 A DE102019123711 A DE 102019123711A DE 102019123711 A1 DE102019123711 A1 DE 102019123711A1
Authority
DE
Germany
Prior art keywords
pam
bit
block
bits
data line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019123711.4A
Other languages
English (en)
Inventor
Sunil SUDHAKARAN
Russ Newcomb
Rohit Rathi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102019123711A1 publication Critical patent/DE102019123711A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/06Code representation, e.g. transition, for a given bit cell depending only on the information in that bit cell
    • H03M5/08Code representation by pulse width
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/20Conversion to or from representation by pulses the pulses having more than three levels
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Dc Digital Transmission (AREA)
  • Error Detection And Correction (AREA)

Abstract

Ein PAM-4-Übertragungsverfahren teilt einen vollständigen Block von Rohdaten in zwei Halbblöcke auf, extrahiert ein Bit von jedem Halbblock und überträgt das extrahierte Bit auf einer DBI-Leitung, und kodiert die verbleibenden Bits des Halbblocks, um maximale Übergänge zwischen PAM-4-Symbolen auf einer Datenleitung zu vermeiden.

Description

  • HINTERGRUND
  • Die PAM-4-Signalisierung (mit 4 Stufen) wird für zukünftige grafische Speicherschnittstellen vorgeschlagen, um die Übertragungsbandbreite zwischen Speicher und anderen Systemkomponenten, wie beispielsweise Zentraleinheiten (CPUs) und Grafikverarbeitungseinheiten (GPUs), zu erhöhen. Aufgrund der Verwendung von Signalen mit >2 Spannungspegeln ist PAM-4 anfälliger für Störungen durch ISI und Übersprechen als Verfahren mit zwei Spannungspegeln, wie PAM-2.
  • In der Telekommunikation ist die Inter-Symbol-Interferenz (ISI) eine Form der Verzerrung eines Signals, bei der ein Symbol die nachfolgenden Symbole stört. Dies ist ein störendes Phänomen, da die vorherigen Symbole eine ähnliche Wirkung haben wie Rauschen, was die Übertragung weniger zuverlässig macht.
  • Übersprechen ist jedes Phänomen, bei dem ein auf einer Schaltung oder auf einem Kanal eines Übertragungssystems übertragenes Signal einen unerwünschten Effekt in einer anderen Schaltung oder in einem anderen Kanal erzeugt. Übersprechen wird in der Regel durch unerwünschte kapazitive, induktive oder leitende Kopplung von einer Schaltung oder von einem Kanal mit einer/m anderen verursacht.
  • Es besteht daher ein Bedarf für eine Kodierung, die die Auswirkungen von ISI und Crosstalk in PAM-4-Systemen reduziert.
  • KURZZUSAMMENFASSUNG
  • Es werden Techniken offenbart, um ISI und Übersprechen in PAM-4-Signalisierungssystemen zu reduzieren. Diese Techniken verwenden eine Vermeidung von maximalen Übergängen bzw. eine Maximum Transition Avoidance (MTA), um maximale Spannungsübergänge zwischen PAM-4-Symbolen auf den Datenleitungen zu vermeiden. Die DBI-Leitung eines PAM-4-Busses wird zur Übertragung kodierter Symbole verwendet, und eine Half-Burst-Technik bzw. Halbblock-Technik wird zur Kodierung und Übertragung der PAM-4-Symbole auf den Datenleitungen angewendet.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Um die Diskussion über ein bestimmtes Element oder einen bestimmten Vorgang leicht zu identifizieren, beziehen sich die höchstwertigsten Ziffern in einem Bezugszeichen auf die Figur, in der dieses Element zum ersten Mal eingeführt wird.
    • 1 stellt ein Datenkommunikationssystem 100 gemäß einer Ausführungsform dar.
    • 2 stellt eine Ausführungsform einer 7-8-Bit-Kodierung 200 dar.
    • 3 stellt eine Ausführungsform einer 7-8-Bit-Kodierung 300 dar.
    • 4 stellt eine Ausführungsform einer Kodiererarchitektur 400 dar.
    • 5 stellt ein Kodierungsverfahren 500 gemäß einer Ausführungsform dar.
    • 6 stellt eine Ausführungsform einer Dekodiererarchitektur 600 dar.
    • 7 stellt ein Dekodierungsverfahren 700 gemäß einer Ausführungsform dar.
    • 8 stellt eine Ausführungsform eines 7-8-Bit-Codebuchs 800 dar.
    • 9 stellt eine Ausführungsform eines Augendiagramms 900 dar.
    • 10 stellt eine Ausführungsform eines Augendiagramms 1000 dar.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf 1 umfasst ein Datenkommunikationssystem 100 einen Datenprozessor 102, der einen Verarbeitungskern 114, einen PAM-4-Symbolkodierer 104 und einen PAM-4-Sender 108 umfasst. Der Datenprozessor 102 kann in einigen Ausführungsformen eine GPU, eine CPU, ein System auf einem Chip (SoC) oder andere bekannte Datenverarbeitungssysteme und -vorrichtungen umfassen. Der Datenprozessor 102 kommuniziert mit einem GDDR-Speicher 112 über einen Speicherbus 118. Ein PAM-4-Empfänger 110 und ein PAM-4-Symboldekodierer 106 empfangen und verarbeiten PAM-4-Signale, die vom Datenprozessor 102 an den GDDR-Speicher 112 über den Speicherbus 118 übertragen werden.
  • Der Datenprozessor 102 verwendet einen internen Datenbus 116, um Datenblöcke zum und vom Verarbeitungskern 114 zu übertragen. Der PAM-4-Symbolkodierer 104 empfängt einen Block, der vom Verarbeitungskern 114 zu kodieren ist, und führt die Kodierung auf diesem Block durch. Der PAM-4-Sender 108 sendet den kodierten Block über den Speicherbus 118 an den PAM-4-Empfänger 110. Der PAM-4 Empfänger 110 empfängt den kodierten Block und sendet den kodierten Block an den PAM-4 Symboldekodierer 106, um den Block zu dekodieren. Nach der Dekodierung wird der Block an den GDDR-Speicher 112 gesendet.
  • Dies ist eine vereinfachte Darstellung. In der Praxis gibt es typischerweise Kodierer und Dekodierer an beiden Enden des Speicherbusses 118 zum Schreiben und Lesen in den GDDR-Speicher 112.
  • 2 stellt eine Ausführungsform der 7-8-Bit-Kodierung 200 dar. Sowohl für die Rohdaten 202 als auch für die kodierten Daten 204 entspricht jede Zeile DQ[i] einer seriellen Datenleitung. In den Rohdaten 202 sind die Spalten sequentielle 2-Bit-Positionen in 16-Bit-Datenblöcken. So werden beispielsweise das zweite und dritte Bit jedes Datenblocks in der Spalte mit der Bezeichnung d[2:3] dargestellt. Jeder Datenblock entspricht auf jeder seriellen Datenleitung DQ zwei 1/2-Blöcken zu je 8 Bits. So wird beispielsweise auf der seriellen Datenleitung DQ[0] der 16-Bit-Datenblock in einen ersten 1/2-Block d0[0]d0[7:1] und einen zweiten 1/2-Block d0[8]d0[15:9] unterteilt. Jeder 1/2-Block wird weiter in ein Paar 1-Bit:7-Bits unterteilt. So wird beispielsweise auf der seriellen Datenleitung DQ[0] der erste 1/2-Block d0[0]d0[7:1] in den 1-Bit-Wert d0[0] und den 7-Bit-Wert d0[7:1] unterteilt. Die Rohdaten werden nicht tatsächlich auf der seriellen Datenleitung übertragen, und die Darstellungen der Rohdaten in 2 und 3 sollen lediglich zeigen, wie die Rohdaten zur Kodierung aufgeteilt werden.
  • Bezogen auf die kodierten Daten 204 sind die Zeilen wieder die seriellen Datenleitungen, aber jetzt sind die Spalten Bitketten, die Symbole darstellen. So stellt beispielsweise s[0] das erste 2-Bit-PAM-4-Symbol auf jeder seriellen Datenleitung dar, s[1] das zweite 2-Bit-PAM-4-Symbol auf jeder seriellen Datenleitung, und so weiter. Die 7-8-Bitkodierung 200 kodiert Paare der 1-Bit-Rohdatenwerte von verschiedenen seriellen Datenleitungen als PAM-4-Symbole auf dem seriellen Datenpfad des DBI. Die restlichen 7 Bits jedes 1/2 Datenblocks werden in vier PAM-4-Symbole (8 Bits, hier Codewort genannt) auf der entsprechenden seriellen Datenleitung kodiert. So wird beispielsweise d0[7:1] als Codewort c0[7:0] auf DQ[0] kodiert. Das Codewort für jeweils 7 Bits an Rohdaten entspricht vier PAM-4-Symbolen. Die Zuordnung von 7-Bit-Rohdatenwerten zu Codewörtern erfolgt nach einem Algorithmus/Mapping, der/das maximale Übergänge zwischen den für die Codewörter auf den seriellen Datenleitungen erzeugten PAM-4-Spannungspegeln eines Bereichs vermeidet. Eine Ausführungsform dieses Algorithmus/Mappings wird im Folgenden näher beschrieben.
  • Die 7-8-Bit-Kodierung 200 und die 7-8-Bit-Kodierung 300 veranschaulichen eine Implementierung, bei der das erste Bit jedes 1/2-Blocks in ein Symbol auf der seriellen DBI-Datenleitung kodiert wird. In den exemplarisch kodierten Daten 204 werden d0[0] und d1[0] als 2-Bit-PAM-4-Symbol auf der seriellen Datenleitung des DBI kodiert. Ebenso werden d2[0] und d3[0] als 2-Bit-PAM-4-Symbol auf der seriellen DBI-Datenleitung kodiert, und so weiter. 3 veranschaulicht eine andere Ausführungsform einer 7-8-Bit-Codierung 300 zum Erzeugen kodierter Daten 302, bei der d0[0] und d0[8] als 2-Bit-PAM-4-Symbol auf der seriellen Datenleitung DBI kodiert werden, d1[0] und d1[8] als 2-Bit-PAM-4-Symbol auf der seriellen Datenleitung DBI kodiert werden, und so weiter. Im Allgemeinen kann jede Paarung der 1-Bit-Werte von den seriellen Datenleitungen (im Folgenden Verschachteln genannt) verwendet werden, um die PAM-4-Symbole auf der seriellen DBI-Datenleitung zu bilden. Im Allgemeinen kann jede Bitposition aus jedem 1/2-Block der 1-Bit-Wert sein, der in ein Symbol auf der seriellen Datenleitung des DBI kodiert wird, nicht nur Bit 0 und/oder Bit 8, wie es hier als Beispiel dargestellt ist.
  • Die folgende Abbildungstabelle wird in der folgenden Beschreibung zur Beschreibung der Codewörter verwendet. Dies ist nur ein nicht einschränkendes Beispiel zur Veranschaulichung.
    Code -3 -1 +1 +3
    Symbolbits 00 01 11 10
    Leitungsspannung (in % der Versorgungsspannung) 50% 66% 83% 100%
  • Für jeden gegebenen 1/2-Block gibt es 139 PAM-4 Codewörter, die keine internen -3 bis +3 Übergänge aufweisen und ein Muster von {+3,+1,-1} oder {-3,-1 ,+1} aufweisen. Da nur 7 Bits oder jeder 1/2-Block kodiert werden bzw. wird, sind nur 128 der 139 möglichen Codewörter mit diesen Übergängen erforderlich, um die hierin beschriebenen Verfahren zur Vermeidung von maximalen Übergangen zu implementieren.
  • In einer Ausführungsform geht der Kodierer davon aus, dass das letzte (vierte) Symbol des vorherigen Codeworts +3, +1 oder -1 ist (aber nicht -3 sein kann), und das folgende Codewort wird invertiert, wenn das höchstwertige Bit (MSB) des vorherigen Codeworts 1 ist. In dieser Beschreibung wird das MSB des letzten Symbols des ersten Codeworts eines Codewort-Paares für einen vollständigen Rohdaten-Block mit cx[0] und das MSB des zweiten Codeworts mit cx[8] bezeichnet, wobei x die Nummer der seriellen Datenleitung DQ ist, auf der das Codewort gesendet oder empfangen wird.
  • Diese Techniken vermeiden ein maximales Übergangsereignis (+3 => -3 oder -3 => +3) zwischen Blöcken von Symbolen. In einer Ausführungsform ist der Datenbus bei +3 im Leerlauf, so dass das erste Symbol eines kodierten Blocks +3, +1, -1, aber nicht -3 sein kann, jedoch gibt es keine Einschränkung der Werte des letzten Symbols eines kodierten Blocks, und somit kann das letzte Symbol in einem kodierten Block theoretisch bei -3, -1, +1 oder +3 liegen. Die Kodierung invertiert selektiv die Symbole an den Blockgrenzen, um einen Übergang von -3 zu +3 an den Blockgrenzen zu vermeiden. Am Ende eines kodierten Blocks gibt es vier mögliche Symbole: -3, -1, +1, +3. Wenn das letzte Symbol des aktuellen kodierten Blocks +1 oder +3 (MSB ist „1“) ist, wird der nächste Block mittels der normalen Kodierungstabelle übertragen. Wenn das letzte Symbol des aktuellen kodierten Blocks -3 oder -1 („MSB ist „0“) ist, dann verwendet der Kodierer Komplemente der Ausgaben des kodierten Blocks.
  • Die Behandlung bestimmter Grenzfälle wird im Folgenden näher beschrieben.
  • Die Symbole, die auf der seriellen Datenleitung des DBI platziert sind, können mit dieser Technik +3/-3-Übergänge aufweisen und sollten technisch so weit von den Datenleitungen entfernt sein, dass Interferenzen mit den Daten vermieden werden.
  • 4 stellt eine Kodiererarchitektur 400 dar, die einen Kodiererblock 402, der einen 7:8-Kodierer 404, eine XNOR-Bank 406 und eine Verzögerung 408 für die serielle Datenleitung DQ[0] beinhaltet, und einen Kodiererblock 410, der einen 7:8-Kodierer 412, eine XNOR-Bank 414 und eine Verzögerung 416 für die serielle Datenleitung DQ[1] umfasst, umfasst. Ein Verteiler bzw. Splitter 420 verteilt die Bits am Eingang des Kodiererblocks 402, und ein Verteiler 422 verteilt die Bits am Eingang des Kodiererblocks 410. Ein Verteiler 424 verteilt die Bits am Ausgang des Kodiererblocks 402, und ein Verteiler 426 verteilt die Bits am Ausgang des Kodiererblocks 410. Diese Struktur wiederholt sich für andere Datenleitungen, die zur Vereinfachung der Beschreibung nicht dargestellt sind. Die Kodiererarchitektur 400 beinhaltet auch eine Verschachtelung 418.
  • In einer Ausführungsform umfasst jede XNOR-Bank acht XNOR-Gatter mit zwei Eingängen (die in 6 gezeigte Dekodierer-Ausführungsform verwendet die selbe Struktur), um selektiv Bits eines Codeworts zu invertieren, welches sich bezüglich des MSB vom unmittelbar vorhergehenden Codeworts unterscheidet, das gesendet oder empfangen wurde. Jedes XNOR-Gatter hat einen ersten Eingang, der das MSB ist, und einen zweiten Eingang, der ein Bit von dem Codewort ist, an dem gearbeitet wird.
  • Die Kodiererarchitektur 400 kann in Übereinstimmung mit dem in 5 dargestellten Kodierungsverfahren 500 arbeiten.
  • Mit Bezug zu 5 empfängt ein Kodierungsverfahren 500 für jede Zeile einen 16-Bit-Block (Block 502). In einigen Ausführungsformen gibt es acht Leitungen. Der 16-Bit-Block wird in zwei 8-Bit-Halbblöcke aufgeteilt (Block 504). Ein Bit jedes Halbblocks für jede Leitung wird dann an eine Verschachtelung gesendet (Block 506), das mit ähnlichen Bits von anderen Datenleitungen verschachtelt wird (Block 508). Die verschachtelten Bits werden dann entlang der DBI-Leitung als PAM-4-Symbole an den Empfänger gesendet (Block 510).
  • Die restlichen 7-Bit-Halbblöcke werden 7:8-Bit kodiert (Block 512). Ein Codebuch kann verwendet werden, um die 7:8-Bit-Kodierung durchzuführen. Es wird das höchstwertige Bit (MSB) des vorherigen Codeworts bestimmt (Block 514). Ist das MSB „1“ (Entscheidungsblock 516), so wird das Codewort invertiert (Block 518). Das MSB des aktuellen Codeworts wird für die Verwendung mit dem nächsten Codewort (Block 520) gespeichert. Die Codewörter werden dann als mehrstufige PAM-4-Symbole (Block 522) entlang der Leitung gesendet. Das Kodierungsverfahren 500 endet dann (Ende-Block 524).
  • 6 zeigt eine Dekodiererarchitektur 600, die der Kodiererarchitektur 400 von 4 entspricht. Die Dekodiererarchitektur 600 umfasst einen Dekodiererblock 602 für DQ[0], der einen 8:7-Dekodierer 608, eine XNOR-Bank 604, eine Verzögerung 606 und eine Verschachtelung 610 beinhaltet. Ein Verteiler 622 verteilt das Eingangsdatensignal auf den Dekodiererblock 602 auf. Der Dekodiererblock 612 für DQ[1] beinhaltet ebenfalls einen 8:7-Dekodierer 616, eine XNOR-Bank 614, eine Verzögerung 618 und eine Verschachtelung 620. Ein Verteiler 624 verteilt das Eingangsdatensignal an den Dekodiererblock 612. Ein Verteiler 626 verteilt das Eingangs-DBI-Signal an die Verschachtelung. Eine ähnliche Struktur wird für die Datenleitungen wiederholt, die nicht dargestellt sind.
  • Die Dekodiererarchitektur 600 kann gemäß dem in 7 dargestellten Dekodierungsverfahren 700 arbeiten.
  • Mit Bezug zu 7 empfängt ein Dekodierungsverfahren 700 das Codewort auf einer Datenleitung (Block 702). Das Dekodierungsverfahren 700 bestimmt, ob das MSB des vorherigen Codeworts eine „1“ ist (Entscheidungsblock 704). Wenn dies der Fall ist, wird das aktuell verarbeitete Codewort invertiert (Block 706). Sobald invertiert wurde oder wenn keine Invertierung durchgeführt wird, wird die 8:7-Dekodierung des Codeworts durchgeführt, um den Halbblock wiederherzustellen (Block 708). Die verschachtelten Bits von der DBI-Leitung werden empfangen (Block 710) und auf die entsprechenden Datenleitungen aufgeteilt (Block 712), (Block 714). Die DBI-Bits werden mit dem zugehörigen Halbblock neu kombiniert (Block 716). Die Halbblöcke für jede Leitung werden dann zum Vollblock für diese Leitung zusammengefasst (Block 718).
  • 8 veranschaulicht ein exemplarisches 7-8-Bit-Codebuch 800 und ein invertiertes Codebuch 806. Das abgebildete 7-8-Bit-Codebuch 800 zeigt die Eingangsdaten 802 und deren Zuordnung zu den Codewörtern 804. Jeder 7-Bit-Halbblock der Eingangsdaten 802 wird durch die 7:8-Codierung auf einen 8-Bit-Wert in den Codewörtern 804 abgebildet. Das invertierte Codebuch 806 kann zur Kodierung der Eingangsdaten 802 verwendet werden, wenn das MSB des vorherigen Codeworts wie zuvor beschrieben auf „1“ gesetzt war. Ob ein invertiertes Codebuch 806 verwendet wird oder ob das Codewort aus dem 7-8-Bit-Codebuch 800 mit Logikgattern wie einer XNOR-Bank 406 invertiert wird, ist eine Entwurfswahl, die auf der Grundlage der erforderlichen Leistung, der Schaltungsfläche und möglicherweise anderer Überlegungen getroffen wird.
  • Das 7-8-Bit-Codebuch 800 wird erzeugt, um Übergänge zu verwenden, die +3 <-> -3 (maximale Übergänge) vermeiden. Unter Verwendung von Wiederholungsbeziehungen:
    • • a[i]: Anzahl der PAM-4-Symbolsequenzen, die mit - 3 enden.
    • • b[i]: Anzahl der PAM-4-Symbolsequenzen, die mit - 1 enden.
    • • c[i]: Anzahl der PAM-4-Symbolsequenzen, die mit + 1 enden.
    • • d[i]: Anzahl der PAM-4-Symbolsequenzen, die mit + 3 enden.
  • Dann sind die Wiederholungsbeziehungen wie folgt. Die a- und d-Terme beinhalten nur drei Beziehungen, da -3 -> +3 und +3 -> -3 nicht verwendet werden.
    • • a[i] = a[i-1]+b[i-1]+c[i-1]
    • • b[i] = a[i-1]+b[i-1]+c[i-1]+d[i-1]
    • • c[i] = a[i-1]+b[i-1]+c[i-1]+d[i-1]
    • • d[i] = b[i-1]+c[i-1]+d[i-1]
  • Es gibt 139 Möglichkeiten für Codewörter, die nicht zu +3/-3-Übergängen führen. Aus diesen werden 128 als Einträge im 7-8-Bit-Codebuch 800 ausgewählt. Es gibt zwei Fälle, die bei der Anwendung des Codebuchs zu berücksichtigen sind.
    • Fall I: MSB des letzten Symbols = 1
    • Fall II: MSB des Symbols = 0.
  • Für Fall I ist das letzte Symbol des Blocks entweder +1 oder +3, daher sollte das erste Symbol des nachfolgenden Blocks auf {+3,+1 ,-1} beschränkt sein. Für Fall II ist das letzte Symbol entweder -3 oder -1, und damit ist das nachfolgende erste Symbol auf {-3,-1,+1} beschränkt. Es ist unnötig, zwei getrennte Codebücher zu führen, und es reicht aus, das Codebuch für verschiedene Fälle zu invertieren (z.B. im ursprünglichen Fall ist MSB=0 und im invertierten Fall ist MSB=1).
  • Eine Möglichkeit, ISI in einem Datenübertragungssystem experimentell zu untersuchen, besteht darin, die empfangene Welle auf die vertikalen Ablenkplatten eines Oszilloskops aufzubringen und eine Sägezahnwelle mit der übertragenen Symbolrate R (R = 1/T) auf die horizontalen Ablenkplatten aufzubringen. Die resultierende Anzeige wird wegen seiner Ähnlichkeit mit dem menschlichen Auge als Augenmuster bezeichnet. Der innere Bereich des Augenmusters wird als Augenöffnung bezeichnet. Ein Augenmuster liefert viele Informationen über die Leistungsfähigkeit des Systems. Es ist ein Werkzeug zur Bewertung der kombinierten Auswirkungen von Kanalrauschen und Intersymbolstörungen auf die Leistung des Übertragungssystems. Es ist die synchronisierte Überlagerung aller möglichen Realisierungen des interessierenden Signals, die innerhalb eines bestimmten Signalisierungsintervalls betrachtet werden.
    1. 1. Die Breite der Augenöffnung definiert das Zeitintervall, in dem die empfangene Welle ohne Fehler vom ISI abgetastet werden kann. Die bevorzugte Zeit für die Probenahme ist der Zeitpunkt, zu dem das Auge am weitesten geöffnet ist.
    2. 2. Die Empfindlichkeit des Systems gegenüber Zeitfehlern wird durch die Schließrate des Auges bestimmt, wenn die Abtastzeit variiert wird.
    3. 3. Die Höhe der Augenöffnung zu einer bestimmten Abtastzeit definiert den Abstand zum Rauschen.
  • Der Rauschabstand - die Rauschmenge, die erforderlich ist, damit der Empfänger einen Fehler erhält - ergibt sich aus dem Abstand zwischen dem Signal und dem Nullamplitudenpunkt zur Abtastzeit; mit anderen Worten, je weiter von Null zur Abtastzeit das Signal entfernt ist, desto besser ist es. Damit das Signal richtig interpretiert werden kann, muss es irgendwo zwischen den beiden Punkten abgetastet werden, an denen sich die Null-zu-Eins- und die Eins-zu-Null-Übergänge kreuzen. Auch hier gilt: Je weiter diese Punkte auseinander liegen, desto besser, da das Signal weniger empfindlich auf Fehler im Timing der Abtastwerte am Empfänger reagiert.
  • Mit Bezug zu 9 und 10 vergrößern die hierin beschriebenen Verfahren das obere und untere Auge (Augendiagramm 900, Augendiagramm 1000) für PAM-4-Übertragungen über Ansätze, die nicht die MTA-Kodierung verwenden. Das mittlere Auge kann sich je nach Positionierung der ISI-Cursor auch vergrößern. Die Augenvergrößerung kann bei Frequenzen über 20 Gbit/s größer sein.

Claims (17)

  1. PAM-4-Übertragungsverfahren umfassend: Aufteilen eines vollständigen Blockes von Rohdaten auf mindestens einer Datenleitung in zwei Halbblöcke; Extrahieren eines Bits von jedem Halbblock und Übertragen des extrahierten Bits auf einer DBI-Leitung; und Kodieren der verbleibenden Bits des Halbblocks, um maximale Übergänge zwischen PAM-4-Symbolen auf der Datenleitung zu vermeiden.
  2. PAM-4-Übertragungsverfahren nach Anspruch 1, wobei der vollständige Block 16 Bits und jeder Halbblock 8 Bits aufweist.
  3. PAM-4-Übertragungsverfahren nach Anspruch 2, wobei 7 Bits von jedem Halbblock in ein 8-Bit-Codewort kodiert werden, welches vier PAM-4-Symbole auf der Datenleitung repräsentiert.
  4. PAM-4-Übertragungsverfahren nach einem der vorhergehenden Ansprüche, wobei die extrahierten Bits als ein PAM-4-Symbol auf der Datenleitung kodiert werden.
  5. PAM-4-Übertragungsverfahren nach Anspruch 4, wobei ein extrahiertes Bit von einem ersten Halbblock auf einer bestimmten Datenleitung mit einem extrahierten Bit von einem zweiten Halbblock auf der bestimmten Datenleitung kombiniert wird, um das PAM-4-Symbol auf der DBI-Leitung auszubilden.
  6. PAM-4-Übertragungsverfahren nach Anspruch 4 oder 5, wobei ein extrahiertes Bit von einem Halbblock auf einer ersten Datenleitung mit einem extrahierten Bit von einem Halbblock auf einer anderen Datenleitung kombiniert wird, um das PAM-4-Symbol auf der DBI-Leitung auszubilden.
  7. PAM-4-Übertragungsverfahren nach einem der vorhergehenden Ansprüche, wobei die extrahierten Bits das niederwertigste Bit von jedem der Halbblöcke sind.
  8. PAM-4-Übertragungsverfahren nach einem der vorhergehenden Ansprüche, darüber hinaus umfassend: Invertieren eines Codebuchs, welches eingesetzt wird, um die verbleibenden Bits eines zweiten Halbblocks zu kodieren, wenn das höchstwertige Bit eines Symbols eines ersten Halbblocks einen vorbestimmten Wert aufweist.
  9. Sender für einen Datenbus, wobei der Sender umfasst: einen Verteiler, um einen vollständigen Block von Rohdaten auf mindestens einer Datenleitung in zwei Halbblöcke aufzuteilen und um ein Bit von jedem Halbblock zur Übertragung auf einer DBI-Leitung zu extrahieren; und einen Kodierer, welcher konfiguriert ist, um die verbleibenden Bits des Halbblockes zu kodieren, um maximale Übergänge zwischen PAM-4-Symbolen auf der Datenleitung zu vermeiden.
  10. Sender nach Anspruch 9, wobei der vollständige Block 16 Bits und jeder Halbblock 8 Bits aufweist.
  11. Sender nach Anspruch 10, wobei der Kodierer konfiguriert ist, um 7 Bits von jedem Halbblock in ein 8-Bit-Codewort zu kodieren, welches vier PAM-4-Symbole auf der Datenleitung repräsentiert.
  12. Sender nach einem der Ansprüche 9 bis 11, darüber hinaus eine Verschachtelung umfassend, um die extrahierten Bits als ein PAM-4-Symbol auf der DBI-Leitung zu kodieren.
  13. Sender nach Anspruch 12, wobei der Kodierer konfiguriert ist, um das extrahierte Bit von einem ersten Halbblock auf einer bestimmten Datenleitung mit dem extrahierten Bit von einem zweiten Halbblock auf der bestimmten Datenleitung zu kodieren, um das PAM-4-Symbol auf der DBI-Leitung auszubilden.
  14. Sender nach Anspruch 12 oder 13, wobei der Kodierer konfiguriert ist, um das extrahierte Bit von einem Halbblock auf einer ersten Datenleitung mit dem extrahierten Bit von einem Halbblock auf einer anderen Datenleitung zu kodieren, um das PAM-4-Symbol auf der DBI-Leitung auszubilden.
  15. Sender nach einem der Ansprüche 9 bis 14, wobei das extrahierte Bit das niederwertigste Bit des Halbblocks ist.
  16. Sender nach einem der Ansprüche 9 bis 15, wobei der Kodierer konfiguriert ist, um ein Codebuch zu invertieren, welches eingesetzt wird, um die verbleibenden Bits eines zweiten Halbblocks zu kodieren, wenn das höchstwertigste Bit eines Symbols eines ersten Halbblocks einen vorbestimmten Wert aufweist.
  17. Dekodierer umfassend: einen Verteiler, um ein Bit jeweils von zwei empfangenen Halbblöcken zu extrahieren; einen Dekodierer; eine Verzögerung, um zu bewirken, dass die extrahierten Bits durch den Dekodierer mit einer Verzögerung nach einem Empfangen der zwei Halbblöcke empfangen werden; und eine Verschachtelung, um Daten, welche von dem Dekodierer ausgegeben werden, mit Bits, welche auf einer DBI-Leitung empfangen werden, zu kombinieren.
DE102019123711.4A 2018-01-24 2019-09-04 Kodierung zur vermeidung von maximalen übergängen Pending DE102019123711A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862621056P 2018-01-24 2018-01-24
US16/124,085 2018-09-06
US16/124,085 US10491238B2 (en) 2018-01-24 2018-09-06 Maximum transition avoidance (MTA) encoding

Publications (1)

Publication Number Publication Date
DE102019123711A1 true DE102019123711A1 (de) 2020-03-12

Family

ID=67300253

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019123711.4A Pending DE102019123711A1 (de) 2018-01-24 2019-09-04 Kodierung zur vermeidung von maximalen übergängen

Country Status (2)

Country Link
US (2) US10491238B2 (de)
DE (1) DE102019123711A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159153B2 (en) * 2018-03-29 2021-10-26 Nvidia Corp. Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US11966348B2 (en) 2019-01-28 2024-04-23 Nvidia Corp. Reducing coupling and power noise on PAM-4 I/O interface

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11870616B2 (en) * 2020-01-27 2024-01-09 Micron Technology, Inc. Postamble for multi-level signal modulation
KR20210149543A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR20220086904A (ko) 2020-12-17 2022-06-24 삼성전자주식회사 데이터 전송 방법 및 데이터 전송 장치
US11894099B2 (en) 2020-12-28 2024-02-06 Micron Technology, Inc. Programmable memory timing
US11824563B2 (en) * 2021-03-10 2023-11-21 Samsung Electronics Co., Ltd. Encoding and decoding apparatuses and methods for implementing multi-mode coding
US11757567B2 (en) * 2021-03-10 2023-09-12 Samsung Electronics Co., Ltd. Devices and methods for encoding and decoding to implement a maximum transition avoidance coding with minimum overhead
KR20220140234A (ko) 2021-04-09 2022-10-18 삼성전자주식회사 멀티 레벨 신호 시스템에서 최적 전이 코드를 생성하기 위한 신호 처리 방법 및 반도체 장치
US11656958B2 (en) 2021-04-29 2023-05-23 Mellanox Technologies, Ltd. Redundancy data bus inversion sharing
US11500561B1 (en) * 2021-05-03 2022-11-15 Micron Technology, Inc. Masked training and analysis with a memory array
US11907119B2 (en) 2021-07-14 2024-02-20 Micron Technology, Inc. Array access with receiver masking
WO2023122445A1 (en) * 2021-12-20 2023-06-29 Nvidia Corporation Techniques for data scrambling on a memory interface

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260155B2 (en) * 2001-08-17 2007-08-21 Synopsys, Inc. Method and apparatus for encoding and decoding digital communications data
US7620116B2 (en) * 2003-02-28 2009-11-17 Rambus Inc. Technique for determining an optimal transition-limiting code for use in a multi-level signaling system
US7561624B2 (en) * 2004-11-22 2009-07-14 Fonseka John P Multi-interval line coding for high speed data communication
US10599606B2 (en) * 2018-03-29 2020-03-24 Nvidia Corp. 424 encoding schemes to reduce coupling and power noise on PAM-4 data buses
US11159153B2 (en) * 2018-03-29 2021-10-26 Nvidia Corp. Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11159153B2 (en) * 2018-03-29 2021-10-26 Nvidia Corp. Data bus inversion (DBI) on pulse amplitude modulation (PAM) and reducing coupling and power noise on PAM-4 I/O
US11966348B2 (en) 2019-01-28 2024-04-23 Nvidia Corp. Reducing coupling and power noise on PAM-4 I/O interface

Also Published As

Publication number Publication date
US10491238B2 (en) 2019-11-26
US20190386677A1 (en) 2019-12-19
US10594337B2 (en) 2020-03-17
US20190229749A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
DE102019123711A1 (de) Kodierung zur vermeidung von maximalen übergängen
DE10134472B4 (de) Sende- und Empfangsschnittstelle und Verfahren zur Datenübertragung
DE102019108205A1 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
EP0276753B1 (de) Verfahren und Vorrichtung zur digitalen Nachrichtenübertragung und/oder -aufzeichnung und -wiedergabe
DE102019107849A1 (de) 424-Kodierungsschemata zur Reduzierung von Kopplung und Leistungsrauschen auf PAM-4-Datenbussen
DE19781914C2 (de) System zum Implementieren von lauflängenbegrenzten Codes
DE69632879T2 (de) Kodeübertragung mit lokaler Parität
DE2805294C2 (de) Codierende Übertragungsanlage für Faksimile-Signale
DE1162398B (de) Verdichter fuer Daten, die aus Bits verschiedener Wertigkeit bestehen
DE202009019093U1 (de) Vorrichtung und System für automatische Datenausrichter für mehrere serielle Empfänger
DE3217861A1 (de) Verfahren und apparat zur kompensation von signallaufzeitaenderungen innerhalb der kanaele einer mehrkanalvorrichtung
DE2714346B2 (de) Vorrichtung zum Darstellen von Zeichen mittels eines Sichtgerätes
DE2925663A1 (de) Vorrichtung zur kompression binaerer signale fuer ein system zur kodierten uebertragung von faksimiles
DE2500055C2 (de) Faksimile-uebertragungssystem
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE2826450C3 (de) Verfahren zum Steuern der Übertragung digitaler Signale und Anordnung zur Durchführung des Verfahrens bei einer digitalen Faksimileübertragungseinrichtung
DE2717882A1 (de) Numerisches zeitmultiplexsystem
DE1934869A1 (de) Verfahren und Geraet zur Kodierung asynchroner Digitalsignale
EP0769853B1 (de) Logischer Block für einen Viterbi-Decoder
DE2834533A1 (de) Faksimile-kommunikations bzw. uebertragungssystem
DE2104132B2 (de) Anordnung zur Mehrfachfehlererkennung und Einzelfehlerkorrektur
DE19907728A1 (de) Vorrichtung und Verfahren zum Erzeugen eines Datenstroms und Vorrichtung und Verfahren zum Lesen eines Datenstroms
DE112004003153B4 (de) Datenübertragungssystem mit reduziertem Leistungsverbrauch, Verfahren und Übertragungsschaltung
DE60109620T2 (de) scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN
Walther Towards Practical and Secure Channel Impulse Response-based Physical Layer Key Generation

Legal Events

Date Code Title Description
R012 Request for examination validly filed