DE112012004451T5 - Mehrfachprotokoll-Serdes-PHY-Vorrichting - Google Patents

Mehrfachprotokoll-Serdes-PHY-Vorrichting Download PDF

Info

Publication number
DE112012004451T5
DE112012004451T5 DE112012004451.7T DE112012004451T DE112012004451T5 DE 112012004451 T5 DE112012004451 T5 DE 112012004451T5 DE 112012004451 T DE112012004451 T DE 112012004451T DE 112012004451 T5 DE112012004451 T5 DE 112012004451T5
Authority
DE
Germany
Prior art keywords
synchronous
asynchronous
unit
data
clock
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.)
Granted
Application number
DE112012004451.7T
Other languages
English (en)
Other versions
DE112012004451B4 (de
Inventor
Thomas F. Hummel
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.)
Marvell Asia Pte Ltd
Original Assignee
Cavium LLC
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 Cavium LLC filed Critical Cavium LLC
Publication of DE112012004451T5 publication Critical patent/DE112012004451T5/de
Application granted granted Critical
Publication of DE112012004451B4 publication Critical patent/DE112012004451B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/04Distributors combined with modulators or demodulators
    • H04J3/047Distributors with transistors or integrated circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Communication Control (AREA)

Abstract

In einem Ausführungsbeispiel umfasst eine Mehrfachprotokoll-Schnittstelle eine „physikalische Schicht”-Sendereinheit, die konfiguriert ist zum Senden von Daten von synchronen Medienzugangssteuerschichteinheiten und asynchronen Medienzugangssteuerschichteinheiten. Die Mehrfachprotokoll-Schnittstelle umfasst auch eine „physikalische Schicht”-Empfängereinheit, die konfiguriert ist zum Empfangen von Daten und Liefern der empfangenen Daten an die synchronen Medienzugangssteuerschichteinheiten und die asynchronen Medienzugangssteuerschichteinheiten. Die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit sind beide konfiguriert, entweder in einem asynchronen Modus oder einem synchronen Modus zu arbeiten. Die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit senden und empfangen nur mit den asynchronen Medienzugangssteuereinheiten und die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit senden und empfangen nur mit den synchronen Medienzugangssteuereinheiten.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung ist eine Fortsetzung der US-Anmeldung Nr. 13/280,841, eingereicht am 25. Oktober 2011. Die gesamten Lehren der obigen Anmeldung(en) sind hierin durch Bezugnahme aufgenommen.
  • HINTERGRUND
  • „Physikalische Schicht”-Einheiten (PHYs – Physical Layer Units) unterstützen verschiedene Hochgeschwindigkeits-Serialisieren/Deserialisieren(SerDes – Serialize(Deserialize)-Schnittstellen. SerDes-Schnittstellen werden allgemein in Netzwerkvorrichtungen verwendet, um ein Empfangen und Senden von Daten zu unterstützen. SerDes-Schnittstellen umfassen einen Serialisierer-Block und einen Deserialisierer-Block. Der Serialisierer-Block wandelt im Allgemeinen Daten aus einem parallelen Format in ein serielles Format um. Der Deserialisierer-Block wandelt im Allgemeinen Daten aus einem seriellen Format in ein paralleles Format um.
  • ZUSAMMENFASSUNG
  • In einem Ausführungsbeispiel umfasst eine Mehrfachprotokoll-Schnittstelle eine „physikalische Schicht”-Sendereinheit, die konfiguriert ist zum Senden von Daten von synchronen Medienzugangssteuerschichteinheiten und asynchronen Medienzugangssteuerschichteinheiten. Die Mehrfachprotokoll-Schnittstelle umfasst auch eine „physikalische Schicht”-Empfängereinheit, die konfiguriert ist zum Empfangen von Daten und Liefern der empfangenen Daten an die synchronen Medienzugangssteuerschichteinheiten und die asynchronen Medienzugangssteuerschichteinheiten.
  • In einem Ausführungsbeispiel umfasst die „physikalische Schicht”-Sendereinheit einen synchronen Takt; der mit einer Senderate von Daten synchronisiert ist. Die „physikalische Schicht”-Sendereinheit umfasst weiter einen 8b/10b-Codierer, der mit den synchronen Medienzugangssteuerschichteinheiten als Eingänge und dem synchronen Takt als eine Timing- bzw. Zeitsteuerungsvorrichtung gekoppelt ist. Die „physikalische Schicht”-Sendereinheit umfasst auch eine Asynchron-zu-Synchron-Umwandlungseinheit, die mit den asynchronen Medienzugangssteuerschichteinheiten gekoppelt ist. Zusätzlich umfasst die „physikalische Schicht”-Sendereinheit einen Multiplexer, der konfiguriert ist zum Auswählen zwischen dem 8b/10b-Codierer und der Asynchron-zu-Synchron-Umwandlungseinheit.
  • In einem Ausführungsbeispiel umfasst die Mehrfachprotokoll-Schnittstelle einen asynchronen Takt, der mit einer von der Sendedatenrate verschiedenen Datenrate synchronisiert ist. Die Asynchron-zu-Synchron-Umwandlungseinheit ist mit dem asynchronen Takt und dem synchronen Takt als Timing-Vorrichtungen gekoppelt.
  • In einem Ausführungsbeispiel umfasst die Mehrfachprotokoll-Schnittstelle einen Sender-Differenzialtreiber und einen Serialisierer. Der Multiplexer ist gekoppelt zur Ausgabe an den Serialisierer und der Sender-Differenzialtreiber ist gekoppelt zum Empfangen der Ausgabe des Serialisierers.
  • In einem Ausführungsbeispiel umfasst die Mehrfachprotokoll-Schnittstelle einen synchronen Takt, der mit einer Senderate von Daten synchronisiert ist. Die „physikalische Schicht”-Empfängereinheit umfasst weiter einen Deserialisierer, der konfiguriert ist zur Ausgabe an eine elastische Puffereinheit in einem synchronen Modus und konfiguriert ist zur Ausgabe an eine Synchron-zu-Asynchron-Umwandlungseinheit in einem asynchronen Modus. Die elastische Puffereinheit ist gekoppelt zur Ausgabe einer synchronen Version des eingegebenen Signals an den 8b/10b-Decodierer. Die elastische Puffereinheit ist weiter mit dem synchronen Takt als eine Timing-Vorrichtung gekoppelt. Die 8b/10b-Decodierereinheit ist mit den synchronen Medienzugangssteuerschichteinheiten als Ausgänge und dem synchronen Takt als Timing-Vorrichtung gekoppelt. Die Synchron-zu-Asynchron-Umwandlungseinheit ist mit den asynchronen Medienzugangssteuerschichteinheiten als Ausgänge gekoppelt und konfiguriert zum Umwandeln von Daten mit einer wiedergewonnenen empfangenen Taktrate in eine asynchrone Taktrate.
  • In einem Ausführungsbeispiel umfasst die „physikalische Schicht”-Empfängereinheit weiter eine Taktwiedergewinnungseinheit, die konfiguriert ist zum Erzeugen des wiedergewonnen empfangenen Takts aus den empfangenen Daten. Die Taktwiedergewinnungseinheit ist als Timing-Vorrichtung mit dem Deserialisierer gekoppelt. Ein Differenzialempfänger ist zur Ausgabe an den Deserialisierer und die Taktwiedergewinnungseinheit gekoppelt.
  • In einem Ausführungsbeispiel ist die Synchron-zu-Asynchron-Umwandlungseinheit mit einem asynchronen Takt und einer Taktwiedergewinnungseinheit als Timing-Vorrichtungen gekoppelt.
  • In einem Ausführungsbeispiel senden und empfangen die asynchronen Medienzugangssteuerschichteinheiten Daten gemäß dem Interlaken-Protokoll. Die Daten sind Interlaken-Pakete.
  • In einem anderen Ausführungsbeispiel sind die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit beide konfiguriert, um entweder in einem asynchronen Modus oder in einem synchronen Modus zu arbeiten. Die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit senden und empfangen nur mit den asynchronen Medienzugangssteuereinheiten und die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit senden und empfangen nur mit den synchronen Medienzugangssteuereinheiten.
  • Ein Verfahren zum Verbinden mit mehreren Protokollen umfasst, in einer „physikalische Schicht”-Sendereinheit, ein Senden von Daten von synchronen Medienzugangssteuerschichteinheiten und asynchronen Medienzugangssteuerschichteinheiten. Das Verfahren umfasst weiter, in einer „physikalische Schicht”-Empfängereinheit, ein Empfangen von Daten und Liefern der empfangenen Daten an die synchronen Medienzugangssteuerschichteinheiten und die asynchronen Medienzugangssteuerschichteinheiten.
  • Das Verfahren weist weiter auf ein Führen eines synchronen Takts, der mit einer Senderate von Daten synchronisiert ist, Codieren von Daten aus den synchronen Medienzugangssteuerschichteinheiten mit einem 8b/10b-Codierschema unter Verwendung des synchronen Takts als Timing-Vorrichtung, Umwandeln der Ausgabe der asynchronen Medienzugangssteuerschichteinheiten in eine synchrone Ausgabe und Auswählen, in einem Multiplexer, zwischen den codierten Daten und der synchronen Ausgabe.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Das Obige wird ersichtlich aus der folgenden genaueren Beschreibung von beispielhaften Ausführungsbeispielen der Erfindung, wie in den beigefügten Zeichnungen dargestellt, in denen gleiche Bezugszeichen dieselben Teile in den unterschiedlichen Ansichten bezeichnen. Die Zeichnungen sind nicht unbedingt maßstabsgerecht, stattdessen wird die Betonung auf eine Darstellung von Ausführungsbeispielen der vorliegenden Erfindung gelegt.
  • 1 ist ein Blockdiagramm, das einen Netzwerkdiensteprozessor zeigt.
  • 2 ist ein Blockdiagramm, das Schnittstelleneinheiten zeigt.
  • 3 ist ein Blockdiagramm, das eine asynchrone MAC-Einheit zeigt.
  • 4 ist ein Blockdiagramm, das Wege eines Mehrfachprotokoll-Senders zeigt.
  • 5 ist ein Blockdiagramm, das Wege eines Mehrfachprotokoll-Empfängers zeigt.
  • DETAILLIERTE BESCHREIBUNG
  • Eine Beschreibung von beispielhaften Ausführungsbeispielen folgt.
  • Vor der Beschreibung von beispielhaften Ausführungsbeispielen im Detail wird ein beispielhafter Netzwerksicherheitsprozessor, in dem die Ausführungsbeispiele implementiert werden können, unmittelbar im Anschluss beschrieben, um den Leser bei einem Verständnis von erfinderischen Merkmalen zu unterstützen.
  • 1 ist ein Blockdiagramm, das einen Netzwerkdiensteprozessor 100 zeigt. Der Netzwerkdiensteprozessor 100 bietet eine hohe Anwendungsleistung unter Verwendung zumindest eines Prozessorkerns 120.
  • Der Netzwerkdiensteprozessor 100 verarbeitet OSI(Open Systems Interconnection)-Netzwerk-L2-L7-Schicht-Protokolle in empfangenen Paketen eingekapselt. Wie für Fachleute auf dem Gebiet weithin bekannt, definiert das OSI(Open Systems Interconnection)-Referenzmodell sieben Netzwerkprotokollschichten (L1–L7). Die physikalische Schicht (L1) repräsentiert die tatsächliche Schnittstelle, elektrisch und physikalisch, die eine Vorrichtung mit einem Übertragungsmedium verbindet. Die Datenverbindungsschicht (L2) führt ein Aufteilen von Daten in Rahmen durch. Die Netzwerkschicht (L3) formatiert die Daten in Pakete. Die Transportschicht (L4) handhabt einen Ende-zu-Ende-Transport. Die Sitzungsschicht (L5) verwaltet Kommunikationen zwischen Vorrichtungen, zum Beispiel, ob eine Kommunikation Halbduplex oder Vollduplex ist. Die Darstellungsschicht (L6) verwaltet eine Formatierung und Darstellung von Daten, zum Beispiel, Syntax, Steuercodes, spezielle Grafiken und Zeichensätze. Die Anwendungsschicht (L7) ermöglicht eine Kommunikation zwischen Benutzern, zum Beispiel eine Dateiübertragung und elektronische Mail.
  • Der Netzwerkdiensteprozessor 100 kann Arbeit (Paketverarbeitungsoperationen) für Netzwerkprotokolle der oberen Schicht, zum Beispiel L4–L7, planen und in eine Warteschlange aufnehmen und ermöglichen, dass eine Verarbeitung von Netzwerkprotokollen der oberen Schicht in empfangenen Pakete durchgeführt wird, um Pakete mit Leitungsgeschwindigkeit weiterzuleiten. Leitungsgeschwindigkeit ist die Geschwindigkeit einer Datenübertragung des Netzwerks, über das Daten gesendet und empfangen werden. Durch eine Verarbeitung der Protokolle, um die Pakete bei Leitungsgeschwindigkeit weiterzuleiten, verlangsamt der Netzwerkdiensteprozessor die Netzwerkdatenübertragungsrate nicht.
  • Ein Paket wird zur Verarbeitung durch eine Vielzahl von Schnittstelleneinheiten 122a und 122b empfangen. Ein Paket kann auch durch eine PCIe-Schnittstelle 124 empfangen werden. Die Schnittstelleneinheiten 122a und 122b führen eine Vorverarbeitung des empfangenen Pakets durch Prüfen verschiedener Felder in dem L2-Netzwerkprotokoll-Header durch, der in dem empfangenen Paket enthalten ist, und leiten dann das Paket an eine Paketeingabeeinheit 126 weiter. Zumindest eine Schnittstelleneinheit 122a kann Pakete von einer Vielzahl von XAUI (X Attachment Unit Interfaces), RXAUI (Reduced X Attachment Unit Interfaces) oder SGMII (Serial Gigabit Media Independent Interfaces) empfangen. Zumindest eine Schnittstelleneinheit 122b kann Verbindungen von einer Interlaken-Schnittstelle (ILK – Interlaken Interface) empfangen.
  • Die Paketeingabeeinheit 126 führt eine weitere Vorverarbeitung von Netzwerkprotokoll-Headern (zum Beispiel L3- und L4-Header) durch, die in dem empfangenen Paket enthalten sind. Die Vorverarbeitung umfasst Prüfsumme-Prüfungen für TCP/UDP (User Datagram Protocol) (L3-Netzwerkprotokolle).
  • Ein Freier-Pool-Zuteiler 128 führt Pools von Zeigern zu freiem Speicher in einem Schicht-2-Cachespeicher 130 und externem DRAM 108. Der Schicht-2-Cachespeicher 130 kann auch eine Steuervorrichtung umfassen. Die Paketeingabeeinheit 126 verwendet einen des Pools von Zeigern, um empfangene Paketdaten in dem Schicht-2-Cachespeicher 130 oder dem externen DRAM 108 zu speichern, und einen anderen des Pools von Zeigern, um Arbeits-Warteschlangeneinträge für die Prozessorkerne 120 zuzuteilen.
  • Die Paketeingabeeinheit 126 schreibt dann Paketdaten in Puffer in dem Schicht-2-Cachespeicher 130 oder externen DRAM 108. Vorzugsweise werden die Paketdaten in einem Format in die Speicher geschrieben, die für Software einer höheren Schicht geeignet ist, die in zumindest einem der Prozessorkerne 120 ausgeführt wird. Somit wird eine weitere Verarbeitung von Netzwerkprotokollen einer höheren Schicht erleichtert.
  • Der Netzwerkdiensteprozessor 100 kann auch einen oder mehrere anwendungsspezifische Co-Prozessoren umfassen. Diese Co-Prozessoren, wenn enthalten, nehmen einen Teil der Verarbeitung von den Kernen 120, wodurch ermöglicht wird, dass der Netzwerkdiensteprozessor eine Paketverarbeitung mit hohem Durchsatz erzielt. Zum Beispiel ist ein Komprimierung/Dekomprimierung-Co-Prozessor 132 vorgesehen, der dazu bestimmt ist, eine Komprimierung und Dekomprimierung von empfangenen Paketen durchzuführen. Andere Ausführungsbeispiele von Co-Verarbeitungseinheiten umfassen die RAID/De-Dup-Einheit 162, die eine Daten-Striping- und Daten-Duplikations-Verarbeitung für Plattenspeicheranwendungen beschleunigt.
  • Ein weiterer Co-Prozessor ist eine HFA(Hyper Finite Automata)-Einheit 160, die zugewiesene HFA-Inspektionsmaschinen umfasst, die ausgebildet sind zum Beschleunigen eines Muster- und/oder Signaturvergleichs, der für Anti-Virus-, Angriffserfassungs-Systeme und andere Inhalt-verarbeitende Anwendungen erforderlich ist. Durch eine Verwendung einer HFA-Einheit 160 wird ein Muster- und/oder Signaturvergleich beschleunigt, zum Beispiel in Geschwindigkeiten von mehr als das Vielfache von zehn Gigabits pro Sekunde durchgeführt. Die HFA-Einheit 160, in einigen Ausführungsbeispielen, kann jede einer DFA(Deterministic Finite Automata)-, NFA(Non-deterministic Finite Automata)- oder HFA-Inspektionsmaschine umfassen.
  • Eine E/A-Schnittstelle 136 verwaltet das gesamte Protokoll und die Entscheidung bzw. Arbitration und sieht eine kohärente E/A-Partitionierung vor. Die E/A-Schnittstelle 136 umfasst eine E/A-Brücke 138 und eine Hol-und-Addier- bzw. Fetch-And-Add-Einheit 140. Die E/A-Brücke umfasst zwei Brücken, eine E/A-Paket-Brücke (IOBP – I/O Packet Bridge) 138a und eine E/A-Bus-Brücke (IOBN – I/O Bus Bridge) 138b. Die E/A-Paket-Brücke 138a ist konfiguriert zum Verwalten des gesamtes Protokolls und der Arbitration und Vorsehen einer kohärenten E/A-Partitionierung mit primär einer Paketeingabe und -ausgabe. Die E/A-Bus-Brücke 138b ist konfiguriert zum Verwalten des gesamte Protokolls und der Arbitration und Vorsehen einer kohärenten E/A-Partitionierung mit primär dem E/A-Bus. Register in der Fetch-And-Add-Einheit 140 werden verwendet, um Längen der Ausgangswarteschlangen beizubehalten, die verwendet werden zum Weiterleiten von verarbeiteten Paketen über eine Paketausgabeeinheit 146. Die E/A-Brücke 138 umfasst Pufferwarteschlangen zum Speichern von Information zur Übertragung zwischen einer kohärenten Speicherverbindung (CMI – coherent memory interconnect) 144, einem E/A-Bus 142, der Paketeingabeeinheit 126 und der Paketausgabeeinheit 146.
  • Die Sonstiges-E/A-Schnittstelle (MIO – miscellaneous I/O interface) 116 kann Hilfsschnittstellen umfassen, wie GPIO (General Purpose I/O), Flash, MDIO (IEEE 804 two-wire Management Interface), SMI (Serial Management Interrupt), UARTs (Universal Asynchronous Receiver-Transmitters), RGMII (Reduced Gigabit Media Independent Interface), MII (Media Independent Interface), TWSI (two wire serial interface) und andere serielle Schnittstellen.
  • Der Netzwerkdiensteprozessor 100 kann auch eine JTAG(Joint Test Action Group)-Schnittstelle 123 umfassen, die den MIPS-EJTAG-Standard unterstützt. Gemäß den JTAG- und MIPS-EJTAG-Standards hat eine Vielzahl von Kernen in dem Netzwerkdiensteprozessor 100 jeweils eine interne TAP(Test Access Port)-Steuervorrichtung. Dies ermöglicht eine Mehrfach-Kern-Debug-Unterstützung des Netzwerkdiensteprozessors 100.
  • Ein SSO(Schedule/Sync and Order)- bzw. „Planen/Synchronisieren und in Reihenfolge bringen”-Modul 148 setzt Arbeit für die Prozessorkerne 120 in Warteschlangen und plant diese. Die Arbeit wird in eine Warteschlange eingereiht durch Hinzufügen eines Arbeits-Warteschlangeneintrags zu einer Warteschlange. Zum Beispiel wird ein Arbeits-Warteschlangeneintrag von der Paketeingabeeinheit 126 für jede Paketankunft hinzugefügt. Eine Timer-Einheit 150 wird verwendet, um Arbeit für die Prozessorkerne 120 zu planen.
  • Prozessorkerne 120 fordern Arbeit von dem SSO-Modul 148 an. Das SSO-Modul 148 wählt (d. h. plant) Arbeit für einen der Prozessorkerne 120 und gibt einen Zeiger zu dem Warteschlangeneintrag, der die Arbeit beschreibt, an den Prozessorkern 120 zurück.
  • Der Prozessorkern 120 umfasst wiederum einen Anweisungscache 152, einen Schicht-1-Daten-Cache 154 und eine Krypto-Beschleunigung 156. In einem Ausführungsbeispiel umfasst der Netzwerkdiensteprozessor 100 32 superskalare Prozessorkerne 120 des RISC(Reduced Instruction Set Computer)-Typs. In einigen Ausführungsbeispielen umfasst jeder der superskalaren Prozessorkerne 120 des RISC-Typs eine Erweiterung des MIPS64-Version-3-Prozessorkerns. In einem Ausführungsbeispiel umfasst jeder der superskalaren Prozessorkerne 120 des RISC-Typs einen cnMIPS-II-Prozessorkern.
  • Der Schicht-2-Cachespeicher 130 und der externe DRAM 108 werden durch alle Prozessorkerne 120 und E/A-Co-Prozessorvorrichtungen geteilt bzw. gemeinsam verwendet. Jeder Prozessorkern 120 ist mit dem Schicht-2-Cachespeicher 130 durch die CMI 144 gekoppelt. Die CMI 144 ist ein Kommunikationskanal für alle Speicher- und E/A-Transaktionen zwischen den Prozessorkernen 120, der E/A-Schnittstelle 136 und dem Schicht-2-Cachespeicher 130 und der Steuervorrichtung. In einem Ausführungsbeispiel ist die CMI 144 auf 32 Prozessorkerne 120 skalierbar und unterstützt vollständig kohärente Schicht-1-Daten-Caches 154 mit Write-Through. Vorzugsweise ist die CMI 144 hoch gepuffert mit der Fähigkeit, E/A zu priorisieren. Die CMI 144 ist mit einer Verfolgungssteuereinheit 164 gekoppelt, die konfiguriert ist zum Erfassen von Bus-Anforderungen, so dass Software später die Anforderung lesen und eine Verfolgung der Sequenz von Ereignissen auf der CMI 144 erzeugen kann.
  • Der Schicht-2-Cachespeicher 130 und die Steuervorrichtung behalten eine Speicherreferenzkohärenz bei. Sie gibt die letzte Kopie eines Speicherblocks für jede Füllen-Anforderung zurück, ob der Block in dem Schicht-2-Cachespeicher 130, in dem externen DRAM 108 gespeichert ist oder „in-flight” ist. Sie speichert auch eine Duplikatskopie der Tags für den Daten-Cache 154 in jedem Prozessorkern 120. Sie vergleicht die Adressen der Cache-Block-Speichern-Anforderungen mit den Daten-Cache-Tags und erklärt (beide Kopien) eines Daten-Cache-Tags für einen Prozessorkern 120 für ungültig, wenn eine Speichern-Anweisung von einem anderen Prozessorkern oder von einer E/A-Komponente über die E/A-Schnittstelle 136 ist.
  • In einigen Ausführungsbeispielen unterstützt eine Vielzahl von DRAM-Steuervorrichtungen 133 bis zu 128 Gigabyte DRAM. In einem Ausführungsbeispiel umfasst die Vielzahl von DRAM-Steuervorrichtungen vier DRAM-Steuervorrichtungen, wobei jede der DRAM-Steuervorrichtungen 133 32 Gigabyte DRAM unterstützt. Vorzugsweise unterstützt jede DRAM-Steuervorrichtung 133 eine 64-Bit-Schnittstelle zu DRAM 108. Zusätzlich kann die DRAM-Steuervorrichtung 133 bevorzugte Protokolle unterstützen, wie das DDR-III-Protokoll.
  • Nachdem ein Paket von den Prozessorkernen 120 verarbeitet wurde, liest die Paketausgabeeinheit 146 die Paketdaten aus dem Schicht-2-Cachespeicher 130/DRAM 108, führt eine L4-Netzwerkprotokoll-Nachverarbeitung durch (erzeugt zum Beispiel eine TCP/UDP-Prüfsumme), leitet das Paket über die Schnittstelleneinheiten 122a und 122b oder die PCIe-Schnittstelle 124 weiter und gibt den Schicht-2-Cachespeicher 130/DRAM 108 frei, der von dem Paket verwendet wird.
  • Die DRAM-Steuervorrichtungen 133 verwalten „in-flight”-Transaktionen (laden/speichern) an den/von dem DRAM 108. In einigen Ausführungsbeispielen umfassen die DRAM-Steuervorrichtungen 133 vier DRAM-Steuervorrichtungen, der DRAM 108 umfasst vier DRAM-Speicher, und jede DRAM-Steuervorrichtung ist mit einem DRAM-Speicher verbunden. Die HFA-Einheit 160 ist direkt mit den DRAM-Steuervorrichtungen 133 auf einem Bypass-Cache-Zugriffspfad 135 gekoppelt. Der Bypass-Cache-Zugriffspfad 135 ermöglicht der HFA-Einheit, direkt aus dem DRAM-Speicher 108 zu lesen, ohne den Schicht-2-Cachespeicher 130 zu benutzen, was eine Effizienz für HFA-Operationen verbessern kann.
  • Das Interlaken-Protokoll hat mehrere unterscheidende Merkmale gegenüber synchronen Protokollen. Zum Beispiel sieht das Interlaken-Protokoll eine 64b/67b-Codierung und Verwürfelung bzw. Scrambling anstelle einer 8b/10b-Codierung vor. Das Interlaken-Protokoll sieht eine komplexe Takt-Kompensierung vor, da es eine MetaFrame-Größe-Invarianz-Anforderung hat. Zusätzlich hat es eine entspannte Weg-zu-Weg-Sende-Skew-Spezifikation, wo 67 Einheit-Intervalle bei einer PMA-Teilschicht erlaubt sind.
  • 2 ist ein Blockdiagramm, das die Schnittstelleneinheiten 122 zeigt. Die Schnittstelleneinheiten 122 umfassen eine Vielzahl von Quad-Lane-Modulen (QLMs – quad-lane modules) 202A202E in einer Serialisierer-Deserialisierer(SerDes)-Schnittstelle 206. Die Schnittstelleneinheiten 122 umfassen weiter eine Vielzahl von synchronen Medienzugangssteuer(MAC – media access control)-Einheiten 204A204E und eine asynchrone Medienzugangssteuer(MAC)-Einheit 212. In einem Ausführungsbeispiel ist die asynchrone MAC-Einheit 212 eine Interlaken-Schnittstelle. In einigen Ausführungsbeispielen ist die Interlaken-Schnittstelle konfiguriert zum Empfangen oder Senden auf zwei Verbindungen. Die Schnittstelleneinheiten 122 umfassen auch eine DMA(Direct Memory Access)-Paketschnittstelle (DPI – DMA Packet Interface)/SLI (Switch Logic Interface) 208. Die DPI/SLI 208 ist mit zumindest einem PCIe-Kern 210A–B gekoppelt. Die Vielzahl von synchronen MAC-Einheiten 204A–E, die asynchrone MAC-Einheit 206 und die DPI/SLI 208 sind mit dem E/A-Bus 142 gekoppelt.
  • Die synchrone MAC-Einheit 204A ist mit QLM 202A gekoppelt. Die synchrone MAC-Einheit 204B ist ebenfalls mit QLM 202A gekoppelt. Die synchrone MAC-Einheit 204C ist mit QLM 202C gekoppelt. Die synchrone MAC-Einheit 204D ist mit QLM 202D gekoppelt. Die synchrone MAC-Einheit 204E ist mit QLM 202E gekoppelt.
  • Die asynchrone MAC-Einheit 212 mit QLM 202B und QLM 202C gekoppelt. Die DPI/SLI 208 ist mit PCIe-Kernen 210A210B gekoppelt. Der PCIe-Kern 210A ist mit QLM 202B und 202C gekoppelt. Der PCIe-Kern 210B ist mit QLM 202D und QLM 202E gekoppelt. Der PCIe-Kern 210B ist auch mit einem elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM – electrically eraseable programmable read-only memory) gekoppelt. Die asynchrone MAC-Einheit 212 umfasst eine „Physical Coding”-Teilschicht und eine „Physical Medium Attachment”-Teilschicht. In einem Ausführungsbeispiel führt die asynchrone MAC-Einheit 212 eine Interlaken-spezifische Funktionalität durch.
  • 3 ist ein Blockdiagramm, das die asynchrone MAC-Einheit 212 zeigt. Die asynchrone MAC-Einheit 212 umfasst einen Sendepfad 302 und einen Empfangspfad 312. Der Sendepfad 302 gibt Daten von einer Paketausgabeeinheit 146 ein. Die Paketausgabeeinheit 146 ist gekoppelt, um Daten an eine Sendeverbindungseinheit 304 zu senden. Die Sendeverbindungseinheit 304 ist gekoppelt, um Daten an eine Sendewegeinheit 306 zu senden. Dann sendet die Sendeverbindung Daten an QLM 202B oder QLM 202C.
  • Der Empfangspfad 312 empfängt Daten von den QLMs 202B und 202C an dem Empfangsweg 316. Der Empfangsweg sendet Daten an die Empfangsverbindung 314. Die Empfangsverbindung sendet Pakete an die Paketeingabeeinheit 126.
  • 4 ist ein Blockdiagramm, das Wege eines Mehrfachprotokoll-Senders 400 zeigt. Der Mehrfachprotokoll-Sender 400 umfasst zumindest eine asynchrone MAC-Einheit 402, zumindest eine synchrone MAC-Einheit 404 und eine Sender-Serialisierer-Einheit 410. In einem Ausführungsbeispiel kann die zumindest eine asynchrone MAC-Einheit 402 die asynchrone (MAC)-Einheit 212 von 2 sein. In einem Ausführungsbeispiel kann die synchrone MAC-Einheit 404 die synchronen MAC-Einheiten 204A204E oder die DPI/SLI 208 gekoppelt mit den PCIe-Kernen 210A–B von 2 sein.
  • Die Sender-Serialisierer-Einheit 410 umfasst eine Asynchron-zu-Synchron-Umwandlungseinheit 412, einen Sendertakt 424 und eine Sendertaktrate-Teilereinheit 422. Der Sendertakt 424 ist mit der Sendertaktrate-Teilereinheit 422 gekoppelt. Die Sendertaktrate-Teilereinheit 422 ist konfiguriert zum Teilen der Taktrate des Sendertakts 424. In einem Ausführungsbeispiel ist die Sendertaktrate-Teilereinheit 422 konfiguriert zum Teilen der Taktrate des Sendertakts 424 durch einen Faktor von 10.
  • Die Asynchron-zu-Synchron-Umwandlungseinheit 412 ist mit der asynchronen. MAC-Einheit 402, der Sendertaktrate-Teilereinheit 422 und einem asynchronen Takt 406 gekoppelt. Die Asynchron-zu-Synchron-Umwandlungseinheit 412 ist konfiguriert zum Empfangen von Daten von der asynchronen MAC-Einheit 402 auf einer asynchronen Sendedatenleitung 450, die mit dem asynchronen Takt 406 zeitlich abgestimmt ist. Der asynchrone Takt 406 ist mit einer anderen Rate als der Rate des Sendertakts 424 zeitlich abgestimmt. Die asynchrone Sendedatenleitung 450 ist ein 10-Bit-Segment von vorcodierten Sendedaten, getrieben durch die asynchrone MAC-Einheit 402. Die asynchrone MAC-Einheit 402 sieht ein asynchrones gültiges Sendesignal 452 vor, wenn gültige Daten auf der asynchronen Sendedatenleitung 450 verfügbar sind. Die Asynchron-zu-Synchron-Umwandlungseinheit 412 sieht einen asynchronen Sendekredit 454 für die asynchrone MAC-Einheit 402 vor, nachdem die Asynchron-zu-Synchron-Umwandlungseinheit 412 die Daten von der asynchronen Sendedatenleitung 450 aufnimmt.
  • Die Asynchron-zu-Synchron-Umwandlungseinheit 412 gibt dieselben Daten gemäß der geteilten Taktrate, die von der Sendertaktrate-Teilereinheit 422 vorgesehen ist, in einer first-in-first-out-Reihenfolge aus. Die Asynchron-zu-Synchron-Umwandlungseinheit 412 gibt 10 parallele Bits gleichzeitig ein und aus.
  • Die Sender-Serialisierer-Einheit 410 umfasst weiter eine 8b/10b-Codierereinheit 414. Die 8b/10b-Codierereinheit 414 ist mit der synchronen MAC-Einheit 404 und der Sendertaktrate-Teilereinheit 422 gekoppelt. Die 8b/10b-Codierereinheit 414 ist konfiguriert zum Empfangen von Daten von der synchronen MAC-Einheit 404 in 8-Bit parallelen Segmenten von der synchronen Sendedatenleitung 460. Die synchrone Sendedatenleitung 460 sendet ein Symbol oder 8 Bits von nichtcodierten Sendedaten und wird von der synchronen MAC-Einheit 404 getrieben. Die synchrone Dateneinheit sendet auch ein Steuerungsbit 462, für ein 8b/10b-Codieren von Daten, von der synchronen Sendedatenleitung 460. Die synchrone MAC-Einheit 404 ist auch mit der Sendertaktrate-Teilereinheit 422 gekoppelt, um ein synchrones Taktsignal 464 zu empfangen, das 1/10tel des gesendeten Datenrate ist.
  • Die 8b/10b-Codierereinheit 414 codiert dann die empfangenen Daten von der synchronen Sendedatenleitung 460 gemäß dem 8b/10b-Codierschema, das in der Technik weithin bekannt ist. Die 8b/10b-Codierereinheit 414 gibt dann die codierten Daten gemäß der geteilten Taktrate aus, die von der Sendertaktrate-Teilereinheit 422 vorgesehen ist.
  • Das Sender-Serialisierer-Modul 410 umfasst einen Multiplexer 416. Der Multiplexer ist gekoppelt, um die 10-Bit-Ausgaben von sowohl dem 8b/10b-Codierer 414 als auch der Asynchron-zu-Synchron-Umwandlungseinheit 412 zu empfangen. Der Multiplexer 416 ist mit einem Synchron/Asynchron-Modus-Signal 430 als ein Auswahl-Bit gekoppelt. In einem Ausführungsbeispiel wird das Synchron/Asynchron-Modus-Signal 430 einmal beim Systemstart gesetzt. In diesem Ausführungsbeispiel ändert sich das Synchron/Asynchron-Modus-Signal 430 während des Systembetriebs nicht und kann nur bei einem Neustart geändert werden. Der Multiplexer 416 wählt das Signal von dem 8b/10b-Codierer 414 in einem synchronen Modus und wählt das Signal von der Asynchron-zu-Synchron-Umwandlungseinheit 412 in einem asynchronen Modus.
  • Das von dem Multiplexer 416 ausgewählte Signal wird an einen Serialisierer 418 gesendet. Der Serialisierer ist weiter mit der Sendertaktrate-Teilereinheit 422 und dem Sendertakt 424 gekoppelt. Der Serialisierer 418 empfängt ein Signal mit der geteilten Taktrate und gibt einzelne Bits des 10-Bit-Parallelsignals aus, das er gemäß dem Sendertakt 424 empfängt. Der Serialisierer gibt das serialisierte Signal an den Differenzialtreiber 420 aus. Der Differenzialtreiber 420 gibt zwei komplementäre Signale aus, ein positives Sendesignal 426 und ein negatives Sendesignal 428. Wie in der Technik bekannt, reduziert eine Differenzialsignalisierung den Effekt von Rauschen auf einem Signal.
  • 5 ist ein Blockdiagramm, das Wege eines Mehrfachprotokoll-Empfängers 500 zeigt. Der Mehrfachprotokoll-Empfänger 500 umfasst zumindest eine asynchrone MAC-Einheit 402, zumindest eine synchrone MAC-Einheit 404 und ein Empfänger-Serialisierer-Modul 510. In einem Ausführungsbeispiel kann die zumindest eine asynchrone MAC-Einheit 402 die asynchrone (MAC)-Einheit 212 von 2 sein. In einem Ausführungsbeispiel kann die synchrone MAC-Einheit 404 die synchronen MAC-Einheiten 204A204E oder die DPI/SLI 208 gekoppelt mit den PCIe-Kernen 210A–B von 2 sein.
  • Das Empfänger-Serialisierer-Modul umfasst einen Differenzialempfänger 512, der ein positives Empfangssignal 526 und ein negatives Empfangssignal 524 empfängt. Der Differenzialempfänger 512 verarbeitet das positive Empfangssignal 526 und das negative Empfangssignal 524 und gibt ein einzelnes Signal aus unter Verwendung von Differenzialsignalisierungstechniken, die in der Technik weithin bekannt sind. Der Differenzialempfänger 512 ist gekoppelt zur Ausgabe an einen. Deserialisierer 514 und eine Taktwiedergewinnungseinheit 515.
  • Die Taktwiedergewinnungseinheit 515 erzeugt ein Taktsignal aus dem ausgegebenen Signal. Das erzeugte Taktsignal kann von dem Sendertakt 424 verschieden sein. Die Taktwiedergewinnungseinheit 515 ist mit einer „wiedergewonnene Taktrate”-Teilereinheit 522 gekoppelt. Die „wiedergewonnene Taktrate”-Teilereinheit 522 ist konfiguriert zum Teilen der Taktrate der wiedergewonnenen Taktrate, die von der Taktwiedergewinnungseinheit 515 ausgegeben wird.
  • Der Deserialisierer 514 ist ebenfalls mit der Taktwiedergewinnungseinheit 515 und der „wiedergewonnene Taktrate”-Teilereinheit 522 gekoppelt. Der Deserialisierer 514 synchronisiert jedes Bit mit jeder Takteinheit von der Taktwiedergewinnungseinheit 515 und gibt dann einparalleles 10-Bit-Segment für jede Takteinheit von der „wiedergewonnene Taktrate”-Teilereinheit 522 aus.
  • Der Deserialisierer 514 ist gekoppelt zur Ausgabe an sowohl die elastische Puffereinheit 516 als auch die Synchron-zu-Asynchron-Umwandlungseinheit 520. Sowohl die elastische Puffereinheit 516 als auch die Synchron-zu-Asynchron-Umwandlungseinheit 520 sind mit einem Synchron/Asynchron-Modus-Signal 430 gekoppelt. Während der Deserialisierer 514 verbunden ist, direkt an sowohl die elastische Puffereinheit 516 als auch die Synchron-zu-Asynchron-Umwandlungseinheit 520 auszugeben, ist die elastische Puffereinheit 516 nur in dem synchronen Modus aktiviert und die Synchron-zu-Asynchron-Umwandlungseinheit ist nur in dem asynchronen Modus aktiviert. Auf diese Weise gibt der Deserialisierer 514 nur an einen aus einem synchronen Datenpfad oder einem asynchronen Datenpfad aus.
  • Die elastische Puffereinheit 516 ist gekoppelt, um die Ausgabe des Deserialisierers 514, die Ausgabe der „wiedergewonnene Taktrate”-Teilereinheit 522 und die Ausgabe der Sendertaktrate-Teilereinheit 422 zu empfangen. Die elastische Puffereinheit ist konfiguriert zum Puffer und Neuausrichten der deserialisierten Daten von der geteilten wiedergewonnenen Taktrate zu der geteilten Taktrate, die von der Sendertaktrate-Teilereinheit 422 ausgegeben wird. Die elastische Puffereinheit 516 umfasst eine Codegruppe-Ausrichtungseinheit (nicht gezeigt), die konfiguriert ist zum Bestimmen des Beginns jedes 10-Bit-Blocks zur Ausgabe an den 8b/10b-Decodierer 518. Die elastische Puffereinheit gibt 10-Bit-Segmente an den 8b/10b-Decodierer 518 aus.
  • Der 8b/10b-Decodierer 518 decodiert das 10-Bit-Segment gemäß dem 8b/10b-Decodierschema, das in der Technik bekannt ist. Der 8b/10-Decodierer 518 gibt dann ein 8-Bit-Segment an eine synchrone Empfangsdatenleitung 530 und ein synchrones Empfangssteuerungsbit 532 an die synchrone MAC-Einheit 404 aus. Weiter sieht die elastische Puffereinheit 516, für die synchrone MAC-Einheit 404, ein empfangenes gültiges Datensignal 538 vor, wenn gültige Daten auf sowohl der synchronen Empfangsdatenleitung 530 als auch dem synchronen Empfangssteuerungsbit 532 verfügbar sind und wenn eine Codegruppe ausgerichtet ist. Die elastische Puffereinheit 516 gibt auch an die synchrone MAC-Einheit 404 einen synchronen Empfangsstatus 534 aus, der den Empfängerstatus und mögliche Fehlerbedingungen codiert. Die Status und Fehlerbedingungen können umfassen „empfangene Daten in Ordnung”, „SKiP(SKP)-Symbol hinzugefügt”, „SKiP(SKP)-Symbol entfernt”, „8b/10b-Decodierfehler”, „Überlauf elastischer Puffer”, „Unterschreitung elastischer Puffer” und „8b/10b-Disparitätsfehler”. Die synchrone MAC-Einheit 404 empfängt weiter das synchrone Taktsignal 464 von der Sendertaktrate-Teilereinheit 422, um alle synchronen Signale zu dem synchronen Taktsignal 464 zu synchronisieren.
  • Die Synchron-zu-Asynchron-Umwandlungseinheit 520 ist gekoppelt zum Empfangen einer Eingabe von dem Deserialisierer 514, der „wiedergewonnene Taktrate”-Teilereinheit 522 und dem asynchronen Takt 406. Die Synchron-zu-Asynchron-Umwandlungseinheit 520 wandelt das deserialisierte Signal des Deserialisierers 514 von synchronisiert zu dem geteilten wiedergewonnenen Takt von der „wiedergewonnene Taktrate”-Teilereinheit 522 zu synchronisiert zu dem asynchronen Takt 406 um. Die Synchron-zu-Asynchron-Umwandlungseinheit 520 gibt asynchrone empfangene Daten, die ein codiertes 10-Bit-Segment sind, an die asynchrone MAC-Einheit 402 aus. Die Synchron-zu-Asynchron-Umwandlungseinheit 520 sieht auch, für die asynchrone MAC-Einheit 402, ein asynchrones empfangenes gültiges Datenbit 538 vor, wenn gültige Daten auf der asynchronen Empfangsdatenleitung 540 verfügbar sind. Die asynchrone MAC-Einheit 402 ist mit dem asynchronen Takt 406 gekoppelt, um alle asynchronen Signale zu synchronisieren.
  • Somit sieht das oben beschriebene System eine Kompatibilität mit asynchronen Protokollen, wie dem Interlaken-Protokoll, als auch synchronen SerDes-Schnittstellen vor, wie PCI-Express, Serial RapidIO, SGMII und XAUI.
  • Dieses System überträgt einen Großteil der Interlaken-spezifischen PCS/PMA-Funktionalität von der Mehrfachprotokoll-PHY in die asynchrone MAC-Einheit, die für Interlaken-MAC-Funktionen verantwortlich ist. Jedoch kann unter Verwendung dieses Systems eine asynchrone MAC-Einheit, die Interlaken verwendet, denselben PHY-Block wie eine synchrone MAC-Einheit verwenden.
  • Die Sendeschnittstelle beginnt mit einem MAC-Block, der 10 Bit von 64b/67b vorcodierten/vorverwürfelten Daten auf dem Systemtakt unter Verwendung eines Kredit-/Debit-Schemas sendet. Der PHY-Block der Sendeschnittstelle wandelt die 10 parallelen Bits von Daten von synchronisiert mit dem asynchronen Takt zu synchronisiert mit dem Sendertakt um. Der PHY-Block der Sendeschnittstelle wandelt dann 10 parallele Bits zu 10 seriellen Bits um und sendet diese mit einem Hochgeschwindigkeits-Differenzialtreiber. Der asynchrone Takt sollte höher sein als die Geschwindigkeit des Schnittstellentakts, der 625 Mhz in einem Ausführungsbeispiel ist, um Unterschreitungen in einem Taktumwandlungsdatenpuffer zu verhindern.
  • Der PHY-Block der Empfangsschnittstelle empfängt serielle Daten unter Verwendung eines Hochgeschwindigkeits-Differenzialempfängers. Dann wandelt der PHY-Block der Empfangsschnittstelle die empfangenen seriellen Daten in Segmente um und gewinnt das Taktsignal der empfangenen Daten zurück. Der PHY-Block der Empfangsschnittstelle wandelt 10 Bits von 64b/67b codierten/verwürfelten Daten von einem durch-10-geteilten wiedergewonnenen empfangenen Datentakt in den asynchronen Takt um und sendet die Daten an den MAC-Block zusammen mit einem gültigen Bit. Der asynchrone. Takt ersetzt eine explizite Takt-Kompensation an den Sendertakt, was auch ein globales Routing des Sendertakts vermeidet. Der asynchrone Takt sollte höher sein als die Geschwindigkeit des Schnittstellentakts, der 625 Mhz in einem Ausführungsbeispiel ist, um Unterschreitungen in einem Taktumwandlungsdatenpuffer zu verhindern.
  • Fachleute in der Technik werden erkennen, dass in einigen Ausführungsbeispielen der Sendertakt ein Schnittstellentakt oder ein synchroner Takt ist. Fachleute werden auch erkennen, dass in einigen Ausführungsbeispielen der asynchrone Takt ein Systemtakt ist.
  • Während diese Erfindung insbesondere unter Bezugnahme auf ihre beispielhaften Ausführungsbeispiele gezeigt und beschrieben wurde, dürfte für Fachleute offensichtlich sein, dass verschiedene Änderungen in Form und Details darin vorgenommen werden können, ohne von dem Umfang der Erfindung abzuweichen, der durch die angefügten Ansprüche umfasst wird.

Claims (18)

  1. Mehrfachprotokoll-Schnittstelle, die aufweist: eine „physikalische Schicht”-Sendereinheit, die konfiguriert ist zum Senden von Daten von zumindest einer aus einer oder mehreren synchronen Medienzugangssteuerschichteinheit(en) und einer oder mehreren asynchronen Medienzugangssteuerschichteinheit(en); und eine „physikalische Schicht”-Empfangereinheit, die konfiguriert ist zum Empfangen von Daten und Liefern der empfangenen Daten an zumindest eine der einen oder mehreren synchronen Medienzugangssteuerschichteinheit(en) und die eine oder mehreren asynchrone(n) Medienzugangssteuerschichteinheit(en).
  2. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 1, wobei die „physikalische Schicht”-Sendereinheit weiter aufweist: einen synchronen Takt, der mit einer Senderate von Daten synchronisiert ist; einen 8b/10b-Codierer, der mit der einen oder mehreren synchronen Medienzugangssteuerschichteinheit(en) als Eingänge und dem synchronen Takt als eine Timing- bzw. Zeitsteuerungsvorrichtung gekoppelt ist; eine Asynchron-zu-Synchron-Umwandlungseinheit, die mit der einen oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) gekoppelt ist; und einen Multiplexer, der konfiguriert ist zum Auswählen zwischen dem 8b/10b-Codierer und der Asynchron-zu-Synchron-Umwandlungseinheit.
  3. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 2, die weiter einen asynchronen Takt aufweist, wobei der asynchrone Takt mit einer von der Sendedatenrate verschiedenen Datenrate synchronisiert ist, wobei die Asynchron-zu-Synchron-Umwandlungseinheit mit dem asynchronen Takt und dem synchronen Takt als Timing-Vorrichtungen gekoppelt ist.
  4. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 2, die weiter aufweist einen Sender-Differenzialtreiber; und einen Serialisierer, wobei der Multiplexer gekoppelt ist zur Ausgabe an den Serialisierer, und der Sender-Differenzialtreiber gekoppelt ist zum Empfangen der Ausgabe des Serialisierers.
  5. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 1, wobei die „physikalische Schicht”-Empfängereinheit weiter aufweist: einen synchronen Takt, der mit einer Senderate von Daten synchronisiert ist; und einen Deserialisierer, der konfiguriert ist zur Ausgabe an eine elastische Puffereinheit in einem synchronen Modus und konfiguriert ist zur Ausgabe an eine Synchron-zu-Asynchron-Umwandlungseinheit in einem asynchronen Modus, wobei die elastische Puffereinheit gekoppelt ist zur Ausgabe einer synchronen Version des eingegebenen Signals an den der 8b/10b-Decodierer, wobei die elastische Puffereinheit weiter mit dem synchronen Takt als eine Timing-Vorrichtung gekoppelt ist, wobei die 8b/10b-Decodierereinheit mit der einen oder mehreren synchronen Medienzugangssteuerschichteinheit(en) als Ausgänge und dem synchronen Takt als Timing-Vorrichtung gekoppelt ist, wobei die Synchron-zu-Asynchron-Umwandlungseinheit mit der einen oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) als Ausgänge gekoppelt ist und konfiguriert ist zum Umwandeln von Daten mit einer wiedergewonnenen empfangenen Taktrate in eine asynchrone Taktrate.
  6. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 5, die weiter aufweist: eine Taktwiedergewinnungseinheit, die konfiguriert ist zum Erzeugen des wiedergewonnen empfangenen Takts aus den empfangenen Daten, wobei die Taktwiedergewinnungseinheit als eine Timing-Vorrichtung mit dem Deserialisierer gekoppelt ist; und einen Differenzialempfänger, der zur Ausgabe an den Deserialisierer und die Taktwiedergewinnungseinheit gekoppelt ist.
  7. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 5, wobei die Synchron-zu-Asynchron-Umwandlungseinheit mit einem asynchronen Takt und einer Taktwiedergewinnungseinheit als Timing-Vorrichtungen gekoppelt ist.
  8. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 1, wobei die eine oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) konfiguriert sind zum Senden und Empfangen von Daten gemäß dem Interlaken-Protokoll, wobei die Daten Interlaken-Pakete sind.
  9. Die Mehrfachprotokoll-Schnittstelle gemäß Anspruch 1, wobei die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit beide konfiguriert sind, um entweder in einem asynchronen Modus oder in einem synchronen Modus zu arbeiten, wobei in dem asynchronen Modus die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit nur mit der einen oder mehreren asynchronen Medienzugangssteuereinheit(en) senden und empfangen, und in dem synchronen Modus die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit nur mit der einen oder mehreren synchronen Medienzugangssteuereinheit(en) senden und empfangen.
  10. Ein Verfahren zum Verbinden mit mehreren Protokollen, das aufweist: in einer „physikalische Schicht”-Sendereinheit: Senden von Daten von zumindest einer aus einer oder mehreren synchronen Medienzugangssteuerschichteinheit(en) und einer oder mehreren asynchronen Medienzugangssteuerschichteinheit(en); und in einer „physikalische Schicht”-Empfängereinheit: Empfangen von Daten und Liefern der empfangenen Daten an zumindest eine der einen oder mehreren synchronen Medienzugangssteuerschichteinheit(en) und die eine oder mehreren asynchrone(n) Medienzugangssteuerschichteinheit(en).
  11. Das Verfahren gemäß Anspruch 10, wobei die „physikalische Schicht”-Sendereinheit weiter aufweist: Führen eines synchronen Takts, der mit einer Senderate von Daten synchronisiert ist; Codieren von Daten von der einen oder mehreren synchronen Medienzugangssteuerschichteinheit(en) mit einem 8b/10b-Codierschema unter Verwendung des synchronen Takts als eine Timing-Vorrichtung; Umwandeln der Ausgabe der einen oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) in eine synchrone Ausgabe; Auswählen, in einem Multiplexer, zwischen den codierten Daten und der synchronen Ausgabe.
  12. Das Verfahren gemäß Anspruch 11, das weiter ein Führen eines asynchronen Takts aufweist, wobei der asynchrone Takt mit einer von der Sendedatenrate verschiedenen Datenrate synchronisiert ist, wobei das Umwandeln der Ausgabe der einen oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) in eine synchrone Ausgabe auf dem Timing der synchronen Ausgabe auf dem synchronen Takt basiert.
  13. Das Verfahren gemäß Anspruch 11, das weiter aufweist Serialisieren der ausgewählten Ausgabe; und differenzielles Treiben der serialisierten Ausgabe.
  14. Das Verfahren gemäß Anspruch 10, wobei die „physikalische Schicht”-Empfängereinheit weiter aufweist: Führen eines synchronen Takts, der mit einer Senderate von Daten synchronisiert ist; Empfangen von Daten; Deserialisieren der Daten; in einem synchronen Modus: Puffern von Daten entlang eines Datendecodierpfads und Synchronisieren der gepufferten Daten mit dem synchronen Takt, Decodieren der gepufferten Daten entlang des Datendecodierpfads unter Verwendung eines 8b/10b-Decodierschemas und des synchronen Takts als Timing-Vorrichtung, und Ausgeben der decodierten Daten an die eine oder mehreren synchronen Medienzugangssteuerschichteinheit(en); und in einem asynchronen Modus: Umwandeln der Daten entlang eines Synchron-zu-Asynchron-Umwandlungspfads in ein asynchrones Signal, das zeitlich abgestimmt ist mit einem asynchronen Takt, und Ausgeben des asynchronen Signals an die eine oder mehreren asynchronen Medienzugangssteuereinheit(en).
  15. Das Verfahren gemäß Anspruch 14, das weiter aufweist: Wiedergewinnen von Taktinformation aus den empfangenen Daten; und Deserialisieren der Daten durch Synchronisieren der Daten mit der wiedergewonnenen Taktinformation.
  16. Das Verfahren gemäß Anspruch 15, wobei das Umwandeln der empfangenen Daten entlang des Synchron-zu-Asynchron-Umwandlungspfads die empfangenen Daten von zeitlich abgestimmt mit der wiedergewonnenen Taktinformation zu einem asynchronen Signal umwandelt, das mit einem asynchronen Takt zeitlich abgestimmt ist.
  17. Das Verfahren gemäß Anspruch 10, wobei die eine oder mehreren asynchronen Medienzugangssteuerschichteinheit(en) konfiguriert ist/sind zum Senden und Empfangen von Daten gemäß dem Interlaken-Protokoll, wobei die Daten Interlaken-Pakete sind.
  18. Das Verfahren gemäß Anspruch 10, wobei die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit beide konfiguriert sind, um entweder in einem asynchronen Modus oder in einem synchronen Modus zu arbeiten, wobei in dem asynchronen Modus die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit nur mit der einen oder mehreren asynchronen Medienzugangssteuereinheit(en) senden und empfangen, und in dem synchronen Modus die „physikalische Schicht”-Sendereinheit und die „physikalische Schicht”-Empfängereinheit nur mit der einen oder mehreren synchronen Medienzugangssteuereinheit(en) senden und empfangen.
