-
FACHGEBIET
-
Die vorliegende Offenbarung betrifft allgemein das Feld der Elektronik. Insbesondere betrifft eine Ausführungsform der Erfindung Verfahren zum Bereitstellen von Strukturen von Sende-(TX-) Filtern mit endlicher Impulsantwort (FIR) und Empfangs- (RX-) Linearentzerrern (LE-) oder RX-Entzerrern mit Entscheidungsrückkopplung (DFE) in Hochgeschwindigkeitsserienverkettungen.
-
HINTERGRUND
-
Eine für gewöhnlich in Computersystemen verwendete Eingangs-/Ausgangs- (I/O oder IO) Schnittstelle ist Peripheral Component Interconnect Express (PCIe). Mit zunehmender PCIe-Geschwindigkeit reduziert jedoch eine gewisse resultierende Signalverzerrung die Zuverlässigkeit der Signalkommunikation. Beispielsweise bezieht sich Intersymbolinterferenz (ISI) im Allgemeinen auf eine Form der Signalverzerrung, bei der ein Symbol nachfolgende Symbole stört. Diese unerwünschte Signalverzerrung kann eine ähnliche Wirkung wie Rauschen haben, das Signalkommunikation weniger zuverlässig macht. Darüber hinaus arbeiten manche Hochgeschwindigkeits-Serien-I/O-Implementierungen (wie etwa PCIe) in Frequenzbereichen, in denen die ISI zu einer großen Herausforderung beim Erreichen eines angepeilten Hochgeschwindigkeitsdatentransfers wird.
-
US 2012/0201289A1 zeigt einen entscheidungsrückgekoppelten Entzerrer. Der Entzerrer weist mindestens einen Komparator auf, wobei der mindestens eine Komparator eine erste Stufe umfasst, die einen Hauptzweig mit zwei Spurschaltern mit einer Widerstandslast, einen Offset-Löschungszweig, eine Vielzahl von Abgriffszweigen mit Transistorgrößen, die kleiner als der Hauptzweig sind, in denen vorherige Entscheidungen des Entzerrers mit den Abgriffsgewichten unter Verwendung von Strommodusschaltung gemischt werden, und einen kreuzgekoppelten Latch-Zweig umfasst; und eine zweite Stufe, die ein Komparatormodul zum Treffen von Entscheidungen auf der Grundlage der Ausgänge der ersten Stufe und eines Takteingangs sowie eine Vielzahl von Flipflops zum Speichern des Ausgangs des Komparatormoduls umfasst.
-
DE 103 29 661 B4 zeigt einen adaptiven Sendeentzerrer zum Entzerren digitaler Symbole, die über einen Kommunikationskanal übertragen werden sollen. Der Entzerrer weist folgende Merkmale auf: ein Sendefilter, das ein zugeordnetes Register zum Speichern von zumindest einem Filterkoeffizienten aufweist; und eine Abstimmaschine zum Erzeugen von Verhaltensmetrikwerten basierend auf digitalen Symbolen, die durch den Kommunikationskanal empfangen werden. Die Abstimmaschine ist konfiguriert, um zumindest einen neuen Filterkoeffizienten basierend auf den Verhaltensmetrikwerten unter Verwendung eines Simplexalgorithmus zu identifizieren und um den zumindest einen neuen Filterkoeffizienten zu dem Sendefilter für eine Speicherung in dem Register zu kommunizieren. Das Sendefilter ist ein digitales nicht rekursives Filter (FIR).
-
EP 2 487 848 A2 beschreibt ein Verfahren beinhaltend ein Empfangen eines phasenverzerrten Signals oder eines Signals mit übertragenen Daten als Eingangssignal, wobei das phasenverzerrte Signal aus einem phasenentzerrten Signal durch Übertragung über einen Kommunikationskanal verzerrt wurde, wobei das Signal mit übertragenen Daten übertragene Daten umfasst; das Erzeugen einer nicht-abgeleiteten Version des Eingangssignals durch Anwenden eines Verzögerungsoperators in einem zeitkontinuierlichen Bereich auf das Eingangssignal; Erzeugen einer abgeleiteten Version des Eingangssignals durch Anwenden eines Ableitungsoperators in einem zeitkontinuierlichen Bereich auf das Eingangssignal; Erzeugen eines ersten Produktsignals durch Multiplizieren der nicht-abgeleiteten Version des Eingangssignals mit einem ersten Koeffizienten, wobei der erste Koeffizient eine positive Zahl ist; Erzeugen eines zweiten Produktsignals durch Multiplizieren der abgeleiteten Version des Eingangssignals mit einem zweiten Koeffizienten, wobei der zweite Koeffizient eine negative Zahl ist; und Erzeugen eines Ausgangssignals durch Summieren des ersten und zweiten Produktsignals.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Erfindung ist Gegenstand der unabhängigen Patentansprüche. Vorteilhafte Ausgestaltungen der Erfindungen sind Gegenstand der abhängigen Patentansprüche und werden nachstehen beschrieben.
-
Figurenliste
-
Die detaillierte Beschreibung ist mit Bezug auf die beiliegenden Figuren bereitgestellt. In den Figuren identifiziert/identifizieren die am meisten links stehende(n) Ziffer(n) einer Referenznummer die Figur, in der diese Referenznummer zum ersten Mal auftritt. Die Verwendung derselben Referenznummern weist auf ähnliche oder identische Gegenstände hin.
- 1-2 und 6-7 veranschaulichen Blockdiagramme von Ausführungsformen von Computersystemen, die verwendet werden, um verschiedene hierin diskutierte Ausführungsformen umzusetzen.
- 3 und 4 veranschaulichen Blockdiagramme von Empfangslogik und Sendelogik, die verwendet werden, um verschiedene hierin diskutierte Ausführungsformen umzusetzen.
- 5 veranschaulicht Flussdiagramme von Verfahren gemäß manchen Ausführungsformen.
-
DETAILLIERTE BESCHREIBUNG
-
In der nachfolgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein umfassendes Verständnis verschiedener Ausführungsformen bereitzustellen. Jedoch werden manche Ausführungsformen ohne die spezifischen Details in die Praxis umgesetzt. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Bestandteile und Schaltkreise nicht im Detail beschrieben, um die jeweiligen Ausführungsformen nicht unklar zu machen. Verschiedene Aspekte von Ausführungsformen der Erfindung werden unter Verwendung verschiedener Mittel durchgeführt, wie etwa integrierten Halbleiterschaltkreisen („Hardware“), computerlesbaren Befehlen, die in einem oder mehreren Programmen organisiert sind („Software“) oder eine Kombination aus Hardware und Software. Für die Zwecke dieser Offenbarung soll der Verweis auf „Logik“ entweder Hardware, Software oder eine Kombination daraus bedeuten.
-
Manche Ausführungsformen verbessern die Qualität und/oder Geschwindigkeit von Hochgeschwindigkeits-Serien-I/O-Kanälen oder Verbindungen mittels verschiedener Verfahren, wie etwa digitale Signalbearbeitung, Signalintegrität und/oder nichtlineare Analyse etc. Solche Verfahren können eingesetzt werden, um die Gesamtkanalqualität zu verbessern, z.B. bei PCIe 3.0 Geschwindigkeiten und darüber hinaus. PCIe 3.0 kann in Übereinstimmung mit PCI Express Basisspezifikation 3.0, Fassung 3.0, Version 1.0 vom 10. November 2010 und Errata für die PCI Express Basisspezifikation 3.0, Fassung 3.0, vom 20. Oktober 2011 implementiert werden. Zumindest eine Ausführungsform balanciert die Entzerrungsbestrebungen in Hochgeschwindigkeitsverbindungen mit TX FIR und RX (LE/DFE) Architekturen.
-
Wie zuvor erwähnt arbeiten manche Hochgeschwindigkeits-Serien-I/O-Implementationen (wie etwa PCIe 3.0) in Frequenzbereichen, in denen die ISI zu einer großen Herausforderung beim Erreichen eines angepeilten Hochgeschwindigkeitsdatentransfers wird. Um Probleme mit ISI zu eliminieren, können einige Verfahren eingesetzt werden, damit der Senderaufbau die durch ISI verursachte Verzerrung kompensieren kann. Manche Verfahren umfassen zwei Entzerrungsstufen in Serie (wie mit Bezug auf 3 weiter erörtert wird): (1) Senderentzerrung: dies soll helfen, den Hochfrequenzgehalt des übertragenen Signals über den Niedrigfrequenzgehalt durch Präemphase anzuheben (z.B. eine Vorverzerrung, um der kanalinduzierten Verzerrung bei hohen Frequenzen entgegenzuwirken); und (2) Empfängerentzerrung. Hier besteht der Empfängerpfad aus einer Vorwärtsentzerrerstufe (FFE), gefolgt von einer Stufe eines Entscheidungsrückkopplungsentzerrers (DFE). Die FFE-Entzerrungsstufe ist im Allgemeinen ein Linearentzerrer (LE) in diskreter oder kontinuierlicher Zeit-LE (CTLE), um Vorläufer-ISI zu kompensieren, aber er verstärkt auch verbindungsinduziertes additives Rauschen. Die DFE-Stufe kann nichtlinear sein und auf vergangenen Entscheidungen basieren, so dass sie eine Rauschverstärkung der FFE-Stufe abschwächen und Rest-ISI kompensieren kann.
-
Darüber hinaus beschreibt die PCIe 3.0 Spezifikation die Aufbaubeschränkungen des TX FIR und spezifiziert das Verhaltensmodell der Empfängerentzerrung. Das Verhaltensmodell spezifiziert die oben erwähnten Empfängerentzerrungsstufen, so dass viele Implementationen von PCIe 3.0 I/O diese Architektur befolgen. In manchen Implementationen ist die Empfängerentzerrung adaptiv, das heißt, die Filterkoeffizienten werden basierend auf Messungen des empfangenen Datenmusters angepasst. In manchen Fällen ist die Anpassung auf die DFE-Stufe über den Least-Mean-Squares- (LMS-) Algorithmus beschränkt. Diese Anpassung wird verwendet, um die Qualität der Verbindung, gemessen anhand von Messwerten, wie die durch Empfängerspannung und Zeitbegrenzungsverfahren erhaltenen Messwerte, sicherzustellen. Dieses anpassende Filtern bleibt aktiv, um Abweichungen aufgrund von Siliciumimplementation und Qualitätsschwankungen der Verbindung zu kompensieren.
-
Darüber hinaus spezifiziert PCIe 3.0 die Möglichkeit, eine zusätzliche Empfängeradaptierung über den Entzerrungsteil des Geschwindigkeitsänderungstrainingsprotokolls durchzuführen. In diesem Modus wechseln sich die Empfänger damit ab, den TX-Entzerrer des Verbindungspartners abzustimmen, um die Verbindungsqualität über als „Voreinstellungen“ definierte festgelegte TX-Entzerrungspunkte hinaus zu verbessern. Dieser spezifizierungsdefinierte Mechanismus verwendet das PCIe 3.0 Trainingsprotokoll und die Verbindung selbst als das Vehikel, um die Anpassungen auf das TX des Verbindungspartners zu transferieren, das versucht, Seitenbänder oder den Bedarf nach Referenzsignalen zu vermeiden. Für den Fall, dass PCIe 3.0 bestimmt, welche Koeffizientensätze (wie etwa FIR-Tapwerte) zum Abstimmen des TX des Verbindungspartners gesendet werden, ist FIR implementationsspezifisch und muss kein anderes adaptives Filterverfahren befolgen.
-
Aus diesem Grund versäumen es die Implementationen von PCIe 3.0, die Empfängeradaption einzusetzen, um den TX-Entzerrer des Verbindungspartners abzustimmen, da die TX-Entzerreradaption vom RX-Entzerrer entkoppelt ist. Dies wiederum motiviert Umgehungsstrategien, wie die Verwendung einer „besten Voreinstellung“, die über Offline-Verbindungsanalyse für jede Plattform oder über plattforminterne Margining-Verfahren gefunden werden. Jedoch verstehen sich Voreinstellungen als Ausgangspunkte, z.B. um eine Basisverbindungs-Bitfehlerhäufigkeit (BER) von weniger als 10-4 zu garantieren, um sicherzustellen, dass der Rest des Entzerrungsprotokolls stattfinden kann. Ebenso generalisieren manche softwarebasierten Algorithmen zur Bestimmung der besten Koeffizientensätze für den TX FIR des Verbindungspartners weiterhin für alle Bahnen, bauen dabei auf Voreinstellungen und Margining und werden somit sehr zeitintensiv und nicht so flexibel wie ein Trainingsverfahren pro Bahn. Für manche Plattformen, wie etwa Kurzkanäle, sind Voreinstellungen ausreichend um Ziel-BFH zu erreichen und somit sind diese Verfahren anwendbar.
-
Zusätzlich dazu ist es möglich, dass das RX-Analogfrontende dazu abgestimmt ist, in einer gegebenen Entzerrungsregion zu arbeiten, nur um die Verwendung einer Voreinstellung zu ermöglichen. Beispielsweise kann es dazu abgestimmt sein, um eine „Schlimmstfall-ISI“ für Langkanalszenarios, in denen Langkanalvoreinstellungen verwendet werden, zu kompensieren. Dies kann jedoch ein unerwartetes Verhalten des DFE verursachen, da die TX FIR und CTLE dazu neigen, Hochfrequenzsymbole zu überkompensieren und Nachläufer-ISI einzuführen, die das DFE mühevoll korrigieren kann.
-
In den oben erwähnten Fällen wird der Begriff der Symmetrisierung der Entzerrungsbestrebung über die Verbindung überhaupt nicht verwendet. Zu diesem Zweck symmetrisieren manche Ausführungsformen die in Serie verketteten Entzerrer, die auf einem Kanal arbeiten in folgender Reihenfolge: TX FIR, Verbindung, FFE/CTLE und DFE. Die Entzerrungssymmetrisierung wird durch Abstimmen der TX-FIR-Tapgewichte in Verbindung mit Veränderungen an den RX-Entzerrungstaps für FFE/CTLE und automatischer Einstellung der DFE-Taps durchgeführt. Dieser Ansatz ist in der Lage, die Flexibilität bereitzustellen, um viele Betriebsbedingungen über eine weitere Entzerrungsraumerforschung abzudecken, im Gegensatz zu jeder Strategie, die nur auf Voreinstellungen basiert. Die Logik, die zum Durchführen verschiedener Vorgänge hierin verwendet wird, kann auch in Firmware, BIOS (Basic Input/Output System) etc. umgesetzt sein.
-
Darüber hinaus ist eine symmetrisierte Entzerrungsbestrebung (BEE) nicht auf PCIe 3.0 beschränkt und ist auf jede Hochgeschwindigkeitsverbindung, die z.B. einen steuerbaren TX-Entzerrer aufweist, und adaptive jedoch steuerbare und beobachtbare RX-Entzerrer anwendbar. Beispielsweise haben manche (BEE-) Ausführungsformen die Einschränkungen einer festgelegten Voreinstellung oder den Ansatz der besten Voreinstellung überwunden, indem sie: (1) mehr ausführbare Betriebspunkte des TX-FIR bieten und das Verhalten des CTLE/FFE auf einer Basis pro Bahn einstellen (was zu Leitweglenkungsunterschieden zwischen den Bahnen führen kann); (2) von Empfänger-Margining (z.B. Spannungsschwankungen oder Zittereinspeisung) unabhängig sind, was den Zustand des Steuerstapels beeinflussen kann; und/oder (3) die Geschwindigkeit verbessern, z.B. weniger als 400 ms für breite x16-Verbindungen in einer Softwareimplementation, die möglicherweise noch nicht für Geschwindigkeit optimiert ist, benötigen (im Gegensatz zum voreingestellten Margining-Verfahren, das selber in seiner am meisten optimierten Form über 1 s benötigt).
-
Verschiedene Ausführungsformen werden hierin mit Bezug auf eine Rechnersystemkomponente, wie etwa die hierin diskutierten Komponenten, diskutiert, z.B. mit Bezug auf 1-2 und 6-7. Im Detail veranschaulicht 1 ein Blockdiagramm eines Rechnersystems 100 gemäß einer Ausführungsform der Erfindung. Das System 100 umfasst ein oder mehrere Agenten 102-1 bis 102-M (zusammen als „Agenten 102“ oder noch allgemeiner „Agent 102“ bezeichnet). In einer Ausführungsform sind die Agenten 102 Komponenten eines Rechnersystems, wie etwa die mit Bezug auf 2 und 6-7 diskutierten Rechnersystemen.
-
Wie in 1 veranschaulicht kommunizieren die Agenten 102 über eine Netzwerkstruktur 104. In einer Ausführungsform kann die Netzwerkstruktur 104 eine oder mehrere Verbindungen (oder Verbindungsnetzwerke) umfassen, die über eine Serien- (z.B. eine Punkt-zu-Punkt-) Verbindung und/oder ein gemeinsam genutztes Kommunikationsnetzwerk kommunizieren. Beispielsweise können manche Ausführungsformen die Komponentenfehlerbeseitigung oder Validierung von Verbindungen ermöglichen, die die Kommunikation mit vollständig gepufferten doppelreihigen Speichermodulen (FBD) ermöglichen, z.B. wenn die FBD-Verbindung eine Serienverbindung zum Koppeln von Speichermodulen mit einer Host-Controllervorrichtung (wie etwa einem Prozessor oder einem Speicherknoten) ist. Fehlerbeseitigungsinformation wird vom FBD-Kanal-Host übertragen, so dass die Fehlerbeseitigungsinformation entlang des Kanals von Kanalverkehrsüberwachungserfassungsinstrumenten (wie etwa ein oder mehrere Logikanalysatoren) beachtet wird.
-
In einer Ausführungsform kann das System 100 ein Schichten-Protokollschema unterstützen, welches eine physikalische Schicht, eine Verbindungsschicht, eine Leitweglenkungsschicht, eine Transportschicht und/oder eine Protokollschicht umfasst. Die Struktur 104 ermöglicht zudem die Übertragung von Daten (z.B. in Form von Paketen) von einem Protokoll (z.B. einem Caching-Prozessor oder einer Caching-bewussten Speichersteuerung) zu einem anderen Protokoll für ein Punkt-zu-Punkt-Netzwerk. Auch kann die Netzwerk-Struktur 104 in manchen Ausführungsformen eine Kommunikation, die sich an ein oder mehrere Cache-kohärente Protokolle hält, bereitstellen.
-
Darüber hinaus können, wie durch die Richtung der Pfeile in 1 gezeigt, die Agenten 102 Daten über die Netzwerkstruktur 104 übertragen und/oder empfangen. Somit nutzen manche Agenten eine einseitig gerichtete Verbindung, während andere eine doppelseitig gerichtete Verbindung für die Kommunikation nutzen. Zum Beispiel überträgt ein oder mehrere Agenten (wie etwa Agent 102-M) Daten (z.B. über eine einseitig gerichtete Verbindung 106), (ein) andere(r) Agent(en) (wie etwa Agent 102-2) empfängt/empfangen Daten (z.B. über eine einseitig gerichtete Verbindung 108), während manche Agent(en) (wie etwa Agent 102-1) Daten sowohl übertragen als auch empfangen (z.B. über eine doppelseitig gerichtete Verbindung 110).
-
Ebenfalls in Übereinstimmung mit einer Ausführungsform umfasst/umfassen einer oder mehrere der Agenten 102 einen oder mehrere Eingangs-/Ausgangsknoten (IOH) 120, um die Kommunikation zwischen einem Agenten (z.B. der gezeigte Agent 102-1) und eine oder mehrere Eingangs-/Ausgangsvorrichtungen („I/O-“ oder „IO“-Vorrichtungen) 124 (wie etwa PCIe I/O-Vorrichtungen). Der IOH 120 umfasst einen Wurzelkomplex (RC) 122 (der einen oder mehrere Wurzelanschlüsse umfasst) um Komponenten des Agenten 102-1 (wie einen Prozessor, Speicherteilsystem etc.) und die I/O-Vorrichtungen 124 in Übereinstimmung mit der PCIe-Spezifikation (z.B. in Übereinstimmung mit der PCI Express Basisspezifikation 3.0, auch als PCIe 3.0 bezeichnet) zu koppeln und/oder die Kommunikation zwischen ihnen zu ermöglichen. In manchen Ausführungsformen umfasst/umfassen eine oder mehrere Komponenten eines Mehragentensystems (z.B. Prozessorkern, Chipsatz, Eingangs-/Ausgangsknoten, Speichercontroller etc.) den RC 122 und/oder IOH 120, wie mit Bezug auf die verbleibenden Figuren näher erörtert wird.
-
Zusätzlich dazu umfasst der Agent 102 eine PCIe-Steuerung 135, um verschiedene Vorgänge einer PCIe-Schnittstelle zu verwalten, einschließlich, beispielsweise die Verbesserung der Qualität und/oder Geschwindigkeit von Hochgeschwindigkeits- (z.B. Serien-) I/O-Kanälen von PCIe-Komponenten im Agenten 102. Zudem, wie in 1 veranschaulicht, hat der Agent 102-1 Zugriff auf einen Speicher 140. Wie mit Bezug auf 2-7 weiter erörtert, speichert der Speicher 140 verschiedene Elemente, einschließlich beispielsweise eines OS, eines Gerätetreibers etc.
-
Im Detail ist 2 ein Blockdiagramm eines Rechnersystems 200 in Übereinstimmung mit einer Ausführungsform. Das System 200 umfasst eine Vielzahl von Sockeln 202-208 (vier gezeigt, aber manche Ausführungsformen können mehr oder weniger Sockel umfassen). Jeder Sockel umfasst einen Prozessor und eines oder mehrere aus einem und PCIe-Steuerung 135. In manchen Ausführungsformen können der IOH 120, RC 122 und/oder PCIe-Steuerung 135 in einer oder mehreren Komponenten von System 200 vorliegen (wie etwa die in 2 gezeigten). Zudem liegen abhängig von der Implementation mehr oder weniger Blöcke von 120, 122 und/oder 135 in einem System vor. Zusätzlich dazu ist jeder Sockel über eine Punkt-zu-Punkt-Verbindung (PtP-Verbindung) oder einer Differenzverbindung, wie etwa ein Schnellpfadverbindung (QPI), MIPI (Mobile Industrieprozessorschnittstelle) etc. mit anderen Sockeln gekoppelt. Wie mit Bezug auf die Netzwerkstruktur aus 1 erörtert ist jeder Sockel mit einem lokalen Abschnitt des Speichersystems gekoppelt, z.B. das von einer Vielzahl von doppelreihigen Speichermodulen (DIMM), die dynamische Sofortzugriffsspeicher (DRAM) umfassen, ausgebildet wird.
-
In einer anderen Ausführungsform kann die Netzwerkstruktur für jede Ein-Chip-(SoC-) System-Anwendung eingesetzt werden, benutzerdefinierte oder Standardschnittstellen einsetzen, wie etwa ARM-konforme Schnittstellen für AMBA (Advanced Microcontroller Bus Architecture), OCP (Open Core Protocol), MIPI (Mobile Industrieprozessorschnittstelle), PCI (Peripheral Component Interconnect) oder PCIe (Peripheral Component Interconnect Express.
-
Manche Ausführungsformen nutzen eine Technik, die die Verwendung heterogener Ressourcen, wie etwa AXI/OCP-Technologien, in einem PC-basierten (Personal Computer) System, wie etwa einem PCI-basierten System ermöglichen, ohne Änderungen an den IP-Ressourcen selbst vorzunehmen. Ausführungsformen stellen zwei sehr dünne Hardware-Blöcke bereit, die hierin als eine Y-Einheit und Shim bezeichnet werden, die verwendet werden können, um AXI/OCP-IP an eine automatisch generierte Verbindungsstruktur anzuschließen, um PCI-kompatible Systeme zu erzeugen. In einer Ausführungsform verbindet eine erste (z.B. eine nördliche) Schnittstelle der Y-Einheit mit einem Adapterblock, der eine Schnittstelle zu einem PCI-kompatiblen Bus, wie etwa einem direkten Medienschnittstellenbus (DMI-Bus), einem PCI-Bus oder einem Peripheral-Component-Interconnect-Express-Bus (PCIe-Bus) bildet. Eine zweite (z.B. südliche) Schnittstelle verbindet direkt mit einer Nicht-PC-Verbindung, wie etwa einer AXI/OCP-Verbindung. In verschiedenen Implementationen kann das ein OCP-Bus sein.
-
In manchen Ausführungsformen setzt die Y-Einheit eine PCI-Nummerierung um, indem sie PCI-Konfigurationszyklen in Transaktionen übersetzt, die die Ziel-IP verstehen kann. Diese Einheit führt auch Adressübersetzung von verschiebbaren PCI-Adressen auf festgelegten AXI-/OCP-Adressen und umgekehrt durch. Die Y-Einheit kann zudem einen Ordnungsmechanismus umsetzen, um ein Produzenten-Verbraucher-Modell (z.B. ein PCI-Produzenten-Verbraucher-Modell) zu erfüllen. Umgekehrt sind einzelne IP über zweckgewidmete PCI-Shims mit der Verbindung verbunden. Jeder Shim kann den gesamten PCI-Header für die entsprechende IP umsetzen. Die Y-Einheit leitet alle Zugriffe auf den PCI-Header und den Speicherplatz des Geräts auf den Shim. Der Shim verbraucht alle Header-Lese-/Schreib-Transaktionen und gibt andere Transaktionen an die IP weiter. In manchen Ausführungsformen setzt der Shim auch alle leistungsverwaltungsbezogenen Eigenschaften für die IP um.
-
Somit wählen Ausführungsformen, die eine Y-Einheit umsetzen, einen verteilten Ansatz anstatt ein monolithischer Kompatibilitätsblock zu sein. Funktionalität, die allen IP gemein ist, z.B. Adressübersetzung und Bestellung, ist in der Y-Einheit umgesetzt, während IPspezifische Funktionalität, wie etwa Leistungsverwaltung, Fehlerbehandlung und so weiter, in den Shims, die für die jeweilige IP maßgeschneidert sind, umgesetzt ist.
-
Auf diese Weise kann eine neue IP mit minimalen Änderungen an der Y-Einheit hinzugefügt werden. Beispielsweise können die Änderungen in einer Implementation durch das Hinzufügen eines neuen Eintrags in einer Adressumleitungstabelle auftreten. Während die Shims IP-spezifisch sind, ist in manchen Implementationen ein Großteil der Funktionalität (z.B. über 90 %) allen IP gemein. Dies ermöglicht eine rasche Rekonfiguration eines bestehenden Shims für eine neue IP. Manche Ausführungsformen ermöglichen somit die Verwendung einer automatisch erzeugten Verbindungsstruktur ohne Modifikation. In einer Punkt-zu-Punkt-Busarchitektur kann das Konzipieren einer Verbindungsstruktur eine herausfordernde Aufgabe sein. Der oben beschriebene Y-Einheitsansatz versetzt ein Industrieökosystem in ein PCI-System mit geringstmöglichem Aufwand und ohne jegliche Änderungen an Industriestandardinstrumenten zu benötigen.
-
Wie in 2 gezeigt ist jeder Sockel mit einer Speichersteuerung (MC)/Heimagenten (HA) gekoppelt (wie etwa MCO/HAO bis MC3/HA3). Die Speichersteuerungen sind mit einem entsprechenden lokalen Speicher (bezeichnet als MEMO bis MEM3) verbunden, der ein Abschnitt eines Systemspeichers (wie etwa Speicher 612 aus 6) sein kann. In manchen Ausführungsformen kann die Speichersteuerung (MC)/Heimagent (HA) (wie etwa MC0/HA0 bis MC3/HA3) derselbe oder ähnlich wie Agent 102-1 aus 1 sein und der Speicher, bezeichnet als MEMO bis MEM3 kann derselbe oder ähnlich einer Speichervorrichtung, wie die mit Bezug auf eine der Figuren hierin diskutierten Speichervorrichtungen, sein. Im Allgemeinen senden Prozess-/Cache-Agenten Anfragen an einen Heimknoten für Zugriff auf eine Speicheradresse, die einem entsprechenden „Heimagenten“ zugeordnet ist. Auch können in einer Ausführungsform MEMO bis MEM3 zum Spiegeln von Daten, z.B. als Master und Slave, konfiguriert sein. Auch kann/können in manchen Ausführungsformen auf demselben integrierten Schaltkreisnacktchip eine oder mehrere Komponenten von System 200 umfasst sein.
-
Darüber hinaus ist eine Implementation (wie etwa die in 2 gezeigte) für eine nahtfreie Sockelkonfiguration mit Spiegelung. Beispielsweise werden einer Speichersteuerung (wie etwa MC0/HA0) zugeordnete Daten über die PtP-Verbindungen auf eine andere Speichersteuerung (wie etwa MC3/HA3) gespiegelt.
-
3 und 4 veranschaulichen Blockdiagramme von Empfangs- und Sendelogik gemäß manchen Ausführungsformen. Im Detail veranschaulicht 3 ein Blockdiagramm eines Hochgeschwindigkeitsverbindungssystems mit einer Entzerrungslogik und 4 veranschaulicht die Sprungantwort der DFE-Logik und FIR-Logik und wie die RX-Struktur zur ISI-Entzerrung führt. In manchen Ausführungsformen umfassen eine oder mehrere Komponenten der Systeme aus 1, 2, 6 oder 7 (wie etwa der IOH 120, RC 122 und/oder der PCIe-Controller 135) die in 3 und 4 gezeigte Logik.
-
Bezugnehmend auf 3 wird ein gesendetes Signal über eine TX-FIR-Filterlogik 302 empfangen, die an eine DFE-Logik 304 weitergegeben wird (z.B. durch einen TX-Treiber, Verbindung 306, RX-Verstärker und eine FFE/CTLE-Logik 308). Die Verbindung 306 kann dieselbe oder ähnlich sein wie die mit Bezug auf 1 diskutierten Verbindungen sein. Wie in 3 gezeigt, umfasst die TX-FIR-Filterlogik 302 einen Verzögerungs-Tap-TX-FIR-Filter (z.B. den 3-Verzögerungs-Tap-TX-FIR-Filter in 3), der verwendet wird, um den Hochfrequenzgehalt des übertragenen Signals über den Niedrigfrequenzgehalt voranzuheben (z.B. Vorverzerrung, um einer kanalinduzierten Verzerrung bei hohen Frequenzen entgegenzuwirken). Auch ist der DFE-Logik 304 eine FFE- oder CTLE-Logik 308 vorangestellt. Die FFE-Logik ist im Allgemeinen eine Linearentzerrerlogik (LE-Logik) in einem diskreten oder kontinuierlichen Zeit-LE (CTLE), um die Vorläufer-ISI zu kompensieren, aber sie kann auch verbindungsinduziertes additives Rauschen verstärken. Jedoch ist die DFE-Logik 304 nichtlinear und ihr Betrieb basiert auf vorangegangenen Entscheidungen (d.h. vorangegangen gewonnene Signalwerte), so dass sie in der Lage ist, die Rauschverstärkung der FFE/CTLE-Logik 308 abzuschwächen.
-
5 veranschaulicht Flussdiagramme von Verfahren zum Umsetzen von einem symmetrischen Entzerrung in Hochgeschwindigkeitsverbindungen gemäß manchen Ausführungsformen. In der Veranschaulichung werden Verfahren für drei separate Stufen gezeigt (d.h. Aufbaustufe, Datensammlungsstufe und Datenverarbeitungsstufe). In verschiedenen Ausführungsformen werden die mit Bezug auf 5 diskutierten Ausführungsformen von einer oder mehreren der mit Bezug auf 1, 2, 3, 4, 6 und/oder 7 diskutierten Komponenten (wie etwa Logik 120, 122, 135, 302, 304, 308 etc.) durchgeführt. Bezugnehmend auf 5 wird die Aufbaustufe vor der tatsächlichen Implementierung der symmetrischen Entzerrung durchgeführt, um die Logik vorzubereiten. In einem Vorgang 502 wird bestimmt, ob die Verbindung (z.B. die Verbindung 306 aus 3) mit einer Zielgeschwindigkeit läuft und der DFE trainiert ist. Ist dies der Fall, endet die Aufbaustufe; ansonsten wird/werden in einem Vorgang 504, die Einschränkung(en) für den TX-FIR-Partner erhalten. In einem Vorgang 506 wird die TX-Entzerrung (EQ) initialisiert (z.B. auf null gesetzt). In einem Vorgang 508 wird der TX-Maximalentzerrungspunkt (minus EQ-delta) berechnet. In einem Vorgang 510 werden die neuen TX-FIR-Taps auf alle Bahnen des Verbindungspartners programmiert und die Verbindung wird neu trainiert. In einem Vorgang 512 wird bestimmt, ob das Training für die Zielgeschwindigkeit der Verbindung angemessen ist. Falls nicht, wie in einem Vorgang 514, wird das Entzerrungs-delta um eins vermindert; ansonsten werden in einem Vorgang 516 die CTLE/FEE-Spitzengrenzen und Anfangspunkte für alle Bahnen festgelegt. Nach Vorgang 516 wird die Datensammlungsstufe initiiert.
-
Wie in 5 gezeigt beginnt die Datensammlungsstufe in einem Vorgang 520, in dem das Training auf einen sicheren Punkt durchgeführt wird, um die CTLE/FFE-Spitzengrenzen auf alle Bahnen festzulegen. In einem Vorgang 522 wird das Training auf eine Zielgeschwindigkeit durchgeführt und die Verbindung wird auf Qualität und Stabilität überprüft. In einem Vorgang 524 wird bestimmt, ob die Verbindungsqualität annehmbar ist (z.B. eine BER, die unter der Ziel-BER liegt). Wenn sie annehmbar ist, werden in einem Vorgang 526 für jede Bahn DFE-Taps abgetastet und die Daten, die der aktuellen CTLE-Spitzeneinstellung zugeordnet sind, werden gespeichert (z.B. in einer der hierin diskutierten Speichervorrichtungen). In einem Vorgang 528 wird bestimmt, ob die CTLE/FFE-Spitzeneinstellung erreicht wurde. Falls nicht, erhöht Vorgang 530 die CTLE/FFESpitzeneinstellung um eins. In einem Vorgang 532 wird bestimmt, ob eine DFE-Tap-Sättigung für eine der Bahnen detektiert wurde. Falls keine DFE-Tap-Sättigung vorliegt, wird die Datenverarbeitungsstufe initiiert; ansonsten, wenn bei einer Bahn eine DFE-Tap-Sättigung vorliegt, wird in einem Vorgang 536 ein Training zu einem sicheren Punkt durchgeführt, um den Minimal-CTLE/FFE-Spitzenwert auf gesättigte Bahnen einzustellen. In einem Vorgang 538 wird der TX-Maximalentzerrungspunkt nur für betroffene Bahnen (d.h. Bahnen mit einer DFE-Tap-Sättigung) um eins herabgesetzt. In 540 ist der neue TX-FIR-Tap-Satz auf die vom Verbindungspartner betroffenen Bahnen programmiert und die Verbindung wird neu trainiert. In einem Vorgang 542 wird bestimmt, ob keine Sättigung vorliegt. Wenn eine Sättigung weiterhin vorliegt, wird in einem Vorgang 544 das EQ-delta um eins herabgesetzt und die Sequenz der Vorgänge 538, 540 und 542 wird wiederholt; ansonsten wird bei fehlender Sättigung die Datenverarbeitungsstufe initiiert.
-
Sobald sämtliche Daten gesammelt wurden, wird die Datenverarbeitungsstufe initiiert, in der die Sprungantwort des DFE-FIR erzeugt und analysiert wird. Beispielsweise wird in einem Vorgang 560 eine Bahn ausgewählt (z.B. Bahn null wird ausgewählt). In einem Vorgang 562 werden alle DFE-FIR-Sprungantworten für die ausgewählte Bahn erzeugt. In einem Vorgang 564 werden die TX-FIR- und CTLE/FFE-Einstellungen für die Fälle, in denen die Maximalfrequenzdiskriminierung erreicht wurde (z.B. Sprungantwort mit höherer Bandbreite (B/W)), gespeichert/gesichert (z.B. auf eine beliebige der hierin diskutierten Speichervorrichtungen). In einem Vorgang 566 wird bestimmt, ob alle Bahnen analysiert wurden. Falls nicht, wird die nächste Bahn ausgewählt; ansonsten, wenn alle analysiert wurden, werden in einem Vorgang 570 neue Werte der CTLE/FFE-Spitzenwerte und TX-FIR für jede Bahn gesetzt und die Verbindung wird auf die Zielgeschwindigkeit neu trainiert.
-
In einer Ausführungsform wird die TX-Entzerrung maximiert (z.B. erlaubte Vor-/Nachläufer), während die CTLE/FFE-Entzerrungseinstellung hin zu einem Maximum erhöht wird. Bei jedem Schritt dieses Vorgangs wird der Endzustand des DFE nach dem Training gespeichert (z.B. in einer oder mehreren der hierin diskutierten Speichervorrichtungen). Falls eine DFE-Tap-Sättigung detektiert wird (d.h. keine Veränderung eines Taps bei den Spitzenwerten), wird der TX-Entzerrung symmetrisch reduziert (z.B. Vor-/Nachläufer um eins reduzieren und zwei zum Nachläufer hinzufügen). Das Dekrementieren wird fortgesetzt, bis keine Sättigung mehr beobachtet wird. Dies ist ein klarer Hinweis auf eine kurze Verbindung (z.B. geringe Verzerrung), die auf beiden Enden nur wenig Entzerrung benötigt. Darüber hinaus kann der DFE-FIR-Eingaberaum diskret sein, so dass seine Ausgabe ein endlicher Satz von Werten sein kann. Angesichts der Tatsache, dass die Eingabe Sequenzen von +1 und -1 umfasst, wird eine DFE-FIR-Sprungantwort basierend auf den gespeicherten End-Tapwerten für jeden Fall rekonstruiert. Da diese DFE FIR nur auf unterschiedliche Frequenzsprünge von der Abtastausgabe anspricht, kann in manchen Ausführungsformen eine simulierte Sprungantwort als Modell verwendet werden, um die „Frequenzdiskriminierung“ des DFE FIR anhand der Form des rekonstruierten Sprungs zu analysieren. Eine übermäßig gedämpfte Antwort weist auf einen Niedrigfrequenzgehalt des FIR hin, was bedeutet, dass die DFE-Nachläufer-ISI-Kompensation nicht viel für Hochfrequenzgehalt tut und CTLE/FFE überlastet wird. Eine zu wenig gedämpfte oszillierende Antwort weist darauf hin, dass der DFE verschiedene Frequenzbereiche auf eine andere Art kompensiert, was bedeutet, dass er mit seiner Maximalfrequenzdiskriminierung arbeitet. Dies wird zu komplexer ISI-Entfernung auf hauptsächlich hohen Frequenzen übersetzt, was der DFE tun soll. In langen Kanälen kann dies zu höheren Spitzenwerten führen als in Kanälen mittlerer Länge. Ebenfalls, wenn die gesammelte Information eine schlechte Diskriminierung zeigt, war der TX FIR zu hoch und muss reduziert werden. Dies ist ein Extremfall in kurzen Kanälen und eine Anfangsbedingung in Kanälen mittlerer Länge. Sobald eine zufriedenstellende Diskriminierung erreicht wurde, können die Werte der TX FIR Koeffizienten und die CTLE/FFE-Spitzenwerte an den Empfänger angewandt werden und eine neue Trainingsschleife wird ausgeführt, damit die neuen Einstellungen stattfinden können.
-
In manchen Ausführungsformen werden die mit Bezug auf 5 besprochenen Vorgänge unter folgenden Annahmen durchgeführt: (a) der Verbindungskanal folgt der Reihenfolge einer TX-FIR-Logik, Verbindung, CTLE und DFE-Entzerrungsarchitektur; (b) die Verbindung ist in der Lage, mit einer annehmbaren Qualität auf die Zielgeschwindigkeit zu trainieren (z.B. eine geringe BFH, die unterhalb einer Ziel-BFH liegt); (c) die TX-FIR-Taps auf den Verbindungspartnern sind steuerbar und erlaubte Wertebereiche sind bekannt (z.B. bei PCIe-3.0-Verbindungen wird dies durch die FS- (Volle Schwingung) und LF- (Niedrige Frequenz) Parameter, die in der Stufe der Entzerrungsphase 1 ausgetauscht werden, angegeben; ebenso sind die FS- und LF-Werte der Verbindungspartner pro Bahn für den Algorithmus architektonisch sichtbar, wenn BEE durch Software ausgeführt wird); (d) die CTLE/FFE der LE-Stufe ist steuerbar (z.B. die Bandbreitencharakteristik dieses linearen Entzerrers der ersten Stufe muss steuerbar sein, z.B. einschließlich Steuerung von Verstärkung und Spitzenwerten); (e) die DFE-Taps sind beobachtbar (z.B. wenn BEE durch Software ausgeführt werden, sind die Werte dieser Taps pro Bahn für den Algorithmus sichtbar); und/oder (f) DFE-Anpassung funktioniert wie erwartet entweder über LMS (Least-Mean Square) oder andere anwendbare adaptive Verfahren (z.B. der DFE/LMS funktioniert als eine ungefähre stückweise lineare Identifikation der Nachläufer-ISI des Kanals).
-
6 veranschaulicht ein Blockdiagramm eines Rechnersystems 600 gemäß einer Ausführungsform der Erfindung. Das Rechnersystem 600 umfasst eine oder mehrere zentrale Prozessoreinheit(en) (CPU) 602-1 bis 602-N oder Prozessoren (kollektiv hierin als „Prozessoren 602“ oder allgemeiner als „Prozessor 602“ bezeichnet), die über ein Verbindungsnetzwerk (oder Bus) 604 kommunizieren. Die Prozessoren 602 umfassen einen Allzweckprozessor, einen Netzwerkprozessor (der über ein Computernetzwerk 603 kommunizierte Daten verarbeitet) oder andere Arten eines Prozessors (einschließlich eines Reduced-Instruction-Set-Computer-Prozessors (RISC) oder eines Complex-Instruction-Set-Computers (CISC)). Darüber hinaus können die Prozessoren 602 einen Einzel- oder Mehrfachkernaufbau haben. Die Prozessoren 602 mit einem Mehrfachkernaufbau können verschiedene Arten von Prozessorkernen auf demselben integrierten Schaltkreisnackthip (IC-Nacktchip) integrieren. Ebenso können die Prozessoren 602 mit einem Mehrfachkernaufbau als symmetrische oder asymmetrische Mehrfachprozessoren umgesetzt sein.
-
Auch die mit Bezug auf 1-5 diskutierten Vorgänge werden von einer oder mehreren Komponenten des Systems 600 durchgeführt. In manchen Ausführungsformen können die Prozessoren 602 dieselben oder ähnlich sein wie die Prozessoren 202-208 aus 2. Darüber hinaus umfassen die Prozessoren 602 (oder anderen Komponenten des Systems 600) eines oder mehrere aus dem IOH 120, RC 122 und der PCIe-Steuerung 135. Außerdem können, obwohl 6 manche Positionen für die Elemente 120/122/135 veranschaulicht, sich diese Komponenten an anderer Stelle im System 600 befinden. Beispielsweise kann/können die I/O-Vorrichtung(en) 124 über Bus 622 kommunizieren etc.
-
Ein Chipsatz 606 kommuniziert auch mit dem Verbundnetzwerk 604. Der Chipsatz 606 umfasst einen Grafik- und Speichercontrollerknoten (GMCH) 608. Der GMCH 608 umfasst einen Speichercontroller 610, der mit einem Speicher 612 kommuniziert. Der Speicher 612 speichert Daten, einschließlich Befehlssequenzen, die von der CPU 602 oder jeder anderen Vorrichtung im Rechnersystem 600 ausgeführt werden. Beispielsweise speichert der Speicher Daten, die einem Betriebssystem (OS) 613 und/oder einem Gerätetreiber 611, wie mit Bezug auf die vorhergehenden Figuren erörtert, entsprechen. In einer Ausführungsform kann der Speicher 612 und der Speicher 140 aus 1 derselbe oder ähnlich sein. In einer Ausführungsform der Erfindung kann der Speicher 612 eine oder mehrere flüchtige Sicherungs- (oder Speicher-) Vorrichtungen, wie etwa einen Direktzugriffsspeicher (RAM), dynamischen Direktzugriffsspeicher (DRAM), synchronen DRAM (SDRAM), statischen RAM (SRAM) oder andere Arten von Sicherungsvorrichtungen, umfassen. Nichtflüchtige Speicher, wie etwa eine Festplatte, können ebenfalls eingesetzt werden. Zusätzliche Vorrichtungen können auch über das Verbundnetzwerk kommunizieren, wie etwa mehrere CPU und/oder Mehrfachsystemspeicher.
-
Zusätzlich dazu können einer oder mehrere der Prozessoren 602 Zugriff auf einen oder mehr Caches (welche private und/oder gemeinsam genutzte Caches in verschiedenen Ausführungsformen umfassen) und zugeordnete Cache-Controller (nicht gezeigt) haben. Der/Die Cache(s) kann/können sich an ein oder mehrere Cache-kohärente Protokolle halten. (Ein) solche(r) Cache(s) speichern Daten (z.B. einschließlich Befehle), die von einer oder mehreren Komponenten des Systems 600 verwendet werden. Beispielsweise puffert der Cache lokal Daten, die in einem Speicher 612 gespeichert sind, für einen schnelleren Zugriff durch die Komponenten der Prozessoren 602. In einer Ausführungsform kann der Cache (der gemeinsam genutzt wird), einen Cache mittlerer Ebene und/oder einen Last-Level-Cache (LLC) umfassen. Ebenso kann jeder Prozessor einen Ebene-1- (L1-) Cache umfassen. Verschiedene Komponenten der Prozessoren 602 können mit dem Cache direkt, durch einen Bus oder ein Verbundnetzwerk und/oder einen Speichercontroller oder Knoten kommunizieren.
-
Der GMCH 608 umfasst auch eine Grafikschnittstelle 614, die mit einer Anzeigevorrichtung 616, z.B. über einen Grafikbeschleuniger, kommuniziert. In einer Ausführungsform der Erfindung kann die Grafikschnittstelle 614 mit dem Grafikbeschleuniger über einen beschleunigten Grafik-Anschluss (AGP-Anschluss) kommunizieren. In einer Ausführungsform der Erfindung kann die Anzeige 616 (wie etwa eine Flachbildschirmanzeige) mit der Grafikschnittstelle kommunizieren, z.B. durch einen Signalumwandler, der eine digitale Darstellung einer in einer Speichervorrichtung, wie etwa einem Videospeicher oder Systemspeicher, gespeicherten Aufnahme in Anzeigesignale übersetzt, die der Anzeige 616 interpretiert und von angezeigt werden. In einer Ausführungsform treten die von der Anzeigevorrichtung produzierten Anzeigesignale durch verschiedene Steuervorrichtung hindurch bevor sie von der Anzeige 616 interpretiert und in weiterer Folge von ihr angezeigt werden.
-
Eine Hub-Schnittstelle 618 erlaubt dem GMCH 608 und einem Eingangs-/Ausgangs-Steuer-Hub (ICH) 620 zu kommunizieren. Der ICH 620 stellt eine Schnittstelle zu I/O-Vorrichtungen, die mit dem Rechnersystem 600 kommunizieren, bereit. Der ICH 620 kommuniziert mit einem Bus 622 durch eine Peripheriebrücke (oder Steuerung) 624, wie etwa einer Peripheral-Component-Interconnect-Brücke (PCI-Brücke), einen Universal-Serial-Bus-Controller (USB-Controller) oder andere Arten von Peripheriebrücken oder Steuerungen. Die Brücke 624 stellt einen Datenpfad zwischen der CPU 602 und Peripheriegeräten bereit.
-
Andere Arten von Topologien können eingesetzt werden. Ebenso können mehrere Busse z.B. durch mehrere Brücken oder Steuerungen mit dem ICH 620 kommunizieren. Darüber hinaus umfassen andere Peripheriegeräte, die in Kommunikation mit dem ICH 620 stehen, in verschiedenen Ausführungsformen der Erfindung integrierte Treiberelektronik (IDE) oder Kleincomputersystemschnittstellenfestplatte(n) (SCICS-Festplatte(n)), USB-Anschluss/Anschlüsse, eine Tastatur, eine Maus, Parallelanschluss/-anschlüsse, Serienanschluss/-anschlüsse, Diskettenlaufwerk(e), digitale Ausgabeunterstützung (z.B. digitale Videoschnittstelle (DVI) oder andere Vorrichtungen.
-
Der Bus 622 kommuniziert mit einer Audio-Vorrichtung 626, einem oder mehreren Plattenlaufwerk(en) 628 und einer Netzwerkschnittstellenvorrichtung 630 (die in Kommunikation mit dem Computernetzwerk 603 steht). Andere Vorrichtungen können auch über den Bus 622 kommunizieren. Ebenso können in manchen Ausführungsformen der Erfindung verschiedene Komponenten (wie etwa die Netzwerkschnittstellenvorrichtung 630) mit dem GMCH 608 kommunizieren. Zusätzlich dazu sind der Prozessor 602 und eine oder mehrere Komponenten des GMCH 608 und/oder Chipsatzes 606 kombiniert, um in manchen Ausführungsformen einen einzelnen integrierten Schaltkreischip auszubilden (oder anderweitig auf demselben integrierten Schaltkreisnacktchip vorzuliegen).
-
Darüber hinaus umfasst das Rechnersystem 600 flüchtigen und/oder nichtflüchtigen Speicher (oder Sicherung). Beispielsweise umfasst nichtflüchtiger Speicher eines oder mehrere aus den Folgenden: Festwertspeicher (ROM), programmierbarer ROM (PROM) löschbarer PROM (EPROM) elektrischer EPROM (EEPROM), ein Diskettenlaufwerk (z.B. 628), eine Diskette, eine Compact-Disc-ROM (CD-ROM) Digital-Versatile-Disk (DVD), Flashspeicher, magnetooptische Disk oder andere Formen von nichtflüchtigen maschinenlesbaren Medien, die in der Lage sind, elektronische Daten (z.B. einschließlich Befehle) zu speichern.
-
7 veranschaulicht ein Rechnersystem, das in einer Punkt-zu-Punkt- (PtP-) Konfiguration angeordnet ist, gemäß einer Ausführungsform der Erfindung. Insbesondere zeigt 7 ein System, in dem Prozessoren, Speicher und Eingabe-/Ausgabevorrichtungen durch eine Reihe von Punkt-zu-Punkt-Schnittstellen zusammengeschaltet sind. Die mit Bezug auf 1-6 erörterten Vorgänge werden von einer oder mehreren Komponenten des Systems 700 durchgeführt.
-
Wie in 7 veranschaulicht, umfasst das System 700 mehrere Prozessoren, von denen aus Gründen der Klarheit nur zwei, Prozessoren 702 und 704, gezeigt werden. Die Prozessoren 702 und 704 umfassen jeweils einen lokalen Speichercontrollerknoten (MCH) 706 und 708, um die Kommunikation zwischen den Speichern 710 und 712 zu ermöglichen. Die Speicher 710 und/oder 712 speichern verschiedene Daten, wie etwa die mit Bezug auf den Speicher 612 aus 6 diskutierten. Wie in 7 gezeigt, umfassen die Prozessoren 702 und 704 auch den/die mit Bezug auf 6 erörterten Cache(s) in manchen Ausführungsformen.
-
In einer Ausführungsform können die Prozessoren 702 und 704 einer der mit Bezug auf 6 erörterten Prozessoren 602 sein. Die Prozessoren 702 und 704 tauschen Daten über eine Punkt-zu-Punkt- (PtP-) Schnittstelle 714 unter Verwendung der PtP-Schnittstellenschaltkreise 716 bis 718 aus. Ebenso tauschen die Prozessoren 702 und 704 jeweils Daten mit einem Chipsatz 720 über individuelle PtP-Schnittstellen 722 und 724 unter Verwendung der Punkt-zu-Punkt-Schnittstellenschaltkreise 726, 728, 730 und 732 aus. Der Chipsatz 720 tauscht Daten mit einem Hochleistungsgrafikschaltkreis 734 über eine Hochleistungsgrafikschnittstelle 736 aus, z.B. mittels eines PtP-Schnittstellenschaltkreises 737.
-
Zumindest eine Ausführungsform der Erfindung wird innerhalb der Prozessoren 702 und 704 oder dem Chipsatz 720 bereitgestellt. Beispielsweise umfassen die Prozessoren 702 und 704 und/oder der Chipsatz 720 eines oder mehrere aus dem IOH 120, RC 122 und dem PCIe-Controller 135. Andere Ausführungsformen der Erfindung existieren jedoch in anderen Schaltkreisen, Logikeinheiten oder Vorrichtungen innerhalb des Systems aus 7. Darüber hinaus können andere Ausführungsformen der Erfindung über mehrere in 7 veranschaulichten Schaltkreise, Logikeinheiten oder Vorrichtungen verteilt sein. Somit ist die in 7 gezeigte Position der Elemente 120/122/135 beispielhaft und diese Komponenten können gegebenenfalls an den dargestellten Positionen bereitgestellt werden.
-
Der Chipsatz 720 kommuniziert mit einem Bus 740 unter Verwendung eines PtP-Schnittstellenschaltkreises 741. Der Bus 740 kann eine oder mehr Vorrichtungen aufweisen, die mit ihm kommunizieren, wie etwa eine Busbrücke 742 und I/O-Vorrichtungen 743. Über einen Bus 744 kommuniziert die Busbrücke 742 mit anderen Vorrichtungen, wie etwa einer Tastatur/Maus 745, Kommunikationsvorrichtungen 746 (wie etwa Modems, Netzwerkschnittstellenvorrichtungen oder andere Kommunikationsvorrichtungen, die mit dem Computernetzwerk 603 kommunizieren), Audio-I/O-Vorrichtungen und/oder eine Datenspeichervorrichtung 748. Die Datenspeichervorrichtung 748 speichert Code 749, der von den Prozessoren 702 und/oder 704 ausgeführt wird.
-
In verschiedenen Ausführungsformen der Erfindung können die z.B. mit Bezug auf 1-7 erörterten Vorgänge als Hardware (z.B. Schaltungen), Software, Firmware, Mikrocode oder Kombinationen daraus, umgesetzt werden, was als ein Computerprogrammprodukt bereitgestellt werden kann, z.B. einschließlich eines (z.B. nichttransistorischen) maschinenlesbaren oder (z.B. nichttransistorischen) computerlesbaren Mediums mit darauf gespeicherten Befehlen (oder Softwareverfahren), die verwendet werden, um einen Computer zum Durchführen eines hierin erörterten Prozesses zu programmieren. Ebenso kann der Begriff „Logik“ beispielsweise Software, Hardware oder Kombinationen aus Software und Hardware umfassen. Das maschinenlesbare Medium kann eine Speichervorrichtung, wie etwa die mit Bezug auf 1-7 erörterten, umfassen. Zusätzlich dazu können solche computerlesbaren Medien als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z.B. einem Server) zu einem anfragenden Computer (z.B. einem Client) über Datensignale transferiert wird, die über eine Trägerwelle oder ein anderes Verbreitungsmedium über eine Kommunikationsverbindung (z.B. einen Bus, ein Modem oder eine Netzwerkverbindung) übertragen werden.
-
Der Bezug in der Beschreibung auf „eine Ausführungsform“ oder „einer Ausführungsform“ bedeutet, dass ein bestimmtes in Verbindung mit der Ausführungsform beschriebenes Merkmal, Struktur oder Eigenschaft in zumindest einer Implementation umfasst sein kann. Das Auftreten der Phrase „in einer Ausführungsform“ an verschiedenen Stellen innerhalb der Beschreibung kann sich gegebenenfalls auf dieselbe Ausführungsform beziehen.
-
Ebenso können in der Beschreibung und den Patentansprüchen die Begriffe „gekoppelt“ und „verbunden“ zusammen mit ihren Ableitungen verwendet werden. In manchen Ausführungsformen der Erfindung kann „verbunden“ verwendet werden, um anzugeben, dass zwei oder mehrere Elemente miteinander in direktem physischem oder elektrischem Kontakt stehen. „Gekoppelt“ kann bedeuten, dass zwei oder mehrere Elemente in direktem physischen oder elektrischem Kontakt stehen. Jedoch kann „gekoppelt“ auch bedeuten, dass zwei oder mehr Elemente miteinander nicht in direktem Kontakten stehen, aber dennoch kooperieren oder miteinander wechselwirken.