-
HINTERGRUND
-
Unkoordinierte Aktivitäten unter vielen mit Mikroservern verbundenen Komponenten können zu einer geringen Nutzung der Ressourcen führen. Gegenwärtige Lösungen, wie z.B. aus
US 2010/0287394 A1 und
US 2008/0162982 A1 bekannt, sind entweder gegenüber der Arbeitslast nicht sehr sensibel oder sie bürden den Lieferanten der Komponenten eine große Last auf. Die Erfindung macht es sich zur Aufgabe den Energieverbrauch von Komponenten zu verringern.
-
Figurenliste
-
Die verschiedenen Vorteile der erfindungsgemäßen Ausführungsformen werden für den Fachmann beim Durchlesen der folgenden Beschreibung und der anhängenden Ansprüche sowie unter Bezugnahme auf die folgenden Zeichnungen offensichtlich:
- 1 ist ein Blockdiagramm, das ein beispielhaftes Computersystem gemäß einigen Ausführungsformen veranschaulicht;
- 2 ist ein Blockdiagramm, das ein Beispiel eines Sockel- oder Mikroservers gemäß einigen Ausführungsformen veranschaulicht;
- 3 ist ein Blockdiagramm, das ein Beispiel eines Mikromoduls gemäß einigen Ausführungsformen veranschaulicht;
- 4 ist ein Diagramm, das eine beispielhafte Abfolge von Operationen veranschaulicht, die durch verschiedene Komponenten eines Sockels ausgeführt werden können, um den Energieverbrauch gemäß einigen Ausführungsformen zu reduzieren;
- 5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens, das durch eine Power-Management-Einheit eines Sockels gemäß einigen Ausführungsformen ausgeführt werden kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen können eine Vorrichtung einbeziehen, die Logik einschließt, um eine erste Benachrichtigung zu einem oder mehreren Peripheriegeräten unter Verwendung von Seitenbandnachrichten zu senden, um zu veranlassen, dass das eine oder die mehreren Peripheriegeräte Operationen verzögern. Die erste Benachrichtigung kann basierend auf Kernen eines Mikroservers, der in einen ersten Energieverbrauchszustand versetzt ist, gesendet werden.
-
Die Vorrichtung kann Logik einschließen, um die Kerne in einen zweiten Energieverbrauchszustand zu versetzen, der weniger Energie verbraucht als der erste Energieverbrauchszustand. Die Vorrichtung kann auch Logik einschließen, um einen Zeitgeber für einen Zeitraum zu starten. Die Kerne können konfiguriert sein, für den Zeitraum im zweiten Energieverbrauchszustand zu verbleiben. Wenigstens eines der ein oder der mehreren Peripheriegeräte ist konfiguriert, Daten während des Zeitraums zu puffern. Die Vorrichtung kann weiter Logik einschließen, um eine zweite Benachrichtigung zu dem einen oder den mehreren Peripheriegeräten unter Verwendung der Seitenbandnachrichten zu senden. Die zweite Benachrichtigung kann benachrichtigen, dass die Kerne des Mikroservers nach Ablauf des Zeitraums in einen dritten Energieverbrauchszustand versetzt werden. Der dritte Energieverbrauchszustand kann mehr Energie verbrauchen als die ersten und zweiten Energieverbrauchszustände.
-
Ausführungsformen können ein System einbeziehen, das mehrere Kerne, ein Power-Management-Modul, das mit den Kernen gekoppelt ist, und ein oder mehrere mit dem Power-Management-Modul gekoppelte Peripheriegeräte einschließen kann. Das Power-Management-Modul kann konfiguriert sein, das eine oder die mehreren Peripheriegeräte zu veranlassen, basierend auf der Bestimmung, dass die Kerne sich in einem ersten Energieverbrauchszustand befinden, Operationen zu verzögern. Das Power-Management-Modul kann die Kerne in einen zweiten Energieverbrauchszustand für einen vorbestimmten Zeitraum versetzen. Der zweite Energieverbrauchszustand kann weniger Energie verbrauchen als der erste Energieverbrauchszustand. Das Power-Management-Modul kann das eine oder die mehreren Peripheriegeräte veranlassen, ihre Operationen basierend auf dem Ablauf des vorbestimmten Zeitraums fortzusetzen, und kann die Kerne basierend auf dem Ablauf des Zeitraums in einen dritten Energieverbrauchszustand versetzen. Der dritte Energieverbrauchszustand kann mehr Energie verbrauchen als der erste Energieverbrauchszustand und der zweite Energieverbrauchszustand. Ausführungsformen können ein computerimplementiertes Verfahren einbeziehen, das die Verwendung von Seitenbandkommunikation einschließen kann, um ein oder mehrere Peripheriegeräte eines Servers, der mehrere Kerne aufweist, zu veranlassen, basierend auf der Bestimmung, dass die Kerne in einen ersten Energieverbrauchszustand versetzt sind, Operationen zu verzögern. Das Verfahren kann das Versetzen der Kerne in einen zweiten Energieverbrauchszustand für einen Zeitraum einschließen. Der zweite Energieverbrauchszustand kann weniger Energie verbrauchen als der erste Energieverbrauchszustand.
-
Unter Verwendung der Seitenbandkommunikation kann das Verfahren das eine oder die mehreren Peripheriegeräte veranlassen, Operationen basierend auf dem Ablauf des Zeitraums fortzusetzen. Das Verfahren kann weiter das Versetzen der Kerne in einen dritten Energieverbrauchszustand basierend auf dem Ablauf des Zeitraums einschließen. Der dritte Energieverbrauchszustand kann mehr Energie verbrauchen als der erste Energieverbrauchszustand und der zweite Energieverbrauchszustand. Bezug nehmend auf 1 wird ein Blockdiagramm gezeigt, das ein beispielhaftes Computersystem 100 gemäß einigen Ausführungsformen veranschaulicht. Das Computersystem 100 kann eine Zentraleinheit (CPU) 105, einen Grafik- und Memory-Controller-Hub (GMCH) 110 und einen Eingabe-/Ausgabecontroller-Hub (ICH) 125 einschließen. Der GMCH 110 kann mit der CPU 105 über einen Bus 107 gekoppelt sein. Der ICH 125 kann mit dem GMCH 110 über einen Bus 122 gekoppelt sein. Der GMCH 110 kann auch mit den Speichergeräten 115 und den Anzeigegeräten 120 gekoppelt sein. Der ICH 125 kann mit den I/O-Geräten 130 gekoppelt sein. Der GMCH 110 kann ein Grafik-System (nicht dargestellt) einschließen. Obwohl die CPU 105, der GMCH 110 und der ICH 125 als separate Komponenten veranschaulicht sind, können die Funktionen von zwei oder mehr dieser Komponenten kombiniert sein. Eine Stromversorgung 150 kann verwendet werden, um Strom an das Computersystem 100 bereitzustellen. Die Stromversorgung 150 kann eine Batterie oder eine externe Stromquelle sein.
-
Für einige Ausführungsformen kann die CPU 105 ein Mehrkernprozessor sein. Das Computersystem 100 kann auch viele andere Komponenten einschließen; diese sind jedoch zur Einfachheit nicht dargestellt. Für einige Ausführungsformen kann das Computersystem 100 ein Server-Computersystem sein.
-
Unter Bezugnahme auf 2 wird ein Blockdiagramm gezeigt, das einen beispielhaften Sockel veranschaulicht, der mehrere Kerne gemäß einigen Ausführungsformen aufweist. Der Sockel 200 kann vier Module einschließen. Jedes Modul kann zwei Kerne einschließen, die den gleichen Cache gemeinsam benutzen. Im gegenwärtigen Beispiel gibt es acht Kerne im Sockel 200, wobei die Kerne 210, 212 den Cache 215 gemeinsam benutzen, die Kerne 220, 222 den Cache 225 gemeinsam benutzen, die Kerne 230, 232 den Cache 235 gemeinsam benutzen und die Kerne 240, 242 den Cache 245 gemeinsam benutzen. Die acht Kerne können gemeinsam als die Kerne 201 bezeichnet werden.
-
Der Sockel 200 kann als ein System auf einem Chip (SoC) implementiert sein, der viele Hardwarekomponenten eines Computersystems in einen Einzelchip integrieren kann. Diese Komponenten können Verarbeitungslogik (z. B. Kerne), Memory-Controller und damit verbundene Speicher, Peripheriegeräte, Schnittstellen usw. einschließen. Der Sockel 200 kann Software (z. B. Treiber, Betriebssystem usw.) einschließen, die verwendet werden kann, um dem Sockel 200 zu ermöglichen, mit der integrierten Hardware zu arbeiten.
-
Der Sockel 200 kann ein kohärentes Gefüge 250 und ein ein-/ausgabeskalierbares Gefüge (IOSF) 255 einschließen. Das kohärente Gefüge 250 kann mit den Kernen und dem Cache über die Kommunikationsleitung 248 gekoppelt sein. Das kohärente Gefüge 250 kann auch mit einem Memory-Controller (MC) 252 über die Kommunikationsleitung 254 gekoppelt sein. Der Sockel 200 kann auch einen Satz Peripheriegeräte einschließen, einschließlich beispielsweise Peripheral Component Interconnect Express- (PCIE) -Controller 260, Gigabit-Ethernet- (GbE) -Controller 265, Serial Advanced Technology Attachment- (SATA) -Controller 270, Power-Management-Controller (PMC) 275 und Systemspeicher-Bus (SMB) 280.
-
Das kohärente Gefüge 250 und das IOSF 255 können für direkten Verkehr innerhalb des Sockels 200 zwischen den Kernen 201 und dem Satz an Peripheriegeräten über die Kommunikationsleitungen 248 und 256 konfiguriert sein. Der GbE-Controller 265 kann konfiguriert sein, um das Senden und Empfangen von Netzwerkverkehr zwischen einem Netzwerk und den Kernen 201 zu behandeln. Wenn ein Paket von einem Netzwerk eintrifft, kann der GbE-Controller 265 bei diesem Beispiel das Paket zum kohärenten Gefüge 250 senden. Das kohärente Gefüge 250 kann dann das Paket zum geeigneten Kern der Kerne 201 zur Verarbeitung weiterleiten. Der SATA-Controller 270 kann konfiguriert sein, um Anfragen für mit SATA verbundene Geräte (z. B. Festplattenspeicher) zu behandeln. Der PCIE-Controller 260 kann konfiguriert sein, um Anfragen für mit PCIE verbundene Geräte zu behandeln. Der PMC 275 kann konfiguriert sein, um Power-Management für den Sockel zu behandeln. Der SMB 280 kann konfiguriert sein, um Verkehr zwischen dem Sockel 200 und einem anderen Sockel (gezeigt in 3) zu behandeln.
-
Im Allgemeinen können die Kerne 201 in einen Niedrigenergieverbrauchszustand versetzt werden, wenn sie nicht ausgelastet sind. Um effizient zu sein, sollten die Kerne 201 für wenigstens einen Mindestzeitraum im Niedrigenergieverbrauchszustand verbleiben. Der Grund dafür ist, dass die Kerne 201 zum Übergang von einem normalen Energieverbrauchszustand zu einem Niedrigenergieverbrauchszustand Zeit benötigen. Die Kerne 201 können auch Zeit in Anspruch nehmen, um vom Niedrigenergieverbrauchszustand zum normalen Energieverbrauchszustand zurückzukehren. Wenn die Kerne 201, nachdem sie in den Niedrigenergieverbrauchszustand versetzt wurden, zu früh aufgeweckt werden, kann der gesamte Energieverbrauch der Kerne 201 darin resultieren, dass er größer ist, als wenn die Kerne 201 die gesamte Zeit im normalen Energieverbrauchszustand gehalten worden wären. Während die Kerne 201 sich in einem Niedrigenergieverbrauchszustand befinden, kann beispielsweise ein Paket eintreffen und vom GbE-Controller 265 empfangen werden. Der GbE-Controller 265 kann veranlassen, dass die Kerne 201 aufwachen, um das Paket unabhängig davon, wie lange die Kerne 201 im Niedrigenergieverbrauchszustand gewesen sein mögen, zu verarbeiten. Wenn der SATA-Controller 270 Daten von einem FestplattenGerät (infolge einer vorhergehenden Leseanfrage) empfängt, kann der SATA-Controller 270 die Kerne 201 veranlassen, aufzuwachen, selbst wenn die Kerne 201 gerade das Eintreten in den Niedrigenergieverbrauchszustand abgeschlossen haben könnten. Da die Peripheriegeräte wie der GbE-Controller 265 oder der SATA-Controller 270 durch die Kerne 201 zu irgendeinem Zeitpunkt aufwachen können, kann es schwierig sein, vorauszusagen, wie lange die Kerne 201 im Niedrigenergieverbrauchszustand verbleiben können. Selbst wenn die Verwendung der Kerne 201 niedrig sein kann (z. B. geringer als 30 %), könnte es nicht energieeffizient sein, die Kerne 201 in den Niedrigenergieverbrauchszustand zu versetzen, da ein oder mehrere der Peripheriegeräte die Kerne zu früh aufwecken können.
-
Es kann mehrere unterschiedliche Energieverbrauchszustände geben, in die die Kerne 201 versetzt werden können. Beispielsweise können die Kerne 201 in einen „MC0“-Zustand versetzt werden, der einem normalen Energieverbrauchszustand entsprechen kann. Die Kerne 201 können in einen „MC4“-Zustand versetzt werden, der einem Niedrigenergieverbrauchszustand entsprechen kann. Die Kerne 201 können auch in einen „MC6“-Zustand versetzt werden, der einem noch niedrigeren Energieverbrauchszustand entsprechen kann. Der MC6-Zustand kann relativ zum MC0- und MC4-Zustand als ein Schlafzustand betrachtet werden. Für einige Ausführungsformen kann eine Power-Management-Einheit (PUNIT) 247 konfiguriert sein, um die Verwendung der Kerne 201 zu überwachen. Die PUNIT 247 kann mit den Kernen 201 und dem kohärenten Gefüge 250 gekoppelt sein. Die PUNIT 247 kann konfiguriert sein, ein Power-Management für die Kerne 201 bereitzustellen. Beispielsweise kann die PUNIT 247 die Verwendung der Kerne 201 überwachen und sie kann bestimmen, wann die Kerne 201 in den Niedrigenergieverbrauchszustand zu versetzen sind (z. B. vom MC0-Zustand in den MC4-Zustand). Die PUNIT 247 kann mit den Kernen 201 und dem kohärenten Gefüge 250 über eine Kommunikationsleitung 246 kommunizieren. Für einige Ausführungsformen kann die PUNIT 247 konfiguriert sein, die Peripheriegeräte zu benachrichtigen, wenn die Kerne 201 in einen noch niedrigeren Energieverbrauchszustand (z. B. vom MC4-Zustand in den MC6-Zustand) versetzt werden können, und wenn die Kerne 201 in den normalen Energieverbrauchszustand (z. B. vom MC6-Zustand in den MC0-Zustand) versetzt werden können. Für einige Ausführungsformen kann die PUNIT 247 ein Seitenband 257 verwenden, um den SATA-Controller 270 zu benachrichtigen, und ein Seitenband 258, um den GbE-Controller 265 zu benachrichtigen.
-
Unter Bezugnahme auf 3 wird ein Blockdiagramm gezeigt, das ein Beispiel eines Mikromoduls gemäß einigen Ausführungsformen veranschaulicht. Das Mikromodul 300 kann zwei Sockel 301 und 351, die miteinander durch einen Mikromodul-Management-Controller (MMC) 390 verbunden sind, einschließen. Der MMC 390 kann mit dem Sockel (oder Server) 301 über einen SMB des Sockels 301 gekoppelt sein. Der MMC 390 kann auch mit dem Sockel (oder Server) 351 über einen SMB-Bus des Sockels 351 gekoppelt sein. Der MMC 390 kann konfiguriert sein, die Sockel 301 und 351 zu verwalten. Intern können die Sockel 301 und 351 in ähnlicher Weise wie Sockel 200 (gezeigt in 2) konfiguriert sein. Beispielsweise kann der Sockel 301 die Kerne 305, die PUNIT 315 und die Peripheriegeräte 320 einschließen. Der Sockel 351 kann die Kerne 355, die PUNIT 365 und die Peripheriegeräte 370 einschließen.
-
Es kann festgestellt werden, dass, wenn die Verwendung der Kerne 305 oder 355 hoch ist (z. B. über 50 %), die entsprechende PUNIT 315 oder 365 die Kerne im normalen Energieverbrauchszustand (z. B. MC0-Zustand) halten kann und die Kerne nicht in den Niedrigenergieverbrauchszustand (z. B. MC4-Zustand) versetzt. Wenn jedoch die Verwendung der Kerne niedrig ist (z. B. weniger als 30 %), kann die PUNIT 315 oder 365 die Kerne 305 oder 355 in den Niedrigenergieverbrauchszustand versetzen (z. B. vom MC0-Zustand in den MC4-Zustand und dann niedriger durch das Wechseln vom MC4-Zustand in den MC6-Zustand). Die PUNITs 315 und 365 können unabhängig voneinander arbeiten. Jede der PUNITs 315 und 365 kann entsprechend einen Zeitgeber 316 und 366 einschließen. Die Zeitgeber 316 und 366 können verwendet werden, um zu bestimmen, wie lange die Kerne 305 und 365 im Niedrigenergieverbrauchszustand (z. B. MC6-Zustand) verbleiben können. Es kann für die Kerne 305 möglich sein, in den niedrigeren Energieverbrauchszustand versetzt zu werden (z. B. MC6-Zustand), während die Kerne 355 im normalen Energieverbrauchszustand (z. B. MC0-Zustand) verbleiben können, oder umgekehrt.
-
4 zeigt ein Diagramm einer beispielhaften Abfolge von Operationen, die durch verschiedene Komponenten eines Sockels ausgeführt werden können, um den Energieverbrauch gemäß einigen Ausführungsformen zu reduzieren. Bei diesem Beispiel können die Komponenten den Komponenten des Sockels 200 (gezeigt in 2) entsprechen, und jede Komponente ist in einer Spalte als die Kerne 201, der GbE-Controller 265, der SATA-Controller 270 und die PUNIT 247 aufgeführt. Jede Spalte kann Operationen einschließen, die durch die Komponente oder einen Status der Komponente zu einer bestimmten Zeit auszuführen sind. Das Diagramm 400 kann von oben nach unten gemäß einer Zeitschiene fortschreiten.
-
Obwohl nicht dargestellt können die Kerne 201 anfänglich im normalen Energieverbrauchszustand (z. B. MC0-Zustand) arbeiten. Wenn die Verwendung der Kerne 201 niedrig wird (z. B. weniger als 30 %), können die Kerne 201 bei ungefähr der Zeit „t1“ in den Niedrigenergieverbrauchszustand (z. B. MC4) 405 versetzt werden. Das Versetzen der Kerne 201 in den Niedrigenergieverbrauchszustand kann durch die PUNIT 247 wie gezeigt in Block 410 ausgeführt werden. Die PUNIT 247 kann den SATA-Controller 270 und den GbE-Controller 265 über die Nachrichten 416 und 417 benachrichtigen, dass es für den SATA-Controller 270 und den GbE-Controller 265 erforderlich sein mag, die Kerne 201 im Niedrigenergieverbrauchszustand zu belassen. Die Benachrichtigung kann über eine Unicastnachricht 415 erfolgen. Die PUNIT 247 kann einen Zeitgeber 420 starten. Der Zeitraum kann basierend auf einer maximalen Direct Memory Access- (DMA) - Ausrichtungsdauer festgesetzt werden. Der Zeitgeber kann deshalb als ein MDAP-Zeitgeber bezeichnet werden. Der MDAP-Zeitgeber kann in der PUNIT 247 eingeschlossen sein. Der Zeitraum kann den Kernen 201 ermöglichen, für eine längstmögliche Zeit in einem Leerlaufmodus zu verbleiben. Der MDAP-Zeitgeber kann basierend auf der MC6-Zustandslatenzzeit (z. B. 500 Mikrosekunden oder zehn Mal die MC6-Ausstiegslatenzzeit) auf einen Standardwert vorprogrammiert werden. Das Auswählen des richtigen Zeitraums kann von einem Ausbalancieren zwischen einem Latenzzeitfaktor und einem Energieverbrauchsfaktor abhängen. Wenn beispielsweise der Zeitraum für eine ausgedehnte Dauer gesetzt ist, können die Kerne lange im MC6-Zustand bleiben, während die Verarbeitung der Transaktionen eine unnötige Verzögerung erfährt.
-
Nach dem Empfangen der Benachrichtigung kann der GbE-Controller 265 und der SATA-Controller 270 das Ausführen von Operationen stoppen, welche die Aufmerksamkeit der Kerne 201 benötigen könnten. Dies kann das Ausrichten der Operationen des GbE-Controllers 265 und des SATA-Controllers 270 einschließen, um das Wechseln der Kerne 201 in den niedrigen Energieverbrauchszustand aufzunehmen. Beispielsweise kann es eine Ausrichtung von jeglichen möglichen Interrupts 425 durch den GbE-Controller 265 (z. B. aufgrund des Empfangs des Paketes) 265 und jeglichen möglichen DMA-Aktivitäten 435 durch den SATA-Controller 270 (z. B. aufgrund von gelesenen Daten vom Festplattengerät) geben. Während dieser Zeit kann der SATA-Controller 270 als in einem teilweisen Link-Zustand 430 befindlich betrachtet werden, da er nicht voll mit dem DMA-Controller kommunizieren kann. Eine Pufferung kann verwendet werden, um Datenverlust zu verhindern, während sich die Kerne 201 im Niedrigenergieverbrauchszustand befinden.
-
Die PUNIT 247 kann dann die Kerne 201 in den niedrigeren Energieverbrauchszustand (z. B. MC6-Zustand) versetzen. Dies kann ungefähr zur Zeit „t2“ auftreten. Die Kerne 201 können im niedrigeren Energieverbrauchszustand bleiben, während der MDAP-Zeitgeber läuft. Für einige Ausführungsformen können andere Komponenten des Sockels 200 auch wie gezeigt in Block 455 in einen Niedrigenergieverbrauchszustand versetzt werden, während die Kerne 201 in einem Niedrigenergieverbrauchszustand verbleiben. Der Betrag an Zeit, den die Kerne 201 im niedrigeren Energieverbrauchszustand verbleiben können (z. B. MC6-Zustand) kann gleich der durch den MDAP-Zeitgeber eingestellten Zeit und der Latenzzeit für die Kerne 201 zum Übergang vom niedrigen Energieverbrauchszustand (z. B. MC6-Zustand) zum normalen Energieverbrauchszustand (z. B. MC0) sein, wie gezeigt in Block 460.
-
Wenn der mit dem MDAP-Zeitgeber verbundene Zeitraum abläuft, kann die PUNIT 247 den SATA-Controller 270 und den GbE-Controller 265 über die Seitenbandnachrichten 466 und 477 benachrichtigen. Der SATA-Controller 270 und der GbE-Controller 265 können dann die Verarbeitung ihrer Informationen fortsetzen, da die Kerne 201 zum normalen Energieverbrauchszustand zurückkehren können. Die Benachrichtigung kann über eine Unicastnachricht 465 erfolgen, die ungefähr zur Zeit „t3“ auftreten kann.
-
Für einige Ausführungsformen kann die im MDAP-Zeitgeber eingestellte Zeit programmierbar sein. Beispielsweise kann ein Benutzer die Zeit unter Verwendung einer Softwareschnittstelle festlegen, die mit den Kernen 201 verbunden sein kann. Der Zeitraum kann auch vom Originalhersteller (OEM) des Sockels 200 festgelegt werden. Für einige Ausführungsformen kann der Zeitraum überschrieben werden, wenn es nicht mehr möglich ist, auf die Kerne 201 zu warten, bis sie den niedrigen Energieverbrauchszustand verlassen. Wenn beispielsweise der GbE-Controller 265 nahe am Erschöpfen seines Pufferspeicherplatzes ist und das Risiko, vom Netzwerk empfangene Pakete zu verlieren, hoch ist, kann ein Interrupt generiert werden, um die Kerne 201 aufzuwecken.
-
5 zeigt ein beispielhaftes Ablaufdiagramm, das einen Prozess veranschaulicht, der von einer PUNIT gemäß einigen Ausführungsformen ausgeführt werden kann. Der Prozess kann der PUNIT 247 entsprechen, die den Energieverbrauch der Kerne 241 verwaltet. Die Kerne 241 können sich bereits in einem Niedrigenergieverbrauchszustand (z. B. MC4-Zustand) befinden. Bei Block 505 kann die PUNIT die Peripheriegeräte benachrichtigen, um die Ausrichtung zu starten, was die Verzögerung ihrer Operationen einschließen kann. Beispielsweise kann die Verzögerung in Form eines Pufferns anstatt des Verarbeitens der Daten, die vom Netzwerk durch den GbE-Controller oder von einem Festplattenlaufwerk durch den SATA-Controller empfangen wurden, erfolgen. Die Verzögerung kann das Ausrichten der Interrupts einschließen, anstatt jeden Interrupt zu verarbeiten, während er auftritt. Die PUNIT kann einen Ausrichtungszeitgeber starten und IOSF-Seitenbandnachrichten an den GbE- und den SATA-Controller senden, um die Ausrichtung wie gezeigt in Block 510 zu starten. Der GbE- und der SATA-Controller können den DMA sammeln und Interrupts nach dem Empfangen der Nachricht IOSF-Ausrichtung starten ausrichten.
-
Bei Block 515 kann eine Prüfung ausgeführt werden, um zu bestimmen, ob der Zeitgeber abgelaufen ist. Wenn der Zeitgeber nicht abgelaufen ist, kann der Prozess bei Block 515 weiterhin warten. Wenn jedoch der Zeitgeber abgelaufen ist, kann der Prozess zu Block 520 fortschreiten, wo die PUNIT lOSF-Seitenbandnachrichten zum GbE- und SATA-Controller senden kann, um die Ausrichtung der Interrupts und/oder die Pufferung der Daten zu stoppen. Bei Block 525 können der GBE- und der SATA-Controller nach dem Empfangen der Stoppnachricht in die normale Betriebsart eintreten. Bei niedriger Verwendung, wann immer alle Kerne in den MC4-Zustand eintreten, selbst für eine kurze Dauer (z. B. 1 Mikrosekunde), können die hier beschriebenen Techniken den Sockel zwingen, in den niedrigen Energiezustand (z. B. MC6-Zustand) einzutreten und dort für eine lange Zeit zu verbleiben. Dies kann die durchschnittlichen Plattform-Energieeinsparungen bei niedriger Verwendung verbessern.
-
Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination beider implementiert werden. Beispiele von Hardwareelementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktionsspulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinheiten (PLD), digitale Signalprozessoren (DSP), Field Programmable Gate Array (FPGA), Logikgatter, Register, ein Halbleitergerät, Chips, Mikrochips, Chipsätze und so weiter einschließen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Programmierschnittstellen (API), Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder jede Kombination davon einschließen. Die Bestimmung, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann in Übereinstimmung mit einer beliebigen Anzahl an Faktoren variieren, wie beispielsweise gewünschte Rechengeschwindigkeit, Energieniveaus, Wärmetoleranzen, Budget der Verarbeitungszyklen, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Beschränkungen bezüglich Design oder Leistung.
-
Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logiken innerhalb des Prozessors repräsentiert, die beim Lesen durch eine Maschine die Maschine veranlassen, Logik zum Ausführen der hierin beschriebenen Techniken zu erzeugen. Solche Repräsentationen, auch als „IP-Kerne“ bekannt, können auf einem konkreten maschinenlesbaren Medium gespeichert und an verschiedene Kunden oder Fertigungsanlagen geliefert werden, wo sie in Fertigungsmaschinen geladen werden, welche die Logik oder den Prozessor herstellen.
-
Größen/Modelle/Werte/Bereiche sind als Beispiele angegeben, obgleich Ausführungsformen der vorliegenden Erfindung nicht auf diese beschränkt sind. Mit der Ausreifung von Fertigungstechniken (z. B. Fotolithografie) im Laufe der Zeit ist zu erwarten, dass immer kleinere Geräte hergestellt werden können. Außerdem ist es möglich, dass wohlbekannte Strom-/Masseverbindungen mit den IC-Chips und anderen Komponenten in den Figuren gezeigt oder nicht gezeigt werden, was aus Gründen der Vereinfachung der Veranschaulichung und Erörterung geschieht, und um bestimmte Aspekte der erfindungsgemäßen Ausführungsformen nicht in den Hintergrund rücken zu lassen. Des Weiteren können Anordnungen im Blockdiagrammformat gezeigt sein, um Ausführungsformen der Erfindung nicht in den Hintergrund rücken zu lassen, und auch um aufzuzeigen, dass bestimmte Details in Bezug auf die Implementierung solcher Blockdiagrammanordnungen in hohem Maß von der Plattform abhängen, in die die Erfindung implementiert werden soll, d. h., dass der Fachmann mit solchen spezifischen Details vertraut sein sollte. Wo spezifische Details (z. B. Schaltungen) angeführt werden, um beispielhafte Ausführungsformen der Erfindung zu beschreiben, sollte der Fachmann erkennen, dass erfindungsgemäße Ausführungsformen mit oder ohne Variationen dieser spezifischen Details realisiert werden können. Die Beschreibung soll somit als veranschaulichend anstatt einschränkend angesehen werden.
-
Der Begriff „gekoppelt“ kann hierin verwendet sein, um auf jede Art von Beziehung, direkt oder indirekt, zwischen den betreffenden Komponenten zu verweisen, und kann sich auf elektrische, mechanische, fluidtechnische, optische, elektromagnetische, elektromechanische oder andere Verbindungen beziehen. Außerdem können die Begriffe „erste/r/s“, „zweite/r/s“, etc. hierin nur verwendet sein, um die Erörterung zu vereinfachen, und tragen keine besondere temporäre oder chronologische Bedeutung, außer anderweitig angegeben.