DE102009031498B4 - Leistungsoptimierte dynamische Portzuweisung - Google Patents

Leistungsoptimierte dynamische Portzuweisung Download PDF

Info

Publication number
DE102009031498B4
DE102009031498B4 DE102009031498A DE102009031498A DE102009031498B4 DE 102009031498 B4 DE102009031498 B4 DE 102009031498B4 DE 102009031498 A DE102009031498 A DE 102009031498A DE 102009031498 A DE102009031498 A DE 102009031498A DE 102009031498 B4 DE102009031498 B4 DE 102009031498B4
Authority
DE
Germany
Prior art keywords
host controller
ports
computer system
port
active
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
DE102009031498A
Other languages
English (en)
Other versions
DE102009031498A1 (de
Inventor
Choon Gun Por
Soon Seng Seh
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 DE102009031498A1 publication Critical patent/DE102009031498A1/de
Application granted granted Critical
Publication of DE102009031498B4 publication Critical patent/DE102009031498B4/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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Bus Control (AREA)

Abstract

Ein Verfahren, ein Gerät, ein System und ein computerlesbares Medium werden offenbart. In einer Ausführungsform enthält das Verfahren ein dynamisches Zuweisen eines neu aktivierten Ports in einem Computersystem an einen ersten Host-Controller. Das erste Zuweisen geschieht, wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems kleiner als die maximal mögliche Anzahl an Ports für den ersten Host-Controller ist. Das Verfahren enthält zudem ein dynamisches Zuweisen neuer aktiver Ports des Computersystems an einen zweiten Host-Controller. Das zweite Zuweisen geschieht, wenn die Gesamtzahl der aktuell aktiven Ports in dem Computersystem größer oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller ist. Bei diesem Verfahren verwenden alle Ports sowie der erste und zweite Host-Controller das gleiche Protokoll.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich auf ein dynamisches Zuweisen von Ports an Host-Controller.
  • HINTERGRUND DER ERFINDUNG
  • Host-Controller sind in Computersystemen gebräuchlich. Viele Host-Controller steuern ein angeschlossenes Subsystem (z. B. einen Bus), der unter Verwendung eines bestimmten Protokolls betrieben wird. So benötigt beispielsweise ein Computersystem, welches ein Universal Serial Bus (USB) Input/Output (I/O) Subsystem verwendet, zumindest einen USB-Host-Controller. Andere Protokolle verwenden ihre eigenen Host-Controller, wie es u. a. bei Serial Advanced Technology Attachment (SATA) der Fall ist. Der Host-Controller kommuniziert mit kompatiblen Geräten, die am Host-Controller angeschlossen sind. Sehr häufig werden diese Geräte über Ports angeschlossen, wie dies bei USB der Fall ist. Diese Ports können externe Ports aufweisen, die eine physikalisch Plug-In-Schnittstelle am externen Gehäuse des Computersystems besitzen, sowie auch interne Ports für ständige Geräte, wie beispielsweise eine in einem Laptop-Computer integrierte Webcam.
  • Für viele Protokolle der Subsysteme, wie beispielsweise bei USB, ist die maximale Anzahl an Ports, die ein Host-Controller ansteuern kann, eingeschränkt. Verschiedene Versionen der USB-Implementation erlauben unterschiedliche Anzahlen von anzusteuernden Ports. Aufgrund der eingeschränkten Anzahl an Ports für einen einzelnen Host-Controller verfügen heutzutage viele moderne Computersysteme über mehrere Host-Controller für ein einziges Protokoll. Im Falle von USB 1.1 kann beispielsweise ein einzelner Host-Controller nur zwei Ports ansteuern. Im Falle von USB 2.0 kann ein einzelner Host-Controller bis zu acht Ports ansteuern. Benötigt ein Computersystem mehr als acht USB 2.0 Ports, benötigt das Computersystem mindestens zwei USB 2.0 Host-Controller, um den Anforderungen gerecht zu werden und eine gute Übertragungsbandbreite zu ermöglichen. Jeder Host-Controller, der im Computersystem betriebsfähig ist, benötigt Energie. Viele der heutigen modernen Computersysteme sind in der Lage, die Energiezufuhr für eine Komponente innerhalb des Computersystems zu steuern, indem die Komponente in einen Zustand mit einem geringeren Energiebedarf versetzt wird.
  • Aus der US 6,728,801 B2 ist eine Vorrichtung mit einem Host-Controller bekannt, welche einer Rahmenliste eine Anzahl von Warteschlangenköpfen hinzufügt. Die Anzahl von Warteschlangenköpfen wird der Rahmenliste vor den Transaktionsdeskriptoren hinzugefügt. Dabei wird bestimmt, ob ein Warteschlangenkopf kleiner oder gleich einer vorbestimmten Paketgröße ist, und ob eine Periode größer oder gleich einem vorbestimmten Schedule-Fenster ist.
  • Ferner ist aus der US 6,460,143 B1 eine Vorrichtung zum Aufwecken einer Busschaltung aus einem inaktiven Zustand bekannt. Die Busschaltung ist Teil eines Computersystems und wird zum Einsparen von Energie in einen inaktiven Zustand gefahren. Die Busschaltung ist mit einem Bus verknüpft und kann aus dem inaktiven Zustand aufweckt werden, wenn bestimmte Busereignisse auftreten.
  • Darüber hinaus ist aus der JP 2000 010 907 A ein Prozessor mit einem USB-Port und einem USB-Host-Controller bekannt. Der USB-Host-Controller wird dabei abgeschaltet, wenn keine USB-Vorrichtung an den USB-Port angeschlossen ist.
  • KURZER ABRISS DER ERFINDUNG
  • Es ist die Aufgabe der Erfindung, einen energieeffizienteren Betrieb von Host-Controllern eines Computersystems zu ermöglichen. Diese Aufgabe wird durch das Verfahren gemäß Anspruch 1, das Gerät gemäß Anspruch 7 und das Computersystem gemäß Anspruch 13 gelöst. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen beschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist exemplarisch und in keiner Weise einschränkend durch die Zeichnungen dargestellt, in denen gleiche Bezugsnummern ähnliche Elemente bezeichnen und in denen Folgendes dargestellt ist:
  • 1 zeigt die Ausführungsform eines aktuellen Computersystems mit zwei identischen Host-Controllern, die insgesamt 12 Ports steuern.
  • 2 zeigt die Ausführungsform eines Computersystems mit dem Schema der dynamischen Portzuweisung.
  • 3 zeigt die Ausführungsform eines Computersystems, welches mithilfe des Schemas der dynamischen Portzuweisung einen aktiven Port hinzufügt.
  • 4 zeigt die Ausführungsform eines Computersystems, welches mithilfe des Schemas der dynamischen Portzuweisung aktive Ports bis zur maximal zulässigen Anzahl von Ports hinzufügt.
  • 5 zeigt die Ausführungsform eines Computersystems, welches mithilfe des Schemas der dynamischen Portzuweisung alle aktiven Ports entfernt.
  • 6 zeigt eine Ausführungsform des Kopplungsstrukturschaltplans der dynamischen Portzuweisung innerhalb eines Computersystems.
  • 7 zeigt eine alternative Ausführungsform des Kopplungsstrukturschaltplans der dynamischen Portzuweisung innerhalb eines Computersystems.
  • 8 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses zum dynamischen Zuweisen eines neuen aktiven Ports an einen Host-Controller für die Energieeffizienz eines Computersystems.
  • 9 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses zum Deaktivieren eines Ports und zum Neuordnen der restlichen Portzuweisungen an den Host-Controller für die Energieeffizienz eines Computersystems.
  • DETAILBESCHREIBUNG DER ERFINDUNG
  • Ausführungsformen eines Verfahrens, eines Geräts, eines Systems und eines computerlesbaren Mediums für eine energieoptimierte dynamische Portzuweisung werden offenbart. Die Verweise in der folgenden Beschreibung und in den Schutzansprüchen auf „eine Ausführungsform” oder „die Ausführungsform” der offenbarten Technologien bedeuten, dass eine bestimmte in Verbindung mit der Ausführungsform beschriebene Funktion. Struktur oder Eigenschaft zumindest in einer Ausführungsform der offenbarten Technologien enthalten ist. Aus diesem Grund verweisen verschiedene Vorkommen des in dieser Spezifikation häufig verwendeten Ausdrucks „in einer Ausführungsform” nicht immer zwingend auf dieselbe Ausführungsform.
  • In der folgenden Beschreibung und in den Schutzansprüchen sind die verwendeten Begriffe „enthält” und „umfassend” sowie deren möglicherweise verwendeten Ableitungen als Synonyme zu verstehen. Zusätzlich können in der folgenden Beschreibung und in den Schutzansprüchen die Begriffe „gekoppelt” und „verbunden” und deren Ableitungen verwendet werden. Diese Begriffe sind jedoch nicht als Synonyme füreinander zu verstehen. Stattdessen kann in bestimmten Ausführungsbeispielen „verbunden” verwendet werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. „Gekoppelt” kann bedeuten, dass zwei oder mehr Elemente in direkten physischen oder elektrischen Kontakt sind. Jedoch kann „gekoppelt” auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, trotzdem aber miteinander arbeiten oder interagieren.
  • 1 zeigt die Ausführungsform eines Computersystems mit zwei identischen Host-Controllern (Host-Controller 0, Element 100 und Host-Controller 1, Element 102), die insgesamt 12 Ports steuern. Die Ports 0–5 (P0–P5, Elemente 104, 106, 108, 110, 112 bzw. 114) werden vom Host-Controller 0 gesteuert, während die Ports 6–11 (P6–P11, Elemente 116, 118, 120, 122, 124 und 126) vom Host-Controller 1 gesteuert werden. Des Weiteren ist auch eine ältere Version eines Host-Controllers 2 (Element 128) abgebildet, die sich die Ports P0 und P1 mit dem Host-Controller 0 teilt.
  • In anderen, nicht abgebildeten Ausführungsformen kann eine Vielzahl von Host-Controllern vorhanden sein, wovon jeder eine bestimmte Anzahl Ports steuert. Das in 1 abgebildete aktuelle Computersystem enthält Verbindungsleitungen, die zwischen jedem Host-Controller fest verdrahtet sind, wodurch die Ports permanent dem jeweiligen Host-Controller zugeordnet sind. In vielen Ausführungsformen beschreibt einen Port, der einem Host-Controller „dauerhaft zugeordnet” ist, einen Port, der direkt mit einem bestimmten Host-Controller verdrahtet ist. Mit anderen Worten kann der Port aufgrund der direkten Controller-zu-Port-Drahtverbindungsstruktur nicht durch einen anderen Host-Controller des gleichen Protokolls im gleichen Computersystem gesteuert werden. Obwohl jede Vergbindung aus mehrere elektrische und/oder optische Leitungen zur Daten-, Adress-, Steuersignal- und Taktsignalübertragung umfassen kann, die zwischen dem Host-Controller und dem Port in beiden Richtungen stattfindet, wird die gesamte Verbindung einer Controller-Port-Paarung durch eine einzelne Leitung in 1 dargestellt.
  • In einem aktuellen Computersystem, bei dem mindestens ein Port, der dauerhaft einem Host-Controller zugeordnet ist, an einer Vorrichtung angeschlossen ist (beispielsweise ein USB-Drucker im Falle eines USB-Host-Controllers), muss der Host-Controller vollständig hochgefahren und betriebsbereit sein. Sind alternativ dazu keine mit irgendeinem der Ports angeschlossen und somit die Ports im Leerlauf, kann ein Computersystem mit einer modernen Energiesparfunktionen Teile des oder den gesamten untätigen Host-Controller herunterfahren. Zu diesen Energiesparfunktionen können das Clock-Gating oder das Power-Gating von Teilen oder des gesamten Host-Controllers gehören. Zu diesen jeweils spezifischen Energiesparfunktionen können alternativ auch andere Energiesparprozesse gehören, über die Computersysteme heutzutage verfügen. Der Begriff „Herunterfahren” bezieht sich auf eine oder mehrere dieser Energiesparfunktionen, die für einen Host-Controller im Leerlauf implementiert sind. Wird der Host-Controller heruntergefahren, benötigt das Computersystem weniger Gesamtenergie, was die Energiekosten senkt, die Lebensdauer der Batterie in einem mobilen Computersystem erhöht und die Anforderungen für thermische Lösungen in jedem Computersystem senkt. Demgegenüber bezieht sich der Begriff „Hochfahren” auf den gegenteiligen Effekt des Aussetzers bzw. Deaktivierens der einen bzw. mehrerer Energiesparfunktionen, welche den Energieverbrauch des Host-Controllers begrenzt.
  • Aufgrund einer dauerhaften Zuweisung von Ports an einen Host-Controller kann ein modernes Computersystem lediglich zwei Ports aktiv geschaltet haben, muss aber dennoch zwei Host-Controller im vollständigen Betrieb halten. Wird beispielsweise, wie in 1 dargestellt, ein erstes Gerät an P0 und ein zweites Gerät an P6 angeschlossen, müssen sowohl der Host-Controller 0 als auch der Host-Controller 1 hochgefahren bleiben, um den Betrieb beider Geräte zu ermöglichen. Speziell in dem in 1 dargestellten Beispiel sind die aktiven Ports mit weißem Hintergrund und die inaktiven Ports gestrichelt dargestellt. Des Weiteren sind alle Verbindungsleitungen, die vom Host-Controller zu jedem inaktiven Port verlaufen, gepunktet dargestellt, wodurch gezeigt wird, dass sie aktuell nicht verwendet werden. P0, P2 und P5 sind aktiv und somit ist der Host-Controller 0 hochgefahren, und P6, P9 und P11 sind aktiv und daher ist Host-Controller 1 hochgefahren.
  • Der Begriff „zugewiesen” und dessen Ableitungen beziehen sich im Kontext einer Portzuweisung an einen Host-Controller auf eine Kommunikationsverbindung zwischen einem Port und einem Host-Controller, sodass diese während des Betriebs miteinander kommunizieren/sprechen können. Dieser Vorgang kann mittels einer Aufzählung der Geräte erfolgen oder über andere vorhandene Vorgehensweisen, wenn Geräte mit den Ports eingesteckt sind. Wenn ein Gerät hingegen von einem Port ausgesteckt oder in einem Port deaktiviert ist, wird der Port inaktiv, da das Gerät nicht mehr mit dem Host-Controller kommuniziert. Aus diesem Grund benötigt der Host-Controller keine Verbindung mit dem jeweiligen Port und die Zuordnung des Ports an den Host-Controller kann im Wesentlichen „aufgehoben” werden.
  • Im Hinblick auf den Energieverbrauch ist der Zustand des in 1 abgebildete Computersystem ineffizient, da nur sechs Ports aktiv sind, wodurch es möglich wäre einen der beiden Host-Controller herunterzufahren, wenn alle aktiven Ports nur einem einzigen Host-Controller zugeordnet wären. Damit dies erreicht werden kann, müssten die aktiven Ports P6, P9 und P11 ihre Zuordnung von dem Host-Controller 1 zu dem Host-Controller 0 ändern oder die aktiven Ports P0, P2 und P5 müssten ihre Zuordnung von dem Host-Controller 0 zu dem Host-Controller 1 ändern. Dies ist aufgrund des dauerhaften Zuordnungsschemas in modernen Computersystemen, wie in 1 dargestellt, nicht möglich.
  • 2 zeigt die Ausführungsform eines Computersystems mit einem Schema der dynamischen Portzuweisung. Die in 1 dargestellten aktiven Ports sind auch in 2 als aktive Ports dargestellt. Allerdings kann der Host-Controller 0 jetzt jedem der zwölf Ports (P0–P11) im Computersystem dynamisch zugeordnet werden. Somit kann der Host-Controller 0 die sechs aktiven Ports (P0, P2, P5, P6, P9 und P11) steuern und infolgedessen kann der Host-Controller 1 heruntergefahren werden (der Host Controller 1 ist im heruntergefahrenen Zustand gestrichelt dargestellt.)
  • Die Portzuweisungslogik 200 ist in 2 als Zwischenglied zwischen dem Host-Controller 0 und den zugewiesenen Ports dargestellt. Die Portzuweisungslogik 200 kann einen Port jedem beliebigen Host-Controller dynamisch zuweisen (d. h. verbinden). Alle Verbindungen, die zwischen jedem Host-Controller und den Portsverlaufen, führen durch die Portzuweisungslogik, die wie eine Art Multiplexer/Demultiplexer funktioniert, wodurch jedem Host-Controller ein Verbindungsport zu jedem Port in den Computersystemen ermöglicht wird. Die Ausführungsformen der spezifischen Implementation der Schaltung zwischen den Host-Controllern, der Portzuweisungslogik und den Ports selbst sind in den 6 und 7 dargestellt.
  • Die Portzuweisungslogik 200 kann in verschiedenen Ausführungsformen, beispielsweise ein diskreter Chip innerhalb des Computersystems sein, sie kann in einen I/O-Komplex eingebunden sein, der die integrierten Host-Controller enthält, oder sie kann in Software oder Mikrocode implementiert sein, die von einem Mikrocontroller für die Portzuweisung verwendet werden. Die Software oder den Mikrocode kann in einem Gerät des Computersystems abgespeichert werden.
  • In einigen Ausführungsformen sind die Verbindungen 202 und 204 vorhanden. welche es der Portzuweisungslogik 200 ermöglichen, Informationen an den jeweiligen Host-Controller zu senden, wann es hochfahren muss und wann er herunterfahren darf.
  • 3 zeigt die Ausführungsform eines Computersystems, welches mithilfe des Schemas der dynamischen Portzuweisung einen aktiven Port hinzufügt. Wie bereits oben erwähnt, stellen die Ausführungsformen in 1 und 2 den Host-Controller 0 und den Host-Controller 1 mit einer maximalen Steuermöglichkeit von jeweils sechs Ports dar. In 2 steuert Host-Controller 0 insgesamt sechs Ports. 3 beschreibt den Fall, der bereits mit der Situation in 2 beginnt, und worauf ein neu aktivierter Port zur Liste der aktiven Ports hinzugefügt wird. Der Begriff „neu aktiviert” bezieht sich auf einen Port, der zuvor im Ruhezustand war und durch ein Ereignis aus dem Ruhezustand genommen wurde und aktiv ist. Dies ist beispielsweise der Fall, wenn eine Person ein Gerät an einen externen Port anschließt, was dazu führt, dass der Port neu aktiviert wird.
  • In anderen, nicht in 3 abgebildeten Fällen kann die Portzuweisungslogik 200 den neuen aktiven Port dem gleichen Host-Controller zuordnen, der bereits aktiviert und in Betrieb ist, wenn aktuell weniger als sechs Ports aktiv sind und ein neuer aktiver Port hinzukommt. Im speziellen Fall, der in 3 abgebildet ist, wird der Host-Controller 0 bereits mit der maximal möglichen Anzahl von sechs aktiven Ports betrieben und ein siebenter Port wird hinzugefügt. In diesem Fall wird der Host-Controller 1 von der Portzuweisungslogik 200 informiert, aufzuwachen und in einen voll betriebsfähigen Zustand einzutreten, da der Port P4 neu aktiviert wurde. Dadurch wacht der Host-Controller 1 auf und anschließend ordnet die Portzuweisungslogik 200 Port P4 dynamisch dem Host-Controller 1 zu.
  • Der Prozess innerhalb des Betriebssystems zur Bestimmung, warm ein Gerät bei laufendem Computer in einen Port eingesteckt wurde (sog. „Hot-Plugging”), nimmt normalerweise die Größenordnung von Sekunden in Anspruch, bevor das Gerät betriebsbereit ist. Intern benötigt das Verfahren, das den Host-Controller aus dem heruntergefahrenen Zustand bringt (egal ob mit Clock-Gate, Power-Gate usw.) in der Größenordnung von Mikrosekunden oder im schlimmsten Fall Millisekunden. Aus diesem Grund wird in vielen Ausführungsformen die Verzögerungszeit zum Hochfahren eines Host-Controllers, der heruntergefahren war, aus dem Ruhezustand durch die höhere Verzögerungszeit des Betriebssystems überlagert, die für eine Inbetriebnahme eines Hot-Plugged-Geräts erforderlich ist.
  • 4 beschreibt die Ausführungsform eines Computersystems, welches mithilfe eines Schemas der dynamischen Portzuweisung aktive Ports bis zur maximal zulässige Anzahl an Ports hinzufügt. In 4 werden die in 3 dargestellten restlichen inaktiven Ports aktiv und werden dem Host-Controller 1 zugewiesen. Hier werden dem Host-Controller 1 speziell die Ports P1, P3, P4, P7, P8 und P10 zugewiesen.
  • Obwohl das in 4 dargestellte Szenario durch die ersten sechs aktiv gewordenen Ports vorgegeben wurde, bedeutet das nicht, dass die Ports P0, P2, P5, P6, P9 und P11 immer dem Host-Controller 0 oder die Ports P1, P3, P4, P7, P8 und P10 immer dem Host-Controller 1 zugewiesen werden. Kehren wir beispielsweise zu 3 zurück, in der sieben Ports aktiv sind. Wird nun Port P6 inaktiv, würde die Portzuweisungslogik 200 erkennen, dass nur noch sechs Ports aktiv sind. Als Resultat würde dann in vielen Ausführungsformen die Portzuweisungslogik 200 die Zuordnung von P4 vom Host-Controller 1 auf den Host-Controller 0 übertragen. Nachdem der Zuweisungstransfer stattgefunden hat, wäre die Portzuweisungslogik 200 wieder in der Lage, den Host-Controller 1 herunterzufahren.
  • 5 zeigt die Ausführungsform eines Computersystems, welches mithilfe eines Schemas der dynamischen Portzuweisung alle aktiven Ports entfernt. Im Gegensatz dazu zeigt 5 das andere Ende des Spektrums, bei dem keinerlei Ports aktuell aktiv sind. In diesem Szenario kann sowohl der Host-Controller 0 als auch der Host-Controller 1 heruntergefahren werden.
  • 6 zeigt die Ausführungsform der dynamischen Portzuweisung und das Verbindungsschaltungsstruktur innerhalb eines Computersystems. In dieser Ausführungsform sind zwölf Ports (P0–P11) im Computersystem vorhanden. Jeder der zwölf Ports verfügt über eine Verbindung (604626), die den Port mit der Portzuweisungslogik 200 koppelt. P0 ist durch die Verbindung 604 gekoppelt, P1 ist durch die Verbindung 606 gekoppelt usw. Darüber hinaus besitzt jeder Host-Controller in dieser Ausführungsform 12 Verbindungen (Element 600 für den Host-Controller 0 und Element 602 für den Host-Controller 1) zu sich selbst und zur Portzuweisungslogik 200. Somit kann die Portzuweisungslogik 200 jeden Port (und jede zugewiesene Verbindungen, die von einem Port kommt) dynamisch mit einem Host-Controller paaren unter Verwendung einer der 12 speziellen Verbindungen, die den Host-Controller mit der Portzuweisungslogik 200 koppeln.
  • 7 zeigt eine alternative Ausführungsform der Verbindungsschaltstrukturen der dynamischen Portzuweisung innerhalb eines Computersystems. In dieser Ausführungsform sind wieder zwölf Ports (P0–P11) im Computersystem vorhanden. Jeder der zwölf Ports verfügt über eine Verbindung (604626), die den Port mit der Portzuweisungslogik 200 koppelt. Zusätzlich besitzt jeder Host-Controller in dieser Ausführungsform sechs Verbindungen (Element 700 für den Host-Controller 0 und Element 702 für den Host-Controller 1) zu sich selbst und zur Portzuweisungslogik 200. Somit kann die Portzuweisungslogik 200 einen Port (und die zugewiesene Verbindung, die von einem Port kommt) dynamisch mit einem Host-Controller paaren unter Verwendung einer der sechs speziellen Verbindungen, die den Host-Controller mit der Portzuweisungslogik 200 koppeln. Die Anzahl der Verbindungen, die jeden Host-Controller mit der Portzuweisungslogik 200 koppeln, ist auf sechs beschränkt, da jeder Host-Controller nur sechs Ports steuern kann. Somit sind zu jeder Zeit nur sechs Verbindungen erforderlich, und jede von diesen kann zu einem speziellen der zwölf Ports geleitet (d. h. diesem zugewisesen) werden.
  • 8 ist ein Ablaufdiagramm der Ausführungsform eines Prozesses, der einen neuen aktiven Port dynamisch einem Host-Controller zur Energieeffizienz eines Computersystems zuweist. Dieser Prozess erfolgt durch eine Verarbeitungslogik, die eine Hardware, eine Software oder einer Kombination aus beidem sein kann. Weiterführend in 8 beginnt der Prozess durch die Verarbeitungslogik, die bestimmt, ob ein neuer aktiver Port im Computersystem vorhanden ist (Verarbeitungsblock 800). Wurde kein neuer aktiver Port gefunden, kehrt die Verarbeitungslogik zurück und versucht weiterhin zu bestimmen, ob ein neuer aktiver Port in dem Computersystem aktiviert wurde.
  • Erkennt die Verarbeitungslogik, dass ein neuer aktiver Port vorhanden ist, wird zunächst die Gesamtzahl der derzeit aktiven Ports im Computersystem (Verarbeitungsblock 802) ermittelt. Dies bestimmt insbesondere die Gesamtzahl der aktuell aktiven Ports, bevor der neue aktive Port aktiviert wurde. Die Verarbeitungslogik nutzt dieses Ergebnis, um zu prüfen, ob aktuell aktive Ports (CAP [currently active ports]) im Computersystem vorhanden sind (Verarbeitungsblock 804).
  • Sind keine aktuell aktiven Ports vorhanden, fährt die Verarbeitungslogik den Host-Controller 0 hoch (d. h. den ersten Host-Controller des Systems) (Verarbeitungsblock 806). Nachdem der Host-Controller 0 hochgefahren wurde, weist die Verarbeitungslogik den neuen aktiven Port mit Host-Controller 0 zu (Verarbeitungsblock 808) und der Vorgang ist abgeschlossen.
  • Zurück zu Block 804: Befinden sich aktuell aktive Ports bereits in Betrieb, bestimmt die Verarbeitungslogik, ob die Gesamtzahl der aktuell aktiven Ports kleiner als die maximale Anzahl zugewiesener Ports vom Host-Controller 0 ist (Verarbeitungsblock 810). Ist die Anzahl kleiner als die maximale Kapazität des Host-Controllers 0, verbindet die Verarbeitungslogik den neuen aktiven Port mit Host-Controller 0 (Verarbeitungsblock 808) und der Vorgang ist abgeschlossen.
  • Zurück zu Block 810: Liegt die Anzahl der aktuell aktiven Ports nicht unter der maximalen Kapazität des Host-Controllers 0, dann ermittelt die Verarbeitungslogik, ob die Anzahl der aktuell aktiven Ports gleich der maximal möglichen Anzahl an zugewiesenen Ports des Host-Controllers 0 ist (Verarbeitungsblock 812). Ist diese Anzahl gleich der maximalen Kapazität des Host-Controllers 0, fährt die Verarbeitungslogik den Host-Controller 1 hoch (d. h. den zweiten Host-Controller des Systems) (Verarbeitungsblock 814). Sobald der Host-Controller 1 hochgefahren wurde, weist die Verarbeitungslogik den neuen aktiven Port dem Host-Controller 1 zu (Verarbeitungsblock 816) und der Vorgang ist abgeschlossen.
  • Zurück zu Block 812: Ist die Anzahl der aktuell aktiven Ports ungleich der maximalen Kapazität des Host-Controllers 0, kann davon ausgegangen werden, dass die Anzahl der aktuell aktiven Ports größer als die maximal Kapazität des Host-Controllers 1 ist. Dies bedeutet, dass der Host-Controller 1 bereits in Betrieb sein muss. Folglich weist die Verarbeitungslogik den neuen aktiven Port dem Host-Controller 1 zu (Verarbeitungsblock 816) und der Vorgang ist abgeschlossen.
  • Obwohl dieser Vorgang speziell mit Bezug auf zwei Host-Controller dargestellt wurde, kann er erweitert werden, um eine beliebige Anzahl von mehr als zwei Host-Controller aufzunehmen, mit verschiedenen nahe liegenden Modifikationen in der Verarbeitungslogik des Prozessors.
  • 9 ist ein Ablaufdiagramm einer Ausführungsform eines Verfahrens, das einen Port deaktiviert und die restlichen Portzuweisungen an den Host-Controller dynamisch neu ordnet für die Energieeffizienz in dem Computersystem. Dieser Prozess erfolgt durch eine Verarbeitungslogik, die aus Hardware. Software oder einer Kombination aus beidem sein kann. Weiterführend in 9 beginnt der Prozess durch die Verarbeitungslogik, die bestimmt, ob ein Port im Computersystem deaktiviert wurde (Verarbeitungsblock 900). Ein Port kann aus vielerlei Gründen deaktiviert werden, beispielsweise wenn eine Person das Gerät aus dem Port aussteckt. Wurde kein Port deaktiviert, kehrt die Verarbeitungslogik zurück und versucht weiterhin zu ermitteln, ob ein Port in dem Computersystem deaktiviert wurde.
  • Erkennt die Verarbeitungslogik, dass ein Port deaktiviert wurde, wird zunächst die Gesamtzahl der derzeit aktiven Ports im Computersystemermittelt, nachdem die Deaktivierung des Ports stattgefunden hat (Verarbeitungsblock 902). Die Verarbeitungslogik nutzt dieses Ergebnis, um zu prüfen, ob weitere aktuell aktive Ports (CAP) im Computersystem vorhanden sind (Verarbeitungsblock 904).
  • Sind keine aktuell aktiven Ports vorhanden, fährt die Verarbeitungslogik den Host-Controller 0 herunter (d. h. den ersten Host-Controller des Systems) (Verarbeitungsblock 906). Nachdem sich Host-Controller 0 heruntergefahren ist, ist der Vorgang abgeschlossen.
  • Zurück zu Block 904: Befinden sich aktuell aktive Ports in Betrieb, bestimmt die Verarbeitungslogik, ob die Gesamtzahl der aktuell aktiven Ports gleich der maximalen Anzahl der möglichen zugewiesener Ports des Host-Controllers 0 ist (Verarbeitungsblock 908). Ist die Anzahl der ermittelten aktuell aktiven Ports ungleich der maximalen Kapazität des Host-Controllers 0, dann geht die Verarbeitungslogik davon aus, dass es mehr oder weniger als die maximale mögliche Anzahl an zugewiesenen Ports des Host-Controllers 0 gibt. In diesem Fall müssen die Betriebszustände der Host-Controller nicht verändert werden, da der/die hochgefahrenen Host-Controller weiterhin hochgefahren bleiben müssen, um die aktuell verwendeten Ports des Computersystems betreiben zu können. Ist somit die Anzahl der aktuell aktiven Ports ungleich der maximalen Kapazität des Host-Controllers 0, ist der Vorgang abgeschlossen.
  • Ist hingegen die Anzahl der ermittelten aktuell aktiven Ports gleich der maximalen Kapazität des Host-Controllers 0, dann wird durch die Verarbeitungslogik ermittelt, ob dem Host-Controller 1 bereits aktuell aktive Ports zugewiesen wurden (Verarbeitungsblock 910). Sind der Host-Controller 1 keine aktuell aktiven Ports zugewiesen, deaktiviert die Verarbeitungslogik den Host-Controller 1 (Verarbeitungsblock 914) und der Vorgang ist abgeschlossen.
  • Zurück zu Block 910: Ist dem Host-Controller 1 nur noch ein Port zugewiesen, überträgt die Verarbeitungslogik die Zuweisung aller aktuell aktiven Ports vom Host-Controller 1 auf den Host-Controller 0 (Verarbeitungsblock 912). Kehren wir beispielsweise zu 3 zurück, in der sieben Ports aktiv sind. Wird nun Port P6 inaktiv, würde die Verarbeitungslogik 200 dies erkennen und feststellen, dass nur noch sechs Ports aktiv sind. Als Resultat würde dann in vielen Ausführungsformen die Verarbeitungslogik 200 die Zuweisung von Port 4 vom Host-Controller 1 auf den Host-Controller 0 übertragen.
  • Nachdem alle Zuweisungen auf den Host-Controller 0 übertragen wurden, sind dem Host-Controller 1 keine aktiven Ports mehr zugewiesen. Somit kann die Verarbeitungslogik den Host-Controller 1 herunterfahren (Verarbeitungsblock 914) und der Vorgang ist abgeschlossen.
  • Obwohl dieser Vorgang wiederum mit Bezug auf zwei spezielle Host-Controllern dargestellt wurde kann er erweitert werden, um eine beliebige Anzahl von mehr als zwei Host-Controllern aufzunehmen, mit verschiedenen naheliegenden Modifikationen in der Verarbeitungslogik.
  • Somit wurden Ausführungsformen eines Verfahrens, eines Geräts, eines Systems und eines computerlesbaren Mediums für eine energieoptimierte dynamische Portzuweisung offenbart. Die hier beschriebenen Ausführungsformen werden mit Bezug auf bestimmte beispielhafte Ausführungsformen erläutert. Es ist für Personen, die Einsicht in diese Offenbarung haben, offensichtlich, dass verschiedene Anpassungen und Veränderungen an diesen Ausführungsformen vorgenommen werden müssen, ohne dabei im weiteren Sinne und dem Umfang der hierin beschriebenen Ausführungsformen abzuweichen. Die Beschreibung und die Zeichnungen sind demgemäß als exemplarische Darstellung, jedoch nicht in einem einschränkenden Sinne, anzusehen.

Claims (19)

  1. Verfahren, das Folgendes umfasst: dynamisches Zuweisen eines neuen aktiven Ports innerhalb eines Computersystems an einen ersten Host-Controller (100), wenn die Gesamtzahl der aktuell aktiven Ports (104126) des Computersystems kleiner als die maximal mögliche Anzahl an Ports für den ersten Host-Controller (100) ist; dynamisches Zuweisen eines neuen aktiven Ports innerhalb eines Computersystems an einen zweiten Host-Controller (102), wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems größer oder gleich der maximal möglichen Anzahl an Ports des ersten Host-Controllers (100) ist, und Verhindern des Hochfahrens des zweiten Host-Controllers (102) in einen Betriebszustand, wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems kleiner als oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist, wobei alle Ports und der erste sowie der zweite Host-Controller (100, 102) das gleiche Protokoll verwenden.
  2. Verfahren nach Anspruch 1, das weiter Folgendes umfasst: Das Ermöglichen des Hochfahrens des zweiten Host-Controllers (102) in einen Betriebszustand, wenn der erste Host-Controller (100) aktuell mit der maximalen Anzahl aktiver Ports für den ersten Host-Controller (100) arbeitet, der zweite Host-Controller (102) sich aktuell in einem deaktivierten Zustand befindet und ein weiterer Port des Computersystems aktiv wird und einem Host-Controller zugeordnet werden muss.
  3. Verfahren nach Anspruch 2, das weiter Folgendes umfasst: Dynamisches Zuweisen des zusätzlichen Ports an den zweiten Host-Controller (102), sobald der zweite Host-Controller (102) in Betrieb ist.
  4. Verfahren nach Anspruch 2, das weiter Folgendes umfasst: Ändern einer Zuweisung eines oder mehrerer der aktuell aktiven Ports des Computersystems von einer Zuweisung an den zweiten Host-Controller (102) zum ersten Host-Controller (100), wenn die Gesamtanzahl der aktuell aktiven Ports kleiner oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist und ein oder mehrere aktuell aktive Ports weiterhin dem zweiten Host-Controller (102) zugewiesen bleiben.
  5. Verfahren nach Anspruch 1, das weiter umfasst: Herunterfahren des zweiten Host-Controllers (102), nachdem die Zuordnung zum zweiten Host-Controller (102) eines soeben inaktivierten Ports aufgehoben wurde und dem zweiten Host-Controller (102) im Computersystem keine weiteren aktiven Ports zugewiesen sind.
  6. Verfahren nach Anspruch 1, wobei das Protokoll ein USB-(Universal Serial Bus)-Protokoll ist.
  7. Gerät, das Folgendes umfasst: eine Portzuweisungslogik (200) in einem Computersystem für Folgendes: dynamisches Zuweisen eines neuen aktiven Ports in einem Computersystem an einen ersten Host-Controller (100), wenn eine Gesamtzahl von aktuell aktiven Ports des Computersystems kleiner als eine maximal mögliche Anzahl an Ports für den ersten Host-Controller (100) ist; dynamisches Zuweisen eines neuen aktiven Ports in dem Computersystem an einen zweiten Host-Controller (102), wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems größer oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist, und Verhindern, dass der zweite Host-Controller (102) in einen Betriebszustand hochgefahren wird, wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems kleiner oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist, wobei alle Ports und der erste Host-Controller (100) sowie der zweite Host-Controller (102) das gleiche Protokoll verwenden.
  8. Gerät nach Anspruch 7, wobei die Portzuweisungslogik weiter Folgendes bewirkt: Ermöglichen, dass der zweite Host-Controller (102) in einem Betriebszustand geschaltet wird, wenn der erste Host-Controller (100) mit der maximalen Anzahl aktiver Ports für den ersten Host-Controller (100) arbeitet, der zweite Host-Controller (102) sich aktuell in einem heruntergefahrenen Zustand befindet und ein weiterer Port des Computersystems aktiv wird und an einen Host-Controller zugewiesen werden muss.
  9. Gerät nach Anspruch 8, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: dynamisches Zuweisen des weiteren Ports an den zweiten Host-Controller (102), sobald dieser in Betrieb ist.
  10. Gerät nach Anspruch 8, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Ändern einer Zuweisung eines oder mehrerer aktuell aktiver Ports des Computersystems und der Zuweisung an den zweiten Host-Controller (102) zu einer Zuweisung an den ersten Host-Controller (100), wenn die Gesamtanzahl der aktuell aktiven Ports kleiner oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist und ein oder mehrere aktuell aktive Ports dem zweiten Host-Controller (102) zugewiesen bleiben.
  11. Gerät nach Anspruch 7, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Herunterfahren des zweiten Host-Controllers (102), nachdem die Zuordnung von einem oder mehreren Ports zum zweiten Host-Controller (102) aufgehoben wurde und dem zweiten Host-Controller (102) im Computersystem keine anderen aktiven Ports zugewiesen sind.
  12. Gerät nach Anspruch 7, wobei das Protokoll ein USB(Universal Serial Bus)-Protokoll ist.
  13. Computersystem, das Folgendes umfasst: einen ersten Universal Serial Bus-Host-Controller (100); einen zweiten Universal Serial Bus-Host-Controller (102); eine Portzuweisungslogik-Vorrichtung (200) für Folgendes: dynamisches Zuweisen eines neuen aktiven Ports in einem Computersystem an den ersten Host-Controller (100), wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems kleiner als eine maximal mögliche Anzahl an Ports des ersten Host-Controllers (100) ist; dynamisches Zuweisen eines neuen aktiven Ports in einem Computersystem an einen zweiten Host-Controller (102), wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems größer oder gleich der maximal möglichen Anzahl an Ports des ersten Host-Controllers (100) ist, und Verhindern eines Hochfahrens des zweiten Host-Controllers (102) in einen Betriebszustand, wenn die Gesamtzahl der aktuell aktiven Ports des Computersystems kleiner oder gleich der maximal möglichen Anzahl an Ports für den ersten Host-Controller (100) ist.
  14. Computersystem nach Anspruch 13, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Ermöglichen des Hochfahrens des zweiten Host-Controllers (102) in einen Betriebszustand, wenn der erste Host-Controller (100) aktuell mit der maximal möglichen Anzahl an Ports arbeitet, der zweite Host-Controller (102) in einem heruntergefahrenen Zustand ist und ein weiterer Port in dem Computersystem aktiv wird und einem Host-Controller zugeordnet werden muss.
  15. Computersystem nach Anspruch 14, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: dynamisches Zuweisen des weiteren Ports an den zweiten Host-Controller (102), sobald der zweite Host-Controller (102) betriebsbereit ist.
  16. Computersystem nach Anspruch 14, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Ändern einer Zuweisung eines oder mehrerer der aktuell aktiven Ports des Computersystems von einer Zuweisung an den zweiten Host-Controller (102) zu einer Zuweisung an den ersten Host-Controller (100), wenn die Gesamtanzahl der aktuell aktiven Ports kleiner oder gleich der maximal möglichen Anzahl an Ports des ersten Host-Controllers (100) ist und ein oder mehrere aktuell aktive Ports weiterhin dem zweiten Host-Controller (102) zugewiesen bleiben.
  17. Computersystem nach Anspruch 13, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Herunterfahren des zweiten Host-Controllers (102), nachdem die Zuordnung von einem oder mehreren Ports an den zweiten Host-Controller (102) aufgehoben wurde und dem zweiten Host-Controller (102) im Computersystem keine anderen aktiven Ports zugewiesen sind.
  18. Computersystem nach Anspruch 13, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Verhindern, dass der zweite Host-Controller (102) in einen Betriebszustand hochfahrt durch Power-Gating des zweiten Host-Controllers (102).
  19. Computersystem nach Anspruch 13, wobei die Portzuweisungslogik (200) weiter Folgendes bewirkt: Verhindern, dass der zweite Host-Controller (102) in einen Betriebszustand hochfährt, durch Clock-Gating des zweiten Host-Controllers (102).
DE102009031498A 2008-07-03 2009-07-02 Leistungsoptimierte dynamische Portzuweisung Expired - Fee Related DE102009031498B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/217,466 US7840733B2 (en) 2008-07-03 2008-07-03 Power optimized dynamic port association
US12/217,466 2008-07-03

Publications (2)

Publication Number Publication Date
DE102009031498A1 DE102009031498A1 (de) 2010-01-14
DE102009031498B4 true DE102009031498B4 (de) 2013-12-19

Family

ID=41008749

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009031498A Expired - Fee Related DE102009031498B4 (de) 2008-07-03 2009-07-02 Leistungsoptimierte dynamische Portzuweisung

Country Status (5)

Country Link
US (1) US7840733B2 (de)
CN (1) CN101699366A (de)
DE (1) DE102009031498B4 (de)
GB (1) GB2461405B (de)
TW (1) TWI410805B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200939009A (en) * 2008-03-06 2009-09-16 Asustek Comp Inc Power saving system and method
US8631255B2 (en) * 2010-07-02 2014-01-14 Intel Corporation Method, system and apparatus for dynamic buffer management for power saving
WO2013028203A1 (en) 2011-08-25 2013-02-28 Intel Corporation Determining, at least in part, one or more respective amounts of buffer memory field
TW201430546A (zh) * 2013-01-18 2014-08-01 Atrust Comp Corp 具多人機介面的電子裝置及其多人機介面運作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010907A (ja) * 1998-06-24 2000-01-14 Toshiba Corp 情報処理装置
US6460143B1 (en) * 1999-05-13 2002-10-01 Apple Computer, Inc. Apparatus and method for awakening bus circuitry from a low power state
US6728801B2 (en) * 2001-06-29 2004-04-27 Intel Corporation Method and apparatus for period promotion avoidance for hubs

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567921B1 (en) * 1999-01-25 2003-05-20 Agere Systems, Inc. Asynchronous low power mode bus controller circuit and method of low power mode operation
US6732219B1 (en) * 2001-02-23 2004-05-04 Hewlett-Packard Development Company, L.P. Dynamic allocation of devices to host controllers
US6877058B2 (en) * 2001-10-30 2005-04-05 Sony Corporation Information processing unit having a slot, information processing method for an information processing unit, and program that controls an information processing unit
TW538364B (en) * 2001-12-10 2003-06-21 Via Tech Inc USB control circuit capable of automatically switching paths
TWI268411B (en) * 2002-05-07 2006-12-11 Alcor Micro Corp USB interface of self-adjusting oscillator with capable of constructing a non-quartz self-adjusting synchronous oscillator
EP1516261B1 (de) * 2002-06-12 2008-08-06 Nxp B.V. Bussystem, station zur verwendung in einem bussystem und busschnittstelle
US6732218B2 (en) * 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method
DE10234991B4 (de) * 2002-07-31 2008-07-31 Advanced Micro Devices, Inc., Sunnyvale Hostcontrollerdiagnose für einen seriellen Bus
US7191256B2 (en) * 2003-12-19 2007-03-13 Adams Lyle E Combined host interface controller for conducting communication between a host system and multiple devices in multiple protocols
GB2412757B (en) * 2004-03-31 2006-02-15 Mentor Graphics Multi-point USB connection
US7552475B2 (en) * 2004-04-09 2009-06-23 Hewlett-Packard Development Company, L.P. Systems and methods for securing ports
TWI250442B (en) * 2004-09-02 2006-03-01 Tenx Technology Inc Embedded oscillator for USB device and method for generating frequency signals thereof
US7415626B2 (en) * 2004-10-01 2008-08-19 Sony Ericsson Mobile Communications Ab Methods, devices and circuits for activating a communication device connected to an external bus
US7340620B2 (en) * 2005-05-10 2008-03-04 Hewlett-Packard Development Company, L.P. Rapid load reduction for power-over-LAN system using lower and higher priority states for ports
US8069294B2 (en) * 2006-03-30 2011-11-29 Intel Corporation Power-optimized frame synchronization for multiple USB controllers with non-uniform frame rates

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010907A (ja) * 1998-06-24 2000-01-14 Toshiba Corp 情報処理装置
US6460143B1 (en) * 1999-05-13 2002-10-01 Apple Computer, Inc. Apparatus and method for awakening bus circuitry from a low power state
US6728801B2 (en) * 2001-06-29 2004-04-27 Intel Corporation Method and apparatus for period promotion avoidance for hubs

Also Published As

Publication number Publication date
TW201017425A (en) 2010-05-01
CN101699366A (zh) 2010-04-28
GB2461405B (en) 2010-12-01
US20100005204A1 (en) 2010-01-07
TWI410805B (zh) 2013-10-01
US7840733B2 (en) 2010-11-23
GB2461405A (en) 2010-01-06
DE102009031498A1 (de) 2010-01-14
GB0911636D0 (en) 2009-08-12

Similar Documents

Publication Publication Date Title
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE112011105867B4 (de) Kollaboratives Prozessor- und Systemleistungs- und Energiemanagement
DE102007046002B4 (de) Vorrichtung und Verfahren zum Verwalten von Leistung in einem Informationsverarbeitungssystem
DE60128396T9 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102008035120B4 (de) Prozessorauswahl für einen Interrupt, die einen Prozessorcluster identifiziert
DE10159247B4 (de) Vorrichtung und Verfahren zur Durchführung eines Stromversorgungsmanagements von Kraftfahrzeugmultimediasystemen
DE112011100990T5 (de) Begrenzen eines Leistungsbusstroms unter Verwendung von Informationen über Anforderungen von Einheiten
DE112019003427T5 (de) Lastverteilung in multi-port-stromversorgungsanwendungen querverweis auf verwandte anmeldungen
DE112005003279T5 (de) Energieverwaltungs-Punkt-zu-Punkt Wechselstrom-gekoppeltes Peripheriegerät
DE102008064866B3 (de) Elektronische Steuerungsvorrichtung und Verfahren zur elektronischen Steuerung und zur Betätigung einer elektronischen Steuerungsvorrichtung
DE102009041723A1 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung
DE112011102115T5 (de) Transparente Steigerung von Energieeinsparungen in einer Energieverbrauchs-Steuerungsumgebung
DE102021122231A1 (de) Dynamische netzwerksteuerungs-leistungsverwaltung
DE102009031498B4 (de) Leistungsoptimierte dynamische Portzuweisung
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
EP2159667B1 (de) Computersystem und Verfahren zum Energie sparenden Betrieb eines Computersystems
EP3663927A1 (de) Verfahren zum energiesparenden betreiben eines sicherheitselements einer ein-chip-system-vorrichtung, und ein-chip-system-vorrichtung
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
DE102010054436B4 (de) Computersystem, Anordnung zur Fernwartung und Fernwartungsverfahren
DE112018005895T5 (de) Stromverwaltung von diskreten kommunikationsportkomponenten
DE102013106699B3 (de) Computersystem mit einem Abwesenheitsmodus

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20140320

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee