DE112010005747T5 - Datenschnittstellenschaltung - Google Patents

Datenschnittstellenschaltung Download PDF

Info

Publication number
DE112010005747T5
DE112010005747T5 DE112010005747T DE112010005747T DE112010005747T5 DE 112010005747 T5 DE112010005747 T5 DE 112010005747T5 DE 112010005747 T DE112010005747 T DE 112010005747T DE 112010005747 T DE112010005747 T DE 112010005747T DE 112010005747 T5 DE112010005747 T5 DE 112010005747T5
Authority
DE
Germany
Prior art keywords
data
integrated circuit
output
input
interfaces
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.)
Withdrawn
Application number
DE112010005747T
Other languages
English (en)
Inventor
Dipayan Mazumdar
Prasanna Raj P Cyril
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.)
MS Ramaiah School of Advanced Studies
Original Assignee
MS Ramaiah School of Advanced Studies
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 MS Ramaiah School of Advanced Studies filed Critical MS Ramaiah School of Advanced Studies
Publication of DE112010005747T5 publication Critical patent/DE112010005747T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)
  • Electronic Switches (AREA)
  • Multi Processors (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

In einem Ausführungsbeispiel wird eine Datenschnittstellenschaltung bereitgestellt. Die Datenschnittstellenschaltung umfasst Datenquellen, Eingabeblöcke, einen Raumschalter, Ausgabeblöcke sowie einen Multicore-Prozessor. Die Datenschnittstellenschaltung ermöglicht die Übertragung in verschiedenen Spannungsbereichen und Samplefrequenzen bereitgestellter Daten auf den entsprechenden Kern des Multicore-Prozessors über den Schalter. Von Datenumwandlungselementen in den Eingabeblöcken werden Daten aus den Datenquellen, die verschiedene Spannungsbereiche und Samplefrequenzen aufweisen, in Daten mit einem für den Raumschalter geeigneten Spannungsbereich und Samplefrequenz umgewandelt. Analog werden Daten aus dem Raumschalter von den Datenumwandlungselementen in den Ausgabeblöcken in Daten, die einen für den entsprechenden Kern des Multicore-Prozessors geeigneten Spannungsbereich und Samplefrequenz aufweisen, umgewandelt. In einer Ausführungsform werden Pegelwandler und FIFO-Puffer in den Eingabe- und Ausgabeblöcken eingesetzt.

Description

  • HINTERGRUND
  • Multicore-Prozessoren sind integrierte Schaltungen, die mehrere Prozessorkerne enthalten. Generell handelt es sich bei einem Kern um eine Verarbeitungseinheit wie z. B. eine zentrale Recheneinheit (CPU), die ausführbare Module (Anweisungen oder Code) verarbeitet, um eine oder mehrere gewünschte Funktionen bzw. Anwendungen bereitzustellen. Multicore-Prozessoren müssen häufig von einer oder mehreren externen Datenquellen wie z. B. Analog-zu-Digital-Wandlern (ADC), Sensorarrays, usw. erzeugte Daten empfangen und verarbeiten. Einfache Prozessorschnittstellen auf Busbasis sind u. U. nicht in der Lage, die Sammlung von Daten aus einer großen Anzahl Quellen zu ermöglichen, v. a. wenn dies im Wesentlichen parallel erfolgen muss.
  • ZUSAMMENFASSUNG
  • In einem Ausführungsbeispiel wird eine integrierte Schaltung bereitgestellt. Die integrierte Schaltung umfasst eine Mehrzahl Eingabedatenschnittstellen, wobei jede Eingabedatenschnittstelle mit einer Datenquelle mit variabler Geschwindigkeit und einem Datenschalter verbunden ist, wobei jede Eingabedatenschnittstelle ferner Spannungspegelwandler und verteilte FIFO-Elemente umfasst; eine Mehrzahl Ausgabedatenschnittstellen, wobei jede Ausgabedatenschnittstelle mit einem einer Mehrzahl datenverbrauchender Prozessoren verbunden ist, und wobei jede Ausgabedatenschnittstelle ferner Datenpegelwandler, verteilte FIFO-Elemente und Reorder-Puffer umfasst; sowie einen ersten Raumschalter und einen zweiten Raumschalter, die jeweils die Mehrzahl Eingabedatenschnittstellen an die Mehrzahl Ausgabeschnittstellen knüpfen, und ferner umfassend eine Mehrzahl Schnitstellen, die mehrere gleichzeitige Verbindungen zwischen Eingabe- und Ausgabeports des Raumschalters bereitstellen können, wobei der Raumschalter eine der Anzahl Eingabedatenschnittstellen gleiche Anzahl Eingangsports und eine der Anzahl Ausgabedatenschnittstellen gleiche Anzahl Ausgangsports aufweist, wobei die Bitbreite jedes Eingangsports auf dem Raumschalter mit der Bitbreite jeder Eingabeschnittstelle übereinstimmt; wobei die Bitbreite jedes Ausgangsports auf dem Raumschalter mit der Bitbreite jeder Ausgabeschnittstelle übereinstimmt; und wobei der zweite Raumschalter aktiviert wird, um den ersten Raumschalter im Falle dessen Ausfalls zu ersetzen.
  • In einer alternativen Ausführungsform der integrierten Schaltung befinden sich eine oder mehrere datenverbrauchende Prozessoren auf einer ersten physikalischen Siliziumschicht und sind über eine Kombination aus Verbindungsverdrahtung und TSV (Through Silicon Vias) mit den auf einer zweiten physikalischen Siliziumschicht angeordneten entsprechenden Ausgabeschnittstellen verbunden. In einer weiteren Ausführungsform der integrierten Schaltung umfassen die Eingabedatenschnittstellen ferner eine Mehrzahl FIFO-Puffer, von denen jeder an einen der Spannungspegelwandler gekoppelt ist, wobei dei FIFO-Puffer jeweils einen oder mehrere Unterblöcken umfasst, die ein verteiltes FIFO-Element bilden. In einer weiteren Ausführungsform sind die variablen Datenquellen und das verteilte FIFO-Element über die Spannungspegelwandler verbunden, und jedes verteilte FIFO-Element nimmt eine verschiedene physikalische Stelle auf einem Siliziumchip ein, und umfasst ferner eine oder mehrere Speicherstellen. In einer weiteren Ausführungsform ist jeder Spannungspegelwandler im single-ended-Betrieb verbunden, wo er unipolare oder bipolare digitale Signale in einen mit den verteilten FIFO-Elementen vereinbaren Spannungspegel umwandeln kann.
  • In einem weiteren Ausführungsbeispiel wird eine integrierte Schaltung bereitgestellt. Die integrierte Schaltung umfasst eine Mehrzahl Eingabeschnittstellen, die Spannungspegelwandler und durch Leitungssegmente miteinander verbundene verteilte FIFO-Eingabeelemente, wobei jede Eingabeschnittstelle an eine Datenquelle mit variabler Geschwindigkeit einer Mehrzahl Datenquellen mit variabler Geschwindigkeit, die jeweils gleiche Logikebenen aufweisen, sowie einen an die Mehrzahl Eingabeschnittstellen gekoppelten Raumschalter, der mehrere blockierungsfreie Verbindungen mit einer Mehrzahl Ausgabeschnittstellen bereitstellt, die seriell über Leitungen miteinander verbundene Ausgabespannungswandler, verteilte FIFO-Elemente und Reorderpuffer umfassen.
  • In einer weiteren Ausführungsform können die verteilten FIFO-Elemente auf einer aktiven Siliziumschicht einer zweidimensionalen integrierten Schaltung, oder auf verschiedenen Schichten einer dreidimensionalen Silizium-integrierten Schaltung ausgeführt werden. In einer Ausführungsform sind die Ausgabeschnittstellen an Datensenken gekoppelt, die ferner eine Mehrzahl auf demselben Chip wie die integrierte Schaltung oder auf einem von der integrierten Schaltung getrennten Chip ausgeführter multipler Prozessorkerne umfassen können. In einer weiteren Ausführungsform umfasst der Raumschalter einen Fixpunkt-Raumschalter bzw. einen Floating-Point-Schalter, wobei die Eingabe- und Ausgabeschnittstellen des Raumschalters ferner Mantissen- und Exponentenbits mit Breiten, die größer oder gleich 1 sind, umfassen können.
  • In einer weiteren Ausführungsform können die Datensenken jeweils unterschiedliche Speisespannungen und Betriebsfrequenzen aufweisen, und können einzelne Mikroprozessoren, digitale Signalprozessoren sowie feldprogrammierbare Gate Arrays umfassen, wobei eine oder mehrere der Datensenken an einen der Reorder-Puffer gekoppelt sein kann. In einer weiteren Ausführungsform kann jeder brückbare Reorder-Puffer der Mehrzahl Reorder-Puffer unabhängig von den anderen Reorder-Puffern eine variable Tiefe aufweisen, wobei der einzelne Reorder-Puffer ferner einen Eingabeport mit einer von einem Schreibzeiger aufrechterhaltenen Adresse sowie einen oder mehrere Ausgabeports mit von Schreibzeigern aufrechterhaltenen Adressen, und jeder Reorder-Puffer mehrere Ausgabeports umfasst, die jeweils mit einem anderen Ausgabespannungspegelwandler zur Ausgabe an verschiedene Ausgabesenken verbunden sind.
  • In einer weiteren Ausführungsform empfangt die Ausgabeschnittstelle Daten, die eine erste Übertragungsrate und einen ersten Spannungspegel vom Ausgangsschalter umfassen, und wandelt die erste Übertragungsrate in eine zweite Übertragungsrate und den ersten Spannungspegel in einen zweiten Spannungspegel um, wobei die zweite Übertragungsrate und der zweite Spannungspegel mit den Datensenken vereinbar sind. In einer Ausführungsform ist ein erstes Segment der verteilten FIFO-Segmente physikalisch auf einer Schicht einer dreidimensionalen integrierten Schaltung angeordnet, während ein zweites Segment der verteilten FIFO-Segmente physikalisch auf einer anderen Schicht der dreidimensionalen integrierten Schaltung angeordnet ist, und wobei das erste und zweite Segment über senkrechte TSV-Leitungen miteinander verbunden sind.
  • In einer weiteren Ausführungsform können die ersten und zweiten Segmente der verteilten FIFO-Segmente Differenzsignale oder asymmetrische Signale übertragen. In einer weiteren Ausführungsform werden die über die Leitungen, die die verteilten FIFO-Eingabe- und Ausgabeelemente miteinander verbinden, übertragenen Daten auf der Grundlage von Gray-Codierung oder Bitumkehrung codiert. In einer weiteren Ausführungsform kann der Raumschalter einen Koordinatenschalter mit N-Eingangsports und N-Ausgangsports, ein Shuffle-Exchange-Netzwerk mit N Eingangsports und N Ausgangsports und log(N) Stufen oder ein Banyan-Netzwerk mit log2(N) Stufen und N Eingangsports und N Ausgangsports umfassen.
  • In einer weiteren Ausführungsform wird ein zweiter Raumschalter bereitgestellt, der sich beim Ausfall des Raumschalters eingchaltet, wobei der zweite Raumschalter an die Eingabe- und Ausgabeschnittstellen auf eine der Kopplung des Raumschalters an Ein- und Ausgabeschnittstelle ähnliche Weise gekoppelt ist.
  • In einer weiteren Ausführungsform weist ein verteiltes FIFO-Element der verteilten FIFO-Elemente eine Ausgabe eines stromsparenden Codierers auf, der mit einer stromsparenden Decodierereingabe eines anderen verteilten FIFO-Elements der verteilten FIFO-Elemente verbunden ist, wobei die verteilten FIFO-Elemente über optionale stromsparende Gray-codierte Codierer und Decodierer mit den Pegelwandlern verbunden sind und wobei Datenquellen mit variabler Geschwindigkeit über eine Mehrzahl paralleler Pfade auf den verteilten FIFO-Eingabeelementen schreiben können.
  • Die vorstehende Zusammenfassung dient lediglich der Veranschaulichung und hat keinesfalls als Einschränkung der vorliegenden Erfindung zu gelten. Ausser den oben beschriebenen veranschaulichenden Aspekten, Ausführungsbeispielen und Merkmalen werden unter Bezugnahme auf die Zeichnungen und die nachfolgende ausführliche Beschreibung weitere Aspekte, Ausführungsformen und Merkmale in Erscheinung treten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Ausführungsbeispiel einer Datenschnittstellenschaltung.
  • 2 zeigt ein alternatives Ausführungsbeispiel einer Datenschnittstellenschaltung mit Pegelwandlern und verteilten FIFO-Puffern.
  • 3 ist ein veranschaulichendes Blockdiagramm eines verteilten FIFO-Puffers.
  • 3b ist ein veranschaulichendes Blockdiagramm eines verteilten FIFO-Puffers, wobei der Pegelwandler sich unter verteilten FIFO-Puffersegmenten befindet.
  • 3c ist ein veranschaulichendes Blockdiagramm eines traditionellen lokalen FIFO-Puffers.
  • 3d ist ein veranschaulichendes Blockdiagramm verschiedener Datenpfade einer Ausführungsform eines verteilten FIFO-Puffers.
  • 3e ist ein veranschaulichendes Diagramm, in dem gezeigt wird, wie mehrere Abschnitte eines verteilten FIFO-Puffers miteinander verbunden werden können, um einen vollständigen verteilten FIFO-Puffer auszubilden.
  • 3f ist ein veranschaulichendes Blockdiagramm, in dem die Segmente eines über differentielle Signalübertragung angebundenen verteilten FIFO-Puffers, was zu einem niedrigeren Stromverbrauch und höheren Übertragungsraten führt.
  • 3g zeigt ein Zeitdiagramm für die Komponenten der Eingabeblöcke einer Datenschnittstellenschaltung.
  • 3h ist ein veranschaulichendes Blockdiagramm verteilter FIFO-Puffersegmente, jeweils umfassend zwei Speicherelemente.
  • 3i ist ein veranschaulichendes Flussdiagramm des Fortschritts eines Datums durch die verteilten Puffersegmente.
  • 4a ist ein veranschaulichendes Blockdiagramm eines über einen Reorder-Puffer an einen Prozessorkern gekoppelten FIFO-Ausgabepuffers.
  • 4b ist eine schematische Darstellung eines Beispiels eines Reorder-Puffers, der eine Schreibzeigerein- und -ausgabe aufweist.
  • 4c ist eine schematische Darstellung eines Beispiels eines Reorder-Puffers, in der die Umordnung der Schreibzeigereingabe für Ausgabe gezeigt wird.
  • 4d ist ein Veranschaulichungsbeispiel des Schreibens und Ablesens eines Reorderpuffers, der N Eingangsports und N Ausgangsports aufweist.
  • 4e zeigt ein alternatives Ausführungsbeispiel einer Datenschnittstellenschaltung mit Pegelwandlern und verteilten FIFO-Puffern, die über Reorder-Pufer mit Prozessorkernen verbunden sind und mit Multiplexern brückbar sind.
  • 5a ist ein veranschaulichendes Blockdiagramm eines Ausgabepufferblocks mit Fehlercodekorrektur und niedrigerem Stromverbrauch.
  • 5b Wie in 5b gezeigt wird, kann es sich beim Raumschalter um einen Shuffle-Exchange-Koordinatenschalter mit N Stufen auf einem Banyan handeln.
  • 5c ein zweiter Raumschalter wird für den Fall des Ausfalls des ersten Raumschalters bereitgestellt.
  • 6 ist ein veranschaulichendes Blockdiagramm eines Eingabeblocks mit niedrigerem Stromverbrauch infolge der Umwandlung paralleler Dateneingaben in serielle Daten während der Übertragung.
  • 7a ist ein Ausführungsbeispiel des Schalterblocks, der eine N-mal-N-Kreuzschiene verwendet.
  • 7b ist eine Darstellung einer 4×4-Kreuzschiene, in der die Ein- und Ausgangsports gezeigt werden.
  • 7c ist eine Darstellung der 4×4-Kreuzschiene mit zwei gleichzeitigen Datenflüssen.
  • 8a ist ein Ausführungsbeispiel des Schalterblocks mit einem Shuffle-Exchange-Netzwerk (S/E).
  • 8b ist ein Beispiel eines Datenpfads der Ausführung des Schalterblocks als S/E-Netzwerk.
  • 9 ist ein Blockdiagramm eines Beispiels einer Rechenvorrichtung, die erfindungsgemäß für Datenschnittstellen-Multipath-Routing angeordnet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der nachfolgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen, die Bestandteil der vorliegenden Anmeldung sind, Bezug genommen. In den Zeichnungen werden ähnliche Komponenten typischerweise von ähnlichen Zeichen gekennzeichnet, sofern sich nicht etwas anderes aus dem Zusammenhang ergibt. Die in der ausführlichen Beschreibung, Zeichnungen und Patentansprüchen beschriebenen Ausführungsbeispiele sollen nicht als Einschränkung gelten. Weitere Ausführungsformen können eingesetzt werden, und weitere Änderungen können gemacht werden, ohne ausserhalb des Umfangs des vorliegend beschriebenen Gegenstandes zu fallen. Es versteht sich, dass die allgemein beschriebenen und in den Zeichnungen veranschaulichten Aspekte der vorliegenden Erfindung ein breites Spektrum an verschiedenen Anordnungen, Ersätzen, Kombinationen und Konstruktionen zulassen, die allesamt ausdrücklich in die vorliegende Erfindung mit aufgenommen werden.
  • 1 zeigt ein Ausführungsbeispiel einer Datenschnittstellenschaltung 100. Die dargestellte Datenschnittstellenschaltung 100 umfasst eine Reihe von Datenquellen 102, Eingabeblöcke 104, einen Schalterblock 106, Ausgabeblöcke 108 und Prozessorblöcke 110. Die Datenquellen 102 und die Eingabeblöcke 104 werden von einem Datenpfad 112 miteinander verkoppelt. Die Eingabeblöcke 104 und der Schalterblock 106 werden von einem Datenpfad 114 miteinander verkoppelt. Der Schalterblock 106 und die Ausgabeblöcke 108 werden von einem Datenpfad 116 miteinander verkoppelt. Die Eingabeblöcke 108 und der Schalterblock 110 werden von einem Datenpfad 118 miteinander verkoppelt. Die Eingabeblöcke 104, der Schalterblock 106 und Ausgabeblöcke 108 können in Kombination als Datenschnittstellenschaltung zum Empfang von Daten von den Datenquellen 102 über den Datenpfad 112 und zur Weiterleitung der Daten an entsprechende Prozessorblöcke über den Datenpfad 118 betrachtet werden. Hierbei ist anzumerken, dass jeder der einzelnen Pfade (als Linien dargestellt und nachfolgend als Unterpfade bezeichnet) in den Datenpfaden 112, 114, 116 und 118 mehrere Signalleitungen umfassen kann. Die Linien können asymmetrische oder differentielle elektrische Signale sein. In einer Ausführungsform handelt es sich bei den Prozessorblöcken 110 um Datensenken, die eine Mehrzahl Kerne eines Multicore-Prozessors oder eine Mehrzahl Speicherblöcke, die einem Multicore-Prozessor entsprechen, umfassen, die jeweils Daten aus einem entsprechenden Ausgabeschnittstellenblock innerhalb der Ausgabeblöcke 108 über den Datenpfad 118 empfangen. In einer Ausführungsform können die Komponenten der Datenschnittstellenschaltung 100 auf einer einzigen integrierten Schaltung oder FPGA ausgeführt werden. In einer weiteren Ausführungsform können die Komponenten der Datenschnittstellenschaltung 100 auf mehreren integrierten Schaltungen oder FPGA ausgeführt werden.
  • Die Eingabeblöcke umfassen Eingabeschnittstellenblöcke, die Pufferblöcke umfassen können und jeweils aus einer Datenquelle über Eingabepfade 112 empfangene Eingabedaten speichern. Gemäß einer Ausführungsform können die Puffer des Speicherelements als FIFO ausgeführt werden. Speicherelemente der Pufferblöcke der Eingabeschnittstelle leiten entsprechende Ausgaben an den Schalterblock 106 über Ausgabepfade 114 weiter. Datenquellen 112, die über Pfade 112 Daten übertragen, können Analog-zu-Digital-Umwandler (ADC) sein. Dadurch, dass Eingabeblöcke 104 vorgesehen sind, wird die Verbindung von ADC mit weit auseinandergehenden Samplefrequenzen mit ADC-Ausgangsspannungen ermöglicht. Ferner wird es durch dieses Verfahren einem ADC ermöglicht, dem Schalterblock 106 selbst dann Daten zuzusenden, wenn die Samplefrequenz des ADC (Frequenz, mit der der ADC digitale Ausgaben liefert) höher ist als die Betriebsgeschwindigkeit des Schalterblocks 106.
  • Analogerweise wird von den Zwischenspeicherelementen innerhalb von Ausgabeschnitstellen in den Ausgabeblöcken 108 der Betrieb der Kerne bei verschiedenen Taktraten ermöglicht. Jede Ausgabeschnittstelle der Ausgageblöcke 108 kann gemäß einem Ausführungsbeispiel als Ringspeicher ausgeführt werden. Die Tiefe der Ringspeicher des Ausgabepuffer kann je nach den gewünschten Betriebsfrequenzen der Kerne gewählt werden. Weiter unten wird eine Ausführungsform mit einem derartigen Ringspeicher unter Bezugnahme auf 4 beschrieben und erläutert. Generell ermöglicht es der Schalterblock 106, dass verschiedene ADC-Kanäle (Datenquellen 102) mit verschiedenen (und gewünschten) Ringspeichern der Ausgabeblöcke 108 und somit mit den Prozessorkerne der Prozessorblöcke 110 oder den Speicherstellen (allgemein: Zieldatenblöcke) verbunden sind. Der Schalterblock 106 empfängt Daten über die Pfade 114 von den Eingabeblöcken 104, und kann über den gewünschten/erforderlichen Pfad die Ausgaben in den Ausgabenpfaden 116 selektiv ausgeben. Zur Veranschaulichung können Daten, die von einem ersten Speicherelement in den Eingabeblöcken 102 über einen gewünschten Pfad in den Ausgabepfaden 116 an ein beliebiges Speicherelement innerhalb der Ausgabeblöcke 108 und somit an den gewünschten Prozessorkern innerhalb der Prozessorblöcke 110 geleitet werden. Ähnlich kann der Schalterblock 106 Daten über einen beliebigen Pfad der Datenfpade 114 an einen beliebigen Pfad der Datenpfade 116 weiterleiten. Der Betrieb des Schalterblocks 106 zur Leitung auf Pfaden in den Datenpfladen 114 und 116 empfangener Daten ringmäßig oder mit gleichmäßiger Gewichtung ausgestaltet werden. In einer Ausführungsform kann der Schalterblock 106 mit einem Fixpunkt-Raumschalter oder einem Floating-Point-Raumschalter versehen werden. Beim Raumschalter kann es sich, wie in 5b gezeigt, um einen Shuffle-Exchange-Koordinatenschalter mit N Stufen auf einem Banyan handeln. In noch einer weiteren Ausführungsform wird ein zweiter Raumschalter für den Fall des Ausfalls des ersten Raumschalters bereitgestellt. Ein Beispiel dieser Ausführungsform wird in 5c gezeigt, wo die Eingabeblöcke 104 und die Ausgabeblöcke 108 mit zwei vollständig verbundenen Raumschaltern 106a und 106b verbunden sind. In einer Ausführungsform ist der Raumschalter 106a eingeschaltet, während der Raumschalter 106b im Normalbetrieb ausgeschaltet ist. Wenn also der Raumschalter 106a ausfällt, wird der Raumschalter 106b als Ersatz für den ausgefallenen Raumschalter 106a eingeschaltet.
  • In einer Ausführungsform umfasst die Datenschnittstellenschaltung 100 einen mehrkanaligen Interrupt-Controller (nicht dargestellt), der einen Interrupt an den entsprechenden Kern in den Prozessorblöcken 110 sendet, wenn in einem entsprechenden Ringspeicher im Ausgabepufferblock neue Daten verfügbar sind. Einige Ausführungsformen der Datenschnittstellenschaltung 100 können ohne Ausgabeblöcke 108 ausgeführt werden. In derartigen Ausführungsformen können die Ausgaben des Schalterblocks 106 direkt an die jeweiligen Kerne der Prozessorblöcke 110 geleitet werden.
  • 2 zeigt ein alternatives Ausführungsbeispiel einer Datenschnittstellenschaltung 200. Wie gezeigt, umfassen die Eingabenschnittstellenblöcke 104 der Datenschnittstellenschaltung 200 eine Mehrzahl Eingabepegelwandler LSi1, LSi2, ... LSin, die an eine Mehrzahl verteilter FIFO-Eingabepuffer DISTRIBUTED INPUT FIFO1, DISTRIBUTED INPUT FIFO2, ... DISTRIBUTED INPUT FIFOn gekoppelt sind. Wie gezeigt, umfassen die Eingabenschnittstellenblöcke 108 der Datenschnittstellenschaltung 200 eine Mehrzahl Ausgabepegelwandler LSo1, LSo2, ... LSon, die an eine Mehrzahl verteilter FIFO-Ausgabepuffer DISTRIBUTED OUTPUT FIFO1, DISTRIBUTED OUTPUT FIFO2, ... DISTRIBUTED OUTPUT FIFOn gekoppelt sind, die wiederum an eine Mehrzahl Reorder-Puffer RBI, RBI, ... RBn gekoppelt sind. Nachfolgend werden die in der in 2 dargestellten Ausführungsform der Datenschnittstellenschaltung 200 gezeigten Funktionen der Pegelwandler und Puffer erläutert.
  • Die Datenschnittstellenschaltungen 100 und 200 sind mit einem breiten Spektrum an Datenquellen (z. B., ADC-Ausgangsspannungen) vereinbar. Typischerweise liefern die Datenquellen 102 die Daten mit variablen Übertragungsraten, wie z. B. ADC, die mit verschiedenen Samplefrequenzen funktionieren, um analoge Eingabe aus der Aussenwelt zu empfangen und diese in digitale Datenstichproben umzuwandeln, die zur Verarbeitung durch den Mikroprozessor geeignet sind. Die digitalen Datenstichproben werden mit einer für jede Datenquelle spezifische Übertragunsrate ausgegeben. Unterschiedliche Datenquellen können weit auseinandegehende Samplefrequenzen aufweisen und stoßartig funktionieren. Ausserdem weisen die verschiedenen Datenquellen vermutlich auch verschiedene Spannungspegel auf. Die Stichproben mit variabler Spannung und Frequenz aus den verschiedenen Quellen werden in eine Frequenz und Spannung umgewandelt, die für den Multicore-Prozessor geeignet sind. Wie in 2 gezeigt, umfasst die Datenschnittstellenschaltung 200 Pegelwandler oder Spannungsebenenumsetzer. Die Pegelwandler LSo1, LSo2, ... LSon sind an die Ausgabe jeder der Datenquellen 102 gekoppelt.
  • Typischerweise liefern die Datenquellen Daten mit verschiedenen Spannungen und Übertragungsraten. In einem Betriebsbeispiel gibt der ADC digitale Datenstichproben bei einer Spannung von 3,3 Volt und einer Frequenz von 10 MHz aus. Die Pegelwandler wandeln die Spannung der digitalen Datenstichproben auf zwischen O V–1 V, damit sie mit der Spannung des Raumschalterblocks übereinstimmen. Der Schalterblock 106 funktioniert bei einer für minimalen Stromverbrauch optimierten Spannung. Die digitalen Datenstichproben, die eine Spannung zwischen 0 und 1 V aufweisen, kommen in die entsprechende Warteschlange des verteilten FIFO-Eingabepuffers. Die Umwandlung der Spannung von der ADC-Ausgangsspannung zu einem für den verteilten FIFO-Eingabepuffer 300a geeigneten Pegel erfolgt durch einen in der Nähe des verteilten FIFO-Puffers angeordneten Spannungspegelwandler. Der Spannungspegelwandler (LS) kann verschiedene Positionen in der Eingangsleitung einnehmen. In einer Ausführungsform (2) wird der LS vor dem verteilten FIFO-Puffer gezeigt. Ist die ADC-Ausgangsspannung niedrig, so kann der verteilte FIFO zwischen der variablen Datenquelle 102 und dem Pegelwandler angeordnet werden. In diesem Fall wird der Pegelwandler in der Nähe des Raumschalters 106 angeordnet.
  • In einer Ausführungsform werden FIFO-Puffer zur Umwandlung digitaler Datensamplefrequenzen eingesetzt. Bei diesen FIFO-Puffern kann es sich um verteilte FIFO-Puffer handeln, die hinsichtlich des Stromverbrauchs Vorteile gegenüber traditionellen lokalen FIFO-Puffern aufweisen. 3a ist ein veranschaulichendes Blockdiagramm eines verteilten FIFO-Puffers 302a, der von einem Pegelwandler 304a Eingaben empfängt und Ausgaben an einen Raumschalterblock ausgibt. In einer ausführungsform kann es sich beim Raumschalterblock um den Schalterblock 106, wie jeweils in den Datenschnittstellenschaltungen 100 und 200 der 1 und 2 gezeigt wird. Der verteilte FIFO-Puffer 302a weist entlang der Leitung 306a verteilte Speicherelemente auf. In einem Ausführungsbeispiel kann es sich bei den Speicherelementen um Register handeln. 3b ist ein veranschaulichendes Blockdiagramm eines verteilten FIFO-Puffers 302ba, wobei ein Pegelwandler 304b sich unter Teilen der verteilten FIFO-Puffersegmente 308b befindet. In dieser Ausführungsform können die FIFO-Puffer zwischen dem Pegelwandler 304b und dem ADC-Ausgang mit demselben Spannungspegel wie die ADC-Ausgangsspannung funktionieren, und die FIFO-Puffer zwischen dem Pegelwandler 304b und dem Raumschalterblock können mit demselben Spannungspegel wie der Schalterblock funktionieren.
  • Zum Vergleich ist 3c ist ein veranschaulichendes Blockdiagramm eines traditionellen konzentrierten FIFO-Puffers 302c, der von einem Pegelwandler 304b Eingaben empfängt und Ausgaben an einen Raumschalterblock ausgibt. Der konzentrierte FIFO-Puffer 302c weist entlang der Leitung 306c verteilte Speicherelemente 308c auf.
  • Die mithilfe eines verteilten FIFO-Puffers gegenüber einem konzentrierten FIFO-Puffer zu erzielenden Stromersparnisse sind auf den Unterschied hinsichtlich der Speisespannung und der Verteilung der Leitungskapazität zurückzuführen. Die zur Übertragung von N Wörtern über eine einzige Leitung für einen konzentrierten FIFO Cline erforderliche Energie ist die Kapazität der Leitung und: Vdd1 ist der Speisespannungspegel.
  • Andererseits lässt sich die zur Übertragung von N Wörtern über eine einzige Leitung für einen verteilten FIFO-Puffer erforderliche Energie wie folgt darstellen:
    Figure 00100001
  • So gesehen lässt das Verhältnis der für einen verteilten FIFO-Puffer erforderlichen Energie zu der für einen konzentrierten FIFO-Puffer erforderliche Energie wie folgt darstellen:
    Figure 00110001
  • Da die Leitungssegmentlängen zwischen den verteilten Speicherelementen kürzer ist als die Leitungslänge eines konzentrierten FIFO-Puffers, ist Vdd2 kleiner als Vdd1. Diese Faktor führt neben der Verteilung der Leitungskapazität zum geringeren Stromverbrauch der verteilten FIFO-Puffer gegenüber den traditionellen konzentrierten FIFO-Puffern.
  • Im Sinne der nachfolgenden Ausführungen wird auf eine Ausführungsform, bei der der verteilte FIFO der 3a innerhalb der Datenschnittstellenschaltung 100 der 1 allgemein Bezug genommen. Der Stromwirkungsgrad des verteilten FIFO liegt an dessen Fähigkeit, Datenwörter über mehrere kurze Strecken von der Datenquelle 302a zum Schalterblock 106 zu übertragen. Die Datenwörter werden zwischen mehreren kleinen FIFO-Puffern 308a übertragen. Die Kapazität zwischen jedem kleineren FIFO-Pufferelement ist ein Bruchteil der Kapazität. Zwischen der Datenquelle 102 und dem Schalterblock 106 kann die Datenquelle 102 Daten an den Pegelwandler 304a und von dem Pegelwandler 304a zu übertragen; so entstehen mehrere Pfade. Die Ausgabe des Pegelwandlers 304a kann auf mehreren Adressen innerhalb der verteilten FIFO-Puffer 308a geschrieben werden.
  • 3 ist ein veranschaulichendes Blockdiagramm verschiedener Datenpfade einer Ausführungsform eines verteilten FIFO-Puffers. Konkret zeigt 3d zwei Datenpfade, die zu unterschiedlichen Stellen in den verteilten FIFO-Puffern führen. In einer Ausführungsform wird, sofern zwei Wörter geschrieben werden, das oberste Wort von W1 auf W2 übertragen. Hierzu gehört die Beladung einer ersten Segmentkapazität beim Schreiben auf einem ersten Teil der verteilten FIFO-Puffer, sowie die Beladung sowohl der ersten Segmentkapazität und einer zweiten Segmentkapazität beim Schreiben auf dem zweiten teil der verteilten FIFO-Puffer. 3e ist ein veranschaulichendes Diagramm, in dem gezeigt wird, wie zu mehreren Teilen eines verteilten FIFO-Puffers die Beladung einer ersten Segmentkapazität beim Schreiben auf einem ersten Teil der verteilten FIFO-Puffer, sowie die Beladung sowohl der ersten Segmentkapazität und einer zweiten Segmentkapazität beim Schreiben auf dem zweiten teil der verteilten FIFO-Puffer gehört. 3e ist ein veranschaulichendes Diagramm, in dem gezeigt wird, wie mehrere Abschnitte eines verteilten FIFO-Puffers miteinander verbunden werden können, um einen vollständigen verteilten FIFO-Puffer auszubilden. Wie gezeigt, weisen die verschiedenen Abschnitte der verteilten FIFO-Puffer jeweils eine Mehrzahl Stellen auf, die mehrere Datenpfade ermöglichen.
  • Für M Anzahlen paralleler Pfade, durch die die Datenquelle 102 auf den verteilten FIFO-Puffern schreiben kann, lässt sich die Übertragungsenergie wie folgt darstellen: E = p1 1 / 4CsV 2 / DD1 + p2 1 / 4(2Cs)V 2 / DD1 + p3 1 / 4(3Cs)V 2 / DD1 ... + pm 1 / 4(mCs)V 2 / DD1, (5) wobei pi die Wahrscheinlichkeit darstellt, dass eine Datenübertragung über einen bestimmten Datenpfad i erfolgt, Cs die Kapazität am jeweiligen Segment darstellt, und VDD die Speisespannung aus der Datenquelle 102 darstellt. Wie oben erwähnt kann eine Ausführungsform der verteilten FIFO-Puffer 308d stromsparende Vorteile gegenüber herkömmlichen FIFO-Puffern aufweisen.
  • Der reduzierte Stromverbrauch resultiert aus mehreren Faktoren wie z. B. reduzierter Kapazität und Speisespannung. Erstens, da der Pegelwandler 304d vor den verteilten FIFO-Puffern 308d angeordnet ist, kann die Spannung, bei der die Eingabedatenwörter geschrieben werden, niedriger sein als die Ausgangsspannung der Datenquelle 102. Zweitens, da die Datenwörter zwischen den Segmenten der verteilten FIFO-Puffer 308d Teilstrecken zurücklegen, wird die gesamte Leitungskapazität um einen Faktor C/N reduziert, wobei N die Anzahl gesonderter Pufferelemente in den verteilten FIFO-Puffern 308d darstellt. Die niedrigere Kapazität führt zu einer Reduzierung der zur Übertragung von Daten über eine einzelne Teilstrecke erforderlichen Energie um einen Faktor N. Drittens können die Datenübertragungselemente mit niedriger Differenzspannung zwischen jedem Segment der verteilten FIFO-Puffer 308d asymmetrisch sein, wodurch der Stromverbrauch weiter reduziert wird. 3f ist ein veranschaulichendes Blockdiagramm, in dem die Segmente eines über differentielle Signalübertragung angebundenen verteilten FIFO-Puffers, was zu einem niedrigeren Stromverbrauch und höheren Übertragungsraten führt. In dieser Ausführungsform kann die Schnittstelle zwischen den Segmenten ferner in einer parallelen Differentialkonfiguration vorliegen, wodurch die Übertragungsrate über eine serielle Differentialschnittstelle erhöht wird.
  • In einem realistischen Szenario kann die Wahrscheinlichkeit des Schreibens auf einem ersten Teil der verteilten FIFO-Puffer höher sein als die des Schreibens auf einem zweiten Teil der verteilten FIFO-Puffer, usw. In einem Ausführungsbeispiel gilt p1 = 0,8, P2 = 0,1, p3 = 0,04 und p4 = 0,01. In diesem Fall, sofern auf den Segmenten 2, 3 und 4 zu schreiben wäre, erschienen die zur Beladung der Segmente erforderliche zusätzliche Kapazität sowie der zusätzliche Energieverbrauch als Spitzen im Stromsignal.
  • Zur weiteren Erläuterung des reduzierten Energieverbrauchs eines verteilten FIFO-Puffers wird eine mathematische Ableitung gezeigt, in der der Energieverbrauch eines herkömmlichen FIFO-Puffers und der eines verteilten FIFO-Puffers, die jeweils in einem Multi-Hop-Netzwerk, das einem Raumschalter eine Ausgabe zuleitet, miteinander verglichen werden. Der Energieverbrauch eines herkömmlichen FIFO-Puffers lässt sich wie folgt darstellen:
    Figure 00130001
    wobei N die Anzahl zu schreibender Wörter, CL die gesamte Leitungskapazität (einschließlich N Segmente), CS die Kapazität eines einzelnen Segments und VDD den Signalspannungspegel darstellt.
  • Zur Ermittlung des Energieverbrauchs eines verteilten FIFO-Puffers nach einer Ausführungsform der vorliegenden Erfindung wird davon ausgegangen, dass die zum Schreiben eines einzigen Worts erforderliche Energie zwei Komponenten umfasst. Bei der ersten Komponente handelt es sich um die zum Schreiben in den verteilten FIFO-Puffer erforderliche Energie, und bei der zweiten Komponente handelt es sich um die zur Übertragung eines Datenworts auf das äußere Ende des verteilten FIFO-Puffers erforderliche Energie. Dementsprechen lässt sich der Energieverbrauch eines verteilten FIFO-Puffers wie folgt darstellen:
    Figure 00130002
    wobei N die Anzahl zu schreibender Wörter, CL die Leitungskapazität und k die k-ste Datenquelle mit variabler Geschinwindigkeit darstellt, die den verteilten FIFO beliefert. Für eine einheitliche Verteilung der Übertragungswahrscheinlichkeit, wobei jedes Segment mit gleicher Wahrscheinlichkeit ein Wort überträgt, ist die Wahrscheinlichkeit des Übertragungs eines Wortes durch jedes Segment aus einer Gesamtmenge von N Wörtern p = 1/N – 1.
  • So gesehen lässt das Verhältnis des Energieverbrauchs eines verteilten FIFO-Puffers zum Energieverbrauch eines konzentrierten FIFO-Puffers wie folgt darstellen:
    Figure 00140001
    wobei k die Anzahl Datenquellen mit variabler Geschwindigkeit und der Faktor (N – k)·CL die Kapazität der eingeschlossenen Segmente darstellt. Aufgrund der zur Be- bzw. Entladung beim Schreiben auf einem Puffer erforderlichen geringeren Kapazität lässt sich VDD2 als (1 – κ)·VDD darstellen. Die Größe κ ist ein Faktor, der die Reduzierung der Speisespannung im Falle der Einfgung eines verteilten FIFO gegenüber einem herkömmlichen FIFO berücksichtigt.
  • Sollten die Kapazitätsausdrücke im Zähler des Energieverbrauchsverhältnisses vorherrschen, ist die zum Schreiben auf dem verteilten FIFO erforderliche Energie geringer als die zur Übertragung der Daten erforderliche Energie um den Faktor B, wobei B ≤ 0,5. So kann die Gleichung 8 wie folgt weiter vereinfacht werden:
    Figure 00140002
  • Unter Ausgleich von VDD 2 aus dem Nenner und Zähler des ersten Ausdrucks ergibt sich dann:
    Figure 00140003
  • Im Falle einer großen Menge N verteilter FIFO-Segmente gilt κ ≈ 0,9, und dementsprechend liegt das Energieverbrauchsverhältnis bei etwa 0,81 × 0,5 × 1,5 = 0,6. Mit anderen Worten lässt sich eine 40%ige Reduktion des Energieverbrauchs durch den Einsatz verteilter FIFO-Puffer mit einer großen Anzahl Segmente erzielen. Zusammengefasst heißt dies, dass für eine einheitliche Verteilung der Übertragungswahrscheinlichkeit ein verteilter FIFO-Puffer mit Leitungssegmenten zwischen den Puffer zur Datenübertragung weniger Strom benötigt als ein herkömmlicher FIFO-Puffer mit einer einzigen, längeren Übertragungsleitung.
  • In einer Ausführungsform wandeln die verteilten FIFO-Eingabepuffer die digitalen Datenstichproben mit variabler Frequenz (z. B. 8 MHz) in digitale Stichproben mit fester Frequenz um. Die feste Frequenz kann eine Frequenz von 25 MHz sein. Die feste Frequenz kann eine mit dem Raumschalterblock vereinbare Frequenz sein. Der Raumschalterblock leitet den i-sten ADC-Kanal dem Kern zu. Der Raumschalterblock kann mehrere unabhängige Kanäle unterstützen. Beispielsweise kann der Raumschalterblock Eingaben von 8 ADC empfangen und die 8 Eingaben gleichzeitig dem jeweiligen Kern zuleiten. Zur weiteren Reduzieren des Energieverbrauchs können die auf den Leitungssegmenten zwischen den Puffer übertragenen Daten auf Gray-Codierung oder Bitumkehrung basieren. Dementsprechen können die verteilten FIFO-Segmenten in einer weiteren Ausführungsform mit einem Pegelwandler verbunden sein, der stromsparende Gray-codierte Codierer und Decodierer einsetzt.
  • 3g zeigt ein Zeitdiagramm 330 für die Komponenten der Eingabeblöcke 104 der 1 und 2. Das Zeitdiagramm 330 zeigt einen ADC-Write-Clock 332, der die Geschwindigkeit, mit der die Daten in verteilte FIFO-Eingabepuffer geschrieben werden, bestimmt, ein entsprechendes ADC-Ausgabedatensignal 334, der die
    in die verteilten FIFO-Eingabepuffer geschriebenen Daten darstellt, einen entsprechenden Read-Clock 336 eines verteilten FIFO-Eingabepuffers, der mit der Schaltuhr des Schalters 106 übereinstimmt und einen Read-Clock 338 des Schalters, der das Ablesen von Daten aus den verteilten FIFO-Eingabepuffern durch den Schalter 106 andeutet.
  • Wie in 1 und 2 gezeigt wird jede Ausgabe (digitale Datenstichproben mit einer Frequenz von 25 MHz und einer Spannung zwischen 0 und 1 V) des Raumschalterblocks einem verteilten FIFO-Ausgabepuffer zugespeist. Da jeder Kern des Multicore-Prozessors mit einer anderen Frequenz funktioniert, wandelt der verteilte FIFO-Ausgabepuffer die digitalen Datenstichproben mit fester Frequenz in eine mit dem entsprechenden Kern des Multicore-Prozessors vereinbare Frequenz um.
  • 3h ist ein veranschaulichendes Blockdiagramm verteilter FIFO-Puffersegmente 340, 342, jeweils umfassend zwei Speicherelemente, die über einen Interconnectbus 346 miteinander verbunden sind. In dieser Ausführungsform weist jedes Segment einen 3-Bit-Identifier auf, wobei das erste Bit die Segmentnummer darstellt und das zweite und dritte Bit die Stellen innerhalb des Segments darstellen. 3i ist ein veranschaulichendes Flussdiagramm des Fortschritts eines Datums durch die verteilten Puffersegmente (für jedes der beiden Speicherelemente) zum Schalterblock 106. Wie gezeigt wird das Datum auf das nächste Segment übertragen, sobald ein Puffersegment voll ist.
  • Hierbei ist anzumerken, dass jeder Kern selbst mit den verschiedenen Frequenzen funktioniert, und die verschiedenen Kerne mit verschiedenen Frequenzen funktionieren, da jeder Kern auf eine bestimmte Spannung und Frequenz durch einen DVFS-Controller abgestimmt ist. Ferner werden die von den verteilten FIFO-Ausgabepuffern ausgegebenen digitalen Datenstichproben einem Pegelwandler zugespeist. Der Pegelwandler wandelt die mit den digitalen Datenstichproben verbundene Spannung (0 bis 1 V) in eine mit dem entsprechenden Kern des Multicore-Prozessors vereinbare Spannung um. Die digitalen Datenstichproben, die eine geeignete Frequenz und Spannung aufweisen, kommen in die Warteschlange des Reorder-Puffers.
  • 4a ist ein veranschaulichendes Blockdiagramm 400 eines über einen Reorder-Puffer 404 an einen Prozessorkern 406 gekoppelten FIFO-Ausgabepuffers 402. Der Reorder-Puffer ist fakultativ, und die Stromdatenschnittstellenschaltung benötigt u. U. keinen Reorder-Puffer; stattdessen werden in diesem Fall die digitalen Datenstichproben aus dem Pegelwandler direkt an den entsprechenden Kern des Multicore-Prozessors weitergeleitet. Die Wichtigkeit eines Reorder-Puffers nach dem Pegelwandler besteht darin, dass der Reorder-Puffer die Verarbeitung anstehender digitaler Datenstichproben durch den entsprechenden Kern in einer anderen Reihenfolge (Departure- oder Ablesesequenz) als die Schreib- bzw. Arrival-Sequenz (mit der die Stichproben geschrieben wurden) ermöglicht. 4b ist eine schematische Darstellung eines Beispiels eines Reorder-Puffers, der eine Schreibzeigerein- und -ausgabe aufweist. 4c zeigt dementsprechend ein Beispiel eines Reorder-Puffers, in der die Umordnung der Schreibzeigereingabe für Ausgabe gezeigt wird. 4d ist ein Veranschaulichungsbeispiel des Schreibens und Ablesens eines Reorderpuffers, der N Eingangsports und N Ausgangsports aufweist. In einer weiteren Ausführungsform können die Reorder-Puffer unter Einsatz von Multiplexern 108a überbrückt werden, wie in 4e gezeigt.
  • Wenn jedoch die Sequenz der digitalen Datenstichproben unwichtig ist, kann der Reorder-Puffer aus der Datenschnittstellenschaltung ausgelassen werden. Auf diese Weise werden die digitalen Datenstichproben aus den ADC von der Datenschnittstellenschaltung verarbeitet, die die verarbeiteten Datenstichproben dem entsprechenden Kern des Multicore-Prozessors zur Verarbeitung zuleitet.
  • 5 ist ein veranschaulichendes Blockdiagramm eines Ausgabepufferblocks mit Fehlercodekorrektur (ECC) und niedrigerem Stromverbrauch. In einer Ausführungsform codiert der Schalterblock 106 (durch den in 5a gezeigten Codiererblock 502) die empfangenen Daten als Eingabe (Pfad 116) in einen Datenstring, um die Anzahl Bitübergänge zu minimieren. Dies hat den Vorteil eines geringeren Stromverbrauchs bei der Datenübertragung (aufgrund der reduzierten Anzahl Bitübergänge). In einer Ausführungsform wendet der Codiererblock 502 Run-Length-Codierung an. In einer weiteren Ausführungsform wendet der Codiererblock 502 Gray-Codierung an.
  • Um eine zuverlässigere Datenübertragung auf die Zielgeräte zu gewährleisten, können die Datenschnittstellenschaltungen 100 und 200 der 1 und 2 jeweils so konstruiert werden, dass das Daten-Striping-Verfahren anwenden. Wie in 5a gezeigt, werden die von einer einzigen Datenquelle (z. B. ADC) ermpfangenen logisch sequentiellen Daten über den Schalterblock 106 mehreren Ringspeichern (FIFO) im Ausgabepufferblock zugeleitet, d. h. aufeinander folgende Datenwörter m, m + 1, m + 2 bis hin zu m + k aus der Datenquelle werden über das FIFO-Array im Ausgabepufferblock gestript.
  • In 5a wird davon ausgegangen, dass die Daten über vier der FIFO im Ausgabepufferblock gestript werden, wobei aufeinander folgende Datenwörter (oder allgemein Dateneinheiten) m, m + 1, m + 2 und m + 3 aus derselben Quelle durch den Schalterblock 106 vier verschiedenen FIFO zugeleitet werden. Der entsprechende Kern (im Beispiel MP1) kann die schließlichen Datenwörter aufgrund der Information, dass die erste Dateneinheit in die 2. Stelle des ersten FIFO, die 2. Dateneinheit in die 3. Stelle des zweiten FIFO geschrieben wird, usw. wiederherstellen.
  • Der ECC-FIFO im Ausgabepufferblock 108 speichert einen vom Codiererblock 502 empfangenen Fehlerkorrekturcode (z. B. Paritätsbits), der den vier Dateneinheiten m bis m + 3 entspricht, und ermöglicht eine Vorwärtsfehlerkorrektur (FEC) im Kern MP1 selbst dann, wenn die Fehler in einer oder mehreren der vier Dateneinheiten auftreten. Mehr als ein ECC-FIFO kann vorgesehen werden, um Daten aus mehreren ADC aufnehmen zu können. Ähnlich den obigen Ausführungen können die Codierung und das Daten-Striping für Daten erfolgen, die aus allen Datenquellen empfangen werden.
  • In einer Ausführungsform enthält der Eingabeblock 104 der Datenschnittstellenschaltung 100 der 1 einen Parallel-zu-Seriell-Umwandler 602, einen Seriell-zu-Parallel-Umwandler 608 sowie Differentialrepeater 604 und 606, wie in 6 gezeigt. Der Parallel-zu-Seriell-Umwandler 602 empfangt Daten im Parallelformat aus einer Daten quelle und gibt die Daten in serieller Differentialform wieder aus. Die Daten in serieller Differentialform können über meherere Differentialrepeaterstufen (in 6 als mehrstufiger Differentialrepeater 604 dargestellt) übertragen und in asymmetrische Form durch einen differential-asymmetrischen Umwandler 606 in asymmetrische Form umgewandelt werden. Der Seriell-zu-Parallel-Umwandler 608 wandelt die asymmetrische Ausgabe des differential-asymmetrischen Umwandlers 606 um und leitet die Daten im Parallelformat dem Eingabepufferblock zu. In 6 werden Verbindungen gezeigt, die nur einem Datenpfad entsprechen und für soviele Datenquellen/-pfade nachgemacht werden wie die Datenschnittstellenschaltung 100 sie unterstützt. Der Stromverbrauch wird aufgrund der bei der Übertragung der Daten in differentiell-serieller Form eingesetzten stromsparenden Signalübertragung reduziert. In einer Ausführungsform wird die Energieeinsparung bei minimaler Komplexität optimiert, wenn die Anzahl Prozessoren im Prozessorblock 110 zwischen sechs und acht liegt.
  • 7a ist ein Ausführungsbeispiel 700 des Schalterblocks 106, der eine N-mal-N-Kreuzschiene 704 verwendet. Die N-×-N-Kreuzschiene 704 empfangt Eingaben über einen Datenpfad 114 und gibt über die Datenpfade 116 eine Ausgabe aus. In dieser Ausführungsform wird der Schalterblock 106 als nichtblockierender Schalter ausgeführt, d. h., er verfügt jederzeit im Betrieb über genügend freie Pfade, dass eine Eingabe immer an der Ausgabe geliefert werden kann. Unter der Voraussetzung, dass die Datenpfade 114 und 116 jeweils N Unterfpade enthalten (die jeweils so breit sind wie die Datenbreite der Datenquelle (ADC)), kann ein beliebiger Unterpfad in den Eingabepfaden 114 mit einem gewünschten Unterpfad in den Ausgabedatenpfaden 116 verbunden werden. Der Betrieb der Schalter SW1 bis SWn im Ausführungsbeispiel führt zur Verbindung des IN-Unterpfades 1 mit einem beliebigen Unterpfad in den Datenpfaden 116. 7b zeigt eine 4×4-Kreuzschiene 730 mit den Ein- und Ausgangsports, und 7c zeigt die 4×4-Kreuzschiene 730 mit zwei gleichzeitigen Datenflüssen. Wie gezeigt, ermöglicht es eine Ausführungsform der Kreuzschiene, dass ein beliebiger der N Eingabeports mit einem beliebigen der N Ausgabeports verbunden wird, und ermöglicht so das Bestehen mehr als einer Verbindung auf einmal. Die N×N-Kreuzschiene 704 der 7a kann eine erweiterte Ausführung der 4×4-Kreuzschiene 730 sein.
  • Ein weiteres Ausführungsbeispiel des Schalterblocks 106 mit einem Shuffle-Exchange-Netzwerk (S/E) 800 zeigt 8a. In einer Ausführungsform kann das S/E-Netzwerk 800 mit Kreuzschienen ausgeführt werden. In dieser Ausführung ermöglicht es das S/E-Netzwerk, dass ein beliebiger Eingabeknoten mit einem beliebigen Ausgabeknoten verbunden wird, und ermöglicht so die Herstellung einer großen Anzahl gleichzeitiger Verbindungen. Jede Kreuzschiene ermöglicht die Leitung mehrerer Ströme innerhalb des Shuffle-Exchange-Netzwerks. 8b ist ein Beispiel eines Datenpfads der Ausführung des Schalterblocks als S/E-Netzwerk.
  • Der als S/E-Netzwerk ausgeführte Schalterblock 106 hat den Vorteil eines geringeren Stromverbrauchs im Vergleich zur Ausführung als Kreuzschiene; diese Ausführung weist ebenfalls eine bessere Skalierbarkeit auf, die die Aufnahme von mehr Prozessorkernen und Eingabedatenquellen ermöglicht. Gemäß noch einer Ausführungsform kann der Schalterblock 106 als Benes-Netzwerk ausgeführt werden. Um die Funktionsfähigkeit der Datenschnittstellenschaltung 100 der 1 noch weiter zu verbessern, kann eine Ditherstufe am Eingabeblock 104 oder dem Ausgabeblock 108 eingefügt werden.
  • 9 ist ein Blockdiagramm eines Beispiels einer Rechenvorrichtung 900, die erfindungsgemäß für Datenschnittstellen-Multipath-Routing angeordnet ist. In einer sehr rudimentären Konfiguraton 901 umfasst die Rechenvorrichtung 900 typischerweise einen oder mehrere Prozessoren 910 und einen Systemspeicher 920. Ein Speicherbus 930 kann zur Kommunikation zwischen dem Prozessor 910 und dem Systemspeicher 920 eingesetzt werden.
  • Je nach der gewünschten Konfiguration kann es sich beim Prozessor 910 um einen Prozessor einer beliebigen Art, insbesondere um einen Mikroprozessor (μP), einen Mikrocontroller (μθ), einen digitalen Signalprozessor (DSP), oder eine beliebigen Kombination davon handeln. Der Prozessor 910 kann eine oder meherere Zwischenspeicherstufen umfassen, z. B. eine Cache einer ersten Stufe 911 und eine Cache einer zweiten Stufe 912, einen Prozessorkern 913 und Register 914. Der Prozessorkern 913 kann ein Rechenwerk (ALU), einen Fließkommaprozessor (FPU), einen DSP-Kern oder eine beliebige Kombination davon umfassen. Ein Speichercontroller 915 kann auch mit dem Prozessor 910 eingesetzt werden, oder aber kann es sich beim Speichercontroller 915 in einigen Ausführungen um einen internen Teil des Prozessors 910 handeln.
  • Je nach der gewünschten Konfiguration kann es sich beim Systemspeicher 920 um einen Systemspecicher einer beliebigen Art, insbesondere um einen flüchtigen Speicher (z. B. RAM), nicht flüchtigen Speicher (z. B. ROM, Flash-Speicher, usw.), oder eine beliebigen Kombination davon handeln. Typischerweise umfasst der Systemspeicher 920 ein Betriebssystem 921, eine oder mehrere Anwendungen 922 und Programmdaten 924. Die Anwendung 922 umfasst einen Multipath-Datenschnittstellenverarbeitungsalgorithmus 923, der bis ... angeordnet ist. Die Programmdaten 924 umfassen Multipath-Routing-Daten 925 der Datenschnittstelle, die zur Unterstützung der Datenerfassung aus einer großen Anzahl Quellen mit verschiedenen Spannungsbereichen und Frequenzen nützlich ist, wie weiter unten beschrieben wird. In einigen Ausführungsbeispielen kann die Anwendung 922 derart angeordnet werden, dass sie mit Programmdaten 924 auf einem Betriebssystem 921 funktioniert, so dass eine große Anzahl Quellen mit verschiedenen Spannungsbereichen und Frequenzen unterstützt werden kann. Diese beschriebene Grundkombination wird in 9 durch die Komponenten innerhalb der gestrichelten Linie 901 veranschaulicht.
  • Die Rechenvorrichtung 900 kann weitere Merkmale oder Funktionen, sowie zusätzliche Schnittstellen zur Ermöglichung der Kommunikation zwischen der Grundkonfiguration 901 und etwaigen erforderlichen Geräten und Schnittstellen aufweisen. Beispielsweise kann ein Bus-/Schnittstellencontroller 940 zur Ermöglichung der Kommunikation zwischen der Grundkonfiguration 901 und einem oder mehreren Datenspeichergeräten 950 über einen Speicherschnittstellenbus 941 eingesetzt werden. Bei den Datenspeichergeräten 950 kann es sich um Wechselspeicher 951, nicht-entfernbare Speichergeräte 952 oder eine Kombination davon handeln. Beispiele von Wechsel- und nicht erntfernbaren Speichergeräten sind insbesondere Magnetplattengeräte wie z. B. Diskettenlaufwerke und Festplatten (HDD), optische Laufwerke wie z. B. CD-Laufwerke oder DVD-Laufwerke, Solid-State-Laufwerke (SSD) und Bandlaufwerke. Zu Beispielen von Computerspeichermedien gehören insbesondere flüchtige und nicht flüchtige, abnehmbare und nicht abnehmbare Medien, die in einem beliebigen Verfahren bzw. Technologie zur Speicherung von Informationen wie z. B. computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und sonstigen Daten ausgeführt sind.
  • Der Systemspeicher 920, der Wechselspeicher 951 und der nicht abnehmbare Speicher 952 sind alle Beispiele von Computerspeichermedien. Zu den Computerspeichermedien gehören insbesondere RAM, ROM, EEPROM, Flash-Speicher oder eine sonstige Speichertechnologie, CD-ROM, DVD oder sonstige optische Speichergeräte, Magnetkassetten, Magnetbänder, Plattenspeicher oder sonstige magnetische Speichergeräte sowie ein beliebiges anderes Medium, das zur Speicherung der gewünschten Daten engesetzt werden kann und auf den die Rechenvorrichtung 900 zugreifen kann. Ein beliebiges Computerspeichermedium dieser Art kann Teil der Vorrichtung 900 sein.
  • Die Rechenvorrichtung 900 kann auch einen Schnittstellenbus 942 zur Kommunikation verschiedener Schnittstellengeräte (z. B. Ausgabeschnittstellen, Peripherieschnittstellen und Kommunikationsschnittstellen) mit der Grundkonfiguration 901 über den Bus-/Schnittstellencontroller 940 umfassen. Zu den Ausgabeschnittstellen 960 gehören insbesondere Graphikprozessoren 961 und Audioprozessoren 962, die derart konfiguriert werden können, dass sie über einen oder mehrere A/V-Ports 963 mit verschiedenen externen Geräten, z. B. Anzeige oder Lautsprecher, kommunizieren können. Zu den Peripherieschnittstellen 960 gehören insbesondere serielle Schnittstellencontroller 971 oder parallele Schnittstellencontroller 972, die derart konfiguriert werden, dass sie über einen oder mehrere I/O-Ports 973 mit externen Geräten (z. B. Tastatur, Maus, Stift, Spracheingabegerät, Touch-Eingabegerät, usw.) oder sonstigen Peripheriegeräten kommunizieren können. Zu den Beispielen von Kommunikationsschnittstellen 980 gehören insbesondere Netzwerkcontroller 981, die derart angeordnet werden können, dass sie die Kommunikation mit einer oder mehreren Rechenvorrichtungen 990 über eine Netzwerkkommunikation über einen oder mehrere Kommunikationsports 982 ermöglichen. Die Kommunikationsverbindung ist ein Beispiel eines Kommunikationsmediums. Kommunikationsmedien sind typischerweise durch computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder sonstige Daten in einem modulierten Datensignal, z. B. Trägerwellen oder sonstige Übertragungsmechanismen, verkörpert; hierzu gehört ein beliebiges Datenübertragungsmedium. Bei einem ”modulierten Datensignal” kann es sich um ein Signal handeln, bei dem ein oder mehrere Merkmale derart eingestellt bzw. verändert werden, dass sie in das Signal Daten codieren. Beispielsweise gehören zu den Kommunikationsmedien insbesondere drahtgebundene Medien, z. B. drahtgebundene Netzwerk bzw. direkt verdrahtete Verbindung, sowie drahtlose Medien, z. B. akustische, Radiofrequenz-(RF), Infrarot-(IR) und sonstige drahtlose Medien. Unter ”computerlesbares Medium” können vorliegend sowohl Speicher- als auch Kommunikationsmedien verstanden werden.
  • Die Rechenvorrichtung 900 kann als Teil eines tragbaren (bzw. mobilen) elektronischen Small-Form-Factor-Geräts wie z. B. ein Handy, PDA, PMP, ein drahtloses Web-Watch-Gerät, ein persönliches Kopfhörergerät, ein anwendungsspezifisches Gerät oder ein hybrides Gerät, in das beliebige der vorstehenden Funktionen integriert sind, ausgeführt werden. Die Rechenvorrichtung 900 kann auch als PC ausgeführt werden, wobei sowohl Notebook- als auch Desktop-Konfigurationen zulässig sind. Vorliegend ist der Ausdruck ”eine Ausführungsform” o. ä. dahingehend auszulegen, dass ein in Verbindung mit der Ausführungsform beschriebenes bestimmtes Merkmal bzw. Struktur in mindestens einer Ausführungsform vorliegt. Der Ausdruck ”in einer Ausführungsform” o. ä. beziehen sich also nicht unbedingt auf dieselbe Ausführungsform.
  • Vorliegend sind zwar verschiedene Aspekte und Ausführungsforme offenbart worden; weitere Aspekte und Ausführungsformen sind jedoch für den Fachmann ersichtlich. Die vorliegend beschriebenen verschiedenen Aspekte und Ausführungsformen dienen lediglich der Veranschaulichung, und sind nicht als Einschränkung aufzufassen; der wahre Umfang der Erfindung geht aus den nachfolgenden Patentansprüchen hervor.
  • Die vorliegende Erfindung wird nicht durch die einzelnen vorliegend beschriebenen Ausführungsformen beschärnkt; diese sollen lediglich verschiedene Aspekte veranschaulichen. Zahlreiche Modifikationen und Varianten der Erfindung können vom Fachmann ohne Abweichung vom Geist und Umfang der Erfindung ausgeführt werden. Funktional gleichwertige Verfahren und Vorrichtungen innerhalb des Umfangs der Beschreibung sind neben den vorliegend aufgezählten dem Fachmann aufgrund der vorstehenden Beschreibung ersichtlich. Derartige Modifikationen sollen vom Umfang der beigefügten Patentansprüche mit umfasst werden. Deshalb wird die Erfindung lediglich durch den Wortlaut der beigefügten Patentansprüche sowie den vollen Umfang der den Patentansprüchen entsprechenden Äquivalenten eingeschränkt. Hierbei versteht sich, dass die vorliegende Beschreibung nicht auf konkrete Methoden, Reagenzien, Verbindungen, Zusammensetzungen oder biologische Systeme beschränkt; diese können natürlich variieren. Ebenfalls versteht sich, dass die vorliegend verwendeten Begriffe lediglich der Beschreibung einzelner Ausführungsformen dienen und nicht als Einschränkung gelten soll.
  • Hinsichtlich der Verwendung im Wesentlichen jeder Plural- bzw. Singularform kann der Fachmann dem Zusammenhang und/oder der Anwendung entsprechend die Plural- und Singularformen austauschen (und umgekehrt). Die verschiedenen Singular/Pluralvarianten können der Klarheit halber vorliegend ausdrücklich erwähnt werden.
  • Dem Fachmann ist klar, dass die vorliegend verwendeten Begriffe generell, und besonders die in den beigefügten Patentansprüchen (z. B. beigefügte Patentanspruchsgruppen) verwendeten Begriffe generell als ”offene” Begriffe gelten sollen (z. B. ”einschließlich” o. ä. ist ohne Einschränkung aufzufassen; ”aufweisen” ist als ”mindestens aufweisen” zu verstehen, usw.). Ferner versteht der Fachmann, dass, sofern eine konkrete Anspruchsnummer gemeint ist, diese ausdrücklich im Anspruchswortlaut erwähnt wird, und ansonsten keine derartige Absicht vorliegt. Zum besseren Verständnis können die nachfolgend beigefügten Patentansprüche die einleitenden Ausdrücke ”mindestens ein” und ”ein oder mehrere” zur Einleitung von Bestandteile der Ansprüche enthalten. Die Verwendung dieser Ausdrücke ist jedoch nicht dahingehend auszulegen, dass die Einleitung eines Anspruchsteils durch die unbestimmten Artikel ”ein(e)” einen bestimmten diese enthaltenen Anspruch auf Ausführungsformen mit nur einem der aufgeführten Gegenstande beschränken soll, und zwar selbst dann, wenn derselbe Anspruch die Einleitungsausdrücke ”ein(e) oder mehrere” oder ”mindestens eine(e)” und unbestimmte Artikel wie ”ein(e)” (z. B. ”ein(e)” ist als ”mindestens ein(e)” oder ”ein(e) oder mehrere”) aufzufassen) enthält; gleiches gilt für die Verwendung der bestimmten Artikel zur Einleitung von Anspruchsteilen. Ferner gilt: Selbst wenn eine konkrete Anzahl eines eingeleiteten Anspruchsteils ausdrücklich aufgeführt wird, erkennt der Fachmann, dass diese Aufführung dahingehend auszlegen ist, dass mindestens die aufgeführte Anzahl gemeint ist (z. B. die bloße Aufzählung ”zwei Teile” ohne weitere Modifikation heißt mindestens zwei Teile, oder zwei oder mehr Teile). Ausserdem gilt: In den Fällen, in denen ein Ausdruck wie ”mindestens ein(e) von A, B und C” usw. verwendet wird, ist der Ausdruck generell so aufzufassen, wie es vom Fachmann verstanden würde (z. B. ”ein System, das mindestens eines von A, B und C aufweist” schlöße insbesondere Systeme mit nur A, nur B, nur C, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen, usw. mit ein). In den Fällen, in denen ein Ausdruck wie ”mindestens ein(e) von A, B oder C” usw. verwendet wird, ist der Ausdruck generell so aufzufassen, wie es vom Fachmann verstanden würde (z. B. ”ein System, das mindestens eines von A, B oder C aufweist” schlöße insbesondere Systeme mit nur A, nur B, nur C, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen, usw. mit ein). Ferner versteht der Fachmann, dass beinahe jeder trennende Audruck, in dem zwei oder mehr alternative Begriffe enthalten sind, gleich ob in der Beschreibung, den Ansprüchen oder den Zeichnungen so zu verstehen ist, dass die Möglichkeit des Vorliegens eines der Begriffe, jedwedes der Begriffe oder beider Begriffe besteht. Beispielsweise ist ”A oder B” so zu verstehen, dass ”A” oder ”B” oder ”A und B” umfasst sind.
  • Ausserdem: Werden Merkmale oder Aspekte der Beschreibung als Markush-Gruppen beschrieben, erkennt der Fachmann, dass die Beschreibung hinsichtlich eines beliebigen einzelnen Mitglieds oder einer beliebigen einzelnen Untergruppe von Mitgliedern der Markush-Gruppe beschrieben wird.
  • Der Fachmann versteht, dass in jedem Sinne, z. B. im Sinne einer schriftlichen Beschreibung, alle vorliegend beschriebenen Bereiche ebenfalls alle möglichen Unterbereiche und Kombinationen von Unterbereichen umfassen. Jeder aufgeführte Bereich ist ohne weiteres als hinreichende Beschreibung und Ermöglichung der Einteilung des Bereichs in mindestens gleiche Hälften, Dritte, Viertel, Fünftel, Zehntel, usw. erkennbar. Als nichteinschränkendes Beispiel lässt sich jeder vorliegend beschriebene Bereich in ein unteres Drittel, mittleres Drittel und oberes Drittel, usw. einteilen. Dem Fachmann ist ebenfalls bekannt, dass alle Ausdrücke wie z. B. ”bis”, ”mindestens”, ”größer”, ”kleiner” u. dgl. den aufgeführten Zahlenwert umfassen und Bereiche bezeichnen, die anschließend, wie oben beschrieben, in Unterbereiche eingeteilt werden können. Schließlich ist dem Fachmann bekannt, das ein Bereich jedes einzelne Glied umfasst. So sind z. B. unter einer Gruppe mit 1 bis 3 Zellen auch Gruppen mit 1, 2 oder 3 Zellen zu verstehen. Ebenfalls sind z. B. unter einer Gruppe mit 1 bis 5 Zellen auch Gruppen mit 1, 2, 3, 4 oder 5 Zellen, usw. zu verstehen.
  • Vorliegend sind zwar verschiedene Aspekte und Ausführungsforme offenbart worden; weitere Aspekte und Ausführungsformen sind jedoch für den Fachmann ersichtlich. Die vorliegend beschriebenen verschiedenen Aspekte und Ausführungsformen dienen lediglich der Veranschaulichung, und sind nicht als Einschränkung aufzufassen; der wahre Umfang der Erfindung geht aus den nachfolgenden Patentansprüchen hervor.

Claims (20)

  1. Integrierte Schaltung, umfassend: eine Mehrzahl Eingabedatenschnittstellen, wobei jede Eingabedatenschnittstelle mit einer Datenquelle mit variabler Geschwindigkeit und einem Datenschalter verbunden ist, und jede Eingabedatenschnittstelle ferner Spannungspegelwandler und verteilte FIFO-Elemente umfasst; eine Mehrzahl Ausgabedatenschnittstellen, wobei jede Ausgabedatenschnittstelle mit einer Schnittstelle von einer Mehrzahl datenverbrauchender Prozessoren verbunden ist, und jede Ausgabedatenschnittstelle ferner verteilte FIFO-Elemente und Neuordnungs(Reorder)-Puffer umfasst; und einen ersten Raumschalter und einen zweiten Raumschalter, die jeweils die Mehrzahl Eingabedatenschnittstellen mit der Mehrzahl Ausgabedatenschnittstellen verkoppeln, ferner umfassend eine Mehrzahl Schnittstellen, die mehrere gleichzeitige Verbindungen zwischen Eingabe- und Ausgabeports des Raumschalters herstellen können, wobei der Raumschalter eine Anzahl Eingangsports, die der Anzahl Eingabedatenschnittstellen gleich ist, und eine Anzahl Ausgagngsports, die der Anzahl Ausgabedatenschnittstellen gleich ist, aufweist, wobei die Bitbreite jedes Eingangsports auf dem Raumschalter mit der Bitbreite jeder Eingabeschnittstelle übereinstimmt, wobei die Bitbreite jedes Ausgangsports am Raumschalter mit der Bitbreite jeder Ausgabeschnittstelle übereinstimmt, und wobei der zweite Raumschalter als Ersatz des ersten Raumschalters im Falle seines Ausfalls aktiviert wird.
  2. Integrierte Schaltung nach Anspruch 1, wobei ein oder mehrere der datenverbrauchenden Prozessoren auf einer ersten physikalischen Siliziumschicht angeordnet sind und über eine Kombination aus Verbindungsverdrahtung und TSV (Through Silicon Vias) mit den auf einer zweiten physikalischen Siliziumschicht angeordneten entsprechenden Ausgabeschnittstellen verbunden sind.
  3. Integrierte Schaltung nach Anspruch 1 oder 2, wobei die Eingabedatenschnittstellen ferner eine Mehrzahl FIFO-Puffer, von denen jeder an einen der Spannungspegelwandler gekoppelt ist, umfassen, wobei die FIFO-Puffer jeweils einen oder mehrere Unterblöcken umfassen, die ein verteiltes FIFO-Element bilden.
  4. Integrierte Schaltung nach Anspruch 3, wobei die variablen Datenquellen und das verteilte FIFO-Element über die Spannungspegelwandler miteinander verkoppelt sind.
  5. Integrierte Schaltung nach Anspruch 3, wobei jedes verteilte FIFO-Element eine andere physikalische Stelle auf einem Siliziumchip einnimmt und ferner eine oder mehrere Speicherstellen umfasst.
  6. Integrierte Schaltung nach Anspruch 1 oder 2, wobei jeder Spannungspegelwandler im single-ended-Betrieb verbunden ist, wo er unipolare oder bipolare digitale Signale in einen mit den verteilten FIFO-Elementen vereinbaren Spannungspegel umwandeln kann.
  7. Integrierte Schaltung, umfassend: eine Mehrzahl Eingabeschnittstellen, umfassend Eingabespannungspegelwandler sowie über Leitungssegmente miteinander verbundene verteilte FIFO-Eingabeelemente, wobei jede Eingabeschnittstelle an eine Datenquelle mit variabler Geschwindigkeit einer Mehrzahl Datenquellen mit variabler Geschwindigkeit gekoppelt ist, von denen jede die gleiche oder unterschiedliche Logikebenen aufweist; und einen an die Mehrzahl Eingabeschnittstellen gekoppelten Raumschalter, der mehrere nichtblockierende Verbindungen zu einer Mehrzahl Ausgabeschnittstellen herstellt, die durch Leitungen reihengeschaltete Ausgabespannungspegelwandler, verteilte FIFO-Elemente und Reorder Puffer umfassen.
  8. Integrierte Schaltung nach Anspruch 7, wobei die verteilten FIFO-Elemente auf einer aktiven Siliziumschicht einer zweidimensionalen integrierten Schaltung ausgeführt werden können.
  9. Integrierte Schaltung nach Anspruch 7, wobei die verteilten FIFO-Elemente auf verschiedenen Schichten einer dreidimensionalen integrierten Siliziumschaltung ausgeführt werden können.
  10. Integrierte Schaltung nach Anspruch 7, wobei die Ausgabeschnittstellen an Datensenken gekoppelt sind, die ferner eine Mehrzahl auf demselben Chip wie die integrierte Schaltung oder auf einem von der integrierten Schaltung getrennten Chip ausgeführter multipler Prozessorkerne umfassen können.
  11. Integrierte Schaltung nach Anspruch 7, wobei der Raumschalter einen Fixpunkt-Raumschalter umfasst, wobei die Eingabe- und Ausgabeschnittstellen des Raumschalters ferner Mantissenbits mit Breiten, die größer oder gleich 1 sind, umfassen können.
  12. Integrierte Schaltung nach Anspruch 7, wobei der Raumschalter einen Floating-Point-Raumschalter umfasst, wobei die Eingabe- und Ausgabeschnittstellen des Raumschalters ferner Mantissenbits mit Breiten, die größer oder gleich 1 sind, umfassen können.
  13. Integrierte Schaltung nach Anspruch 10, wobei die Datensenken jeweils verschiedene Speisespannungen und verschiedene Betriebsfrequenzen aufweisen und einzelne Mikroprozessoren, digitale Signalprozessoren und feldprogrammierbare Gate-Arrays umfassen können.
  14. Integrierte Schaltung nach Anspruch 13, wobei eine oder mehrere der Datensenken an einen der Reorder-Puffer gekoppelt sein kann.
  15. Integrierte Schaltung nach einem der Ansprüche 7 bis 14, wobei jeder einzelne brückbare Reorder-Puffer der Mehrzahl Reorder-Puffer unabhängig von den anderen Reorder-Puffern eine variable Tiefe aufweisen kann, wobei der einzelne Reorder-Puffer ferner einen Eingabeport mit einer von einem Schreibzeiger aufrechterhaltenen Adresse sowie einen oder mehrere Ausgabeports mit von Schreibzeigern aufrechterhaltenen Adressen umfasst.
  16. Integrierte Schaltung nach einem der Ansprüche 8 bis 14, wobei jeder Reorder-Puffer mehrere Ausgabeports umfasst, die zur Ausgabe an verschiedene Ausgabesenken jeweils mit einem unterschiedlichen Spannungspegelwandler verbunden sind.
  17. Integrierte Schaltung nach einem der Ansprüche 8 bis 14, wobei die Ausgabeschnittstelle Daten empfängt, die eine erste Übertragungsrate und einen ersten Spannungspegel Raumschalter umfassen, und die erste Übertragungsrate in eine zweite Übertragungsrate und den ersten Spannungspegel in einen zweiten Spannungspegel umwandelt, wobei die zweite Übertragungsrate und der zweite Spannungspegel mit den Datensenken vereinbar sind.
  18. Integrierte Schaltung nach einem der Ansprüche 10 bis 14, wobei ein erstes Segment der verteilten FIFO-Segmente physikalisch auf einer Schicht einer dreidimensionalen integrierten Schaltung angeordnet, während ein zweites Segment der verteilten FIFO-Segmente physikalisch auf einer anderen Schicht der dreidimensionalen integrierten Schaltung angeordnet ist, und wobei das erste und zweite Segment über senkrechte TSV-Leitungen miteinander verbunden sind.
  19. Integrierte Schaltung nach Anspruch 18, wobei das erste und zweite Segment der verteilten FIFO-Segmente unterschiedliche Differenzsignale übertragen.
  20. Integrierte Schaltung nach Anspruch 18, wobei das erste und zweite Segment der verteilten FIFO-Segmente asymmetrische Signale übertragen.
