-
GEBIET
-
Ausführungsformen der Erfindung betreffen das Gebiet des Partitionierens und, gemäß einer Ausführungsform, ein Verfahren und eine Vorrichtung und ein System für die Energieverwaltung einer Verbindungs-Koppelstruktur (link interconnect).
-
Allgemeiner Hintergrund
-
Maßnahmen bei der Energieverwaltung ermöglichen das Verringern des Energieverbrauchs für verschiedene Typen von Systemen und integrierten Baugruppen, so wie Servern, Laptops, Prozessoren und Desktops. Mit der Einführung von Prozessoren mit mehreren Kernen wird die Energieverwaltung wegen des Zuwachses an Kernen, die bei hohen Frequenzen und Spannungen arbeiten und verschiedene Energiebeschränkungen beachten müssen, so wie thermische Grenzen, maximalen Strom und einen Bereich für Vcc, zu einem Hauptanliegen.
-
Eine Verbindungs-Koppelstruktur erlaubt die Kommunikation zwischen Baugruppen und funktionalen Blöcken. Einige Beispiele von Koppelstrukturen sind gemeinsam genutzte Busse und Punkt-zu-Punkt-Verbindungen. Die Verbindungen können in unterschiedlichen Leistungszuständen sein, abhängig von dem Verkehr, und jeder Zustand erlaubt unterschiedliche Ebenen des Kompromisses zwischen Energie und Leistungsverhalten. Eine Verbindung kann in einen Zustand niedriger Leistung überführt werden, wenn es keinen Verkehr auf der Verbindung gibt, und ein derartiger Zustand wird typischerweise über einen Ruhe-Zeitüberschreibungsmechanismus abgefühlt, d. h., wenn es über ein voreingestelltes Zeitintervall keinen Verbindungsverkehr gibt, wird die Verbindung in einen Zustand niedriger Leistung überführt. Ein kleiner Wert für die Zeitüberschreitung einer ruhenden Verbindung ermöglicht es, dass die Verbindung öfter in einen Zustand niedriger Leistung übergeht, so dass die Energieeinsparung erhöht wird, um jedoch aus dem Zustand niedriger Leistung herauszukommen, gibt es eine Strafe beim Aufwecken der Verbindung, die im Sinne von Leistungsverhalten kostet. Andererseits minimiert ein größerer Wert für die Ruhe-Zeitüberschreitung diese Strafe bezüglich des Leistungsverhaltens, jedoch geht die Verbindung weniger oft in den Zustand niedriger Leistung, was die Energieeinsparung verringert.
-
Aus
US 6128741 A gehen Schritte zum rechtzeitigen Aufwecken eines Speichers zu dem Zeitpunkt, an dem ein Prozessor aufwacht, hervor. Dabei wird ein immerwährendes Schlafsignal gesendet, das bei Bedarf abgeschaltet werden kann, um den Prozessor aufzuwecken.
-
US 2003/0135676 A1 offenbart einen „activity detector”, der das Vorkommen einer Anfrage von einem Initiator erkennt und eine Busschnittstelle für Ziele dieser Anfrage einschaltet.
-
US 2006/0206737 A1 offenbart Latenzzeiten beim Aufwecken eines Prozessors, die gemessen werden und zur Grundlage einer Steuerung von einzuschaltenden Logikblöcken dienen.
-
Die der vorliegenden Erfindung zugrunde liegende Aufgabe besteht im Einsparen von Energie, die durch einen Prozessor verbraucht wird. Diese Aufgabe wird durch die beigefügten unabhängigen Patentansprüche gelöst.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die Erfindung kann am Besten durch Bezugnahme auf die folgende Beschreibung und die beigefügten Zeichnungen verstanden werden, die verwendet werden, um Ausführungsformen der Erfindung zu veranschaulichen.
-
1 ist ein beispielhaftes Blockschaubild eines Systems mit zwei Prozessoren gemäß einer Ausführungsform der Erfindung.
-
2 ist ein beispielhaftes Blockschaubild eines Systems mit mehreren Prozessoren gemäß einer Ausführungsform der Erfindung.
-
3 ist eine beispielhafte Ausführungsform von Architekturen für Home Agents Caching und Agents der Systeme der 1–2 gemäß einer Ausführungsform der Erfindung.
-
4 ist ein Blockschaubild eines Systems gemäß einer Ausführungsform der Erfindung.
-
5 ist eine Vorrichtung gemäß einer Ausführungsform der Erfindung.
-
6 ist ein Zeitablaufschaubild gemäß einer Ausführungsform der Erfindung.
-
GENAUE BESCHREIBUNG
-
In der folgenden Beschreibung wird eine bestimmte Ausdrucksweise verwendet, um Merkmale der Erfindung zu beschreiben. Zum Beispiel ist der Ausdruck ”Einheit” oder ”Agent” allgemein und kann verwendet werden, um irgendeine elektrische Komponente zu beschreiben, die an eine Verbindung gekoppelt ist. Eine ”Verbindung oder Koppelstruktur” ist im Allgemeinen als ein Information transportierendes Medium definiert, das einen Kommunikationsweg für Nachrichten, nämlich Information, die in ein vorbestimmtes Format gebracht worden ist, einrichtet. Die Verbindung oder Koppelstruktur kann ein verdrahtetes physikalisches Medium (z. B. ein Bus, ein oder mehrere elektrische Drähte, eine Leiterbahn, ein Kabel usw.) oder ein drahtloses Medium (z. B. Luft in Kombination mit drahtloser signalgebender Technologie) sein.
-
Bei einer Ausführungsform erlaubt der beanspruchte Gegenstand das Verwenden eines aggressiven Wertes für die Ruhe-Zeitüberschreitung, um in einen Zustand niedriger Leistung der Verbindung überzugehen, wobei die Wartezeit für Transaktionen minimiert wird, die die Verbindungen aus einem Zustand niedriger Leistung aufwecken. Bei einem Aspekt optimiert der beanspruchte Gegenstand den Kompromiss zwischen Energie und Leistungsverhalten.
-
Der Ausdruck ”Home Agent” ist breit definiert als eine Einheit, die Ressourcen für einen Caching Agent zur Verfügung stellt, um auf Speicher zuzugreifen, und, basierend auf Anfragen von den Caching Agents, Konflikte lösen, Abwicklungen einhalten und dergleichen tun kann. Ein ”Tracker” ist ein fest zugeordneter Speicherbereich für Speicheranfragen von einer bestimmten Einheit. Zum Beispiel kann ein erster Tracker eine Vielzahl von Einträgen umfassen, die einem ersten Caching Agent zugeordnet sind, während ein zweiter Tracker weitere Einträge umfassen kann, die einem zweiten Caching Agent zugeordnet sind. Gemäß einer Ausführungsform der Erfindung ist der ”Caching Agent” im Allgemeinen ein Cache-Controller, der dazu ausgelegt ist, Speicheranfragen an den Home Agent zu leiten.
-
Der Ausdruck ”Logik” ist allgemein definiert als Hardware und/oder Software, die einen oder mehrere Arbeitsschritte ausführen, so wie das Steuern des Austausches von Nachrichten zwischen Einheiten. Wenn sie in Software ausgeführt wird, kann eine solche Software ausführbarer Code sein, so wie eine Anwendung, eine Routine oder sogar ein oder mehrere Befehle. Software kann in irgendeinem Typ Speicher gespeichert sein, normalerweise in einem geeigneten Speichermedium, so wie in (i) irgendeinem Typ einer Platte, einschließlich Floppy-Disks, magnetooptischer Platten und optischer Platten, sowie Compakt Disks als Nur-Lese-Speicher (CD-ROMs – Compact Disk Read-Only Memories), wiederbeschreibbare Compakt Disks (CD-RWs – Compact Disk Rewriteables), digitale Mehrzweckplatten (DVDs – Digital Versatile Disks), (ii) irgendeinem Typ von Halbleitereinheiten so wie Nur-Lese-Speicher (ROMs – Read-Only-Memories), Speicher mit wahlfreiem Zugriff (RAMs – Random Access Memories), löschbare programmierbare Nur-Lese-Speicher (EPROMs – Erasable Programmable ROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs – electrically Erasable Programmable ROMs), (iii) Magnetkarten oder optische Karten oder (iv) irgendeinem anderer Typ Medium, der zum Speichern elektronischer Befehle geeignet ist.
-
In der folgenden Beschreibung sind zahlreiche bestimmte Einzelheiten aufgeführt. Es wird jedoch verstanden, dass Ausführungsformen der Erfindung ohne diese bestimmten Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen sind gut bekannte Schaltungen, Strukturen und Techniken nicht in Einzelheiten gezeigt worden, um das Verständnis dieser Beschreibung nicht zu verschleiern.
-
Wie es zuvor diskutiert worden ist, erlaubt eine Verbindungs-Koppelstruktur die Kommunikation zwischen Einheiten und funktionalen Blöcken. Einige Beispiele von Koppelstrukturen sind gemeinsam genutzte Busse und Punkt-zu-Punkt-Verbindungen. Die Verbindungen können in unterschiedlichen Leistungszuständen sein, abhängig von dem Verkehr, und jeder Zustand erlaubt eine unterschiedliche Ebene des Kompromisses zwischen Energie und Leistungsverhalten. Eine Verbindung kann in einen Zustand niedriger Leistung überführt werden, wenn es keinen Verkehr auf der Verbindung gibt, und ein derartiger Zustand wird typischerweise über einen Ruhe-Zeitüberschreitungsmechanismus abgefühlt, das heißt, wenn es über ein voreingestelltes Zeitintervall keinen Verkehr auf der Verbindung gibt, wird die Verbindung in einen Zustand niedriger Leistung überführt. Ein kleiner Wert für die Zeitüberschreitung bei einer ruhenden Verbindung erlaubt es, dass die Verbindung öfter in einen Zustand niedriger Leistung übergeht, was somit die Energieeinsparung erhöht, um jedoch aus dem Zustand niedriger Leistung herauszukommen, gibt es eine Strafe, die Verbindung aufzuwecken, die im Sinne von Leistungsverhalten kostet. Andererseits minimiert eine längere Ruhe-Zeitüberschreitung diese Strafe beim Leistungsverhalten, jedoch geht die Verbindung weniger oft in den Zustand niedriger Leistung, was die Energieeinsparungen verringert. Bei einem Aspekt erlaubt die vorgeschlagene Erfindung das Verwenden eines aggressiven Ruhe-Zeitüberschreitungswertes, um in den Zustand niedriger Leistung der Verbindung überzugehen, wobei die Wartezeit für Transaktionen minimiert werden, die die Verbindungen aus einem Zustand niedriger Leistung aufwecken, wodurch der Kompromiss zwischen Energie und Leistungsverhalten optimiert wird.
-
Jeder Leistungszustand bietet eine unterschiedliche Ebene für den Kompromiss zwischen Energie und Leistungsverhalten an. Ein normaler Zustand voller Leistung zum Beispiel, so wie ein Zustand L0, bietet eine höhere Ebene des Leistungsverhaltens mit mehr Energieeinsatz der Verbindung an, als ein Zustand niedrigerer Leistung, so wie L0s oder L1, verbraucht allerdings mehr Energie. Im Gegensatz dazu bieten Zustände niedrigerer Leistung eine Verbesserung im Hinblick auf die Energie bei einer entsprechenden Verschlechterung des Leistungsverhaltens. In dem Fall, dass die Verbindung ruht oder nur unterbrochen Pakete oder Daten kommuniziert, ist es günstig, den Leistungszustand von einem Zustand normaler Leistung in einen Zustand niedrigerer Leistung zu ändern. Angesichts der Energieeinsparungen muss man die Strafe bei der Wartezeit in Kauf nehmen, die mit dem Rückführen in den Zustand normaler Leistung bei mehr Aktivität auf der Verbindung verknüpft ist.
-
Bei einer Ausführungsform deaktiviert der Zustand L1 alle Uhren (PLLs), den Sender und Empfänger. Bei einer weiteren Ausführungsform erlaubt es der Zustand L0s, dass die Uhren aktiviert sind, während die Energie für den Sender und Empfänger abgeschaltet wird und Uhren deaktiviert werden. Das Aktivierthalten der Uhren erlaubt es, dass die Verbindung den Zustand L0s schnell verlassen kann, so dass eine geringere Wartezeit für Transaktionen gezahlt wird, wenn aus dem Zustand L0s in den Zustand L0 übergegangen wird.
-
Der beanspruchte Gegenstand vereinfacht die Steuerung des Übergangs zwischen Leistungszuständen, wie zuvor diskutiert. Bei einer Ausführungsform ist die Steuerlogik für den Übergang der Leistungszustände in einem Prozessor dargestellt. Bei einer Ausführungsform ist die Steuerlogik für den Übergang der Leistungszustände in einem Speichercontroller-Hub (MCH – Memory Controller Hub) dargestellt. Bei einer Ausführungsform ist die Steuerlogik für den Übergang der Leistungszustände bei einem Eingabe/Ausgabe-Hub (IOH – Input/Output Hub) dargestellt. Bei einer Ausführungsform ist die Steuerlogik für den Übergang der Leistungszustände in einem Speichercontroller (MC – Memory Controller) dargestellt.
-
Bei einer Ausführungsform wird der Übergang der Leistungszustände für eine Punkt-zu-Punkt-Verbindung eingesetzt, so wie PCIe (Peripheral Component Interconnect), Quickpath oder CSI usw. Bei einer weiteren Ausführungsform wird der Übergang der Leistungszustände für eine Koppelstruktur mit gemeinsam genutzten Bus verwendet.
-
I. Beispielhafte Systemarchitektur
-
Mit Bezug auf 1 ist ein beispielhaftes Blockschaubild eines System gemäß einer Ausführungsform der Erfindung gezeigt. Hierin veranschaulicht 1 eine Doppelprozessor(DP – Dual Processor)-Konfiguration mit Prozessoren 110 und 150. Zum Beispiel kann diese Konfiguration mit einem Desktop oder einem mobilen Computer, einem Server, einer Settop-Box, einem persönlichen digitalen Assistenten (PDA – Personal Digital Assistant), einem alphanumerischen Pager, einem Mobiltelefon oder irgendeinem anderen Typ einer verdrahteten oder drahtlos arbeitenden Kommunikationsvorrichtung verknüpft sein.
-
Jeder Prozessor 110 und 150 umfasst einen Speichercontroller (MC) 115 und 155, um die direkte Kommunikation mit einem zugeordneten Speicher 120 und 160 über Verbindungen 125 bzw. 165 zu ermöglichen. Darüber hinaus können die Speicher 120 und 160 unabhängige Speicher oder Teile desselben, gemeinsam genutzten Speichers sein.
-
Wie es ausdrücklich in der 1 gezeigt ist, sind die Prozessoren 110 und 150 über Punkt-zu-Punkt-Verbindungen 130 bzw. 170 an einen Eingabe/Ausgabe-Hub (IOH) 180 gekoppelt. Der IOH 180 sorgt für die Verbindungsfähigkeit zwischen den Prozessoren 110 und 150 und Eingabe-Ausgabe(I/O)-Vorrichtungen, die innerhalb des DP-Systems 100 implementiert sind. Zusätzlich sind die Prozessoren 110 und 150 miteinander über eine Punkt-zu-Punkt-Verbindung 135 gekoppelt. Gemäß einer Ausführungsform der Erfindung können diese Punkt-zu-Punkt-Verbindungen 130, 135, 170 so ausgelegt sein, dass sie entsprechend der Spezifikation ”Quickpath” arbeiten, die von der Intel Corporation, Santa Clara, Kalifornien, entwickelt worden ist. Jedoch ist der beanspruchte Gegenstand nicht auf eine Quickpath-Verbindung beschränkt und kann irgendeinen anderen Typ einer Verbindung oder Koppelstruktur nutzen. Ein Fachmann versteht die Nutzung irgendeines Verbindungs- oder Koppelstrukturschemas, das für die bestimmten Anforderungen des Designs maßgeschneidert ist. Zum Beispiel kann man irgendein kohärentes oder nicht kohärentes Verbindungs- oder Koppelstrukturprotokoll verwenden, so wie, jedoch nicht beschränkt auf Peripheral Component Interconnect (PCI, PCIe usw.), einen Front Side Bus (FSB) usw.
-
Mit Bezug nun auf die 2 ist ein beispielhaftes Blockschaubild eines Mehrprozessor(MP – Multiprocessor)-Systems gemäß einer Ausführungsform der Erfindung gezeigt. In ähnlicher Weise kann das MP-System ein Desktop oder mobiler Computer, ein Server, eine Settop-Box, ein persönlicher digitaler Assistent (PDA), ein alphanumerischer Pager, ein Mobiltelefon oder irgendein anderer Typ einer verdrahteten oder drahtlos arbeitenden Kommunikationsvorrichtung sein.
-
Hierin weist gemäß einer Ausführungsform der Erfindung das MP-System eine Vielzahl von Prozessoren 210A–210D auf. Einer oder mehrere der Prozessoren, so wie die Prozessoren 210A–210D, können einen Speichercontroller (MC) 220A–220D umfassen. Diese Speichercontroller 220A–220D ermöglichen direkte Kommunikation mit zugeordneten Speichern 230A–230D jeweils über Verbindungen 240A–240D. Insbesondere, wie es in der 2 gezeigt ist, ist der Prozessor 210A mit dem Speicher 230A über eine Verbindung 240A gekoppelt, während die Prozessoren 210B–210D mit den entsprechenden Speichern 230B–230D jeweils über Verbindungen 240B–240D gekoppelt sind.
-
Zusätzlich ist der Prozessor 210A mit jedem der anderen Prozessoren 210E–210D über pTp(Punkt-zu-Punkt)-Verbindungen 250, 252 und 254 gekoppelt. In ähnlicher Weise ist der Prozessor 210B über pTp-Verbindungen 250, 256 und 258 an die Prozessoren 210A, 210C und 210D gekoppelt. Der Prozessor 210C ist an die Prozessoren 210A, 210B und 210D über pTp-Verbindungen 252, 256 und 260 gekoppelt. Der Prozessor 210D ist an die Prozessoren 210A, 210B und 210C über pTp-Verbindungen 254, 258 und 260 gekoppelt. Die Prozessoren 210A und 210B sind über pTp-Verbindungen 270 und 272 mit einem ersten Eingabe/Ausgabe-Hub (IOH) gekoppelt, während die Prozessoren 210C und 210D über Punkt-zu-Punkt-Verbindungen 274 und 276 mit einem zweiten IOH 285 gekoppelt sind.
-
Für beide Systeme 100 und 200, die in den 1 und 2 beschrieben sind, wird in Betracht gezogen, dass die Prozessoren so ausgelegt sein können, dass sie als ein Home Agent, ein Caching Agent oder beides arbeiten, abhängig von der ausgewählten Systemarchitektur.
-
Mit Bezug nun auf 3 ist eine beispielhafte Ausführungsform für Architekturen für Ziel- und Quelleneinheiten der Systeme der 1–2 gemäß einer Ausführungsform der Erfindung gezeigt. Zu Zwecken der Veranschaulichung ist der Prozessor 210D aus 2 (oder der Prozessor 150 aus 1) als eine Zieleinheit 300, so wie zum Beispiel ein Home Agent, konfiguriert. Die Prozessoren 210A-210C aus der 2 (oder der Prozessor 110 aus der 1) könnten als Quellen 310A–310C, so wie zum Beispiel als Caching Agents, konfiguriert sein. Der IOH 280 oder 285 (oder der IOH 180 der 1) können als eine I/O-Einheit 310D konfiguriert sein, wobei ein Schreib-Cache 320 implementiert wird, der gleichermaßen als Caching Agent arbeitet.
-
Wie hiernach beschrieben, ist jede Quelle 310A, ... oder 310D mit einem Tracker verknüpft, der an der Zieleinheit 300 gehalten wird und eine vorbestimmte Anzahl von Tracker-Einträgen hat. Die Anzahl der Tracker-Einträge ist in der Größe auf die Anzahl von Anfragen beschränkt, die von irgendeiner Quelle 310A, ... oder 310D gesendet werden können, die die Bandbreite eines PTP-Fabric 315 sättigt, welches Punkt-zu-Punkt-Kommunikationsvorgänge zwischen dem Ziel 300 und der Vielzahl der Quellen (z. B. den Quellen 310A–310D) unterstützt.
-
Wie es in der 3 gezeigt ist, ist gemäß dieser Ausführungsform der Erfindung das Ziel 300 ein Home Agent, der Home Logik 325 und eine Vielzahl von Tracker 330A ... 330B aufweist. In Kombination mit den Trackern ist die Home Logik 325 so ausgelegt, dass sie als ein Planer arbeitet, um bei der Datenübertragung einlaufender Information aus dem Speicher 230 der 2 und auslaufender Information an das PTP-Fabric 315 hilft. Darüber hinaus arbeitet die Home Logik 325 so, dass sie Konflikte zwischen diesen Datenübertragungen löst.
-
Hier sind für diese Ausführungsform der Erfindung, da vier (4) Caching Agents 310A–310D innerhalb des Systems 100/200 implementiert sind, vier (M = 4) Tracker veranschaulicht und mit ”HT-0” 330A, ”HT-1” 330B, ”HT-2” 330C und ”HT-3” 330D bezeichnet. Diese Tracker 330A–330D enthalten jeder N0, N1, N2 beziehungsweise N3 Tracker-Einträge, wobei Ni ≥ 1 (i = 1, 2, 3 oder 4). Die Anzahl der Einträge (N0–N3) kann von Tracker zu Tracker unterschiedlich sein. Verknüpft mit jedem Eintrag der Tracker 330A–330D ist ein entsprechender Datenpuffer, der durch die Datenpuffer 340A–340D dargestellt wird. Die Datenpuffer 340A–340D sorgen für die zeitweilige Speicherung von Daten, die von dem Speichercontroller 220A zurückgegeben worden sind und schließlich auf dem PTP-Fabric 315 für die Sendung an ein geplantes Ziel geplant werden. Die Aktivierung und die Deaktivierung der Einträge für die Tracker 330A–330D wird von der Heimlogik 325 gesteuert, die hiernach beschrieben ist.
-
Die Caching Agents 310A, 310B und 310C umfassen eine Fehladressenwarteschlange 350A, 350B beziehungsweise 350C. Zum Beispiel, mit Bezug auf den Caching Agents 310A, ist die Fehladressenwarteschlange 350A so konfiguriert, dass sie alle fehlgeschlagenen Transaktionen speichert, die vom Home Agent 300 behandelt werden, die in 330A verfolgt werden.
-
Zusätzlich, gemäß dieser Ausführungsform der Erfindung, umfassen die Caching Agents 310A, 310E und 310C weiter einen Kreditzähler 360A, 360B beziehungsweise 360C. Jeder Kreditzähler 360A, 360B und 360C hält einen Zählwert, der repräsentativ für die Anzahl unbenutzter Tracker-Einträge in den Träckern 310A, 310B und 310C ist. Wenn zum Beispiel chic neue Transaktion von dem Caching Agent 310A an den Home Agent 300 ausgegeben wird, wird der Kreditzähler 360A dekrementiert. Wenn eine Transaktion beendet ist, dann wird der Kreditzähler 360 inkrementiert. Zur Rücksetzzeit wird der Kreditzähler 360 auf die Pool-Größe gleich der Anzahl der Tracker-Einträge (N0), die mit dem Tracker 330A verknüpft ist, initialisiert. Dieselbe Konfiguration ist bei den Kreditzählern 360B–360C anwendbar.
-
Auch in der 3 ist ein Beispiel eines Caching Agent 310D gezeigt, der als ein I/O-Agent arbeitet, welcher Information aus einem Speicher liest und Information an eine I/O-Schnittstelle schreibt. Als Alternative kann der Caching Agent 310D Leserückgaben des I/O-Agent als Schreibvorgänge in den Hauptspeicher weiterleiten. Der Caching Agent 310D implementiert den Schreib-Cache 320, der verwendet wird, um die hohe Bandbreite nachzuhalten, während Daten gespeichert werden, die mit I/O-Arbeitsgängen verknüpft sind.
-
4 ist ein Blockschaubild eines System gemäß einer Ausführungsform der Erfindung. Bei dieser Ausführungsform sendet eine CPU 402 Anfragen in einem Paketformat an den MCH 404 über Punkt-zu-Punkt-Verbindungen. In dieser Richtung sind die Pakete auslaufend, weg von dem Prozessor. Als Antwort sendet der MCH Daten oder Information von einem Speicher oder einer anderen integrierten Baugruppe über Punkt-zu-Punkt-Verbindungen in eine Richtung einwärts. Bei einer Ausführungsform ist der Speicher ein DRAM (Dynamischer Speicher mit wahlfreiem Zugriff). Auch empfängt der MCH weitere Information, so wie integrierte Grafik (IGFX) und Daten von den PCIe-Koppelstrukturen. Bei einer Ausführungsform ist die Punkt-zu-Punkt-Verbindung zwischen der CPU und dem MCH eine Quickpath- oder CS-Verbindung, die ein Mehrschichtprotokoll enthalten, welches eine Verbindungsschicht umfasst, um das Bilden der Pakete zu vereinfachen.
-
5 ist eine Vorrichtung gemäß einer Ausführungsform der Erfindung. Bei dieser Ausführungsform ist die Vorrichtung ein MCH. Bei einer weiteren Ausführungsform können die logischen Blöcke, die in dieser Figur veranschaulicht sind, auch in einer CPU verwendet werden, somit kann die CPU direkt mit einem IOH oder einem Speicher kommunizieren und braucht keinen MCH zu enthalten.
-
Wie zuvor diskutiert gibt die CPU 402 Anfragen an den MCH 404 entsprechend einem Nachrichtenprotokoll aus. Bei einer Ausführungsform ist das Nachrichtenprotokoll ein Anfrage-Antwort-Protokoll, das heißt für alle verschickten Anfragetransakttionen gibt es ein Antwortpaket, das nach Ablauf eines Zeitintervalls geschickt wird. Das Intervall zwischen Anfrage und Antwort variiert abhängig von dem Typ der Anfrage und der Antwort, die berechnet werden muss. Zum Beispiel wird, nachdem eine Leseanfrage an den MCH gesendet worden ist, das Lesedatenpaket als eine Antwort geschickt, nachdem die Daten aus dem DRAM gelesen worden sind, und dies kann einen variablen Zeitbetrag dauern, abhängig von der Adresse und dem Zustand der Seitentabelle des DRAM. Ein weiteres Beispiel ist eine Schreibanfrage an einen DRAM, für die eine Beendet-Antwort geschickt wird, nachdem alle Kohärenzprüfungen abgeschlossen sind.
-
Bei dieser Ausführungsform werden die Pakete von der CPU auf Auswärtsverbindungen in einen Verbindungspuffer 410 empfangen. Anschließend werden sie decodiert und CPU-Anfragetrackern 412 zugewiesen. Die Anfragen werden dann an den Speichercontroller 432 geschickt, wo sie den DRAM 406 nach Lesevorgängen durchsuchen und Daten in den DRAM 406 für Schreibvorgänge schreiben. Die Lese-Rückgabedaten aus dem DRAM gehen zu einem DRAM-Puffer 416, wo mit anderen Paketen verhandelt wird, nun die Einwärts-Verbindung zu nutzen. Weitere Pakete können I/O-Snoopanfragen und Schreib-Abschlussvorgänge usw. sein. Die I/O-Anfragen befinden sich alle in einem I/O-Anfrage-Tracker 414. Die Einwärts-Verbindung wird von der Leistungssteuerlogik 420 gesteuert, die den Übergang der Verbindung in Zustände L0 und L0s bewirkt, basierend auf Transaktionen in dem System und in dem Zustand.
-
Wie zuvor diskutiert wird das Leistungsverhalten nachteilig beeinflusst, da schlafende Verbindungen bedarfsweise aufgeweckt werden. Folglich ist die Nachricht, die die Verbindung aufweckt, der vollen Austrittswartezeit von L0s für eine Lesetransaktion ausgesetzt, wenn die Daten beginnen, von dem DRAM zurückzukehren, oder wenn für ein Schreib-Abschlusspaket verhandelt wird, es auf der Einwärts-Verbindung zu senden. Die Wartezeit, um die Verbindung aufzuwecken, wird durch elektrische Verzögerungen zum Heraufbringen von Verbindungen aus einem Zustand niedriger Leistung in einen Zustand hoher Leistung verursacht. Im Gegensatz dazu nutzt der beanspruchte Gegenstand eine Antwort-Rechenverzögerung, nachdem eine Anfrage in dem MCH zu sehen ist. Nach einem Aspekt vereinfacht der beanspruchte Gegenstand das Erzeugen eines Frühwarn(EW – Early Warning)-Signals an die Einwarts-Verbindung. Daher führt der Beginn des Übergangs aus L0s in L0 zum Verringern der Verzögerung, die von der Antwortnachricht gesehen wird. Die Erzeugung des Frühwarnsystems ist in Verbindung mit der 6 veranschaulicht. Bei einer weiteren Ausführungsform wird ein opportunistisches Abschalten in Verbindung mit 6 diskutiert. Weiterhin erlaubt der beanspruchte Gegenstand bei einer weiteren Ausführungsform das opportunistische Abschalten zusätzlich zu dem Frühwarnsignal, um den Kompromiss zwischen Energie und Leistungsverhalten weiter zu verbessern.
-
6 ist ein Zeitdiagramm gemäß einer Ausführungsform der Erfindung. Das obere Zeitdiagramm stellt den Stand der Technik dar. Im Gegensatz dazu stellt bei einer Ausführungsform die untere Wellenform die Zeitgebung zum Ausgeben des Frühwarn(EW)-Signals dar, das den Übergang des Leistungszustandes einer Verbindung in einen Zustand L0 einleitet.
-
Die Wellenform des Standes der Technik veranschaulicht eine Anfrage, die von dem Speichercontroller-Hub zu einem Zeitpunkt A empfangen wird. Zum Zeitpunkt B ist die Antwort bereit, so dass sie auf der Einwärts-Verbindung verschickt werden kann, die aktuell in dem Leistungszustand L0s ist. Die Verbindung beginnt den Übergang nach L0, was die Sendung der Antwort bis zum Zeitpunkt C verzögert.
-
Im Gegensatz dazu sendet der beanspruchte Gegenstand, in der unteren Wellenform dargestellt, das EW-Signal, wenn die Anfrage am Zeitpunkt E ankommt. Dieses Signal bewirkt, dass die Einwärts-Verbindung den Übergang zu L0 früh beginnt, so dass, wenn die Antwort bereit ist, sie unmittelbar zum Zeitpunkt G verschickt wird. Dies hilft dabei, die Wartezeit beim Aufwecken der Verbindung mit der Berechnung der Antwort für die Transaktion, die die Verbindung aufweckt, zu überlagern und verringert die Wartezeit bis zum Senden der Antwort für die Transaktion.
-
Bei einer weiteren Ausführungsform wird der Ruhe-Zeitüberschreitungswert basierend wenigstens teilweise auf dem Vergleich der Differenz zwischen EW und Antwort bereit eingestellt. Wenn zum Beispiel die Zeitdauer zwischen dem EW-Signal und dem Punkt, zu dem die Antwort fertig wird, immer größer ist als die Übergangszeit von L0s zu L0, entfernt das vorgeschlagene Schema alle Strafen bezüglich des Leistungsverhaltens von L0s beim Aufwecken der Verbindung. Dies erlaubt es daher, dass die Ruhe-Zeitüberschreitung sehr aggressiv gesetzt werden kann, und bewirkt, dass die Einwärts-Verbindung den Großteil ihrer Zeit in L0s mit wenig Einfluss auf das Leistungsverhalten verbringt.
-
Bei noch einer weiteren Ausführungsform wird der Übergang vom Leistungszustand L0s nach L0 für die Einwärts-Verbindung verzögert, wenn das Intervall zwischen dem EW-Signal und dem Punkt, zu dem die Antwort fertig ist, sehr viel größer ist als die Übergangszeit von L0s nach L0. Zum Beispiel ist bei einer Ausführungsform die Austrittszeit aus L0s in der Größenordnung von –30 ns; für eine Seitenfehltransaktion könnte die Zeit zwischen Anfrage und Antwort –50 ns sein. Wenn daher die Antwortzeit mehr als etwa einige ns ist, so wie, jedoch nicht beschränkt auf 5 ns, länger ist als die Austrittszeit von L0s, können wir in diesem Fall den Beginn des Zustandsübergangs der Verbindung auf einige Zeit, nachdem das EW-Signal ankommt, verzögern. Dies ermöglicht es, die Verbindung solange wie möglich in einem Zustand niedriger Leistung zu halten, so dass Energie gespart wird und auch die Wartezeit bis zur Antwort minimiert wird, was das Leistungsverhalten optimiert. In der obigen Figur wird dies durch die Verzögerung zwischen Empfang des EW bei E und des Beginns des Übergangs am Zeitpunkt F dargestellt, daher beendet die Verbindung den Übergang gerade rechtzeitig, um die Antwort zu senden. Jedoch ist der beanspruchte Gegenstand nicht auf die vorstehenden Werte beschränkt. Zum Beispiel hängt die Zeit für eine Seitenfehltransaktion von dem Typ des Speichers und der Speicherarchitektur ab.
-
Wie oben beschrieben muss die Verbindung für einige Zeit (Ruhe-Zeitüberschreitung) ruhig sein, bevor sie in den Zustand L0s zurückkehrt. Bei noch einer weiteren Ausführungsform kann man opportunistisch die Einwärts-Verbindung in den Zustand L0s nach der aktuellen Übertragung zurückführen, falls in der Zwischenzeit keine zusätzlichen Anfragen angekommen sind. Wenn zum Beispiel die Einwärts-Verbindung in dem Leistungszustand L0s ist und eine Anfrage am Punkt E empfangen wird, wird ein Flag gesetzt, der angibt, dass eine anfängliche Anfrage angekommen ist. Jedwede anschließende Antwort jedoch löscht diesen Flag. Wenn der Flag zum Zeitpunkt G nach gesetzt ist, gibt dies das Fehlen jedweder anschließender Anfragen an. Folglich gibt es ein Fehlen jedweder Antworten, die übertragen werden sollen. Daher kann man die Verbindung unmittelbar in den Zustand L0s überführen. Wenn im Gegensatz dazu der Flag gelöscht ist, dann wird eine Antwort bald nach der aktuellen Antwort kommen. Daher muss man die normale Ruhe-Zeitüberschreitung abwarten, um die Einwärts-Verbindung zurück in den Zustand L0s zu bewegen. Dies hilft dabei, die Verbindung in den Zustand niedriger Leistung zu überführen und maximiert die Schlafzeit der Verbindung, wenn wir sporadische einzelne Anfragen haben, die die Verbindung aufwecken; wenn wir dieses nicht tun, würden wir in den Leistungszustand L1 über die Dauer der Ruhe-Zeitüberschreitung der Verbindung bleiben, bis wir fühlen, dass die Verbindung ruhig ist, bevor wir sie wieder in den Zustand L0s überführen.
-
Auch kann der beanspruchte Gegenstand in Software implementiert werden. Zum Beispiel kann die Software in einem elektronisch zugreifbaren Medium gespeichert sein, das irgendeinen Mechanismus umfasst, der Inhalt (z. B. von einem Computer ausführbare Befehle) in einer Form, die von einem elektronischen Gerät (z. B. einem Computer, einem persönlichen digitalen Assistenten, einem mobilen Telefon) lesbar ist, zur Verfügung stellt (d. h. speichert und/oder sendet). Zum Beispiel umfasst ein durch eine Maschine zugreifbares Medium Nur-Lese-Speicher (ROM – Read Only Memory); Speicher mit wahlfreiem Zugriff (RAM – Random Access Memory); Magnetplatten-Speichermedien; optische Speichermedien, Flash-Speichereinheiten; elektrische, optische, akustische oder andere Formen sich fortpflanzender Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale).