CPU에 왜 그렇게 많은 전류가 필요합니까?


37

Intel 또는 AMD와 같은 간단한 CPU는 45-140W를 소비하고 많은 CPU는 1.2V, 1.25V 등에서 작동한다는 것을 알고 있습니다.

따라서 1.25V에서 작동하고 TDP가 80W 인 CPU를 가정하면 64A (많은 A)를 사용합니다.

  1. 왜 회로에 FinFET 트랜지스터가 있다고 가정 할 때 CPU에 1A 이상이 필요합니까? CPU가 유휴 상태 인 경우가 대부분이고 CPU에 클럭이 있기 때문에 60A는 모두 "펄스"이지만 CPU가 1V 및 1A에서 작동 할 수없는 이유는 무엇입니까?

  2. 작고 빠른 FinFET 트랜지스터 (예 : 3.0GHz에서 작동하는 14nm는 몇 개의 암페어가 필요합니까?)

  3. 더 높은 전류로 인해 트랜지스터가 더 빠르게 켜지거나 꺼 집니까?


26
최신 CPU (둘 중 하나는 '단순'아님)에는 자체 전원 요구 사항이있는 여러 전압 레일이 필요합니다. 귀하의 질문은 많은 가정을하고 많은 잘못된 진술을합니다. 단일 레일의 전원 요구 사항뿐만 아니라 모든 전원 요구 사항을 고려해야합니다.
Wossname

8
최신 CPU에서 FinFET 트랜지스터 수를 계산하십시오. 모든 FET가 Vdd에서 접지로 전류를 전도하는 것은 아니지만 64A는 이러한 스위칭 FET의 매우 많은 수에 분배됩니다.
glen_geek

9
@EricLippert "벽에서 64A를 끌어 내야 할 것"-CPU가 110V에서 작동하지 않을 것이라는 의혹이 있습니다.
Andrew Morton

6
보존 수량은 에너지이며 평균 전력이기도합니다. CPU가 64W를 소비하는 경우 전원 공급 장치는 소켓에서 64W 이상을 소비해야합니다 . 110V에서도 <1A입니다.
MSalters

6
@EricLippert 컴퓨터의 마더 보드에는 공급 전압 (데스크탑의 경우 12V, 랩탑의 경우 12-19V)을 코어 공급 전압까지 낮추는 다상 DC-DC 변환기가 있습니다. 이는 일정한 POWER로 수행되므로 출력 전류는 입력 전류의 10-20 배가됩니다. 데스크탑 컴퓨터의 12V 전원은 말할 것도없이 일정한 전원으로 변환하는 스위칭 전원 공급 장치에서 나옵니다. 컴퓨터의 CPU에는 전류를 처리하기위한 전원 및 접지 핀이 100 개 이상있을 수 있습니다.
alex.forencich

답변:


69
  1. 상상력의 확장으로 인해 CPU는 '단순'하지 않습니다. 이들은 수십억 개의 트랜지스터를 가지고 있기 때문에 각각 유휴 상태에서 약간의 누설이 발생하며 스위칭시 다른 트랜지스터의 게이트와 상호 연결 용량을 충전 및 방전해야합니다. 그렇습니다. 각각 작은 전류를 소비하지만 트랜지스터 수에 곱하면 놀랍도록 많은 수의 결과가 나타납니다. 64A는 이미 평균 전류입니다 ... 스위칭시 트랜지스터는 평균보다 훨씬 더 많은 양을 끌어들일 수 있으며, 이는 바이 패스 커패시터에 의해 부드럽게됩니다. 64A 수치는 TDP에서 거꾸로 작동하여 실제로 64A RMS로 만들어졌으며 많은 시간 스케일 (클록 사이클 동안의 변화, 다른 동작 동안의 변화, 슬립 상태 간의 변화 등)에서 그 주위에 상당한 변화가있을 수 있습니다. ). 또한, 1.2V에서 3GHz로 작동하고 1V 및 1A에서 64A로 작동하도록 설계된 CPU를 실행하여 벗어날 수 있습니다. 이 시점에서 칩이 최소 클럭 주파수를 갖는 동적 로직을 사용하는지에 대해 걱정해야하므로 평균 수를 얻기 위해 수백 MHz에서 GHz로 실행하고 주기적으로 깊은 수면 주기로 순환시켜야합니다. 현재 다운. 결론은 전력 = 성능입니다. 대부분의 최신 CPU의 성능은 실제로 열적으로 제한됩니다. 따라서 평균 전류를 낮추려면 수백 MHz에서 GHz로 실행하고 주기적으로 깊은 절전 모드로 전환해야 할 수도 있습니다. 결론은 전력 = 성능입니다. 대부분의 최신 CPU의 성능은 실제로 열적으로 제한됩니다. 따라서 평균 전류를 낮추려면 수백 MHz에서 GHz로 실행하고 주기적으로 깊은 절전 모드로 전환해야 할 수도 있습니다. 결론은 전력 = 성능입니다. 대부분의 최신 CPU의 성능은 실제로 열적으로 제한됩니다.
  2. 계산하기가 비교적 쉽습니다 , 여기서 는 전류, 는 부하 커패시턴스, 는 전압, 는 활동 계수, 는 스위칭 주파수입니다. FinFET의 게이트 커패시턴스에 대한 야구장 번호를 얻고 편집 할 수 있는지 살펴 보겠습니다. I C v α fI=CvαfICvαf
  3. 일종의. 게이트 커패시턴스의 충전 또는 방전이 빠를수록 트랜지스터가 더 빨리 전환됩니다. 더 빨리 충전하려면 더 작은 정전 용량 (기하학적으로 결정) 또는 더 큰 전류 (상호 연결 저항 및 공급 전압으로 결정)가 필요합니다. 개별 트랜지스터가 더 빨리 스위칭한다는 것은 더 자주 스위칭 할 수 있다는 것을 의미하며, 이는 평균 전류 소모 (클럭 주파수에 비례)를 더 많이 초래합니다.

편집 : 따라서 http://www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf 에는 25nm FinFET의 게이트 커패시턴스에 대한 그림이 있습니다. 간단하게하기 위해 0.1fF라고하겠습니다. 분명히 그것은 바이어스 전압에 따라 변하고 트랜지스터 크기에 따라 확실히 변할 것입니다 (트랜지스터는 회로에서 목적에 따라 크기가 조정되지는 않습니다. 트랜지스터의 크기가 모두 같지는 않습니다! 더 큰 트랜지스터는 더 많은 전류를 스위칭 할 수 있으므로 '강합니다', 그러나 더 높은 게이트 커패시턴스를 가지며 구동하기 위해 더 많은 전류가 필요합니다.

1.25 볼트, 0.1 fF, 3 GHz 및 을 연결하면 결과는 입니다. 이 값에 10 억을 곱하면 375A가됩니다. 이것이 3GHz에서 10 억 개의 트랜지스터를 스위칭하는 데 필요한 평균 게이트 전류 (게이트 커패시턴스로 초당 충전)입니다. CMOS 로직에서 전환하는 동안 발생하는 '스루 스루'는 포함하지 않습니다. 또한 평균이므로 순간 전류는 크게 다를 수 있습니다. RC 회로가 충전 될 때 전류가 어떻게 점진적으로 감소하는지 생각해보십시오. 기판, 패키지 및 회로 보드의 커패시터를 우회하여이 변형을 부드럽게 만듭니다. 분명히 이것은 단지 야구장 수치이지만 올바른 크기의 것으로 보입니다. 이것은 또한 다른 기생에 저장된 누설 전류 또는 전하를 고려하지 않습니다 (예 : 0.375 μ Aα=10.375μA

대부분의 디바이스에서 는 1보다 작을 것입니다. 각 클록 사이클에서 많은 트랜지스터가 유휴 상태이기 때문입니다. 이것은 트랜지스터의 기능에 따라 다릅니다. 예를 들어, 클럭 분배 네트워크의 트랜지스터는 매 클럭 사이클마다 두 번 스위치되므로 입니다. 이진 카운터와 같은 경우 LSB는 클럭 사이클 당 한 번 전환되므로 가 0.5이고, 다음 비트는 자주 절반으로 전환 될 때 됩니다. 그러나 캐시 메모리와 같은 경우α = 1 α α = 0.25 α α = 0.000061 ααα=1αα=0.25α매우 작을 수 있습니다. 예를 들어 1MB 캐시를 가져옵니다. 6T SRAM 셀로 구축 된 1MB 캐시 메모리에는 데이터를 저장하기위한 48 백만 개의 트랜지스터가 있습니다. 읽기 및 쓰기 로직, 디멀티플렉서 등을 위해 더 많은 기능을 제공 할 것입니다. 그러나 주어진 클럭 사이클에서 소수만이 전환됩니다. 캐시 라인이 128 바이트이고 매주기마다 새로운 라인이 작성되었다고 가정 해 봅시다. 1024 비트입니다. 셀 내용과 새로운 데이터가 모두 랜덤이라고 가정하면 512 비트가 뒤집어 질 것으로 예상된다. 48 백만 개 중 3072 개의 트랜지스터 또는 입니다. 이것은 메모리 배열 자체만을위한 것입니다. 지원 회로 (디코더, 읽기 / 쓰기 논리, 감지 증폭기 등)는 훨씬 큰 갖습니다.α=0.000061α. 따라서 캐시 메모리 전력 소비가 일반적으로 누설 전류에 의해 지배되는 이유는 스위칭 대신 누설 주위에 앉아있는 많은 유휴 트랜지스터입니다.


4
1V 1A는 이상한 대상이 아니며 ARM CPU는 일반적으로 mW / MHz로 지정됩니다. 이에 비해 전체 Raspberry Pi A +는 700Mhz CPU를 포함하여 1Watt를 사용합니다. 이는 3Mhz가 제안한 것보다 훨씬 많은 것입니다
MSalters

2
클럭 사이클 당 수행되는 작업량이 크게 다르기 때문에 "와트 당 MIPS"를 참조하는 것이 더 유용합니다.
pjc50

1
글쎄, 그것은 칩이 무엇을하도록 설계되었는지에 달려있다. 1.2V에서 3GHz로 작동하도록 설계된 TDP 80W의 칩은 1V 및 1A에서 실행될 수 있지만 1V에서는 속도를 크게 떨어 뜨리고 1A를 끌어 내야합니다. 속도를 더 떨어 뜨려야합니다. 이 경우 3GHz 근처에 가지 않을 것입니다. 그래도 직접 시도하지 않았으므로 실제로 달성 할 수있는 것이 무엇인지 모르겠습니다. 아마도 3MHz는 1V 및 1A에서 i7에 대해 약간 비관적 일 수 있습니다. 이제 언급했듯이 확실히 그 전력 수준에서 실행되도록 칩을 설계 할 수 있습니다.
alex.forencich

6
그들은 간단하지 않습니다. 사실 그것들은 우리가 만든 가장 복잡한 것 중 하나입니다.
joojaa

2
최신 인텔 / AMD CPU는 클럭이 너무 낮 으면 실제로 작동하지 않는 동적 로직 을 적어도 사용 합니다. 예를 들어 인텔 스카이 레이크는 최소한의 효율적인 주파수 / 전압 포인트를 갖습니다. SoC의 전력 / 처리량 수준을 낮추기 위해 가변 듀티 사이클에서 코어를 슬립 모드로 전환합니다 (약 1GHz에서> = 800us (가장 효율적인 f), 휴면 상태). 약 53 분 동안 Efraim Rotem의 IDF2015 Skylake power-mgmt 대화를 참조하십시오 .
Peter Cordes

17

Wikipedia 에 따르면 2011 년에 출시 된 상위 CPU에는 약 0.5 ~ 25 억 개의 트랜지스터가있었습니다. 10 억 개의 트랜지스터가있는 CPU가 64A의 전류를 소비한다고 가정하면 평균 전류는 트랜지스터 당 64nA에 불과합니다. 수 GHz의 작동 주파수를 고려하면 실제로 놀랍지 않습니다.


CPU의 작동 주파수가 높을수록 더 높은 전류가 필요합니까?
Lu Ka

2
일반적으로 전류 여기서 fc는 클럭 주파수이고 k는 상수이고 V는 작동 전압이며 I0은 누설 전류입니다. k는 칩 설계뿐만 아니라 주어진 시간에 스위칭하는 트랜지스터 수에 따라 달라집니다. II0+kfCV2
Spehro Pefhany

4
이 시점에서 CPU를 녹이지 않고 동시에 사용할 수있는 것보다 더 많은 트랜지스터를 CPU에 배치 할 수 있습니다. 따라서 어떤 시점에서든 칩의 대부분은 다크 실리콘입니다 . 전원이 공급되지는 않지만 칩의 다른 부분 (다른 특수 기능을 가진)의 전원이 꺼지는 동안 사용을 기다리고 있습니다. 예를 들어, 벡터 부동 소수점 하드웨어, 벡터 정수 곱셈기 및 벡터 셔플 유닛은 모두 한 번에 포화 될 수는 없지만 단독으로 사용될 때 각각 높은 처리량을 갖습니다. 또한 큰 캐시는 많이 전환되지 않습니다.
Peter Cordes

1
이는 CPU가 AES 및 SHA 암호화 명령 및 인텔의 BMI2 (특히 PEXT / PDEP 비트 추출 / 저장 ) 와 같은 점점 더 전문화 된 하드웨어를 얻는 데 큰 요인입니다 . 일부 워크로드는 가속화 할 수 있지만 사용하지 않을 때는 전원을 켤 필요가없는 트랜지스터 예산과 관련이 있습니다.
Peter Cordes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.