Freigeben über


Beispiele, Anforderungen und Diagnosen

In diesem Thema werden Beispiele für Wärmeverwaltungsprobleme vorgestellt und auch Anforderungen und Diagnosemethoden erläutert.

Beispiele

In den folgenden Beispielen wird erläutert, wie typische Wärmeverwaltungsprobleme behandelt werden.

Hauttemperatursensor

Die Überwachung der Hauttemperatur ist wichtig, um sicherzustellen, dass die Benutzer*innen jederzeit geschützt sind. Wenn die Temperatur auf der Haut für einen sicheren Betrieb zu hoch ist, sollte das System sofortige Maßnahmen ergreifen, um das System herunterzufahren. Diese Temperatursensoren können auch als Eingaben für Thermozonen dienen, um Geräte zu drosseln, die zu den Messwerten beitragen.

Das folgende Blockdiagramm zeigt ein Beispielsystemlayout mit drei Geräten und zwei Thermozonen.

Systemboardlayout mit mehreren Wärmesensoren und -zonen

In diesem Beispiel werden Temperatursensor 1 (TS1) und Temperatursensor 2 (TS2) an strategisch wichtigen Stellen platziert, an denen die Geräte am meisten zur Wärme auf der Haut beitragen. Die Geräte 1, 2 und 3 können über einen einzelnen Temperatursensor auf jedem Gerät verfügen. Diese Gerätesensoren dienen vor allem dazu, die einzelnen Geräte zu drosseln. In der Regel soll der Hautsensor die Temperatur auf der Oberfläche des Geräts messen, die sich aus der Wärme von mehreren Geräten im System ergibt. Auch wenn jedes Gerät möglicherweise mehr Wärme erzeugt, als von diesen Temperatursensoren erkannt werden kann, sammelt sich die kombinierte Wärmeproduktion dieser Geräte an diesen Sensorstandorten.

TS1 wird zwischen Gerät 2 und Gerät 3 platziert. Daher steuert die Thermozone mit TS1 als Eingabe Gerät 2 und Gerät 3. Wenn TS1 heiß wird, drosselt die Thermozone die Geräte 2 und 3. Entsprechend drosselt die Thermozone alle drei Geräte, wenn TS2 heiß wird.

In diesem Beispiel werden die Sensoren gleich weit entfernt von den Geräten platziert, die sie überwachen. TS1 wird zwischen Gerät 2 und Gerät 3 platziert, und TS2 wird im selben Abstand zu den Geräten 1, 2 und 3 platziert. Wenn jedes Gerät die Wärme auf die gleiche Weise radial ableitet, tragen sie alle gleichmäßig zum Temperaturmesswert am Sensor bei.

Graduelle Wärmedrosselung

Mit verschiedenen Wärmekonstanten (_TC1 und _TC2) hat der Anteil der passiven Drosselung einer Thermozone bestimmte Merkmale: Stärke der Kurvenänderung und Geschwindigkeit der Zonendrosselung, um den Schwellenwert zu vermeiden. In einigen Fällen muss das Verhalten der Thermozone geändert werden. Wenn beispielsweise die Temperatur niedrig ist, kann der Prozentsatz der Drosselung weniger aggressiver sein. Wenn die Temperatur jedoch näher am Schwellenwert liegt, muss das Drosselungsverhalten möglicherweise viel aggressiver sein. In diesem Fall kann die graduelle Wärmedrosselung verwendet werden, um verschiedene Drosselungsverhalten auf mehrere Geräte anzuwenden. Es gibt zwei Möglichkeiten, die graduelle Wärmedrosselung zu implementieren:

  • Dynamisches Ändern der Konstanten für eine Thermozone zur Laufzeit oder
  • Verwenden von zwei Thermozonen mit unterschiedlichen Konstanten und Schwellenwerten

Ändern von Konstanten für Zonen

Für jede Thermozone kann Notify(thermal_zone, 0x81) verwendet werden, um die thermischen Konstanten jederzeit zu aktualisieren.

Zonen mit unterschiedlichen Schwellenwerten

Eine Thermozone kann nicht mehrere Wärmesensoren enthalten. Mehrere Thermozonen, die den gleichen Temperatursensor nutzen, werden jedoch häufig verwendet, um eine graduelle Wärmedrosselung zu implementieren. Eine Thermozone beginnt bei niedrigen Temperaturen mäßig mit der Drosselung der Leistung, während die andere Thermozone bei hohen Temperaturen beginnt, die Leistung aggressiv zu drosseln.

Im folgenden Blockdiagramm verwenden zwei Thermozonen, die dieselben Geräte verwalten, den gleichen Temperatursensor für die graduelle Wärmedrosselung. In diesem Beispiel wird der Temperatursensor in der Nähe des Akkuladegeräts und der Monitorhintergrundbeleuchtung platziert, damit er Eingaben für die Thermozonen bereitstellen kann, die diese beiden Geräte steuern.

Mehrere Thermozonen, die dieselben Geräte verwalten

Die beiden Thermozonen im obigen Diagramm können wie folgt definiert werden:

Thermal Zone 1 {     _PSV = 80C  Thermal Throttling  Devices:    Monitor Driver  Battery Driver } Thermal Zone 2 {   _PSV = 90C  Thermal Throttling  Devices:    Monitor Driver  Battery Driver }

Spannungsabhängige Drosselung

Wenn für den Akkutreiber eine Drosselung basierend auf Temperatur und elektrischem Strom erforderlich ist, reicht der ACPI-Algorithmus im Wärme-Manager nicht mehr aus, da er den Strom nicht berücksichtigen kann. Um diesen Algorithmus zu ersetzen, müssen Sie einen Richtlinientreiber bereitstellen, der einen benutzerdefinierten Algorithmus enthält, und diesen Treiber über dem Treiberstapel für die Thermozone laden. Dieser Richtlinientreiber nutzt sowohl den Temperatursensor als auch den Spannungssensor als Eingaben und wendet eine Wärmerichtlinie basierend auf einem benutzerdefinierten Algorithmus an. Beachten Sie, dass diese Wärmerichtlinie den Funktionen der Hardware in der Thermozone entsprechen muss. Die Richtlinie wird an den Wärme-Manager gesendet, der die Protokolle und die Thermozone aktualisiert. Die Thermozone sendet dann Anforderungen über die Kühlungsschnittstelle an den Akkutreiber.

Das folgende Blockdiagramm zeigt einen Richtlinientreiber, der sowohl die Temperatur als auch die Spannung eines Akkus steuert. Der Richtlinientreiber implementiert einen benutzerdefinierten Algorithmus anstelle des Wärme-Manager-Algorithmus. Im Gegensatz zum Algorithmus des Wärme-Managers berücksichtigt der benutzerdefinierte Algorithmus sowohl Temperatur als auch die Spannung.

Ein Richtlinientreiber ersetzt den Algorithmus des Wärme-Managers.

Anforderungen an die Wärmeverwaltung

Hardwareanforderungen

Die folgenden Aspekte sind für ein funktionierendes thermisches Hardwaredesign erforderlich:

  • Alle Systeme sollten anwendbare Branchenstandards (z. B. IEC 62368) für die Sicherheit von Verbraucherelektronik erfüllen.

  • Die Hardware muss ausfallsichere Temperaturschwellenwerte verfügen, bei denen das System heruntergefahren oder sein Start verhindert wird.

  • Die Sensorhardware muss auf +/- 2 oC genau sein.

  • Die Sensorhardware darf keinen Softwareabruf erfordern, um zu ermitteln, ob ein Temperaturschwellenwert überschritten wurde.

  • Während des Betriebs ist die Systemanzeigehelligkeit thermisch niemals auf weniger als 100 Nits begrenzt.

  • Die Akkuladung wird nicht gedrosselt, während eine der folgenden Bedingungen erfüllt ist:

    • Das System befindet sich im Ruhezustand und innerhalb eines Umgebungstemperaturbereichs unter 35 oC oder
    • Die Umgebungstemperatur liegt jederzeit unter 25 oC.

HCK-Testanforderungen für PCs mit modernem Standbymodus

