-
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 herauszu kommen, gibt
es eine Strafe beim Aufweckender 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.
-
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
Allge meinen 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 210B–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, 310B 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 eine 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
wer den, 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 Anfragetransaktionen 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, um die Einwarts-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 Einwarts-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 Einwarts-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 Einwärts-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 Einwarts-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 vor geschlagene 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 Einwarts-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 Einwarts-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 noch 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 Ein wä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).
-
Obwohl
die Erfindung im Hinblick auf verschiedene Ausführungsformen der Erfindung
beschrieben worden ist, werden die Durchschnittsfachleute erkennen,
dass die Erfindung nicht auf die beschriebenen Ausführungsformen
der Erfindung beschränkt
ist, sondern mit Modifikation und Abänderung im Gedanken und Umfang
der angefügten
Ansprüche
in die Praxis umgesetzt werden kann. Die Beschreibung soll somit
als veranschaulichend anstatt als beschränkend angesehen werden.