DE102009030544B4 - Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem - Google Patents

Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem Download PDF

Info

Publication number
DE102009030544B4
DE102009030544B4 DE102009030544.0A DE102009030544A DE102009030544B4 DE 102009030544 B4 DE102009030544 B4 DE 102009030544B4 DE 102009030544 A DE102009030544 A DE 102009030544A DE 102009030544 B4 DE102009030544 B4 DE 102009030544B4
Authority
DE
Germany
Prior art keywords
link
power management
platform
latency
management controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102009030544.0A
Other languages
English (en)
Other versions
DE102009030544A1 (de
Inventor
Jaya L. Jeyaseelan
James J. Walsh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102009030544A1 publication Critical patent/DE102009030544A1/de
Application granted granted Critical
Publication of DE102009030544B4 publication Critical patent/DE102009030544B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device

Abstract

Verfahren für ein koordiniertes Link-Power-Management auf einer Computer-Plattform, das Folgendes umfasst: an einem Link-Power-Management-Controller (235), der von einem Hostcontroller (230) für eine Verbindung umfasst ist, wobei die Verbindung eine Vielzahl von Links für eine Vielzahl von Geräten (250–255) umfasst, Empfang einer Ausstiegslatenzzeit für jeden einer Vielzahl von Link-Zuständen für jeden einer Vielzahl von Links, die einen ersten Link enthält, für eine Plattform (300), wobei die Ausstiegslatenzzeiten von einer Vielzahl von Geräten (250–255) empfangen werden, die über die Vielzahl von Links gekoppelt sind, wobei ein erstes Gerät (250), über den ersten Link an eine Verbindung gekoppelt ist; an dem Link-Power-Management-Controller (235) Empfang einer Latenzzeittoleranz für jedes Gerät von jedem der Vielzahl von Geräten, das Empfangen einer ersten Latenzzeittoleranz für das erste Gerät von dem ersten Gerät umfasst; Bestimmung eines Latenzzeittoleranzwertes durch den Link-Power-Management-Controller, wobei der festgelegte Latenzzeittoleranzwert auf einem kleinsten Latenzzeittoleranzwert der Vielzahl von Geräten basiert; Kommunizieren des Latenzzeittoleranzwertes von dem Link-Power-Management-Controller an einen Plattform-Power-Management-Controller (225); an dem Link-Power-Management Controller Empfang einer Plattform-Latenzzeitanforderung für einen niedrigeren Power-Zustand der Plattform von dem Plattform-Power-Management-Controller, wobei die Plattform-Latenzzeitanforderung auf der Basis von Kommunikationen zwischen dem Plattform-Management-Controller und einem oder mehreren Power-Management-Controllern (210–215) der Plattform festgelegt ist; Bestimmung eines Link-Budgets für jedes der Vielzahl von Geräten durch den Link-Power-Management-Controller durch eine Subtraktion der festgelegten Plattform-Ausstiegslatenzzeit von der Latenzzeittoleranz für jedes Gerät der Vielzahl von ...

Description

  • TECHNISCHES GEBIET
  • Bestimmte Ausführungsbeispiele der Erfindung betreffen generell die Link-Leistungszustände von Geräten. Insbesondere betreffen bestimmte Ausführungsbeispiele ein koordiniertes Link-Power-Management.
  • STAND DER TECHNIK
  • In vielen Geräten und Systemen wird Power-Management eingesetzt, um die Leistungsaufnahme zu reduzieren und eine längere Betriebszeit zu ermöglichen. Zu den verwendbaren Power-Management-Prozessen, gehören Link-Prozesse, in denen bestimmte Links, z. B. unter einem bestimmten Bus oder einem anderen Verbindungsstandard ausgeführte Links, bei reduzierter Nutzung in einen stromsparenden Zustand wechseln.
  • Der Universal Serial Bus (USB) ist beispielsweise eine der häufigsten Verbindungen auf einer Computerplattform. Der USB ist ein abgefragter Bus und während des Betriebs initiiert der Hostcontroller alle Transaktionen auf dem Bus und steuert die zeitliche Einteilung jeder Transaktion. Der Bus ist eine E/A-(Eingang/Ausgang)-Verbindung für die Rechnerplattform und kann einen oder mehrere Links umfassen, wobei ein Link ein Kommunikationskanal zwischen Anschlüssen ist. USB-Links können Power-Management-Funktionen unterworfen sein, wobei die Links bei Inaktivität in niedrige Leistungszustände wechseln.
  • Der USB besteht seit einiger Zeit und wurde über mehrere Standards hinweg weiterentwickelt bis zum aktuellen Standard USB 2.0 (Universal Serial Bus Specification, Revision 2.0 mit Release-Datum vom 27. April 2000), der mit einer Geschwindigkeit von 480 mbps (Megabit pro Sekunde) arbeitet. Weitere Entwicklungsarbeiten sind im Laufen, um zukünftige schnellere Versionen des USB zu definieren, z. B. mit Geschwindigkeiten bis 5 Gbps (Gigabit pro Sekunde). Der USB 2.0-Standard definiert einen Mechanismus für das Anhalten und Fortsetzen (Suspend/Resume) eines Links, wodurch eine reduzierte Leistungsaufnahme realisiert werden kann. Des Weiteren wurde eine Spezifikationsänderung in Form einer Engineering Change Notice (ECN) für den USB herausgegeben, um das Link-Power-Management anzusprechen. (Link Power Management Addendum ECN, herausgegeben am 16. Juli 2007).
  • US 2004/0128576 A1 betrifft Active State-Link-Power-Management, das die Zuordnung von Active-State-Steuerwerten zu Geräten auf der Basis von der Toleranz jedes Geräts im Vergleich mit einer akkumulierbaren Latenzzeit eines Pfades zwischen dem Gerät und einem anderen Gerät und Erlaubnis von niedrigeren Power-Zuständen, wenn die akkumulierte Latenzzeit entlang eines Pfades niedriger als die zulässige Latenzzeit für ein Gerät ist, umfasst.
  • DE 10 2009 015 495 A1 betrifft Plattform-Power-Management auf der Basis von Latenzzeitrichtlinien und umfasst den Empfang von Power-Management-Richtlinien von Elementen, wobei die Richtlinien Latenzzeittoleranzen enthalten können.
  • US 2005/0097378 A1 betrifft die Verwaltung von Energie in einem Ein-Chip-Gerät und umfasst die Verwendung einer internen Finit-State-Machine, die aus dem Ein-Chip-Gerät bestimmt, ob ein Power-Management-Zustand gesetzt ist und ob ein Power-Management-Ereignis empfangen wird.
  • US 2004/0088590 A1 betrifft ein System und einen Prozess für Energieverbrauch in einem Kommunikationssystem, die Bestimmung von mindestens einem Power-Modus eines Host und Auswählen von mindestens einem Netzwerkschnittstellen-Power-Management-Zustand auf der Basis des ermittelten Power-Modus enthalten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsbeispiele der Erfindung werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, wobei Bezugsnummern zum Verweis auf ähnliche Elemente verwendet werden:
  • 1 ist eine Darstellung der Link-Zustände, die in einem Ausführungsbeispiel eines Link-Power-Management-Systems angesprochen werden;
  • 2 ist eine Darstellung eines Ausführungsbeispiels eines Systems für das koordinierte Link-Management;
  • 3 ist eine Darstellung eines Ausführungsbeispiels eines Power-Management-Systems;
  • 4 ist ein Ablaufdiagramm zur Darstellung eines Ausführungsbeispiels für einen Prozess zur Bestimmung eines Link-Zustands;
  • 5 ist ein Ablaufdiagramm zur Darstellung eines Ausführungsbeispiels für einen Prozess zum Power-Management für periodische Übertragungen; und
  • 6 ist eine Darstellung eines Rechnersystems, in dem ein Ausführungsbeispiel des koordinierten Link-Power-Management enthalten sein kann.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Ein Ausführungsbeispiel der Erfindung betrifft ein koordiniertes Link-Power-Management.
  • Bestimmte Ausführungsbeispiele der Erfindung stellen ein koordiniertes Link-Power-Management und die Auswahl der entsprechenden Link-Zustände bereit. Bestimmte Ausführungsbeispiele umfassen insbesondere eine Methode, einen Apparat oder ein System für das Power-Management von Links zu einer Verbindung, wie z. B. einem USB-Bus. Ausführungsbeispiele der Erfindung sind jedoch nicht auf eine bestimmte Verbindungstechnologie begrenzt.
  • In bestimmten Ausführungsbeispielen wird das Power-Management von Link-Zuständen implementiert, um bessere Stromeinsparungen gegenüber konventionellen Methoden zu ermöglichen und somit die Akkulaufzeit von akkubetriebenen Geräten, die mit USB ausgestattet sind, zu verbessern, einschließlich aktuelle Versionen des USB sowie zukünftige Versionen (USB 3.0 und andere) und auch andere Verbindungen. Ausführungsbeispiele in Bezug auf USB können in dieser Schrift beschrieben sein, doch die Erfindung ist in keiner Weise auf diese Art von Verbindungen begrenzt. Ausführungsbeispiele können in jede bestehende oder zukünftige Verbindung, die mit einem Hostcontroller zusammenarbeitet, eingebunden werden.
  • Die durch USB 2.0 bereitgestellten Link-Zustandsmechanismen sind grob abgestimmt und es dauert mehrere Millisekunden, bis ein System in die definierten Linkzustände einsteigt und wieder aussteigt. Der USB-Standard wurde ursprünglich für die Verwendung in Verbindung mit Systemzustandsübergängen konzipiert (wie z. B. in definierten Low-Power-Zuständen S3 und S4), die keine schnellen Linkübergangszeiten erfordern. Der USB-Standard bietet kein fein abgestimmtes Power-Management, wenn sich das System z. B. im voll funktionsfähigen Systemzustand S0 und das Gerät im Gerätezustand D0 befindet.
  • Wie oben angegeben, wird in einem USB 2.0 ECN ein USB-Link-Power-Management (LPM) vorgeschlagen, das der konventionellen Suspend/Resume-Signalisierung ähnlich ist, aber kürzere Übergangslatenzzeiten aufweist. Die Policies für den Einstieg in diesen LPM-Zustand basieren auf einer Inaktivitätszeit, die vom Hostcontroller eingeleitet wird. In zukünftigen Versionen der USB-Spezifikation können zusätzliche Link-Zustände definiert werden, die basierend auf verschiedenen Verkehrsaufkommen ausgewählt werden können.
  • In bestimmten Ausführungsbeispielen stellt ein System das vom Hostcontroller geleitete Link-Power-Management bereit. In bestimmten Ausführungsbeispielen koordiniert das System das Link-Power-Management, um Latenzzeitgrenzen im System zu berücksichtigen und somit bessere Link-Zustandsauswahlen zu ermöglichen.
  • In bestimmten Ausführungsbeispielen werden die Link-Zustände basierend auf einem kohärenten Satz von Informationen aus der gesamten Plattform gesteuert und verwaltet. Dies ist gegensätzlich zu konventionellen Prozessen, bei denen die Link-Zustände basierend auf einem unvollständigen Satz von Informationen, der den Geräten zur Verfügung steht, gesetzt werden, wie z. B. durch einen Inaktivitätszeitgeber innerhalb eines Gerätes, dessen Prozess nicht robust ist und in vielen Fällen Über-/Unterschreitungen des Gerätepuffers verursachen kann.
  • In bestimmten Ausführungsbeispielen wird das Link-Power-Management durch das Plattform-Power-Management koordiniert. Die mangelnde Koordination kann problematisch sein, da die Ausstiegszeiten aus dem Link-Zustand generell viel kürzer sind, als die Ausstiegszeiten aus dem Low-Power-Zustand der Plattform. In bestimmten Ausführungsbeispielen werden die Ende-zu-Ende-Latenzzeitanforderungen des Gerätes und des Handshaking mit den Power-Management-Controllern auf der Plattform verwendet, um ein Latenzzeitbudget zu generieren, das als Komponente zur Bestimmung des Link-Zustands verwendet werden kann.
  • 1 ist eine Darstellung der Link-Zustände, die in einem Ausführungsbeispiel eines Power-Management-Systems angesprochen werden. Die in 1 dargestellten Link-Zustände dienen als Beispiele, die in einer zukünftigen Version des USB verwendet werden können, die Ausführungsbeispiele der Erfindung sind jedoch nicht auf bestimmte Link-Zustandsdefinitionen begrenzt. In bestimmten Ausführungsbeispielen werden die Link-Zustände auf eine bestimmte Weise verwendet, um ein verbessertes Power-Management zu ermöglichen. Die Tabelle in 1 zeigt die definierten Link-Zustände 110 und eine Beschreibung jedes Zustands 120. Des Weiteren werden die Ausstiegslatenzzeiten für jeden Link aufgeführt 130. Wie angegeben, haben die Link-Zustände U1, U2 und U3 jeweils einen definierten Bereich für die Ausstiegslatenzzeit. Im Betrieb kann ein Gerät in seinen Konfigurationsregistrierungen oder in einem anderen Arbeitsspeicher die Ausstiegslatenzzeit für jeden Link-Zustand definieren, wobei die Ausstiegslatenzzeiten innerhalb der festgelegten Bereiche liegen.
  • Während zukünftige Versionen des USB für die Definition der verschiedenen Link-Zustände und der Einstiegs- und Ausstiegsmechanismen bestimmt sind, haben diese Spezifikationen jedoch nicht den Zweck, Policies für den Einstieg in die verschiedenen Link-Zustände zu definieren. In bestimmten Ausführungsbeispielen werden die definierten Link-Zustände in einem vom Hostcontroller geleiteten Power-Management-Apparat, Prozess oder System 140 verwendet, wobei dieses Power-Management den entsprechenden Einstieg und Ausstieg in und aus den Link-Zuständen festlegt.
  • In bestimmten Ausführungsbeispielen umfasst ein System einen zentralen Link-Power-Management-Controller (der als „LPMC” bezeichnet werden kann). In bestimmten Ausführungsbeispielen ist der LPMC in einen Hostcontroller integriert. In bestimmten Ausführungsbeispielen werden die Antwortlatenzzeitanforderungen der Plattform von allen Geräten erfasst und der LPMC entscheidet dann, in welche Link-Zustände eingestiegen werden kann, ohne diese Geräteanforderungen zu verletzen. Des Weiteren berücksichtigt der LPMC auch Latenzzeiten für den Ausstieg aus einem Low-Power-Zustand, die für die Plattform bestehen können. Jedes Gerät oder jeder Gerätetreiber kann Informationen über die vom Gerät auf Basis von Faktoren wie Verkehrsaufkommen, Pufferverhalten und Leistungsanforderungen tolerierbare Ende-zu-Ende-Latenzzeit enthalten, und in bestimmten Ausführungsbeispielen werden diese enthaltenen Informationen für die Koordination des Link-Power-Managements genutzt.
  • Methoden und Policies für ein dezentrales Link-Power-Management sind beispielsweise u. a. die PCIe-Spezifikation (PCI Express Specification, einschließlich PCI Express Base Specification Revision 1.0 vom 22. Juli 2002 der PCI Special Interest Group und die nachfolgende PCI Express Base Specification Revision 2.0 vom 15. Januar 2007 der PCI Special Interest Group). Bei bestimmten Power-Management-Prozessen können die Geräte das Link-Power-Management einleiten und steuern, wobei keine Informationen über Plattformkomponenten, die in das Power-Management einbezogen werden könnten, oder über die damit verbundenen Ausstiegslatenzzeiten bekannt sind. Bei der Implementierung einer bestimmten Antwortlatenzzeitanforderung von einem Gerät kann ein Link in Low-Power-Zustände versetzt werden, wobei verhindert wird, dass die Plattform ihre Komponenten in einen Low-Power-Zustand versetzt und die Geräteanforderungen weiterhin erfüllen kann. Jedoch bei einem Low-Power-Zustand einer Plattformkomponente könnten wesentlich höhere Energieeinsparungen realisiert werden, als im Low-Power-Zustand des Links, und die unkoordinierten Link-Zustände werden eventuell auf eine Weise genutzt, die eine verbesserte Leistungseffizienz des Systems behindert.
  • In bestimmten Ausführungsbeispielen wird ein zentraler Link-Power-Management-Apparat oder ein System eingesetzt, um von allen relevanten Geräten des Systems Informationen über die Link-Ausstiegslatenzzeit zu erfassen. Wenn solche Gerät via Hubs gekoppelt werden, erhöhen sich die Link-Ausstiegslatenzzeiten der Geräte um die durch die Hubs hinzugefügten Link-Ausstiegslatenzzeiten. In bestimmten Ausführungsbeispielen kann diese Erfassung von Informationen von Hostprozessen durchgeführt und anschließend entweder in roher oder verarbeiteter Form in den LPMC programmiert werden. In bestimmten Ausführungsbeispielen kann der LPMC alternativ auch den Gerätebaum „durchlaufen” und die Informationen erfassen. In bestimmten Ausführungsbeispielen können die rohen oder verarbeiteten Informationen beispielsweise innerhalb des LPMC oder LPMC-extern gespeichert werden, z. B. innerhalb der Deskriptorstruktur des Hostcontrollers im Host-DRAM (Dynamic Random Access Memory). In bestimmten Ausführungsbeispielen senden die Gerät nach der ersten Konfiguration ihre Latenzzeitanforderungen für die Plattformantwort an den LPMC. In bestimmten Ausführungsbeispielen senden die Geräte neue Latenzzeitmeldungen, wenn sich die Anforderungen der Geräte ändern, z. B. aufgrund einer Veränderung im Datenverkehr oder einer Umschaltung zwischen Akku- und Netzbetrieb.
  • In bestimmten Ausführungsbeispielen kommuniziert der LPMC mit einem Plattform-Power-Management-Controller (der in dieser Schrift als „PPMC” bezeichnet werden kann) und verhandelt, dass ein Großteil der gesamten Ende-zu-Ende-Latenzzeit für das Link-Power-Management verwendet werden kann. Der entsprechende Link-Zustand wird zumindest teilweise auf Basis dieser Verhandlung und den erfassten Informationen vom LPMC ausgewählt.
  • In bestimmten Ausführungsbeispielen nimmt der LPMC die niedrigste Latenzzeitanforderung von allen seinen Geräten und leitet diese an den PPMC weiter. In bestimmten Ausführungsbeispielen kann der PPMC mit einem anderen Power-Management-Controller auf der gleichen Plattform kommunizieren und auf diese Weise wird die Tiefe des Plattform-Power-Managements bestimmt. In bestimmten Ausführungsbeispielen kommuniziert der PPMC anschließend die Ausstiegslatenzzeit dieses Zustands an den LPMC. Nach der Subtraktion dieser Zahl von der Latenzzeitanforderung des Gerätes kann der LPMC den richtigen Link-Zustand für das inaktive Gerät bestimmen.
  • In bestimmten Ausführungsbeispielen kann der LPMC die Link-Zustände aller Links in einer Hierarchie oder die Link-Zustände aller Geräte-Links steuern. In bestimmten Ausführungsbeispielen kann der LPMC nur Geräte-Link-Zustände steuern und die Hub-Link-Zustände werden beispielsweise gemäß dem folgenden Prozess gesteuert:
    • (1) Wenn ein nachgeschalteter Hub-Anschluss auf U0 gesetzt ist, wird dessen vorgeschalteter Anschluss auf U0 gesetzt;
    • (2) Wenn alle nachgeschalteten Hub-Anschlüsse auf U1 oder einen niedrigeren Power-Zustand gesetzt sind, wird der vorgeschaltete Anschluss auf U1 gesetzt;
    • (3) Wenn alle nachgeschalteten Hub-Anschlüsse auf U2 oder einen niedrigeren Power-Zustand gesetzt sind, wird der vorgeschaltete Anschluss auf U2 gesetzt; und
    • (4) Wenn alle nachgeschalteten Hub-Anschlüsse auf U3 oder einen niedrigeren Power-Zustand gesetzt sind (wie z. B. ein deaktivierter Link-Zustand oder ein stromloser Zustand), wird der vorgeschaltete Anschluss auf U3 gesetzt.
  • In bestimmten Ausführungsbeispielen leitet der LPMC bei isochronen und Interrupt-Übertragungen Prozesse ein, um die Links im Pfad zu einem Gerät (mit einer eingeteilten isochronen Übertragung) noch vor Übertragungsbeginn zu wecken. Die Zeit vor dem Übertragungsbeginn wird unter Verwendung der Link-Ausstiegslatenzzeitdaten, die wie oben beschrieben erfasst wurden, berechnet.
  • Beim konventionellen Betrieb gibt es keine fein abgestimmte Link-Power-Management-Fähigkeit im USB2.0. Folglich besteht eine wesentlich höhere Plattformstromleistung, wenn ein USB2.0-Gerät an der Plattform eingesteckt ist, da die Links kontinuierlich abgefragt werden, wenn im Hostcontroller Transaktionen warten. In einem anderen Beispiel ist PCIe ein serieller Bus, der bestimmte Link-Power-Management-Fähigkeiten bereitstellt. Die Policies für Link-Power-Management für PCIe werden in einer Plattform verteilt und sind nicht mit dem Plattform-Power-Management koordiniert.
  • Konventionelles Power-Link-Management kann im Betrieb unzureichend sein, wobei der Grund zumindest teilweise eine fehlende Koordination des Power-Managements für ein System ist. Ohne Koordination kann es schwierig sein, ein effektives Power-Management für die Elemente eines Systems bereitzustellen, vor allem in Bezug auf tiefere Zustände, die, allerdings auf Kosten einer zusätzlichen Latenzzeit, größere Stromeinsparungen generieren können.
  • In bestimmten Ausführungsbeispielen bietet ein System Methoden und Policies für ein koordiniertes Link-Power-Management, das Folgendes bieten kann:
    • (1) Das System arbeitet so, dass Busgeräte von komplexen Abläufen verschont werden. Das System kann genutzt werden, um eine robuste zentrale Policy für das Link-Power-Management zu ermöglichen, während zugleich Über- und Unterschreitungen der Gerätepuffer vermieden werden.
    • (2) Der LPMC kann mit anderen Plattform-Power-Management-Controllern kommunizieren, wobei der gewählte Link-Zustand genutzt werden kann, um ein verbessertes Plattform-Power-Management ohne unnötige Leistungseinbußen bereitzustellen.
  • In bestimmten Ausführungsbeispielen kann ein Prozess einen Link-Power-Management-Policy-Algorithmus für nicht-periodische Endpunkte bieten. In bestimmten Ausführungsbeispielen kann ein Algorithmus des Weiteren einen Prozess für Geräte umfassen, die hinter den Hubs existieren, wo die durch die Hubs verursachten zusätzlichen Latenzzeiten für die Bestimmung der Latenzzeit berücksichtigt werden müssen.
  • In bestimmten Ausführungsbeispielen für ein System, in dem periodische Übertragungen stattfinden (z. B. isochrone und Interrupt-Übertragungen) wird ein LMPC über das Serviceintervall der periodischen Übertragung informiert, wie z. B. durch Informationen vom Hostcontroller. In einem solchen Prozess kann der LMPC die Aufgabe übernehmen, alle Links im Pfad zu einem Gerät rechtzeitig vor der periodischen Transaktion in einen U0-Zustand zu versetzen, so dass die in den periodischen Daten gesandten Uhrzeitstempel ausreichend genau für eine Synchronisation sind. In bestimmten Ausführungsbeispielen kennt der LMPC auch die Tiefe des Plattform-Power-Managements (den Power-Zustand der Plattform für eine Reduzierung der Leistungsaufnahme) und ist für das rechtzeitige Wecken der Plattform aus einem Low-Power-Zustand zuständig, so dass keine Verzögerungen in der Datenzustellung entstehen.
  • 2 ist eine Darstellung eines Ausführungsbeispiels eines Systems für das koordinierte Link-Management. Diese Abbildung zeigt eine Plattform 205, die einen oder mehrere Power-Management-Controller umfasst, wie den PM-Controller 210 (der Teil eines Prozessors sein kann) und beliebige andere Power-Management-Controller 215. Der PM-Controller 210 kann mit einem Plattform-Power-Management-Controller (PPMC) 225 gekoppelt sein, der Teil eines Steuer-Hubs sein kann. Der PPMC 225 kann mit einem verbundenen Hostcontroller gekoppelt sein, z. B. einem Bus-Hostcontroller 230, welcher u. a. ohne Eingrenzung ein serieller Buscontroller sein kann, wie z. B. ein USB-Hostcontroller. Der Bus-Hostcontroller umfasst einen Link-Power-Management-Controller (LPMC) 235. Der LPMC 235 koordiniert das Bus-Link-Power-Management mit dem Power-Management der Plattform 205. Der LPMC 235 kann einen oder mehrere Zeitgeber 240 im Link-Power-Management einsetzen. Zeitgeber können in verschiedenen Implementierungen unterschiedlich sein; sie können z. B. verschiedene Zeitgeberelemente aufweisen oder verschiedene Zeitgeberwerte für ein Zeitgeberelement darstellen. Der LPMC kann das Power-Management der Links zu einem oder zu mehreren Geräten bereitstellen, z. B. wie bei dem dargestellten Gerät A 250 bis Gerät n 255. In bestimmten Ausführungsbeispielen kommuniziert der LPMC 230 mit den angeschlossenen Geräten 250255, um die Latenzzeittoleranz der Geräte zu bestimmen sowie auch die Ausstiegslatenzzeit für einen oder mehrere Link-Zustände. Der LPMC 230 benachrichtigt den PPMC 225 in Bezug auf die Latenzzeittoleranz des bzw. der angeschlossenen Geräte 250255, wobei der PPMC 225 mit beliebigen anderen Power-Management-Controllern, wie dem PM-Controller 210, kommuniziert. Der PPMC 225 muss eine Ausstiegslatenzzeit für die Plattform 205 zurückführen. Der LPMC 230 wendet die Plattform-Ausstiegslatenzzeit an, um ein Link-Budget für jeden Link zu den angeschlossenen Geräten 250255 zu bestimmen, und etabliert dann einen Link-Zustand für jeden Link, der innerhalb des entsprechenden Link-Budgets liegt.
  • 3 ist eine Darstellung eines Ausführungsbeispiels eines Power-Management-Systems. In bestimmten Ausführungsbeispielen kann ein System 300 u. a. ohne Eingrenzung ein Rechnersystem, Personalcomputer, Server, Mobilcomputer oder ähnliches System sein. In bestimmten Ausführungsbeispielen umfasst das System 300 einen Prozessor 302, welcher eine Central Processing Unit (CPU) oder eine Graphics Processing Unit (GPU) sein kann. Der Prozessor 302 kann einen Power-Management-Controller 304 umfassen. Der Prozessor 302 kann mit einem Plattform-Control-Hub (PCH) 310 gekoppelt sein, welcher einen Plattform-Power-Management-Controller (PPMC) 311 und einen USB-Controller 312 umfasst, und wobei der USB-Controller 312 einen USB-Link-Power-Management-Controller (LPMC) 314 umfasst. Der PPMC 311 kann mit anderen Power-Management-Controllern für die Plattform kommunizieren, wie mit dem Handshake zwischen dem PPMC 311 und dem Power-Management-Controller 304 über eine Schnittstelle hinweg gezeigt und wie die dargestellte direkte Medienschnittstelle (Direct Media Interface, DMI) 306. Der USB-Controller 312 ist mit einer beliebigen Anzahl von USB-kompatiblen Geräten gekoppelt, z. B. ist Gerät A 324 über den ersten USB-Link 320 und Gerät B 326 über den zweiten USB-Link 322 gekoppelt.
  • In dieser Darstellung ist der LPMC 314 für die Koordination des Link-Power-Managements zuständig. In diesem Beispiel kann Gerät A 324 eine Latenzzeittoleranz von 150 μs haben, wobei die Latenzzeit für den Ausstieg aus dem U1-Zustand 4 μs und aus U2 80 μs beträgt. Gerät B 326 kann eine Latenzzeittoleranz von 250 μs haben, wobei die Latenzzeit für den Ausstieg aus dem U1-Zustand 4 μs und aus U2 100 μs beträgt. Beim konventionellen Betrieb kann Gerät A 324 in den U2-Zustand übergehen, weil die Latenzzeit für den Ausstieg aus diesem Zustand kürzer ist als die Latenzzeittoleranz des Gerätes. In bestimmten Ausführungsbeispielen wird das Link-Management koordiniert, um das Power-Management zu verbessern. In einem Ausführungsbeispiel wir die Latenzzeittoleranz von 150 μs – die niedrigste Latenzzeittoleranz für die Geräte – an den LPMC 314 geliefert. Der LPMC liefert die Latenzzeittoleranz an den PPMC 311, welcher dann eine Plattformanforderung von 100 μs für einen niedrigeren Power-Zustand der Plattform zurückführt. Diese Anforderung kann nach der Kommunikation des PPMC 311 mit anderen Power-Management-Controllern der Plattform festgelegt werden. Unter Verwendung dieser Daten kann der LPMC 314 ein Link-Budget von 50 μs für das Link-Power-Management von Gerät A 324 festlegen. Basierend auf mindestens dem Link-Budget, geht der Link zu Gerät A 324 auf U1 über, da dieser Zustand innerhalb des Link-Budgets von 50 μs liegt, während U2 nicht innerhalb des Budgets liegen würde. Des Weiteren bestimmt der LPMC 314 ein Link-Budget von 150 μs für Gerät B 326. Mit diesem Link-Budget für Gerät B ist ein Übergang auf U2 möglich, da die Ausstiegslatenzzeit von 100 μs unter dem Link-Budget-Wert von 150 μs liegt. Der erste Link 320 geht somit bei Inaktivität in den U1-Zustand über, während der zweite Link 322 bei Inaktivität in den U2-Zustand wechselt.
  • 4 ist ein Ablaufdiagramm, in dem ein Ausführungsbeispiel eines Prozesses für die Bestimmung eines Link-Zustand dargestellt ist. In dieser Darstellung wird eine neue Gerätlatenzzeitmeldung von einem LPMC 402 empfangen. Eine solche Latenzzeitmeldung kann eine erste Meldung von einem Gerät sein oder eine spätere aktualisierte Meldung, die nach einer Veränderung der Bedingungen ausgegeben wird. Wenn sich die niedrigste Latenzzeit der angeschlossenen Geräte verändert hat 404, wird die neue Latenzzeit vom LPMC zur Bestimmung des Plattform-Power-Managements an den PPMC 408 gesendet. Wenn sich die niedrigste Latenzzeit für das angeschlossene Gerät nicht verändert hat 404, wird eine erneute Bestimmung des Link-Zustands des Gerätes 406 ohne Anforderung einer Bestimmung des Plattform-Power-Managements durchgeführt. Anhand der niedrigsten Latenzzeitdaten bestimmt der PPMC die Tiefe des Plattform-Power-Managements 410 und führt die Latenzzeit für den Ausstieg aus dem Plattform-Power-Management-Zustand an den LPMC 412 zurück. Der LPMC subtrahiert die festgelegte Latenzzeit für den Plattform-Ausstieg von der Ausstiegslatenzzeitanforderung jedes Gerätes, um ein Link-Budget für jedes 414 zu bestimmen.
  • In bestimmten Ausführungsbeispielen wird das Link-Budget mit der für jeden Link-Zustand etablierten Ausstiegslatenzzeit verglichen, um den Link-Zustand bei Inaktivität des Links zu bestimmen. Wenn das Link-Budget weniger als die Latenzzeit für den U1-Ausstieg 416 beträgt, bleibt der Link-Zustand bei inaktivem Link 418 in U0, da ein Übergang in einen niedrigeren Power-Zustand zu viel Zeit in Anspruch nehmen würde. Beträgt das Link-Budget nicht weniger als die U1-Ausstiegslatenzzeit, aber weniger als die U2-Ausstiegslatenzzeit 420, geht der Link-Zustand in U1 über, wenn der Link inaktiv ist 422. Beträgt das Link-Budget nicht weniger als die U2-Ausstiegslatenzzeit, aber weniger als die U3-Ausstiegslatenzzeit 424, geht der Link-Zustand in U2 über, wenn der Link inaktiv ist 426. Andernfalls gilt der Link-Zustand U3, wenn der Link inaktiv ist 428.
  • 5 ist ein Ablaufdiagramm zur Darstellung eines Ausführungsbeispiels für einen Prozess zum Power-Management für periodische Übertragungen. In dieser Darstellung werden periodische Übertragungen vom Hostcontroller aktiviert und der LPMC empfängt die Anforderungen für das Serviceintervall („Zeit t1”) 505. Basierend auf dem empfangenen Serviceintervall bestimmt der LPMC eine Latenzzeittoleranz für das Plattform-Power-Management und kommuniziert die Latenzzeittoleranz an den PPMC 510. Der PPMC bestimmt dann die Tiefe des Plattform-Power-Managements und sendet die Latenzzeit für den Ausstieg aus dem Plattform-Power-Management-Zustand an den LMPC 515.
  • Basierend auf dieser Information bestimmt der LMPC einen Zeitpunkt für das Wecken der Plattform vor jedem Serviceintervall („Zeit t2”) und programmiert diese Zeit in einen Zeitgeber 520. Basierend auf dem Serviceintervall und der für den Ausstieg aus jedem Link-Zustand erforderlichen Latenzzeit wählt der LPMC den besten Link-Zustand für Inaktivitätszeiten zwischen den Transaktionen 525. Der LMPC programmiert dann auf Basis der festgelegten Link-Ausstiegslatenzzeit für jeden Link einen Zeitgeber, um den Übergang des Links in den U0-Zustand (voll funktionsfähiger Zustand) vor jedem Serviceintervall zu ermöglichen 530.
  • Für den Ablauf der Zeitgeber 535 gilt, wenn eine Zeit t1 abläuft, leitet der Hostcontroller die periodische Transaktion ein 545. Wenn eine Zeit t2 abläuft, handelt der LPMC, um die Plattform für den Betrieb zu wecken 540. Wenn eine Zeit t3 abläuft, veranlasst der LPMC einen Übergang des Links zurück in den U0-Zustand 550.
  • 6 ist eine Darstellung eines Rechnersystems, in dem ein Ausführungsbeispiel des koordinierten Link-Power-Management enthalten sein kann. In dieser Darstellung sind bestimmte allgemein bekannte Standardkomponenten, die nicht erfindungsrelevant sind, nicht gezeigt. Unter bestimmten Ausführungsbeispielen umfasst ein Computer 600 eine Verbindung, wie einen Bus 605, oder ein anderes Kommunikationsmittel für die Kommunikation von Informationen und ein Verarbeitungsmittel, wie einen oder mehrere Prozessoren 610, die mit dem Bus 605 gekoppelt und für die Verarbeitung der Informationen bestimmt sind. Die Prozessoren 610 können einen oder mehrere physische Prozessoren und einen oder mehrere logische Prozessoren umfassen. Des Weiteren kann jeder Prozessor 610 mehrere Prozessorkerne umfassen. Der Bus 605 wird der Einfachheit halber als Einzelbus dargestellt, es können aber mehrere verschiedene Busse vorhanden sein und die Komponentenverbindungen zu diesen Busen können unterschiedlich sein. Der in 6 gezeigte Bus 605 ist eine Generalisierung, in der einer oder mehrere separate physische Busse dargestellt sind, mit Punkt-zu-Punkt-Verbindungen oder wobei beide durch entsprechende Brücken, Adapter oder Controller verbunden sind. Der Bus 605 kann z. B. einen Systembus, einen PCI- oder PCIe-Bus, einen HyperTransport oder Industry Standard Architecture (ISA) Bus, einen Small Computer System Interface (SCSI) Bus, einen IIC (I2C) Bus oder einen Institute of Electrical and Electronics Engineers (IEEE) Standard 1394 Bus, auch als „Firewire” bezeichnet, umfassen. („Standard for a High Performance Serial Bus” 1394–1995, IEEE, herausgegeben am 30. August 1996, und Ergänzungen) Der Computer 600 umfasst des Weiteren einen seriellen Bus, wie z. B. einen USB-Bus 670, an den eines oder mehrere USB-kompatible Geräte angeschlossen sein können, z. B. wie Gerät A 675 und Gerät B 680. In bestimmten Ausführungsbeispielen kann der Computer 600 Power-Management unterstützen u. a. auch koordiniertes Link-Power-Management für die Links zum USB-Bus 670.
  • In bestimmten Ausführungsbeispielen können die Prozessoren 610 genutzt werden, um eine oder mehrere virtuelle Maschinen zu unterstützen. In bestimmten Ausführungsbeispielen kann der Computer 600 des Weiteren einen Random Access Memory (RAM) Speicher oder ein anderes dynamisches Speichergerät als Hauptspeicher 620 für die Speicherung von Informationen und Anweisungen für die Ausführung durch die Prozessoren 610 umfassen. Der Hauptspeicher 620 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung der Anweisungen durch die Prozessoren 610 verwendet werden. In bestimmten Ausführungsbeispielen können Daten in Bezug auf die Link-Zustände im Hauptspeicher gespeichert werden. Der RAM-Speicher umfasst Dynamic Random Access Memory (DRAM), bei dem eine Aktualisierung des Speicherinhalts erforderlich ist, und Static Random Access Memory (SRAM), bei dem keine Aktualisierung des Inhalts notwendig ist, das aber mehr kostet. Der DRAM-Speicher kann Synchronous Dynamic Random Access Memory (SDRAM) umfassen, das ein Taktsignal für die Steuerung von Signalen und ein Data-Out Dynamic Random Access Memory (EDO DRAM) umfasst. In bestimmten Ausführungsbeispielen kann der Systemspeicher einen gemeinsam genutzten (shared) Arbeitsspeicher umfassen, wie z. B. Shared BIOS/OS Memory, der über mehrere Agents im Rechnersystem zugänglich ist. Der Computer 600 kann auch einen Read Only Memory (ROM) Speicher 625 oder ein anderes statisches Speichergerät für die Speicherung von statischen Informationen und Anweisungen für die Prozessoren 610 umfassen. Der Computer 600 kann eines oder mehrere nicht-flüchtige Speichergeräte 630 für die Speicherung bestimmter Elemente umfassen, u. a. ohne Eingrenzung System BIOS und eine oder mehrere prä-OS-Anwendungen.
  • Der Datenspeicher 635 kann ebenfalls mit dem Bus 605 des Computers 600 gekoppelt sein, um Informationen und Anweisungen zu speichern. Der Datenspeicher 635 kann eine Magnetdiskette, eine optische Diskette mit dem dazugehörigen Laufwerk oder ein anderes Speichergerät umfassen. Solche Elemente können in einer Kombination zusammengefasst oder separate Komponenten sein, die Teile anderer Elemente des Computers 600 verwenden. In einem bestimmten Ausführungsbeispiel kann der Datenspeicher 635 ein Festplattenlaufwerk 636 umfassen.
  • Der Computer 600 kann auch über den Bus 605 an ein Anzeigegerät 640 gekoppelt sein, z. B. ein Cathode Ray Tube (CRT) Display, ein Liquid Crystal Display (LCD), ein Plasma-Display oder eine andere Displaytechnologie für die Anzeige der Informationen für den Endbenutzer. In bestimmten Ausführungsbeispielen kann das Anzeigegerät 640 für die Anzeige von TV-Programmen genutzt werden. In bestimmten Umfeldern kann das Anzeigegerät 640 ein Touchscreen umfasse, das zumindest teilweise als Eingabegerät verwendet wird. In bestimmten Umfeldern kann das Anzeigegerät 640 ein Audiogerät sein oder ein solches umfassen, z. B. einen Lautsprecher für die Tonausgabe von Informationen, einschließlich den Audioteil eines TV-Programms. Ein Eingabegerät 645 kann an den Bus 605 gekoppelt sein, um die Kommunikation von Informationen und/oder Befehlauswahlen an die Prozessoren 610 zu ermöglichen. In verschiedenen Implementierungen kann das Eingabegerät 645 eine Tastatur, eine Zahlentastatur, ein Touchscreen und Stylus, ein sprachaktiviertes System oder ein anderes Eingabegerät oder eine Kombination solcher Geräte sein. Eine andere Art von Benutzereingabegerät, das verwendet werden kann, ist ein Cursorsteuergerät 650, wie Maus, Trackball oder Cursorpfeiltasten für die Kommunikation von Richtungsanweisungsdaten und Befehlauswahlen an einen oder mehrere Prozessoren 610 sowie für die Steuerung der Cursorbewegung auf dem Anzeigegerät 640.
  • Des Weiteren können eines oder mehrere Kommunikationsgeräte 655 an den Bus 605 gekoppelt sein. Je nach der jeweiligen Implementierung kann das Kommunikationsgerät 655 einen Transceiver, ein Funkmodem, eine Netzwerkkarte, LAN (Local Area Network) auf der Hauptplatine oder andere Schnittstellengeräte umfassen. Verwendungszwecke für ein Kommunikationsgerät 655 sind u. a. Empfang von Signalen von Funkgeräten. Für Funkkommunikationen kann das Kommunikationsgerät 655 eine oder mehrere Antennen 658 umfassen, je nach Bedarf auch Dipol- oder Monopolantennen. In einem Ausführungsbeispiel kann das Kommunikationsgerät 655 einen Firewall umfassen, um den Computer 600 vor unberechtigten Zugriffen zu schützen. Der Computer 600 kann unter Verwendung der Kommunikationsgeräte 655 auch mit einem Netzwerk verbunden sein, wie das Netzwerk 665, oder mit anderen Geräten, u. a. auch Links zum Internet, einem lokalen Netzwerk (LAN) oder einem anderen Umfeld. Der Computer 600 kann auch ein Stromversorgungsgerät oder -system 660 umfassen, welches ein Netzteil, eine Batterie, eine Solarzelle, eine Brennstoffzelle oder ein anderes System oder Gerät für die Stromerzufuhr bzw. Stromerzeugung umfassen kann. Der durch das Stromversorgungsgerät oder -system 660 gelieferte Strom kann je nach Bedarf an die Elemente des Computers 600 verteilt werden. In bestimmten Ausführungsbeispielen kann die Stromverteilung durch das Power-Management, u. a. auch das Power-Management der Link-Zustände bewirkt werden.
  • Für fachkundige Personen, die diese Offenlegung lesen, ist es offensichtlich, dass viele weitere Variationen der vorstehenden Beschreibung und Zeichnungen im Rahmen der Erfindung möglich sind. Die Erfindung soll auch in keiner Weise durch die oben beschriebenen Details begrenzt werden. Nur die nachfolgenden Ansprüche und jegliche Änderungen dazu stellen eine genaue Definition des Umfangs der Erfindung dar.
  • In der obigen Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details erläutert, um ein gründliches Verständnis der Erfindung zu ermöglichen. Für fachkundige Personen ist es jedoch offensichtlich, dass die Erfindung auch ohne einige dieser spezifischen Details realisierbar ist. In anderen Fällen werden aus dem Stand der Technik bekannte Strukturen und Geräte in Form von Blockdiagrammen dargestellt.
  • Ausführungsbeispiele der Erfindung können verschiedene Prozesse umfassen. Die vorteilhaften Prozesse können durch Hardwarekomponenten ausgeführt oder in maschinell ausführbaren Anweisungen realisiert werden, die verwendet werden können, um einen Allzweck- oder zweckgebundenen Prozessor oder Logikschaltkreis, in den die Anweisungen einprogrammiert sind, zum Ausführen der Prozesse zu veranlassen. Alternativ können die Prozesse durch eine Kombination aus Hardware und Software ausgeführt werden.
  • Teile der Erfindung können als Computerprogramm-Produkt bereitgestellt werden, das einen vom Computer lesbaren Datenträger umfasst, auf dem die Anweisungen enthalten sind, und der zum Programmieren eines Computers (oder anderen Elektronikgerätes) verwendet werden kann, um den vorteilhaften Prozess auszuführen.
  • Der vom Computer lesbare Datenträger kann u. a. ohne Eingrenzung Folgendes umfassen: Floppydisketten, optische Disks, CD-ROM (Compact Disk Read-Only Memory) und magneto-optische Disks, ROM (Read-Only Memory), RAM (Radom Access Memory), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically-Erasable Programmable Read-Only Memory), Magnet- oder optische Karten, Flash-Speicher oder andere Arten von Speichermedien/Computer-lesbaren Datenträgern, die sich für das Speichern von elektronischen Anweisungen eignen. Des Weiteren können Ausführungsbeispiele der Erfindung als Computerprogramm-Produkt heruntergeladen werden.
  • Viele der Methoden sind in ihrer grundlegendsten Form beschrieben, den Methoden können jedoch Prozesse hinzugefügt oder aus ihnen entfernt werden und Informationen können bei den beschriebenen Meldungen hinzugefügt oder entfernt werden, ohne dass der grundlegende Umfang der Erfindung dadurch verändert wird. Für fachkundige Personen ist es offensichtlich, dass weitere Modifizierungen und Anpassungen durchgeführt werden können. Die jeweiligen Ausführungsbeispiele sind keine Eingrenzung der Erfindung, sondern dienen lediglich zur besseren Darstellung. Der Umfang der Erfindung wird nicht durch die oben aufgeführten spezifischen Beispiele eingegrenzt, sondern nur durch die nachfolgenden Ansprüche.
  • Jeder Verweis auf „ein Ausführungsbeispiel” in dieser Schrift bedeutet, dass ein bestimmtes Merkmal in der Umsetzung der Erfindung enthalten sein kann. Auf ähnliche Weise sollte es offensichtlich sein, dass exemplarische Ausführungsbeispiele in der vorstehenden Beschreibung der Erfindung manchmal in Gruppen in einem Ausführungsbeispiel, einer Figur oder einer Beschreibung zum Zweck der Vereinfachung und zum Erreichen eines besseren Verständnisses einer oder mehrerer Aspekte der Erfindung zusammengefasst sind. Diese Methode der Offenlegung soll jedoch nicht als die Absicht ausgelegt werden, dass die beanspruchte Erfindung mehr Merkmale erfordert als in jedem Anspruch ausdrücklich zitiert sind. Wie in den folgenden Ansprüchen aufgezeigt, liegen die erfindungsgemäßen Aspekte in weniger als allen Merkmalen eines einzelnen vorstehenden offen gelegten Ausführungsbeispiels. Die Ansprüche sind ausdrücklich ein fester Bestandteil dieser Beschreibung, wobei jeder Anspruch selbstständig als separates Ausführungsbeispiel dieser Erfindung steht.

Claims (11)

  1. Verfahren für ein koordiniertes Link-Power-Management auf einer Computer-Plattform, das Folgendes umfasst: an einem Link-Power-Management-Controller (235), der von einem Hostcontroller (230) für eine Verbindung umfasst ist, wobei die Verbindung eine Vielzahl von Links für eine Vielzahl von Geräten (250255) umfasst, Empfang einer Ausstiegslatenzzeit für jeden einer Vielzahl von Link-Zuständen für jeden einer Vielzahl von Links, die einen ersten Link enthält, für eine Plattform (300), wobei die Ausstiegslatenzzeiten von einer Vielzahl von Geräten (250255) empfangen werden, die über die Vielzahl von Links gekoppelt sind, wobei ein erstes Gerät (250), über den ersten Link an eine Verbindung gekoppelt ist; an dem Link-Power-Management-Controller (235) Empfang einer Latenzzeittoleranz für jedes Gerät von jedem der Vielzahl von Geräten, das Empfangen einer ersten Latenzzeittoleranz für das erste Gerät von dem ersten Gerät umfasst; Bestimmung eines Latenzzeittoleranzwertes durch den Link-Power-Management-Controller, wobei der festgelegte Latenzzeittoleranzwert auf einem kleinsten Latenzzeittoleranzwert der Vielzahl von Geräten basiert; Kommunizieren des Latenzzeittoleranzwertes von dem Link-Power-Management-Controller an einen Plattform-Power-Management-Controller (225); an dem Link-Power-Management Controller Empfang einer Plattform-Latenzzeitanforderung für einen niedrigeren Power-Zustand der Plattform von dem Plattform-Power-Management-Controller, wobei die Plattform-Latenzzeitanforderung auf der Basis von Kommunikationen zwischen dem Plattform-Management-Controller und einem oder mehreren Power-Management-Controllern (210215) der Plattform festgelegt ist; Bestimmung eines Link-Budgets für jedes der Vielzahl von Geräten durch den Link-Power-Management-Controller durch eine Subtraktion der festgelegten Plattform-Ausstiegslatenzzeit von der Latenzzeittoleranz für jedes Gerät der Vielzahl von Geräten, die Bestimmen eines ersten Link-Budgets für das erste Gerät umfasst, wobei das erste Link-Budget die für einen Ausstieg aus einem Link-Zustand verfügbare Zeit für das erste Gerät angibt; und Auswahl eines der Vielzahl von Link-Zuständen für den ersten Link für jedes der Vielzahl von Geräten durch den Link-Power-Management-Controller auf der Basis des Link-Budgets und der Ausstiegslatenzzeiten für jedes Gerät, das Auswahl eines Link-Zustands für den ersten Link auf der Basis eines Vergleiches des ersten Link-Budgets mit den Ausstiegslatenzzeiten des ersten Geräts umfasst.
  2. Verfahren nach Anspruch 1, das des Weiteren dem Empfang eines Serviceintervalls für eine periodische Übertragung über den ersten Link umfasst.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der festgelegte Latenzzeittoleranzwert ferner auf dem empfangenen Serviceintervall basiert.
  4. Verfahren nach Anspruch 2, das des Weiteren die Programmierung eines ersten Zeitgebers (240) zum Wecken der Plattform vor Beginn eines Serviceintervalls umfasst.
  5. Verfahren nach Anspruch 4, das des Weiteren die Programmierung eines zweiten Zeitgebers für den Übergang des ersten Links in einen Betriebszustand vor dem Serviceintervalls umfasst.
  6. Computer, der Folgendes umfasst: einen Plattform-Power-Management-Controller (225) für eine Plattform (205) des Computers; und einen Hostcontroller (230) für eine Verbindung, der mit dem Plattform-Power-Management-Controller (225) gekoppelt ist, wobei der Hostcontroller der Verbindung einen Link-Power-Management-Controller (235) umfasst, die Verbindung eine Vielzahl von Links für eine Vielzahl von Geräten (250255) umfasst, die einen ersten Link für ein erstes Gerät (250) umfasst, und der Link-Power-Management-Controller Link-Budgets zum Koordinieren von Link-Zuständen für jeden der Vielzahl von Links bereitstellt, wobei der Link-Power-Management-Controller eine Latenzzeittoleranz und eine Ausstiegslatenzzeit für jeden der Vielzahl von Link-Zuständen von jedem der Vielzahl von Geräten empfängt und einen Latenzzeittoleranzwert zum Übertragen an den Plattform-Power-Management-Controller bestimmt, wobei der Latenzzeittoleranzwert der kleinste der Latenzzeittoleranzen der Vielzahl von Geräten ist; wobei der Link-Power-Management-Controller von dem Plattform-Power-Management-Controller eine Plattform-Latenzzeitanforderung für einen niedrigeren Power-Zustand der Plattform empfängt, ein Link-Budget für jedes der Vielzahl von Geräten durch eine Subtraktion der festgelegten Plattform-Ausstiegslatenzzeit von der Latenzzeittoleranz für jedes Gerät bestimmt und einen Link-Zustand aus einer Vielzahl von Link-Zuständen für jedes der Vielzahl von Geräten auf der Basis eines Vergleiches des Link-Budgets mit der Ausstiegslatenzzeit für jeden der Vielzahl von Link-Zuständen für jedes Gerät auswählt.
  7. Computer nach Anspruch 6, dadurch gekennzeichnet, dass eine periodische Übertragung über den ersten Link stattfindet, und die periodische Übertragung ein Serviceintervall aufweist.
  8. Computer nach Anspruch 7, dadurch gekennzeichnet, dass die Latenzzeittoleranz ferner auf dem Serviceintervall basiert.
  9. Computer nach Anspruch 6, dadurch gekennzeichnet, dass die Verbindung ein Buskompatibles Gerät mit einer Universal Serial Bus (USB) Spezifikation ist.
  10. Rechensystem, das Folgendes umfasst: einen Plattform-Power-Management-Controller (311); einen Hostcontroller (312) für einen Universal Serial Bus (USB), wobei der Hostcontroller einen Link-Power-Management-Controller (314) umfasst, der USB eine Vielzahl von Links (320322) zum Verbinden einer Vielzahl von Geräten (324326) bereitstellt, die einen ersten Link (320) für ein erstes Gerät (324) umfasst, der Link-Power-Management-Controller Link-Zustände für die Vielzahl von Geräten koordiniert; einen Prozessor (302) und einen Power-Management-Controller (304), wobei der Power-Management-Controller mit dem Plattform-Power-Management-Controller gekoppelt ist; und einen Synchronous Dynamic Random Access Memory (SDRAM) (620) zum Speichern der Daten in Bezug auf die Link-Zustände, wobei der Link-Power-Management-Controller eine Latenzzeittoleranz und eine Ausstiegslatenzzeit für jeden einer Vielzahl von Link-Zuständen von jedem der Vielzahl von Geräten empfängt und einen Latenzzeittoleranzwert zum Übertragen an den Plattform-Power-Management-Controller bestimmt, wobei der Latenzzeittoleranzwert der kleinste der Latenzzeittoleranzen der Vielzahl von Geräten ist; wobei der Link-Power-Management-Controller von dem Plattform-Power-Management-Controller eine Plattform-Latenzzeitanforderung für einen niedrigeren Power-Zustand der Plattform empfängt, ein Link-Budget für jedes der Vielzahl von Geräten durch eine Subtraktion der festgelegten Plattform-Ausstiegslatenzzeit von der Latenzzeittoleranz für jedes Gerät bestimmt und einen Link-Zustand für jedes der Vielzahl von Geräten auf der Basis eines Vergleichs des Link-Budgets und mit den Ausstiegslatenzzeiten für jedes Gerät auswählt.
  11. Rechensystem nach Anspruch 10, dadurch gekennzeichnet, dass eine periodische Übertragung über den ersten Link erfolgt, wobei die periodische Übertragung ein Serviceintervall aufweist und dadurch gekennzeichnet, dass der Latenzzeittoleranzwert auf dem Serviceintervall basiert.
DE102009030544.0A 2008-06-26 2009-06-25 Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem Expired - Fee Related DE102009030544B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/146,873 2008-06-26
US12/146,873 US8255713B2 (en) 2008-06-26 2008-06-26 Management of link states using plateform and device latencies

Publications (2)

Publication Number Publication Date
DE102009030544A1 DE102009030544A1 (de) 2010-01-07
DE102009030544B4 true DE102009030544B4 (de) 2017-02-23

Family

ID=41396935

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009030544.0A Expired - Fee Related DE102009030544B4 (de) 2008-06-26 2009-06-25 Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem

Country Status (4)

Country Link
US (2) US8255713B2 (de)
CN (1) CN101615067B (de)
DE (1) DE102009030544B4 (de)
TW (1) TWI420293B (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176341B2 (en) * 2008-03-31 2012-05-08 Intel Corporation Platform power management based on latency guidance
US8051314B2 (en) * 2008-06-25 2011-11-01 Intel Corporation Serial ATA (SATA) power optimization through automatic deeper power state transition
US9152199B2 (en) * 2008-12-16 2015-10-06 Microsoft Technology Licensing, Llc Power state dependent wake-up alarm
US8601296B2 (en) 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency reporting for power management
US8607075B2 (en) 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
US8612998B2 (en) 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8276010B2 (en) * 2009-02-12 2012-09-25 Cisco Technology, Inc. Network based system to control and monitor power consumption of networked elements
US9235251B2 (en) 2010-01-11 2016-01-12 Qualcomm Incorporated Dynamic low power mode implementation for computing devices
US8504855B2 (en) 2010-01-11 2013-08-06 Qualcomm Incorporated Domain specific language, compiler and JIT for dynamic power management
US8407504B2 (en) * 2010-06-30 2013-03-26 Intel Corporation Systems and methods for implementing reduced power states
US8719475B2 (en) * 2010-07-13 2014-05-06 Broadcom Corporation Method and system for utilizing low power superspeed inter-chip (LP-SSIC) communications
US8775836B2 (en) * 2010-12-23 2014-07-08 Intel Corporation Method, apparatus and system to save processor state for efficient transition between processor power states
US8689028B2 (en) * 2011-07-01 2014-04-01 Intel Corporation Method and apparatus to reduce idle link power in a platform
US20130275791A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Method and System for Tracking and Selecting Optimal Power Conserving Modes of a PCD
WO2013162512A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Adaptive low-power link-state entry policy for active interconnect link power management
US9087158B2 (en) 2012-06-30 2015-07-21 Intel Corporation Explicit control message signaling
US9176570B2 (en) 2012-12-29 2015-11-03 Intel Corporation System and method for providing universal serial bus link power management policies in a processor environment
US9229525B2 (en) 2013-06-17 2016-01-05 Apple Inc. Adaptive latency tolerance for power management of memory bus interfaces
US9195292B2 (en) * 2013-06-26 2015-11-24 Intel Corporation Controlling reduced power states using platform latency tolerance
US9541987B2 (en) * 2013-06-28 2017-01-10 Intel Corporation Generic host-based controller latency method and appartus
US9395795B2 (en) 2013-09-20 2016-07-19 Apple Inc. System power management using communication bus protocols
WO2015047782A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Techniques enabling low power states for a communications port
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
US9535490B2 (en) * 2013-12-16 2017-01-03 Qualcomm Incorporated Power saving techniques in computing devices
US10261569B2 (en) 2015-05-01 2019-04-16 Qualcomm Incorporated Universal serial bus (USB) host and client devices for supporting scheduled low-power operations
US10140221B2 (en) * 2016-05-25 2018-11-27 Dell Products L.P. Method to handle host, device, and link's latency tolerant requirements over USB Type-C power delivery using vendor defined messaging for all alternate modes
US10678199B2 (en) * 2016-06-23 2020-06-09 Intel Corporation Systems, methods and devices for standby power entry without latency tolerance information
US11263165B2 (en) * 2016-12-31 2022-03-01 Intel Corporation Apparatuses for periodic universal serial bus (USB) transaction scheduling at fractional bus intervals
TWI712893B (zh) * 2018-09-04 2020-12-11 瑞昱半導體股份有限公司 資料傳輸格式轉換電路及控制其操作的方法
US10977197B2 (en) * 2019-03-28 2021-04-13 Intel Corporation Providing multiple low power link state wake-up options
US11157289B2 (en) * 2019-05-13 2021-10-26 Intel Corporation Power management method and apparatus for virtualized I/O devices
US11625084B2 (en) * 2019-08-15 2023-04-11 Intel Corporation Method of optimizing device power and efficiency based on host-controlled hints prior to low-power entry for blocks and components on a PCI express device
US11086384B2 (en) * 2019-11-19 2021-08-10 Intel Corporation System, apparatus and method for latency monitoring and response
US20230090103A1 (en) * 2021-09-20 2023-03-23 Western Digital Technologies, Inc. Sideband Information Over Host Interface Considering Link States

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088590A1 (en) * 2002-09-04 2004-05-06 Johathan Lee System and method for optimizing power consumption in a mobile environment
US20040128576A1 (en) * 2002-12-31 2004-07-01 Michael Gutman Active state link power management
US20050097378A1 (en) * 2003-07-29 2005-05-05 Hwang Andrew S. Method and system for power management in a gigabit Ethernet chip
DE102009015495A1 (de) * 2008-03-31 2009-12-24 Intel Corporation, Santa Clara Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350087B2 (en) * 2003-03-31 2008-03-25 Intel Corporation System and method of message-based power management
US7343502B2 (en) * 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7529955B2 (en) * 2005-06-30 2009-05-05 Intel Corporation Dynamic bus parking
US7647515B2 (en) * 2005-08-29 2010-01-12 Dell Products L.P. System and method for information handling system adaptive variable bus idle timer
US8717346B2 (en) * 2005-12-13 2014-05-06 Ncr Corporation Apparatus and methods for communicating with a low duty cycle wireless device
US7716506B1 (en) * 2006-12-14 2010-05-11 Nvidia Corporation Apparatus, method, and system for dynamically selecting power down level
US7984314B2 (en) * 2007-05-14 2011-07-19 Intel Corporation Power management of low power link states
US20090172434A1 (en) * 2007-12-31 2009-07-02 Kwa Seh W Latency based platform coordination
US8601296B2 (en) * 2008-12-31 2013-12-03 Intel Corporation Downstream device service latency reporting for power management
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088590A1 (en) * 2002-09-04 2004-05-06 Johathan Lee System and method for optimizing power consumption in a mobile environment
US20040128576A1 (en) * 2002-12-31 2004-07-01 Michael Gutman Active state link power management
US20050097378A1 (en) * 2003-07-29 2005-05-05 Hwang Andrew S. Method and system for power management in a gigabit Ethernet chip
DE102009015495A1 (de) * 2008-03-31 2009-12-24 Intel Corporation, Santa Clara Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit

Also Published As

Publication number Publication date
TW201015289A (en) 2010-04-16
CN101615067B (zh) 2011-10-05
CN101615067A (zh) 2009-12-30
DE102009030544A1 (de) 2010-01-07
US20120324265A1 (en) 2012-12-20
US8255713B2 (en) 2012-08-28
US20090327774A1 (en) 2009-12-31
TWI420293B (zh) 2013-12-21
US8868948B2 (en) 2014-10-21

Similar Documents

Publication Publication Date Title
DE102009030544B4 (de) Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE112007000632B4 (de) Energieoptimierte Frame-Synchronisation für mehrere USB-Controller mit nicht gleichförmigen Frame-Raten
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE60116650T2 (de) Strommodus-übergang für einen prozessor
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE60128396T9 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE19882704C2 (de) Verfahren und Einrichtung für ein Stromversorgungsmanagement
DE102020130978A1 (de) Seitenbandsignalisierung über vorhandene hilfsstifte einer schnittstelle
DE102009060267A1 (de) Leerlaufzeit-Bericht für ein Power-Management
DE112016002913T5 (de) Dynamische Konfiguration von Verbindungsmodi an einem System basierend auf Hostgerätefähigkeiten
DE112011105901B4 (de) Verfahren und Vorrichtung zur Energieeinsparung für First In First Out (FIF0)-Speicher
DE102009058274A1 (de) Hybridgrafikanzeige-Power-Management
DE112014006183T5 (de) Vorrichtung, Verfahren und System für einen Schnellkonfigurationsmechanismus
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
DE112006003575T5 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE102010053298A1 (de) Synchronisierte Medienverarbeitung
DE102013104329A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE102020133273A1 (de) Leistungsüberwachung und Ressorcenverwaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee