为什么CPU需要这么多电流?


37

我知道一个简单的CPU(例如Intel或AMD)可以消耗45-140 W的功率,并且许多CPU的工作电压为1.2 V,1.25 V等。

因此,假设CPU工作在1.25 V且TDP为80 W ...,它将使用64 Amps(很多安培)。

  1. 为什么CPU的电路需要超过1 A的电流(假设使用FinFET晶体管)?我知道大多数时候CPU处于空闲状态,而60 A都是“脉冲”,因为CPU有时钟,但是为什么CPU无法在1 V和1 A下工作?

  2. 一个小型且快速的FinFET晶体管,例如:工作在3.0 GHz的14 nm需要多少安培(大约)?

  3. 更高的电流会使晶体管更快地打开和/或关闭吗?


26
现代CPU(没有一个是“简单的”)需要多个电压轨,这些电压轨都具有自己的功率要求。您的问题有很多假设,并且有很多错误的陈述。您必须考虑所有电源要求,而不仅仅是单个电源。
Wossname

8
在现代CPU上进行FinFET晶体管计数。并非每个 FET都将电流从Vdd传导到地,但即使如此,64 A也分布在*数量非常多*的这些开关FET中。
glen_geek

9
@EricLippert“它必须成为拉动64安培出墙” -我有一个怀疑,CPU就不会在110 V.进行操作
安德鲁·莫顿

6
守恒的量是能量,平均来说也是功率。如果CPU消耗64瓦,那么电源必须从插座上消耗至少 64瓦。即使在110V时也小于1A。
MSalters

6
@EricLippert计算机的主板包含一个多相DC-DC转换器,该转换器将电源电压(在台式机中为12V,在笔记本电脑中为12-19V)降低到核心电源电压。这是在恒定功率下完成的,因此输出电流最终是输入电流的10-20倍。更不用说台式计算机中的12V电源也来自开关电源,该电源也可以以恒定功率进行转换。您计算机中的CPU可能至少有100个电源和接地引脚来处理电流。
alex.forencich

Answers:


69
  1. 凭空想象,CPU并非“简单”的。因为它们有数十亿个晶体管,所以每个晶体管在闲置时都会有少量泄漏,并且在开关时必须充放电和放电栅极以及互连其他晶体管中的电容。是的,每个电流消耗的电流很小,但是当您将其乘以晶体管的数量时,最终得到的电流却惊人地大。64A已经是一个平均电流...开关时,晶体管的消耗电流可能会比平均电流大很多,而旁路电容器可将其消除。请记住,您的64A数字来自TDP的反向工作,从而达到了真正的64A RMS,并且在许多时间范围内(在一个时钟周期内变化,在不同操作期间变化,睡眠状态之间变化等)周围都可能存在显着变化。 )。也,您也许可以运行设计为在3 GHz上以1.2伏特和64 amps在1伏特和1安培下工作的CPU。...也许在3 MHz上。尽管那时您必须担心芯片是否使用具有最小时钟频率的动态逻辑,所以也许您必须将其运行在几百MHz至GHz的范围内,并定期将其循环进入深度睡眠以获得平均值。当前下降。最重要的是功率=性能。实际上,大多数现代CPU的性能在散热方面受到限制。因此,也许您必须将其运行在几百MHz至GHz的范围内,并定期将其循环进入深度睡眠,以降低平均电流。最重要的是功率=性能。实际上,大多数现代CPU的性能在散热方面受到限制。因此,也许您必须将其运行在几百MHz至GHz的范围内,并定期将其循环进入深度睡眠,以降低平均电流。最重要的是功率=性能。实际上,大多数现代CPU的性能在散热方面受到限制。
  2. 这是相对容易计算的,其中是电流,是负载电容,是电压,是活动因子,是开关频率。我将看看是否可以获得FinFET栅极电容的基本数字并进行编辑。 Ç v α ˚FI=CvαfICvαf
  3. 有点。栅极电容充电或放电的速度越快,晶体管的开关速度就越快。更快充电需要较小的电容(由几何形状确定)或较大的电流(由互连电阻和电源电压确定)。各个晶体管的开关速度快,则意味着它们可以更频繁地开关,这导致平均电流消耗更多(与时钟频率成比例)。

编辑:因此,http : //www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf中有一个25nm FinFET栅极电容的数字。为了简单起见,我将其称为0.1 fF。显然,它会随偏置电压而变化,并且肯定会随晶体管的大小而变化(晶体管的大小取决于电路中的用途,并非所有晶体管的大小都相同!更大的晶体管“更坚固”,因为它们可以切换更多电流,但它们也具有更高的栅极电容,并且需要更多的电流来驱动)。

堵漏1.25伏,0.1 FF,3千兆赫,和,则结果为。将其乘以10亿,您将获得375A。这是在3 GHz频率下切换10亿个这些晶体管所需的平均栅极电流(每秒向栅极电容中的电荷)。这不包括“穿通”,这将在CMOS逻辑切换期间发生。它也是一个平均值,因此瞬时电流可能会有很大变化-考虑一下当RC电路充电时电流如何渐近减小。旁路基板,封装和电路板上的电容器,以消除这种变化。显然,这只是一个粗略的数字,但这似乎是正确的数量级。这也没有考虑泄漏电流或其他寄生效应中存储的电荷(即 0.375 μ α=10.375μA

在大多数设备中,将远远小于1,因为每个时钟周期中许多晶体管将处于空闲状态。这将根据晶体管的功能而变化。例如,时钟分配网络中的晶体管在每个时钟周期切换两次时,将具有。对于像二进制计数器这样的东西,当它在每个时钟周期切换一次时,LSB的为0.5,而当它切换一半的频率时,下一个位的,等等。α = 1 α α = 0.25 α α = 0.000061 ααα=1αα=0.25α可能很小。以1 MB的缓存为例。由6T SRAM单元构建的1 MB高速缓存存储器具有4,800万个晶体管,仅用于存储数据。它具有更多的读写逻辑,解复用器等功能。但是,只有少数几个会在给定的时钟周期内切换。假设高速缓存行为128字节,并且在每个周期上都写入了新行。那是1024位。假设信元内容和新数据都是随机的,则预计将翻转512位。在4,800万个晶体管中,有3072个晶体管,即。请注意,这仅适用于内存阵列本身。支持电路(解码器,读/写逻辑,感测放大器等)将具有更大的α=0.000061α。因此,为什么高速缓存存储器的功耗通常由泄漏电流决定-这就是很多闲置的晶体管只是围绕泄漏而不是开关。


4
1V 1A不是一个奇怪的目标,ARM CPU的规格通常被指定为mW / MHz。相比之下,整个Raspberry Pi A +都使用1Watt的功率,包括700 Mhz的CPU-比3Mhz的建议值要低得多
MSalters

2
提及“每瓦MIPS”更为有用,因为每个时钟周期完成的工作量千差万别。
pjc50

1
好吧,这取决于芯片的设计用途。TDP为80W的芯片可以在3 GHz的条件下以1.2伏的电压运行,也许可以在1V和1A的电压下运行...但是在1V的电压下,您将不得不大幅降低速度,并使其消耗1A的电流。将不得不进一步降低速度。在这种情况下,您将无法获得接近3 GHz的带宽。但是,我不知道您实际上将能够实现什么,因为我自己还没有尝试过。对于1V和1A的i7,也许3 MHz有点悲观。现在,正如您所提到的,肯定有可能设计一种以该功率水平运行的芯片。
alex.forencich

6
它们并不简单。实际上,它们是我们构建过的最复杂的事物之一。
joojaa

2
现代的Intel / AMD CPU的使用至少一些动态逻辑,如果主频也将实际上无法工作。例如,英特尔Skylake的最低有效频率/电压点。为了达到SoC更低的功耗/吞吐量水平,它以可变占空比(在大约1 GHz时> = 800us,可能在大约1 GHz(最有效的f),处于睡眠状态)将内核切换为休眠状态。观看Efraim Rotem的IDF2015 Skylake power-mgmt演讲,大约需要53分钟,演讲时间为
Peter Cordes

17

根据维基百科,2011年发布的顶级CPU大约有0.5到25亿个晶体管。假设具有10亿个晶体管的CPU消耗64A电流,则每个晶体管的平均电流仅为64nA。考虑到几GHz的工作频率,实际上它很少。


是否为更高的CPU工作频率需要更大的电流?
陆卡

2
通常,电流其中,fc是时钟频率,k是常数,V是工作电压,I0是泄漏电流。k会根据给定时间切换的晶体管数量以及芯片设计而有所不同。II0+kfCV2
Spehro Pefhany

4
此时,我们可以在CPU上放置比在不熔化的情况下可以同时使用的晶体管更多的晶体管。因此,在任何给定时间,芯片的很大一部分都是深色硅片:没有通电,而是坐在那里等待使用,而芯片的其他部分(具有不同的专用功能)则断电。例如,向量浮点硬件,向量整数乘法器和向量混洗单元不能一次全部饱和,但是当单独使用时,它们都具有很高的吞吐量。此外,大型缓存不会切换太多。
彼得·科德斯

1
这是CPU获得越来越专业的硬件(例如AES和SHA加密指令以及英特尔的BMI2(尤其是PEXT / PDEP位提取/存储))的一个重要因素。与晶体管预算有关的事情可以加快某些工作量,但在不使用时不必打开电源。
彼得·科德斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.