원문 보기: https://dawoum.duckdns.org/wiki/Dynamic_frequency_scaling
Dynamic frequency scaling (역시 CPU throttling으로 알려져 있음)은 컴퓨터 아키텍처의 전력 관리 기술로, 마이크로프로세서의 주파수는 전력을 절약하고 칩에 의해 발생하는 열의 양을 줄이기 위해 실제 필요에 따라 "즉시" 자동으로 조정될 수 있습니다. 동적 주파수 스케일링은 모바일 장치의 배터리를 절약하고 조용한 컴퓨팅 환경에서 냉각 비용과 소음을 줄이는 데 도움이 되거나, 과열된 시스템 (예를 들어, 오버클러킹 불량)에 대한 보안 조치로 유용할 수 있습니다.
동적 주파수 스케일링은 거의 항상 동적 전압 스케일링과 함께 나타나는데, 왜냐하면 주파수가 높을수록 디지털 회로가 올바른 결과를 산출하기 위해 더 높은 공급 전압이 필요하기 때문입니다. 결합된 주제는 dynamic voltage and frequency scaling (DVFS)으로 알려져 있습니다.
Operation
칩에 의해 소산되는 동적 전력 (스위칭 전력)은 C·V2·A·f이며, 여기서 C는 클럭 주기당 전환되는 커패시턴스, V는 전압, A는 칩의 트랜지스터에 의한 클럭 주기당 평균 스위칭 이벤트 수 (단위-없는 수량)를 나타내는 활동성 인수이고[1] f는 클럭 주파수입니다.[2]
따라서 전압은 전력 사용과 열 발생의 주요 결정 요인입니다.[3] 안정적인 작동에 필요한 전압은 회로가 클럭되는 주파수에 의해 결정되고 주파수도 감소하면 감소될 수 있습니다.[4] 동적 전력만으로는 칩의 총 전력을 설명할 수 없는데, 어쨌든, 주로 다양한 누설 전류로 인한 정적 전력도 있기 때문입니다. 정적 전력 소비와 점근 실행 시간으로 인해, 소프트웨어의 에너지 소비는 볼록 에너지 행위, 즉, 에너지 소비가 최소화되는 최적의 CPU 주파수가 존재하는 것으로 나타났습니다.[5] 누설 전류는 트랜지스터 크기가 작아지고 임계 전압 레벨이 감소함에 따라 점점 더 중요해지고 있습니다. 10년 전만 해도, 동적 전력은 전체 칩 파워의 약 2/3를 차지했습니다. 최신 CPU 및 SoC의 누설 전류로 인한 전력 손실이 총 전력 소비를 지배하는 경향이 있습니다. 누설 전력을 제어하려는 시도에서, high-k 금속-게이트와 파워 게이팅이 공통적인 방법이었습니다.
동적 전압 스케일링은 칩이 실행될 수 있는 주파수가 작동 전압과 관련이 있기 때문에 주파수 스케일링과 함께 자주 사용되는 또 다른 관련 전력 절약 기술입니다.
전압 조정기와 같은 일부 전기 부품의 효율은 온도가 증가함에 따라 감소하므로 전력 사용량은 온도에 따라 증가할 수 있습니다. 전력 사용량을 증가시키는 것은 온도를 상승시킬 수 있으므로, 전압 또는 주파수에서 증가는 CMOS 공식이 나타내는 것보다 훨씬 더 시스템 전력 요구를 증가시킬 수 있고, 그 반대의 경우도 마찬가지입니다.[6][7]
Standard interface
ACPI 1.0 (1996)은 CPU가 유휴 "C 상태"로 이동하는 방법을 정의하지만, 주파수-스케일링 시스템은 정의하지 않습니다.
ACPI 2.0(2000)은 프로세서가 가능한 주파수-전력 설정을 OS와 통신하기 위해 사용할 수 있는 P 상태 (전력-성능 상태)의 시스템을 도입했습니다. 그런 다음 운영 시스템은 이들 상태 사이를 전환함으로써 필요에 따라 속력을 설정합니다. SpeedStep, PowerNow!/Cool'n'Quiet, 및 PowerSaver와 같은 스로틀링 기술은 모두 P 상태에서 작동합니다. 최대 16개 상태로의 제한이 있습니다.[8]
ACPI 5.0(2011)은 collaborative processor performance control (CPPC)를 도입하여, 주파수에서 추상화된 "성능 수준"의 형태에서 선택에 대해 OS에 수백 개의 성능 수준을 노출합니다. 이 추상화는 프로세서에 대해 단지 주파수가 아닌 다른 방법으로 작업을 조정하도록 약간의 여유를 제공합니다.[9][10][11]
Autonomous frequency scaling
많은 최신 CPU는 성능 수준 범위와 OS로부터 "효율성/성능 기본 설정" 힌트를 사용하여 자율적으로 주파수 확장을 수행할 수 있습니다.
- Skylake로 시작하는 Intel CPU는 Speed Shift라고도 하는 하드웨어-관리 P 상태를 지원합니다. 그것은 CPPC 프로토콜을 기반으로 하고, 모델별 레지스터를 제어 채널로 사용합니다.[12][13]
- Zen 2로 시작하는 AMD CPU는 유사한 기능을 지원합니다. 그것은 CPPC가 활성화되었는지에 의존합니다. 선호되는 통신 채널은 Zen 3에 도입된 MSR (Intel 채널과 다름)입니다; Zen 2 장치는 ACPI AML 방식을 사용합니다.[14]
Performance impact
동적 주파수 스케일링은 프로세서가 주어진 시간의 총양 동안 발행할 수 있는 명령의 수를 줄이며, 따라서 성능을 저하시킵니다. 그러므로, 그것은 일반적으로 워크로드가 CPU 바인딩되지 않을 때 사용됩니다.
동적 주파수 스케일링 자체는 스위칭 전력을 절약하기 위한 방법으로 가치가 거의 없습니다. 가능한 한 많은 전력의 총양을 절약하는 것은 V2 구성 요소와 최신 CPU가 저전력 유휴 상태에 강력하게 최적화되어 있기 때문에 동적 전압 확장도 필요합니다. 대부분의 상수-전압 사례에서, 감소된 클럭 율로 장시간 실행하고 가벼운 유휴 상태에서만 잠깐 동안 머무르는 것보다 최고 속력으로 잠시 실행하고 더 오랜 시간 동안 깊은 유휴 상태를 유지하는 것이 더 효율적입니다 ("race to idle" 또는 computational sprint라고 함). 어쨌든, 클록 율과 함께 전압을 낮추는 것은 이러한 트레이드 오프를 변경할 수 있습니다.
관련되지만 반대되는 기술은 오버클러킹(overclocking)으로, 프로세서의 (동적) 주파수를 제조업체의 설계 사양 이상으로 증가시킴으로써 프로세서 성능을 향상시킵니다.
이 둘의 주요 차이점 중 하나는 최신 PC 시스템에서 오버클러킹은 대부분 Front Side Bus를 통해 수행되지만 (주로 배수가 전형적으로 잠겨 있기 때문에), 동적 주파수 스케일링은 배수로 수행된다는 것입니다. 게다가, 오버클러킹은 종종 정적이고, 반면에 동적 주파수 스케일링은 항상 동적입니다. 소프트웨어는 종종 칩 성능 저하 위험이 허용되면 오버클럭된 주파수를 주파수 스케일링 알고리즘에 통합할 수 있습니다.
Support across vendors
Intel
Intel의 CPU 쓰로틀링 기술, SpeedStep은 모바일과 데스크톱 CPU 제품군에 사용됩니다.
AMD
AMD는 두 가지 다른 CPU 쓰로틀링 기술을 사용합니다. AMD의 쿨-앤-콰이어트(Cool'n'Quiet) 기술은 데스크탑과 서버 프로세서 제품군에 사용됩니다. 쿨-앤-콰이어트의 목적은 AMD의 모바일 프로세서 제품군에 사용되지 않기 때문에 배터리 수명을 절약하는 것이 아니라 열을 덜 발생시켜고 차례로 시스템 팬이 더 느린 속도로 회전하여, 더 시원하고 조용한 작동을 초래하므로, 그 이름에 맞습니다. AMD의 PowerNow! CPU 쓰로틀링 기술은 모바일 프로세서 제품군에 사용되지만, AMD K6-2+와 같은 일부 지원하는 CPU는 데스크탑에서도 찾을 수 있습니다.
AMD PowerTune 및 AMD ZeroCore Power는 GPU를 위한 동적 주파수 스케일링 기술입니다.
VIA Technologies
VIA Technologies 프로세서는 LongHaul (PowerSaver)이라는 기술을 사용하고, 반면에 Transmeta의 버전은 LongRun이라고 합니다.
36개 프로세서 AsAP 1 칩은 주파수, 시작, 및 중지의 임의적인 변경을 포함하여 완전히 제한되지 않은 클럭 작동 (주파수가 허용된 최대 값보다 낮기만 필요함)을 지원하기 위한 최초의 멀티-코어 프로세서 칩 중 하나입니다. 167-프로세서 AsAP 2 칩은 개별 프로세서가 자체 클럭 주파수를 완전히 제한 없이 변경할 수 있도록 하는 최초의 멀티-코어 프로세서 칩입니다.
ACPI Specs에 따르면, 현대 CPU의 C0 작동 상태는 클럭 율 감소를 허용하는 소위 "P"-상태 (성능 상태)와 STPCLK (클럭 정지) 신호를 삽입하고 따라서 의무 주기를 생략함으로써 CPU (실제 클럭 율이 아님)를 추가로 쓰로틀다운하는 "T"-상태(스로틀링 상태)로 나눌 수 있습니다.
ARM
다양한 ARM-기반 시스템 온 칩은 CPU 및 GPU 스로틀링을 제공합니다.