다음을 통해 공유


예, 요구 사항 및 진단

이 항목에서는 열 관리 문제의 예를 제시하고 요구 사항 및 진단 방법에 대해서도 설명합니다.

다음 예에서는 일반적인 열 관리 문제를 해결하는 방법을 설명합니다.

피부 온도 센서

사용자를 항상 보호하려면 피부 온도를 모니터링하는 것이 중요합니다. 피부의 온도가 너무 높아서 안전하게 처리할 수 없는 경우 시스템은 즉시 작업을 취하여 시스템을 종료해야 합니다. 이 온도 센서는 판독에 기여하는 제한 디바이스에 대한 열 영역에 대한 입력을 제공할 수도 있습니다.

다음 블록 다이어그램은 3개의 디바이스와 2개의 열 영역이 있는 시스템 레이아웃의 예를 보여 줍니다.

여러 열 센서 및 영역이 있는 시스템 보드 레이아웃

이 예에서 TS1(온도 센서 1)과 TS2(온도 센서 2)는 디바이스가 피부에 가장 많은 열을 공급하는 위치에 전략적으로 배치됩니다. 디바이스 1, 2, 3에는 각 디바이스 상단에 개별 온도 센서가 있을 수 있습니다. 이러한 디바이스 센서는 각 디바이스를 개별적으로 제한하는 데 적합합니다. 일반적으로 피부 센서의 목적은 시스템에 있는 여러 디바이스의 집합체로서 디바이스 표면의 온도를 검색하는 것입니다. 각 디바이스는 이러한 온도 센서에서 검색할 수 있는 것보다 더 많은 열을 생성할 수 있지만 이러한 디바이스의 결합된 열 생성은 이러한 센서 위치에 축적되는 경향이 있습니다.

TS1은 디바이스 2와 디바이스 3의 중간에 위치합니다. 따라서 TS1을 입력으로 사용하는 열 영역은 디바이스 2 및 디바이스 3을 제어합니다. TS1이 뜨거워지면 열 영역이 디바이스 2와 3을 제한합니다. 마찬가지로 TS2가 뜨거워지면 열 영역이 세 디바이스 모두를 제한합니다.

이 예에서 센서는 모니터링하는 디바이스에서 균등하게 멀리 배치됩니다. TS1은 디바이스 2와 디바이스 3 사이의 중간에 배치되고 TS2는 디바이스 1, 2 및 3에서 등거리에 배치됩니다. 각 디바이스가 동일한 방식으로 방사형으로 열을 발산하는 경우 각 디바이스의 열은 센서의 온도 판독값에 동일하게 기여합니다.

점진적인 열 제한

열 상수 집합(_TC1 및 _TC2)이 주어지면 열 영역의 수동 제한 백분율에는 곡선이 얼마나 빨리 변하는지, 영역이 트립 지점에서 멀리 떨어져 있도록 얼마나 적극적으로 제한하는지와 같은 특정한 특성이 있습니다. 어떤 상황에서는 열 영역의 동작을 변경해야 할 수도 있습니다. 예를 들어, 온도가 낮을 때는 제한 백분율이 덜 공격적이어도 괜찮습니다. 그러나 온도가 트립 지점에 가깝다면 제한 동작이 훨씬 더 공격적일 필요가 있습니다. 이런 경우 점진적인 열 제한을 사용하여 디바이스 집합에 다양한 제한 동작을 적용할 수 있습니다. 점진적인 열 제한을 구현하는 두 가지 방법이 있습니다.

  • 런타임 동안 열 영역에 대한 상수를 동적으로 변경하거나
  • 상수 및 트립 포인트가 다른 두 개의 열 영역을 사용하는 것입니다.

영역에 대한 상수 업데이트

모든 열 영역의 경우 Notify(thermal_zone, 0x81)를 사용하여 언제든지 열 상수를 업데이트할 수 있습니다.

다른 트립 지점이 있는 구역

열 영역에는 하나 이상의 열 센서가 있을 수 없습니다. 그러나 동일한 온도 센서를 공유하는 여러 열 영역은 점진적 열 제한 동작을 구현하는 데 자주 사용됩니다. 하나의 열 영역은 저온에서 성능을 적당히 제한하기 시작하고 다른 열 영역은 고온에서 성능을 적극적으로 제한하기 시작합니다.

다음 블록 다이어그램에서 동일한 디바이스를 관리하는 두 개의 열 영역은 동일한 온도 센서를 사용하여 점진적인 열 제한을 달성합니다. 이 예에서 온도 센서는 배터리 충전기와 모니터 백라이트 근처에 배치되어 이 두 디바이스를 제어하는 열 영역에 입력을 제공할 수 있습니다.

동일한 디바이스를 관리하는 여러 열 영역

앞의 다이어그램에 표시된 두 개의 열 영역은 다음과 같이 정의될 수 있습니다.

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

현재 종속적 제한

배터리 드라이버가 온도와 전류 모두를 기반으로 한 제한이 필요로 하는 경우 열 관리자의 ACPI 알고리즘은 전류를 고려할 수 없기 때문에 더 이상 적절하지 않습니다. 이 알고리즘을 대체하려면 사용자 지정 알고리즘이 포함된 정책 드라이버를 제공하고 열 영역에 대한 드라이버 스택의 맨 위에 이 드라이버를 로드해야 합니다. 이 정책 드라이버는 온도 센서와 전류 센서를 모두 입력으로 처리하고 사용자 지정 알고리즘을 기반으로 열 정책에 도달합니다. 이 열 정책은 열 영역 하드웨어의 기능 내에서 작동해야 함을 참고하세요. 정책은 로그를 업데이트하고 열 영역을 업데이트하는 열 관리자에게 전송됩니다. 그런 다음 열 영역은 열 냉각 인터페이스를 통해 배터리 드라이버에 요청을 보냅니다.

다음 블록 다이어그램은 배터리 디바이스의 온도와 전류를 모두 제어하는 정책 드라이버를 보여 줍니다. 정책 드라이버는 열 관리자의 알고리즘 대신 사용자 지정 알고리즘을 구현합니다. 열 관리자의 알고리즘과 달리 사용자 지정 알고리즘은 온도와 전류를 모두 고려합니다.

정책 드라이버가 열 관리자의 알고리즘을 대체합니다.

열 관리 요구 사항

하드웨어 요구 사항

우수한 열 하드웨어 설계를 위해서는 다음 사항이 필요합니다.

  • 모든 시스템은 소비자 전자 제품 안전에 대한 해당 산업 표준(예: IEC 62368)을 충족합니다.

  • 하드웨어에는 시스템을 종료하거나 부팅을 방지하는 비상 안전 온도 트립 지점이 있어야 합니다.

  • 센서 하드웨어는 +/- 2oC까지 정확해야 합니다.

  • 센서 하드웨어는 임계 온도가 초과되었는지 확인하기 위해 소프트웨어 폴링이 필요하지 않아야 합니다.

  • 작동하는 동안 시스템 디스플레이 밝기는 열적으로 100니트 미만으로 제한되지 않습니다.

  • 다음과 같은 경우에는 배터리 충전이 제한되지 않습니다.

    • 시스템이 유휴 상태이고 주변 온도 범위가 35oC 미만이거나
    • 주변 온도가 어떤 조건에서도 25oC 미만인 경우입니다.

최신 대기 PC에 대한 HCK 테스트 요구 사항

모든 최신 대기 PC는 프로세서 아키텍처 및 폼 팩터에 관계없이 특정 열 요구 사항을 충족해야 합니다. 이러한 요구 사항은 HCK에서 테스트됩니다.

  • 모든 최신 대기 PC에는 하나 이상의 열 영역이 있어야 합니다.
  • 각 열 영역은 센서의 실제 온도를 보고해야 합니다.
  • 하나 이상의 열 영역에 임계 종료 온도가 정의되어 있어야 합니다. 인텔 DPTF(Dynamic Platform and Thermal Framework)는 예외입니다.
  • 팬이 있는 모든 최신 대기 PC는 팬 작업을 운영 체제에 노출해야 합니다.
  • 팬은 최신 대기 상태의 유휴 복원력을 포함하여 항상 운영 체제에 작업을 알려야 합니다. 현재 이러한 알림은 운영 체제에서 아무런 작업도 취하지 않습니다. 이러한 알림의 주요 목적은 진단 및 원격 분석입니다. 팬 알림은 Windows Performance Analyzer를 비롯한 기존 추적 도구와 통합될 수 있습니다. 시스템 디자이너는 이러한 도구를 사용하여 플랫폼 설계를 조정할 수 있습니다.
  • 팬이 있는 모든 최신 대기 PC는 시스템 "절전" 상태인 최신 대기 상태인 동안 팬을 꺼야 합니다.
  • 여기서 HCK 테스트는 팬이 켜지도록 하지 않는 현실적인 최신 대기 워크로드를 실행합니다. 최신 대기 모드로 전환하는 동안 팬은 디스플레이가 꺼진 후 최대 30초 동안 켜져 있을 수 있습니다.

HCK 테스트에 대한 자세한 내용은 열 영역 확인을 참조하세요.

HCK 테스트를 실행하려면 다음을 수행합니다.

  • 먼저 다음 명령을 입력하여 단추 드라이버를 설치합니다.

    >>Button.exe -i

  • 팬이 있는 PC에 대한 모든 열 테스트를 실행하려면 다음 명령을 입력합니다.

    >>RunCheckTz.cmd all

  • 팬이 없는 PC에 대한 모든 열 테스트를 실행하려면 다음 명령을 입력합니다.

    >>RunCheckTz.cmd nofan all

열 관리 솔루션

ACPI를 기반으로 하는 Window 열 프레임워크는 모든 시스템에 권장되는 열 관리 솔루션입니다. 주요 이점에는 기본 제공 도구를 사용하여 열 문제를 쉽게 진단할 수 있는 기능과 현장에서 귀중한 원격 분석을 수집할 수 있는 기능이 있습니다.

그러나 위의 요구 사항이 충족되는 경우 Windows 열 프레임워크에 대한 대체 솔루션을 사용할 수 있습니다. 코어 실리콘 및 SoC 공급업체는 Windows와 호환되고 Windows에서 지원되는 고유한 열 솔루션을 가질 수 있습니다. 예를 들어 x86 프로세서용 인텔 DPTF(Dynamic Platform and Thermal Framework) 기반 구현 및 Arm에서의 PEP 구현이 있습니다.

진단

시스템 디자이너가 시스템 열 동작을 진단하고 평가할 수 있도록 Windows는 다음과 같은 기본 제공 및 독립 실행형 도구를 제공합니다.

이벤트 로그

Windows는 이벤트 로그에 중요한 열 정보를 기록합니다. 이 정보는 추가 추적이나 도구 없이 Windows 8 이상을 실행하는 모든 PC에서 열 상태를 빠르게 분류하는 데 사용할 수 있습니다. 다음 표에는 전체 목록이 나와 있습니다.

채널 원본 ID 이벤트 설명
Windows Logs\System 커널 전원 125 ACPI 열 영역을 열거 중입니다.

Windows는 부팅하는 동안 모든 열 영역에 대해 이 이벤트를 기록합니다.

Windows Logs\Systems 커널 전원 86 심각한 열 이벤트로 인해 시스템이 종료되었습니다.

심각한 종료 후 Windows는 이 이벤트를 기록합니다. 이 이벤트는 열로 인한 심각한 종료가 발생했는지 진단하고 종료를 일으킨 열 영역을 식별하는 데 사용할 수 있습니다.