DE112012004451.7T 2011-10-25 2012-09-26 Mehrfachprotokoll-Serdes-PHY-Vorrichtung Active DE112012004451B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/280,841 2011-10-25
US13/280,841 US9219560B2 (en) 2011-10-25 2011-10-25 Multi-protocol SerDes PHY apparatus
PCT/US2012/057279 WO2013062709A1 (en) 2011-10-25 2012-09-26 Multi-protocol serdes phy apparatus

Publications (2)

Publication Number Publication Date
DE112012004451T5 true DE112012004451T5 (de) 2014-09-04
DE112012004451B4 DE112012004451B4 (de) 2022-12-15

Family

ID=47080794

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004451.7T Active DE112012004451B4 (de) 2011-10-25 2012-09-26 Mehrfachprotokoll-Serdes-PHY-Vorrichtung

Country Status (5)

Country Link
US (1) US9219560B2 (de)
KR (1) KR101645502B1 (de)
CN (1) CN103907297B (de)
DE (1) DE112012004451B4 (de)
WO (1) WO2013062709A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363071B2 (en) 2013-03-07 2016-06-07 Qualcomm Incorporated Circuit to recover a clock signal from multiple wire data signals that changes state every state cycle and is immune to data inter-lane skew as well as data state transition glitches
US9374216B2 (en) 2013-03-20 2016-06-21 Qualcomm Incorporated Multi-wire open-drain link with data symbol transition based clocking
US9755818B2 (en) 2013-10-03 2017-09-05 Qualcomm Incorporated Method to enhance MIPI D-PHY link rate with minimal PHY changes and no protocol changes
US9203599B2 (en) 2014-04-10 2015-12-01 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
US9735948B2 (en) * 2013-10-03 2017-08-15 Qualcomm Incorporated Multi-lane N-factorial (N!) and other multi-wire communication systems
CN105024948A (zh) 2014-04-30 2015-11-04 深圳市中兴微电子技术有限公司 一种基于芯片的数据传输方法、装置及系统
CN104283561B (zh) * 2014-09-22 2018-04-27 电子科技大学 一种异步时钟并串转换半周期输出电路
WO2016167378A1 (ko) * 2015-04-13 2016-10-20 주식회사 로보티즈 복수 종류의 물리 계층 관련 호스트-클라이언트 디바이스간 연결지원장치
WO2017052661A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Multichip package link error detection
US20170091138A1 (en) * 2015-09-30 2017-03-30 Mediatek Inc. Circuit module capable of establishing one or more links with another device and associated method
US9940288B1 (en) * 2015-11-23 2018-04-10 Cadence Design Systems, Inc. SerDes alignment process
US9880949B1 (en) * 2015-12-11 2018-01-30 Microsemi Solutions (U.S.), Inc. Cross clock compensation between layers in peripheral component interconnect express
FR3055063B1 (fr) 2016-08-11 2018-08-31 Soitec Procede de transfert d'une couche utile
US10372657B2 (en) * 2016-12-26 2019-08-06 Intel Corporation Bimodal PHY for low latency in high speed interconnects
CN106789447B (zh) * 2017-02-20 2019-11-26 成都欧飞凌通讯技术有限公司 一种多核中实现超有限自动机图变更时不丢包的方法
US10291386B2 (en) 2017-09-29 2019-05-14 Cavium, Llc Serializer/deserializer (SerDes) lanes with lane-by-lane datarate independence
KR20190056890A (ko) 2017-11-17 2019-05-27 삼성전자주식회사 메모리 장치 및 그것의 동작 방법
US11132327B2 (en) 2018-11-29 2021-09-28 Ati Technologies Ulc Method and apparatus for physical layer bypass
KR102496164B1 (ko) * 2018-12-07 2023-02-07 한국전자통신연구원 다중 MAC 운영 환경에서의 통신 방법 및 IoT 디바이스
KR20210151948A (ko) 2019-05-03 2021-12-14 마이크로칩 테크놀로지 인코포레이티드 유선 로컬 영역 네트워크에서의 충돌 에뮬레이팅 및 관련 시스템, 방법, 및 디바이스
CN112422295B (zh) 2019-08-23 2023-06-13 微芯片技术股份有限公司 以太网接口及相关系统、方法和设备
CN112422153B (zh) 2019-08-23 2023-04-07 微芯片技术股份有限公司 检测到共享传输介质处冲突后处理数据接收的方法和系统
CN112415323A (zh) 2019-08-23 2021-02-26 微芯片技术股份有限公司 诊断网络内的电缆故障
CN112491435B (zh) 2019-08-23 2022-11-18 微芯片技术股份有限公司 包括收发器和驱动器架构的物理层的电路
CN112422385B (zh) 2019-08-23 2022-11-29 微芯片技术股份有限公司 用于改进的媒体访问的接口以及相关的系统、方法和设备
CN112422219A (zh) 2019-08-23 2021-02-26 微芯片技术股份有限公司 以太网接口和相关系统、方法和设备
CN112423403A (zh) 2019-08-23 2021-02-26 微芯片技术股份有限公司 检测网络上的冲突
JP2023518827A (ja) 2020-03-24 2023-05-08 マイクロチップ テクノロジー インコーポレイテッド 10speローカル及びリモートウェイクによる少接続部数インターフェースウェイクソース通信、並びに関連するシステム、方法、及びデバイス
TWI782694B (zh) * 2021-09-06 2022-11-01 智原科技股份有限公司 時序調整電路、時序不對稱消除方法及接收電路
US11907074B2 (en) 2021-09-24 2024-02-20 International Business Machines Corporation Low-latency deserializer having fine granularity and defective-lane compensation
US11646861B2 (en) 2021-09-24 2023-05-09 International Business Machines Corporation Low-latency, high-availability and high-speed SerDes interface having multiple synchronization modes
CN114666420B (zh) * 2022-03-29 2023-11-14 浙江大学 一种开放式的多通讯协议组件
EP4236265A1 (de) * 2022-09-27 2023-08-30 INOVA Semiconductors GmbH Hardwarebasiertes und effizientes weiterleiten von daten

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0151915B1 (ko) * 1995-12-13 1998-11-02 양승택 비동기 전달모드와 이더넷 겸용 어뎁터 송수신 장치
US6519266B1 (en) * 1998-01-05 2003-02-11 Nortel Networks Limited Layering of wireless packet data service
US6516952B1 (en) * 1999-05-13 2003-02-11 3Com Corporation Dual mode serializer-deserializer for data networks
US7451335B2 (en) 2001-04-24 2008-11-11 Broadcom Corporation Selectively disabling a portion of ASF operations when ASF device is powered by auxiliary power
US7787387B2 (en) * 2002-03-21 2010-08-31 Broadcom Corporation Auto-selection of SGMII or SerDes pass-through modes
US20040028164A1 (en) * 2002-08-07 2004-02-12 Hongtao Jiang System and method for data transition control in a multirate communication system
US7206366B2 (en) * 2002-08-07 2007-04-17 Broadcom Corporation System and method for programmably adjusting gain and frequency response in a 10-GigaBit ethernet/fibre channel system
US7286622B2 (en) * 2002-08-07 2007-10-23 Broadcom Corporation System and method for performing on-chip synchronization of system signals utilizing off-chip harmonic signal
US8230114B2 (en) * 2002-08-07 2012-07-24 Broadcom Corporation System and method for implementing a single chip having a multiple sub-layer PHY
US7093172B2 (en) * 2002-08-07 2006-08-15 Broadcom Corporation System and method for determining on-chip bit error rate (BER) in a communication system
US6653957B1 (en) 2002-10-08 2003-11-25 Agilent Technologies, Inc. SERDES cooperates with the boundary scan test technique
KR100575989B1 (ko) * 2004-04-08 2006-05-02 삼성전자주식회사 동기화 이더넷에서의 비동기 데이터의 분할 전송 방법 및그 방법에 사용되는 데이터 구조
US20050281277A1 (en) * 2004-06-22 2005-12-22 Killian Thomas J Establishing traffic priorities in a voice over IP network
US7672300B1 (en) 2004-07-22 2010-03-02 Marvell Israel (M.I.S.L.) Ltd. Network device with multiple MAC/PHY ports
TWI458309B (zh) 2007-12-24 2014-10-21 Ind Tech Res Inst 多協定單一介質網路傳輸方法與裝置
JP5571081B2 (ja) * 2008-08-11 2014-08-13 コーニンクレッカ フィリップス エヌ ヴェ 身体領域ネットワークにおける同期および非同期動作モードの間の動的切り換え技法

Also Published As

Publication number Publication date
DE112012004451B4 (de) 2022-12-15
WO2013062709A1 (en) 2013-05-02
KR101645502B1 (ko) 2016-08-04
US9219560B2 (en) 2015-12-22
US20130101058A1 (en) 2013-04-25
CN103907297A (zh) 2014-07-02
KR20140084297A (ko) 2014-07-04
CN103907297B (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
DE112012004451B4 (de) Mehrfachprotokoll-Serdes-PHY-Vorrichtung
DE102009061731B3 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE112017003209T5 (de) Multiprotokoll-Neusynchronisierer mit geringer Latenz
US8352628B2 (en) Method for transferring data from a source target to a destination target, and corresponding network interface
US8165120B2 (en) Buffering architecture for packet injection and extraction in on-chip networks
US9059836B2 (en) Word boundary lock
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
US9065626B2 (en) Bit error rate impact reduction
US8970891B2 (en) Multi-core processor based image data rotating processing system for high-speed digital textile printer and method
CN110417780A (zh) 定制化数据传输协议的多通道高速数据接口转化模块
CN104780333A (zh) 基于fpga的高带宽视频源接口适配装置
US20150193371A1 (en) Observing an internal link via an existing port for system on chip devices
US7779194B2 (en) Data modification module
CN106598889A (zh) 一种基于fpga夹层板的sata主控器
CN109656856A (zh) 利用fpga实现非复用总线与复用总线互联装置及方法
CN204256732U (zh) 基于PCI-Express接口的高速数据传输装置
US20180285300A1 (en) Data bus logger
DE102018132740A1 (de) Technologien für Zeitstempelung mit Fehlerkorrektur
CN108429707B (zh) 一种适应不同传输速率的时间触发业务转发器及方法
CN112543025B (zh) 基于矩阵化的高速串行ad采样及数据处理系统及方法
EP1988470A2 (de) Netzwerkgerät und Übertragungsverfahren dafür
CN106789295A (zh) 一种SpaceWire总线通讯系统及其监视设备
DE102020134479A1 (de) Senden von Displayport 2.0-Informationen unter Verwendung von USB4
CN103561360B (zh) 串行处理光传送网开销的装置及方法
US20190075191A1 (en) Data communication device, arithmetic processing device, and control method of data communication device

Legal Events

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

Owner name: MARVELL ASIA PTE, LTD., SG

Free format text: FORMER OWNER: CAVIUM, INC., SAN JOSE, CALIF., US

Owner name: CAVIUM, LLC (N.D.GES.D.STAATES DELAWARE), SAN , US

Free format text: FORMER OWNER: CAVIUM, INC., SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: WAGNER & GEYER PARTNERSCHAFT MBB PATENT- UND R, DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: MARVELL ASIA PTE, LTD., SG

Free format text: FORMER OWNER: CAVIUM, LLC (N.D.GES.D.STAATES DELAWARE), SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: WAGNER & GEYER PARTNERSCHAFT MBB PATENT- UND R, DE

R016 Response to examination communication
R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

R018 Grant decision by examination section/examining division
R020 Patent grant now final