DE102019108205B4 - Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen - Google Patents

Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen Download PDF

Info

Publication number
DE102019108205B4
DE102019108205B4 DE102019108205.6A DE102019108205A DE102019108205B4 DE 102019108205 B4 DE102019108205 B4 DE 102019108205B4 DE 102019108205 A DE102019108205 A DE 102019108205A DE 102019108205 B4 DE102019108205 B4 DE 102019108205B4
Authority
DE
Germany
Prior art keywords
level
bits
data
symbol
pam
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
DE102019108205.6A
Other languages
English (en)
Other versions
DE102019108205A1 (de
Inventor
Donghyuk Lee
Michael James O´Connor
John Wilson
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 DE102019108205A1 publication Critical patent/DE102019108205A1/de
Application granted granted Critical
Publication of DE102019108205B4 publication Critical patent/DE102019108205B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B3/00Line transmission systems
    • H04B3/02Details
    • H04B3/32Reducing cross-talk, e.g. by compensating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4917Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using multilevel codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Dc Digital Transmission (AREA)

Abstract

Verfahren umfassend:
Kodieren von ersten zwei Bits von jeder von mehreren Sequenzen von fünf Bits in einer Reihe von Datenbits auf einer Datenspur eines seriellen Datenbusses als ein Vier-Niveau-Symbol;
Kodieren von nächsten drei Bits von jeder der Sequenzen von fünf Bits auf der Datenspur als zwei Drei-Niveau-Symbole; und
Kodieren von mindestens einem einzelnen Bit auf der Datenspur als ein Zwei-Niveau-Symbol aus einem PAM-4-Mittelbereich,
wobei es sich bei PAM-4 um eine Pulsamplitudenmodulation handelt, bei welcher jeweils zwei Datenbits als ein Vier-Niveau-Symbol kodiert werden, welches einem von vier verschiedenen Spannungsniveaus entspricht,
wobei das Zwei-Niveau-Symbol nur eines der beiden mittleren Spannungsniveaus verwendet.

Description

  • Moderne Systeme mit einem hohen Durchsatz verwenden mehrere hochbandige Ein-/Ausgabeschnittstellen, um ein Signalisierungsnetzwerk zwischen Recheneinheiten, Speichereinheiten und Speichervorrichtungen zu bilden. So verbindet beispielsweise Peripheral Component Interconnect Express (PCI-E) mehrere Peripheriegeräte mit Zentraleinheiten (CPUs) und Grafikprozessoren (GPUs). Diese Schnittstellen können mehrere serielle Datenbusse umfassen, die mit hoher Frequenz arbeiten.
  • Die WO 2015 / 077 606 A1 beschreibt eine Kommunikationsverbindung, bei welcher mittels einer Pulsamplitudenmodulation Signale mit vier verschiedenen Spannungsniveaus übertragen werden. Dabei verbrauchen bestimmte logische Zustände bei der Übertragung mehr Leistung als andere, wobei die Gesamtleitung möglichst klein gehalten werden soll.
  • Die Pulsamplitudenmodulation (PAM) kann auf einem mehrspurigen seriellen Datenbus verwendet werden, um mehrere Datenbits gleichzeitig zu übertragen, indem die Daten als unterschiedliche Spannungspegel bzw. Spannungsniveaus kodiert werden. Hier bezeichnet „Spur“ („lane“) eine einzelne Datenspur bzw. Datenleitung eines seriellen Datenbusses. Ein „Datenburst“ bzw. „Datenblock“ bezieht sich auf Bits, die auf den Datenspuren eines seriellen Datenbusses in demselben Bustaktintervall, d.h. parallel, platziert sind.
  • Ein Beispiel für eine PAM-Kommunikation ist PAM-4. Während jedes Bustaktintervalls kodiert PAM-4 zwei Datenbits (00, 01, 10, 11) auf jeder Datenspur eines seriellen Datenbusses als eines von vier verschiedenen Spannungsniveaus (Symbolen). Da in jedem Bustaktintervall auf jeder Datenspur zwei Bits kodiert werden, ermöglicht PAM-4 idealerweise die doppelte Bandbreite im Vergleich zur herkömmlichen Zwei-Niveau-Signalisierung bzw. Signalisierung mit einem von zwei Niveaus (z.B. PAM-2) auf seriellen Datenbussen, die mit vergleichbaren Bustaktfrequenzen arbeiten. PAM-4-Symbole verwenden vier verschiedene Spannungspegel bzw. Spannungsniveaus, so dass der Unterschied der Symbolwerte bezüglich der Spannungsniveaus in PAM-4 im Vergleich zu PAM-2 geringer ist. Dies macht die PAM-4-Kommunikation anfälliger für Störungen, wie Kopplungsrauschen zwischen Datenspuren auf einem seriellen Datenbus und Stromversorgungsrauschen, was das Signal-Rausch-Verhältnis (SNR) verringert.
  • Ein Mechanismus zur Minderung dieser Rauscheffekte ist die Verwendung der Data Bus Inversion (DBI). Für einen gegebenen Datenburst bzw. Datenblock reduziert die DBI den Gesamtumfang der Spannungsniveauübergänge über die Datenspuren eines seriellen Datenbusses um bis zu der Hälfte, indem die Polarität der Bits in jedem Datenblock auf dem seriellen Datenbus intelligent eingestellt wird. Die DBI benötigt ein zusätzliches Metadatenbit pro Datenblock, um die Einstellung der Datenblock-Polarität (nicht invertierter Datenblock oder invertierter Datenblock) an den Empfänger zu übertragen. Dieses Metadatenbit wird oft auf einer zusätzlichen Datenspur übertragen, die von den Datenspuren (jeweils auch eine Datenspur, typischerweise) des seriellen Datenbusses getrennt ist.
  • Viele serielle Datenbusse bestehen nur aus einer einzigen Datenspur zwischen Sender und Empfänger. Das Hinzufügen einer zusätzlichen Metadatenspur kann somit zu einem bis zu 100%igen Overhead bei der Anzahl der für den seriellen Datenbus benötigten Datenspuren führen.
  • Figurenliste
  • Um die Diskussion über ein bestimmtes Element oder einen bestimmten Vorgang leicht zu identifizieren, beziehen sich die höchstwertigste(n) Ziffer(n) 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 eines PAM-4-Senders 200 dar.
    • 3 stellt eine Ausführungsform einer Spannungswellenform 300 einer konventionellen PAM-4-Datenspur dar.
    • 4 stellt einen PAM-433-Encoder 400 gemäß einer Ausführungsform dar.
    • 5 stellt eine Ausführungsform einer Spannungswellenform 500 einer PAM-433-Datenspur dar.
    • 6 stellt eine Ausführungsform einer Datenspur-Spannungswellenform 600 dar.
    • 7 stellt eine Ausführungsform einer Datenspur-Spannungswellenform 700 dar.
    • 8 stellt eine Ausführungsform einer Datenspur-Spannungswellenform 800 dar.
    • 9 stellt eine Ausführungsform einer Datenspur-Spannungswellenform 900 dar.
    • 10 stellt eine Ausführungsform einer PAM-433-Routine 1000 dar.
    • 11 stellt eine Ausführungsform einer PAM-N-Routine 1100 dar.
    • 12 stellt eine Ausführungsform einer PAM-4433-Kodierung 1200 dar.
    • 13 stellt eine Ausführungsform einer PAM-4433-Routine 1300 dar.
    • 14 stellt eine Ausführungsform einer variablen PAM-433-Kodierung 1400 dar.
    • 15 stellt eine Ausführungsform einer variablen PAM-433-Routine 1500 dar.
    • 16 stellt eine PAM-433-Kodierung 1600 gemäß einer Ausführungsform dar.
    • 17 stellt ein PAM-433-Kodierungsverfahren 1700 gemäß einer Ausführungsform dar.
    • 18 stellt eine PAM-433-Kodierung 1800 gemäß einer Ausführungsform dar.
    • 19 stellt ein PAM-433-Kodierungsverfahren 1900 gemäß einer Ausführungsform dar.
    • 20 stellt eine PAM-4433-Kodierung 2000 gemäß einer Ausführungsform dar.
    • 21 stellt ein PAM-4433-Kodierungsverfahren 2100 gemäß einer Ausführungsform dar.
    • 22 ist ein Blockdiagramm eines Computersystems 2200 mit einer GPU, in der Aspekte der Erfindung ausgestaltet sein oder ausgeführt werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Unter Bezugnahme auf 1 umfasst ein Datenkommunikationssystem 100 eine Sendevorrichtung, wie beispielsweise einen Datenprozessor 102, der einen Verarbeitungskern 114, einen PAM-4-Symbolencoder 104 und einen PAM-4-Sender 108 beinhaltet. Der Datenprozessor 102 kann in einigen Ausführungsformen eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), ein System auf einem Chip (SoC („System On a Chip“)) oder andere bekannte Datenverarbeitungsvorrichtungen umfassen.
  • Der Datenprozessor 102 kommuniziert mit einer Empfangsvorrichtung, wie beispielsweise einem Speicher 112, über einen Bus, wie beispielsweise einen Speicherbus 118. Ein PAM-4-Empfänger 110 und ein PAM-4-Symboldecoder 106 empfangen und verarbeiten PAM-4-Signale, die vom Datenprozessor 102 an den Speicher 112 über den Speicherbus 118 übertragen werden.
  • Der Datenprozessor 102 verwendet einen internen Datenbus 116, um Datenbursts bzw. Datenblöcke zum und vom Verarbeitungskern 114 über einen mehrspurigen internen Datenbus 116 zu übertragen. Der PAM-4-Symbolencoder 104 empfängt einen Datenblock, der vom Verarbeitungskern 114 zu kodieren ist, und führt auf diesem Block eine PAM-4-Kodierung 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-Symboldecoder 106, um den Block zu dekodieren. Nach der Dekodierung wird der Block an den Speicher 112 gesendet.
  • Dies ist eine vereinfachte Darstellung. In der Praxis gibt es typischerweise Encoder und Decoder an beiden Enden des Speicherbusses 118 zum Schreiben in den und Lesen von dem Speicher 112.
  • 2 stellt einen PAM-4 Sender 200 für eine einzelne Datenspur eines seriellen Datenbusses in einer Ausführungsform dar. Der PAM-4-Sender 200 umfasst einen Sender 202 für ein niederwertigstes Bit, einen Sender 204 für ein höchstwertigstes Bit, einen Empfänger 206 und eine Datenspur 208. Der PAM-4-Sender 200 verwendet den Sender 202 für das niederwertigste Bit und den Sender 204 für das höchstwertigste Bit, um ein Vier-Niveau-Symbol bzw. Symbol mit einem von vier Niveaus auf der Datenspur 208 zu erzeugen. Dabei bezieht sich der Begriff „Symbol“ auf ein Spannungsniveau, das von einem Leitungstreiber auf einer Datenspur eines seriellen Datenbusses erzeugt wird, wobei das Spannungsniveau den Wert eines oder mehrerer Datenbits darstellt. Das „Kodieren eines Symbols“ bedeutet also, eine Leitungstreiberschaltung des seriellen Datenbusses physikalisch zu konfigurieren, um die Spannung auf der Datenspur auf einen bestimmten Wert zu treiben.
  • Wenn beispielsweise die zwei Bits der in das Symbol zu kodierenden Daten (1,1) sind, erzeugen die Ausgänge des Senders 202 für das niederwertigste Bit und des Senders 204 für das höchstwertigste Bit zusammen eine Spannung von z.B. 1,2 V auf der Datenspur 208 und der Strom auf der Datenspur 208 ist z. B. 0 mA aufgrund des Pull-Up-Transistors Rt am Empfänger 206 (beide Enden der Datenspur 208 liegen auf demselben Potential). Wenn die zwei Bits der in das Symbol zu kodierenden Daten (1,0) sind, kombinieren sich die Ausgänge des Senders 202 für das niederwertigste Bit und des Senders 204 für das höchstwertigste Bit, um eine Spannung von z. B. 1,0 V auf der Datenspur 208 und einen Strom von z.B. 5 mA auf der Datenspur 208 zu erzeugen. Wenn die zwei Bits der in das Symbol zu kodierenden Daten (0,1) sind, kombinieren sich die Ausgänge des Senders 202 für das niederwertigste Bit und des Senders 204 für das höchstwertigste Bit, um eine Spannung von z.B. 0,8 V auf der Datenspur 208 und einen Strom von z.B. 10 mA auf der Datenspur 208 zu erzeugen. Wenn die zwei Bits der in das Symbol zu kodierenden Daten (0,0) sind, kombinieren sich die Ausgänge des Senders 202 für das niederwertigste Bit und des Senders 204 für das höchstwertigste Bit, um eine Spannung von z.B. 0,6 V auf der Datenspur 208 und einen Strom von z.B. 15 mA auf der Datenspur 208 zu erzeugen. Die 0,6 V können hierin als die Basisübertragungsspannung Vb bezeichnet werden, von welcher die anderen Symbolspannungsniveaus per Differenz gebildet werden.
  • Der Symbolwert auf einer Datenspur entspricht somit dem aktuellen Stromverbrauch dieser Datenspur während eines Datenblocks. Daher können den Symbolwerten Gewichte zugeordnet werden, die ihre aktuellen Verbrauchskosten widerspiegeln. So kann beispielsweise dem Symbol für das Bitpaar (1,1) ein Gewicht von 0 zugeordnet werden; dem Symbol für das Bitpaar (1,0) kann ein Gewicht von 1 zugeordnet werden; dem Symbol für das Bitpaar (0,1) kann ein Gewicht von 2 zugeordnet werden; und dem Symbol für das Bitpaar (0,0) kann ein Gewicht von 3 zugeordnet werden.
  • In diesem Beispiel kann einem Datenblock auf einem achtspurigen seriellen Datenbus mit PAM-4-Kodierung ein Gesamtgewicht im Bereich von 0 bis 24 zugeordnet werden, was einem Stromverbrauchsbereich von z. B. 0 bis 120 mA entspricht. Das Gesamtgewicht für den Datenblock wäre 0, wenn alle Symbole im Datenblock jeweils das Bitpaar (1,1) kodierten, und das Gesamtgewicht für den Datenblock wäre 24, wenn alle Symbole im Datenblock jeweils das Bitpaar (0,0) kodierten. Datenblöcke, die nur 0en umfassen, verbrauchen den meisten Strom und sind daher aus Sicht des Stromverbrauchs am teuersten.
  • Unter Bezugnahme auf 3 kodiert eine herkömmliche PAM-4-Datenspur-Spannungswellenform 300 zwei Datenbits auf der Datenspur pro Taktintervall unter Verwendung von jeweils Vier-Niveau-Symbolen. Eine exemplarische Sequenz von 12 Bits ist 110001100011. Diese Sequenz kann als eine Reihe von Vier-Niveau-Symbolen, die jeweils zwei Bits kodieren, übertragen werden. Für die Bitfolge 110001100011 werden die Bits 11 in das erste Taktintervall t0-t1 des seriellen Datenbusses kodiert; die nächsten beiden Bits 00 werden in das zweite Taktintervall t1-t2 des seriellen Datenbusses kodiert; und so weiter. Dies führt zu zwei Spannungsniveauänderungen von 3ΔV auf dem seriellen Datenbus bei t0-t1 und bei t4-t5.
  • Die Bezeichnung nΔV bezieht sich auf eine Spannungsänderung von n-Deltas gegenüber der Basisspannung Vb auf einer Datenspur eines seriellen Datenbusses zwischen den Taktintervallen. Unter Bezugnahme zurück auf 2, in der verschiedene Symbole einen Unterschied von 0,2 V aufweisen und die Basisspannung Vb 0,6 V beträgt, würde beispielsweise eine Änderung von 3ΔV einer Änderung von 3 x 0,2 V oder einem Delta von 0,6 V auf der Datenspur zwischen den Bustaktzyklen entsprechen.
  • Höhere Spannungsdeltas erzeugen mehr Rauschen, weil sie zu höheren Stromschwankungen in der Datenspur führen. So können in 3 die 3ΔV-Deltas zwischen den Bustaktintervallen t0 und t1 und auch zwischen t4 und t5 ein signifikantes Rauschen erzeugen. Die Reduzierung dieser maximalen Delta-Spannungsaktivität trägt dazu bei, das SNR eines PAM-4-Systems wie dem PAM-4-Sender 200 zu verbessern.
  • Eine Logiktabelle für einen PAM-433-Encoder 400 bei einer Ausführungsform ist in 4 dargestellt. Der PAM-433-Encoder 400 eliminiert Spannungsniveauänderungen von 3ΔV auf dem seriellen Datenbus für die oben diskutierte exemplarische Bitfolge 11000110001100011. Wie in der Logiktabelle dargestellt ist, wird, wenn die 3-Bit-Sequenz 000 zwischen zwei 2-Bit-Sequenzen der Form 1x liegt (wobei x ein „don't care“-Wert von entweder 0 oder 1 ist), die 3-Bit-Sequenz 000 als die vier Bits 0111 kodiert (siehe erste Zeile der Logiktabelle, dritte Spalte). Mit anderen Worten, wenn die 3-Bit-Sequenz 000 zwei 2-Bit-Sequenzen überbrückt, die jeweils das höchstwertigste Bit gesetzt haben (1x), werden die sieben Bits insgesamt als 1x01111x neu kodiert. Wenn in dem obigen Beispiel die sieben Bits insgesamt 1100011 sind, ist die neu kodierte Sequenz 11011111. Jedes 2-Bit-Paar dieser Sequenz wird dann als PAM-4-Symbol auf der Datenspur des seriellen Datenbusses übertragen, was zur PAM-433- Datenspur-Spannungswellenform 500 in 5 führt. Die Spannungsniveauänderungen von 3ΔV in der Folge 110001100011 wurden auf Kosten eines seriellen Datenbus-Taktzyklus eliminiert. Mit anderen Worten wird die effektive Datenübertragungsrate unter der Annahme einer zufällig verteilten Bitfolge um 16,7% auf 1,67 Bits pro Taktintervall des seriellen Datenbusses reduziert, verglichen mit 2,0 Bits pro Taktintervall des seriellen Datenbusses bei konventionellem PAM-4.
  • Der PAM-433-Encoder 400 führt zu einer 33%igen Reduzierung des Worst-Case-Spannungsniveauschaltens auf der Datenleitung gegenüber herkömmlichen PAM-4-Encodern, ohne dass Metadaten übertragen werden müssen. Der PAM-433-Encoder 400 teilt eine Sequenz von Bits, die auf der Datenspur zu übertragen sind, in Sequenzen von fünf Datenbits auf: Die ersten beiden Bits von jeweils fünf Bits werden in ein Symbol mit vier möglichen Spannungsniveaus kodiert, und die letzten drei Bits der fünf Bits werden in zwei Symbole mit jeweils drei möglichen Spannungsniveaus kodiert.
  • Im Allgemeinen können die oben genannten Mechanismen auf PAM-N (Symbole, die N mögliche diskrete Spannungsniveaus verwenden) angewendet werden. So kann beispielsweise ein PAM-866-Schema bei der ersten Übertragung ein 3-Bit-Datensymbol und bei den folgenden beiden Übertragungen ein 5-Bit-Datensymbol übertragen (2,67 Bits pro Übertragung, 11,1% Overhead). PAM-866 kann das maximale Spannungsschalten von 7ΔV (PAM-8) auf 5ΔV reduzieren (28,5% Reduktion). Darüber hinaus können die Mechanismen auf andere beliebige Kombinationen von Datensymbolen (z.B. PAM-WXYZ) ausgedehnt werden, um eine höhere Zuverlässigkeit durch die Nutzung ähnlicher Mechanismen wie PAM-433 zu erreichen.
  • Die 6 bis 9 zeigen verschiedene Datenspur-Spannungswellenformen, wenn die PAM-433-Kodierung verwendet wird. Vier Datenspur-Spannungswellenformen werden für verschiedene Bitmuster dargestellt, die auf der Datenspur übertragen werden: Datenspur-Spannungswellenform 600, Datenspur-Spannungswellenform 700, Datenspur-Spannungswellenform 800 und Datenspur-Spannungswellenform 900.
  • Für die in 6 und 7 dargestellten Datenspur-Wellenformen werden ein erstes Drei-Niveau-Symbol 604 und ein zweites Drei-Niveau-Symbol 606 als „Brücke 610“ zwischen einem ersten Vier-Niveau-Symbol 602 und einem zweiten Vier-Niveau-Symbol 608 verwendet, die das gleiche höchstwertigste Bit (MSB) aufweisen. Beispiele, die zu diesem Muster passen, sind Paare von Vier-Niveau-Symbolen wie: 11 (3ΔV) / 10 (2ΔV) (6) und 01 (1ΔV) / 00 (0ΔV) (7). Die PAM-433-Kodierung richtet die Spannungsfenster des ersten Drei-Niveau-Symbols 604 und des zweiten Drei-Niveau-Symbols 606 so auf das Spannungsniveau des ersten Vier-Niveau-Symbols 602 bzw. des ersten Drei-Niveau-Symbols 604 aus, dass das maximale Spannungsdelta in der Datenspur-Spannungswellenform 2ΔV beträgt.
  • Für die in 8 und 9 dargestellten Datenspur-Wellenformen werden das erste Drei-Niveau-Symbol 604 und das zweite Drei-Niveau-Symbol 606 als Brücke 610 zwischen einem ersten Vier-Niveau-Symbol 602 und einem zweiten Vier-Niveau-Symbol 608 verwendet, die unterschiedliche MSBs aufweisen. In diesem Szenario ist ein Spannungsdelta von 3ΔV zwischen dem ersten Drei-Niveau-Symbol 604 und dem zweiten Drei-Niveau-Symbol 606 möglich. Der PAM-433 Encoder 400 bildet jedoch nicht die Werte ab, die dies in der Logiktabelle verursachen würden. Das Symbol, das ein Spannungsdelta von 3ΔV zwischen den Drei-Niveau-Blöcken verursachen würde, wird vom PAM-433-Encoder 400 nie verwendet, so dass das maximale Spannungsdelta in der Datenspur-Wellenform bei 2ΔV gehalten wird.
  • Unter Bezugnahme auf 10 teilt die PAM-433-Routine 1000 in einer Ausführungsform eine Reihe von Datenbits auf dem seriellen Datenbus in mehrere Sequenzen von jeweils fünf Bits (Block 1002) auf. Als nächstes kodiert die PAM-433-Routine 1000 die ersten beiden Bits jeder der Sequenzen von fünf Bits als Vier-Niveau-Symbol (Block 1004). Dann kodiert die PAM-433-Routine 1000 die nächsten drei Bits jeder der Sequenzen von fünf Bits als zwei Drei-Niveau-Symbole (Block 1006). Die PAM-433-Routine 1000 kann zum Kodieren von Symbolen auf einer oder mehreren Datenspuren eines seriellen Datenbusses verwendet werden.
  • Bei einigen Ausführungsformen umfassen die beiden Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol. Die PAM-433-Routine 1000 betreibt einen seriellen Datenbus, um ein Spannungsniveau des ersten Drei-Niveau-Symbols entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus des Vier-Niveau-Symbols oder (b) höchstens zwei Spannungsstufen oberhalb des Spannungsniveaus des Vier-Niveau-Symbols zu kodieren. Die Sequenzen von fünf Bits können auch eine erste Sequenz von fünf Bits, die auf dem seriellen Datenbus übertragen werden, und eine zweite Sequenz von fünf Bits, die nach der ersten Sequenz von fünf Bits auf dem seriellen Datenbus übertragen werden, umfassen. Die PAM-433-Routine 1000 kann dann den seriellen Datenbus betreiben, um ein Spannungsniveau des zweiten Drei-Niveau-Symbols der ersten Sequenz von fünf Bits als entweder (a) höchstens zwei Spannungsstufen unter einem Spannungsniveau des Vier-Niveau-Symbols der zweiten Sequenz von fünf Bits oder (b) höchstens zwei Spannungsstufen über dem Spannungsniveau des Vier-Niveau-Symbols der zweiten Sequenz von fünf Bits zu kodieren.
  • Unter Bezugnahme auf 11 unterteilt eine allgemeinere PAM-N-Routine 1100 die Reihe von Datenbits in Sequenzen von einer Anzahl von Bits, wobei die Anzahl der Bits von einer Anzahl von Spannungsniveaus N (Block 1102) abhängt. Anschließend kodiert die PAM-N-Routine 1100 eine erste Anzahl von Bits jeder der Sequenzen einer Anzahl von Bits als einen N-Niveau-Block, wobei die erste Anzahl von Bits dem Logarithmus zur Basis 2 von N entspricht (Block 1104). Dann kodiert die PAM-N-Routine 1100 eine nächste Anzahl von Bits jeder der Sequenzen einer Anzahl von Bits als zwei M-Niveau-Blöcke, wobei die nächste Anzahl von Bits log2 [(N^2)/2] entspricht und M eine ganze Zahl ist, die gleich einer Aufrundungsfunktion (ceiling) ist, die auf eine Quadratwurzel von [(N^2)/2] angewendet wird (Block 1106). Die PAM-N-Routine 1100 kann zur Datenübertragung über einen seriellen Datenbus eingesetzt werden.
  • Unter Bezugnahme auf 12 ist eine Ausführungsform der PAM-4433-Kodierung 1200 dargestellt. Die PAM-4433-Kodierung 1200 wird für einen seriellen Datenbus zum Kodieren und Übertragen eines 7-Bit-Datenworts unter Verwendung einer Sequenz aus einem ersten Vier-Niveau-Symbol 1202, einem zweiten Vier-Niveau-Symbol 1204, einem ersten Drei-Niveau-Symbol 1206 und einem zweiten Drei-Niveau-Symbol 1208 eingesetzt. Dadurch ist es möglich, dass ein Spannungsdelta von 3ΔV auf einer bestimmten Datenspur zwischen zwei Vier-Niveau-Symbolen auftritt, wie beispielsweise dem ersten Vier-Niveau-Symbol 1202 und dem zweiten Vier-Niveau-Symbol 1204. Wie in 12 dargestellt ist, können die potenziellen Spannungs-Deltas von 3ΔV jedoch über mehrere Datenspuren versetzt sein, wodurch das maximale Spannungsdelta in einem bestimmten Datenblock (alle Bits, die über den seriellen Datenbus während eines Taktintervalls gesendet werden) reduziert wird. Mehrere Spannungsdeltas von 3ΔV treten nicht im gleichen Datenblock auf, wodurch Übersprechen und andere Rauschquellen reduziert werden. Diese PAM-4433-Kodierung 1200 weist Bandbreitenkosten von 12,5% (1,75 Bits pro Übertragung) bei einem maximalen durchschnittlichen Spannungsdelta von 2,25ΔV über den vier Datenspuren bei diesem Beispiel auf (andere Anzahlen von Datenspuren können natürlich in anderen Ausführungsformen verwendet werden).
  • Unter Bezugnahme auf 13 teilt eine Ausführungsform einer PAM-4433-Routine 1300 eine Reihe von Datenbits, die auf der Datenspur eines seriellen Datenbusses übertragen werden sollen, in Sequenzen von sieben Bits auf (Block 1302). Anschließend kodiert die PAM-4433-Routine 1300 die ersten vier Bits jeder der Sequenzen von sieben Bits als zwei Vier-Niveau-Symbole (Block 1304). Dann kodiert die PAM-4433-Routine 1300 die nächsten drei Bits jeder der Sequenzen von sieben Bits als zwei Drei-Niveau-Symbole (Block 1306). Dies wird für mehrere Datenspuren eines seriellen Datenbusses wiederholt, und die Übergänge zwischen Vier-Niveau-Symbolen können dann zeitlich versetzt (ausgerichtet auf verschiedene serielle Datenbustaktintervalle) über die Datenspuren erfolgen.
  • Unter Bezugnahme auf 14 aktiviert eine variable PAM-433-Kodierung 1400 bei einer Ausführungsform die PAM-433-Kodierung, wenn das aktuelle Symbol einer Datenspurspannung von entweder 0ΔV oder 3ΔV entspricht. Dies wird als „Triggerdaten 1402“ bezeichnet, um die PAM-433-Kodierung zu aktivieren. Beim Auftreten der Triggerdaten 1402 wird nach den Triggerdaten eine entsprechende Drei-Niveau-Symbolbrücke 1404 verwendet. Andernfalls, wenn die Triggerdaten nicht vorliegen, verwendet die variable PAM-433-Kodierung 1400 die herkömmliche PAM-4-Kodierung (alle Symbole weisen eines von vier Niveaus auf). Die variable PAM-433-Kodierung 1400 führt zu einem maximalen Spannungsdelta von 2ΔV bei der Datenspur-Spannungswellenform des seriellen Datenbusses.
  • Unter Bezugnahme auf 15 bestimmt eine variable PAM-433-Routine 1500, ob zwei erste Bits von Sequenzen von fünf Bits mit einem Vier-Niveau-Symbol kodiert werden, das einem höchsten Spannungsniveau oder einem niedrigsten Spannungsniveau entspricht, das auf einer Datenspur eines seriellen Datenbusses verwendet wird (Block 1502). Mit anderen Worten, ob die Triggerdaten angetroffen werden. Als Reaktion auf das Antreffen der Triggerdaten kodiert die variable PAM-433-Routine 1500 die nächsten drei Bits der Sequenzen von fünf Bits als zwei Drei-Niveau-Symbole (Block 1504).
  • Datenübertragungen, z.B. 128-Bit-Transaktionen, können in einer „unentspannten“ bzw. „unrelaxed“ Betriebsart einer PAM-433 durchgeführt werden. Hier wird an den Enden jeder Anfrage ein Zwei-Niveau- / Ein-Bit-Symbol hinzugefügt. Dies verhindert jegliches Umschalten von 3ΔV zwischen zwei aufeinanderfolgenden 128-Bit-Transaktionen, da das Zwei-Niveau- / Ein-Bit-Symbol die mittleren beiden Spannungsniveaus (1ΔV und 2ΔV) verwendet und das folgende 4-Niveau-Symbol als Minimum 0ΔV und als Maximum 3ΔV aufweisen kann, was zu einem maximalen Spannungsniveau-Übergang (oder Schritt) von 2ΔV führt.
  • Unter Bezugnahme auf 16 überträgt eine PAM-433-Kodierung 1600 16 Bytes Daten von einer GPU 1602 zu einem DRAM 1604 unter Verwendung von acht Datenspuren 1606. Jede der Datenspuren 1606 überträgt 16-Bit-Daten 1608. Insgesamt 16 Bit pro jeder der acht Datenspuren 1606 werden in jeder Transaktionsabgrenzung übertragen, also insgesamt 128 Bit (16 Bytes) pro Transaktion. Jede der acht Datenspuren 1606 überträgt drei Gruppen von jeweils einem Vier-Niveau-Symbol und zwei Drei-Niveau-Symbolen, gefolgt von einem Zwei-Niveau-Symbol. Die Vier-Niveau-Symbole übertragen zwei Bits, die beiden Drei-Niveau-Symbole zusammen übertragen drei Bits und das Zwei-Niveau-Symbol überträgt ein Bit. Zehn Symbole werden für jeweils sechzehn Bit verwendet, was insgesamt einem Kodierungszuschlag von 25% im Vergleich zur PAM-4 entspricht.
  • Es sei angemerkt, dass das Zwei-Niveau-Symbol am Anfang oder am Ende, wie dargestellt, eines Datenblocks auf dem seriellen Datenbus verwendet werden kann, aber im Allgemeinen an beliebiger Stelle im Block eingefügt werden kann (z.B. zwischen einem Vier-Niveau- und einem Drei-Niveau-Symbol oder zwischen zwei Drei-Niveau-Symbolen). Im Allgemeinen sind die offenbarten Verfahren weder auf die Verwendung eines Zwei-Niveau-Symbols am Anfang oder Ende eines Blocks beschränkt, noch auf die Verwendung nur eines einzigen Zwei-Niveau-Symbols pro Block.
  • 17 stellt eine Ausführungsform einer PAM-433-Kodierung 1700 dar, um 18-Byte-Transaktionen (einschließlich zwei Bytes für CRC-Daten) über acht Leitungen zu übertragen. Eine GPU 1702 überträgt die 18-Byte-Transaktionen an ein DRAM 1704 unter Verwendung von acht Datenspuren 1706. Jede der acht Datenspuren 1706 überträgt 16-Bit-Daten 1708 und eine 2-Bit-CRC 1710. Insgesamt werden 18 Bits von jeder der acht Datenspuren 1706 in jeder Transaktionsabgrenzung übertragen, also insgesamt 18 Bytes pro Transaktion. Jede der acht Datenspuren 1706 überträgt drei Gruppen von jeweils einem Vier-Niveau-Symbol und zwei Drei-Niveau-Symbolen, gefolgt von einem Vier-Niveau-Symbol und einem Zwei-Niveau-Symbol (pro Transaktion). Die Vier-Niveau-Symbole übertragen zwei Bits, die beiden Drei-Niveau-Symbole zusammen übertragen drei Bits, und das Zwei-Niveau-Symbol überträgt ein Bit. Die Gruppen von jeweils einem Vier-Niveau-Symbol und zwei Drei-Niveau-Symbolen mit einem Teil (z.B. dem ersten Bit) des folgenden Vier-Niveau- Symbols übertragen die 16-Bit-Daten 1708. Der andere Teil (z.B. das zweite Bit) des folgenden Vier-Niveau-Symbols und das Zwei-Niveau-Symbol sind Teil der Übertragung der 2-Bit-CRC 1710. Elf Symbole pro achtzehn Bit werden verwendet, was einem Kodierungszuschlag von 22% im Vergleich zu einer PAM-4 entspricht.
  • 18 stellt eine Ausführungsform einer PAM-433-Kodierung 1800 dar, um 18-Byte-Transaktionen über neun Leitungen (acht Datenspuren und eine ehemalige DBI-Spur, die als neunte Datenspur wiederverwendet wird) zu übertragen. Eine GPU 1802 überträgt die 18-Byte-Transaktionen an einen DRAM 1804 mittels neun Datenspuren 1806. Jede der neun Datenspuren 1806 überträgt in jeder Transaktion 16-Bit-Daten 1808. Sechzehn Bits werden über neun Datenspuren in jeder Transaktionsabgrenzung übertragen, also insgesamt 18 Bytes pro Transaktion. Jede der neun Datenspuren 1806 überträgt drei Gruppen von jeweils einem Vier-Niveau-Symbol und zwei Drei-Niveau-Symbolen, gefolgt von einem Zwei-Niveau-Symbol. Die Vier-Niveau-Symbole übertragen zwei Bits, die beiden Drei-Niveau-Symbole zusammen übertragen drei Bits, und das Zwei-Niveau-Symbol überträgt ein Bit. Die Vier-Niveau-Symbole übertragen zwei Bits, die beiden Drei-Niveau-Symbole zusammen übertragen drei Bits, und das Zwei-Niveau-Symbol überträgt ein Bit. Pro Leitung werden zehn Symbole verwendet, wobei eine zusätzliche Leitung gegenüber den Ausführungsformen mit acht Leitungen eingesetzt wird, was insgesamt zu einem Kodierungszuschlag von 11,1% im Vergleich zu einer PAM-4 führt.
  • Unter Bezugnahme auf 19 unterteilt ein PAM-433-Kodierungsverfahren 1900 eine Reihe von Datenbits auf einem seriellen Datenbus in eine Vielzahl von Sequenzen von jeweils fünf Bits (Block 1902). Die ersten beiden Bits jeder der Sequenzen von fünf Bits werden als Vier-Niveau-Symbol kodiert (Block 1904). Die nächsten drei Bits jeder der Sequenzen von fünf Bits werden als zwei Drei-Niveau-Symbole kodiert (Block 1906). Ein einzelnes Bit wird am Ende der Sequenzen von je fünf Bits kodiert, wobei das einzelne Bit als PAM-4-Spannungsniveau im mittleren Bereich kodiert werden kann (Block 1908).
  • In einigen Fällen kann es wünschenswert sein, Kodierungsoperationen innerhalb der Transaktionsabgrenzung (z.B. 32 Bytes) einzuschränken. 20 veranschaulicht eine Ausführungsform einer PAM-4433-Kodierung 2000, die 32 Bytes Daten über 16 Leitungen überträgt (20 zeigt nur acht der sechzehn Leitungen, aber die zweite Gruppe von acht Leitungen ist ähnlich). Die PAM-4433-Kodierung 2000 umfasst eine GPU 2002, die 16 Bits pro Leitung an einen DRAM 2004 überträgt. Jede Leitung kann zu Beginn der Übertragung und am Ende der Übertragung einen 2-Niveau-Block übertragen. Die zehn Symbole zwischen den 2-Niveau-Blöcken verwenden zwei Gruppen von jeweils zwei 4-Niveau-Blöcken und zwei 3-Niveau-Blöcken (z.B. PAM-4433). Da ein PAM-4433-Schema verwendet wird, weist jede Leitung potenzielle Übergänge von 3ΔV 2006 auf (dargestellt in jeder Leitung als gestrichelte Gruppierung von zwei 4-Niveau-Symbolen). Die Auswirkungen der potenziellen Übergänge von 3ΔV 2006 können jedoch durch eine Staffelung der Übertragung der potenziellen Übergänge von 3ΔV 2006 unter den Leitungen abgemildert werden. Zu jedem Zeitpunkt können nur wenige Leitungen einen potenziellen Übergang von 3ΔV 2006 aufweisen. Die Leitungen können unterschiedliche Taktzyklen aufweisen, um eine Staffelung zu erreichen. So kann beispielsweise die erste Leitung einen Übergang von 3ΔV aufweisen; die zweite Leitung überträgt jedoch den Wechsel von dem 4-Niveau-Symbol zu einem ersten 3-Niveau-Symbol. Die Anordnung des 4-Niveau-Symbols zu einem ersten 3-Niveau-Symbol wird so eingestellt, dass ein Übergang von 3ΔV vermieden wird. Noch eine weitere Leitung kann den Wechsel von einem 3-Niveau-Symbol zu einem anderen 3-Niveau-Symbol übertragen, die ebenfalls so eingestellt sind, dass ein Übergang von 3ΔV vermieden wird. In weiteren Ausführungsformen werden die Leitungen in Leitungsgruppen (z.B. Gruppen von drei Leitungen) zusammengefasst. Jede Gruppe kann zu einem bestimmten Zeitpunkt eine Leitung mit einem möglichen Übergang von 3ΔV aufweisen; eine Leitung in einer anderen Gruppe kann jedoch auch einen möglichen Übergang von 3ΔV aufweisen. Die Gruppen können so angeordnet werden, dass benachbarte Leitungen oder Leitungen innerhalb einer bestimmten Anzahl von Leitungen (z.B. drei Leitungen) nicht gleichzeitig einen potenziellen Übergang von 3ΔV aufweisen. Dies führt dazu, dass Leitungen in unmittelbarer Nähe (d.h. in einer bestimmten Anzahl von Leitungen) nicht gleichzeitig einen potenziellen Übergang von 3ΔV aufweisen, während zulässige Leitungen nicht in unmittelbarer Nähe (d.h. in einer bestimmte Anzahl von Leitungen) gleichzeitig einen potenziellen Übergang von 3ΔV aufweisen können. In diesem Szenario werden die Auswirkungen eines gleichzeitig stattfindenden Übergangs von 3ΔV durch den Abstand zwischen den Leitungen abgemildert.
  • Unter Bezugnahme auf 21 unterteilt ein PAM-4433-Kodierungsverfahren 2100 eine Reihe von Datenbits auf dem seriellen Datenbus in Sequenzen von sieben Bits (Block 2102). Die ersten vier Bits jeder der Sequenzen von sieben Bits werden als zwei Vier-Niveau-Symbole kodiert (Block 2104). Die nächsten drei Bits jeder der Sequenzen von sieben Bits werden als zwei Drei-Niveau-Symbole kodiert (Block 2106). Ein erstes einzelnes Bit wird am Ende der Sequenzen von jeweils sieben Bits kodiert, wobei das erste einzelne Bit als PAM-4-Spannungsniveau im mittleren Bereich kodiert wird (Block 2108).
  • 22 ist ein Blockdiagramm einer Ausführungsform eines Computersystems 2200, in dem ein oder mehrere Aspekte der Erfindung implementiert werden können. Das Computersystem 2200 beinhaltet einen Systemdatenbus 2236, eine CPU 2226, Eingabevorrichtungen 2230, einen Systemspeicher 2204, ein Grafikverarbeitungssystem 2202 und Anzeigevorrichtungen 2228. In alternativen Ausführungsformen können die CPU 2226, Teile des Grafikverarbeitungssystems 2202, der Systemdatenbus 2236 oder eine beliebige Kombination davon in einer einzigen Verarbeitungseinheit integriert sein. Darüber hinaus kann die Funktionalität des Grafikverarbeitungssystems 2202 in einem Chipsatz oder in einer anderen Art von Spezialverarbeitungseinheit oder Co-Prozessor enthalten sein.
  • Wie dargestellt ist, verbindet der Systemdatenbus 2236 die CPU 2226, die Eingabegeräte 2230, den Systemspeicher 2204 und das Grafikverarbeitungssystem 2202. In alternativen Ausführungsformen kann der Systemspeicher 2204 direkt mit der CPU 2226 verbunden sein. Die CPU 2226 empfängt Benutzereingaben von den Eingabegeräten 2230, führt im Systemspeicher 2204 gespeicherte Programmanweisungen aus, arbeitet mit im Systemspeicher 2204 gespeicherten Daten und konfiguriert das Grafikverarbeitungssystem 2202 für bestimmte Aufgaben in der Grafikpipeline. Der Systemspeicher 2204 beinhaltet typischerweise einen dynamischen Direktzugriffsspeicher (DRAM), der zum Speichern von Programmanweisungen und Daten zur Verarbeitung durch die CPU 2226 und das Grafikverarbeitungssystem 2202 verwendet wird. Das Grafikverarbeitungssystem 2202 empfängt Anweisungen, die von der CPU 2226 gesendet werden, und verarbeitet die Anweisungen zum Ausführen verschiedener Operationen innerhalb des Computersystems 2200.
  • Wie ebenfalls dargestellt ist, beinhaltet der Systemspeicher 2204 ein Anwendungsprogramm 2212, eine API 2218 (Application Programming Interface) und einen Grafikverarbeitungseinheitstreiber 2222 (GPU-Treiber). Das Anwendungsprogramm 2212 erzeugt Aufrufe der API 2218, um eine gewünschte Ergebnismenge zu erzeugen. So überträgt beispielsweise das Anwendungsprogramm 2212 auch Programme an die API 2218, um Shading-Operationen, Operationen der künstlichen Intelligenz oder Grafik-Rendering-Operationen auszuführen. Die Funktionalität der API 2218 kann typischerweise innerhalb des Grafikverarbeitungseinheitstreibers 2222 implementiert werden. Der Grafikverarbeitungseinheitstreiber 2222 ist konfiguriert, um die Shading-Programme in Maschinencode zu übersetzen.
  • Das Grafikverarbeitungssystem 2202 beinhaltet eine GPU 2210 (Grafikverarbeitungseinheit), einen On-Chip-GPU-Speicher 2216, einen On-Chip-GPU-Datenbus 2232, einen lokalen GPU-Speicher 2206 und einen GPU-Datenbus 2234. Die GPU 2210 ist konfiguriert, um mit dem On-Chip-GPU-Speicher 2216 über den On-Chip-GPU-Datenbus 2232 und mit dem lokalen GPU-Speicher 2206 über den GPU-Datenbus 2234 zu kommunizieren. Der GPU-Datenbus 2234 kann eine oder mehrere der hierin beschriebenen Kodierungstechniken verwenden.
  • Die GPU 2210 kann von der CPU 2226 gesendete Anweisungen empfangen und die Ergebnisse im lokalen Speicher 2206 der GPU speichern. Anschließend, wenn es sich bei den Anweisungen um Grafikanweisungen handelte, kann die GPU 2210 bestimmte im lokalen Speicher der GPU 2206 gespeicherte Grafikbilder auf den Anzeigevorrichtungen 2228 anzeigen.
  • Die GPU 2210 beinhaltet einen oder mehrere Logikblöcke 2214. Der Betrieb der Logikblöcke 2214 kann Ausführungsformen der hier beschriebenen Kodierungsschemata implementieren. Die Logikblöcke 2214 können als Anweisungen auf die GPU geladen oder in der Schaltung als Merkmale der Befehlssatzarchitektur oder eine Kombination aus beidem implementiert werden.
  • Die GPU 2210 kann mit einer beliebigen Anzahl von On-Chip-GPU-Speichern 2216 und lokalen GPU-Speichern 2206, einschließlich keinem, ausgestattet sein und kann On-Chip-GPU-Speicher 2216, lokalen GPU-Speicher 2206 und Systemspeicher 2204 in beliebiger Kombination für Speicheroperationen verwenden. Die Daten-/Anweisungsbusse zwischen diesen Speichern und der GPU 2210 können eine oder mehrere der hierin beschriebenen Kodierungstechniken verwenden.
  • Der On-Chip-GPU-Speicher 2216 ist konfiguriert, um die GPU-Programmierung 2220 und die On-Chip-Puffer 2224 aufzuweisen. Die GPU-Programmierung 2220 kann vom Grafikverarbeitungseinheitstreiber 2222 über den Systemdatenbus 2236 an den On-Chip-GPU-Speicher 2216 übertragen werden. Der Systemdatenbus 2236 kann eine oder mehrere der hierin beschriebenen Kodierungstechniken verwenden.
  • Als Beispiel kann die GPU-Programmierung 2220 ein Vertex-Shading-Programm in Maschinencode, ein Geometrie-Shading-Programm in Maschinencode, ein Fragment-Shading-Programm in Maschinencode, ein Programm der künstlichen Intelligenz oder eine beliebige Anzahl von Variationen davon beinhalten. Die On-Chip-Puffer 2224 werden typischerweise zum Speichern von Daten verwendet, die einen schnellen Zugriff erfordern, um die Latenzzeit solcher Operationen zu reduzieren.
  • Der lokale Speicher 2206 der GPU beinhaltet typischerweise einen kostengünstigeren dynamischen Direktzugriffsspeicher (DRAM) außerhalb des Chips und wird auch zum Speichern von Daten und Programmen der GPU 2210 verwendet. Wie dargestellt ist, beinhaltet der lokale Speicher 2206 der GPU einen Frame-Puffer 1608. Der Frame-Puffer 2208 speichert Daten für mindestens eine zweidimensionale Oberfläche, die zum Steuern der Anzeigevorrichtungen 2228 verwendet werden kann. Darüber hinaus kann der Frame-Puffer 2208 mehr als eine zweidimensionale Oberfläche beinhalten, so dass die GPU 2210 auf eine zweidimensionale Oberfläche rendern kann, während eine zweite zweidimensionale Oberfläche zum Steuern der Anzeigevorrichtungen 2228 verwendet wird.
  • Die Anzeigevorrichtungen 2228 sind eine oder mehrere Ausgabevorrichtungen, die ein visuelles Bild entsprechend einem Eingangsdatensignal ausgeben können. So kann beispielsweise eine Anzeigevorrichtung mit einem Kathodenstrahlröhrenmonitor (CRT), einer Flüssigkristallanzeige oder einem anderen geeigneten Anzeigesystem aufgebaut sein. Die Eingangsdatensignale an die Anzeigevorrichtungen 2228 werden typischerweise durch Scannen des Inhalts eines oder mehrerer Frames von Bilddaten erzeugt, die im Frame-Puffer 2208 gespeichert sind.
  • Die oben beschriebenen spezifischen Spannungen, Stromstärken und andere Details dienen nur zur Veranschaulichung. Die Erfindung kann mit einer Vielzahl von spezifischen Spannungsniveaus, Strömen, Widerständen usw. ausgeführt werden. Und während die Erfindung vorstehend im Zusammenhang mit z.B. einem Prozessor beschrieben wurde, der Daten an einen Speicher überträgt, können die hier beschriebenen Signalisierungstechniken, wie PAM-4 usw., in einem von unterschiedlichsten Signalisierungssystemen eingesetzt werden, bei denen Daten von einer Sendevorrichtung an eine Empfangsvorrichtung oder zwischen Sende- und Empfangsvorrichtungen gesendet werden, und so weiter.
  • Die hierin verwendeten Begriffe sollten ihrer gewöhnlichen Bedeutung nach dem jeweiligen Stand der Technik oder der Bedeutung, die durch ihre Verwendung im Kontext angezeigt ist, entsprechen. Aber wenn eine ausdrückliche Definition bereitgestellt ist, gilt diese Bedeutung.
  • „Logik“ bezieht sich hier auf Speicherschaltungen von Maschinen, nicht-flüchtige maschinenlesbare Medien und/oder Schaltungen, die in ihrer Material- und/oder Materialenergiekonfiguration Steuer- und/oder Verfahrenssignale und/oder Einstellungen und Werte (wie Widerstand, Impedanz, Kapazität, Induktivität, Strom/Spannungswerte usw.) umfassen, die eingesetzt werden können, um den Betrieb einer Vorrichtung zu beeinflussen. Elektronische Schaltungen wie Steuerungen, feldprogrammierbare Gate-Arrays, Prozessoren und Speicher (sowohl flüchtige als auch nichtflüchtige), welche durch einen Prozessor ausführbare Anweisungen umfassen, sind Beispiele für eine Logik. Die Logik schließt insbesondere reine Signale oder Software an sich aus (schließt jedoch Maschinenspeicher, die Software umfassen und dadurch Konfigurationen aus Materie ausbilden, nicht aus).
  • Verschiedene hier beschriebene logische Funktionsoperationen können in einer Logik implementiert werden, auf die mit einem Substantiv oder einem Substantivausdruck Bezug genommen wird, was die genannte Operation oder Funktion widerspiegelt. So kann beispielsweise eine Assoziationsoperation von einem „Assoziator“ oder „Korrelator“ ausgeführt werden. Ebenso kann ein Schalten durch einen „Schalter“ und ein Auswählen durch einen „Selektor“ erfolgen usw..
  • Dem Fachmann ist bekannt, dass die Logik über eine oder mehrere Vorrichtungen oder Komponenten verteilt sein kann und/oder aus Kombinationen von Speichern, Medien, Verarbeitungsschaltungen und Controllern, anderen Schaltungen usw. bestehen kann. Daher kann die Logik im Interesse der Klarheit und Korrektheit nicht immer deutlich in Zeichnungen von Geräten und Systemen dargestellt werden, obwohl sie darin inhärent vorhanden ist. Die hier beschriebenen Techniken und Verfahren können über eine Logik implementiert werden, die in einem oder mehreren Rechengeräten verteilt ist. Die jeweilige Verteilung und Wahl der Logik hängt von der Implementierung ab.
  • In dieser Offenbarung können verschiedene Einheiten (die unterschiedlich als „Einheiten“, „Schaltkreise“, andere Komponenten usw. bezeichnet werden können) als „konfiguriert“ beschrieben oder beansprucht werden, um eine oder mehrere Aufgaben oder Operationen auszuführen. Diese Formulierung - [Gebilde], welches konfiguriert ist, [um eine oder mehrere Aufgaben auszuführen] - wird hier verwendet, um sich auf eine Struktur zu beziehen (d.h. etwas Körperliches, wie eine elektronische Schaltung). Genauer gesagt, wird diese Formulierung verwendet, um anzuzeigen, dass diese Struktur so angeordnet ist, dass sie eine oder mehrere Aufgaben während des Betriebs erfüllt. Eine Struktur kann als „konfiguriert“ bezeichnet werden, um eine Aufgabe auszuführen, auch wenn die Struktur derzeit nicht betrieben wird. Eine „Kreditverteilungsschaltung, die konfiguriert ist, um Kredite auf eine Vielzahl von Prozessorkernen zu verteilen“, soll beispielsweise eine integrierte Schaltung umfassen, die eine Schaltung aufweist, welche diese Funktion während des Betriebs ausführt, auch wenn die betreffende integrierte Schaltung derzeit nicht eingesetzt wird (da z.B. keine Stromversorgung angeschlossen ist). So bezieht sich ein Gebilde, das als „konfiguriert“ beschrieben oder angegeben wird, um eine Aufgabe auszuführen, auf etwas Physisches bzw. Körperliches, wie z.B. eine Vorrichtung, eine Schaltung, einen Speicher, der Programmanweisungen speichert, die ausführbar sind, um die Aufgabe auszuführen, usw. Dieser Ausdruck wird hier nicht verwendet, um sich auf etwas Immaterielles zu beziehen.
  • Der Begriff „konfiguriert, um“ bedeutet nicht „konfigurierbar, um“. Ein unprogrammiertes FPGA zum Beispiel könnte nicht als „konfiguriert, um“ angesehen werden, um eine bestimmte Funktion auszuführen, obwohl es „konfigurierbar, um“ sein kann, um diese Funktion nach einer Programmierung auszuführen.
  • Das Angeben in den beigefügten Ansprüchen, eine Struktur ist „konfiguriert, um“ eine oder mehrere Aufgaben auszuführen, ist ausdrücklich dazu bestimmt, sich nicht auf 35 U.S.C. § 112(f) für dieses Anspruchselement zu berufen. Dementsprechend sollten Ansprüche in dieser Anmeldung, die nicht anderweitig das Konstrukt „Mittel zum“ [Ausführen einer Funktion] aufweisen, nicht gemäß 35 U.S.C. § 112(f) ausgelegt werden.
  • Der Begriff „abhängig von“ wird hier verwendet, um einen oder mehrere Faktoren zu beschreiben, die eine Bestimmung beeinflussen. Dieser Begriff schließt nicht aus, dass zusätzliche Faktoren die Bestimmung beeinflussen können. Das heißt, eine Bestimmung kann ausschließlich auf bestimmten Faktoren oder auf den bestimmten Faktoren sowie auf anderen, nicht spezifizierten Faktoren beruhen. Der Ausdruck „A wird abhängig von B bestimmt“ beschreibt, dass B ein Faktor ist, der zur Bestimmung von A verwendet wird oder die Bestimmung von A beeinflusst. Dieser Ausdruck schließt nicht aus, dass die Bestimmung von A auch auf einem anderen Faktor basieren kann, wie beispielsweise C. Dieser Ausdruck soll auch eine Ausführungsform abdecken, in der A ausschließlich auf der Grundlage von B bestimmt wird. Wie es hier verwendet wird, ist der Ausdruck „abhängig von“ gleichbedeutend mit dem Ausdruck „zumindest teilweise abhängig von“.
  • Wie es hier verwendet wird, beschreibt der Ausdruck „abhängig von“ auch einen oder mehrere Faktoren, die einen Effekt auslösen. Dieser Ausdruck schließt die Möglichkeit nicht aus, dass zusätzliche Faktoren die Wirkung beeinflussen oder anderweitig auslösen können. Das heißt, eine Wirkung kann ausschließlich als Reaktion auf diese Faktoren oder als Reaktion auf die spezifizierten Faktoren sowie andere, nicht spezifizierte Faktoren erfolgen. Der Ausdruck „A wird abhängig von B ausgeführt“ besagt, dass B ein Faktor ist, der die Ausführung von A auslöst. Dieser Ausdruck schließt nicht aus, dass die Ausführung von A auch als Reaktion auf einen anderen Faktor, wie beispielsweise C, erfolgen kann. Dieser Ausdruck soll auch eine Ausführungsform abdecken, bei der A ausschließlich abhängig von B ausgeführt wird.
  • Die Begriffe „erste(r/s)“, zweite(r/s)‟ usw. werden als Bezeichnungen für Substantive verwendet, denen sie voranstehen, und implizieren keine Art von Reihenfolge (z.B. räumlich, zeitlich, logisch usw.), sofern es nicht anders angegeben ist. So können beispielsweise in einer Registerdatei mit acht Registern die Begriffe „erstes Register“ und „zweites Register“ verwendet werden, um auf zwei beliebige der acht Register zu verweisen, und nicht beispielsweise nur auf die logischen Register 0 und 1.
  • In den Ansprüchen wird der Begriff „oder“ als ein einschließendes Oder und nicht als ein ausschließendes Oder verwendet. So bedeutet beispielsweise der Ausdruck „mindestens einer von x, y oder z“ einen von x, y und z sowie eine beliebige Kombination davon.

Claims (16)

  1. Verfahren umfassend: Kodieren von ersten zwei Bits von jeder von mehreren Sequenzen von fünf Bits in einer Reihe von Datenbits auf einer Datenspur eines seriellen Datenbusses als ein Vier-Niveau-Symbol; Kodieren von nächsten drei Bits von jeder der Sequenzen von fünf Bits auf der Datenspur als zwei Drei-Niveau-Symbole; und Kodieren von mindestens einem einzelnen Bit auf der Datenspur als ein Zwei-Niveau-Symbol aus einem PAM-4-Mittelbereich, wobei es sich bei PAM-4 um eine Pulsamplitudenmodulation handelt, bei welcher jeweils zwei Datenbits als ein Vier-Niveau-Symbol kodiert werden, welches einem von vier verschiedenen Spannungsniveaus entspricht, wobei das Zwei-Niveau-Symbol nur eines der beiden mittleren Spannungsniveaus verwendet.
  2. Verfahren nach Anspruch 1, wobei das einzelne Bit am Ende einer Datenübertragung kodiert wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das einzelne Bit ein Bit von einem CRC-Wert ist.
  4. Verfahren nach Anspruch 3, wobei die Reihe von Bits zwei Bits von dem CRC-Wert umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zwei Drei-Niveau-Symbole ausgewählt werden, um eine Möglichkeit einer maximalen Spannungsänderung zwischen Vier-Niveau-Symbolen auf der Datenspur zu vermeiden.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zwei Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol umfassen, wobei ein Spannungsniveau des ersten Drei-Niveau-Symbols entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus des Vier-Niveau-Symbols oder (b) höchstens zwei Spannungsstufen oberhalb des Spannungsniveaus des Vier-Niveau-Symbols liegt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die zwei Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol umfassen, und darüber hinaus umfassend: die Sequenzen von fünf Bits umfassen eine erste Sequenz von fünf Bits für eine Kommunikation auf der Datenspur und eine zweite Sequenz von fünf Bits für eine Kommunikation nach der ersten Sequenz von fünf Bits auf der Datenspur; und ein Spannungsniveau des zweiten Drei-Niveau-Symbols der ersten Sequenz von fünf Bits liegt entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus des Vier-Niveau-Symbols der zweiten Sequenz von fünf Bits oder (b) höchstens zwei Spannungsstufen oberhalb des Spannungsniveaus des Vier-Niveau-Symbols der zweiten Sequenz von fünf Bits.
  8. Verfahren nach einem der vorhergehenden Ansprüche, darüber hinaus umfassend: Beginnen der Datenübertragung der Reihe von Datenbits mit einem Zwei-Niveau-Symbol aus dem PAM-4-Mittelbereich, wobei das Zwei-Niveau-Symbol nur eines der beiden mittleren Spannungsniveaus verwendet.
  9. Verfahren umfassend: Kodieren von ersten vier Bits von jeder von mehreren Sequenzen von sieben Bits einer ersten Reihe von Datenbits auf einer ersten Datenspur eines seriellen Datenbusses als zwei Vier-Niveau-Symbole; Kodieren von nächsten drei Bits von jeder der Sequenzen von sieben Bits auf der ersten Datenspur als zwei Drei-Niveau-Symbole; und Kodieren von mindestens einem einzelnen Bit auf der ersten Datenspur als ein Zwei-Niveau-Symbol aus einem PAM-4-Mittelbereich, wobei es sich bei PAM-4 um eine Pulsamplitudenmodulation handelt, bei welcher jeweils zwei Datenbits als ein Vier-Niveau-Symbol kodiert werden, welches einem von vier verschiedenen Spannungsniveaus entspricht, wobei das Zwei-Niveau-Symbol nur eines der beiden mittleren Spannungsniveaus verwendet.
  10. Verfahren nach Anspruch 9, darüber hinaus umfassend ein Verschieben einer Übertragung von zwei Vier-Niveau-Symbolen auf einer zweiten Datenspur neben der ersten Datenspur relativ zu den zwei Vier-Niveau-Symbolen auf der ersten Datenspur.
  11. Verfahren nach Anspruch 10, wobei das Verschieben der Übertragung der zwei Vier-Niveau-Symbole auf der zweiten Datenspur eine Übertragung der zwei Vier-Niveau-Symbole auf der ersten Datenspur während eines zur Übertragung der zwei Vier-Niveau-Symbole auf der zweiten Datenspur benachbarten Taktintervalls umfasst.
  12. Verfahren nach einem der Ansprüche 9 bis 11, wobei die zwei Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol umfassen, wobei ein Spannungsniveau des ersten Drei-Niveau-Symbols entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus eines zweiten der zwei Vier-Niveau-Symbole oder (b) höchstens zwei Spannungsstufen oberhalb des Spannungsniveaus des zweiten der zwei Vier-Niveau-Symbole liegt.
  13. Verfahren nach einem der Ansprüche 9 bis 12, wobei die zwei Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol umfassen, und darüber hinaus umfassend: die Sequenzen von sieben Bits umfassen eine erste Sequenz von sieben Bits für eine Kommunikation auf der Datenspur und eine zweite Sequenz von sieben Bits für eine Kommunikation auf der Datenspur nach der Kommunikation der ersten Sequenz von sieben Bits auf der Datenspur; und ein Spannungsniveau des zweiten Drei-Niveau-Symbols der ersten Sequenz von sieben Bits liegt entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus eines zweiten der zwei Vier-Niveau-Symbole der ersten Sequenz von sieben Bits oder (b) höchstens zwei Spannungsstufen oberhalb des zweiten der zwei Vier-Niveau-Symbole der ersten Sequenz von sieben Bits.
  14. Encoder für einen seriellen Datenbus, wobei der Encoder umfasst: eine Schnittstelle von mehreren Leitungstreibern für den seriellen Datenbus; und eine Logik: um die Leitungstreiber zu betreiben, um erste zwei Bits von jeder von mehreren Sequenzen von fünf Bits einer Reihe von Datenbits auf dem seriellen Datenbus als ein Vier-Niveau-Symbol zu kodieren; um die Leitungstreiber zu betreiben, um nächste drei Bits von jeder der Sequenzen von fünf Bits auf dem seriellen Datenbus als zwei Drei-Niveau-Symbole zu kodieren; und um die Leitungstreiber zu betreiben, um ein einzelnes Bit auf dem seriellen Datenbus als ein Zwei-Niveau-Symbol aus einem PAM-4-Mittelbereich am Ende der Reihe von Datenbits zu kodieren, wobei es sich bei PAM-4 um eine Pulsamplitudenmodulation handelt, bei welcher jeweils zwei Datenbits als ein Vier-Niveau-Symbol kodiert werden, welches einem von vier verschiedenen Spannungsniveaus entspricht, wobei das Zwei-Niveau-Symbol nur eines der beiden mittleren Spannungsniveaus verwendet.
  15. Encoder nach Anspruch 14, wobei die Logik konfiguriert ist, um ein Verfahren nach einem der Ansprüche 1 bis 8 auszuführen.
  16. Encoder nach einem der Ansprüche 14 bis 15, wobei die zwei Drei-Niveau-Symbole ein erstes Drei-Niveau-Symbol und ein zweites Drei-Niveau-Symbol umfassen, wobei ein Spannungsniveau des ersten Drei-Niveau-Symbols entweder (a) höchstens zwei Spannungsstufen unterhalb eines Spannungsniveaus des Vier-Niveau-Symbols oder (b) höchstens zwei Spannungsstufen oberhalb des Spannungsniveaus des Vier-Niveau-Symbols liegt.
DE102019108205.6A 2018-03-29 2019-03-29 Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen Active DE102019108205B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862650168P 2018-03-29 2018-03-29
US62/650,168 2018-03-29
US16/368/,472 2019-03-28
US16/368,472 US10491435B2 (en) 2018-03-29 2019-03-28 Unrelaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses

Publications (2)

Publication Number Publication Date
DE102019108205A1 DE102019108205A1 (de) 2019-10-02
DE102019108205B4 true DE102019108205B4 (de) 2022-03-10

Family

ID=67910474

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019108205.6A Active DE102019108205B4 (de) 2018-03-29 2019-03-29 Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen

Country Status (3)

Country Link
US (1) US10491435B2 (de)
DE (1) DE102019108205B4 (de)
TW (1) TWI709312B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US11966348B2 (en) 2019-01-28 2024-04-23 Nvidia Corp. Reducing coupling and power noise on PAM-4 I/O interface
US10657094B2 (en) 2018-03-29 2020-05-19 Nvidia Corp. Relaxed 433 encoding to reduce coupling and power noise on PAM-4 data buses
US10623200B2 (en) 2018-07-20 2020-04-14 Nvidia Corp. Bus-invert coding with restricted hamming distance for multi-byte interfaces
KR20210149543A (ko) * 2020-06-02 2021-12-09 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US11652567B2 (en) * 2020-12-01 2023-05-16 Micron Technology, Inc. Replacement scheme for a pulse amplitude modulated bus
US11656958B2 (en) 2021-04-29 2023-05-23 Mellanox Technologies, Ltd. Redundancy data bus inversion sharing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015077606A1 (en) 2013-11-25 2015-05-28 Qualcomm Incorporated Methods and apparatus to reduce signaling power

Family Cites Families (10)

* 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
US7248640B2 (en) * 2001-08-17 2007-07-24 Synopsys, Inc. System and method for providing slicer level adaption
US7391834B2 (en) * 2002-10-01 2008-06-24 Intel Corporation Pulse amplitude modulated system with reduced intersymbol interference
US7081838B2 (en) * 2004-12-29 2006-07-25 Enigma Semiconductor, Inc. 16b/10s coding apparatus and method
US7795915B2 (en) * 2008-08-04 2010-09-14 Chil Semiconductor Corporation Multi-level signaling
US8964818B2 (en) * 2012-11-30 2015-02-24 Broadcom Corporation Use of multi-level modulation signaling for short reach data communications
US11032397B2 (en) * 2015-06-17 2021-06-08 Hewlett Packard Enterprise Development Lp Method and system for high speed data links
US9853841B1 (en) * 2016-06-23 2017-12-26 Huawei Technologies Co., Ltd. Low complexity slicer architectures for N-tap look-ahead decision feedback equalizer (DFE) circuit implementations
US10164808B2 (en) * 2016-09-29 2018-12-25 Viavi Solutions Deutschland Gmbh Test instrument for testing devices internally performing signal conversions
US10594523B2 (en) * 2017-12-22 2020-03-17 Tetra Semiconductor Ag Decoder circuit for a broadband pulse amplitude modulation signal

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015077606A1 (en) 2013-11-25 2015-05-28 Qualcomm Incorporated Methods and apparatus to reduce signaling power

Also Published As

Publication number Publication date
US20190305995A1 (en) 2019-10-03
US10491435B2 (en) 2019-11-26
TWI709312B (zh) 2020-11-01
TW201943242A (zh) 2019-11-01
DE102019108205A1 (de) 2019-10-02

Similar Documents

Publication Publication Date Title
DE102019108205B4 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE102019107849A1 (de) 424-Kodierungsschemata zur Reduzierung von Kopplung und Leistungsrauschen auf PAM-4-Datenbussen
DE102019107670B4 (de) Entspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE102019123711A1 (de) Kodierung zur vermeidung von maximalen übergängen
DE10134472B4 (de) Sende- und Empfangsschnittstelle und Verfahren zur Datenübertragung
DE602004004002T2 (de) Verfahren und Speichersystem basierend auf dualem data strobe mode and einfachem data strobe mode mit Dateninversion
DE202004020948U1 (de) Kodierte Schreibmaske
EP1428225A2 (de) Konzept zur sicheren datenkommunikation zwischen elektronischen bausteinen
DE3508321A1 (de) Programmierbare schaltung zur steuerung einer fluessigkristallanzeige
DE3043100A1 (de) Datenprozessor mit datenkorrekturfunktion
DE102012219059A1 (de) Effizientes Befehlsabbildungsschema für Kurze-Datenburstlängen- Speichervorrichtungen
DE2652900A1 (de) Steuerschaltung zur bildwiederholung fuer ein raster-datensichtgeraet
DE102019118340A1 (de) Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes
DE112020000461T5 (de) Selbstreferenzierte single-ended-chip-to-chip-kommunikation
DE102020113386A1 (de) Proportionale ac-gekoppelte flankenverstärkende übertragungsentzerrung für mehrstufige pulsamplitudenmodulierte signalisierung
DE112017005197T5 (de) Hybrid-Komprimierungsschema zur effizienten Speicherung synaptischer Gewichte in neuromorphen Hardware-Kernen
DE102019107002A1 (de) Verringerung der kopplung und des leistungsrauschens an einer pam-4-i/o-schnittstelle
EP0769853B1 (de) Logischer Block für einen Viterbi-Decoder
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen
DE102013016694B4 (de) Codieren und Decodieren redundanter Bits zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE102019114978A1 (de) Datenbus-inversion (dbi) bei pulsamplitudenmodulation (pam) und reduzierung von kopplungs- und leistungsrauschen bei pam-4-ein-/ausgabe
DE60109620T2 (de) scrambler UND VERFAHREN ZUM VERWüRFELN VON DATENWöRTERN
DE112004001830B4 (de) Datenübertragungssystem mit reduziertem Leistungsverbrauch, Verfahren und Übertragungsschaltung
DE102008003268A1 (de) Anzeigeelementtreiberschaltkreis und Generatorschaltkreis für feste Steuerdaten
DE19844140C1 (de) Kodier-/Dekodiervorrichtung zum Durchführen eines Block-Interleaving/Deinterleaving

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: NVIDIA CORPORATION, SANTA CLARA, US

Free format text: FORMER OWNER: NVIDIA CORPORATION, SANTA CLARA, CALIF., US

R082 Change of representative

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final