DE102015008137A1 - Modusselektive symmetrische codierte Zusammenschaltung - Google Patents

Modusselektive symmetrische codierte Zusammenschaltung Download PDF

Info

Publication number
DE102015008137A1
DE102015008137A1 DE102015008137.3A DE102015008137A DE102015008137A1 DE 102015008137 A1 DE102015008137 A1 DE 102015008137A1 DE 102015008137 A DE102015008137 A DE 102015008137A DE 102015008137 A1 DE102015008137 A1 DE 102015008137A1
Authority
DE
Germany
Prior art keywords
data
common mode
symmetric
conductors
coding matrix
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
DE102015008137.3A
Other languages
English (en)
Inventor
Michael W. Leddige
Stephen H. Hall
Chaitanya Sreerama
Olufemi B. Oluwafemi
Antonio Zenteno Ramirez
Maynard C. Falconer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102015008137A1 publication Critical patent/DE102015008137A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Landscapes

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

Abstract

Es wird hier ein Gerät beschrieben. Das Gerät umfasst mehrere Leiter, wobei mindestens ein Leiter ein Gleichtaktleiter ist. Die Vorrichtung umfasst außerdem einen Codierer zum Codieren von auf den mehreren Leitern zu sendenden Daten, wobei gemäß einer Codierungsmatrix eine Datengeschwindigkeit des Gleichtaktleiters begrenzt und eine Datengeschwindigkeit anderer Leiter maximiert wird.

Description

  • Technisches Gebiet
  • Die vorliegende Technik betrifft allgemein Techniken zum Verringern von Übersprechen zwischen Signalleitungen in einer Datenverarbeitungsvorrichtung. Insbesondere beschreibt die Offenbarung Codierungstechniken, die Übersprechen zwischen den Signalleitungen eines Datenbusses mit maximaler Bandbreite ausnutzen.
  • Stand der Technik
  • Moderne Datenverarbeitungsvorrichtungen integrieren weiterhin eine wachsende Anzahl von Komponenten in kleinere Vorrichtungschassis. Mit abnehmenden Chassisvolumen nimmt die Routungsdichte der Datenbusse zwischen Komponenten zu, was zu entsprechenden Zunahmen von Übersprechrauschen zwischen den Signalleitungen des Datenbusses führt. Übersprechen verschlechtert tendenziell die Busleistungsfähigkeit, wodurch tendenziell die Datenrate begrenzt wird, mit der ein Datenbus Daten erfolgreich zwischen Komponenten transferieren kann. Eine Methode zum Verringern von Übersprechen in einem Datenbus ist das Vergrößern der Signalleitungsbeabstandung, wodurch der Grad an Miniaturisierung, der erreicht werden kann, begrenzt wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem mit einem Signalisierungsmodul, das Übersprechen verringert;
  • 2 ist eine Blockdarstellung eines Beispiels für zwei Signalisierungsmodule am Ansteuer- und Empfangsende eines Busses;
  • 3 ist eine mathematische Darstellung des von einem Codierer mit vier Eingängen, wie einem der Codierer von 2, verwendeten Codierungsprozesses;
  • 4 ist eine Darstellung von vier Augendiagrammen, die den Gleichtakteffekt darstellen, wenn vier Zusammenschaltungen auf eine durch eine Gleichtakt-Zusammenschaltung gesperrte Weise codiert werden;
  • 5A ist eine von einem Codierer mit vier Eingängen verwendete Codierungsmatrix W;
  • 5B ist ein Beispiel für eine Codierungsmatrix für einen Codierer mit vier Eingängen;
  • 6 ist ein Diagramm eines vom Decodierer verwendeten Decodierungsprozesses;
  • 7A ist die von einem Codierer mit N Eingängen verwendete Decodierungsmatrix I, wobei N der Anzahl der mit dem Decodierer gekoppelten Signalleitungen entspricht;
  • 7B ist ein Beispiel für eine Decodierungsmatrix für einen Decodierer mit vier Eingängen;
  • 8A ist ein Diagramm von vier Augendiagrammen, die eine auf einer Maximalgeschwindigkeit arbeitende Gleichtakt-Zusammenschaltung darstellen;
  • 8B ist ein Diagramm von vier Augendiagrammen, die symmetrische codierte Leiter darstellen;
  • 9 ist eine Darstellung einer breiten Beabstandung von Nibble zu Nibble;
  • 10 ist eine Darstellung einer schmalen Beabstandung von Nibble zu Nibble;
  • 11 ist ein Prozessflussdiagramm, das ein Verfahren zum Vergrößern einer Maximalbandbreite einer Zusammenschaltung zusammenfasst;
  • 12 ist eine Darstellung einer weitergeleiteten Taktarchitektur gemäß den vorliegenden Techniken;
  • 13 ist ein Beispiel für eine Sende-Bitübertragungsschicht; und
  • 14 ist ein Beispiel für eine Empfänger-Bitübertragungsschicht.
  • In der Offenbarung und in den Figuren werden durchweg dieselben Zahlen verwendet, um gleiche Komponenten und Merkmale zu bezeichnen. Zahlen in der 100-Reihe beziehen sich auf Merkmale, die ursprünglich in 1 zu finden sind; Zahlen in der 200-Reihe beziehen sich auf Merkmale, die ursprünglich in 2 zu finden sind; und so weiter.
  • Beschreibung der Ausführungsformen
  • Der hier offenbarte Gegenstand betrifft Signalisierungstechniken zum Senden von Informationen zwischen Komponenten in einem digitalen System, wie zum Beispiel einem Speicherbus auf einem Motherboard. Jede der Komponenten kann einen Eingabe/Ausgabe- bzw. I/O-Sender mit einem Codierungsblock und einen I/O-Empfänger mit einem Decodierungsblock umfassen. Die zwischen den Komponenten gesendeten Daten werden so codiert und decodiert, dass die negativen Auswirkungen von Übersprechen entfernt und die Signalqualität verbessert wird. Die hier offenbarten Signalisierungstechniken stellen sowohl bezüglich Routungsdichte als auch bezüglich Busgeschwindigkeiten auf Kapselungen, Leiterplatten (PCBs), Mehrchipmodulen (MCMs) und Mehrchipkapselungen (MCPs) signifikante Vergrößerungen bereit. Die Vergrößerung der Routungsdichte und Busgeschwindigkeit ermöglicht das Einarbeiten von Mehrfunktionalität in ein kleineres Volumen und hilft dabei, die Skalierung der Computerleistungsfähigkeit gemäß dem Moore'schen Gesetz zu erleichtern.
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt, wie etwa Beispiele für spezifische Arten von Prozessoren und Systemkonfigurationen, spezifische Hardwarestrukturen, spezifische architekturelle und mikroarchitekturelle Einzelheiten, spezifische Registerkonfigurationen, spezifische Anweisungstypen, spezifische Systemkomponenten, spezifische Abmessungen/Höhen, spezifische Prozessor-Pipelinestufen und Betriebsweise usw., um ein umfassendes Verständnis der vorliegenden Techniken zu gewährleisten. Für Fachleute ist jedoch erkennbar, dass diese spezifischen Einzelheiten nicht verwendet werden müssen, um die vorliegenden Techniken auszuüben. In anderen Fällen wurden wohlbekannte Komponenten oder Verfahren, wie etwa spezifische und alternative Prozessorarchitekturen, spezifische Logikschaltungen/Code zur Beschreibung von Algorithmen, spezifischer Firmwarecode, spezifische Verbindungselement-Betriebsweise, spezifische Logikkonfigurationen, spezifische Herstellungstechniken und -materialien, spezifische Compilerimplementierungen, spezifischer Ausdruck von Algorithmen in Code, spezifische Herunterfahr- und Gating-Techniken/Logik und andere spezifische Betriebsdetails des Computersystems nicht ausführlich beschrieben, um eine unnötige Verschleierung der vorliegenden Techniken zu vermeiden.
  • Obwohl die folgenden Ausführungsformen mit Bezug auf eine Energieeinsparung, Energieeffizienz, Verarbeitungseffizienz und so weiter in spezifischen integrierten Schaltungen wie z. B. in Rechenplattformen oder Mikroprozessoren beschrieben werden können, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und Logikvorrichtungen anwendbar. Ähnliche Techniken und Lehren der hier beschriebenen Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die auch von solchen Merkmalen profitieren können. Die offenbarten Ausführungsformen sind beispielsweise nicht auf ein Servercomputersystem, Desktop-Computersysteme, Laptops, UltrabooksTM begrenzt, sondern können auch in anderen Vorrichtungen wie z. B. in der Hand gehaltenen Vorrichtungen, Smartphones, Tablets, anderen dünnen Notebooks, Vorrichtungen mit Systemen auf einem Chip (SOC) und eingebetteten Anwendungen verwendet werden. Einige Beispiele von in der Hand gehaltenen Vorrichtungen umfassen Mobiltelefone, Internet-Protokoll-Vorrichtungen, Digitalkameras, persönliche digitale Assistenten (PDAs) und in der Hand gehaltene PCs. Hier können ähnliche Techniken für eine Hochleistungszusammenschaltung angewendet werden, um in einer leistungsarmen Zusammenschaltung die Leistung zu erhöhen (oder sogar Leistung zu sparen). Eingebettete Anwendungen umfassen typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), ein System auf einem Chip, Netzcomputer (NetPC), Digitalempfänger, Netzknotenpunkte, Schalter eines weiträumigen Netzes (WAN) oder irgendein anderes System, das die nachstehend gelehrten Funktionen und Operationen durchführen kann. Überdies sind die hier beschriebenen Geräte, Verfahren und Systeme nicht auf physikalische Rechenvorrichtungen begrenzt, sondern können sich auch auf Softwareoptimierungen für Energieeinsparung und Energieeffizienz beziehen. Wie in der nachstehenden Beschreibung leicht ersichtlich werden kann, können die hier beschriebenen Ausführungsformen von Verfahren, Geräten und Systemen (ob in Bezug auf Hardware, Firmware, Software oder eine Kombination davon) als für eine Zukunft einer ”grünen Technologie” unerlässlich betrachtet werden, die mit Leistungserwägungen im Gleichgewicht ist.
  • Da Rechensysteme fortschreiten, werden die Komponenten darin komplexer. Die Zusammenschaltungsarchitektur zum Koppeln und zur Kommunikation zwischen den Komponenten hat auch in der Komplexität zugenommen, um sicherzustellen, dass der Bandbreitenbedarf für einen optimalen Komponentenbetrieb erfüllt wird. Ferner verlangen verschiedene Marktsegmente verschiedene Aspekte von Zusammenschaltungsarchitekturen zur Anpassung an den jeweiligen Markt. Server erfordern beispielsweise eine höhere Leistung, während das mobile Ökosystem manchmal die Gesamtleistung für Leistungseinsparungen opfern kann. Dennoch ist es ein einzigartiger Zweck der meisten Gebilde, die höchstmögliche Leistung mit maximaler Leistungseinsparung bereitzustellen. Ferner kann eine Vielfalt von verschiedenen Zusammenschaltungen potentiell vom hier beschriebenen Gegenstand profitieren.
  • 1 ist eine Blockdarstellung eines Beispiels für ein Datenverarbeitungssystem, das eine modusselektive codierte Zusammenschaltung ermöglichen kann. Das Datenverarbeitungssystem 100 kann zum Beispiel unter anderem ein Mobiltelefon, Laptop-Computer, Ultrabook, Desktop-Computer, Server oder Tablet-Computer sein. Das Datenverarbeitungssystem 100 kann einen Prozessor 102 umfassen, der dafür ausgelegt ist, gespeicherte Anweisungen auszuführen, sowie eine Speichervorrichtung 104, die Anweisungen speichert, die durch den Prozessor 102 ausführbar sind. Der Prozessor 102 kann ein Einkern-Prozessor, ein Mehrkern-Prozessor, ein Datenverarbeitungscluster oder eine beliebige Anzahl anderer Konfigurationen sein. Der Prozessor 102 kann als Prozessoren des Typs CISC (Complex Instruction Set Computer) oder RISC (Reduced Instruction Set Computer), mit dem x86-Anweisungssatz kompatible Prozessoren, Mehrkern- und beliebige andere Prozessoren oder Zentralverarbeitungseinheit (CPU) implementiert sein. Bei bestimmten Ausführungsformen umfasst der Prozessor 102 Zweikernprozessor(en), Zweikern-Mobilprozessor(en) oder dergleichen.
  • Die Speichervorrichtung 104 kann Direktzugriffsspeicher (z. B. SRAM, DRAM, Null-Kondensator-RAM, SONOS, eDRAM, EDO RAM, DDR RAM, RRAM, PRAM usw.), Nurlesespeicher (z. B. Mask ROM, PROM, EPROM, EEPROM usw.), Flash-Speicher oder beliebige andere geeignete Speichersysteme umfassen. Die Speichervorrichtung 104 kann zum Speichern von computerlesbaren Anweisungen verwendet werden, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor dazu anleiten, verschiedene Operationen gemäß hier beschriebenen Ausführungsformen durchzuführen.
  • Das Datenverarbeitungssystem 100 kann auch einen Grafikprozessor 106 umfassen, der computergenerierte Grafik verarbeitet. Der Grafikprozessor 106 ist dafür ausgelegt, Speicher in Bezug auf die Erzeugung von zu einem (nicht gezeigten) Display zu sendenden Grafiken zu verarbeiten. Das Display kann eine eingebaute Komponente des Datenverarbeitungssystems 100 sein, die extern mit dem Datenverarbeitungssystem 100 verbunden ist. Das Datenverarbeitungssystem 100 kann auch einen I/O-Hub 108 umfassen, mit dem zusätzliche I/O-Vorrichtungen (nicht gezeigt), wie zum Beispiel unter anderem Netzwerkschnittstellensteuerungen, Speicher-Speicherungsvorrichtungen, Benutzereingabevorrichtungen verbunden und gesteuert werden. Die mit dem I/O-Hub 108 gekoppelten I/O-Vorrichtungen können eingebaute Komponenten des Datenverarbeitungssystems 100 sein oder Vorrichtungen, die extern mit dem Datenverarbeitungssystem 100 verbunden werden.
  • Das Datenverarbeitungssystem 100 kann auch einen Speichercontroller-Hub 110 umfassen, der Kommunikation zwischen dem Prozessor 102, dem Speicher 104, dem Grafikprozessor 106 und dem I/O-Hub 108 abwickelt. Kommunikation zwischen den verschiedenen Komponenten des Datenverarbeitungssystems 100 kann über verschiedene Datenbusse durchgeführt werden. Zum Beispiel kann der Grafikprozessor 106 mittels eines Grafikbusses 112 mit dem Speichercontroller 110 gekoppelt werden. Der Speicher 104 kann mittels eines Speicherbusses 114 mit dem Speichercontroller 110 gekoppelt werden. Der Datenbus zwischen dem Prozessor 102 und dem Speichercontroller 110 kann als der Frontside-Bus 116 bezeichnet werden. Der Datenbus zwischen dem Speichercontroller 110 und dem I/O-Hub 108 kann als der interne Bus 118 bezeichnet werden.
  • Bei bestimmten Ausführungsformen können der Prozessor 102, der Grafikprozessor 106, die Speichervorrichtung 104, der Speichercontroller 110 und der I/O-Hub 108 getrennte integrierte Schaltungschips sein, die mit einem Motherboard gekoppelt sind. Bei bestimmten Ausführungsformen können ein oder mehrere des Prozessors 102, des Grafikprozessors 106, der Speichervorrichtung 104, des Speichercontrollers 110 und des I/O-Hub 108 in einem Mehrchipmodul (MCM), einer Mehrchipkapselung (MCP) oder einem System auf einem Chip (SOC) enthalten sein. Abhängig von den Entwurfsgesichtspunkten einer konkreten Implementierung können die Signalleitungen des einen oder mehrerer der Busse 112, 114, 116, 118 mindestens teilweise auf einer oder mehrerer Leiterplatten angeordnet sein.
  • Das Datenverarbeitungssystem 100 umfasst außerdem Signalisierungsmodule 120, die digitale Kommunikation zwischen den mit dem jeweiligen Bus gekoppelten Komponenten ermöglichen. Jedes Signalisierungsmodul 120 empfängt ein digitales Signal und erzeugt Spannungssignale, die sich auf den Signalleitungen der verschiedenen Busse ausbreiten. Wie nachfolgend weiter erläutert wird, werden die Spannungssignale durch das Signalisierungsmodul auf eine Weise codiert, die die Auswirkungen von Übersprechen zwischen den Signalleitungen des Datenbusses verringert. Ein jeweiliges Signalisierungsmodul 120 kann mit einer beliebigen Komponente der Datenverarbeitungsvorrichtung 100, die Daten über einen Datenbus sendet, der unsymmetrische Kommunikation verwendet, gekoppelt oder darin enthalten sein. Zum Beispiel können Signalisierungsmodule unter anderem in dem Prozessor 102, dem Grafikprozessor 106, der Speichervorrichtung 104, dem Speichercontroller 110 und dem I/O-Hub 108 enthalten sein.
  • Es versteht sich, dass die Blockdarstellung von 1 nicht angeben soll, dass das Datenverarbeitungssystem 100 alle in 1 gezeigten Komponenten enthalten soll. Stattdessen kann das Datenverarbeitungssystem 100 weniger oder zusätzliche, in 1 nicht dargestellte Komponenten enthalten. Ferner können die Komponenten gemäß einer beliebigen geeigneten Systemarchitektur miteinander gekoppelt sein, darunter die in 1 gezeigte Systemarchitektur oder eine beliebige andere geeignete Systemarchitektur, die einen Datenbus verwendet, um unsymmetrische Kommunikation zwischen Komponenten zu ermöglichen. Zum Beispiel können Ausführungsformen der vorliegenden Techniken auch in einer beliebigen geeigneten elektronischen Vorrichtung implementiert werden, darunter Vorrichtungen mit ultrakompaktem Formfaktor wie ein System auf einem Chip (SOC) und Mehrchipmodule. Sie könnte auch auf einem beliebigen elektrischen Kabel innerhalb oder außerhalb eines Computers verwendet werden, mit dem digitale Informationen von einem Punkt zum anderen geführt werden. Zum Beispiel können Ausführungsformen der vorliegenden Techniken zum Verbinden von Festplatten verwendet werden.
  • 2 ist eine Blockdarstellung eines Beispiels für zwei Signalisierungsmodule am Ansteuer- und Empfangsende eines Busses. Speziell zeigt 2 zwei Signalisierungsmodule 120, die mittels eines Datenbusses 200, der N Signalleitungen umfasst, kommunikativ gekoppelt sind, wobei N eine beliebige geeignete Zahl sein kann, wie etwa, aber ohne Beschränkung darauf, 2, 4, 16, 32, 64 oder 128. Bei bestimmten Ausführungsformen sind die Signalleitungen Streifenleitungen oder Mikrostreifenleitungen, die mindestens teilweise auf einer Leiterplatte angeordnet sind. Bei bestimmten Ausführungsformen sind die Signalleitungen mindestens teilweise in einem SOC, einem Mehrchipmodul oder einem oder mehreren Kabeln angeordnet. Ferner ist bei bestimmten Ausführungsformen der Bus 200 ein gegenüber Übersprechen gefestigter Codierungsbus. Für die Zwecke der vorliegenden Beschreibung werden die Signalisierungsmodule 120 hier als ein Sendemodul 202 und ein Empfangsmodul 204 bezeichnet. Der Klarheit halber ist das Sendemodul 202 als die beim Senden verwendeten Komponenten enthaltend gezeigt, während das Empfangsmodul 204 als die beim Empfangen verwendenden Komponenten enthaltend gezeigt ist. Es versteht sich jedoch, dass bei bestimmten Ausführungsformen jedes Signalisierungsmodul 120 Komponenten sowohl zum Senden als auch zum Empfangen von Daten mittels des Datenbusses enthalten wird.
  • Das Sendemodul 202 umfasst einen oder mehrere Codierer 206 zum Codieren der über den Bus 200 zu sendenden Daten. Der Codierer 206 umfasst eine Anzahl von digitalen Eingängen zum Empfangen von digital codierten Daten von einer (nicht gezeigten) elektronischen Komponente. Die digitalen Eingänge des Codierers werden in 2 als ”Daten A” bis ”Daten N” bezeichnet. Der Ausgang des Codierers 206 ist mit mehreren Sendern 208 gekoppelt, die jeweils ein Signal von dem Codierer 206 empfangen und ein entsprechendes Spannungssignal auf ihrer jeweiligen Signalleitung senden. Der Codierer 206 codiert die über den Bus 200 gesendeten Daten dergestalt, dass die negativen Auswirkungen von Übersprechen entfernt werden und die Signalqualität verbessert wird. In bestimmten Fällen wird die Codierung nibbleweise durchgeführt. Die resultierenden Signalformen, die auf den Bus 200 gesteuert werden, bestehen aus N Spannungspegeln, wobei N größer als 2 ist. Die resultierenden Signalformen umfassen somit mehr Spannungspegel als die traditioneller binärer Signalformen. Zum Beispiel ist in dem Szenario, bei dem 4 Signalleitungen codiert werden, N = 4 und es können 4 Spannungspegel auf den Bus gesteuert werden.
  • Das Empfangsmodul 204 umfasst Empfänger 210, die mit jeder der Signalleitungen gekoppelt sind. Jeder Empfänger 210 empfängt das durch den jeweiligen Sender 208 des Sendemoduls 202 gesendete analoge Signal und führt einem jeweiligen Codierer 212 ein Eingangssignal zu. Der Decodierer 212 decodiert die über den Datenbus 200 gesendeten Daten und sendet digitale Daten zu einer (nicht gezeigten) elektronischen Empfangskomponente. Jeder Decodierer 212 des Empfangsmoduls 204 ist mit einem jeweiligen Codierer 206 des Sendemoduls 202 gepaart. Die Empfänger 210 können die Daten decodieren, indem die 4 Spannungspegel am Eingang des Empfängers einmal pro Einheitsintervall (UI) abgetastet werden, und verwenden eine Nachschlagetabelle mit Eigenschaften, die von der Codierungsmatrix W abhängen, um den binären Bitstrom wiederzugewinnen.
  • Wie in 2 gezeigt, kann jeder Codierer 206 vier der Signalleitungen des Datenbusses 200 steuern. Bei bestimmten Ausführungsformen kann jeder Codierer 206 jedoch eine beliebige geeignete Anzahl von Signalleitungen steuern, bis zu der Gesamtzahl von Signalleitungen des Datenbusses 200. Bei bestimmten Ausführungsformen, wie etwa der in 2 gezeigten, wird der Datenbus 200 zwischen einer Anzahl von Codierer-/Decodiererpaaren aufgeteilt. Bei bestimmten Ausführungsformen umfasst das Sendemodul einen einzigen Codierer 206 und das Empfangsmodul einen einzigen Decodierer 212.
  • Im Verlauf der vorliegenden Beschreibung werden Knoten erwähnt, die als Bezugspunkte zur Erläuterung der vorliegenden Techniken dienen. Speziell bezieht sich Knoten A auf den Ausgang der Sender 208 des Sendemoduls 202, Knoten B bezieht sich auf den Eingang der Empfänger 210 des Empfangsmoduls 204 und Knoten C bezieht sich auf den digitalen Ausgang des Decodierers 212 im Empfangsmodul 204.
  • Wie nachfolgend weiter erläutert wird, werden die Dateneingänge für einen einzelnen Codierer 206 (zum Beispiel Daten A bis Daten D) so codiert, dass das Übersprechen von benachbarten Signalleitungen Teil des über jede Signalleitung gesendeten Signals wird. Bei bestimmten Ausführungsformen verwendet der Codierer 206 eine Codierungsmatrix zur Erzeugung der gesendeten Leitungsspannungen, so dass die auf eine bestimmte Signalleitung gesteuerte Leitungsspannung eine gewichtete Summe aller digitaler Eingaben in den Codierer 206 ist. Die Codierung justiert die Spannungssignalform auf jeder Signalleitung so, dass bei der Decodierung das Übersprechen von den benachbarten Leitungen Teil des Signals auf jeder jeweiligen Signalleitung wird und zum ursprünglichen Signal decodiert wird. Bei bestimmten Ausführungsformen decodiert der Decodierer 212 die empfangenen Leitungsspannungen unter Verwendung einer Decodierungsmatrix, die die Transponierte oder Inverse der Codierungsmatrix ist. Beispielsweise können die vier datencodierten Signalleitungen Leitung 1 bis Leitung 4 als vier Leiter betrachtet werden, mit drei symmetrischen codierten Leitern und einem Gleichtakt-Leiter. Die Auswirkung, einen Leiter zu haben, der im Gleichtakt arbeitet, ist, dass dieser eine Leiter verglichen mit den übrigen Leitern, die symmetrische Codierung aufweisen, eine niedrigere maximale Datenrate aufweisen wird.
  • 3 ist eine mathematische Darstellung des von einem Codierer mit vier Eingängen, die etwa einem der Codierer 206 von 2, verwendeten Codierungsprozesses. Die Darstellung 300 von 2 zeigt eine Anzahl von Dateneingängen, Daten A bis Daten D, die den in 2 gezeigten vier Dateneingängen mit demselben Namen entsprechen. Die Darstellung 300 von 2 zeigt auch eine Anzahl von Ausgangsleitungsspannungen, die als Spannung Leitung 1 und Spannung Leitung 2 bezeichnet werden. Spannung Leitung 1 repräsentiert die Spannung, die auf die Signalleitung gesteuert wird, die in 2 als ”Leitung 1” bezeichnet wird, und Spannung Leitung 2 repräsentiert die Spannung, die auf die Signalleitung gesteuert wird, die in 2 als ”Leitung 2” bezeichnet wird. Es versteht sich, dass der Codierer mit vier Eingängen auch eine Spannung Leitung 3 und eine Spannung Leitung 4 (nicht gezeigt) umfasst.
  • Wie in 3 gezeigt, kann der Codierer Gewichtungslogik und Summierungslogik umfassen. Daten A bis Daten D sind die binären Spannungspegel (z. B. 1en und 0en) am Eingang des Codierers. Für jede Leitungsspannung gewichtet der Codierer jeden der vier Dateneingänge Daten A bis Daten D gemäß spezifizierten Gewichtungsparametern Wij 302, und die gewichteten Eingänge werden dann durch einen Summierer 304 addiert. Mit dem Ausgang jedes Summierers 304 wird der Sender zum Ansteuern der entsprechenden Leitungsspannung gesteuert. Nach dem Codieren der Eingangsdaten wird jede der Leitungsspannungen zu der gewichteten Summe jeder der mit dem Codierer gekoppelten Dateneingänge proportional sein.
  • Wie in 3 gezeigt, basiert die Codierung auf einer gewichteten Summe von Eingangsdateninformationen aus den Opfer- und Aggressorleitungen. Für die Zwecke der vorliegenden Beschreibung bezieht sich der Ausdruck ”Aggressorleitung” auf die Quelle des Übersprechrauschens und der Ausdruck ”Opferleitung” auf den Empfänger des Übersprechrauschens. Die Codierungsmatrix ist so konstruiert, dass das aus Aggressor- auf Opferleitungen gekoppelte Rauschen Teil des Signals wird, um somit die negativen Attribute von Übersprechen zu entfernen. Die Eingangsdateninformationen können entweder aus dem eingegebenen binären Datenstrom (logischen Einsen und Nullen) oder ihren vorgesteuerten Spannungswerten bestehen. Auf diese Weise sind die Gewichtungsparameter oder Gewichtungsfaktoren von der Anzahl der Leiter abhängig, die eine ausreichende Menge an Übersprechen aufweisen, das gemindert werden muss. Die Gewichte Wij können für jeden Eingang einzigartig sein und können eine einzigartige Menge für jede betrachtete Opferleitung sein. Die Indizes i und j geben die Opferleitungsnummer bzw. Aggressorleitungsnummer an. Die Gewichtungsparameter Wij 302 können gemäß einem vordefinierten Gewichtungsschema in Bezug auf 5A und 5B spezifiziert werden, die jeweils die in Matrixform zusammengestellten Gewichtungsparameter zeigen.
  • Der in 3 gezeigte Prozess kann in beliebiger geeigneter Hardware implementiert werden, darunter Logikschaltungen, ein oder mehrere zum Ausführen von computerlesbaren Anweisungen ausgelegte Prozessoren und dergleichen. Obwohl 3 eine Darstellung eines Codierers mit vier Eingängen zeigt, kann ferner dieselbe Technik in einem Codierer mit einer beliebigen geeigneten Anzahl von Dateneingängen verwendet werden.
  • 4 ist eine Darstellung von vier Augendiagrammen 400, die den Gleichtakteffekt darstellen, wenn vier Zusammenschaltungen auf eine durch eine Gleichtakt-Zusammenschaltung gesperrte Weise codiert werden. Im vorliegenden Gebrauch umfasst jede Zusammenschaltung einen Leiter, wobei jeder Leiter eine Signalleitung umfasst, die ein Signal führt. Insbesondere ist ein Augendiagramm für jede von Leitung 1, Leitung 2, Leitung 3 und Leitung 4 gezeigt. Ein Augendiagramm, das auch als Augenmuster bezeichnet wird, ist ein Werkzeug zum Bewerten der Qualität eines digitalen Signals. Ein offenes Augenmuster zeigt einen geringen Grad an Signalverzerrung an. Schließung des Augendiagramms zeigt Verzerrungen der Signalform aufgrund von Übersprechen und anderen Faktoren an. Die x-Achse des Augendiagramms repräsentiert Einheitsintervalle (UI), während die y-Achse Amplitude repräsentiert.
  • Jedes der vier simulierten Augendiagramme 400 repräsentiert die Signalqualität eines langen Pseudozufalls-Bitstroms, der am Ausgang des Decodierers 212 (2 am Knoten C) erfasst wird, mit einer Datenrate von 8 Gigatransfer pro Sekunde (GT/s), Bus mit einem Zoll langen Übertragungsleitungen und dichter Routung. Wie dargestellt ist Leitung 1 eine Gleichtakt-Zusammenschaltung, die verglichen mit den übrigen drei Zusammenschaltungen mit einer niedrigeren Bandbreite arbeitet. Bei 8 Gigabit pro Sekunde (Gb/s) ist das Augendiagramm für Leitung 1 aufgrund von Übersprechen und anderen Faktoren signifikant geschlossen. Wenn Leitung 2, Leitung 3 und Leitung 4 zu einem Betrieb mit einer Mindestfrequenz gezwungen werden, die durch die Gleichtakt-Zusammenschaltungs-Leitung 1 vorgeschrieben wird, würde ein großer Teil von Bandbreite nicht benutzt, wie dadurch dargestellt, dass die Augendiagramme, die Leitung 2, Leitung 3 und Leitung 4 entsprechen, verglichen mit Leitung 1 offener sind. Außerdem würde eine signifikante Datenraten-Leistungsfähigkeitszunahme nicht realisiert.
  • Um einen höheren Datendurchsatz zu erhalten, werden Leitung 2, Leitung 3 und Leitung 4 nicht durch den niedrigen Durchsatz der Gleichtakt-Signalleitung 1 begrenzt. Insbesondere kann eine Codierungsmatrix verwendet werden, um auf andere Leitungen als die Gleichtakt-Signalleitung symmetrische Codierung anzuwenden, während das Gleichtaktsignal als Leitung mit verringerter Datenrate benutzt wird. Bei bestimmten Ausführungsformen kann die Gleichtakt-Zusammenschaltung für langsamere Kommunikation, wie etwa Seitenbandsignale, verwendet werden.
  • 5A ist eine von einem Codierer mit vier Eingängen benutzte Codierungsmatrix 500, W. Obwohl die Codierungsmatrix 500 als eine Codierungsmatrix mit vier Eingängen beschrieben wird, kann eine beliebige Anzahl von Eingängen verwendet werden. Zum Beispiel kann die Codierungsmatrix ein Codierer mit N Eingängen sein, wobei N der Anzahl der durch den Codierer gesteuerten Signalleitungen entspricht. Die Codierungsmatrix ist eine Matrix von Gewichtungsparametern, die zur Codierung der durch den Codierer empfangenen digitalen Daten verwendet wird. Die Größe der Codierungsmatrix richtet sich nach der Anzahl der durch den Codierer gesteuerten Signalleitungen. Die Gewichtungsparameter Wij können so spezifiziert werden, dass das Übersprechen zwischen jeder der durch den Codierer gesteuerten Signalleitungen verringert wird, während immer noch sichergestellt wird, dass die in den Codierer eingegebenen digitalen Daten durch einen Decodierer reproduziert werden können.
  • Die Gewichtungsparameter können reelle Zahlen mit Vorzeichen, komplexe Zahlen oder ganze Zahlen sein und werden so gewählt, dass Übersprechen minimiert und nicht gegen Spannungsgrenzen der Sender- und Empfängervorrichtungen verstoßen wird. Nachdem Daten über den Kanal gesendet wurden, ist Übersprechen effektiv aus den Signalen entfernt und die binären Daten können wiedergewonnen werden. Um Übersprechen zu minimieren, können die Gewichtungsparameter gemäß spezifischen Regeln spezifiziert werden. Die Gewichtungsmatrix ist jedoch nicht durch eine niedrigste Datenrate des Gleichtaktsignals begrenzt. Stattdessen werden die Gewichte so angewandt, dass die Signalleitungen, die eine symmetrische Codierung aus der Codierungsmatrix aufweisen, mit einer maximalen Datenrate arbeiten können, während das Gleichtaktsignal als reduzierte Datenleitung verwendet wird. Bei bestimmten Ausführungsformen kann die festgelegte Gleichtakt-Signalleitung für langsamere Kommunikation, wie etwa Seitenbandsignale, verwendet werden. Das Gleichtaktsignal entspricht Gewichtungsfaktoren mit demselben Vorzeichen (entweder positiv oder negativ) in der Codierungsmatrix. Die symmetrischen codierten Signale weisen Gewichtungsfaktoren desselben Betrags in der Codierungsmatrix auf.
  • 5B ist ein Beispiel für eine Codierungsmatrix für einen Codierer mit vier Eingängen. Die erste Spalte der Codierungsmatrix entspricht dem Gleichtaktsignal, da jeder Wert dieser Spalte dasselbe Vorzeichen aufweist. In diesem Fall ist jeder dem Gleichtaktsignal entsprechende Wert positiv. Die Werte in den übrigen Spalten weisen gleichen Betrag mit unterschiedlichen Vorzeichen auf. Die übrigen Spalten repräsentieren die symmetrische Codierung. Dementsprechend weisen die durch die Codierungsmatrix 502 repräsentierten vier Zusammenschaltungen drei symmetrische codierte Zusammenschaltungen auf, die gleiche positive und negative Gewichtungsfaktoren aufweisen, und eine Gleichtakt-Zusammenschaltung, die durchweg positive oder negative Gewichtungsfaktoren aufweist. Die Codierungsmatrix mit vier Eingängen kann in dem Codierer 206 mit vier Eingängen verwendet werden, der in 2 gezeigt und in 3 repräsentiert ist. Es sollte beachtet werden, dass die Werte, aus denen die Codierungsmatrix W besteht, ein beliebiger geeigneter Wert sein können und nicht wie in dem Beispiel von 5B gezeigt identisch sein müssen.
  • 6 ist eine Darstellung eines vom Decodierer verwendeten Decodierungsprozesses. Speziell ist 6 eine mathematische Darstellung des Decodierungsprozesses, der von dem Decodierer 212 verwendet wird, der mit dem Codierer 206 von 2 und 3 gepaart ist. Das Diagramm 600 von 2 zeigt eine Anzahl von Leitungsspannungseingängen Leitung 1 bis Leitung 4, die den Signalleitungen mit demselben Namen entsprechen, die in 2 gezeigt sind. Das Diagramm 600 von 6 zeigt auch eine Anzahl von Datenausgängen, die als Daten A und Daten B bezeichnet werden. Die Ausgänge Daten A und Daten B repräsentieren die Datenausgänge mit demselben Namen, die in 2 gezeigt sind. Es versteht sich, dass der Decodierer mit vier Ausgängen von 6 auch einen Ausgang Daten C und Ausgang Daten D (nicht gezeigt) umfasst.
  • Wie in 6 gezeigt, kann der Decodierer Gewichtungslogik und Summierungslogik umfassen. Für jeden Datenausgang gewichtet der Decodierer jede der über den Datenbus empfangenen vier Leitungsspannungen gemäß spezifizierten Gewichtungsparametern Iij 602, und die gewichteten Leitungsspannungen werden dann durch einen Summierer 604 addiert. Die Leitungsspannungen von jeder Signalleitung werden mit entsprechenden Gewichtungstermen Ii,j multipliziert. Die Indizes i und j geben die Opferleitungsnummer bzw. Aggressorleitungsnummer an. Der Ausgang jedes Summierers 604 wird zur Erzeugung einer entsprechenden digitalen Datenausgabe verwendet. Nach dem Decodieren der Leitungsspannungsdaten ist jeder der Datenausgänge proportional zu der gewichteten Summe jeder der mit dem Decodierer gekoppelten Leitungsspannungen. Der als Daten A bezeichnete Decodiererausgang ist ein digitales Signal, das die digitalen Daten repräsentiert, die auf der Sendeseite des Datenbusses in den entsprechenden Codierer eingegeben wurden, was sowohl in 2 als auch in 3 auch als Daten A bezeichnet wird. Die Gewichtungsparameter Iij 602 können gemäß einem vordefinierten Gewichtungsschema spezifiziert werden, das nachfolgend in Bezug auf 7A und 7B weiter erläutert wird.
  • Der in 6 gezeigte Prozess kann in beliebiger geeigneter Hardware implementiert werden, darunter Logikschaltungen, ein oder mehrere zum Ausführen von computerlesbaren Anweisungen ausgelegte Prozessoren und dergleichen. Obwohl 6 ein Diagramm eines Decodierers mit vier Ausgängen zeigt, kann ferner dieselbe Technik in einem Decodierer mit einer beliebigen geeigneten Anzahl von Datenausgängen verwendet werden.
  • 7A ist die von einem Codierer mit N Eingängen verwendete Decodierungsmatrix I, wobei N der Anzahl der mit dem Decodierer gekoppelten Signalleitungen entspricht. Die Decodierungsmatrix ist eine Matrix von Gewichtungsparametern, mit der die durch den Decodierer empfangenen Leitungsspannungen decodiert werden. Die Größe der Codierungsmatrix richtet sich nach der Anzahl der mit dem Decodierer gekoppelten Signalleitungen. Um sicherzustellen, dass die digitalen Daten durch den Decodierer reproduziert werden können, können die Gewichtungsparameter Iij so spezifiziert werden, dass die Decodierungsmatrix I die Transponierte oder Inverse der Codierungsmatrix W ist. Der Decodierungsprozess kehrt die Operationen des Codierungsprozesses um. Nach dem Decodierungsprozess werden die codierten Leitungsspannungen wieder in binäre Spannungen umgesetzt und der digitale Bitstrom wird wiedergewonnen.
  • 7B ist ein Beispiel für eine Decodierungsmatrix für einen Decodierer mit vier Eingängen. Die Decodierungsmatrix mit vier Eingängen ist die Inverse (und für diesen konkreten Fall Transponierte) der in 5B gezeigten Codierungsmatrix, multipliziert mit einem Skalierungsfaktor von 0,25. In bestimmten Fällen ist die Inverse der Codierungsmatrix gleich der Transponierten der Codierungsmatrix. Dies ist jedoch nicht immer der Fall, wenn die Decodierungsmatrix die Inverse der Codierungsmatrix ist. Obwohl in dem vorliegenden Beispiel ein Skalierungsfaktor von 0,25 verwendet wird, ist zusätzlich erkennbar, dass die Decodierungsmatrix abhängig von den Entwurfsgewichtspunkten einer konkreten Implementierung einen beliebigen geeigneten Skalierungsfaktor verwenden kann. Die Decodierungsmatrix mit vier Eingängen kann in dem Decodierer 206 mit vier Eingängen verwendet werden, der in 2 gezeigt und in 6 repräsentiert ist.
  • 8A ist eine Darstellung von vier Augendiagrammen 800, die eine Gleichtakt-Zusammenschaltung darstellen, die mit maximaler Geschwindigkeit arbeitet. Insbesondere arbeitet Leitung 1 auf einer Gleichtaktgrenze von 8 Gb/s. Wenn bei einem Bus, der Leitung 1, Leitung 2, Leitung 3 und Leitung 4 umfasst, alle Leitungen mit derselben Datenraten von 8 GB/s arbeiten, beträgt die maximale Bandbreite auf diesem Bus 32 Gb/s. In bestimmten Fällen ist eine maximale Datenrate oder eine maximale Bandbreite der symmetrischen codierten Zusammenschaltung eine Rate oder Bandbreite, bei der Integrität der gesendeten Daten aufrechterhalten wird.
  • 8B ist eine Darstellung von vier Augendiagrammen 850, die symmetrische codierte Zusammenschaltungen darstellen. Insbesondere sind Leitung 2, Leitung 3 und Leitung 4 symmetrische codierte Zusammenschaltungen, die jeweils zum Betrieb mit 24 Gb/s fähig sind. Selbst wenn die symmetrischen codierten Zusammenschaltungen mit 24 Gb/s arbeiten, bleibt das Auge der Gleichtaktleitung 1 offen und kann Daten mit 8 Gb/s senden. Dies führt zu einem Gesamtdurchsatz von 80 Gb/s und einer Verbesserung von 2,5-mal mehr als Betrieb ohne symmetrische codierte Zusammenschaltungen.
  • Zusätzlich zu einem höheren Durchsatz auf einem einzigen Bus können die vorliegenden Techniken auf einen breiten, dicht gerouteten Bus angewandt werden. 9 ist eine Darstellung einer breiten Beabstandung von Nibble zu Nibble. Im vorliegenden Gebrauch ist ein Nibble eine Gruppierung von Signalleitungen, die wie oben beschrieben zusammen codiert werden sollen. Jedes Nibble kann N Signalleitungen aufweisen, wobei N eine beliebige geeignete Zahl sein kann, darunter, aber ohne Beschränkung darauf, 2, 4, 16, 32, 64 oder 128. Bei bestimmten Ausführungsformen sind die Signalleitungen Streifenleitungen oder Mikrostreifenleitungen, die mindestens teilweise auf einer Leiterplatte angeordnet sind. Eine Leiterplatte 902 umfasst ein erstes Nibble 904 und ein zweites Nibble 906. Obwohl eine Leiterplatte beschrieben wird, können die vorliegenden Techniken auf einem Kabel, einer flexiblen Leiterplatte, einem Verbinder und dergleichen implementiert werden. Das erste Nibble 904 umfasst Leitung 1, Leitung 2, Leitung 3 und Leitung 4. Das zweite Nibble 906 umfasst Leitung 5, Leitung 6, Leitung 7 und Leitung 8. Ferner beträgt die Beabstandung zwischen dem ersten Nibble 904 und dem zweiten Nibble 906 24 mil. Kurz gefasst, können das erste Nibble 904 und das zweite Nibble 906 ein Byte Daten transferieren.
  • Jedes Nibble des Byte weist eine Zusammenschaltung auf, die im Gleichtakt arbeitet. Für die Zwecke des vorliegenden Beispiels sind Leitung 1 des ersten Nibbles 904 und Leitung 5 des zweiten Nibbles 906 jeweils Gleichtakt-Zusammenschaltungen. Ferner sind für die Zwecke dieses Beispiels die Leiter in diesem Beispiel 4 mil breit mit einem Abstand von 4 mil zwischen Leitung 1, Leitung 2, Leitung 3 und Leitung 4. Außerdem besteht 4 mil Beabstandung zwischen Leitung 5, Leitung 6, Leitung 7 und Leitung 8, mit einer breiten Beabstandung von 24 mil (sechsmal der Breite zwischen jeder Leitung eines Nibbles) zwischen dem ersten Nibble 904 und dem zweiten Nibble 906.
  • Die entsprechenden Augendiagramme veranschaulichen die Leistungsfähigkeit jeder Zusammenschaltung in dem Übersprechcodierten 8-Bit-Bus, wobei Leitung 1 und Leitung 5 im Gleichtakt arbeiten. Bei 8 Gb/s sind die Augen für alle Zusammenschaltungen für diese Simulationsbedingung offen, wobei Augen, die den Gleichtaktsignalen entsprechen, am geschlossensten sind. 9 zeigt eine starke Dichtereduktion aufgrund der vergrößerten Beabstandung zwischen Nibbles und Beschränkung der Datenrate aufgrund der Gleichtaktsignale. Dichte kann jedoch durch Durchsatzjustierung und voll symmetrische Codierung vergrößert werden.
  • 10 ist eine Darstellung von schmaler Beabstandung von Nibble zu Nibble. Ähnlich wie bei 9 umfasst eine Leiterplatte 1002 ein erstes Nibble 1004 und ein zweites Nibble 1006. Das erste Nibble 1004 umfasst Leitung 1, Leitung 2, Leitung 3 und Leitung 4. Das zweite Nibble 1006 umfasst Leitung 5, Leitung 6, Leitung 7 und Leitung 8. Ferner beträgt die Beabstandung zwischen dem ersten Nibble 1004 und dem zweiten Nibble 1006 4 mil.
  • Jedes Nibble des Byte weist eine Zusammenschaltung auf, die im Gleichtaktmodus arbeitet. Für die Zwecke dieses Beispiels sind Leitung 1 des ersten Nibbles 1004 und Leitung 5 des zweiten Nibbles 1006 jeweils Gleichtaktleiter. Ferner sind für die Zwecke dieses Beispiels die Leiter in diesem Beispiel 4 mil breit mit einem Abstand von 4 mil zwischen Leitung 1, Leitung 2, Leitung 3 und Leitung 4. Außerdem besteht 4 mil Beabstandung zwischen Leitung 5, Leitung 6, Leitung 7 und Leitung 8, mit einer schmalen Beabstandung von 4 mil (gleich der Breite zwischen jeder Leitung und einem Nibble) zwischen dem ersten Nibble 1004 und dem zweiten Nibble 1006.
  • Um die Dichte zu vergrößern, wurde der Abstand zwischen jedem Nibble verringert. Obwohl dies die Dichte des Busses vergrößern kann, weisen die Gleichtaktsignale von Leitung 1 und Leitung 5 geschlossene Augen auf, wie durch die entsprechenden Augendiagramme in 10 dargestellt. Die geschlossenen Augen sind auf unerwünschtes Übersprechen zwischen den Nibbles zurückzuführen. Mittels symmetrischer selektiver Codierung kann jedoch die Datenrate auf den Gleichtaktleitern verringert werden, um das Auge zu öffnen, während die Routungsdichte vergrößert wird. In bestimmten Fällen wird die Routungsdichte um 62% vergrößert.
  • 11 ist ein Prozessflussdiagramm, das ein Verfahren zum Vergrößern einer maximalen Bandbreite eines Busses zusammenfasst. Das Verfahren 1100 kann durch ein oder mehrere Signalisierungsmodule, wie etwa die in 1 gezeigten Signalisierungsmodule, ausgeführt werden. Das Verfahren 1100 kann durch Logik implementiert werden, die in dem Signalisierungsmodul, zum Beispiel in dem Codierer 206 und Decodierer 212 von 2, enthalten ist. Die Logik ist in Hardware realisiert, wie etwa als Logikschaltkreise oder ein oder mehrere Prozessoren, die dafür ausgelegt sind, Anweisungen auszuführen, die in einem nichtvergänglichen computerlesbaren Medium gespeichert sind. Das Verfahren kann im Block 1102 beginnen, worin mehrere Datenbit durch einen Codierer empfangen werden. Die Datenbit werden parallel empfangen, was bedeutet, dass jedes Datenbit ungefähr zum gleichen Zeitpunkt empfangen wird und jedes Datenbit einem anderen Datenstrom entspricht.
  • Im Block 1104 wird ein Teil der Datenbit auf symmetrische Weise gewichtet. Zum Beispiel wird der Teil der Datenbit, der einer symmetrischen codierten Zusammenschaltung entspricht, durch gleiche positive oder negative Gewichtungsfaktoren gewichtet. Die Datenbit, die der Gleichtakt-Zusammenschaltung entsprechen, werden durch durchweg positive oder durchweg negative Gewichte gewichtet. Wie oben besprochen, kann die Codierungsmatrix eine Matrix sein, wobei das Skalarprodukt zwischen zwei beliebigen Spalten der Codierungsmatrix null ist und die Summe von Quadraten für jede Spalte der Codierungsmatrix von null verschieden ist. Die Werte der Codierungsmatrix können bewirken, dass der Teil der Datenbit auf symmetrische Weise gewichtet wird. Im Block 1106 werden die Datenbit, die einer symmetrischen codierten Zusammenschaltung entsprechen, mit einer maximalen Datenrate gesendet. Die Datenbit, die der Gleichtakt-Zusammenschaltung entsprechen, können mit einer begrenzten Datenrate gesendet werden. Die begrenzte Datenrate kann eine langsamere Geschwindigkeit als die symmetrischen codierten Signalleitungen sein. In bestimmten Fällen sollen die symmetrischen codierten Signalleitungen mit einer maximalen Bandbreite arbeiten.
  • Bei Ausführungsformen können die gewichteten Daten summiert werden. Die summierten gewichteten Daten können zum Erzeugen eines über eine Signalleitung zu sendenden Signalpegels verwendet werden. Zum Beispiel kann der Codierer mit dem Ergebnis der Summierung ein Steuersignal erzeugen, mit dem ein Sender gesteuert wird, so dass das gesendete Signal proportional zu einer gewichteten Summe jeder der Eingaben in den Codierer ist. Der Signalpegel wird über die Signalleitung gesendet und der Signalpegel kann für jede durch den Codierer gesteuerte Signalleitung parallel gesendet werden, so dass jeder erzeugte Signalpegel unter Verwendung einer anderen Spalte von Gewichtungsparametern aus der Codierungsmatrix erzeugt wird.
  • Mehrere Signale können nach dem Senden über einen Bus empfangen werden. Die mehreren Signale können Signale sein, die durch einen Codierer dem Prozess wie oben beschrieben folgend gesendet wurden. Im Decodierer kann jedes der mehreren Signale mit einem Gewichtungsparameter multipliziert werden, um gewichtete Daten zu erzeugen. Die Gewichtungsparameter können aus einer Decodierungsmatrix erhalten werden, die die Transponierte der vom Codierer verwendeten Codierungsmatrix ist. Die gewichteten Daten können dann summiert werden, um ein empfangenes Datenbit zu erzeugen. Das empfangene Datenbit wird denselben Wert wie eines der durch den Codierer empfangenen Datenbit aufweisen. Daten von jeder Signalleitung können parallel decodiert werden. Am Ende des Prozesses wird jedes der durch den Codierer empfangenen Datenbit durch den Decodierer reproduziert.
  • Zusätzlich kann die Routungsdichte eines Busses, der symmetrische codierte Signale umfasst, die unerwünschten Auswirkungen von Übersprechen von Nibble zu Nibble überwinden, indem es der Gleichtakt-Zusammenschaltung ermöglicht wird, mit einer Geschwindigkeit zu laufen, die langsam genug ist, um ein offenes Empfangsauge zu haben. Anders ausgedrückt, kann eine Routungssdichte vergrößert werden, indem die Datengeschwindigkeit der Gleichtakt-Zusammenschaltung verkleinert wird, so dass Daten auf der Gleichtakt-Zusammenschaltung bei Decodierung im Decodierer intakt sind.
  • 12 ist eine Darstellung einer weitergeleiteten Taktarchitektur 1200 gemäß den vorliegenden Techniken. Die Link-Taktquelle wird aus einem I/O-PLL 1202 im Analogen Frontend (AFE) der PHY-Schicht abgeleitet. Abhängig von den für das langsamere Signal ausgewählten Datenraten kann ein einfacher Taktteiler angemessene Leistungsfähigkeit bereitstellen. Wenn die Zusammenschaltung ein Seitenbandsignal für Link-Initialisierung und Steuerinformationen benötigt, erlaubt diese Lösung, dass der Uncore-Takt das Seitenband in einem Niederfrequenzmodus laufen lässt.
  • 13 ist ein Beispiel für eine Sendebitübertragungsschicht (PHY) 1300. Der Einfachheit beim Takten halber kann ein Taktverhältnisteiler verwendet werden, um den Takt für die langsamen Gleichtaktsignale aus dem I/O-PLL abzuleiten. Um asynchrone Kommunikation für das Seitenbandsignal zu ermöglichen, ohne das gesamte AFE aufzuwecken, erlaubt ein Multiplexer dem Uncore-Takt (UCLK), langsame Signale, wie Wach-Schlaf-Handshaking, zu senden. In diesem Beispiel kann die Pegelteilung in einem Logikblock zwischen dem PISO und dem Treiber erfolgen.
  • 14 ist ein Beispiel für eine Empfängerbitübertragungsschicht (PHY) 1400. Auf der Decodierseite setzt der Strobe die Taktung für den Empfänger mit Verzögerungsleitungen, um die Gruppe von vier I/Os zu synchronisieren. Jeder Empfänger erhält denselben Vollgeschwindigkeitstakt, um sicherzustellen, dass das empfangene Übersprechen von jedem schnellen Bit abgetastet wird und durch die digitalen Blöcke nach den Empfängern wiedergewonnen werden kann. Bei Ausführungsformen kann eine optionale Abschließung im Empfänger implementiert werden.
  • Durch zweifachen Zweck für das langsame Signal, wie etwa das oben beschriebene Gleichtaktsignal für Seitenbandkommunikation, wird ein Vierdraht-Nibble eine selbständige PHY-Schnittstelle für Anwendungen mit serieller Eingabe/Ausgabe I/O mit einer definierten Spur zum Durchleiten von Energiemanagement- und Steuerinformationen zwischen zwei Siliziumchips. Obwohl eine taktweitergeleitete Architektur beschrieben wurde, ist das Konzept über Architekturen mit gemeinsamen Takt oder sogar eingebettetem Takt hinweg anwendbar.
  • BEISPIEL 1
  • Es wird hier eine Vorrichtung beschrieben. Die Vorrichtung umfasst mehrere Leiter, wobei mindestens ein Leiter ein Gleichtaktleiter ist. Die Vorrichtung umfasst außerdem einen Codierer zum Codieren von Daten, die auf den mehreren Leitern zu senden sind, wobei gemäß einer Codierungsmatrix eine Datengeschwindigkeit des Gleichtaktleiters begrenzt und eine Datengeschwindigkeit anderer Leiter maximiert wird.
  • Die anderen Leiter können eine symmetrische Codierung aus der Codierungsmatrix aufweisen. Der Gleichtaktleiter kann durchweg positiven oder durchweg negativen Gewichten in der Codierungsmatrix entsprechen. Der Gleichtaktleiter kann gemäß einer Routungsdichte der mehreren Leiter begrenzt werden. Eine Beabstandung von Nibble zu Nibble der mehreren Leiter kann gleich einer Beabstandung zwischen jedem Leiter der mehreren Leiter sein. Die Vorrichtung kann ein Signalisierungsmodul umfassen, wobei das Signalisierungsmodul mit mehreren digitalen Eingängen gekoppelt ist. Das Signalisierungsmodul kann Komponenten zum Senden und Empfangen von Daten auf mehreren Leitern umfassen. Ein Gesamtdurchsatz der Vorrichtung kann mindestens 80 Gigabit pro Sekunde betragen. Die mehreren Leiter können auf Kapselungen, Leiterplatten (PCB), Mehrchipmodulen (MCM), Mehrchipkapselungen (MCP) oder einer beliebigen Kombination davon geroutet werden. Zusätzlich können die mehreren Leiter Streifenleitungen oder Mikrostreifenleitungen sein.
  • BEISPIEL 2
  • Es wird hier eine elektronische Vorrichtung beschrieben. Die elektronische Vorrichtung umfasst einen Bus mit mehreren Signalleitungen, wobei mindestens eine Signalleitung eine Gleichtakt-Signalleitung ist. Die elektronische Vorrichtung umfasst außerdem einen Codierer zum Codieren von auf dem Bus zu sendenden Daten, wobei gemäß einer Codierungsmatrix eine Datengeschwindigkeit der Gleichtakt-Signalleitung begrenzt und eine Datengeschwindigkeit anderer Signalleitungen maximiert wird.
  • Die anderen Signalleitungen können eine symmetrische Codierung aus der Codierungsmatrix aufweisen. Die Gleichtakt-Signalleitung kann durchweg positive oder durchweg negative Gewichtungsfaktoren in der Codierungsmatrix aufweisen. Die anderen Signalleitungen können Gewichtungsfaktoren desselben Betrags in der Codierungsmatrix aufweisen. Die Gleichtakt-Signalleitung kann gemäß einer Routungsdichte der mehreren Signalleitungen begrenzt werden. Außerdem kann eine Beabstandung von Nibble zu Nibble der mehreren Signalleitungen des Busses gleich Beabstandung zwischen jeder der mehreren Signalleitungen sein. Ein Gesamtdurchsatz des Busses kann mindestens 80 Gigabit pro Sekunde betragen. Der Bus kann ein breiter, dicht gerouteter Bus sein. Ferner können die Gewichtungsfaktoren der Codierungsmatrix auf der Menge an Übersprechen auf jeder Signalleitung basieren. Die elektronische Vorrichtung kann ein Tablet-PC, Ultrabook, Desktop oder Server sein. Die elektronische Vorrichtung kann auch ein Mobiltelefon sein.
  • BEISPIEL 3
  • Es wird hier ein greifbares nicht vergängliches computerlesbares Medium beschrieben. Das greifbare nichtvergängliche computerlesbare Medium umfasst Code, um einen Prozessor anzuleiten, an den mehreren digitalen Eingängen empfangene Daten unter Verwendung einer gewichteten Summe zu codieren, um symmetrische codierte Daten und Gleichtaktdaten zu erzeugen. Das greifbare nichtvergängliche computerlesbare Medium umfasst außerdem Code, um einen Prozessor anzuleiten, die symmetrischen codierten Daten und Gleichtaktdaten auf mehreren Leitern einer Zusammenschaltung zu senden, um Bandbreite der symmetrischen codierten Daten auf der Zusammenschaltung zu maximieren, während Bandbreite der Gleichtaktdaten auf der Zusammenschaltung begrenzt wird.
  • Die Gleichtaktdaten können im Vergleich zu den symmetrischen codierten Daten mit einer langsameren Geschwindigkeit angesteuert werden. Ein Signalisierungsmodul kann mit mehreren digitalen Eingängen gekoppelt sein. Eine Routungsdichte der Zusammenschaltung kann vergrößert werden, und als Reaktion auf Vergrößerung der Routungsdichte verringert das Signalisierungsmodul die Bandbreite der Gleichtaktdaten, um Integrität der Gleichtaktdaten aufrechtzuerhalten. Ein Codierer kann die Daten codieren, wobei der Codierer die auf jedem der mehreren digitalen Eingänge empfangenen Daten mindestens teilweise auf der Basis einer Codierungsmatrix gewichten soll. Außerdem kann das Signalisierungsmodul einen Decodierer umfassen, der mit einem Leiter der Zusammenschaltung gekoppelt ist, wobei der Decodierer mittels des Leiters an einen Codierer eines zweiten Signalisierungsmoduls angeschlossen und von dem Codierer empfangene Daten decodieren soll. Der Decodierer kann die Signaldaten unter Verwendung einer Decodierungsmatrix, die die Transponierte einer Codierungsmatrix ist, decodieren. Der integrierte Schaltungschip kann eine Zentralverarbeitungseinheit, ein Mikrocontroller, ein Eingangs-/Ausgangs-Hub, ein Chipsatz oder Speichercontroller-Hub (MCA) eines digitalen Systems sein. Außerdem kann der Prozessor ein Grafikprozessor sein.
  • BEISPIEL 4
  • Ein Verfahren zur Ermöglichung einer modusselektiven symmetrischen codierten Zusammenschaltung wird hier beschrieben. Das Verfahren umfasst Empfangen mehrerer Datenströme in der Zusammenschaltung und Gewichten jeder der Datenströme mit Gewichtungsparametern, um gewichtete Datenströme zu erzeugen, unter Verwendung einer Codierungsmatrix, was zu einem symmetrischen codierten Datenstrom und einem Gleichtakt-Datenstrom führt. Das Verfahren umfasst außerdem Senden des symmetrischen codierten Datenstroms mit einer maximalen Datenrate und des Gleichtakt-Datenstroms mit einer begrenzten Datenrate.
  • Die begrenzte Datenrate des Gleichtakt-Datenstroms kann auf einer Routungsdichte eines Busses basieren. Die maximale Datenrate des symmetrischen codierten Datenstroms kann eine Datenrate sein, bei der eine Integrität des Datenstroms aufrechterhalten wird. Der symmetrische codierte Datenstrom kann unter Verwendung einer maximalen Bandbreite eines Leiters der Zusammenschaltung gesendet werden. Das Verfahren kann auch Empfangen des symmetrischen codierten Datenstroms und des Gleichtakt-Datenstroms und Decodieren des symmetrischen codierten Datenstroms und des Gleichtakt-Datenstroms umfassen. Außerdem können Gewichtungsparameter für eine Decodierungsmatrix, die eine Transponierte oder Inverse der Gewichtsparameter der Codierungsmatrix sein kann, erhalten werden. Die Codierungsmatrix kann durchweg positive oder durchweg negative Gewichtungsparameter für den Gleichtakt-Datenstrom umfassen. Ferner kann die Codierungsmatrix für den symmetrischen codierten Datenstrom Gewichtungsparameter desselben Betrags umfassen. Die Zusammenschaltung kann eine dicht geroutete Zusammenschaltung sein. Die Zusammenschaltung kann auch ein Signalisierungsmodul umfassen.
  • BEISPIEL 5
  • Es wird hier ein System beschrieben. Das System umfasst einen Bus mit mehreren dicht gerouteten Signalleitungen. Das System umfasst außerdem ein mit mehreren digitalen Eingängen gekoppeltes erstes Sendemodul, wobei das erste Sendemodul an den mehreren digitalen Eingängen empfangene Daten codieren soll, wobei die codierten Daten symmetrische codierte Daten oder Gleichtaktdaten sind, und die symmetrischen codierten Daten werden mit einer maximalen Datenrate gesendet.
  • Die Gleichtaktdaten können mit einer begrenzten Datenrate gesendet werden, die von den mehreren dicht gerouteten Signalleitungen abhängt. Das erste Sendemodul kann einen Codierer zum Codieren der Daten umfassen, wobei der Codierer die auf jedem der mehreren digitalen Eingängen empfangenen Daten mindestens teilweise auf der Basis einer Codierungsmatrix gewichten soll. Die Codierungsmatrix kann Gewichtungsfaktoren gleichen Betrags umfassen, die auf die symmetrischen codierten Daten anzuwenden sind. Die Codierungsmatrix kann auch Gewichtungsfaktoren mit durchweg positiven Werten oder durchweg negativen Werten umfassen, die auf die Gleichtaktdaten anzuwenden sind. Ein Decodierer kann mit den mehreren dicht gerouteten Signalleitungen des Busses gekoppelt sein, wobei der Decodierer die symmetrischen codierten Daten und/oder die Gleichtaktdaten, die über den Bus empfangen werden, unter Verwendung einer Decodierungsmatrix, die die Transponierte oder Inverse der Codierungsmatrix ist, decodieren soll.
  • BEISPIEL 6
  • Es wird hier ein Gerät beschrieben. Das Gerät umfasst mehrere Leiter. Das Gerät umfasst auch ein Mittel zum Codieren von an mehreren digitalen Eingängen empfangenen Daten, wobei die codierten Daten auf den mehreren Leitern gesendet werden und gemäß einer Codierungsmatrix eine Datengeschwindigkeit des Gleichtaktleiters begrenzt und eine Datengeschwindigkeit eines symmetrischen codierten Leiters maximiert wird.
  • Das Mittel zum Codieren von an den mehreren digitalen Eingängen empfangenen Daten kann ein Signalisierungsmodul sein. Der Gleichtaktleiter kann durchweg positiven oder durchweg negativen Gewichten in der Codierungsmatrix entsprechen. Außerdem kann der Gleichtaktleiter gemäß einer Routungsdichte der mehreren Leiter begrenzt werden. Eine Beabstandung von Nibble zu Nibble der mehreren Leiter kann gleich Beabstandung zwischen jedem Leiter der mehreren Leiter sein. Das Signalisierungsmodul kann Komponenten zum Senden und Empfangen von Daten auf den mehreren Leitern umfassen. Ein Gesamtdurchsatz der mehreren Leiter beträgt mindestens 80 Gigabit pro Sekunde. Die mehreren Leiter können auf Kapselungen, Leiterplatten (PCB), Mehrchipmodulen (MCM), Mehrchipkapselungen (MCP) oder beliebigen Kombinationen davon geroutet werden. Außerdem können die mehreren Leiter Streifenleitungen oder Mikrostreifenleitungen sein.
  • Obwohl die vorliegenden Techniken mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurden, sind für Fachleute daraus zahlreiche Modifikationen und Varianten erkennbar. Es ist beabsichtigt, dass die angefügten Ansprüche alle solchen Modifikationen und Varianten abdecken, die in den wahren Gedanken und Schutzumfang dieser vorliegenden Techniken fallen.
  • Ein Entwurf kann verschiedene Phasen durchlaufen, von der Erzeugung über Simulation bis zur Herstellung. Daten, die einen Entwurf repräsentieren, können den Entwurf auf einer Anzahl von Weisen repräsentieren. Erstens kann, sowie es bei Simulationen nützlich ist, die Hardware unter Verwendung einer Hardwarebeschreibungssprache oder anderen Funktionsbeschreibungssprache repräsentiert werden. Außerdem kann in bestimmten Phasen des Entwurfsprozesses ein Modell auf Schaltungsniveau mit Logik- und/oder Transistorgattern produziert werden. Ferner erreichen die meisten Entwürfe in einer bestimmten Phase ein Niveau von Daten, die die physische Platzierung verschiedener Vorrichtungen im Hardwaremodell repräsentieren. Falls herkömmliche Halbleiterherstellungstechniken verwendet werden, können die das Hardwaremodell repräsentierenden Daten die Daten sein, die die Anwesenheit oder Abwesenheit verschiedener Merkmale auf verschiedenen Maskenschichten für Masken spezifizieren, die zum Herstellen der integrierten Schaltung verwendet werden. Bei jeder Repräsentation des Entwurfs können die Daten in einer beliebigen Form von maschinenlesbarem Medium gespeichert werden. Ein Speicher oder eine magnetische oder optische Speicherung wie ein Datenträger können das maschinenlesbare Medium zum Speichern von Informationen sein, die über optische oder elektrische Wellen gesendet werden, die moduliert oder anderweitig erzeugt werden, um solche Informationen zu senden. Wenn eine elektrische Trägerwelle, die den Code oder Entwurf angibt oder führt, gesendet wird, wird soweit Kopieren, Puffer oder Weitersenden des elektrischen Signals durchgeführt wird, eine neue Kopie erstellt. Ein Kommunikationsanbieter oder Netzwerkanbieter kann somit auf einem greifbaren maschinenlesbaren Medium mindestens vorübergehend einen Artikel speichern, wie etwa in eine Trägerwelle codierte Informationen, der Techniken von Ausführungsformen der vorliegenden Techniken realisiert.
  • Ein Modul bezieht sich im vorliegenden Gebrauch auf eine beliebige Kombination von Hardware, Software und/oder Firmware. Beispielsweise umfasst ein Modul Hardware, wie etwa einen Mikrocontroller, die mit einem nichtvergänglichen Medium assoziiert ist, um Code zu speichern, der dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden. Eine Erwähnung eines Moduls in einer Ausführungsform bezieht sich deshalb auf die Hardware, die spezifisch dafür ausgelegt ist, den in einem nichtvergänglichen Medium zu haltenden Code zu erkennen und/oder auszuführen. Ferner bezieht sich bei einer anderen Ausführungsform die Verwendung eines Moduls auf das nichtvergängliche Medium, das den Code umfasst, der speziell dafür ausgelegt ist, durch den Mikrocontroller ausgeführt zu werden, um vorbestimmte Operationen durchzuführen. Außerdem kann gefolgert werden, dass bei einer weiteren Ausführungsform der Ausdruck Modul (in diesem Beispiel) die Kombination des Mikrocontrollers und des nichtvergänglichen Mediums bedeuten kann. Oft sind Modulgrenzen, die als getrennt dargestellt sind, gewöhnlich veränderlich und überlappen sich potentiell. Zum Beispiel können sich ein erstes und zweites Modul Hardware, Software, Firmware oder eine Kombination davon teilen, während potentiell einige unabhängige Hardware, Software oder Firmware behalten wird. Bei einer Ausführungsform umfasst die Verwendung des Ausdrucks Logik Hardware wie etwa Transistoren, Register oder andere Hardware, wie etwa programmierbare Logikvorrichtungen.
  • Die Verwendung des Ausdrucks ”dazu konfiguriert” bezieht sich in einer Ausführungsform auf das Anordnen, Zusammensetzen, Herstellen, Anbieten zum Verkauf, Importieren und/oder Konstruieren eines Geräts, einer Hardware, einer Logik oder eines Elements, um eine festgelegte oder bestimmte Aufgabe durchzuführen. In diesem Beispiel ist ein Gerät oder ein Element davon, das nicht arbeitet, immer noch ”dazu konfiguriert”, eine festgelegte Aufgabe durchzuführen, wenn es entworfen, gekoppelt und/oder zusammengeschaltet ist, um die festgelegte Aufgabe durchzuführen. Als rein erläuterndes Beispiel kann ein Logikgatter eine 0 oder eine 1 während des Betriebs liefern. Aber ein Logikgatter, das ”dazu konfiguriert” ist, ein Freigabesignal für einen Takt zu liefern, umfasst nicht jedes potentielle Logikgatter, das eine 1 oder eine 0 liefern kann. Stattdessen ist das Logikgatter eines, das in gewisser Weise gekoppelt ist, damit während des Betriebs die 1- oder 0-Ausgabe den Takt freigeben soll. Wiederum ist zu beachten, dass die Verwendung des Begriffs ”dazu konfiguriert” keine Operation erfordert, sondern stattdessen auf den latenten Zustand eines Geräts, einer Hardware und/oder eines Elements gerichtet ist, wobei im latenten Zustand das Gerät, die Hardware und/oder das Element dazu ausgelegt ist, eine spezielle Aufgabe durchzuführen, wenn das Gerät, die Hardware und/oder das Element arbeitet.
  • Ferner bezieht sich die Verwendung der Ausdrücke ”zu”, ”in der Lage zum” und/oder ”betriebsfähig zum” in einer Ausführungsform auf irgendein Gerät, irgendeine Logik, irgendeine Hardware und/oder irgendein Element, das in einer solchen Weise ausgelegt ist, dass die Verwendung des Geräts, der Logik, der Hardware und/oder des Elements in einer festgelegten Weise ermöglicht wird. Es ist wie vorstehend zu beachten, dass die Verwendung von zu, in der Lage zum oder betriebsfähig zum in einer Ausführungsform sich auf den latenten Zustand eines Geräts, einer Logik, einer Hardware und/oder eines Elements bezieht, wobei das Gerät, die Logik, die Hardware und/oder das Element nicht arbeiten, aber in einer solchen Weise konstruiert sind, dass die Verwendung eines Geräts in einer festgelegten Weise ermöglicht wird.
  • Ein Wert, wie hier verwendet, umfasst irgendeine bekannte Darstellung einer Zahl, eines Zustandes, eines logischen Zustandes oder eines binären logischen Zustandes. Häufig wird die Verwendung von Logikpegeln, Logikwerten oder logischen Werten auch als 1-en und 0-en bezeichnet, die einfach binäre Logikzustände darstellen. Eine 1 bezieht sich beispielsweise auf einen hohen Logikpegel und 0 bezieht sich auf einen niedrigen Logikpegel. In einer Ausführungsform kann eine Speicherzelle wie z. B. eine Transistor- oder Flash-Zelle in der Lage sein, einen einzelnen logischen Wert oder mehrere logische Werte zu halten. Andere Darstellungen von Werten in Computersystemen wurden jedoch verwendet. Die Dezimalzahl zehn kann beispielsweise auch als binärer Wert von 1010 und hexadezimaler Buchstabe A dargestellt werden. Daher umfasst ein Wert irgendeine Darstellung von Informationen, die in einem Computersystem gehalten werden können.
  • Überdies können Zustände durch Werte oder Teile von Werten dargestellt werden. Als Beispiel kann ein erster Wert wie z. B. eine logische Eins einen Vorgabe- oder anfänglichen Zustand darstellen, während ein zweiter Wert wie z. B. eine logische Null einen Nicht-Vorgabe-Zustand darstellen kann. Außerdem beziehen sich die Begriffe Rücksetzen und Setzen in einer Ausführungsform auf einen Vorgabe- bzw. einen aktualisierten Wert oder Zustand. Ein Vorgabewert umfasst beispielsweise potentiell einen hohen logischen Wert, d. h. Rücksetzen, während ein aktualisierter Wert potentiell einen niedrigen logischen Wert, d. h. Setzen, umfasst. Es ist zu beachten, dass irgendeine Kombination von Werten verwendet werden kann, um irgendeine Anzahl von Zuständen darzustellen.
  • Die Ausführungsformen von Verfahren, Hardware, Software, Firmware oder eines Codes, die vorstehend dargelegt sind, können über Befehle oder einen Code, der auf einem maschinenzugänglichen, maschinenlesbaren, computerzugänglichen oder computerlesbaren Medium gespeichert ist, die von einem Verarbeitungselement ausführbar sind, implementiert werden. Ein nichtflüchtiges maschinenzugängliches/maschinenlesbares Medium umfasst irgendeinen Mechanismus, der Informationen in einer Form bereitstellt (d. h. speichert und/oder überträgt), die von einer Maschine wie z. B. einem Computer oder elektronischen System lesbar ist. Ein nichtflüchtiges maschinenzugängliches Medium umfasst beispielsweise einen Direktzugriffsspeicher (RAM), wie z. B. einen statischen RAM (SRAM) oder dynamischen RAM (DRAM); einen ROM; ein magnetisches oder optisches Speichermedium; Flash-Speichervorrichtungen; elektrische Speichervorrichtungen; optische Speichervorrichtungen; akustische Speichervorrichtungen; eine andere Form von Speichervorrichtungen zum Halten von Informationen, die von vorübergehenden (ausgebreiteten) Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen) empfangen werden; usw., die von den nichtflüchtigen Medien unterschieden werden sollen, die Informationen davon empfangen können.
  • Befehle, die verwendet werden, um eine Logik zu programmieren, um Ausführungsformen der Erfindung durchzuführen, können innerhalb eines Speichers im System gespeichert sein, wie z. B. DRAM, Cache, Flash-Speicher oder anderer Speicher. Ferner können die Befehle über ein Netz oder durch andere computerlesbare Medien verteilt werden. Folglich kann ein maschinenlesbares Medium irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form umfassen, die von einer Maschine (z. B. einem Computer) lesbar ist, ist jedoch nicht begrenzt auf Disketten, optische Platten, Kompaktdisk, Festwertspeicher (CD-ROMs), und magnetoptische Platten, einen Festwertspeicher (ROMs), Direktzugriffsspeicher (RAM), löschbaren programmierbaren Festwertspeicher (EPROM), elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), magnetische oder optische Karten, einen Flash-Speicher oder einen konkreten, maschinenlesbaren Speicher, der bei der Übertragung von Informationen über das Internet über elektrische, optische, akustische oder andere Formen von ausgebreiteten Signalen (z. B. Trägerwellen, Infrarotsignalen, digitalen Signalen usw.) verwendet wird. Folglich umfasst das computerlesbare Medium irgendeinen Typ von konkretem maschinenlesbarem Medium, das zum Speichern oder Übertragen von elektronischen Befehlen oder Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form geeignet ist.
  • In dieser ganzen Patentbeschreibung bedeutet die Bezugnahme auf ”eine einzelne Ausführungsform” oder ”eine Ausführungsform”, dass ein spezielles Merkmal, eine spezielle Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Folglich beziehen sich die Erscheinungen der Ausdrücke ”in einer einzelnen Ausführungsform” oder ”in einer Ausführungsform” an verschiedenen Stellen in dieser ganzen Patentbeschreibung nicht notwendigerweise alle auf dieselbe Ausführungsform. Ferner können die speziellen Merkmale, Strukturen oder Eigenschaften in irgendeiner geeigneten Weise in einer oder mehreren Ausführungsformen kombiniert werden.
  • In der vorangehenden Patentbeschreibung wurde eine ausführliche Beschreibung in Bezug auf spezifische beispielhafte Ausführungsformen gegeben. Es ist jedoch ersichtlich, dass verschiedene Modifikationen und Änderungen daran durchgeführt werden können, ohne vom breiteren Gedanken und Schutzbereich der Erfindung, wie in den beigefügten Ansprüchen dargelegt, abzuweichen. Die Patentbeschreibung und die Zeichnungen sollen folglich vielmehr in einer erläuternden Hinsicht als in einer einschränkenden Hinsicht betrachtet werden. Ferner bezieht sich die vorangehende Verwendung von Ausführungsform und einer anderen beispielhaften Sprache nicht notwendigerweise auf dieselbe Ausführungsform oder dasselbe Beispiel, sondern kann sich auf verschiedene und unterschiedliche Ausführungsformen sowie potentiell dieselbe Ausführungsform beziehen.

Claims (25)

  1. Vorrichtung, umfassend: mehrere Leiter, wobei mindestens ein Leiter ein Gleichtaktleiter ist; einen Codierer zum Codieren von auf den mehreren Leitern zu sendenden Daten, wobei gemäß einer Codierungsmatrix eine Datengeschwindigkeit des Gleichtaktleiters zu begrenzen und eine Datengeschwindigkeit anderer Leiter zu maximieren ist.
  2. Vorrichtung nach Anspruch 1, wobei die anderen Leiter eine symmetrische Codierung aus der Codierungsmatrix aufweisen.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei der Gleichtaktleiter durchweg positiven oder durchweg negativen Gewichten in der Codierungsmatrix entspricht.
  4. Vorrichtung nach einem der Ansprüche 1–3, wobei der Gleichtaktleiter gemäß einer Routungsdichte der mehreren Leiter begrenzt ist.
  5. Vorrichtung nach einem der Ansprüche 1–4, wobei eine Beabstandung von Nibble zu Nibble der mehreren Leiter gleich Beabstandung zwischen jedem Leiter der mehreren Leiter ist.
  6. Elektronische Vorrichtung, umfassend: einen Bus, der mehrere Signalleitungen umfasst, wobei mindestens eine Signalleitung eine Gleichtakt-Signalleitung ist; einen Codierer zum Codieren von auf dem Bus zu sendenden Daten, wobei gemäß einer Codierungsmatrix eine Datengeschwindigkeit des Gleichtaktleiters zu begrenzen und eine Datengeschwindigkeit anderer Leiter zu maximieren ist.
  7. Elektronische Vorrichtung nach Anspruch 6, wobei die anderen Leiter eine symmetrische Codierung aus der Codierungsmatrix aufweisen.
  8. Elektronische Vorrichtung nach Anspruch 6 oder 7, wobei der Gleichtaktleiter durchweg positiven oder durchweg negativen Gewichten in der Codierungsmatrix entspricht.
  9. Elektronische Vorrichtung nach einem der Ansprüche 6–8, wobei die anderen Signalleitungen Gewichtungsfaktoren desselben Betrags in der Codierungsmatrix aufweisen.
  10. Elektronische Vorrichtung nach einem der Ansprüche 6–9, wobei die Gleichtakt-Signalleitung gemäß einer Routungsdichte der mehreren Signalleitungen begrenzt ist.
  11. Greifbares nichtvergängliches computerlesbare Medium, das Code umfasst, um einen Prozessor anzuleiten zum Codieren von an den mehreren digitalen Eingängen empfangenen Daten unter Verwendung einer gewichteten Summe, um symmetrische codierte Daten und Gleichtaktdaten zu erzeugen; und Senden der symmetrischen codierten Daten und Gleichtaktdaten auf mehreren Leitern einer Zusammenschaltung, um Bandbreite der symmetrischen codierten Daten auf der Zusammenschaltung zu maximieren, während Bandbreite der Gleichtaktdaten auf der Zusammenschaltung begrenzt wird.
  12. Greifbares nichtvergängliches computerlesbares Medium nach Anspruch 11, wobei die Gleichtaktdaten verglichen mit den symmetrischen codierten Daten mit einer langsameren Geschwindigkeit angesteuert werden.
  13. Greifbares nichtvergängliches computerlesbares Medium nach Anspruch 11 oder 12, das ferner ein mit den mehreren digitalen Eingängen gekoppeltes Signalisierungsmodul umfasst.
  14. Verfahren zur Ermöglichung einer modusselektiven symmetrischen codierten Zusammenschaltung, umfassend: Empfangen mehrerer Datenströme in der Zusammenschaltung; Gewichten jedes der Datenströme mit Gewichtungsparametern, um gewichtete Datenströme zu erzeugen, unter Verwendung einer Codierungsmatrix, was zu einem symmetrischen codierten Datenstrom und einem Gleichtakt-Datenstrom führt; und Senden des symmetrischen codierten Datenstroms mit einer maximalen Datenrate und des Gleichtakt-Datenstroms mit einer begrenzten Datenrate.
  15. Verfahren nach Anspruch 14, wobei die begrenzte Datenrate des Gleichtakt-Datenstroms auf einer Routungsdichte eines Busses basiert.
  16. Verfahren nach Anspruch 14 oder 15, wobei die maximale Datenrate des symmetrischen codierten Datenstroms eine Datenrate ist, bei der eine Integrität des Datenstroms aufrechterhalten wird.
  17. Verfahren nach einem der Ansprüche 14–16, wobei der symmetrische codierte Datenstrom unter Verwendung einer maximalen Bandbreite eines Leiters der Zusammenschaltung gesendet wird.
  18. System, umfassend: einen Bus, der mehrere dicht geroutete Signalleitungen umfasst; ein mit den mehreren digitalen Eingängen gekoppeltes erstes Sendemodul, wobei das erste Sendemodul an den mehreren digitalen Eingängen empfangene Daten codieren soll, wobei die codierten Daten symmetrische codierte Daten oder Gleichtaktdaten sind und die symmetrischen codierten Daten mit einer maximalen Datenrate gesendet werden.
  19. System nach Anspruch 18, wobei die Gleichtaktdaten mit einer begrenzten Datenrate gesendet werden, die von den mehreren dicht gerouteten Signalleitungen abhängt.
  20. System nach Anspruch 18 oder 19, wobei das erste Sendemodul einen Codierer zum Codieren der Daten umfasst, wobei der Codierer die an jedem der mehreren digitalen Eingänge empfangenen Daten mindestens teilweise auf der Basis einer Codierungsmatrix gewichten soll.
  21. System nach einem der Ansprüche 18–20, wobei die Codierungsmatrix Gewichtungsfaktoren gleichen Betrags umfasst, die auf die symmetrischen codierten Daten anzuwenden sind.
  22. System nach einem der Ansprüche 18–21, wobei die Codierungsmatrix Gewichtungsfaktoren mit durchweg positiven Werten oder durchweg negativen Werten umfasst, die auf die Gleichtaktdaten anzuwenden sind.
  23. Gerät, umfassend: mehrere Leiter; und ein Mittel zum Codieren von an mehreren digitalen Eingängen empfangenen Daten, wobei die codierten Daten auf den mehreren Leitern gesendet werden und gemäß einer Codierungsmatrix eine Datengeschwindigkeit eines Gleichtaktleiters begrenzt und eine Datengeschwindigkeit eines symmetrischen codierten Leiters maximiert wird.
  24. Gerät nach Anspruch 23, wobei das Mittel zum Codieren von an mehreren digitalen Eingängen empfangenen Daten ein Signalisierungsmodul ist.
  25. Gerät nach Anspruch 23 oder 24, wobei der Gleichtaktleiter durchweg positiven oder durchweg negativen Gewichten in der Codierungsmatrix entspricht.
