CPU에서 계산 속도가 생성 된 열에 영향을 줍니까?


9

최신 컴퓨터 CPU (Intel, AMD 등)와 같이 클럭 속도를 변경할 수있는 CPU를 예로 들어 보겠습니다. 특정 클럭 속도에서 특정 계산을 수행 할 때 더 느린 클럭 속도에서 동일한 계산을 수행 할 때와 동일한 양의 열을 생성합니까? 열 분산과 열 축적은 다른 문제라는 것을 알고 있으므로 생성 된 원 열에 대해 이야기 해 봅시다.


더 빠른 속도로 계산하면 시간이 더 걸립니다.
유진 Sh.

4
Landauer의 관점 에서 이상적인 컴퓨터에서는 계산이 같은 양의 열 에너지를 생성한다고 생각합니다. 그러나 실제 컴퓨터에서는 아마도 다를 수 있습니다. 특히 이미 생성되어 아직 소산되지 않은 열의 양 (예 : 반도체 온도)이 그 특성에 영향을 미치므로 열이 생성되기 때문입니다.
난로

물론 일부 FPGA 디자인을 설계했으며 저전력이어야했습니다. 따라서 많은 처리 능력이 필요하지 않았으므로 1MHz 소스 대신 10kHz 클록 소스를 사용했습니다.
lucas92

2
동적 전력 소비는 동기식 ckts에서 클록 주파수의 제곱에 비례합니다. 따라서 열도 증가해야합니다.
Mitu Raj

1
@MITURAJ, 동적 전력 소비는 클럭 속도에 비례합니다. 클럭 속도의 제곱이 아닙니다. 전압의 제곱에 비례합니다.
mkeith

답변:


14

클럭 속도 외에도 실제 "큰"CPU (캐시, MMU, TLB, 파이프 라인 실행, SIMD 등이있는 CPU)에서 열 발생량의 또 다른 중요한 요소는 명령 흐름이 얼마나 잘 활용되는지에 유의하십시오. 사용 가능한 CPU 자원 메모리를 많이 사용하는 프로그램을 실행하면 대부분의 시간 동안 CPU가 데이터를 굶주리고 아무것도하지 않으므로 열 발생량이 상대적으로 적습니다. 단단한 루프를 가진 순수한 계산 코드는 더 많이 가열됩니다. 분기 오류를 거의 일으키지 않고 SIMD 단위를 집중적으로 사용하고 캐시 등을 최적으로 사용하는 엄격하게 최적화 된 코드로 더 많은 열을 생성 할 수 있습니다.

이 모드에서 CPU를 작동 시키도록 특별히 설계된 프로그램이 있습니다. Prime95 는 PC에서 가장 좋은 예입니다.

실제로 PC가 사용 가능한 모든 CPU 코어에서 Prime95를 이미 실행 한 다음 다른 CPU 집약적 응용 프로그램 (예 : 3D 렌더링)을 동시에 시작하면 CPU가 냉각 되는 것을 알 수 있습니다. 이는 상대적으로 수요가 낮은 렌더링 코드 (많은 캐시 누락 및 분기 오판이있을 수 있음)와 매우 무거운 Prime95 코드 ( "트랜지스터를 모두 비추는" ) 를 시간 공유해야하기 때문 입니다. 잠시 동안 식히십시오).

고려해야 할 또 다른 사항은 일반적으로 각 CPU에 허용 가능한 클럭 속도와 각 속도와 관련된 코어 전압이있는 테이블이 있다는 것입니다. 제조업체가 CPU가 해당 전압에서 안정적이라고 판단하기 때문에 낮은 클럭도 낮은 전압과 일치합니다. 전력 소비는 클록 속도에 따라 선형 적으로 변하지 만 전압에 따라 2 차적 으로 변 합니다.


1
전력 은 주어진 클럭 속도에 대해 2 차적으로 전압 따라 변한다 . 일반적으로 전압을 사용하여 클럭 속도를 선형으로 변경합니다. 결과적으로 전력은 입방 대 전압이며 클록 속도는 선형입니다. 따라서 전력 소비는 2 차 대 클럭 속도입니다.
MooseBoys

SIMD는 AVX512를 광범위하게 사용할 때 너무 많은 열을 발생시켜 일부 CPU가 과열 될 수 있습니다. 전압 증가도 관련이 있음을 나타내는 +1.

1
@MooseBoys, 사실, 아주 좋은 지적입니다. 그러나 실제로 최고 속도 CPU의 Vcore = 1.2V 인 경우 클럭 속도를 절반으로 줄이면 Vcore = 0.6을 허용하지 않으면 작동하지 않습니다.)
anrieff

@anreiff 내가 잘못 기억할 수도 있지만, 일부 최신 인텔 칩은 유휴 상태에서 0.8V 정도까지 내려갈 것이라고 생각합니다. 그 시점에서는 ~ 700MHz에 불과하며 캐시가 꺼져있을 수 있습니다.
mbrig

CPU 클럭 속도와 Vcore가 비례하면 예상 할 수 있기 때문에 0V 근처로 가지 않습니다. 3.5GHz@1.2V 및 0.7GHz@0.8V와 비슷합니다. 속도의 감소는 전압에 비해 전력 손실에 더 많은 영향을 미칩니다. 전자가 선형으로 "단지"영향을 주더라도 말입니다.
anrieff

5

소비되는 전력은 클럭의 전이 속도와 효과적인 커패시터 게이트를 전환 할 때 전도 손실에 비례합니다. 그러나 온도 상승은 소비 전력에 효과적인 열 저항 (와트 당 C 단위)에 비례하므로 에너지와 무관하거나 전력 소비에 따라 더 시원하거나 더 뜨겁게 작동하여 더 오랜 시간 동안 전력을 확산시키지 않을 수 있습니다. 클럭 속도에 따른 온도 상승이 1보다 큰 분수 전력임을 나타내는 공식이있을 수 있습니다.


4
  • 작동 주파수가 낮을수록 와트 수가 줄어 듭니다.

  • 동일한 코어 전압에서 총 에너지는 낮은 클럭 주파수에서 더 높아집니다.

  • 그러나 코어 전압을 주파수에 따라 낮추면 총 에너지가 더 적을 수 있습니다.

  • 대부분의 시간을 I / O 작업을 기다리는 알고리즘의 경우 실행 시간은 코어 클럭 주파수에 관계없이 거의 일정합니다. 따라서 계산에 필요한 총 에너지는 클럭 주파수에 비례하여 증가합니다.


    CPU의 전력 소비는 두 부분으로 구성됩니다.

1) 정적 전류 소모 (I_static). 특정 공급 전압 및 온도의 경우이 전류 소모량은 CPU가 수행하는 작업에 관계없이 일정합니다.

CMOS 기술을 사용하여 만든 CPU는 수천 또는 수백만 개의 MOSFET 트랜지스터로 구성됩니다. 정적 전류 소모는 주로 수백만 MOSFET 트랜지스터의 결합 된 오프 상태 누설 전류로 인한 것입니다.

  • 정적 전압 인출은 일반적으로 공급 전압이 증가함에 따라 증가합니다.

  • 정적 전류 소모는 일반적으로 CPU 온도가 증가함에 따라 증가합니다.

  • 정적 전류 소모는 많은 장치에서 동적 전류 소모보다 훨씬 작습니다.

2) 동적 전류 소모. CMOS 프로세스를 사용하여 구성된 프로세서의 경우 트랜지스터가 켜짐 / 꺼짐 상태간에 전환 될 때 동적 전류가 발생합니다.

  • 지정된 공급 전압의 경우 동적 전류 소모는 일반적으로 주파수에 정비례합니다.

  • 공급 전압이 증가함에 따라 동적 전류 소모가 증가합니다.

그 이유는 다음과 같습니다. CPU의 각 MOSFET 트랜지스터는 이와 관련하여 일정한 양의 정전 용량을 가지고 있습니다. MOSFET이 전환 될 때마다; 그 커패시턴스를 충전 / 방전하기 위해 충전 Q = C * V가 필요하다.

각 트랜지스터의 동적 전류 소모는 I_dynamic = C * V * f입니다.

명령이 실행되는 빈도에 관계없이, 특정 CPU의 특정 작업 세트 (캐시 및 메모리에서 동일한 동작을 가정)는 주파수에 관계없이 동적 전류 소모로 인해 일정량의 총 충전량 (Q_program)을 소비합니다. 명령이 실행될 때

그러나 명령이 더 느리게 실행되면 더 많은 시간이 지남에 따라 정적 전류 소모로 인한 총 충전량이 높아집니다.

수학적으로 쓸 수있는 것은 ...

W = (I_dynamic + I_static) * V_supply

E = W * 시간 = Q_ 프로그램 * V_supply + I_static * V_supply * 시간

클럭 주파수가 0에 가까울수록 와트 수는 고정 된 값에 도달하지만 프로그램 계산에 필요한 에너지는 무한대에 도달합니다.

따라서 (CPU 트랜지스터의 커패시턴스를 기반으로) Q_program이 특정 공급 전압 및 일련의 동작에 대해 고정되어 있다면 현대 CPU는 클럭 주파수를 낮추어 어떻게 전력을 절약합니까? 답은 대부분의 최신 CPU에는 온보드 (또는 컴패니언 칩)에 조정 가능한 코어 전압 조정기가 포함되어 있다는 것입니다. 클럭 주파수를 낮추면 코어 전압을 낮출 수도 있습니다. 그러면 Q_program (및 E_program)은 공급 전압에 비례하여 낮아집니다.

낮은 전압에서는 트랜지스터 스위칭 시간이 증가하기 때문에 CPU는 높은 주파수에서 낮은 전압을 사용할 수 없습니다.

전력량은 전압 (제곱) 및 전류 소모에 비례합니다. 따라서 전압이 주파수와 동시에 떨어지면 와트는 주파수 큐브와 함께 떨어집니다.


1

트랜지스터는 열로 낭비되는 에너지를 사용합니다. 정적 및 동적 에너지의 두 가지 메커니즘이 있습니다. 정적 에너지는 일정하며 동적 (스위칭) 에너지는 상태가 변경 될 때마다 (0-> 1 또는 1-> 0) 발생합니다. 동적 (전환) 에너지는 일반적으로 정적보다 더 큰 열원입니다. 수행하려는 계산은 동일한 클럭 사이클 수를 취하며 클럭 속도에 관계없이 동일한 수의 트랜지스터 비트가 뒤집 힙니다. 따라서 동적 열은 두 상황에서 동일합니다. 정적 열은 ... 정적입니다. 요약하자면, CPU가이 1 회 계산 만 수행한다고 가정하면 주어진 시간 동안 평균 에너지 / 열 소비량은 정확히 동일합니다.


당신은 진실의 가장자리를 타고 있지만, 나는 그것을 얻을 수 있습니다. CMOS의 에너지 레벨은 작동 주파수에 따라 거의 선형으로 올라가지 만 전압과 에너지의 두 배가됩니다. 속도를 포함하지 않는 불쾌한 I2R 방정식.
Sparky256

OP는 전압 감소에 대한 언급없이 클록 속도에 대해 순전히 물었다.
TopCat

위의 답변은 코어 전압에 대한 패널티를 언급했습니다. 나는 당신이 그 문제에 대답해야한다는 것을 암시하지 않았습니다. 의견 상자에만 의견을 작성했습니다.
Sparky256

문제는 전력이나 온도가 아니라 열 (줄 단위로 측정)에 관한 것입니다. 열은 에너지의 한 형태입니다. 입력 소스에서 수신되어 출력 부하로 전달되는 소량의 에너지를 제외하고 장치에서 소비되는 모든 에너지는 열이되어 결국 소실됩니다. CMOS 로직에서 에너지 소비는 기계 상태가 변경 될 때 열을 발생시킵니다. 일반적으로 게이트가 0과 1 사이의 중간에있는 순간에 클럭 사이클 당 1 회입니다. 따라서 주어진 작업의 HEAT는 클럭 속도와 독립적이며 완전히 의존적이어야합니다. 클럭 사이클 수.
richard1941

1

설명한 시나리오에서 계산에 필요한 에너지는 클럭 속도에 의존하지 않습니다. 그러나 열은 "고정적인"용어 일 수 있습니다. 계산에 1 줄이 걸린다고 가정 해 봅시다. 1 초 안에 수행하면 1 줄 / 초 = 1 와트입니다. 그러나 2 초가 걸리면 1 줄 / 2 초 = 0.5 줄 / 초 = 0.5 와트입니다.

에너지가 더 빨리 방출되기 때문에 계산이 더 빨리 완료되면 프로세서는 확실히 더 높은 온도에 도달합니다. 나는 그 이상으로 말하는 것이 너무 많다고 생각하지 않습니다.

아, 내가 준 숫자는 현실적이지 않습니다. 그것은 단지 개념입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.