为什么要使用多核处理器?

为什么要使用多核处理器?

为什么芯片包含越来越多的核心?为什么不制造更大的单核处理器?制造起来更容易吗?是为了让程序使用单独的核心进行多线程吗?

答案1

多核趋势是一种工程方法,可帮助 CPU 设计人员避免频率不断增加带来的功耗问题。随着 CPU 速度上升到 3-4 Ghz 范围,提高速度所需的电能开始变得令人望而却步。造成这种情况的技术原因很复杂,但随着频率的提高,热损失和漏电流(仅通过电路而不做任何有用工作的功率)等因素都会更快地增加。虽然构建 6 GHz 通用 x86 CPU 肯定是可能的,但事实证明这样做并不经济。这就是转向多核的原因,也是我们将看到这种趋势至少持续到并行化问题变得无法克服的原因。目前,虚拟化趋势在服务器领域有所帮助,因为它使我们能够有效地并行化聚合工作负载,至少目前是这样。

举个实际例子,E5640 Xeon(4 核 @ 2.66 GHz)的功率范围为 95 瓦,而 L5630(4 核 @ 2.13 GHz)仅需 40 瓦。对于大多数功能兼容的 CPU,这相当于多出 137% 的电力,而 CPU 功率则多出 24%。X5677 将速度提高到 3.46 GHz,并具有更多功能,但处理能力仅多出 60%,而电力多出 225%。

现在将 X5560(2.8 GHz、4 核、95 瓦)与较新的 X5660(2.8 GHz、6 核、95 瓦)进行比较,插槽中的计算能力增加了 50%(可能,假设阿姆达尔定律对我们来说还算友好),无需任何额外的电力。AMD 的 6100 系列 CPU 在总体性能方面与 2400\8400 系列相比也有类似的提升,同时保持了电力消耗的平稳。

对于单线程任务来说,这是一个问题,但如果您的要求是向分布式处理集群或虚拟化集群提供大量聚合 CPU 能力,那么这是一种合理的方法。这意味着对于当今的大多数服务器环境来说,扩展每个 CPU 中的核心数量比尝试构建更快\更好的单核 CPU 更好得多。

这一趋势将持续一段时间,但存在挑战,不断扩展内核数量并不容易(随着内核数量的增加,保持足够高的内存带宽和管理缓存变得更加困难)。这意味着,目前每个插槽内核数量的爆炸性增长将不得不在几代内放缓,我们将看到其他方法。

答案2

几年前,单处理器的计算能力和时钟频率达到了顶峰,要制造出比现有处理器更强大和/或更快的处理器并不容易;因此,主要的 CPU 制造商(英特尔、AMD)改变了策略,转向多核。这当然需要应用程序开发人员付出更多努力才能充分利用多任务处理的全部功能:运行单个任务的程序不会从多核 CPU 中获得任何好处(尽管系统总体上获得了好处,因为如果单个进程将单个 CPU 的使用率提高到 100%,系统不会锁定)。

关于物理架构(多核处理器而非多个单核处理器)……你应该问英特尔。但我确信这与单 CPU 插槽的主板比多 CPU 插槽的主板更容易设计和制造有关。

答案3

让它们更快变得更为困难。

问题是,你需要同时处理一堆指令,当前的 x86 CPU 可以同时处理 80 条或更多的指令,这似乎是极限,因为它受到了 P4 的影响,哎呀,奔腾 Pro 在 1995 年就执行了 40 条指令。典型的指令流在此之外是不可预测的(你必须猜测分支、内存访问等)才能同时执行多个指令(486 执行 5 条,奔腾执行 10 条,勉强)。

因此,虽然你可以让它们更宽(更多功能单元来执行每条指令)、更长(更深的管道来隐藏延迟),但这似乎并没有多大用处。而且我们似乎也遇到了时钟速度的瓶颈。而且我们仍然超出内存容量。因此,分成多个 CPU 似乎是一个胜利。此外,它们可以共享缓存。

这其中还有很多内容,但可以归结为传统程序无法在我们能够想象如何设计和构建的任何硬件上显著地运行得更快。

现在,如果可预测性不是问题的话,例如,许多科学问题和图形(它们通常归结为将这组数字乘以那组数字),情况就不是这样了,因此英特尔的 IA64(Itanium)和 GPU 很受欢迎,它们的速度越来越快,但它们不会帮助您更好地运行 Word。

答案4

摩尔定律基本上,处理器无法再变得更快(5 年前频率达到 3 GHz,之后从未超过这个数字),因此通过增加更多内核,处理器的性能将变得更强大。

相关内容