DE112010005747T 2010-07-16 2010-10-18 Datenschnittstellenschaltung Withdrawn DE112010005747T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN2040/CHE/2010 2010-07-16
IN2040CH2010 2010-07-16
PCT/IB2010/054706 WO2012007799A1 (en) 2010-07-16 2010-10-18 Data interface circuit

Publications (1)

Publication Number Publication Date
DE112010005747T5 true DE112010005747T5 (de) 2013-07-04

Family

ID=45468989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010005747T Withdrawn DE112010005747T5 (de) 2010-07-16 2010-10-18 Datenschnittstellenschaltung

Country Status (5)

Country Link
US (1) US8451147B2 (de)
KR (1) KR101451254B1 (de)
CN (1) CN103026349B (de)
DE (1) DE112010005747T5 (de)
WO (1) WO2012007799A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8995207B2 (en) * 2011-08-12 2015-03-31 Qualcomm Incorporated Data storage for voltage domain crossings
US20140019650A1 (en) * 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO
US10592444B2 (en) 2013-01-07 2020-03-17 Wave Computing, Inc. Reconfigurable interconnected programmable processors
US9588773B2 (en) 2013-01-07 2017-03-07 Wave Computing, Inc. Software based application specific integrated circuit
US9465758B2 (en) * 2013-05-29 2016-10-11 Qualcomm Incorporated Reconfigurable instruction cell array with conditional channel routing and in-place functionality
US10203935B2 (en) 2013-11-02 2019-02-12 Wave Computing, Inc. Power control within a dataflow processor
US9590629B2 (en) * 2013-11-02 2017-03-07 Wave Computing, Inc. Logical elements with switchable connections
US10218357B2 (en) 2013-11-02 2019-02-26 Wave Computing, Inc. Logical elements with switchable connections for multifunction operation
US10136384B1 (en) * 2014-10-14 2018-11-20 Altera Corporation Methods and apparatus for performing buffer fill level controlled dynamic power scaling
US10437728B2 (en) 2015-02-21 2019-10-08 Wave Computing, Inc. Branchless instruction paging in reconfigurable fabric
US10073773B2 (en) 2015-02-21 2018-09-11 Wave Computing, Inc. Instruction paging in reconfigurable fabric
US10191738B1 (en) * 2015-07-27 2019-01-29 Invensense, Inc. Systems and methods for interfacing a sensor and a processor
US10505704B1 (en) 2015-08-02 2019-12-10 Wave Computing, Inc. Data uploading to asynchronous circuitry using circular buffer control
US10659396B2 (en) 2015-08-02 2020-05-19 Wave Computing, Inc. Joining data within a reconfigurable fabric
US10564929B2 (en) 2016-09-01 2020-02-18 Wave Computing, Inc. Communication between dataflow processing units and memories
US10193637B2 (en) 2016-01-19 2019-01-29 The United States Of America As Represented By The Secretary Of The Army Method and system of network switch optimization
US10541690B2 (en) 2016-02-29 2020-01-21 Samsung Electronics Co., Ltd. Method and device to align phases of clock signals
US10042606B2 (en) 2016-05-03 2018-08-07 Altera Corporation Fixed-point and floating-point arithmetic operator circuits in specialized processing blocks
US20180089117A1 (en) 2016-09-26 2018-03-29 Wave Computing, Inc. Reconfigurable fabric accessing external memory
KR20180038875A (ko) 2016-10-07 2018-04-17 삼성전자주식회사 데이터 입출력 유닛, 전자 장치 및 그 제어 방법들
US10225080B2 (en) * 2016-11-29 2019-03-05 The United States Of America As Represented By The Secretary Of The Army Method and systems for routing entangled photons to quantum network users via a reconfigurable switch networks of optical crossbar switches
US10949328B2 (en) 2017-08-19 2021-03-16 Wave Computing, Inc. Data flow graph computation using exceptions
US11106976B2 (en) 2017-08-19 2021-08-31 Wave Computing, Inc. Neural network output layer for machine learning
US10446198B2 (en) 2017-10-02 2019-10-15 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system
US10355893B2 (en) 2017-10-02 2019-07-16 Micron Technology, Inc. Multiplexing distinct signals on a single pin of a memory device
US10490245B2 (en) 2017-10-02 2019-11-26 Micron Technology, Inc. Memory system that supports dual-mode modulation
US11403241B2 (en) 2017-10-02 2022-08-02 Micron Technology, Inc. Communicating data with stacked memory dies
US10725913B2 (en) 2017-10-02 2020-07-28 Micron Technology, Inc. Variable modulation scheme for memory device access or operation
US10476656B2 (en) * 2018-04-13 2019-11-12 DeGirum Corporation System and method for asynchronous, multiple clock domain data streams coalescing and resynchronization
US11645178B2 (en) 2018-07-27 2023-05-09 MIPS Tech, LLC Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors
KR102618734B1 (ko) 2018-11-19 2023-12-29 삼성디스플레이 주식회사 표시 장치 및 이의 구동 방법
CN111384964B (zh) * 2018-12-28 2022-05-31 上海寒武纪信息科技有限公司 数据压缩解压装置和数据压缩方法
US10997102B2 (en) 2019-04-01 2021-05-04 Wave Computing, Inc. Multidimensional address generation for direct memory access
US11934308B2 (en) 2019-04-01 2024-03-19 Wave Computing, Inc. Processor cluster address generation
US11227030B2 (en) 2019-04-01 2022-01-18 Wave Computing, Inc. Matrix multiplication engine using pipelining
US11481472B2 (en) 2019-04-01 2022-10-25 Wave Computing, Inc. Integer matrix multiplication engine using pipelining
CN113590515B (zh) * 2021-07-23 2022-09-27 上海锐星微电子科技有限公司 一种信号传输损耗补偿电路、集成电路及传输系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3045865B2 (ja) * 1992-02-10 2000-05-29 日本電信電話株式会社 Atmクロスコネクト装置
US6088736A (en) 1995-07-19 2000-07-11 Fujitsu Network Communications, Inc. Joint flow control mechanism in a telecommunications network
US7161901B2 (en) * 2001-05-07 2007-01-09 Vitesse Semiconductor Corporation Automatic load balancing in switch fabrics
FR2846185B1 (fr) * 2002-10-21 2005-02-25 Cit Alcatel Routeur perfectionne a insertion et/ou extraction de ressources
GB2397966B (en) * 2003-02-01 2005-04-20 3Com Corp High-speed switch architecture
US7573827B2 (en) * 2003-05-06 2009-08-11 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting network congestion
US7340166B1 (en) * 2004-07-15 2008-03-04 Verizon Services Corp. Methods and apparatus for automated testing and analysis of dense wavelength division multiplexing (DWDM), wavelength selective and/or optical switching devices
JP4502792B2 (ja) * 2004-12-09 2010-07-14 富士通セミコンダクター株式会社 データバッファ回路
CN1936814A (zh) * 2005-09-22 2007-03-28 鸿富锦精密工业(深圳)有限公司 基本输入输出系统及媒体接入控制地址在线烧录装置
CA2528636C (en) * 2005-12-16 2016-06-28 Maged E. Beshai Scalable router-switch

Also Published As

Publication number Publication date
WO2012007799A1 (en) 2012-01-19
KR101451254B1 (ko) 2014-10-15
CN103026349A (zh) 2013-04-03
KR20130045360A (ko) 2013-05-03
CN103026349B (zh) 2016-04-06
US20120235839A1 (en) 2012-09-20
US8451147B2 (en) 2013-05-28

Similar Documents

Publication Publication Date Title
DE112010005747T5 (de) Datenschnittstellenschaltung
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE102019108205B4 (de) Unentspannte 433-kodierung zur verringerung der kopplung und des leistungsrauschens auf pam-4-datenbussen
DE60035171T2 (de) Verfahren und Schaltungen zum schnellen Auffinden des minimalen / maximalen Wertes in einer Menge von Zahlen
DE112010005041T5 (de) Gemeinsam genutzte Speicher für energieeffiziente Mehrkernprozessoren
DE112018004814T5 (de) Arithmetische Vorrichtung und elektronisches Gerät
DE102014103186B4 (de) Halbleitervorrichtung und Halbleiterpackage
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
DE4137515A1 (de) Integrierte halbleiterschaltungsvorrichtung mit darin integriertem speicher und operationseinheit
JP2001202236A (ja) プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法
DE102005051478A1 (de) Flashdatenspeichervorrichtung
DE102005009021A1 (de) Vereinheitliche USB OTG-Steuerungseinheit
DE102012108093A1 (de) Speicherchip, Speichersystem und Verfahren zum Zugreifen auf den Speicherchip
DE112016001258T5 (de) Multi-gigabit drahtloses tunnelsystem
DE112018005507T5 (de) Mehrkriterien-energiemanagementschema für gepoolte beschleunigerarchitekturen
DE112019000265T5 (de) Zuverlässiger digitaler regler mit niedriger abfallspannung
DE102020117756A1 (de) Techniken für speicherzugriff in einem zustand reduzierter leistung
DE112017005823T5 (de) Codieren von symbolen variabler länge zum ermöglichen eines parallelen decodierens
CN101620587B (zh) 柔性可重构任务处理单元结构
DE102016109869A1 (de) Eingebetteter Logistikanalysator und integrierte Schaltung mit demselben
DE112004000140T5 (de) Kodierte Schreibmaske
DE60309079T2 (de) Umordnungsgerät mit entsprechender dynamischer Elementanpassungstechnik zur Linearisierung von Digital-Analog-Wandlern mit Einheitselementen
DE112016002891T5 (de) Eine skalierbare Kreuzschienenvorrichtung und ein Verfahren zum Anordnen von Kreuzschienenschaltungen
DE102019118340A1 (de) Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes
DE2614664B2 (de) Verfahren zum speichern von daten in einer speichereinrichtung und einrichtung zur durchfuehrung des verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee