针对“普通级(以上)厨师”的高级计算机概念: 术语(第 1 部分)

开始之前,我想通过下面两篇博客解释一些术语。 如果对这些概念已经有所了解,可以直接跳至下一部分。  我建议所有软件读者参阅其他关于介绍线程的博客。 这个领域存在许多混淆,即使我们软件专业人员也无法避免。

我们首先来了解一下什么是处理器、CPU、内核以及封装。 电视等大众媒体在使用这些术语时通常比较随便。 然后我们介绍线程,尤其是硬件和软件线程之间的区别。 人们通常容易混淆这些不同线程之间的区别,即使计算机编程人员也不例外。

内核? CPU? 封装? 芯片? HUH?

请大家注意下图 CPU 的左侧。 在奔腾® 处理器时代,人们通常将计算机中执行程序指令的组件(即计算机的大脑)称为“CPU” 或‘处理器’。 这两者之间几乎没有区别。 ‘计算机芯片’指上面刻有集成电路的芯片,比如 CPU。 ‘封装’指由塑料和金属制成的外壳,用于包裹和保护芯片不被大量针脚/接口刺穿,同时也是出于美观的考虑。

如今,处理器同一封装内集成了多颗 CPU 和多块芯片,每颗 CPU 运行多条线程。 为跟上时代发展的脚步,这些术语将会不断予以更新。 请看图片的右侧。 以前称 CPU,现在称之为‘内核’。 处理器在一块芯片上包含多个内核;现在笔记本电脑的处理器通常包含 2 个内核;台式机可包含 4-6 个;而服务器内每颗处理器所包含的内核多达 18 个。 封装可以容纳一组以上的芯片集成电路。 当然还包含处理器芯片。 封装还能固定闪存以及其他专用处理器等等。

Pentium cores vs Xeon multi-core

                                       1995                                                                    2015

CPU 图: 当时与现在的处理器。

让我们来看看芯片图。 左边是大约 1993 年的原装奔腾芯片。 右边是大约 2013 年的英特尔® 至强™ 处理器 E5-2600 v3。 左边奔腾处理器其封装内的一块芯片上包含一颗 CPU。 右边至强处理器的一块芯片上有 18 个内核,每个内核相当于一颗(性能极高并得到增强)老式奔腾 CPU。 (你能找到每个内核的位置吗?)

Pentium processor circa 1993

Image of Xeon E5-2600 siliconImage of Pentium die relative to Xeon E3

芯片图 奔腾对比至强 E5-2600 v3+

我认为,下列博客中所涉及的‘处理器’均指一块包含所有内核及其支持电路的芯片。 内核则指执行计算的单个处理单元(过去称为 CPU),这样的单元有许多个(并且每个单元都能够同时执行两条以上的线程)。 封装指由金属和塑料制成的扁平长方形容器,用以容纳独立芯片上的多个专用处理器、内存和其他支持电路。

明确术语的含义后,我们接下来看看困扰编程人员(甚于其他人)的模糊概念。

接下来: 我当然知道什么是线程...难道我不知道吗?

+开个玩笑,芯片图中至强处理器的右侧是经过放大的奔腾处理器(800 纳米),图中显示的是如果使用目前的制造技术(22 纳米)的大小。 这种表现形式比较粗略,因为实际大小根据您采用的晶体管数量(14 亿 / 750 万= x187)或特征尺寸((800nm)^2 / (22nm)^2 = x1322))而不同。 所显示的是更为保守的 x187。 当然,我知道没有把实际晶片尺寸考虑在内。

 

standard
有关编译器优化的更完整信息,请参阅优化通知