Alle PCs mit modernem Standbymodus müssen bestimmte thermische Anforderungen erfüllen, die unabhängig von der Prozessorarchitektur und dem Formfaktor gelten. Diese Anforderungen werden im HCK getestet:

  • Alle PCs mit modernem Standbymodus müssen mindestens eine Thermozone aufweisen.
  • Jede Thermozone muss die tatsächliche Temperatur am Sensor übermitteln.
  • Für mindestens eine Thermozone muss eine kritische Temperatur definiert sein, bei der das Gerät heruntergefahren wird. Eine Ausnahme hievon gilt für das Intel Dynamic Platform and Thermal Framework (DPTF).
  • Alle PCs mit modernem Standbymodus mit Lüftern müssen die Lüfteraktivitäten für das Betriebssystem verfügbar machen.
  • Der Lüfter muss das Betriebssystem jederzeit über alle seine Aktivitäten benachrichtigen, einschließlich der Resilienz beim Ruhezustand im modernen Standbymodus. Derzeit lösen diese Benachrichtigungen keine Aktion des Betriebssystems aus. Diese Benachrichtigungen dienen hauptsächlich für die Diagnose und als Telemetriedaten. Lüfterbenachrichtigungen können mit vorhandenen Ablaufverfolgungstools integriert werden, einschließlich Windows Performance Analyzer. Systemdesigner*innen können diese Tools verwenden, um das Plattformdesign zu optimieren.
  • Alle PCs mit modernem Standbymodus mit Lüftern müssen den Lüfter im modernen Standbymodus ausgeschaltet lassen, wenn das System im Ruhezustand ist.
  • Der HCK-Test führt hierfür eine realistische Workload im modernen Standbymodus aus, die nicht dazu führen sollte, dass der Lüfter aktiviert wird. Während des Übergangs in den modernen Standbymodus kann der Lüfter ab dem Zeitpunkt, an dem die Anzeige deaktiviert wird, bis zu 30 Sekunden weiter laufen.

Weitere Informationen zu den HCK-Tests finden Sie unter Überprüfen von Thermozonen.

Führen Sie die folgenden Schritte aus, um die HCK-Tests auszuführen:

  • Geben Sie zunächst diesen Befehl ein, um den Schaltflächentreiber zu installieren:

    >>Button.exe -i

  • Geben Sie diesen Befehl ein, um alle thermischen Tests für einen PC mit einem Lüfter auszuführen:

    >>RunCheckTz.cmd all

  • Geben Sie diesen Befehl ein, um alle thermischen Tests für einen PC ohne Lüfter auszuführen:

    >>RunCheckTz.cmd nofan all

Lösungen für die Wärmeverwaltung

Das Windows-Framework für die Wärmeverwaltung basiert auf ACPI und ist die empfohlene Lösung zur Wärmeverwaltung für alle Systeme. Zu den wichtigsten Vorteilen gehören die Möglichkeit, thermische Probleme mit Posteingangstools einfach zu diagnostizieren, und die Möglichkeit, wertvolle Telemetriedaten zu sammeln.

Alternative Lösungen zum Windows-Framework für die Wärmeverwaltung sind jedoch zulässig, sofern die oben genannten Anforderungen erfüllt sind. Chip- und SOC-Anbieter verfügen möglicherweise über eigene proprietäre Wärmelösungen, die mit Windows kompatibel sind und vom Betriebssystem unterstützt werden, z. B. Implementierungen basierend auf dem Intel Dynamic Platform and Thermal Framework (DPTF) für x86-Prozessoren und PEP-Implementierungen auf der Arm-Architektur.

Diagnose

Um Systemdesigner*innen bei der Diagnose und Bewertung des Wärmeverhaltens eines Systems zu helfen, bietet Windows die folgenden Posteingangs- und eigenständigen Tools.

Ereignisprotokolle

Windows erfasst wichtige thermische Informationen in den Ereignisprotokollen. Diese Informationen können verwendet werden, um thermische Situationen auf jedem PC, auf dem Windows 8 oder höher ausgeführt wird, schnell einzugrenzen, ohne dass zusätzliche Ablaufverfolgungen oder Tools erforderlich sind. Die folgende Tabelle enthält die vollständige Liste.

Kanal `Source` id Ereignisbeschreibung
Windows-Protokolle\System Kernel-Power 125 Die enumerierte ACPI-Thermozone.

Windows protokolliert dieses Ereignis während des Startvorgangs für jede Thermozone.

Windows-Protokolle\System Kernel-Power 86 Das System wurde aufgrund eines kritischen thermischen Ereignisses heruntergefahren.

Nach dem Herunterfahren in einer kritischen Situation protokolliert Windows dieses Ereignis. Mithilfe dieses Ereignisses kann diagnostiziert werden, ob das Herunterfahren aufgrund eines kritischen thermischen Ereignisses erfolgt ist und durch welche Thermozone das Herunterfahren verursacht wurde.

Anwendungs- und Dienstprotokolle\Microsoft\Windows\Kernel-Power\Thermisch-Betriebsbereit Kernel-Power 114 Eine Thermozone hat eine passive Kühlung aktiviert oder deaktiviert.

Windows protokolliert dieses Ereignis, wenn die thermische Drosselung ausgelöst oder beendet wird. Mithilfe dieses Ereignisses kann überprüft werden, ob und in welchen Zonen eine thermische Drosselung erfolgt ist. Dies ist beim Eingrenzen von Leistungsproblemen hilfreich.

