-
GEBIET
-
Die vorliegende Beschreibung betrifft allgemein den Bereich der Elektronik. Genauer gesagt betrifft eine Ausführungsform der Erfindung Verbindungsenergieeinsparungen mit Beibehaltung des Zustands.
-
HINTERGRUND
-
Durch Verbesserung der Technologie zur Herstellung von integrierten Schaltungen (Integrated Circuit (IC)) können Hersteller zusätzliche Funktionalität auf einem einzigen Siliziumsubstrat integrieren. So wie die Anzahl dieser Funktionalitäten zunimmt, gilt dies jedoch auch für die Anzahl von Komponenten auf einem einzigen IC-Chip. Zusätzliche Komponenten führen zu zusätzlicher Signalumschaltung, was wiederum mehr Wärme erzeugt. Die zusätzliche Wärme kann einen IC-Chip langsamer machen, zu einer Fehlfunktion oder sogar zu einer Beschädigung eines IC-Chips führen. Außerdem kann die zusätzliche Wärme die Einsatzorte und/oder Anwendungen eines Computergeräts, das derartige Chips enthält, einschränken. Zum Beispiel kann sich ein tragbares Computergerät allein auf Batterieversorgung verlassen. Somit wird, wenn zusätzliche Funktionalität in tragbaren Computergeräten integriert wird, die Reduzierung des Energieverbrauchs zunehmend wichtig, zum Beispiel um Batteriesorgung über eine längere Zeitdauer aufrechtzuerhalten. Nicht tragbare Computersysteme können auch Kühl- und Energieerzeugungsprobleme haben, da deren IC-Komponenten mehr Energie brauchen und mehr Wärme erzeugen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die ausführliche Beschreibung erfolgt unter Bezugnahme auf die beigefügten Figuren. In den Figuren identifiziert die Ziffer ganz links bzw. identifizieren die Ziffern ganz links einer Bezugszahl die Figur, in der die Bezugszahl das erste Mal erscheint. Die Verwendung derselben Bezugszahlen in verschiedenen Figuren gibt ähnliche oder identische Gegenstände an.
-
Die 1 und 4–5 stellen Blockdiagramme von Ausführungsformen von Computer- bzw. Rechensystemen dar, die zur Implementierung von zahlreichen hierin beschriebenen Ausführungsformen verwendet werden können.
-
2 stellt ein Ablaufdiagramm einer Sequenz aus Niedrigenergie-Eintritt und -Austritt gemäß einer Ausführungsform dar.
-
3 stellt einen Sample detect hold-off time calculation and detect-Schaltkreis gemäß einigen Ausführungsformen dar.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezielle Details dargelegt, um für ein umfassendes Verständnis von zahlreichen Ausführungsformen zu sorgen. Einige Ausführungsformen können jedoch ohne die speziellen Details realisiert werden. In anderen Beispielen sind allgemein bekannte Verfahren, Prozeduren, Komponenten und Schaltkreise nicht im Detail beschrieben worden, um die besonderen Ausführungsformen nicht undurchsichtig zu machen. Bei einer Ausführungsform wird/werden E/A-Schaltkreis(e), Systemtakt(e) (internal clock(s)) oder ein weitergeleiteter Takt abgeschaltet, während der Verbindungszustand im internen Speicher beibehalten wird. Es ist zu beachten, dass der zum Speichern des Zustands verwendete interne Speicher im allgemeinen einen erheblich geringeren Energieverbrauch als analoge E/A und Uhren aufweist und somit zu erheblichen Energieeinsparungen ohne Beeinflussung der Verbindungswiederaufnahme führt.
-
Einige hierin beschriebenen Ausführungsformen sind allgemein auf die Reduzierung des Energieverbrauchs und/oder der Wärmedissipation durch Verbindung(en) (wie zum Beispiel Punkt-zu-Punkt oder serielle Verbindungen) zwischen zwei Agenten, wenn sich die Verbindungen) z. B. im Leerlauf befindet/befinden, ohne den Endpunktzustand zu opfern, gerichtet. Derartige Techniken können schnelleren Abschalten und/oder niedrigere Wecklatenz von seriellen Verbindungen ermöglichen. Diese Techniken sorgen auch für eine weiter verbesserte Leistung, Energieeinsparung und/oder Wärmedissipation, wenn Kommunikation unter gekoppelten Agenten sporadisch erfolgt.
-
Genauer gesagt kann in einer Implementierung ohne Aktivität auf der Verbindung jeder Agent auf einer Verbindung den Verbindungszustand aufrechterhalten müssen, wodurch Energie verbraucht wird. Somit können die E/A(Eingabe/Ausgabe)(Input/Output (I/O))-Schaltkreise und eine zugehörige Taktschaltung in Betrieb bleiben. Dieser Lösungsansatz kann eine Wecklatenz in der Größenordnung von mehreren 10 Nanosekunden liefern. Der Unterhalt der E/A-Schaltkreise und zugehörigen Taktschaltung kann jedoch sehr viel Energie verbrauchen. Eine andere Implementierung kann einen physikalischen Port (z. B. E/A- und Taktschaltung sowie interne Logik/Speicherelemente, die eine Verbindung aktiv halten) abschalten. Dieser Lösungsansatz kann eine Wecklatenz von mehreren Millisekunden aufweisen. Dementsprechend leiden derartige Techniken an Leistungsverlust aufgrund langer Weckzeit, obwohl sie weniger Energie abführen. Ferner kann vollständiges Abschalten des physikalischen Ports einen Einfluss auf andere Schnittstellenschichten stromaufwärts, wie zum Beispiel Verbindungsschicht, Protokollschicht, etc., aufweisen. Dementsprechend weisen einige Lösungen nicht die Fähigkeit auf, energiehungrige E/A-Schaltkreise für kurze Zeitdauern abzuschalten, und setzen die Verbindung nahezu sofort fort, wenn eine Verbindungsaktivität detektiert wird.
-
Hierzu liefert eine Ausführungsform einen Mechanismus zum Abschalten von Energie verbrauchenden E/A-Treibern, E/A-Empfänger und/oder Zeitgebern von physikalischen Schichten, während der Verbindungszustand in jedem Agenten beibehalten wird. Wie hierin beschrieben, bezieht sich das Beibehalten des Verbindungszustand eines Agenten hierin allgemein auf Beibehalten des Zustands in allen Schichten oberhalb der physikalischen (PHY) einschließlich Verbindungsschicht, Protokollschicht etc. Wenn sich Aktivität fortsetzt, können Agenten schnell E/A- und Taktschaltung einschalten und ihre Arbeit aufnehmen. In einigen Ausführungsformen liegt die Verbindungswiederaufnahmezeit in der Größenordnung von 10 Mikrosekunden und beeinflusst sie nicht Systemkomponenten außerhalb der physikalischen Schicht der Verbindung (z. B. Prozessor/Chipsatz/Architekturzustand, Anzeige, etc.). Dementsprechend ermöglicht ein Energieeinsparungsmerkmal Produkte mit hervorragenden Energie- und/oder Wärmeeigenschaften. Die Fähigkeit zum sofortigen Abschalten der Verbindung und Fortsetzen der Aktivität (z. B. 10 Mikrosekunden) kann zu Batterieeinsparungen für mobile Geräte führen. Alle Geräte, die derartige Merkmale enthalten, können auch weniger Wärme abführen und somit die Kosten einer Plattform-Wärmelösung reduzieren.
-
Wenn zum Beispiel ein Computer in einem Präsentationsmodus verwendet wird, muss nur die Anzeige die gesamte Zeit über aktiv sein. Es ist keine Kommunikation unter Agenten über die Verbindungsschnittstelle erforderlich, wenn sich die Diskussion auf eine Folie richtet (was mehrere 10 Sekunden bis mehrere Minuten dauern kann). Wenn die Aktivität fortgesetzt wird, gewöhnlich durch eine Form von Benutzerschnittstelle (z. B. Tastatur, Maus, Zeiger, etc.), reagiert die Verbindung sofort mit Schweifen durch die Präsentation. Die für die Wiederaufnahme der Verbindung erforderliche Zeit kann bei Verwendung der hierin beschriebenen einigen Ausführungsformen von dem menschlichen Auge nicht wahrgenommen werden (10 Mikrosekunden).
-
Zahlreiche Computersysteme können zum Implementieren von hierin beschriebenen Ausführungsformen verwendet werden, wie zum Beispiel die unter Bezugnahme auf die 1 und 4–5 beschriebenen Systeme. Genauer gesagt stellt 1 ein Blockdiagramm eines Computersystems 100 gemäß einer Ausführungsform der Erfindung dar. Das System 100 kann einen oder mehrere Agenten 102-1 bis 102-M (hierin gemeinsam als „Agenten 102” oder noch allgemeiner „Agent 102” bezeichnet) enthalten. Bei einer Ausführungsform kann/können ein oder mehrere der Agenten 102 irgendeine Komponente eines Computersystems, wie zum Beispiel der unter Bezugnahme auf die 4 oder 5 beschriebenen Systeme, sein. Bei einigen Ausführungsformen kann ein Agent ein Hardwarebeschleuniger (der z. B. auf Field-Programmable Gate Array (FPGA) basieren kann) sein. Der Agent kann auch ein SoC (System on Chip), MCP (Multi-Chip Package), ein Tandem/Redundant/Lock-Step-Agent, Systemverwaltungs-Controller, Kombinationen derselben etc., sein.
-
Wie in 1 dargestellt, können die Agenten 102 über ein Netzwerk (Network Fabric) 104 kommunizieren. Bei einer Ausführungsform kann das Netzwerk 104 ein Computernetzwerk enthalten, das zahlreichen Agenten (wie zum Beispiel Computergeräten oder deren Komponenten) ermöglicht, Daten zu kommunizieren. Das Netzwerk 104 kann auch nichtelektrische Medien, z. B. faseroptische Verbindungen, magnetisch gekoppelte Verbindungen, enthalten. Außerdem können bei einigen Ausführungsformen Teile des Netzwerkes Verbindungen enthalten, die mit anderen Protokollen zur Signalisierung und Energieeinsparung konform sind. Bei einer Ausführungsform kann das Netzwerk 104 ein oder mehrere Interconnects (oder Verbindungsnetzwerke (Interconnection Networks)), die über eine serielle (z. B. Punkt-zu-Punkt)-Verbindung und/oder ein gemeinsames Kommunikationsnetzwerk kommunizieren, enthalten. Zum Beispiel können einige Ausführungsformen Komponenten-Debugging oder -validierung auf Verbindungen erleichtern, die eine Kommunikation mit Fully Buffered Dual In-Line Memory Modules (FBD) ermöglichen, z. B. wenn die FBD-Verbindung eine serielle Verbindung zum Koppeln von Speichermodulen mit einem Host-Controller-Gerät (wie zum Beispiel einem Prozessor oder Speicher-Hub) ist. Debugging-Information kann von dem FBD-Kanal-Host gesendet werden, so dass die Debugging-Information entlang des Kanals durch Tools zur Erfassung von Kanalverkehrsspuren (channel traffic trace capture tools) (wie zum Beispiel einen oder mehrere Logikanalysatoren) beobachtet werden kann.
-
Bei einer Ausführungsform kann das System 100 ein Schichtenprotokollschema unterstützen, das eine physikalische Schicht, eine Verbindungsschicht, eine Routing-Schicht, eine Transportschicht und/oder eine Protokollschicht enthalten kann. Die Struktur bzw. das Netzwerk 104 kann ferner eine Übertragung von Daten (z. B. in Form von Paketen) von einem Protokoll (z. B. Caching-Prozessor oder Caching-kompatibler (Caching Aware) Speichercontroller) auf ein anderes Protokoll für ein Punkt-zu-Punkt oder gemeinsames Netzwerk erleichtern. Bei einigen Ausführungsformen sorgt das Netzwerk 104 auch für Kommunikation, die sich nach einem oder mehreren Cache-kohärenten Protokoll(en) richtet.
-
Wie durch die Richtung von Pfeilen in 1 gezeigt, können ferner die Agenten 102 über das Netzwerk 104 Daten senden und/oder empfangen. Somit können einige Agenten eine unidirektionale Verbindung verwenden, während andere eine bidirektionale Verbindung zur Kommunikation verwenden können. Zum Beispiel kann/können ein oder mehrere Agenten (wie zum Beispiel Agent 102-M) Daten (z. B. über eine unidirektionale Verbindung 106) senden, kann/können ein anderer Agent/andere Agenten (wie zum Beispiel Agent 102-2) Daten (z. B. über eine unidirektionale Verbindung 108) empfangen, während ein Agent/einige Agenten (wie zum Beispiel Agent 102-1) Daten (z. B. über eine bidirektionale Verbindung 110) sowohl senden als auch empfangen kann/können.
-
Allgemein kann ein Cache-Speicher in Computersystemen unter Verwendung eines Snoopy-Bus oder eines verzeichnisbasierten Protokolls kohärent gehalten werden. In beiden Fällen wird eine Speicheradresse einer bestimmten Position in dem System zugewiesen. Diese Position wird allgemein als „Home node” der Speicheradresse bezeichnet. Bei einem verzeichnisbasierten Protokoll könnten Verarbeitungs/Caching-Agenten Anfragen zum Home-node für Zugriff auf eine Speicheradresse, der ein „home agent” zugewiesen ist, senden. Zusätzlich kann mindestens der Agenten 102 ein home agent sein und kann/können ein oder mehrere der Agenten 102 anfragende Agenten sein. Ferner kann/können bei einer Ausführungsform einer oder mehrere der Agenten 102 Einträge in einem Speichergerät (z. B. als eine Tabelle, Warteschlange, Puffer, verkettete Liste etc. implementiert) Gerät zum Verfolgen von Information über Anfragen pflegen. Ein derartiges Speichergerät kann für einen Agenten vor Ort (z. B. Speicher 112-1) oder auf andere Weise durch einen bestimmten Agenten 102 zugänglich sein.
-
2 stellt ein Ablaufdiagramm einer Sequenz aus Niedrigenergie-Eintritt- und -Austritt gemäß einer Ausführungsform dar. Ports A bzw. B beziehen sich auf Ports an zwei über eine serielle Verbindung gekoppelten Agenten. Bei einigen Ausführungsformen wird der Eintritt in und der Austritt aus einem Zustand mit niedrigem Energieverbrauch (hierin als „L1 (Level 1)” oder „Stufe 1” bezeichnet) von den Verbindungsschichten der beiden Agenten gesteuert. Obwohl 2 angibt, dass der Austritt aus L1 durch den Master (z. B. Port A) initiiert wird, kann der Austritt aus L1 auch durch den Slave (z. B. Port B) bei einigen Ausführungsformen initiiert werden. Außerdem ist ein Verbindungsschichtprotokoll dafür verantwortlich, die Verbindungsschichten auf den Schwellenwert für den L1-Eintritt zu bringen und dann zu verursachen, dass die physikalischen Schichten in L1 eintreten. In dem L1-Master (z. B. Port A), kann ein Befehl (wie zum Beispiel LinkEnterL1) verursachen, dass die physikalische Schicht in L1 eintritt und ein Inband-Reset-Signal ausgibt. In dem L1-Slave (z. B. Port B) kann ein Befehl (wie zum Beispiel LinkEnterL1) verursachen, dass die physikalische Schicht in L1 eintritt, wenn sie diesen Inband-Reset von dem Master empfängt. Eintritt in L1 verursacht, dass der Slave ein Inband-Reset-Signal an den Master bei einer Ausführungsform ausgibt. Bei einer Ausführungsform können zwei Agenten auf unterschiedlichen IC(Integrated Circuit)-Mikroplättchen, aber in derselben Baugruppe angeordnet sein.
-
Beide Richtungen der Verbindung können für den Eintritt in den L1-Zustand verwendet werden. Im L1-Zustand sind Schaltkreise in elektrischem Subblock abgeschaltet und logischer Subblock funktional abgeschaltet. Bei einigen Ausführungsformen können elektrische Schaltkreise/Subblöcke Messverstärker, Filter, Equalizer, Spannungs- und Widerstandsoffsets, Phaseninterpolatoren, Signaldriftverfolgungseinrichtungen, PLL(Phase-Locked-Loop)-Clock etc. enthalten. Ferner liefert eine Ausführungsform einen Mechanismus zum Abschalten von Energie verbrauchenden E/A-Treibern, E/A-Empfängern und/oder Zeitgebern der physikalischen Schicht (Physical Layer Clocks), während der Verbindungszustand in jedem Agenten (die/den Ports A und B zugewiesen sind) aufrechterhalten wird. Bei einigen Ausführungsformen kann die Stromversorgung für den logischen Subblock aufrechterhalten werden, um sicherzustellen, dass die Konfiguration der physikalischen Schicht während L1 nicht verloren geht. Außerdem kann bei einigen Ausführungsformen der interne Zeitgeber der physikalischen Schicht (Physical Layer Internal Clock) (z. B. PLL (Phase Locked Loop) (z. B. durch die Plattform) abgeschaltet werden. Vor dem Eintritt in L1 kann jeder Port auch sich selbst konfigurieren, so dass eine Kalibrierung bei Austritt aus L1 (z. B. zum schnelleren Einschalten) umgangen wird. Bei einer Ausführungsform entsprechen alle Rx(Receiver)-Abschlüsse ZRX_HIGH_CM (z. B. Zustand mit hoher Impedanz, den der Tx-Port verwendet, um zu ermitteln/detektieren, ob eine Verbindung inaktiv ist) im L1-Zustand.
-
Wie in 2 gezeigt, signalisiert die Verbindungsschicht am lokalen Port A ihrer physikalischen Schicht (oder zeigt diese auf andere Weise an), dass ein Eintritt in L1 ansteht und beginnt mit dem Aussenden von einer oder mehreren Nachricht(en) (zum Beispiel in Form von Paketen), die einen L1-Eintritt anzeigt/anzeigen, wie zum Beispiel Paket #1 oder #2 bei A1 bzw. A2, an fernen Port B. Die Verbindungsschicht am fernen Port B signalisiert ihrer physikalischen Schicht nach Empfang von L1-Paket(en) bei B1 oder B2, dass ein Eintritt in L1 zu erwarten ist, und bestätigt die Anfrage bezüglich des L1-Eintritts des lokalen Ports A (L1 ACK#1- oder -#2-Nachrichten) bei B1 oder B2.
-
Wenn die Verbindungsschicht am lokalen Port A ein(e) ACK-Anzeige/Nachricht/Signal des fernen Ports B (z. B. L1 ACK#1 bei A3) empfängt, instruiert sie die lokale physikalische Schicht des Ports A, in L1 einzutreten. Die lokale physikalische Schicht des Ports A antwortet auf dieses Signal mit Senden eines Inband-Reset-Signals an die ferne physikalische Schicht des Ports B bei A3 und tritt in einen L1-Zustand. Die ferne physikalische Schicht interpretiert diesen Inband-Reset bei B3 als einen Eintritt in L1 auf der Basis eines früheren Signals von der Verbindungsschicht des Ports A und tritt in L1 ein. Zu diesem Zeitpunkt, z. B. nach A3 für Port A und B3 für Port B, befinden sich sowohl Port A als auch Port B in L1-Zustand.
-
Der ferne Port B hat auch die Wahl, eine NACK (Negative Acknowledgement) als Antwort auf eine L1-Eintritt-Anfrage von dem lokalen Port A zu senden, wobei in diesem Fall die ferne physikalische Schicht über diese L1-Anfrage nicht informiert wird. Die Verbindungsschicht an dem lokalen Port A bricht bei Empfang der fernen NACK ihre L1-Anfrage ab und instruiert ihre lokale physikalische Schicht, bis zu einer weiteren Notiz keinen Eintritt in L1 zu erwarten. Die Ports behalten ihren aktuellen Energieverbrauchszustand bei (z. B. Stufe 0 (Level 0 (L0)), die sich allgemein auf den normalen Betriebsmodus bezieht).
-
In einigen Ausführungsformen würden durch jeden Port nach Beginn einer L1-Eintrittssequenz detektierte CRC(Cyclic Redundancy Code)-Fehler dazu führen, dass beide Seiten diese L1-Sequenz ignorieren. Wenn zum Beispiel die ferne Verbindungsschicht einen CRC-Fehler entweder bei dem L1-Eintrittspaket oder Flits vor selbigem detektiert, sendet sie eine Wiederholanfrage zur lokalen Verbindungsschicht. In diesem Fall hat der ferne Port keine Kenntnis von der L1-Anfrage und bleibt er somit in L0. Die lokale Verbindungsschicht kann bei Empfang einer Wiederholanfrage die aktuelle L1-Sequenz abbrechen und fortfahren, in L0 zu bleiben. Wenn umgekehrt die lokale Verbindungsschicht einen CRC-Fehler nach Senden eines L1-Eintritts-Pakets sieht, kann sie die aktuelle L1-Sequenz abbrechen und eine Wiederholanfrage zum fernen Port senden. Der ferne Port, der ein Inband-Reset-Signal für den Eintritt in L1 erwartet, bricht die aktuelle L1-Sequenz beim Sehen dieser Wiederholanfrage ab. Bei einigen Ausführungsformen instruiert eine Verbindungsschicht, wenn sie ihre L1-Sequenz abbricht, die physikalische Schicht entsprechend, um sicherzustellen, dass ein nachfolgender Inband-Reset nicht als eine Anzeige zum Eintreten in L1 interpretiert wird.
-
Wie in 2 gezeigt, wird Austreten aus L1 (bei A5) durch eine höhere Schicht (z. B. die Verbindungsschicht) initiiert und kann es nicht vor der unten beschriebenen Detektionsverzögerungszeit(Detect-Hold-Off)-Periode erfolgen. Wie in 2 gezeigt ist, kann bei A6 Port A im Detect Clock Termination-Modus sein (z. B. auf ein Signal zum Austreten aus L1 warten). Bei Austritt aus L1 bei B4 kann Port B eine Dauer (z. B. T-Entprellung) warten, bevor er in den Detect Clock Termination-Modus bei B5 eintritt. Da der Austritt nicht durch ein Plattformsynchronisierungsereignis (wie zum Beispiel Reset) oder eine Softwareneuprogrammierung von elektrischen und logischen Konfigurationsregistern begleitet wird, wird erwartet, dass beide Agenten einen korrekten Zähler des Synchronisationszählers und die Werte in deren Konfigurationsregister(n) (oder z. B. in Speicher 112-1 gespeicherte Werte) durch diese Zustände pflegen. Implementierungen können auch alternative Zeitablaufverfahren in L1 erfordern, da der Verbindungszeitgeber abgeschaltet sein kann. Zum Beispiel können Implementierungen die Detektion von Abschlüssen anwenden, um Fehlaustritte aufgrund von Rauschen zu vermeiden (eine derartige Anwendung könnte einfach in kontinuierlichem Detektieren oder Detektieren über eine längere Zeitdauer von Abschlüssen bestehen). Bei einer Ausführungsform erfüllen Rx-Abschlüsse (zum Beispiel Taktspur enthaltend) ZRX_HIGH_CM_DC (z. B. Zustand mit hoher Impedanz, den der Tx-Port verwendet, um zu bestimmen/detektieren, ob eine Verbindung inaktiv ist) in L1-Zustand. Da es Zeit benötigen wird (z. B. aufgrund von Widerstand-Kondensator (Resistor-Capacitor(RC)-Laden), diese Änderung auf der Taktspur beim Tx (Transmit) Side Detect-Schaltkreis (siehe z. B. 3, die einen Detektionsverzögerungszeit- und Abtastwertdetektions(Detect-Hold-Off Time Calculation and Sample Detect)-Schaltkreis gemäß einigen Ausführungsformen darstellt) zu beobachten, werden die Detektionsergebnisse für eine gewisse Plattform-abhängige Zeit ignoriert.
-
Nehmen wir zum Beispiel in 3 2 pf Komponentenkapazität an jedem Ende der Taktspur und 25'' Spur bei 1 pf pro Zoll Kapazität mit Verbindungsdetektionswiderstandswert (Z_tx_link_detect) von 2 kOhm und einen Verlust an jedem Ende von 10 kOhm an. Wenn man vier Zeitkonstanten vor Beobachten des Spannungspegels zulassen würde, würde dies eine Detektionsverzögerungszeit (Detect Hold-Off) für 4·RC (z. B. 4·(2·5/(5 + 2))·(2 + 25 + 2) oder ca. 165 ns) erfordern. Es ist zu beachten, dass die finale Ausgleichsspannung (final settling voltage) = (Reff/R_L1nk)·Vcc ist, die niedriger als Vcc ist. Somit müssen Nutzer sicherstellen, dass dies unverändert oberhalb deren Detektionsschwellenwert liegt.
-
Bei einer Ausführungsform verwendet der Austritt aus L1 zu L0 das von der physikalischen Schicht während der Verbindungsinitialisierung verwendete Detektionsschema. In L1 sind Abschlussdetektoren an Tx-Differenzpaaren jedes Ports eingeschaltet. Ein Port, der ein implementierungsspezifisches L1-Austrittssignal empfängt, würde Abschlüsse an Taktspur(en) einschalten – Takt-Rx-Abschlüsse müssen nun ZRX_LOW_CM (z. B. Zustand mit niedriger Impedanz, den der Tx-Port verwendet, um zu bestimmen/detektieren, ob eine Verbindung aktiv ist) erfüllen. Abschlussdetektoren bei Takt Tx an dem fernen Port können Rx-Taktabschlüsse messen und dies als ein Anzeichen für den Austritt aus L1 verwenden.
-
4 stellt ein Blockdiagramm einer Ausführungsform eines Computersystems 400 dar. Ein oder mehrere der Agenten 102 von 1 kann/können eine oder mehrere Komponenten des Computersystems 400 umfassen. Das Computersystem 400 kann eine oder mehrere Zentralverarbeitungseinheit(en) (Central Processing Unit(s) (CPUs)) 402 (, die hierin gemeinsam als „Prozessoren 402” oder noch allgemeiner als „Prozessor 402” bezeichnet werden können) enthalten, die mit einem Verbindungsnetzwerk (oder Bus) 404 gekoppelt ist/sind. Die Prozessoren 402 können irgendein Typ von Prozessor, wie zum Beispiel ein Allzweckprozessor, ein Netzwerkprozessor (, der über ein Computernetzwerk 405 kommunizierte Daten verarbeiten kann), etc. (einschließlich einen RISC(Reduced Instruction Set Computer)-Prozessor oder einen CISC (Complex Instruction Set Computer)), sein. Außerdem können die Prozessoren 402 eine Gestaltung mit Einzel- oder Mehrkern aufweisen. Die Prozessoren 402 mit Mehrkerngestaltung können unterschiedliche Typen von Prozessorkernen auf demselben IC(Integrated Circuit)-Mikroplättchen integrieren. Außerdem können die Prozessoren 402 mit Mehrkerngestaltung als symmetrische oder asymmetrische Mehrfachprozessoren implementiert sein.
-
Der Prozessor 402 kann einen oder mehrere Cache(s), die privat und/oder gemeinsam genutzt werden können, in zahlreichen Ausführungsformen enthalten. Allgemein speichert ein Cache Daten, die anderswo gespeicherten oder früher berechneten Originaldaten entsprechen. Zur Reduzierung der Speicherzugriffslatenz, wenn Daten einmal in einem Cache gespeichert wurden, kann die zukünftige Verwendung durch Zugriff auf eine gecachte Kopie anstelle von Wiederbeschaffung oder Neuberechnung der Originaldaten erfolgen. Der Cache/die Caches kann/können jeder Typ von Cache, wie zum Beispiel ein L1(Level 1)-Cache, ein L2(Level 2)-Cache, ein L3(Level 3)-, ein Mid-Level-Cache, ein LLC (Last Level Cache), etc. zum Speichern von elektronischen Daten (zum Beispiel Anweisungen enthaltend) sein, der von einer oder mehreren Komponenten des Systems 400 benutzt wird. Zusätzlich kann/können sich genannter Cache/genannte Caches an zahlreichen Positionen befinden (zum Beispiel innerhalb anderer Komponenten für hierin erörterte Computersysteme, einschließlich Systeme von 1 oder 5).
-
Ein Chipsatz 406 kann zusätzlich mit dem Verbindungsnetzwerk 404 gekoppelt sein. Ferner kann der Chipsatz 406 einen GMCH (Graphics Memory Controller Hub) 408 enthalten. Der GMCH 408 kann einen Speicher-Controller 410 enthalten, der mit einem Speicher 412 gekoppelt ist. Der GMCH kann auch eine oder mehrere Speicherbrücken bei einigen Ausführungsformen enthalten. Der Speicher 412 kann Daten speichern, die zum Beispiel Sequenzen von Anweisungen enthalten, die von dem Prozessor 402 oder irgendeiner anderen Einrichtung, die mit Komponenten des Computersystems 400 in Verbindung steht, ausgeführt werden. Außerdem kann bei einer Ausführungsform der Erfindung der Speicher 412 einen oder mehrere flüchtige Speicher (volatile storage oder memory), wie zum Beispiel RAM (Random Access Memory), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), SRAM (Static RAM) etc. enthalten. Es kann auch nicht flüchtiger Speicher, wie zum Beispiel eine Festplatte, verwendet werden. Zusätzliche Einrichtungen können mit dem Verbindungsnetzwerk 404 gekoppelt sein, wie zum Beispiel mehrere Prozessoren und/oder Mehrsystemspeicher.
-
Der GMCH 408 kann ferner eine Graphikschnittstelle 414 enthalten, die mit einer Anzeigeeinrichtung 416 (z. B. über einen Graphikbeschleuniger bei einer Ausführungsform) gekoppelt ist. Bei einer Ausführungsform kann die Graphikschnittstelle 414 mit der Anzeigeeinrichtung 416 über einen AGP (Accelerated Graphics Port) gekoppelt sein. Bei einer Ausführungsform der Erfindung kann die Anzeigeeinrichtung 416 (wie zum Beispiel eine Flachbildschirmanzeige) mit der Graphikschnittstelle 414 über zum Beispiel einen Signalwandler gekoppelt sein, der eine digitale Darstellung eines Bildes, die in einer Speichereinrichtung, wie zum Beispiel einem Videospeicher oder Systemspeicher (z. B.
-
Speicher 412) gespeichert ist, in Anzeigesignale übersetzt, die von der Anzeige 416 interpretiert und angezeigt werden.
-
Wie in 4 gezeigt, kann eine Hub-Schnittstelle 418 den GMCH 408 mit einem ICH (Input/Output Control Hub) 420 koppeln. Der ICH 420 kann eine Schnittstelle für mit dem Computersystem 400 gekoppelte Eingabe/Ausgabe (Input/Output) (I/O)-Einrichtungen bereitstellen. Der ICH kann einen oder mehrere Host-Controller, Hubs und/oder Brücken bei einigen Ausführungsformen enthalten. Der ICH 420 kann mit einem Bus 422 über eine periphere Brücke (oder Controller) 424, wie zum Beispiel eine PCI(Peripheral Component Interconnect)-Brücke, die der PCIe-Spezifikation entspricht, einen USB (Universal Serial Bus)-Controller etc. gekoppelt sein. Die Brücke 424 kann einen Datenpfad zwischen dem Prozessor 402 und peripheren Einrichtungen bzw. Geräten bereitstellen. Es können andere Typen von Topologien benutzt werden. Außerdem können mehrere Busse mit dem ICH 420, z. B. über mehrere Brücken oder Controller, gekoppelt sein. Ferner kann der Bus 422 andere Typen und Konfigurationen von Bussystemen umfassen. Außerdem können andere mit dem ICH 420 gekoppelte Peripherien bei zahlreichen Ausführungsformen der Erfindung DIE (Integrated Drive Electronics), SATA (Serial Advanced Technology Attachment), SSD (Solid State Drive) oder SCSI(Small Computer System Interface)-Laufwerk(e), USB-Port(s), eine Tastatur, eine Mouse, paralle(r) Port(s), serielle(r) Port(s), Diskettenlaufwerk(e), digitale Ausgabeunterstützung (zum Beispiel DVI) (Digital Video Interface)) etc. enthalten.
-
Der Bus 422 kann mit einer Audio-Einrichtung 426, einem oder mehreren Diskettenlaufwerk(en) 428 und einem Netzwerkadapter 430 (, der bei einer Ausführungsform ein NIC sein kann), gekoppelt sein. Bei einer Ausführungsform kann/können der Netzwerkadapter 430 oder andere mit dem Bus 422 gekoppelte Einrichtungen bzw. Geräte mit dem Chipsatz 406 kommunizieren. Andere Einrichtungen können mit dem Bus 422 gekoppelt sein. Außerdem können zahlreiche Komponenten (wie zum Beispiel der Netzwerkadapter 430) mit dem GMCH 408 bei einigen Ausführungsformen der Erfindung gekoppelt sein. Zusätzlich können der Prozessor 402 und der GMCH 408 kombiniert sein und einen einzigen Chip bilden. In einer Ausführungsform kann der Speicherkontroller 410 in einer oder mehreren der CPUs 402 vorgesehen sein. Ferner können bei einer Ausführungsform der GMCH 408 und der ICH 420 zu einem PCH (Peripheral Control Hub) kombiniert sein.
-
Zusätzlich kann das Computersystem 400 flüchtigen und/oder nichtflüchtigen Speicher (oder inneren Speicher (Storage)) enthalten. Zum Beispiel kann der nichtflüchtige Speicher einen oder mehrere von folgenden enthalten: ROM (Read-Only Memory), PROM (Programmable ROM), EPROM (Erasable PROM), EEPROM (Electrically EPROM), ein Diskettenlaufwerk (z. B. 428), eine Diskette, eine CD-ROM (Compact Disc ROM), eine DVD (Digital Versatile Disk), Flashspeicher, eine magneto-optische Platte oder andere Typen von nichtflüchtigen maschinenlesbaren Medien, die elektronische Daten (die z. B. Anweisungen enthalten), speichern können.
-
Der Speicher 412 kann ein oder mehrere des folgenden bei einer Ausführungsform enthalten: ein OS (Operating System) 432, Anwendung 434 und/oder Gerätetreiber 436. Der Speicher 412 kann auch für MMIO(Memory Mapped I/O)-Operationen dedizierte Bereiche enthalten. In dem Speicher 412 gespeicherte Programme und/oder Daten können als Teil von Speicherverwaltungsoperationen in das Diskettenlaufwerk 428 ausgelagert werden. Die Anwendung(en) 434 kann/können (z. B. auf dem/den Prozessor(en) 402) laufen, um ein oder mehrere Paket(e) mit einer oder mehreren Computereinrichtung(en), die mit dem Netzwerk 405 gekoppelt ist/sind, zu kommunizieren. Bei einer Ausführungsform kann ein Paket eine Sequenz von einem oder mehreren Symbolen und/oder Werten sein, die von einem oder mehreren elektrischen Signal(en) kodiert sein können, das/die von mindestens einem Sender zu mindestens einem Empfänger (zum Beispiel über ein Netzwerk, wie zum Beispiel das Netzwerk 405) gesendet wird/werden. Zum Beispiel kann jedes Paket einen Header (Kopf) enthalten, der zahlreiche Informationen enthält, die beim Routen und/oder Verarbeiten des Pakets genutzt werden können, wie zum Beispiel eine Quelladresse, eine Zieladresse, Pakettyp, etc. Jedes Paket kann auch eine Nutzlast aufweisen, wie die Rohdaten (oder Inhalt) enthält, wobei das Paket über ein Computernetzwerk (wie z. B. das Netzwerk 405) zwischen zahlreichen Computereinrichtungen übertragen wird.
-
Bei einer Ausführungsform kann die Anwendung 434 das OS 432 zum Kommunizieren mit zahlreichen Komponenten des Systems 400, z. B. über den Gerätetreiber 436, verwenden. Somit kann der Gerätetreiber 436 für den Netzwerkadapter 430 spezifische Befehle enthalten, um eine Kommunikationsschnittstelle zwischen dem OS 432 und dem Netzwerkadapter 430 oder anderen E/A-Einrichtungen, die mit dem System 400 gekoppelt sind, z. B. über den Chipsatz 406, bereitstellen.
-
Bei einer Ausführungsform kann das OS 432 einen Netzwerkprotokollstapel enthalten. Ein Protokollstapel bezieht sich allgemein auf einen Satz von Prozeduren oder Programmen, die ausgeführt werden können, um über ein Netzwerk 405 gesendete Pakete zu verarbeiten, wobei die Pakete einem spezifizierten Protokoll entsprechen. Zum Beispiel können TCP/IP(Transport Control Protocol/Internet Protocol)-Pakete unter Verwendung eines TCP/IP-Stapels verarbeitet werden. Der Gerätetreiber 436 kann die Pufferspeicher in dem Speicher 412, die bearbeitet werden sollen, z. B. über den Protokollstapel angeben.
-
Das Netzwerk 405 kann irgendeinen Typ von Computernetzwerk enthalten. Der Netzwerkadapter 430 kann ferner eine DMA(Direct Memory Access)-Maschine enthalten, die Pakete in den Pufferspeicher (z. B. in dem Speicher 412 gespeichert) schreibt, die verfügbaren Deskriptoren zugeordnet sind (z. B. in dem Speicher 412 gespeichert), um Daten über das Netzwerk 405 zu senden und/oder zu empfangen. Zusätzlich kann der Netzwerkadapter 430 einen Netzwerkadaptercontroller enthalten, der Logik (wie zum Beispiel einen oder mehrere programmierbare Prozessoren) zum Durchführen von Adapter bezogenen Operationen enthalten kann. Bei einer Ausführungsform kann der Adaptercontroller eine MAC(Media Access Control)-Komponente sein. Der Netzwerkadapter 430 kann ferner einen Speicher, wie zum Beispiel irgendeinen Typ von flüchtigen/nicht flüchtigen Speicher (der z. B. einen oder mehrere Cache(s) und/oder andere unter Bezugnahme auf Speicher 412 erörterte Speichertypen enthält), enthalten. Außerdem kann der Netzwerkadapter 430 zu IPC (Inter-Process Communication) und RMA (Remote Memory Access) über das Netzwerk 405 fähig sein.
-
5 stellt ein Computersystem 500, das in einer Punkt-zu-Punkt(PtP)-Konfiguration angeordnet ist, gemäß einer Ausführungsform der Erfindung dar. Insbesondere zeigt 5 ein System, bei dem Prozessoren, Speicher und Eingabe/Ausgabe-Einrichtungen durch eine Anzahl von Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. Die unter Bezugnahme auf die 1–4 erörterten Operationen können von einer oder mehreren Komponente(n) des Systems 500 durchgeführt werden.
-
Wie in 5 dargestellt ist, kann das System 500 mehrere Prozessoren enthalten, von denen der Klarheit halber nur zwei Prozessoren 502 und 504 gezeigt sind. Die Prozessoren 502 und 504 können jeweils einen GMCH (Local Memory Controller Hub) 506 und 508 enthalten, um Kommunikation mit Speichern 510 und 512 zu ermöglichen. Die Speicher 510 und/oder 512 können zahlreiche Daten, wie zum Beispiel die unter Bezugnahme auf den Speicher 412 von 4 erörterten, speichern. Wie in 5 gezeigt ist, können die Prozessoren 502 und 504 (oder andere Komponenten des Systems 500, wie zum Beispiel Chipsatz 520, E/A-Einrichtungen 543, etc.) auch einen oder mehrere Cache(s), zum Beispiel wie die unter Bezugnahme auf die 1–4 erörterten, enthalten.
-
Bei einer Ausführungsform können die Prozessoren 502 und 504 einer der unter Bezugnahme auf 4 erörterten Prozessoren 402 sein. Die Prozessoren 502 und 504 können über eine PtP(Point-to-Point)-Schnittstelle 514 unter Verwendung von PtP-Schnittstellenschaltkreisen 516 bzw. 518 Daten austauschen. Außerdem können die Prozessoren 502 und 504 jeweils Daten mit einem Chipsatz 520 über individuelle PtP-Schnittstellen 522 und 524 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltkreisen 526, 528, 530 und 532 austauschen. Der Chipsatz 520 kann ferner Daten mit einem Hochleistungsgrafikschaltkreis 534 über eine Hochleistungsgrafikschnittstelle 536, z. B. unter Verwendung eines PtP-Schnittstellenschaltkreises 537, austauschen.
-
Bei mindestens einer Ausführungsform können die hierin erörterten Agenten in den Prozessoren 502, 504 und/oder MCH 506, 508 vorhanden sein. Andere Ausführungsformen der Erfindung können jedoch in anderen Schaltkreisen, Logikeinheiten und Einrichtungen innerhalb des Systems 500 von 5 vorhanden sein. Außerdem können andere Ausführungsformen der Erfindung über mehrere Schaltkreise, Logikeinheiten und Einrichtungen, wie in 5 dargestellt, verteilt sein.
-
Der Chipsatz 520 kann mit dem Bus 540 unter Verwendung eines PtP-Schnittstellenschaltkreises 541 kommunizieren. Der Bus 540 kann eine oder mehrere Einrichtung(en), die damit kommuniziert/kommunizieren, aufweisen, wie zum Beispiel eine Busbrücke 542 und E/A-Einrichtungen 543. Über einen Bus 544 kann die Busbrücke 542 mit anderen Einrichtungen, wie zum Beispiel einer Tastatur/Maus 545, Kommunikationseinrichtungen 546 (wie zum Beispiel Modems, Netzwerkschnittstelleneinrichtungen oder anderen Kommunikationseinrichtungen, die mit dem Computernetzwerk 405 kommunizieren können), Audio-E/A-Einrichtungen und/oder einer Datenspeichereinrichtungen 548 kommunizieren. Die Datenspeichereinrichtung 548 kann Code 549 speichern, der von den Prozessoren 502 und/oder 504 ausgeführt werden kann.
-
Bei zahlreichen Ausführungsformen der Erfindung können die hierin, z. B. unter Bezugnahme auf die 1–5, erörterten Operationen als Hardware (z. B. Schaltung), Software, Firmware, Mikrocode oder Kombinationen derselben, die als ein Computerprogrammprodukt, das z. B. ein maschinenlesbares oder computerlesbares Medium mit darauf gespeicherten Anweisungen (oder Softwareprozeduren) enthält, die zum Programmieren eines Computers und Durchführen eines hierin erörterten Prozesses verwendet werden, implementiert sein. Außerdem kann der Begriff „Logik” beispielsweise Software, Hardware oder Kombinationen von Software und Hardware einschließen. Das maschinenlesbare Medium kann eine Speichereinrichtung, wie zum Beispiel die unter Bezugnahme auf die 1–5 erörterten, enthalten. Zusätzlich können derartige computerlesbare Medien als ein Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem fernen Computer (z. B. einem Server) auf einen anfordernden Computer (z. B. einen Client) durch Datensignale übertragen werden kann, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium über eine Kommunikationsverbindung (z. B. einen Bus, ein Modem oder eine Netzwerkverbindung) bereitgestellt werden.
-
Bezugnahme auf „eine (1)” Ausführungsform in der Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, die in Verbindung mit der Ausführungsform beschrieben worden ist, in mindestens einer Implementierung enthalten sein kann. Das Vorkommen der Phrase „bei einer (1) Ausführungsform” an zahlreichen Stellen in der Beschreibung kann sich auf dieselbe Ausführungsform beziehen.
-
Außerdem können in der Beschreibung und in den Ansprüchen die Begriffe „gekoppelt” und „verbunden” gemeinsam mit deren Abwandlungen verwendet werden. Bei einigen Ausführungsformen der Erfindung kann „verbunden” verwendet werden, um anzugeben, dass zwei oder mehr Elemente in direktem körperlichen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in indirektem körperlichen oder elektrischen Kontakt stehen. Jedoch kann „gekoppelt” auch bedeuten, dass zwei oder mehr Elemente nicht in direkten Kontakt miteinander stehen, aber unverändert zusammenwirken oder miteinander wechselwirken.
-
Obwohl Ausführungsformen der Erfindung unter Angabe von strukturellen Merkmalen und/oder methodologischen Tätigkeiten beschrieben worden sind, versteht es sich somit, dass der beanspruchte Gegenstand nicht auf diese speziellen Merkmale oder Tätigkeiten beschränkt ist. Vielmehr werden die spezielle Merkmale und Tätigkeit als beispielhafte Ausführungsformen der Implementierung des beanspruchten Gegenstands offenbart.