-
TECHNISCHES GEBIET
-
Ausführungsformen der Erfindung beziehen sich auf Ein-/Ausgabe-Architekturen und Schnittstellen. Insbesondere beziehen sich Ausführungsformen der Erfindung auf On-Package-Ein-/Ausgabe-(on-package input/output, OPIO)-Architekturen und Schnittstellen mit hoher Bandbreite.
-
HINTERGRUND
-
Verbindungen mit hoher Bandbreite zwischen Chips unter Verwendung von konventionellen Ein-/Ausgabe-(I/O)-Schnittstellen erfordern signifikante Leistung und Chip-Fläche. Deshalb sind bei Anwendungen, die einen erheblich reduzierten Energieverbrauch und/oder eine kleinere Chip-Fläche erfordern, diese konventionellen Schnittstellen nicht wünschenswert.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Erfindungsgemäße Ausführungsformen werden beispielhaft und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, wobei sich gleiche Bezugsnummern auf ähnliche Elemente beziehen.
-
1 ist ein Blockdiagramm einer Ausführungsform eines Multichip-Pakets (MCP), das OPIO-Schnittstellen zwischen wenigstens zwei Chips aufweist.
-
2 ist ein Blockdiagramm einer Ausführungsform einer Anordnung für Seitenbandinitialisierung.
-
3 ist ein Ablaufdiagramm einer Ausführungsform einer Technik für Seitenbandinitialisierung.
-
4 ist ein Blockdiagramm einer Ausführungsform einer Elektronik.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Bei der folgenden Beschreibung werden zahlreiche spezifische Details gegeben. Erfindungsgemäße Ausführungsformen können jedoch ohne diese spezifischen Details umgesetzt werden. In anderen Fällen wurden wohlbekannte Schaltungen, Strukturen und Techniken nicht im Detail gezeigt, um das Verständnis dieser Beschreibung nicht in den Hintergrund rücken zu lassen.
-
1 ist ein Blockdiagramm einer Ausführungsform eines Multichip-Pakets (MCP), das OPIO-Schnittstellen zwischen wenigstens zwei Chips aufweist. Das Beispiel von 1 veranschaulicht zwei Chips mit Schnittstellen; es kann jedoch jegliche Anzahl von Chips innerhalb eines Pakets unter Verwendung der hier beschriebenen Techniken miteinander verbunden sein.
-
Paket 100 kann jede Art von Paket sein, das mehrere Chips mit integrierten Schaltungen enthalten kann. Im Beispiel von 1 enthält Paket 100 Chip 120 und Chip 140. Diese Chips können beispielsweise Prozessoren, Speicherbausteine, Graphikprozessoren usw. sein.
-
Bei einer Ausführungsform schließt Chip 120 die OPIO-Sender 125 und OPIO-Empfänger 130 ein. Ähnlich schließt der Chip 140 die OPIO-Sender 145 und OPIO-Empfänger 150 ein. Die Sender 125 sind mit den Empfängern 150 gekoppelt, und die Sender 145 sind mit den Empfängern 130 gekoppelt.
-
Bei einer Ausführungsform ist der Spalt 175 zwischen Chip 120 und Chip 140 relativ klein. Bei einer Ausführungsform ist der Spalt 175 kleiner als 20 mm. Bei einer Ausführungsform ist der Spalt 175 kleiner als 10 mm. Bei einer Ausführungsform beträgt der Spalt 175 annäherungsweise 1,5 mm. Bei anderen Ausführungsformen kann der Spalt 175 kleiner als 1,5 mm sein. Im Allgemeinen gilt, dass die Bandbreite, die zwischen den Chips bereitgestellt werden kann, umso größer ist, je kleiner der Spalt 175 ist.
-
Bei einer Ausführungsform sind die Schnittstellen zwischen dem Sender 125 und dem Empfänger 150 und zwischen dem Sender 145 und dem Empfänger 130 referenzbezogene Schnittstellen mit relativ hoher Geschwindigkeit. Bei einer Ausführungsform sind die Schnittstellen CMOS-Schnittstellen zwischen Chip 120 und Chip 140. Bei einer Ausführungsform sind die Sender 125 und 145 impedanzangepasste CMOS-Sender und es wird kein Abschluss und keine Entzerrung bereitgestellt. Bei einer Ausführungsform sind die Sender 125 und 145 impedanzangepasste CMOS-Sender und es wird ein sehr schwacher Abschluss und keine Entzerrung bereitgestellt.
-
Bei einer Ausführungsform wird ein weitergeleitetes Taktsignal für ein Cluster von Signalen gesendet. Bei einer Ausführungsform wird ein längenübereingestimmtes Routing zwischen den Sendern und den Empfängern bereitgestellt. Bei einer Ausführungsform wird ein minimaler ESD-Schutz (so wenig wie 70 Volt) für die Schnittstellen zwischen den Chips 120 und 140 bereitgestellt.
-
Bei einer Ausführungsform kann die Verwendung von einem CMOS-Sender und -Empfänger mit keinem oder schwachem Empfängerabschluss und keiner Entzerrung die I/O-Leistung reduzieren. Ein vereinfachtes Takten mit einem weitergeleiteten Takt pro Cluster von Signalen und keinem Per-Pin-De-skew kann aufgrund sorgfältigem längenübereingestimmtem Routing reduzierter Takt-Leistung erreicht werden. Deshalb stellen die hier beschriebenen Architekturen eine hohe Bandbreite zwischen Chips bei sehr niedriger Leistung, Fläche und Latenzzeit bereit.
-
Die hier beschriebenen Architekturen können auch erweitert werden, um diskrete Pakete mit vollständigem ESD-Schutz für Mobilfunkanwendungen mit kleinen Formfaktoren bei niedrigen Datenraten zu erreichen. Mehrebenen-(z. B. M PAM)-Signalisierung kann bei höheren Datenraten verwendet werden, um die Taktfrequenz niedrig zu halten.
-
Beschriebene Techniken stellen einen Initialisierungs- und/oder Power-Management-Sequenzer in einer Systemkomponente bereit, um ein einfacheres durch eine Schnittstelle verbundenes Gerät, wie beschrieben in Bezug auf 1 zu steuern, wobei die Schnittstelle ein weitergeleitetes Taktsignal an das einfachere Gerät bereitstellt. Bei einer Ausführungsform werden Handshake-Sequenzen zum Auslösen von Ereignissen im einfacheren Gerät verwendet, nachdem die Voraussetzungen im Steuergerät zufriedengestellt sind.
-
Bei einer Ausführungsform kann eine serielle Zweidraht-Schnittstelle wie oben beschrieben durch ein Master-Gerät verwendet werden (z. B. eine Masterzustandsmaschine), um Befehle zu einem Remote-Slave-Gerät zu senden (z. B. eine Speicher-Zustandsmaschine) und Informationen zu einem lokalen Slave-Gerät (z. B. eine lokale Zustandsmaschine). Wenn beide Slaves den Befehl abschließen, senden sie eine Bestätigung an den Master. Der Master (oder ein Sequenzer, der im/mit dem Master arbeitet) kann die Befehle neu ordnen und/oder wiederholen. Neue Schritte können hinzugefügt werden, ohne die Schnittstelle zu ändern.
-
Bei einer Ausführungsform wird der Schnittstellentakt durch Phasenregelkreise (PLLs) auf beiden Seiten der Schnittstelle bereitgestellt. FIFOs ermöglichen, dass Befehle in unterschiedlichen Domains trotz Takt-Drifts, die größer sind als ein Taktabstand, synchronisiert werden.
-
2 ist ein Blockdiagramm einer Ausführungsform einer Anordnung für Seitenbandinitialisierung. Das Master-Gerät 200 kann beispielsweise ein Prozessor oder eine andere Komponente sein, die Logik einschließt, um eine Steuerungsebene für eine oder mehrere Komponenten des Slave-Geräts 250 bereitzustellen. Ähnlich schließt das Slave-Gerät 250 eine oder mehrere Komponenten ein, die Operationen als Reaktion auf Befehle/Signale vom Master-Gerät 200 bereitstellen. Das Master-Gerät 200 kann beispielsweise ein Prozessor und Slave-Gerät 250 kann beispielsweise ein Speichergerät sein. Andere Arten von Geräten können auch als Master- oder Slave-Geräte arbeiten.
-
Bei einer Ausführungsform kommunizieren die Initialisierungszustandsmaschine 220 und Initialisierungszustandsmaschine 260 über eine virtuelle Leitungsschnittstelle. Dies ermöglicht der Initialisierungszustandsmaschine 220, seriell Handshakes und Initialisierungselemente bei Slave-Gerät 250 zu steuern. Die Initialisierungszustandsmaschine 260 kann an die Initialisierungszustandsmaschine 220 zurückmelden, um der Initialisierungszustandsmaschine 220 zu ermöglichen, ihre eigenen Initialisierungsoperationen auszuführen und/oder andere Initialisierungsoperationen zu verwalten.
-
Bei einer Ausführungsform werden die Initialisierungszustandsmaschine 220 und Initialisierungszustandsmaschine 260 durch ein gemeinsames oder synchronisiertes Taktsignal getaktet. Dies ermöglicht synchrone Kommunikationen zwischen Takt-Domains.
-
Die Master-Komponente 200 arbeitet, um wenigstens die Initiierung von einem oder mehreren Elementen innerhalb des Master-Geräts 200 und des Slave-Geräts 250 zu starten. Bei einer Ausführungsform sind eine oder mehrere der Komponenten des Slave-Geräts 250 vor einer oder mehreren Komponenten des Leitgeräts 200 zu initialisieren. Bei einer Ausführungsform gibt die Master-Komponente 210 serielle Befehle über den Link 240 aus, die von der Initialisierungszustandsmaschine 220 im Master-Gerät 200 und von der Initialisierungszustandsmaschine 260 im Slave-Gerät 260 ausgewertet werden. Abhängigkeiten können auch in der anderen Richtung existieren. Ein Slave-Element kann eine Abhängigkeit von einem Masterelement aufweisen.
-
Bei einer Ausführungsform generiert die Master-Komponente 210 Befehlscodes, die von den Zustandsmaschinen decodiert werden, die wiederum spezielle Initialisierungsoperationen als Reaktion auf das Empfangen der Befehlscodes ausführen. Die Initialisierungszustandsmaschine 220 kann arbeiten, um eine oder mehrere Komponenten des Leitgeräts 200 zu initialisieren. Beispielsweise kann die Initialisierungszustandsmaschine 220 arbeiten, um eine oder mehrere Verzögerungsregelschleifen (DLLs) 235, ein oder mehrere FIFOs 230 und/oder andere Komponenten des Leitgeräts 200 zu initialisieren.
-
Ähnlich kann die Initialisierungszustandsmaschine 260 arbeiten, um eine oder mehrere Komponenten des Slave-Geräts 260 zu initialisieren. Beispielsweise kann die Initialisierungszustandsmaschine 260 arbeiten, um eine oder mehrere Selbstauffrisch-Schaltungen, eine oder mehrere Sicherungen, einen oder mehrere Puffer 270, eine oder mehrere PLLs 275, eine oder mehrere DLLs 290 und/oder andere Komponenten des Slave-Geräts 250 zu initialisieren.
-
Bei einer Ausführungsform stellt die Initialisierungszustandsmaschine 260 eine Bestätigungsnachricht über den Link 245 bereit, um der Master-Komponente 210 anzuzeigen, wenn Befehle abgeschlossen und/oder andere Aktionen erreicht wurden. Ähnlich sendet die Initialisierungszustandsmaschine 220 ein „Fertig”-Signal an die Master-Komponente 210, wenn Befehle abgeschlossen und/oder andere Aktionen erreicht wurden.
-
Bei einer Ausführungsform verwaltet und verbindet die Master-Komponente 210 die Bestätigungsmeldungen von der Initialisierungszustandsmaschine 260 und die Fertig-Meldungen von der Initialisierungszustandsmaschine 220, um die Initialisierung der verschiedenen Komponenten (z. B. DLLs, PLLs, Puffer) des Leitgeräts 200 und des Slave-Geräts 250 zu koordinieren. Deshalb kann die Master-Komponente 210 die Initialisierung von Komponenten auf unterschiedlichen Chips verwalten und Abhängigkeiten, die existieren können, über Chips hinweg verwalten. Weiter kann die Master-Komponente 210 ein synchronisiertes, deterministisches Kommunikationsschema zwischen Master-Gerät 200 und Slave-Gerät 250 bereitstellen. Bei einer Ausführungsform repräsentieren die Linien 240 und 245 einen oder mehrere virtuelle Drähte, um zwischen Master-Gerät 200 und Slave-Gerät 250 zu kommunizieren.
-
3 ist ein Ablaufdiagramm einer Ausführungsform einer Technik für Seitenbandinitialisierung. Die Technik von 3 kann durch die Komponenten von 2 ausgeführt werden, die über die Schnittstelle von 1 miteinander verbunden sind.
-
Die Initialisierung wird gestartet, 300. Bei einer Ausführungsform wird die Initialisierung durch eine Masterinitialisierungskomponente eines Leitgeräts gestartet (z. B. einen Prozessorkern). Die Masterinitialisierungskomponente kann eine separate Komponente oder Teil einer größeren Steuerungskomponente, wie beispielsweise eines Prozessors oder Controllers, sein.
-
Die Masterinitialisierungskomponente generiert die Initialisierungsbefehle 310. Bei einer Ausführungsform werden die Befehle über eine serielle Schnittstelle gesendet und sind Codes, die von den empfangenden Steuerungskomponenten decodiert werden sollen. Bei einer Ausführungsform werden die Befehle über eine virtuelle Leitungsschnittstelle gesendet. Bei alternativen Ausführungsformen können zugehörige Steuerleitungen verwendet werden.
-
Bei einer Ausführungsform werden die Befehle an eine lokale Initialisierungszustandsmaschine und an eine Remote-Initialisierungszustandsmaschine bereitgestellt. Bei einer Ausführungsform arbeitet die lokale Initialisierungszustandsmaschine auf der gleichen Chiplage wie die Masterinitialisierungskomponente und die Remote-Initialisierungszustandsmaschine arbeitet auf einer unterschiedlichen Chiplage. Die Initialisierungszustandsmaschinen führen als Reaktion auf die von der Masterinitialisierungskomponente empfangenen Befehle Initialisierungsoperationen aus.
-
Die Masterinitialisierungskomponente empfängt Antworten von den Initialisierungszustandsmaschinen, 320. Die Masterinitialisierungskomponente verwaltet Konflikte, Abhängigkeiten und erforderliche Anforderungen für die Initialisierungszustandsmaschinen, 330. Wenn beispielsweise die Initialisierung eines lokalen DLLs nach der Initialisierung einer Remote-PLL ausgeführt werden muss, steuert die Masterinitialisierungskomponente die Sequenz der Initialisierung. Ein Beispiel für die Abhängigkeit unter Initialisierungselementen: PLL-Sperr- und Impedanz-Kompensation, die erforderlich ist, um einen stabilen Takt weiterzuleiten, der dann durch ein DLL-FIFO zentriert werden kann. Der zentrierte weitergeleitete Takt kann dann verwendet werden, um ein FIFO zurückzusetzen.
-
Wenn die Initialisierung nicht abgeschlossen ist, 340, können nachfolgende Initialisierungsbefehle generiert, 310, und an die Zustandsmaschinen gesendet werden. Wenn die Initialisierung abgeschlossen ist, 340, kann die Masterinitialisierungskomponente anzeigen, dass die Initialisierung abgeschlossen ist, 350. Das Master-Gerät kann dann mit der Operation fortfahren.
-
4 ist ein Blockdiagramm einer Ausführungsform einer Elektronik. Die in 4 veranschaulichte Elektronik soll eine Auswahl an Elektronik (entweder drahtgebunden oder drahtlos) darstellen, einschließlich beispielsweise eines Tablet-Geräts, Smartphones, Desktop-Computer-Systems, Laptop-Systems, Servers usw. Alternative Elektronik kann mehr, weniger und/oder unterschiedliche Komponenten einschließen.
-
Eine oder mehrere der in 4 veranschaulichten Komponenten können miteinander unter Verwendung der hier beschriebenen OPIO-Architekturen verbunden sein. Beispielsweise können Mehrprozessor-Chips miteinander verbunden sein oder ein Prozessor und ein Cache-Speicher oder dynamischer Random Access Memory usw.
-
Elektronik 400 beinhaltet Bus 405 oder ein anderes Kommunikationsgerät, um Informationen zu kommunizieren, und die Prozessoren 410, die mit dem Bus 405 gekoppelt sind und Informationen verarbeiten können. Elektronik 400 kann mehrere Prozessoren und/oder Koprozessoren einschließen. Elektronik 400 kann weiter Direktzugriffsspeicher (random access memory, RAM) oder ein anderes dynamisches Speichergerät 420 (als Speicher bezeichnet), das mit Bus 405 gekoppelt ist, beinhalten, und sie kann Informationen und Befehle speichern, die von Prozessor 410 ausgeführt werden können. Speicher 420 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während einer Ausführung von Befehlen durch die Prozessoren 410 verwendet werden.
-
Elektronik 400 kann ebenfalls Festwertspeicher (Read Only Memory, ROM) und/oder ein anderes statisches Speichergerät 430 beinhalten, das mit Bus 405 gekoppelt ist und statische Informationen und Anweisungen für Prozessor 410 speichern kann. Das Datenspeichergerät 440 kann mit Bus 405 gekoppelt sein, um Informationen und Anweisungen zu speichern. Das Datenspeichergerät 440 (beispielsweise eine Magnetdiskette oder optische Disc und ein entsprechendes Laufwerk) kann mit der Elektronik 400 gekoppelt sein.
-
Die Elektronik 400 kann auch über den Bus 405 mit dem Anzeigegerät 450 gekoppelt sein, das jede Art von Anzeigegerät wie ein Touchscreen sein kann, um einem Benutzer Informationen anzuzeigen. Das Eingabegerät 460 kann jede Art von Schnittstelle und/oder Gerät sein, um einem Benutzer zu ermöglichen, eine Eingabe in Elektronik 400 bereitzustellen. Das Eingabegerät kann Tasten und/oder Schaltflächen und einen Sprach- oder Lautsprechereingang einschließen, um Informationen und eine Befehlsauswahl an die Prozessoren 410 zu kommunizieren.
-
Die Elektronik 400 kann weiter die Sensoren 470 einschließen, die verwendet werden können, um die Funktionalität zu unterstützen, die durch Elektronik 400 bereitgestellt wird. Die Sensoren 470 können beispielsweise ein Gyroskop, einen Näherungssensor, einen Lichtsensor usw. einschließen. Jede Anzahl von Sensoren und Sensortypen kann unterstützt werden.
-
Die Elektronik 400 kann weiter die Netzwerkschnittstellen 480 beinhalten, um Zugriff auf ein Netzwerk wie ein lokales Netzwerk zu ermöglichen. Die Netzwerkschnittstellen 480 können zum Beispiel eine drahtlose Netzwerkschnittstelle einschließen, die Antenne 485 aufweist, welche eine oder mehrere Antennen repräsentieren kann. Die Netzwerkschnittstellen 480 können ebenfalls beispielsweise eine verdrahtete Netzwerkschnittstelle einschließen, um mit entfernten Geräten über das Netzwerkkabel 487 zu kommunizieren, das beispielsweise ein Ethernetkabel, ein Koaxialkabel, ein Lichtwellenleiter, ein serielles Kabel oder ein paralleles Kabel sein kann.
-
Bei einer Ausführungsform können die Netzwerkschnittstellen 480 Zugriff auf ein lokales Netzwerk bereitstellen, indem sie beispielsweise dem Standard IEEE 802.11b und/oder IEEE 802.11 g und/oder IEEE 802.11 n entspricht, und/oder die drahtlose Netzwerkschnittstelle kann Zugriff auf ein Personal Area Network bereitstellen, indem sie beispielsweise Bluetooth-Standards entspricht. Andere drahtlose Netzwerkschnittstellen und/oder Protokolle können ebenfalls unterstützt werden.
-
IEEE 802.11 b entspricht IEEE Std. 802.11 b-1999 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Layer-(PHY)-Spezifikationen: Erweiterung der physikalischen Schicht mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 16. September 1999, sowie zugehörige Dokumente. IEEE 802.11 g entspricht IEEE Std. 802.11 g-2003 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Layer-(PHY)-Spezifikationen, Zusatz 4: Weitere Erweiterung mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 27. Juni 2003, sowie zugehörige Dokumente. Bluetooth-Protokolle sind beschrieben in „Spezifikation des Bluetooth-Systems: Kern, Version 1.1”, veröffentlicht am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc. Associated, und vorherige oder nachfolgende Versionen des Bluetooth-Standards können ebenfalls unterstützt werden.
-
Zusätzlich zu oder anstatt Kommunikation über Wireless-LAN-Standards können die Netzwerkschnittstellen 480 drahtlose Kommunikationen unter Verwendung von beispielsweise Zeitmultiplexmehrfachzugriff-(Time Division, Multiple Access, TDMA)-Protokollen, Global System for Mobile Communications-(GSM)-Protokollen, Codeverteilvielfachzugriff-(Code Division, Multiple Access, CDMA)-Protokollen und/oder jeder anderen Art von drahtlosem Kommunikationsprotokoll ermöglichen.
-
Verweise in der Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „in einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform.
-
Während die Erfindung bezogen auf verschiedene Ausführungsformen beschrieben wurde, wird ein Fachmann erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist, sondern mit Modifikationen und Änderungen im Sinne und innerhalb des Schutzbereichs der angefügten Ansprüche betrieben werden kann. Die Beschreibung soll somit als veranschaulichend anstatt einschränkend angesehen werden.