Applications and Services Logs\Microsoft\Windows\Kernel-Power\Thermal-Operational 커널 전원 114 하나의 열 영역이 수동 냉각을 사용하거나 해제했습니다.

Windows는 열 제한이 작동 및 해제될 때 이 이벤트를 기록합니다. 이 이벤트는 열 제한이 발생했는지 여부와 어떤 영역에 대해 발생했는지 확인하는 데 사용할 수 있습니다. 이는 성능 문제를 위급한 정도에 따라 분류할 때 유용합니다.

심각한 이벤트 알림

열 조건으로 인해 심각한 종료 또는 최대 절전 모드가 발생하는 경우 시스템 이벤트 로그에 기록될 수 있도록 운영 체제에 이벤트를 알려야 합니다. 이 경우 운영 체제에 알리는 두 가지 방법이 있습니다.

  • ACPI 열 영역 _CRT 또는 _HOT 방법을 사용하여 심각한 열 이벤트를 올바르게 자동으로 기록합니다. _CRT 또는 _HOT 값을 정의하는 것 외에는 추가 작업이 필요하지 않습니다.

  • 다른 모든 열 솔루션의 경우 드라이버는 Procpowr.h 헤더 파일에 정의된 다음 열 이벤트 인터페이스를 사용할 수 있습니다.

    #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
    

    PowerReportThermalEvent 루틴은 이벤트가 시스템 이벤트 로그에 기록될 수 있도록 열 이벤트를 운영 체제에 알립니다. PowerReportThermalEvent를 호출하기 전에 드라이버는 THERMAL_EVENT 구조의 멤버를 다음 값으로 설정합니다.

    버전

    THERMAL_EVENT_VERSION

    크기

    sizeof(THERMAL_EVENT)

    형식

    Ntpoapi.h의 THERMAL_EVENT_XXX 값 중 하나입니다.

    온도

    트립 포인트(또는 알 수 없는 경우 0)를 교차한 후 센서가 있었던 온도(켈빈의 1/10)입니다.

    TripPointTemperature

    트립 지점의 온도(켈빈의 1/10)입니다(알 수 없는 경우 0).

    시작자

    임계값을 초과한 센서를 식별하는 NULL로 끝나는 와이드 문자열에 대한 포인터입니다.

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.

성능 카운터

성능 카운터는 시스템의 열 동작에 대한 실시간 정보를 제공합니다. 각 열 구역에 대해 다음 세 가지 데이터가 폴링됩니다.

열 영역 정보
  • 패시브 한도 백분율– 제한된 백분율입니다. 100%는 영역이 제한되지 않았음을 의미합니다.
  • 온도– 열 영역의 온도(켈빈도)입니다.
  • 제한 이유– 영역이 제한되는 이유:

    • 0x0 – 영역이 제한되지 않습니다.
    • 0x1 – 영역이 열 관련 이유로 제한됩니다.
    • 0x2 – 영역이 제한되어 전류가 제한됩니다.

이 정보는 예를 들어 Windows 성능 모니터 또는 typeperf 명령줄 도구에서 요청할 때만 폴링됩니다.

일반적인 성능 카운터에 대한 자세한 내용은 성능 카운터를 참조하세요.

성능 모니터

성능 모니터는 정보를 폴링하고 시각화하기 위한 기본 제공 애플리케이션입니다. 성능 모니터는 시스템 열 설계의 열 조건을 비교하기 위한 매우 강력한 도구가 될 수 있습니다. 다음 두 샘플 스크린샷은 어항 데모가 Internet Explorer에서 실행될 때 작동하는 성능 모니터를 보여 줍니다. 첫 번째 스크린샷에서 성능 모니터는 시간이 지남에 따라 3개 열 영역의 온도 증가를 보여 줍니다.

시간 경과에 따른 3개의 열 영역 온도를 보여 주는 성능 모니터 그래프

두 번째 스크린샷에서 성능 모니터는 현재 제한 백분율, 온도 및 제한 이유를 보고합니다.

성능 모니터가 현재 제한 백분율, 온도 및 제한 이유를 보고합니다.

자세한 내용은 성능 모니터 사용을 참조하십시오.

WPA(Windows Performance Analyzer)

ADK의 일부로 Windows는 소프트웨어 추적 및 분석을 위한 WPT(Windows Performance Toolkit)를 제공합니다. WPT 내에서 시스템 디자이너는 WPA(Windows Performance Analyzer)를 사용하여 소프트웨어 추적을 시각화하고 열 동작을 분석할 수 있습니다. WPA 설치 및 사용 방법에 대한 자세한 내용은 WPA(Windows Performance Analyzer)를 참조하세요.

공급자

온도, 열 영역 작업 및 팬 작업에 대한 이벤트를 기록하려면 "Microsoft-Windows-Kernel-ACPI"를 포함합니다.

각 열 영역에서 온도 폴링을 사용하도록 설정하려면 "Microsoft-Windows-Thermal-Polling"을 포함합니다. 이것이 포함되지 않은 경우 온도는 패시브 및/또는 액티브 트립 지점 이상으로 상승할 때만 보고됩니다. 폴링 기간은 공급자에게 플래그를 지정하여 제어할 수 있습니다.

플래그 폴링 기간
없음 1초
0x1 1초
0x2 5초
0x4 30초
0x8 5분
0x10 30분

프로세서 유틸리티

열 제한 데이터를 조사하기 전에 프로세서 유틸리티 정보를 다시 확인하여 프로세서 유틸리티 패턴이 워크로드와 일치하는지 확인하는 것이 좋습니다. 워크로드가 올바르게 설정되었는지 확인하려면 다음 단계를 따릅니다.

  1. WPA 도구로 ETL 파일을 엽니다.
  2. 그래프 탐색기에서 전원을 선택한 다음 프로세서 유틸리티를 선택합니다.
  3. 그래프 유형누적선으로 변경합니다.

다음 스크린샷은 프로세서 유틸리티 그래프를 보여 줍니다.

프로세서 유틸리티 그래프

열 영역 제한 비율

열 영역이 제한 중일 때 소프트웨어 추적 파일은 모든 열 제한 백분율 변경, 온도 변화 및 냉각 정책 변경을 기록했습니다. 추적 파일의 정보를 보려면 다음 단계를 따릅니다.

  1. WPA 도구를 사용하여 ETL 파일을 엽니다.
  2. 그래프 탐색기에서 전원을 선택한 다음 ThermalZone 디바이스 제한을 선택합니다.
  3. 필터링 적용을 통해 관심 있는 디바이스를 선택할 수 있습니다.

다음 스크린샷은 ThermalZone 디바이스 제한 그래프 및 필터링 옵션을 보여 줍니다.

Thermalzone 디바이스 제한 그래프 및 필터링 옵션

열 영역 온도

성능 카운터 정보를 사용하여 제한이 작동하지 않는 동안 시스템 온도도 모니터링할 수 있습니다. 다음 단계를 수행하세요.

  1. 추적하는 동안 원하는 공급자를 사용하도록 설정합니다.
  2. 성능 카운터가 여전히 폴링되고 있는지 확인합니다(성능 모니터가 계속 실행 중임). 자세한 내용은 성능 카운터를 참조하세요.
  3. WPA 도구를 사용하여 ETL 파일을 엽니다.
  4. 그래프 탐색기에서 전력을 선택한 다음 ThermalZone별 온도(K)를 선택합니다.
  5. 각 열 구역에 대한 시간 경과에 따른 온도를 확인해야 합니다.

다음 스크린샷은 5개의 열 영역에 대한 시간 경과에 따른 온도 그래프를 보여 줍니다.

5개의 열 구역에 대한 시간 경과에 따른 온도 그래프