DE102015008137.3A 2014-07-28 2015-06-25 Modusselektive symmetrische codierte Zusammenschaltung Pending DE102015008137A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/444,616 2014-07-28
US14/444,616 US10078612B2 (en) 2014-07-28 2014-07-28 Mode selective balanced encoded interconnect

Publications (1)

Publication Number Publication Date
DE102015008137A1 true DE102015008137A1 (de) 2016-01-28

Family

ID=55065557

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015008137.3A Pending DE102015008137A1 (de) 2014-07-28 2015-06-25 Modusselektive symmetrische codierte Zusammenschaltung

Country Status (5)

Country Link
US (1) US10078612B2 (de)
KR (1) KR101702286B1 (de)
CN (1) CN105302764B (de)
DE (1) DE102015008137A1 (de)
TW (1) TWI546675B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11016920B2 (en) * 2016-12-30 2021-05-25 Intel Corporation Adaptive calibration technique for cross talk cancellation
CN107301151B (zh) * 2017-07-28 2020-07-21 苏州浪潮智能科技有限公司 一种主板以及服务器

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3082296A (en) * 1958-05-01 1963-03-19 Itt Single side-band multichannel carrier system
CH504818A (de) * 1968-12-11 1971-03-15 Standard Telephon & Radio Ag Verfahren zur Datenübertragung über einen Kanal einer PCM-Nachrichtenanlage
US4298959A (en) * 1979-11-23 1981-11-03 United Technologies Corporation Digital information transfer system (DITS) receiver
US4328577A (en) * 1980-06-03 1982-05-04 Rockwell International Corporation Muldem automatically adjusting to system expansion and contraction
US4685101A (en) * 1984-12-20 1987-08-04 Siemens Aktiengesellschaft Digital multiplexer for PCM voice channels having a cross-connect capability
US4837786A (en) * 1986-08-07 1989-06-06 Comstream Corporation Technique for mitigating rain fading in a satellite communications system using quadrature phase shift keying
EP0477242B1 (de) * 1989-06-16 1995-08-23 BRITISH TELECOMMUNICATIONS public limited company Datenvermittlungsknoten
US5172415A (en) * 1990-06-08 1992-12-15 Fosgate James W Surround processor
US5102353A (en) * 1991-06-06 1992-04-07 Molex Incorporated Electrical connectors
JP3427392B2 (ja) * 1992-05-25 2003-07-14 ソニー株式会社 符号化方法
US5825824A (en) * 1995-10-05 1998-10-20 Silicon Image, Inc. DC-balanced and transition-controlled encoding method and apparatus
US5920552A (en) * 1996-05-30 1999-07-06 Lucent Technologies, Inc. Variable rate coding for wireless applications
US6697491B1 (en) * 1996-07-19 2004-02-24 Harman International Industries, Incorporated 5-2-5 matrix encoder and decoder system
US6513103B1 (en) * 1997-10-10 2003-01-28 Rambus Inc. Method and apparatus for adjusting the performance of a synchronous memory system
US6624873B1 (en) * 1998-05-05 2003-09-23 Dolby Laboratories Licensing Corporation Matrix-encoded surround-sound channels in a discrete digital sound format
US6772391B1 (en) 1998-10-13 2004-08-03 Interdigital Technology Corporation Hybrid interleaver for turbo codes
JP3490368B2 (ja) * 2000-02-07 2004-01-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 信号出力装置、ドライバ回路、信号伝送システム、および信号伝送方法
US6636166B2 (en) 2001-05-31 2003-10-21 Koninklijke Philips Electronics N.V. Parallel communication based on balanced data-bit encoding
US7706524B2 (en) * 2001-11-16 2010-04-27 Rambus Inc. Signal line routing to reduce crosstalk effects
CN1423179A (zh) 2001-12-04 2003-06-11 英业达股份有限公司 容错式数据传输接口装置
US8483246B2 (en) * 2003-08-12 2013-07-09 Broadcom Corporation Method and apparatus for multiplexing Ethernet channels
CN1284096C (zh) 2004-01-18 2006-11-08 英业达股份有限公司 阵列式数据存储装置连接切换控制系统
US7535923B2 (en) * 2005-02-02 2009-05-19 Agilent Technologies, Inc. Apparatus and method for low cost, multi-port protocol analysis and monitoring
US8027585B2 (en) * 2005-03-31 2011-09-27 Nec Corporation Optical communication method, optical communication device, and optical communication system
US7133463B1 (en) * 2005-08-25 2006-11-07 Rambus Inc. Linear transformation circuits
US8687689B2 (en) * 2005-10-25 2014-04-01 William Marsh Rice University Method and apparatus for on-line compressed sensing
JP5203717B2 (ja) 2007-12-19 2013-06-05 パナソニック株式会社 符号器、復号器、符号化方法、及び、復号方法
CN101499048A (zh) 2008-01-29 2009-08-05 国际商业机器公司 总线编/解码方法和总线编/解码器
JP4898858B2 (ja) 2009-03-02 2012-03-21 パナソニック株式会社 符号化器、復号化器及び符号化方法
US8693697B2 (en) * 2011-06-06 2014-04-08 Reality Ip Pty Ltd Matrix encoder with improved channel separation
US9268683B1 (en) * 2012-05-14 2016-02-23 Kandou Labs, S.A. Storage method and apparatus for random access memory using codeword storage
JP2014036343A (ja) * 2012-08-08 2014-02-24 Fujitsu Ltd 電子装置およびノイズ低減方法
US9330039B2 (en) 2012-12-26 2016-05-03 Intel Corporation Crosstalk aware encoding for a data bus
US9460813B2 (en) * 2013-03-14 2016-10-04 Kabushiki Kaisha Toshiba Memory system

Also Published As

Publication number Publication date
CN105302764B (zh) 2018-10-12
US10078612B2 (en) 2018-09-18
KR20160013804A (ko) 2016-02-05
CN105302764A (zh) 2016-02-03
KR101702286B1 (ko) 2017-02-06
US20160026597A1 (en) 2016-01-28
TWI546675B (zh) 2016-08-21
TW201608379A (zh) 2016-03-01

Similar Documents

Publication Publication Date Title
DE112015006944B4 (de) Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE112013003248B4 (de) Steuern einer physischen Verbindung von einem ersten Protokoll unter Verwendung einer erweiterten Funktionsstruktur eines zweiten Protokolls
DE102020128760A1 (de) Zustände mit teilweiser verbindungsbreite für mehrbahnverbindungen
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE202013105453U1 (de) Trainingsrahmen in PMA-Größe für 100GBASE-KP4
DE202013104344U1 (de) Vorrichtung zur schnellen PMA-Ausrichtung in 100GBASE-KP4
DE112013007732T5 (de) PCI-Express-Erweiterungen
DE112007003113B4 (de) Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis
DE112016001258T5 (de) Multi-gigabit drahtloses tunnelsystem
DE102016201686A1 (de) Bildsignalprozessor und vorrichtungen, die diesen umfassen
DE102018129112A1 (de) Systemdecoder für Trainingsbeschleuniger
DE102019108798A1 (de) Hochbandige verbindungsschicht für kohärente nachrichten
DE202013105546U1 (de) EEE Aktualisierungs- und Wecksignalisierung für 100GBASE-KP4
DE112011105674T5 (de) Datenwiederherstellung bei niedriger Energie unter Verwendung von Übertaktung
DE112013003766T5 (de) Schnelles Entzerren beim Verlassen eines Niedrigenergie-Teilbreite-Hochgeschwindigkeitsverbindungszustands
DE102014103186B4 (de) Halbleitervorrichtung und Halbleiterpackage
DE102020130536A1 (de) Adaptiver Eintritt in und adaptives Verlassen von Niedrigenergiezuständen
DE102020133861A1 (de) Normalisierte-wahrscheinlichkeit-bestimmung für zeichenkodierung
DE102019127444A1 (de) System, Einrichtung und Verfahren zur Verkehrsformung von Datenkommunikation über ein Interconnect
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
DE102015008137A1 (de) Modusselektive symmetrische codierte Zusammenschaltung
DE102022124522A1 (de) Vielseitiger Adapter für hohe Kommunikationslinkpackdichte
DE112016002891T5 (de) Eine skalierbare Kreuzschienenvorrichtung und ein Verfahren zum Anordnen von Kreuzschienenschaltungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication