摘要
经济学。设计具有更多内核而不是更高时钟速度的CPU便宜且容易,原因是:
功耗大大增加。随着时钟速度的增加,CPU功耗迅速增加-在散热空间中,以较低速度运行的内核数量可以增加一倍,从而使时钟速度提高25%。四倍,占50%。
还有其他方法可以提高顺序处理速度,CPU制造商可以充分利用这些方法。
在我们的一个姐妹SE网站上,我将大量借鉴有关该问题的出色答案。所以去投票吧!
时钟速度限制
时钟速度有一些已知的物理限制:
传输时间
电信号通过电路所花费的时间受光速的限制。这是一个硬性限制,没有已知的解决方法1。在千兆赫兹时,我们正在接近这个极限。
但是,我们还没有。1 GHz表示每个时钟滴答1纳秒。在那个时候,光线可以传播30厘米。在10 GHz时,光可以传播3厘米。一个CPU内核大约5毫米宽,因此我们将在10 GHz以上的地方遇到这些问题。2
切换延迟
仅考虑信号从一端传播到另一端所花费的时间是不够的。我们还需要考虑CPU中的逻辑门从一种状态切换到另一种状态所花费的时间!随着我们提高时钟速度,这可能会成为一个问题。
不幸的是,我不确定具体细节,也无法提供任何数字。
显然,向其中注入更多的功率可以加快开关速度,但这会导致功耗和散热问题。另外,更大的功率意味着您需要能够处理而又不会损坏的笨重的导线管。
散热/功耗
这是大个子。引用Fuzzyhair2的答案:
最近的处理器是使用CMOS技术制造的。每次有一个时钟周期,都会消耗功率。因此,更高的处理器速度意味着更多的散热。
在此AnandTech论坛主题中进行了一些漂亮的测量,甚至得出了功耗的公式(与产生的热量并存):
感谢Idontcare
我们可以在下图中将其可视化:
感谢Idontcare
如您所见,随着时钟速度增加到特定点,功耗(和产生的热量)的增加非常迅速。这使得无限地提高时钟速度是不切实际的。
功耗快速增长的原因可能与开关延迟有关–仅与时钟速率成比例地增加功率还不够;还必须增加电压以保持较高时钟频率下的稳定性。这可能并不完全正确。请随时指出评论中的更正,或对此答案进行编辑。
更多核心?
那么为什么要增加内核?好吧,我无法确切回答。您必须问英特尔和AMD的员工。但是您可以从上面看到,对于现代CPU,在某些时候提高时钟速度变得不切实际。
是的,多核还会增加所需的功率和散热。但却巧妙地避免了传输时间和切换延迟问题。而且,从图表中可以看到,您可以轻松地将现代CPU中的内核数量增加一倍,而热量开销却与时钟速度提高25%相同。
有些人已经做到了-当前的超频世界纪录仅略低于9 GHz。但是,在保持功耗在可接受范围内的同时,这是一个重大的工程挑战。设计人员在某个时候决定增加更多内核以并行执行更多工作将在大多数情况下更有效地提高性能。
这就是经济的原因-采用多核路线可能更便宜(减少设计时间,制造复杂程度降低)。而且很容易上市-谁不喜欢全新的八核芯片?(当然,我们知道当软件不使用多核时,多核几乎没有用...)
这里是一个缺点多:你需要更多的物理空间来把多余的核心。但是,CPU进程的大小不断缩小,因此有足够的空间放置先前设计的两个副本-真正的权衡是无法创建更大,更复杂的单核。再说一次,从设计的角度来看,增加内核的复杂性是一件坏事 -更多的复杂性=更多的错误/错误和制造错误。我们似乎找到了一种快乐的介质,它具有高效的内核,这些内核足够简单,不会占用太多空间。
在当前工艺尺寸下,我们可以装在单个芯片上的内核数量已经达到极限。我们可能会达到极限,可以很快缩小范围。下一个是什么?我们需要更多吗?不幸的是,这很难回答。这里有人千里眼吗?
其他提高绩效的方法
因此,我们无法提高时钟速度。而且,更多的内核还有另一个缺点-即,只有在运行于其上的软件可以使用它们时,它们才有用。
那么,我们还能做什么?在相同的时钟速度下,现代CPU如何比旧CPU快得多?
时钟速度实际上只是CPU内部工作的一个非常粗略的近似值。并非CPU的所有组件都能以这种速度工作-有些组件可能每两秒钟运行一次,依此类推。
更重要的是每单位时间可以执行的指令数。对于单个CPU内核可以完成多少,这是一个更好的衡量标准。一些指示;有些会花一个时钟周期,有些会花三个时钟周期。例如,除法比加法要慢得多。
因此,通过增加每秒可以执行的指令数量,我们可以使CPU性能更好。怎么样?好吧,您可以使一条指令更有效-也许现在除法只需要两个周期。然后是指令流水线。通过将每条指令分为多个阶段,可以“并行”执行指令-但每条指令仍具有明确的,顺序的,前后对应的指令顺序,因此不需要像多核这样的软件支持做。
还有另一种方式:更专业的说明。我们已经看到了SSE之类的东西,它们提供了一次处理大量数据的指令。不断推出具有相似目标的新指令集。这些再次需要软件支持并增加硬件的复杂性,但是它们提供了不错的性能提升。最近,出现了AES-NI,它提供了硬件加速的AES加密和解密,远远快于软件中实现的一堆算法。
1无论如何,并非没有完全深入理论量子物理学。
2它实际上可能更低,因为电场传播的速度不如真空中的光速快。另外,这仅是直线距离-可能至少有一条路径比直线长得多。