Kritische Ereignisbenachrichtigung

Im Fall Herunterfahrens oder Wechsels in den Ruhezustand aufgrund eines kritischen Ereignisses, das durch eine thermische Ausnahmesituation verursacht wurde, muss das Betriebssystem über das Ereignis benachrichtigt werden, damit dieses im Systemereignisprotokoll aufgezeichnet werden kann. Es gibt zwei Möglichkeiten, das Betriebssystem in einem solchen Fall zu benachrichtigen:

  • Verwenden Sie die ACPI-Methode _CRT oder _HOT für die Thermozone, um das kritische Wärmeereignis automatisch zu protokollieren. Es sind keine zusätzlichen Aktionen erforderlich, Sie müssen lediglich Werte für _CRT oder _HOT definieren.

  • Für alle anderen thermischen Lösungen kann der Treiber die folgende Wärmeereignisschnittstelle verwenden, die in der Headerdatei „Procpowr.h“ definiert ist:

    #define THERMAL_EVENT_VERSION 1 typedef struct _THERMAL_EVENT { ULONG Version; ULONG Size; ULONG Type; ULONG Temperature; ULONG TripPointTemperature; LPWSTR Initiator;  } THERMAL_EVENT, *PTHERMAL_EVENT;  #if (NTDDI_VERSION >= NTDDI_WINBLUE) DWORD PowerReportThermalEvent ( _In_ PTHERMAL_EVENT Event ); #endif
    

    Die PowerReportThermalEvent-Routine benachrichtigt das Betriebssystem über ein thermisches Ereignis, damit dieses im Systemereignisprotokoll aufgezeichnet werden kann. Vor dem Aufruf von PowerReportThermalEvent legt der Treiber die Elemente der THERMAL_EVENT-Struktur auf die folgenden Werte fest.

    Version

    THERMAL_EVENT_VERSION

    Größe

    sizeof(THERMAL_EVENT)

    Type

    Einer der THERMAL_EVENT_XXX-Werte aus „Ntpoapi.h“

    Temperature

    Die Temperatur (in Zehntel Grad Kelvin) am Sensor nach dem Überschreiten des Schwellenwerts (oder null, wenn unbekannt)

    TripPointTemperature

    Die Temperatur (in Zehntel Grad Kelvin) des Schwellenwerts (oder null, wenn unbekannt)

    Initiator

    Ein Zeiger auf eine mit NULL beendete, breite Zeichenzeichenfolge, die den Sensor angibt, dessen Schwellenwert überschritten wurde.

The following thermal event types are defined in the Ntpoapi.h header file:

```
// // Thermal event types // #define THERMAL_EVENT_SHUTDOWN     0 #define THERMAL_EVENT_HIBERNATE    1 #define THERMAL_EVENT_UNSPECIFIED  0xffffffff
```

Hardware platforms should use the thermal event interface only if thermal solutions other than Windows thermal management framework are used. This interface allows the operating system to gather information when a critical shutdown occurs due to thermal reasons.

Leistungsindikatoren

Leistungsindikatoren bieten Echtzeitinformationen zum thermischen Verhalten des Systems. Die folgenden drei Datenelemente werden für jede Thermozone abgerufen.

Thermozoneninformationen
  • Passiver Grenzwert (%): Der Prozentsatz der Drosselung. 100 % bedeutet, dass die Zone nicht gedrosselt wird.
  • Temperatur: Die Temperatur der Thermozone in Grad Kelvin.
  • Drosselungsgrund: Der Grund für die Drosselung einer Zone:

    • 0x0: Die Zone ist nicht gedrosselt.
    • 0x1: Die Zone ist aus thermischen Gründen gedrosselt.
    • 0x2: Die Zone ist gedrosselt, um den elektrischen Strom zu begrenzen.

Diese Informationen werden nur auf Anforderung abgerufen, z. B. durch den Windows-Systemmonitor oder das Befehlszeilentool typeperf.

Weitere allgemeine Informationen zu Leistungsindikatoren finden Sie unter Leistungsindikatoren.

Systemmonitor

Der Systemmonitor ist eine integrierte Anwendung zur Abfrage und Visualisierung von Informationen. Der Systemmonitor kann sehr nützlich sein, um thermische Bedingungen für Entwürfe zur Systemwärme zu vergleichen. Die folgenden beiden Beispielscreenshots zeigen den Systemmonitor in Aktion, während die Fishbowl-Demo in Internet Explorer ausgeführt wird. Im ersten Screenshot zeigt der Systemmonitor eine Erhöhung der Temperatur von drei Thermozonen im Zeitverlauf an.

Diagramm im Systemmonitor, das die Temperatur von drei Thermozonen im Zeitverlauf anzeigt

Im zweiten Screenshot meldet der Systemmonitor den aktuellen Prozentsatz der Drosselung, die Temperatur und den Grund für die Drosselung.

Der Systemmonitor meldet den aktuellen Drosselungsprozentsatz, die Temperatur und den Grund für die Drosselung.

Weitere Informationen finden Sie unter Verwenden des Systemmonitors.

Windows Performance Analyzer (WPA)

Im Rahmen des ADK bietet Windows das Windows Performance Toolkit (WPT) für die Softwareablaufverfolgung und -analyse. Mit dem WPT können Systemdesigner*innen Windows Performance Analyzer (WPA) verwenden, um Softwareablaufverfolgungen zu visualisieren und das thermische Verhalten zu analysieren. Weitere Informationen zum Installieren und Verwenden von WPA finden Sie unter Windows Performance Analyzer (WPA).

Anbieter

Fügen Sie beim Protokollieren von Ereignissen zu Temperatur, Thermozonenaktivitäten und Lüfteraktivität „Microsoft-Windows-Kernel-ACPI“ ein.

Fügen Sie „Microsoft-Windows-Thermal-Polling“ ein, um den Abruf der Temperatur in jeder Thermozone zu ermöglichen. Andernfalls werden die Temperaturen nur gemeldet, wenn sie über die passiven und/oder aktiven Schwellenwerte steigen. Der Zeitraum des Abrufs kann gesteuert werden, indem Sie ein Flag für den Anbieter angeben.

Flag Zeitraum des Abrufs
Keine 1 Sekunde
0x1 1 Sekunde
0x2 5 Sekunden
0x4 30 Sekunden
0x8 5 Minuten
0x10 30 Minuten

Prozessorauslastung

Bevor Sie sich genauer mit den Daten zur thermischen Drosselung beschäftigen, empfiehlt es sich, die Informationen zur Prozessorauslastung zu überprüfen, um sicherzustellen, dass das Muster der Prozessorauslastung mit der Workload im Einklang steht. Führen Sie die folgenden Schritte aus, um zu bestätigen, dass die Workload ordnungsgemäß eingerichtet ist:

  1. Öffnen Sie die ETL-Datei mit dem WPA-Tool.
  2. Wählen Sie im Graph-Tester erst Power und dann Prozessorauslastung aus.
  3. Ändern Sie den Diagrammtyp in Gestapelte Linien.

Der folgende Screenshot zeigt den Graph zu Prozessorauslastung.

Graph der Prozessorauslastung

Prozentsatz der Thermozonendrosselung

Wenn eine Thermozone gedrosselt ist, werden alle Änderungen der Wärmedrosselung, der Temperatur und der Kühlrichtlinien in der Softwareablaufverfolgungsdatei protokolliert. Führen Sie die folgenden Schritte aus, um die Informationen in der Ablaufverfolgungsdatei anzuzeigen:

  1. Öffnen Sie die ETL-Datei mit dem WPA-Tool.
  2. Wählen Sie im Graph-Tester erst Power und dann Thermozone – Gerätedrosselung aus.
  3. Sie können die für Sie interessanten Geräte auswählen, indem Sie Filter anwenden.

Im folgenden Screenshot werden der Graph Thermozone – Gerätedrosselung und die Filteroptionen angezeigt.

Graph und Filteroptionen für die Gerätedrosselung in einer Thermozone

Thermozonentemperatur

Mithilfe von Leistungsindikatoreninformationen kann die Temperatur eines Systems auch dann überwacht werden, wenn gerade keine Drosselung erfolgt. Folgen Sie diesen Schritten:

  1. Aktivieren Sie die gewünschten Anbieter beim Ausführen einer Ablaufverfolgung.
  2. Stellen Sie sicher, dass Leistungsindikatoren weiterhin abgerufen werden (der Systemmonitor wird weiterhin ausgeführt). Weitere Informationen finden Sie unter Leistungsindikatoren.
  3. Öffnen Sie die ETL-Datei mit dem WPA-Tool.
  4. Wählen Sie im Graph-Tester erst Power und dann Temperatur (K) nach Thermozone aus.
  5. Daraufhin sollte die Temperatur für jede Thermozone im Zeitverlauf angezeigt werden.

Der folgende Screenshot zeigt einen Graph der Temperatur in fünf Thermozonen im Zeitverlauf.

Graph der Temperatur in fünf Thermozonen im Zeitverlauf