-
Hintergrund
-
Ein Multi-Chip-Modul (MCM) umfasst zwei oder mehrere Siliziumchips, die in einem gemeinsamen Gehäuse/Modul untergebracht sind. Manchmal kommunizieren die in einem Modul untergebrachten Chips miteinander unter Verwendung einer Standardschnittschnelle, wie die Peripheral Component Interconnect ExpressTM Kopplungsstruktur, die der PCI ExpressTM Spezifikation ”Base Specification Version 2.0” vom 17. Januar 2007 entspricht (hiernach PCIeTM Spezifikation genannt), oder eines ähnlichen Protokolls. Wären die Chips einzeln im Modul verpackt, wären diese Schnittstellen normalerweise extern sichtbar (d. h. außerhalb des Moduls). Da diese Schnittstellen jedoch in einem MCM nicht gekoppelt sind, geht die Sichtbarkeit auf Modulebene verloren. Als eine Lösung bietet sich die Bereitstellung dedizierter Pins am Modul, um ein Überwachen dieser Schnittstellen von außen aus zu ermöglichen, z. B. zum Zweck des Silizium-Debugging. Angesichts der unterschiedlichen Arten von Schnittstellen sind manchmal 50 bis 100 dedizierte Pins am Modul notwendig, um eine komplette Sichtbarkeit zu erzielen. Eine weitere Alternative ist die Bereitstellung von kleinen Erhöhungen auf der Moduloberseite, um die Kopplung mit diesen internen Links zu ermöglichen. Bei der ersten Lösung stellt die Komplexität des Kopplungspin-Routings ein Problem dar, und bei der zweiten Lösung können zusätzliche Chiplagen erforderlich sein. Beide Alternativen haben mehr Anschlüsse und mehr Platzbedarf im Modul zur Folge und somit auch erhöhte Kosten.
-
US 2007/0291535 A1 offenbart einen Multi-Chip-Schalter, der auf einer Nachbarkommunikation beruht. Ein Schalter umfasst einen Halbleiterchip, der dafür eingerichtet ist, mehrere Signale an Eingangsanschlüssen zu empfangen und die Signale an mehreren Ausgangsanschlüssen auszugeben. Die Signale werden in mehreren Schaltelementen gemäß einem Steuersignal, welches eine Konfiguration der Schalter festlegt, durchgeleitet. Die Signale werden kapazitiv gekoppelt. Am Ausgang des Chips ist eine Reihe von parallel geschalteten Multiplexern vorgesehen.
-
US 2007/0283205 A1 offenbart ein System und ein Verfahren zum Testen einer integrierten Schaltung, welche Elemente mit asynchroner Taktung oder ungleicher Methodik aufweist. Jede Taktdomäne bildet seinen eigenen Abtastungspfad, der sich nicht über die Domänengrenzen erstreckt.
-
US 7,139,957 B2 offenbart einen automatischen Selbsttest einer Komponente eines integrierten Schaltung über AC-I/O-Loopback. Ein Testwert mit mehreren Bit wird in ein Auffangregister einer IC-Komponente geladen und ein Block der Komponente wird für das Testen ausgewählt. Eine Anzahl unterschiedlicher Sequenzen der Testwerte werden aufgrund des gespeicherten Testwertes generiert, ohne zusätzliche Werte mit mehreren Bit in das Auffangregister einzuscannen. Ein Signal, welches auf den unterschiedlichen Sequenzen der Testwerte beruht, wird in den ausgewählten Block gelenkt und zurückgekoppelt. Eine Differenz zwischen den Testwerten und der zurückgekoppelten Version der Testwerte wird bestimmt, während Treiber und/oder Empfänger Charakteristiken automatisch angepasst werden, um eine Grenze des Arbeitsbereichs einer I/O-Zwischenspeicherung für den ausgewählten Block zu bestimmen.
-
Kurzbeschreibung der Erfindung
-
Es ist die Aufgabe der vorliegenden Erfindung, eine interne Schnittstelle in einem Modul, z. B. eine interne PCI-Schnittstelle, nach außen sichtbar zu machen, ohne dass zusätzliche Pins, Anschlüsse oder andere externe Schnittstellen über die bestehende Schnittstelle hinaus notwendig werden.
-
Die Aufgabe wird gelöst durch eine Vorrichtung nach Anspruch 1, ein Verfahren nach Anspruch 3 bzw. ein System nach Anspruch 9.
-
Kurze Beschreibung der Zeichnungen
-
ist ein Blockdiagramm eines Multi-Chip-Moduls gemäß einer Ausführungsform der vorliegenden Erfindung.
-
ist ein Zeitsteuerungsdiagramm, das den Betrieb in einem Prüfmodus gemäß einer Ausführungsform der vorliegenden Erfindung darstellt.
-
. ist ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
-
ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Detaillierte Beschreibung
-
Die Ausführungsformen bieten eine Hardware-Implementierung, die in eine Siliziumkomponente integriert wird, um unter Verwendung einer bestehenden externen Schnittstelle eines MCM, z. B. über eine PCIeTM oder andere Kopplungsstruktur, die Sichtbarkeit zu ermöglichen. In verschiedenen Realisierungen können die Informationen von einem ersten internen Link ”angezapft” werden und durch eine zweite bestehende Schnittstelle an die Außenwelt geleitet werden. Die Sendeseite der bestehenden Schnittstelle kann an einen standardmäßigen Logik-Analyzer gekoppelt werden, um die durch die interne Schnittstelle fließenden internen Symbole zu überwachen.
-
Es wird Bezug genommen auf die ein Blockdiagramm eines Multi-Chip-Moduls (MCM) 100 gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Wie in gezeigt, enthält das MCM 100 einen ersten Chip 110 und einen zweiten Chip 170. Die zwei Chips können über einen internen Link 165 gekoppelt werden. Bei einer Ausführungsform kann der interne Link 165 ein PCIeTM Link sein, wobei die vorliegende Erfindung dadurch in keiner Weise eingeschränkt wird. Der PCI-Link kann beispielsweise eine N-Generation sein und eine entsprechende 1-fache Link-Geschwindigkeit haben, die bei einer Ausführungsform 2,5 Gigabit pro Sekunde (Gbps) sein kann. Dagegen kann eine Off-Chip-Kommunikation über einen zweiten Link 195, der bei einer Ausführungsform ein PCIeTM Link einer neueren Generation, z. B. N + 1, sein kann, eine 2-fache Geschwindigkeit haben.
-
Wie dargestellt, kann jeder Chip verschiedene Logik enthalten, um die gewünschte Funktionalität des Chips auszuführen. Bei verschiedenen Ausführungsformen kann ein Chip bzw. können beide Chips 110 und 170 Prozessoren, Controller, Speicherschnittstellen, Chipsätze usw. sein. Bei einer Ausführungsform kann der Chip 110 ein Mehrkernprozessor sein, der mehrere Prozessoren, Cachespeicher, eine Grafik-Engine, I/O-Schnittstellen usw. umfasst. Bei der gleichen Ausführungsform kann der Chip 170 ein Chipsatz sein, der Schnittstellenfunktionalität umfasst, welche die Kommunikation mit einem Systemspeicher, einer Anzeige und einem oder mehreren Peripheriegeräten ermöglicht. Wie in gezeigt, kann der erste Chip 110 eine Logik 115 umfassen, die eine dedizierte Logik sein kann, wie z. B. ein Kern oder mehrere Kerne eines Prozessors, eine Controller-Logik usw.
-
Zusätzlich umfasst der erste Chip 110 mehrere Schnittstellen oder Protokollstapel, von denen einer die modulexterne Kommunikation und ein zweiter die modulinterne Kommunikation ermöglicht. Insbesondere umfasst der erste Chip 110 eine erste Schnittstelle mit einer ersten Transaktionsschicht 120, einem gemeinsamen Block 122 und einem analogen Front-End (AFE) 124. Diese Schnittstelle kann mit 2-facher Taktgeschwindigkeit arbeiten. Wie gezeigt, umfasst jede dieser Schichten oder Einheiten einen Empfangsteil (RX) und einen Sendeteil (TX). Die Transaktionsschicht 120 kann in Senderichtung die vom ersten Chip 110 zu sendenden Daten empfangen und eine oder mehrere Transaktionsschichtpakete (TLP) generieren, die Daten sowie verschiedene Header-Informationen und andere von einem Protokoll vorgegebenen Informationen enthalten. Der gemeinsame Block 122 empfängt diese Daten und fügt andere Informationen für die Zuverlässigkeit der Übertragung hinzu, wie z. B. verschiedene Linkprotokolldaten, u. a. Fehlerkorrekturdaten, Paritätsdaten, Routingdaten usw. Das AFE 124 übernimmt schließlich die digitalen Daten und bereitet die Pakete für die physikalische Übertragung über den Link 195 vor. Bei einer Ausführungsform kann das AFE 124 eine Senderschaltung umfassen, z. B. in Form von Treibern usw., um die Linkpakete vom gemeinsamen Block 122 zu empfangen und serielle Bits z. B. auf einer vorgegebenen Anzahl von Lanes der Kopplungsstruktur zu übertragen. Bei einer Ausführungsform kann das AFE 124 die Daten für die Übertragung über den Link 195 konditionieren, z. B. durch Umwandlung der Daten in Differenzsignale wie Low Voltage Differential Signals (LVDS; Niederspannungsdifferenzsignale) für die Übertragung. In Empfangsrichtung kann das AFE 124 eingehende Signale empfangen und die Differenzsignale für die Übertragung an den gemeinsamen Block 122 in Linkpakete umwandeln. Das AFE 124 kann weiter in Empfangsrichtung eine sogenannte CDR-Schaltung (CDR – Clock and Data Recovery) für die weitere Zurückgewinnung eines mit den Daten übertragenen Taktgebers umfassen. In Empfangsrichtung kann der gemeinsame Block 122 verschiedene Verarbeitungen an den Daten ausführen und TLP auf die Transaktionsschicht 120 übertragen, welche die empfangen Daten extrahieren und an weitere Schaltungen innerhalb des ersten Chips 110 weiterleiten kann, z. B. an die Chiplogik 115.
-
Um die Kommunikation zwischen dem ersten Chip 110 und dem zweiten Chip 170 zu ermöglichen, ist ein zweiter Protokollstapel oder eine Schnittstelle innerhalb des ersten Chips 110 vorgesehen, die eine Transaktionsschicht 130, einen gemeinsamen Block 132 und ein AFE 134 umfasst und ähnlich funktionieren kann wie oben für die erste Schnittstelle beschrieben. Bei bestimmten Ausführungsformen kann diese Schnittstelle jedoch mit der 1-fachen Taktgeschwindigkeit arbeiten. Auch diese Schichten oder Blöcke der Schnittstelle sind in Sende- und Empfangsteile unterteilt.
-
Zur Ermöglichung eines Silizium-Debugging- oder anderen Prüfverfahrens können die Daten entlang des internen Links 165 aus dem MCM 100 heraus über einen zweiten Link 195 bereitgestellt werden. Wie in gezeigt, können die Daten aus den Empfangs- und Sendepfaden der internen Schnittstelle (in Bezug auf den ersten Chip 110) an einen Multiplexer 155 geliefert werden. Es ist zu beachten, dass die Sendedaten (vom ersten Chip 110) durch einen Synchronizer 152 an den Multiplexer 155 gekoppelt werden können, um von einer 1-fachen Taktgeberdomäne in eine 2-fache Taktgeberdomäne zu wechseln, während die Empfangsdaten (d. h. die vom zweiten Chip 170) zuerst an einen elastischen Puffer 150 und dann an den Multiplexer 155 gekoppelt werden können.
-
Man beachte den Taktgeberwechsel zwischen den zwei Taktgeberdomänen, nämlich zwischen einer 1-fachen Taktgeberdomäne und einer 2-fachen Taktgeberdomäne. Obwohl in mit einer arbiträren gestrichelten Linie dargestellt, ist zu verstehen, dass die externe Schnittstelle des ersten, an den externen Link 195 gekoppelten Chips 110, in der 2-fachen Taktgeberdomäne arbeiten kann, während die interne Schnittstelle sowie die Transaktionsschicht 130, der gemeinsame Block 132 und das AFE 134 in der 1-fachen Taktgeberdomäne arbeiten können. Somit entsprechen die in den elastischen Puffer 150 und Synchronizer 152 geschriebenen Daten der 1-fachen Taktgeberdomäne, die über das AFE 134 von den eingehenden Daten zurückgewonnen wird. Der elastische Puffer 150 kann somit unter Verwendung der 2-fachen Taktgeberdomäne gelesen werden. Im Wesentlichen wird der Referenztaktgeber der 2-fachen Taktgeberdomäne verwendet, um einen Lesezeiger zum elastischen Puffer 150 bereitzustellen, während der Referenztaktgeber der 1-fachen Taktgeberdomäne verwendet wird, um einen Schreibzeiger zum elastischen Puffer 150 bereitzustellen. Der elastische Puffer 150 kann auch für ein Kompensieren jeglicher Verschiebungen zwischen den Taktgebern dienen.
-
Unter der weiteren Bezugnahme auf ist der erste Multiplexer 155 an einen zweiten Multiplexer 160 gekoppelt. Wie gezeigt, werden zusätzlich zu den an den Multiplexer 160 geleiteten Prüfdaten auch die vom gemeinsamen Block 122 ausgehenden Daten dem Multiplexer 160 zugestellt. Beide Multiplexer können durch einen Prüfcontroller 140 gesteuert werden, welcher ein ausgewähltes Signal an jeden Multiplexer leitet, nämlich ein Ping_Pong_Sel-Signal an den ersten Multiplexer 155 und ein Test_Mode_Sel-Signal an den zweiten Multiplexer 160. Es ist zu beachten, dass das AFE 124 gemäß einem vom gemeinsamen Block 122 empfangenen Taktgeber getaktet wird.
-
Der Prüfcontroller 140 kann einen Registersatz enthalten, der extern zugänglich ist, z. B. über einen TAP-Controller (TAP, Test-Access-Port). Der Prüfcontroller 140 kann weiter Hardware, Software, oder Firmware enthalten, um die Steuerfähigkeit zum Überwachen verschiedener Betriebsarten des Moduls bereitzustellen. Die Steuerung kann beispielsweise für ein nur sendeseitiges oder ein nur empfangsseitiges Überwachen aktiviert werden. Der Prüfcontroller 140 kann somit Flexibilität zum Aktivieren verschiedener Prüfmodi bereitstellen. Bei einigen Ausführungsformen kann der Prüfcontroller 140 unter der begrenzten Steuerung einer externen Quelle arbeiten, wie z. B. unter einem Logik-Analyzer, während bei anderen Ausführungsformen mehr Steuerung z. B. über einen internen Registersatz unter der begrenzten Steuerung einer externen Quelle ermöglicht werden kann. In einem Beispiel kann ein Pingpong-Muster so gesteuert werden, dass ein aus dem Modul bereitgestelltes Datenmuster verschachtelte Sende- und Empfangsdaten enthält.
-
Wie weiter in gezeigt, kann der zweite Chip 170 seine eigene dedizierte Chiplogik 175 umfassen, die in einer Ausführungsform eine Schnittstellenschaltung, Controllerschaltung, Speichersteuerungsschaltung, ein oder mehrere Prozessorkerne usw. sein kann. Des Weiteren ist auch ein Protokollstapel oder eine Schnittstelle vorhanden, der/die eine Transaktionsschicht 180, einen gemeinsamen Block 185 und ein AFE 190 umfasst, welche ebenfalls in der 1-fachen Taktgeberdomäne arbeiten. Während diese bestimmte Implementierung bei der Ausführungsform nach gezeigt ist, wird jedoch der Umfang der vorliegenden Erfindung in dieser Hinsicht in keiner Weise eingeschränkt.
-
Es wird Bezug genommen auf, in der ein Zeitsteuerungsdiagramm gezeigt wird, das den Betrieb in einem Prüfmodus gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Wie in gezeigt, sind wie oben beschrieben zwei verschiedene Taktgeberdomänen vorhanden. Die Taktgebersignale für die zwei Domänen sind in den ersten zwei Zeilen in dargestellt, nämlich die Signale 1x_Clk und 2x_Clk. Bei einer Ausführungsform kann der zweite Chip 170 mit der Geschwindigkeit des 1-fachen Taktgebers und der erste Chip 110 mit der Geschwindigkeit des 2-fachen Taktgebers arbeiten, obwohl die Logik dieser Chips gemäß Taktgebern arbeiten kann, die von den Signalen des 1-fachen und 2-fachen Taktgebers unabhängig sind. Aufgrund der verschiedenen Taktgeberdomänen kann mindestens ein Teil des ersten Chips 110 (d. h. die interne Schnittstelle und die Schreibsteuerung für den elastischen Puffer 150) so gesteuert werden, dass er mit der Geschwindigkeit des ersten Taktgebers arbeitet, wozu ein Taktgeber verwendet wird, der aus den vom zweiten Chip 170 eingehenden Daten zurückgewonnen wurde. Ein solcher Betrieb wird nachfolgend beschrieben.
-
Zum Ermöglichen der Kommunikation der eingehenden und der ausgehenden Daten im Prüfmodus (d. h. Daten A und Daten B) kann das Ping_Pong_Sel-Signal vom Prüfcontroller 140 an den ersten Multiplexer 155 bereitgestellt werden. Auf diese Weise können die Ausgangsdaten vom ersten Multiplexer 155 (Data_Out) über einen zweiten Link 195 z. B. an einen Prüflogik-Analyzer 199 bereitgestellt werden. In diesem Prüfmodus kann das Test Mode_Sel-Signal (nicht in gezeigt) den zweiten Multiplexer 160 aktivieren, um die Prüfdatenausgabe vom ersten Multiplexer 155 an das AFE 124 zu leiten. In der normalen Betriebsart wird jedoch die entgegengesetzte Steuerung des zweiten Multiplexers 160 so bereitgestellt, dass die Daten vom gemeinsamen Block 122 an das AFE 124 geleitet werden.
-
Wie in und gezeigt, werden im dem Fall, wo die Symbole von der Sendeseite (Tx) des AFE 134 an die Empfangsseite (Rx) des AFE 190 Rx übertragen werden, die übertragenen Symbole durch Anzapfen der Symbole von der Schnittstelle zwischen dem gemeinsamen Block 132 und dem AFE 134 erfasst (d. h. Daten A). Die Daten A werden (mit der Geschwindigkeit des 1-fachen Taktgebers) durch den ersten und den zweiten Multiplexer hindurch zur Sendeseite (Tx) des AFE 124 befördert.
-
In dem Fall der Übertragung der Symbole von der Tx-Seite des AFE 190 an die Rx-Seite des AFE 134 werden die übertragenen Symbole durch Anzapfen der Symbole von der Schnittstelle zwischen dem AFE 134 und dem gemeinsamen Block 132 erfasst. Die Daten B werden (mit der Geschwindigkeit des 1-fachen Taktgebers) durch den elastischen Puffer 150 und den ersten und zweiten Multiplexer hindurch zur Tx-Seite des AFE 124 befördert. Der elastische Puffer 150 wird für das Ausgleichen minimaler Taktgeberphasen-Abweichungen zwischen dem zurückgewonnenen Taktgeber am AFE 124 verwendet, der zum Takten der in den elastischen Puffer 150 eingehenden Symbole verwendet wird, und dem lokal generierten Taktgeber ”afe_clk” (2x_clk), der zum Takten der aus dem elastischen Puffer 150 ausgehenden Daten verwendet wird.
-
Es ist zu beachten, dass der Prüfcontroller 140 beide Multiplexer-Select-Signale steuert (Ping_Pong_Sel und Test_Mode_Sel). ”Ping_Pong_Sel” kann so gesteuert werden, dass es in einem Pingpong-Muster zwischen Daten A und Daten B arbeitet, oder sodass es entweder die Daten A oder die Daten B wählt. ”Test_Mode_Sel” wählt entweder die reguläre Symbolübertragung vom gemeinsamen Block 122 und AFE 124 oder die ”Data_Out”-Daten (d. h. interne PCIeTM Daten). Wenn ”Test Mode_Sel” assertiert wird, wird ”Data_Out” durch die Tx-Seite des AFE 124 übertragen.
-
Unter Verwendung einer Ausführungsform der vorliegenden Erfindung kann somit die interne PCIeTM Schnittstelle sichtbar gemacht werden, ohne dass zusätzliche Pins, Anschlüsse oder andere externe Schnittstellen über eine bestehende Schnittstelle hinaus notwendig sind. Durch die Ausführungsformen wird somit der Bedarf an dedizierten Anschlüssen oder spezifischen Sondenlösungen auf dem Modul für die Beobachtung der internen, auf einem seriellen Bus basierenden Schnittstelle vermieden. Während diese bestimmte Implementierung in der Ausführungsform in und gezeigt ist, soll der Umfang der vorliegenden Erfindung in dieser Hinsicht in keiner Weise eingeschränkt werden. Bei anderen Ausführungsformen kann ein MCM beispielsweise mehr als zwei Chips enthalten, bei denen die Kommunikation entlang der zwischen ihnen vorgesehenen internen Links erfolgt und wobei alle Kommunikationen über einen externen Link aus dem Modul übertragen werden.
-
Es wird Bezug genommen auf, die ein Ablaufdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Das in gezeigte Verfahren 200 kann z. B. durch einen Prüfcontroller wie den in gezeigten Prüfcontroller 140 realisiert werden, um das Übertragen der auf einem internen Link stattfindenden internen Kommunikation während des Prüfmodus über einen externen Link eines Multi-Chip-Moduls zu ermöglichen. Wie in gezeigt, kann das Verfahren 200 beginnen, indem bestimmt wird, ob eine Prüfmodusanweisung empfangen wurde (Raute 210). Ohne Einschränkung des Umfangs der vorliegenden Erfindung in dieser Hinsicht kann eine solche Prüfmodusanweisung von Software empfangen werden, z. B. durch die Prüfsoftware eines Logik-Analyzers, ohne den Umfang der vorliegenden Erfindung diesbezüglich zu beschränken. Wird keine solche Prüfmodusanweisung empfangen, wird der normale Systemmodus-Betrieb aktiviert, sodass die Daten von der primären externen Protokollschnittstelle bereitgestellt werden und die Systemdaten (d. h. Nicht Prüfmodus) mit einer Geschwindigkeit eines zweiten Taktgebers (Block 250) bereitgestellt werden. Wie oben beschrieben, kann in einer Ausführungsform die Geschwindigkeit des zweiten Taktgebers eine Taktgeschwindigkeit dieses externen Links sein, wobei die Frequenz höher sein kann als die Geschwindigkeit eines internen Links zwischen mehreren Chips innerhalb des Moduls.
-
Unter der weiteren Bezugnahme auf wird bei der Bestimmung, dass eine Prüfmodusanweisung empfangen wurde, die Steuerung an Block 220 übergeben, wo die Prüfdaten ausgewählt werden können, die von einem ersten Multiplexer mit der Geschwindigkeit des zweiten Taktgebers ausgegeben werden sollen. Dieser erste Multiplexer kann Sende- und Empfangsdaten vom internen Link als Eingänge empfangen, wobei zumindest für die Empfangsdaten die Geschwindigkeit des ersten Taktgebers gilt. Abhängig von der Prüfmodusanweisung und den gewünschten Prüfdaten, die z. B. von einem Logik-Analyzer empfangen werden sollen, kann der erste Multiplexer auf Pingpong-Weise gesteuert werden, sodass Sende- und Empfangsdaten auf verschachtelte Weise ausgewählt werden und sodass beide Datenströme, die im ersten Multiplexer mit der Geschwindigkeit des ersten Taktgebers empfangen werden, mit der Geschwindigkeit des zweiten Taktgebers aus dem ersten Multiplexer ausgegeben werden. Alternativ können auch nur Daten aus einer Richtung auf Basis der gewünschten Debug-Operationen ausgewählt werden.
-
Vom Block 220 wird die Steuerung an Block 230 übergeben, wo die Prüfdaten für die Ausgabe aus dem zweiten Multiplexer mit der Geschwindigkeit des zweiten Taktgebers ausgewählt werden. Der Prüfcontroller steuert somit den zweiten Multiplexer so, dass die Prüfdaten ausgegeben werden, nicht die normalen Systemdaten. Somit können am Block 240 die Prüfdaten vom externen Anschluss des Multi-Chip-Moduls mit der Geschwindigkeit des zweiten Taktgebers ausgegeben werden. Während diese bestimmte Implementierung bei der Ausführungsform nach gezeigt ist, wird dadurch der Umfang der vorliegenden Erfindung in dieser Hinsicht in keiner Weise eingeschränkt.
-
Ausführungsformen können in vielen verschiedenen Arten von Systemen implementiert werden. Es wird Bezug genommen auf, die ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. System 300 umfasst ein MCM 301 mit einem Prozessor 305, der ein Mehrkernprozessor mit mehreren Kernen zur unabhängigen Ausführung von Anweisungen sein kann, und einem Chipsatz 315, von dem jeder ein separater Chip sein kann, der über einen modulinternen Link 306 gekoppelt ist, wobei dieser Link in einer Ausführungsform eine serielle Punkt-zu-Punkt-(PtP)-Kopplungsstruktur wie z. B. ein PCIeTM Link sein kann. Über eines der Module 317–319 kann die Prüfung oder das Debugging des MCM 301 so erfolgen, dass die modulinternen Kommunikationen über den Link 306 aus einem der Module bereitgestellt werden können, z. B. an einen angeschlossenen Logik-Analyzer oder ein anderes Prüfgerät. Während aus Gründen einer vereinfachten Darstellung nicht gezeigt, kann der Chipsatz 315 einen Prüfcontroller und mehrere Strukturen aufweisen, wie in gezeigt. Bei dieser Ausführungsform erfolgt der externe Link vom MCM 301 über den Chipsatz 315 anstatt über den Prozessor 305 im Gegensatz zu der Ausführungsform in, bei der der erste Chip 110 mit der externen Schnittstelle die Prozessoreinheit sein kann. Wie weiter gezeigt, umfasst das System 300 einen Systemspeicher 310, der an den Chipsatz 315 gekoppelt ist. Der Systemspeicher 310 umfasst eine beliebige Speichereinheit, wie einen Random Access Memory (RAM), nicht flüchtigen (Non-Volatile, NV) Speicher oder anderen Speicher, der für die Komponenten des Systems 300 zugänglich ist. Der Systemspeicher 310 ist über eine Speicherschnittstelle 316 an den Chipsatz 315 gekoppelt.
-
Der Chipsatz 315 kann u. a. ein Memory-Controller-Hub (MCH), ein Northbridge, ein Input/Output-Controller-Hub (ICH), ein Southbridge und ein Root-Controller/Hub umfassen. Hier ist der Chipsatz 315 durch einen seriellen Link 323 an einen Switch/eine Brücke 320 gekoppelt. Die I/O-Module 317 und 321, die auch als Schnittstellen/Anschlüsse 317 und 321 bezeichnet werden können, umfassen/implementieren einen mehrschichtigen Protokollstapel zum Bereitstellen der Kommunikation zwischen Chipsatz 315 und Switch 320. Bei einer Ausführungsform können mehrere Einheiten an den Switch 320 gekoppelt werden.
-
Der Switch 320 leitet Pakete/Nachrichten von einer Einheit 325 stromaufwärts, d. h. in einer Hierarchie nach oben zum Chipsatz 315, und stromabwärts, d. h. in einer Hierarchie nach unten vom Chipsatz 315 weg zur Einheit 325. I/O-Module 322 und 326 implementieren einen mehrschichtigen Protokollstapel zum Kommunizieren zwischen Switch 320 und Einheit 325 über einen seriellen Link 327. Die Einheit 325 umfasst eine interne oder externe Einheit oder Komponente, die an ein elektronisches System gekoppelt wird, z. B. an ein I/O-Gerät, einen Netzwerk-Interface-Controller (NIC), eine Add-in-Karte, einen Audioprozessor, einen Netzwerkprozessor, ein Festplattenlaufwerk, ein Speichergerät, einen Monitor, einen Drucker, eine Maus, eine Tastatur, einen Router, ein tragbares Speichergerät, ein Firewire, einen Universal Serial Bus (USB), einen Scanner und andere Eingabe-/Ausgabegeräte.
-
Ein Grafikbeschleuniger 330 ist ebenfalls durch einen seriellen Link 332 an den Chipsatz 315 gekoppelt. Bei einer Ausführungsform ist der Grafikbeschleuniger 330 an einen MCH gekoppelt, der an einen ICH gekoppelt ist. Die I/O-Module 331 und 318 implementieren auch einen mehrschichtigen Protokollstapel zum Kommunizieren zwischen dem Grafikbeschleuniger 330 und dem Chipsatz 315.
-
Ausführungsformen können als Code implementiert und auf einem Speichermedium gespeichert werden, das Anweisungen enthält, die zum Programmieren eines Systems für die Ausführung der Anweisungen verwendet werden können. Das Speichermedium kann u. a. ohne Einschränkung jede Art von Disks umfassen, u. a. Floppy Disks, Optische Disks, Compact Disk Read-Only Memories (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetoptische Disks (MO), elektronische Baugruppen wie Read-Only Memories (ROMs), Random Access Memories (RAMs) wie dynamische Random Access Memories (DRAMs), statische Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flash Memories, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetische oder optische Karten oder jede andere Art von Speichermedium, das sich für die Speicherung von elektronischen Anweisungen eignet.
-
Während die vorliegende Erfindung unter Verwendung einer begrenzten Anzahl von Ausführungsformen beschrieben wird, sind sich fachkundige Personen bewusst, dass viele weitere Modifizierungen und Varianten möglich sind.