-
HINTERGRUND
-
Technisches Gebiet
-
Hierin beschriebene Ausführungsformen betreffen Computersysteme und genauer Techniken zum Anpassen von Leistungseinstellungen für Funktionseinheiten in dem Computersystem.
-
Beschreibung der verwandten Technik
-
Computersysteme können ein oder mehrere Systeme auf einem Chip (systems-on-a-chip (SoC)) einschließen, die eine Anzahl unterschiedlicher Funktionen, wie z. B. Grafikverarbeitung, auf einer einzelnen integrierten Schaltung integrieren können. Wenn zahlreiche Funktionen in einer einzelnen integrierten Schaltung eingeschlossen sind, kann die Chip-Zahl in mobilen Computersystemen, wie zum Beispiel Tablets, gering gehalten werden, was zu reduzierten Montagekosten und einem kleineren Formfaktor für derartige mobile Computersysteme führt.
-
In einem SoC können unterschiedliche Regionen oder Funktionseinheiten mit unterschiedlichen Taktfrequenzen arbeiten (Funktionsblöcke, die mit unterschiedlichen Taktfrequenzen arbeiten, werden üblicherweise als in unterschiedlichen „Taktdomänen“ bezeichnet). Zum Beispiel können mit externen Schnittstellen gekoppelte Funktionseinheiten mit einer Taktfrequenz arbeiten, die den Bedürfnissen der externen Schnittstellen angepasst ist, während andere Funktionseinheiten konzipiert sein können, um mit einer höchstmöglichen Taktfrequenz für einen gegebenen Halbleiter-Herstellungsprozess zu arbeiten. Andere Funktionseinheiten können Logikschaltungen einschließen, die mit unterschiedlichen Taktfrequenzen arbeiten, während einige Funktionseinheiten abhängig von der Auslastung auch variierende Taktfrequenzen zulassen können.
-
Weiter können unterschiedliche Regionen oder Funktionseinheiten in einem SoC unterschiedliche interne Stromversorgungen verwenden, von denen jede einen unterschiedlichen Spannungspegel haben kann. Zum Beispiel können bestimmte analoge und Eingangs-/Ausgangsschaltungen (E/A-Schaltungen) höhere Spannungspegel benötigen als andere digitale Schaltungseinheiten. Das SoC kann Schaltungen einschließen, wie z. B. Spannungsregler, die z. B. konfiguriert sind, um die internen Stromversorgungen zu erzeugen.
-
Während des Betriebs können Spannungspegel der internen Stromversorgungen abhängig von Leistungs- oder Energieanforderungen angepasst werden. Zum Beispiel können während Zeiträumen reduzierter Aktivität im SoC Spannungspegel von einer oder mehreren der internen Stromversorgungen auf inaktive Abschnitte des SoC reduziert werden, um einen Leckstromverbrauch zu verringern. Alternativ oder zusätzlich dazu können Frequenzen interner Taktsignale ebenfalls angepasst werden.
-
US 2012 / 0 159 216 A1 beschreibt Systeme, Vorrichtungen und Verfahren zur Energieeffizienz und Energieeinsparung einschließlich einer temperaturbasierten Spannungssteuerung. Eine Vorrichtung umfasst einen Prozessor und einen mit dem Prozessor gekoppelten Controller. Der Controller empfängt eine Temperaturmessung, die einer aktuellen Temperatur des Prozessors entspricht. Der Controller bestimmt eine Anpassung einer an den Prozessor angelegten Spannung zumindest teilweise basierend auf der Temperaturmessung und mehreren internen Grenzen des Prozessors.
-
Weitere Beispiele sind in
US 2009 / 0 240 959 A1 ,
US 2013 / 0 159 750 A1 und
US 2011 / 0 301 889 A1 zu finden.
-
ZUSAMMENFASSUNG DER AUSFÜHRUNGSFORMEN
-
Die Erfindung wird durch die unabhängigen Ansprüche definiert. Bevorzugte Ausführungen werden durch die abhängigen Ansprüche beschrieben. Verschiedene Ausführungsformen eines Verfahrens und einer Einrichtung zum Einstellen einer Verzögerung in einem Schaltungspfad werden offenbart. Im weiteren Sinne werden eine Einrichtung und ein Verfahren betrachtet, in denen ein System eine oder mehrere Funktionseinheiten einschließt. Mindestens eine Funktionseinheit schließt eine Monitorschaltung ein, die konfiguriert ist, um einen Betriebsparameter zu überwachen, der seiner dazugehörigen Funktionseinheit zugeordnet ist. Die Monitorschaltung ist ferner konfiguriert, um Daten zu senden, die den Betriebsparameter einem Stromverwalter-Prozessor angeben. Der Stromverwalter-Prozessor kann konfiguriert sein, um die Daten zu empfangen und in Abhängigkeit von den empfangenen Daten eine oder mehrere Leistungseinstellungen anzupassen.
-
Bei einer Ausführungsform kann der Stromverwalter-Prozessor konfiguriert sein, um einen Niedrigenergiemodus zu verlassen. Der Stromverwalter-Prozessor kann den Niedrigenergiemodus verlassen, nachdem ein erster Zeitraum verstrichen ist, seit der Stromverwalter-Prozessor in den Niedrigenergiemodus eingetreten ist.
-
Bei einer weiteren Ausführungsform kann jede Monitorschaltung ferner konfiguriert sein, um einen Interrupt zu erzeugen. Der Stromverwalter-Prozessor kann ferner konfiguriert sein, um als Reaktion auf den Interrupt den Niedrigenergiemodus zu verlassen.
-
Figurenliste
-
Die folgende, detaillierte Beschreibung nimmt Bezug auf die begleitenden Zeichnungen, die nun kurz beschrieben werden.
- 1 stellt eine Ausführungsform einer integrierten Schaltung dar.
- 2 stellt eine Ausführungsform eines Stromverwalter-Prozessors dar.
- 3 stellt ein Flussdiagramm dar, das eine Ausführungsform eines Verfahrens zum Anpassen von Leistungseinstellungen eines Computersystems abbildet.
- 4 stellt ein Flussdiagramm dar, das eine Ausführungsform eines Verfahrens zum Betreiben eines Stromverwalter-Prozessors abbildet, der einen Regelkreis ausführt.
- 5 stellt ein Flussdiagramm dar, das eine Ausführungsform eines Verfahrens zum Deaktivieren eines schwellenwertbasierten Interrupts abbildet.
-
Während die Offenbarung verschiedenen Modifikationen und alternativen Formen unterliegen kann, sind in den Zeichnungen als Beispiele spezifische Ausführungsformen davon gezeigt und sind hierin detailliert beschrieben. Es sollte sich jedoch verstehen, dass die Zeichnungen und die detaillierte Beschreibung dazu nicht die Offenbarung auf die besondere dargestellte Form einschränken sollen, sondern dass sie im Gegenteil dazu beabsichtigt sind, alle Modifikationen, Äquivalente und Alternativen abzudecken, die in den Geist und Umfang der beigefügten Patentansprüche fallen. Die hierin verwendeten Überschriften dienen nur organisatorischen Zwecken und sollen nicht verwendet werden, um den Umfang der Beschreibung einzuschränken. Wie in dieser Anmeldung verwendet, wird das Wort „können“ im zulassenden Sinn verwendet (d. h. es bedeutet, dass eine Möglichkeit für etwas besteht) und nicht im obligatorischen Sinn (d. h. im Sinne von „müssen“). Gleichermaßen haben die Wörter „einschließen“, „einschließend“, „einschließlich“ und „schließt ein“ die Bedeutung von „einschließlich aber nicht beschränkt auf“.
-
Verschiedene Einheiten, Schaltungen oder andere Komponenten können als zum Durchführen einer oder mehrerer Aufgaben „konfiguriert“ beschrieben sein. In solchen Kontexten ist „konfiguriert, um zu“ oder „konfiguriert zum“ eine weit gefasste Nennung einer Struktur, die allgemein bedeutet „Schaltlogik besitzend, die“ die Aufgabe oder Aufgaben während des Betriebs durchführt. Insofern kann die Einheit/Schaltung/Komponente konfiguriert sein, um die Aufgabe durchzuführen, auch wenn die Einheit/Schaltung/Komponente derzeit nicht eingeschaltet ist. Im Allgemeinen kann die Schaltlogik, welche die Struktur entsprechend „konfiguriert, um zu“ oder „konfiguriert zum“ bildet, Hardware-Schaltungen einschließen. Gleichermaßen können verschiedene Einheiten/Schaltungen/Komponenten der Zweckmäßigkeit wegen in der Beschreibung so beschrieben sein, dass sie eine Aufgabe oder Aufgaben durchführen. Solche Beschreibungen sollten so interpretiert werden, als würden sie den Ausdruck „konfiguriert, um zu“ oder „konfiguriert zum“ enthalten.
-
DETAILLIERTE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
-
In Computersystemen kann die Ausführung unterschiedlicher Anwendungen zu unterschiedlichen Aktivitätsniveaus für verschiedene Funktionseinheiten im Computersystem führen. Zum Beispiel können bei verschiedenen Anwendungen mit Videobezug ein Grafikprozessor (Graphics Processing Unit (GPU)) und sein zugeordneter Speicher ein hohes Aktivitätsniveau aufweisen, während andere Funktionseinheiten wie z. B. eine Eingabe/Ausgabe-Einheit (E/A-Einheit) minimale Aktivität aufweisen können. In derartigen Fällen kann die Leistung der aktiven Komponenten des Computersystems angepasst werden, um zusätzliche Verarbeitungsgeschwindigkeit oder Ähnliches bereitzustellen. Derartige Anpassungen können ein Erhöhen oder Verringern eines Spannungspegels einer Stromversorgung für aktive Funktionseinheiten einbeziehen. In einigen Fällen kann eine Änderung einer Frequenz eines Taktsignals die Änderungen des Spannungspegels der Stromversorgung begleiten oder an deren Stelle treten.
-
Anpassungen der Leistung einer Funktionseinheit in einem Computersystem können auf Ereignissen in der Funktionseinheit basieren, wie beispielsweise Änderungen der Temperatur, eines Aktivitätsniveaus in der Funktionseinheit oder einer beliebigen anderen geeigneten Metrik. Ein Hauptprozessor oder eine CPU kann, wie durch ein Betriebssystem angewiesen, derartige Ereignisse nachverfolgen und die Systemleistung entsprechend anpassen. Der Hauptprozessor kann jedoch andere Aufgaben zu bewältigen haben, was zu einer Verzögerung beim Reagieren auf die erwähnten Ereignisse führt sowie zu einer Änderung der verbrauchten Energie beim Umschalten von Verarbeitungskontexten als Reaktion auf das Ereignis. Die in den Zeichnungen dargestellten und weiter unten beschriebenen Ausführungsformen können Techniken bereitstellen, um Leistungseinstellungen in einem Computersystem schnell anzupassen, während zusätzlicher Energieverbrauch begrenzt wird.
-
Ein Blockdiagramm einer integrierten Schaltung ist in 1 wiedergegeben. Bei der dargestellten Ausführungsform schließt die integrierte Schaltung 100 einen durch einen internen Bus 105 mit einer Speichereinheit 102 und einer Analog-/Mischsignaleinheit 103 und einem E/A-Block 104 gekoppelten Prozessor 101 ein (hierin als eine „Schaltstruktur“ bezeichnet). Die integrierte Schaltung 100 schließt weiter einen Stromverwalter-Prozessor 106, die Speichereinheit 102 und Monitorschaltungen 107a bis c ein. Bei verschiedenen Ausführungsformen kann die integrierte Schaltung 100 zur Verwendung in einem Desktop-Computer, in einem Server oder in einer mobilen Computeranwendung, wie z. B. in einem Tablet oder einem Laptop-Computer konfiguriert sein.
-
Der Prozessor 101 kann bei verschiedenen Ausführungsformen einen Prozessor für allgemeine Anwendungen darstellen, der Rechenvorgänge durchführt. Zum Beispiel kann der Prozessor 101 eine Zentraleinheit (central processing unit (CPU)) sein wie beispielsweise ein Mikroprozessor, eine Mikrosteuereinheit (microcontroller), eine anwendungsspezifische integrierte Schaltung (application-specific integrated circuit (ASIC)) oder ein feldprogrammierbares Gatter-Array (field-programmable gate array (FPGA)). Bei einigen Ausführungsformen kann der Prozessor 101 Programmanweisungen ausführen, die in der Speichereinheit 102 gespeichert sein können, um verschiedene Rechenaufgaben durchzuführen. Der Prozessor 101 kann bei einigen Ausführungsformen primäre Rechenaufgaben durchführen, wie z. B. ein Ausführen von Betriebssystemanweisungen für die integrierte Schaltung 100.
-
Die Speichereinheit 102 kann einen beliebigen geeigneten Speichertyp einschließen, wie zum Beispiel einen dynamischen Speicher mit wahlfreiem Zugriff (Dynamic Random Access Memory (DRAM)), einen statischen Speicher mit wahlfreiem Zugriff (Static Random Access Memory (SRAM)), einen Nur-Lese-Speicher (Read-only Memory (ROM)), elektrisch löschbaren Nur-Lese-Speicher (Electrically Erasable Programmable Read-only Memory (EEPROM)) oder einen Flash-Speicher. Es wird angemerkt, dass bei der in 1 dargestellten Ausführungsform einer integrierten Schaltung eine einzelne Speichereinheit abgebildet ist. Bei anderen Ausführungsformen kann eine beliebige geeignete Anzahl von Speicherblöcken verwendet werden.
-
Die Speichereinheit 102 kann verschiedene Speicherblöcke einschließen, wie beispielsweise Decoder, Datenspeicherzellen und dergleichen. Die Speichereinheit 102 kann auch die Monitorschaltung 107a einschließen. Bei verschiedenen Ausführungsformen kann die Monitorschaltung 107 konfiguriert sein, um einen der Speichereinheit 102 zugeordneten Betriebsparameter zu überwachen oder nachzuverfolgen. Zum Beispiel kann die Monitorschaltung 107a eine Temperatur der integrierten Schaltung 100 an einer Stelle nahe der Speichereinheit 102 nachverfolgen. Die Monitorschaltung 107a kann bei anderen Ausführungsformen Zähler oder andere geeignete Zustandsmaschinen einschließen, die fähig sind, Zugriffe auf die und Reaktionen von der Speichereinheit 102 nachzuverfolgen. Bei einigen Ausführungsformen kann die Monitorschaltung 107a konfiguriert sein, um ein Ereignis zu erfassen, d. h. eine spezifische Bedingung mit Bezug auf den Monitor-Betriebsparameter, und um als Reaktion auf das Ereignis einen Interrupt für den Stromverwalter-Prozessor 106 zu erzeugen. Die Monitorschaltung 107a kann auch konfiguriert sein, um Daten mit Bezug auf den überwachten Betriebsparameter zu speichern und die Daten zum Stromverwalter-Prozessor 106 zu senden. Es wird angemerkt, dass, obwohl in 1 eine einzelne Monitorschaltung dargestellt ist, bei anderen Ausführungsformen eine beliebige geeignete Anzahl von Monitorschaltungen verwendet werden kann.
-
Monitorschaltungen, wie beispielsweise die hierin beschriebenen, können auch konfiguriert sein, um abhängig von Betriebsbedingungen in einem Computersystem in einen Abschaltzustand oder einen Zustand mit reduzierter Stromzufuhr einzutreten.
-
Bei einigen Ausführungsformen kann ein Betriebszustand einer bestimmten Monitorschaltung von Daten abhängen, die von einer oder mehreren anderen Monitorschaltungen empfangen werden. Beispielsweise kann eine zum Erfassen von Variationen eines Spannungspegels einer Stromversorgung konfigurierte Monitorschaltung für bestimmte Temperaturbereiche deaktiviert sein, die von einer anderen Monitorschaltung gemessen werden. Bei verschiedenen Ausführungsformen kann ein Stromverwalter-Prozessor, wie beispielsweise der weiter unten in Hinsicht auf 2 beschriebene, einen Betriebszustand mehrerer Monitorschaltungen steuern.
-
Die Analog-/Mischsignaleinheit 103 kann eine Vielfalt von Schaltungen einschließen, einschließlich zum Beispiel einen Kristalloszillator, eine Phasenregelschleife (phaselocked loop (PLL)), einen Analog-Digital-Wandler (analog-to-digital converter (ADC)) und einen Digital-Analog-Digital-Wandler (digital-to-analog converter (DAC)) (jeweils nicht dargestellt). Bei anderen Ausführungsformen kann die Analog-/Mischsignaleinheit 103 konfiguriert sein, um Stromverwaltungsaufgaben durchzuführen, unter Einschluss von chipinternen Stromversorgungen und Spannungsreglern. Der Analog-/Mischsignalblock 103 kann bei einigen Ausführungsformen auch Hochfrequenzschaltungen (HF-Schaltungen) einschließen, die zum Betrieb mit drahtlosen Netzwerken konfiguriert sein können. Die Analog-/Mischsignaleinheit 103 kann auch die Monitorschaltung 107b einschließen, die einige der oder die gesamte weiter oben in Hinsicht auf die Monitorschaltung 107a beschriebene Funktionalität einschließen kann.
-
Die E/A-Einheit 104 kann konfiguriert sein, um eine Datenübertragung zwischen der integrierten Schaltung 100 und einer oder mehreren Peripherievorrichtungen zu koordinieren. Derartige Peripherievorrichtungen können ohne Einschränkung Speichervorrichtungen einschließen (z. B. auf magnetischen oder optischen Medien basierende Datenspeichervorrichtungen, einschließlich Festplattenlaufwerken, Bandlaufwerken, CD-Laufwerken, DVD-Laufwerken usw.), Audio-Verarbeitungssubsysteme oder einen beliebigen anderen, geeigneten Typ von Peripherievorrichtungen. Bei einigen Ausführungsformen kann der E/A-Block 104 konfiguriert sein, um eine Version des Universal-Serial-Bus-Protokolls (USB-Protokolls) oder des IEEE-1394-(Firewire®)-Protokolls zu implementieren. Die E/A-Einheit 104 kann auch die Monitorschaltung 107c einschließen, die einige oder die gesamte weiter oben in Hinsicht auf die Monitorschaltung 107a beschriebene Funktionalität einschließen kann.
-
Der E/A-Block 104 kann auch konfiguriert sein, um die Datenübertragung zwischen der integrierten Schaltung 100 und einer oder mehreren Einrichtungen (z. B. anderen Computersystemen oder integrierten Schaltungen) zu koordinieren, die über ein Netzwerk mit der integrierten Schaltung 100 verbunden sind. Bei einer Ausführungsform kann die E/A-Einheit 104 konfiguriert sein, um die Datenverarbeitung durchzuführen, die zum Implementieren eines Ethernet-(IEEE 802.3)-Netzwerkstandards erforderlich ist, wie zum Beispiel Gigabit-Ethernet oder 10-Gigabit-Ethernet, obwohl berücksichtigt ist, dass ein beliebiger geeigneter Netzwerkstandard implementiert werden kann. Bei einigen Ausführungsformen kann die E/A-Einheit 104 konfiguriert sein, um mehrere diskrete Netzwerk-Schnittstellen-Ports zu implementieren.
-
Der Stromverwalter-Prozessor 106 kann bei verschiedenen Ausführungsformen einen Prozessor für allgemeine Anwendungen darstellen, der Rechenvorgänge durchführt. Zum Beispiel kann der Stromverwalter-Prozessor 106 ein Mikroprozessor, ein Mikrocontroller, eine anwendungsspezifische integrierte Schaltung (ASIC) oder ein feldprogrammierbares Gatter-Array (FPGA) sein. Wie weiter unten in Hinsicht auf 2 detaillierter beschrieben ist, kann der Stromverwalter-Prozessor 106 einen dedizierten Speicher einschließen. In einem oder mehreren Regelkreisen zur Ausführung durch den Stromverwalter-Prozessor 106 eingeschlossene Programmanweisungen können im dedizierten Speicher gespeichert sein. Durch Abrufen der Programmanweisungen aus dem dedizierten Speicher kann der Stromverwalter-Prozessor bei verschiedenen Ausführungsformen in der Lage sein, Interrupts mit minimaler Latenz abzuarbeiten und keine Systemressourcen zu verbrauchen, die von einem Betriebssystem oder von anderen Softwareanwendungen verwendet werden.
-
Bei einigen Ausführungsformen kann der Stromverwalter-Prozessor 106 eine Interrupt-Schnittstelle 108 einschließen, die konfiguriert ist, um Interrupts von einer oder mehreren Monitorschaltungen zu empfangen, wie zum Beispiel von den Monitorschaltungen 107a bis c. Die Interrupt-Schnittstelle 108 kann während Zeiträumen aktiv bleiben, wenn andere Abschnitte des Stromverwalter-Prozessors 106 in einem Niedrigenergiemodus sind. Beim Empfangen eines Interrupts kann der Stromverwalter-Prozessor den Niedrigenergiemodus verlassen, um die in den Regelkreisen eingeschlossenen Programmanweisungen auszuführen. Bei einigen Ausführungsformen kann der Stromverwalter-Prozessor durch Verwenden eines Niedrigenergiemodus, wenn er nicht verwendet wird, Anpassungen an Leistungseinstellungen der integrierten Schaltung 100 mit einer minimalen Auswirkung auf den gesamten Energieverbrauch der integrierten Schaltung durchführen.
-
Der Stromverwalter-Prozessor 106 kann bei einigen Ausführungsformen über den Kommunikationsbus 105 Daten von einer Monitorschaltung, wie z. B. der Monitorschaltung 107a empfangen. Unter bestimmten Bedingungen kann das Verwenden des Kommunikationsbusses 105 zur Übertragung von Daten der Monitorschaltung jedoch eine durch eine Monitorschaltung vorgenommene Messung stören. Beispielsweise würde eine Monitorschaltung, die konfiguriert ist, um Aktivität auf dem Kommunikationsbus 105 zu messen und die gemessene Aktivität über den Kommunikationsbus 105 weiterzuleiten, die Messung der Busaktivität durch Übertragen zusätzlicher Daten über den Kommunikationsbus 105 beeinflussen. In derartigen Fällen kann eine direkte Schnittstelle 109 verwendet werden, um es der Monitorschaltung 107a zu ermöglichen, Messergebnisse direkt zum Stromverwalter-Prozessor 106 zu melden.
-
Es wird angemerkt, dass der Stromverwalter-Prozessor 106, obwohl der Stromverwalter-Prozessor 106 als Teil der integrierten Schaltung 100 dargestellt ist, bei anderen Ausführungsformen auf einer separaten integrierten Schaltung in einem Computersystem eingeschlossen sein kann. Bei einigen Ausführungsformen kann der Stromverwalter-Prozessor 106 physisch nahe einer Stromverwaltereinheit (power manager unit (PMGR)) oder darin eingeschlossen angeordnet sein kann. Die PMGR kann in der integrierten Schaltung 100 oder bei anderen Ausführungsformen auf einer anderen integrierten Schaltung eingeschlossen sein. Durch Anordnen des Stromverwalter-Prozessors 106 nahe der PMGR ist der Aufwand, der einem Zugreifen auf Daten, Programmanweisungen und dergleichen zugeordnet ist, die im PMGR gespeichert sind.
-
In 2 ist eine Ausführungsform eines Stromverwalter-Prozessors dargestellt. Bei der dargestellten Ausführungsform schließt ein Stromverwalter-Prozessor 200 einen Prozessorkern 201 ein, der mit einem Speicher 202 verbunden ist. Bei verschiedenen Ausführungsformen kann der Stromverwalter-Prozessor 200 dem Stromverwalter-Prozessor 106, wie in 1 dargestellt, entsprechen, und er kann dafür bestimmt sein, Interrupts zu behandeln, um Stromverwaltungsvorgänge durchzuführen. Obwohl bei der in 2 dargestellten Ausführungsform nur eine einzige Instanz eines Speichers abgebildet ist, kann bei anderen Ausführungsformen eine beliebige geeignete Anzahl von Speichern verwendet werden.
-
Bei verschiedenen Ausführungsformen kann der Prozessorkern 201 ein Prozessor für allgemeine Anwendungen sein, der Programmanweisungen ausführt. Zum Beispiel kann der Prozessorkern 201 eine Zentraleinheit (CPU) sein, wie beispielsweise ein Mikroprozessor, ein Mikrocontroller, eine anwendungsspezifische integrierte Schaltung (ASIC) oder ein feldprogrammierbares Gatter-Array (FPGA). Der Prozessorkern 201 kann bei verschiedenen Ausführungsformen durch einen internen Bus oder ein anderes geeignetes Kommunikationsnetzwerk mit anderen Funktionseinheiten, wie beispielsweise mit dem E/A-Block 104, gekoppelt sein, wie z. B. in 1 dargestellt. Bei anderen Ausführungsformen kann der Prozessorkern über eine direkte Schnittstelle mit Funktionseinheiten gekoppelt sein. Beispielsweise kann der Prozessorkern 201 durch entsprechende direkte, dedizierte Schnittstellen mit einer Stromverwaltungseinheit (power management unit (PMU)) und einer Takterzeugungsschaltlogik gekoppelt sein.
-
Bei einigen Ausführungsformen ist unter Umständen nur ein kleiner Abschnitt des Prozessorkerns 201 aktiv, und bei Erfassung eines Interrupts von einer Monitorschaltung kommend können alle Abschnitte des Prozessorkerns 201 aktiv werden, um Programmanweisungen auszuführen. Der Prozessorkern 201 kann bei anderen Ausführungsformen zu verschiedenen Zeitpunkten zu einem aktiven Zustand zurückkehren, um von unterschiedlichen Monitorschaltungen empfangene Daten zu überwachen. Zum Beispiel kann der Prozessorkern 201 alle 10 ms aktiv werden, um Daten von einer Monitorschaltung zu empfangen, die konfiguriert ist, um eine Temperatur zu messen, und anschließend zu einem Niedrigenergiemodus zurückkehren. Bei anderen Ausführungsformen kann der Prozessorkern 201 mehrere Timer einschließen (nicht gezeigt), die jeweils konfiguriert sind, um den Ablauf verschiedener Zeiträume zum Überwachen unterschiedlicher Ereignisse anzugeben.
-
Der Speicher 202 kann bei verschiedenen Ausführungsformen einen beliebigen geeigneten Speichertyp einschließen, wie beispielsweise einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM), einen statischen Speicher mit wahlfreiem Zugriff (SRAM) oder einen beliebigen anderen, geeigneten Speichertyp. Bei einigen Ausführungsformen kann der Speicher 202 mit einer anderen separaten Stromversorgung als der des Prozessorkerns 201 gekoppelt sein. Durch die Verwendung einer separaten Stromversorgung für den Speicher 202 können Daten, wie z. B. Programmanweisungen, im Speicher 202 erhalten bleiben, selbst wenn die Energiezufuhr vom Prozessorkern 202 entfernt worden ist. Der Speicher 202 kann bei einigen Ausführungsformen einen Erhaltungsmodus verwenden, in dem Strom nur den Speicherzellen im Speicher 202 zugeführt wird, um die gespeicherten Daten zu erhalten, während der Stromverbrauch durch Energieverlust in peripheren Schaltungen des Speichers 202 reduziert wird.
-
Während des Betriebs kann der Prozessorkern 201 im Speicher 202 gespeicherte Programmanweisungen ausführen. Derartige Programmanweisungen können Anweisungen einschließen, um Daten von einer oder mehreren Monitorschaltungen abzurufen (auch als „Telemetrie“ bezeichnet), wie beispielsweise von der Monitorschaltung 107, wie in 1 dargestellt. Es wird angemerkt, dass eine oder mehrere Monitorschaltungen über eine E/A-Schnittstelle Telemetrie von einem anderen Chip in einem Computersystem bereitstellen können, wie z. B. in einer Stromverwaltungseinheit (PMU). Die E/A-Schnittstelle kann bei verschiedenen Ausführungsformen eine beliebige, geeignete Schnittstelle einschließen, wie beispielsweise I2C, UART und dergleichen. Die Daten können in regelmäßigen Intervallen oder als Reaktion auf ein Empfangen eines Interrupts von einer gegebenen Monitorschaltung kommend abgerufen werden. Bei einigen Ausführungsformen können die abgerufenen Daten zur weiteren Verarbeitung oder Analyse im Speicher 202 gespeichert werden.
-
Bei verschiedenen Ausführungsformen können die im Speicher 202 gespeicherten Programmanweisungen auch Anweisungen einschließen, um von einer oder mehreren Monitorschaltungen kommend empfangene Daten nachzuverfolgen. Die Programmanweisungen können bei einigen Ausführungsformen separate Anweisungssätze einschließen (auch als „Schleifen“ oder „Regelkreise“ bezeichnet), die durch den Prozessorkern 201 wiederholt ausgeführt werden können, um von einer gegebenen Monitorschaltung kommend empfangene Daten zu analysieren. Derartige Schleifen können auch Anweisungen einschließen, die verschiedene Spannungs- und Frequenzeinstellungen anpassen (üblicherweise als „Leistungseinstellungen“ bezeichnet), die die Betriebsfähigkeit einer gegebenen Funktionseinheit in einem Computersystem beeinflussen. Zum Beispiel kann mit Bezug auf 1 ein Schleifenüberwachungsprozessor 101 erfassen, dass der Prozessor 101 wiederholt auf den Speicher 102 warten muss. In derartigen Fällen kann der Prozessorkern 201 als Reaktion auf in der Schleife eingeschlossene Anweisungen ein Signal zu einer Energieverwaltungs- und Takteinheit senden, um eine Spannung der Stromversorgung zum Speicher zu erhöhen, oder um eine Frequenz eines dem Speicher 102 bereitgestellten Taktsignals zu erhöhen, oder um beide zu erhöhen, wodurch die Leistung des Speichers 102 gesteigert wird.
-
Der Prozessorkern 201 kann bei einigen Ausführungsformen unter Verwendung empfangener Telemetrie den Speicherdurchsatz, die Speicherlatenz und die Aktivität der Schaltstruktur überwachen. Die vorstehend erwähnten Regelkreise können einen Frequenz- oder Leistungspegel von Schaltstruktur oder Speicher anpassen, um die Latenz zu reduzieren, den Speicherdurchsatz zu erhöhen oder Konkurrenz in der Schaltstruktur zu reduzieren.
-
Es wird angemerkt, dass die in 2 dargestellte Ausführungsform lediglich ein Beispiel ist. Bei anderen Ausführungsformen können die im Speicher 202 gespeicherten Programmanweisungen aktualisiert oder als Reaktion auf Variationen des Betriebsmodus, der physischen Betriebsbedingungen des Systems oder dergleichen geändert werden.
-
Unter Hinwendung zu 3 ist ein Flussdiagramm dargestellt, das eine Ausführungsform eines Verfahrens zum Anpassen der Leistung eines Systems abbildet. Bezugnehmend sowohl auf 1 insgesamt als auch auf das Flussdiagramm aus 3 beginnt das Verfahren in Block 301.
-
Die Monitorschaltung 107a kann dann einen Betriebsparameter der Speichereinheit 102 überwachen (Block 302). Bei einigen Ausführungsformen kann die Monitorschaltung 107a einen Spannungspegel einer Stromversorgung, eine Temperatur, eine Anzahl von Zugriffen auf die Speichereinheit 102 oder eine beliebige andere, geeignete Metrik überwachen. Es wird angemerkt, dass, obwohl in 1 nur eine einzelne Monitorschaltung dargestellt ist, andere Ausführungsformen mehrere parallel arbeitende Monitorschaltungen einschließen können. Ferner kann eine Funktionseinheit mehrere Monitorschaltungen einschließen, die jeweils konfiguriert sein können, um einen anderen Betriebsparameter in der Funktionseinheit zu überwachen. Bei einigen Ausführungsformen können mehrere Monitorschaltungen mit dem Bus 105 gekoppelt sein, um unterschiedliche Transaktionen oder Anzahlen einer spezifischen Transaktion auf dem Bus 105 nachzuverfolgen.
-
Das Verfahren kann dann davon abhängen, ob ein Ereignis eintritt (Block 303). Die Monitorschaltung 107a kann ein Ereignis basierend auf dem Überwachen des Betriebsparameters erfassen. Zum Beispiel kann ein Ereignis bei einigen Ausführungsformen eine Änderung der Temperatur, der Betriebsspannung oder dergleichen einschließen. Alternativ dazu kann das Ereignis einen besonderen Typ des Zugriffs auf eine Funktionseinheit einschließen, z. B. einen Schreibzugriff, oder wann eine Anzahl von Zugriffen auf die Funktionseinheit einen vorbestimmten Wert überschreitet. Bei einigen Ausführungsformen kann das Ereignis einen Zugriff auf die Funktionseinheit von eine anderen spezifischen Funktionseinheit in einem Computersystem einschließen, wie zum Beispiel die integrierte Schaltung 100.
-
Wenn kein Ereignis erfasst wird, überwacht die Monitorschaltung 107a weiterhin den Betriebsparameter wie weiter oben in Hinsicht auf Block 302 beschrieben. Falls ein Ereignis erfasst wird, kann das Verfahren vom Energiezustand des Stromverwalter-Prozessors 106 abhängen (Block 304). Wenn der Stromverwalter-Prozessor in einem ausgeschalteten Zustand oder in einem Zustand mit reduzierter Energiezufuhr ist, kann die Monitorschaltung 107a einen Interrupt setzen (Block 305). Der Interrupt kann über den Bus 105 zum Stromverwalter-Prozessor 106 gesendet werden. Bei anderen Ausführungsformen kann die Monitorschaltung 107a eine direkte Verbindung (nicht gezeigt) zum Stromverwalter-Prozessor 106 haben und so ein direktes Senden des Interrupts zum Stromverwalter-Prozessor 106 ermöglichen. Falls der Stromverwalter-Prozessor 106 in einem aktiven Modus arbeitet, kann das Verfahren wie weiter unten beschrieben ab Block 307 fortfahren.
-
Als Reaktion auf den gesetzten Interrupt kann der Stromverwalter-Prozessor 106 einen Niedrigenergiemodus (auch als „Ruhemodus“ bezeichnet) verlassen und zu einem aktiven Modus zurückkehren (Block 306). Im Niedrigenergiemodus kann ein Spannungspegel einer Stromversorgung für Abschnitte eines Stromverwalter-Prozessors 106 bei Massepotenzial liegen, wodurch der Verbrauch von Verlustleistung reduziert wird. Zusätzlich oder alternativ dazu kann ein Taktsignal zu Abschnitten des Stromverwalter-Prozessors 106 gestoppt werden (üblicherweise als „Clock-Gating“ bezeichnet), wodurch die dynamische Energie reduziert wird. Im Niedrigenergiemodus kann ein Abschnitt des Stromverwalter-Prozessors 106 in Betrieb bleiben, um das Auftreten von Interrupts oder anderen systembezogenen Ereignissen zu erfassen. Bei Erfassung eines Interrupts kann der aktive Abschnitt des Stromverwalter-Prozessors 106 die inaktiven Abschnitte des Stromverwalter-Prozessors 106 reaktivieren und dadurch die Wiederaufnahme von Verarbeitungsaktivitäten ermöglichen. Bei verschiedenen Ausführungsformen kann die zum Überwachen der Systemleistung und zum Anpassen der Leistungseinstellungen verbrauchte Energie durch Verwenden eines Niedrigenergiemodus für den Stromverwalter-Prozessor 106 minimiert werden.
-
Der Stromverwalter-Prozessor 106 kann anschließend einen Regelkreis ausführen (Block 307), um die Leistungseinstellungen anzupassen. Der Regelkreis kann auf das Ereignis bezogen sein, das den Interrupt auslöst, und er kann eine oder mehrere Programmanweisungen einschließen. Derartige Programmanweisungen können in einem dedizierten Speicher für den Stromverwalter-Prozessor 106 gespeichert sein, wie z. B. im Speicher 202 wie in 2 dargestellt. Der Stromverwalter-Prozessor 106 kann die Programmanweisungen vor der Ausführung aus dem dedizierten Speicher abrufen. Wie weiter unten in Hinsicht auf 4 detaillierter beschrieben, können die Programmanweisungen Anweisungen einschließen zum Abrufen von Daten von einer Monitorschaltung, zum Durchführen einer Analyse der abgerufenen Daten und zum Anpassen der Leistungseinstellung des Systems, wie z. B. eines Spannungspegels einer Stromversorgung und/oder einer Frequenz eines Taktsignals einer gegebenen Funktionseinheit abhängig von den Resultaten der Analyse. Bei einigen Ausführungsformen können die Programmanweisungen Anweisungen einschließen zum Speichern von Resultaten der Analyse im dedizierten Speicher.
-
Nach dem Abschließen des Regelkreises kann der Stromverwalter-Prozessor 106 anschließend in den Niedrigenergiemodus zurückkehren (Block 308). Es wird angemerkt, dass der Stromverwalter-Prozessor 106 bei einigen Ausführungsformen in einem aktiven Zustand verbleiben kann. Wie weiter oben beschrieben, kann ein Taktsignal zu Abschnitten des Stromverwalter-Prozessors 106 gattergesteuert werden, oder ein Spannungspegel einer mit Abschnitten des Stromverwalter-Prozessors 106 gekoppelten Stromversorgung kann auf Massepotenzial gesetzt werden oder auf einen beliebigen anderen Spannungspegel, der sich zum Reduzieren der Verlustleistung im Stromverwalter-Prozessor 106 eignet. Ein Abschnitt des Stromverwalter-Prozessors 106, der mit der Interrupt-Behandlung in Zusammenhang steht, kann bei verschiedenen Ausführungsformen in einem aktiven Zustand verbleiben. Bei einigen Ausführungsformen kann eine letzte Anweisung im Regelkreis dem Stromverwalter-Prozessor 106 signalisieren, in den Niedrigenergiemodus einzutreten. Nachdem der Stromverwalter-Prozessor 106 in den Niedrigenergiemodus eingetreten ist, kann das Verfahren in Block 309 enden.
-
Es wird angemerkt, dass die in 3 dargestellte Ausführungsform des Verfahrens lediglich ein Beispiel ist. Bei anderen Ausführungsformen sind unterschiedliche Vorgänge und unterschiedliche Reihenfolgen des Betriebs möglich und berücksichtigt.
-
Ein Flussdiagramm, das eine Ausführungsform eines Verfahrens zum Ausführen eines Regelkreises durch einen Stromverwalter-Prozessor abbildet, ist in 4 dargestellt. Bei einigen Ausführungsformen kann die Ausführungsform des im Flussdiagramm aus 4 abgebildeten Verfahrens dem Vorgang entsprechen, der in Block 306 des in 3 dargestellten Flussdiagramms beschrieben ist. Bezugnehmend auf 2 insgesamt und das Flussdiagramm aus 4 beginnt das Verfahren in Block 401.
-
Daten können dann von einer Monitorschaltung kommend empfangen werden (Block 402). Bei einigen Ausführungsformen können die Daten über einen internen Kommunikationsbus abgerufen werden, wie z. B. den Bus 105 wie in 1 dargestellt, während die Daten bei anderen Ausführungsformen beispielsweise über eine E/A-Schnittstelle, wie zum Beispiel den E/A-Block 104 wie in 1 dargestellt, von einer chipexternen Stelle abgerufen werden können. Die Daten können bei anderen Ausführungsformen über eine direkte Verbindung zwischen dem Prozessorkern 201 und einer gegebenen Monitorschaltung abgerufen werden.
-
Die empfangenen Daten können anschließend verarbeitet werden (Block 403). Bei einigen Ausführungsformen können zuvor empfangene Daten aus dem Speicher 202 abgerufen werden, und eine statistische Analyse wie z. B. ein fortlaufender Durchschnittswert kann durchgeführt werden. Eine Proportional-Integral-Differential(PID)-Schleife oder eine andere geeignete Analyse kann bei verschiedenen Ausführungsformen durchgeführt werden. Ergebnisse aus der Analyse der abgerufenen Daten können bei verschiedenen Ausführungsformen zur späteren Verwendung oder zur weiteren Analyse zum Bestimmen von Trends und dergleichen im Speicher 202 gespeichert werden.
-
Das Verfahren kann vom Wert der verarbeiteten Daten abhängen (Block 404). Bei einigen Ausführungsformen können die Daten mit einem vorbestimmten Schwellenwert verglichen werden. In anderen Fällen kann ein Trend mehrerer Datenpunkte über einem vorbestimmten Schwellenwert weitere Vorgänge auslösen. Die oben erwähnten Schwellenwerte können bei einigen Ausführungsformen abhängig von der Systemkonfiguration oder anderen Betriebsparametern anpassbar oder programmierbar sein.
-
Wenn der verarbeitete Datenwert akzeptabel ist, kann der Regelkreis die Ausführung beenden, und das Verfahren kann in Block 406 enden. Der Prozessorkern 201 kann anschließend in einen Niedrigenergiemodus, wie weiter oben in Hinsicht auf 3 beschrieben, zurückkehren. Falls der Wert der verarbeiteten Daten nicht akzeptabel ist, d. h., falls der Wert größer ist als ein vorbestimmter Schwellenwert, können die eine oder mehreren Leistungseinstellungen angepasst werden (Block 405). Bei einigen Ausführungsformen kann der Prozessorkern 201 Anweisungen zu einer Leistungs- und Takt-Verwaltungseinheit senden, um einen Spannungspegel einer Stromversorgung und/oder eine Frequenz eines Taktsignals einer gegebenen Funktionseinheit im Computersystem zu ändern. Nachdem die Leistungseinstellungen angepasst worden sind, kann das Verfahren in Block 406 entsprechend der Beschreibung weiter oben enden.
-
Obwohl bei der in 4 abgebildeten Ausführungsform die Ausführung eines einzelnen Regelkreises dargestellt ist, kann ein Stromverwalter-Prozessor eine beliebige geeignete Anzahl von Regelkreisen ausführen. Bei einigen Ausführungsformen kann ein separater Regelkreis Daten von zahlreichen Monitorschaltungen abrufen, und von jeder Monitorschaltung kommend empfangene Daten können von einem entsprechenden Regelkreis verarbeitet werden. Mehrere Regelkreise, die jeweils für das Abrufen und Verarbeiten von Daten von einer entsprechenden Monitorschaltung zuständig sind, können bei anderen Ausführungsformen verwendet werden.
-
In 5 ist ein Flussdiagramm dargestellt, das eine Ausführungsform eines Verfahrens für schwellenwertbasierte Interrupts abbildet. Bezugnehmend auf 1 insgesamt und das Flussdiagramm aus 5 beginnt das Verfahren in Block 501.
-
Die Monitorschaltung 107a kann dann einen Betriebsparameter der Speichereinheit 102 überwachen (Block 502). Bei einigen Ausführungsformen kann die Monitorschaltung 107a einen Spannungspegel einer Stromversorgung, eine Temperatur, eine Anzahl von Zugriffen auf die Speichereinheit 102 oder eine beliebige andere geeignete Metrik überwachen. Es wird angemerkt, dass, obwohl in 1 nur eine einzelne Monitorschaltung gezeigt ist, andere Ausführungsformen mehrere parallel arbeitende Monitorschaltungen einschließen können. Ferner kann eine Funktionseinheit mehrere Monitorschaltungen einschließen, die jeweils konfiguriert sein können, um einen anderen Betriebsparameter in der Funktionseinheit zu überwachen. Bei einigen Ausführungsformen können mehrere Monitorschaltungen mit dem Bus 105 gekoppelt sein, um unterschiedliche Transaktionen oder Anzahlen einer spezifischen Transaktion auf dem Bus 105 nachzuverfolgen.
-
Das Verfahren kann dann davon abhängen, ob ein Ereignis eintritt (Block 503). Die Monitorschaltung 107a kann ein Ereignis basierend auf dem Überwachen des Betriebsparameters erfassen. Zum Beispiel kann ein Ereignis bei einigen Ausführungsformen eine Änderung der Temperatur, der Betriebsspannung oder Ähnliches einschließen. Alternativ dazu kann das Ereignis einen besonderen Typ des Zugriffs auf eine Funktionseinheit einschließen, z. B. einen Schreibzugriff oder wann eine Anzahl von Zugriffen auf die Funktionseinheit einen vorbestimmten Schwellenwert überschreitet. Bei einigen Ausführungsformen kann das Ereignis einen Zugriff auf die Funktionseinheit von einer anderen spezifischen Funktionseinheit in einem Computersystem einschließen, wie zum Beispiel die integrierte Schaltung 100.
-
Wenn kein Ereignis erfasst wird, überwacht die Monitorschaltung 107a weiterhin den Betriebsparameter wie weiter oben in Hinsicht auf Block 502 beschrieben. Falls ein Ereignis erfasst wird, kann die Monitorschaltung 107a anschließend einen Interrupt setzen (Block 504,). Der Interrupt kann durch den Bus 105 oder einen beliebigen anderen, geeigneten Kommunikationsbus zum Stromverwalter-Prozessor 106 gesendet werden.
-
Der Stromverwalter-Prozessor 106 kann dann einen Niedrigenergiemodus verlassen und zu einem aktiven Modus zurückkehren (Block 505). Bei einigen Ausführungsformen kann der aktive Abschnitt des Stromverwalter-Prozessors 106 nach der Erfassung eines Interrupts die inaktiven Abschnitte des Stromverwalter-Prozessors 106 reaktivieren und dadurch die Wiederaufnahme von Verarbeitungsaktivitäten ermöglichen. Der Interrupt kann bei einigen Ausführungsformen durch eine Monitorschaltung erzeugt werden, wie z. B. die Monitorschaltung 107a, oder durch einen im Stromverwalter-Prozessor 206 eingeschlossenen Timer. Bei verschiedenen Ausführungsformen kann die zum Überwachen der Systemleistung und zum Anpassen der Leistungseinstellungen verbrauchte Energie durch Verwenden eines Niedrigenergiemodus für den Stromverwalter-Prozessor 106 minimiert werden.
-
Nachdem der Stromverwalter-Prozessor 106 den Niedrigenergiemodus verlassen hat, kann das Überwachen von einem oder mehreren Ereignissen durchgeführt werden (Block 506). Bei verschiedenen Ausführungsformen kann der Stromverwalter-Prozessor 106 von einer oder mehreren Monitorschaltungen Telemetrie anfordern. Die Monitorschaltungen können Daten weiterleiten, die während eines Zeitraums erworben worden sind, in dem der Stromverwalter-Prozessor 106 im Niedrigenergiemodus gearbeitet hat. Bei einigen Ausführungsformen kann der Stromverwalter-Prozessor 106 die Telemetrie von Monitorschaltungen empfangen, die auf unterschiedlichen integrierten Schaltungen angeordnet sind.
-
Der Stromverwalter-Prozessor 106 kann anschließend einen Regelkreis ausführen (Block 507), um unter Verwendung von Ereignisdaten als Eingabe Leistungseinstellungen anzupassen. Der Regelkreis kann auf das Ereignis bezogen sein, das den Interrupt auslöst, und er kann eine oder mehrere Programmanweisungen einschließen. Derartige Programmanweisungen können in einem dedizierten Speicher für den Stromverwalter-Prozessor 106 gespeichert sein, wie z. B. im Speicher 202, wie in 2 dargestellt. Der Stromverwalter-Prozessor 106 kann die Programmanweisungen vor der Ausführung aus dem dedizierten Speicher abrufen.
-
Das Verfahren kann dann von einem Wert des zuvor erfassten Ereignisses abhängen (Block 508). Falls der Wert des Ereignisses größer als ein oder gleich einem Schwellenwert ist, kann der Stromverwalter-Prozessor 106 weitere Interrupts deaktivieren und eine oder mehrere Timer-Schaltungen aktivieren (Block 509). Jede Timer-Schaltung kann einen oder mehrere Zähler einschließen, und sie kann konfiguriert sein, um einen Ablauf eines vorbestimmten Zeitraums zu erfassen. Nachdem die Timer aktiviert worden sind, kann der Stromverwalter-Prozessor 106 für den vorbestimmten Zeitraum, der durch mindestens einen der Timer nachverfolgt wird, in den Niedrigenergiemodus eintreten (Block 510). Nachdem der vorbestimmte Zeitraum verstrichen ist, kann das Verfahren wie weiter oben beschrieben ab Block 505 fortfahren.
-
Wenn der Wert des zuvor erfassten Ereignisses geringer ist als ein anderer Schwellenwert, kann der Stromverwalter-Prozessor 106 die Timer deaktivieren und den Schwellenwert-Interrupt-Vorgang reaktivieren (Block 511). Nachdem die Timer deaktiviert worden sind und der Schwellenwert-Interrupt-Vorgang reaktiviert worden ist, kann das Verfahren in Block 512 enden.
-
Es wird angemerkt, dass die Ausführungsform des in 5 dargestellten Verfahrens lediglich ein Beispiel ist. Bei anderen Ausführungsformen sind unterschiedliche Vorgänge und unterschiedliche Reihenfolgen des Betriebs möglich und berücksichtigt.
-
Auch wenn oben spezifische Ausführungsformen beschrieben wurden, ist nicht beabsichtigt, dass diese Ausführungsformen den Umfang der vorliegenden Offenbarung einschränken, selbst wenn nur eine einzelne Ausführungsform in Hinblick auf ein bestimmtes Merkmal beschrieben ist. Falls nicht anders angegeben, sind die Beispiele der in der Offenbarung bereitgestellten Merkmale veranschaulichend und nicht einschränkend beabsichtigt. Die obige Beschreibung soll solche Alternativen, Änderungen und Äquivalente umfassen, die den Fachmann, dem diese Offenbarung zugutekommt, offensichtlich sind.
-
Der Umfang der vorliegenden Offenbarung schließt jedes hierin (sowohl explizit als auch implizit) offenbarte Merkmal oder jede hierin (sowohl explizit als auch implizit) offenbarte Kombination von Merkmalen oder jede Verallgemeinerung davon ein, ungeachtet der Tatsache, ob es oder sie eines der oder alle hierin angesprochenen Probleme abschwächt. Entsprechend können neue Ansprüche während der Verfolgung dieser Anmeldung (oder eine Anmeldung, die die Priorität davon beansprucht) auf eine beliebige Kombination von Merkmalen formuliert werden. Insbesondere können mit Bezug auf die angehängten Ansprüche Merkmale von abhängigen Ansprüchen mit denen der unabhängigen Ansprüche kombiniert werden und Merkmale der jeweiligen unabhängigen Ansprüche können in jeder geeigneten Art und nicht nur in den in den angehängten Ansprüchen aufgeführten spezifischen Kombinationen kombiniert werden.