CPU通识课
上QQ阅读APP看书,第一时间看更新

第1节 CPU时代

一个有纸、笔、橡皮擦并且坚持严格的行为准则的人,实质上就是一台通用图灵机。

——艾伦·图灵(1912—1954)

中国科学院大学2019年本科新生录取通知书里的龙芯3号CPU

信息社会的基石:CPU

CPU = 运算器 + 控制器

计算机是一种可以执行计算功能的自动化设备。在信息社会中,无数的计算机每天都在执行大量的信息处理和计算工作,本来属于人的工作可由计算机自动完成,大大提高了社会生产力。

1946年,世界上第一台通用数字计算机ENIAC在美国宾夕法尼亚大学被制造出来,标志着人类社会进入信息化时代。

按照经典的计算机结构模型,一台计算机由5大部分组成:运算器、控制器、存储器、输入设备、输出设备。计算机科学先驱冯·诺依曼(又译作冯·诺伊曼)在1945年写成论文First Draft of a Report on the EDVAC,以101页的篇幅描述了计算机的结构模型,奠定了现代计算机的结构基础,如图1.1所示。

图1.1 冯·诺依曼1945年写的论文的目录,确立了计算机的5大组成部分

冯·诺依曼体系结构是现代计算机共同的模型(见图1.2),现在已经成为每个计算机专业学生在大学必学的知识。无论是高性能的大型科学计算机,还是我们身边的台式计算机、手机,都遵从冯·诺依曼体系结构。

图1.2 冯·诺依曼体系结构

抽象地讲,计算机的主要工作原理如下。

(1)5个部分之间由通信线路进行连接。

(2)要运行的任务(程序)保存在存储器(M)中。程序以连续排列的指令为单位组成,每条指令包含了一项计算操作。

(3)计算机启动后,控制器(CC)从存储器中依次读取指令,将指令包含的信息传送到运算器(CA)中,由运算器解析指令的功能、执行数值运算。

(4)指令执行时,有可能需要从外界读取要加工的数据;控制器向输入设备(I)发出消息,由输入设备把数据传送到计算机的内部。

(5)指令执行结束后,控制器可以把运算器的计算结果存入存储器;控制器也可以向输出设备(O)发出消息,由输出设备把计算结果传送到计算机的外部。

(6)控制器再从存储器中读取下一条指令并送入运算器。

(7)上述“取指令—执行指令—保存结果”的过程多次重复执行,直到程序的最后一条指令执行完成。

这样整个程序就运行结束了,计算机的使用者得到了期望的计算结果。

在实际的计算机中,运算器、控制器两部分经常被一起设计,二者合称为中央处理器(Central Processing Unit,CPU)。CPU的主要任务就是由控制器指挥计算机中的其他部件一起协同工作,并且由运算器执行数值计算。

CPU是计算机中最重要的芯片。CPU每时每刻都在驱动着信息化社会的运转,就像汽车中的发动机一样,是全世界不可缺少的基石。

电脑之心:CPU在计算机中的地位

CPU在计算机中的地位,就像大脑在人体中的地位

CPU经常被称作“电脑之心”,是当之无愧的计算机中枢。

CPU指挥计算机中的其他部件工作。CPU是程序的调用者和运行者,程序的每一条指令都要经过CPU的解析和执行。外界向计算机输入数据,需要CPU进行接收;程序运行结束后,需要CPU发出指示才能把计算结果输出给外界。

CPU是计算机中最复杂的芯片。CPU采用的是超大规模集成电路,现代的芯片制造技术可以在一根头发丝的宽度上排列1000根电路连线。台式计算机中的一个芯片就能包含50亿个晶体管,而人脑中的神经元的数量也就在800亿个左右。一台计算机中,CPU是复杂度最高、工作最繁忙的部件。主流CPU中的晶体管数量见表1.1。

表1.1 主流CPU中的晶体管数量

CPU承载了计算机中最本质的技术原理。CPU的架构从根本上定义了一台计算机的核心功能,CPU原理涵盖了整个计算机大部分的运行过程。一本计算机原理书会用最大篇幅讲述CPU的原理。因此对于计算机原理的学习者来说,从CPU入手是最直接的途径,也是必由之路。

从大到小:CPU外观的变化

从70多年前的早期计算机到现在的手机,CPU的基本原理不变

电子计算机的发展已经有70多年的历史,制造工艺历经电子管、晶体管、集成电路(Integrated Circuit,IC)等多个阶段,体积不断变小,计算速度不断提升。

在计算机发明的最初年代,计算机的特点就是“体积大”。看老照片就可以发现,一台计算机要占用多个房间,一个CPU要占据几个机柜的空间。

到20世纪70年代,得益于集成电路技术,个人计算机的CPU能做成几厘米见方的一个芯片。

而在如今的移动计算年代,手机、平板电脑的CPU只是芯片里面集成的一个几毫米见方的电路模块,只有把芯片打开才能看到里面的CPU。

三代CPU的外观如图1.3所示。

图1.3 三代CPU的外观:机柜、独立芯片、芯片内的电路模块

但是,从最初的“大计算机”到现在的手机,其原理和架构是一脉相传的。现在的计算机、智能设备中都要有一个CPU,虽然它们的计算能力已经远远超过ENIAC,但是仍然处处体现出它们是计算机前辈的“缩影”。

国之重器:CPU为什么成为信息技术的焦点?

CPU影响国家经济发展和信息安全

有没有想过,小小的CPU为什么会成为国之重器?

在全球范围内,高端CPU的设计技术被少数发达国家的企业掌握,CPU不可避免地成为国家之间博弈的筹码。如果一个国家没有自己的CPU企业,在信息系统中只能大量采用国外CPU产品,那么无论是台式计算机、服务器,还是工业控制等领域广泛使用的高性能CPU,都无法摆脱被国外产品长期垄断的命运。

从经济角度看,每年从国外进口的CPU数量巨大,信息产业的高额利润大部分被国外厂商赚取;从知识产权角度看,进口CPU的知识产权被国外把控,高端技术难以引进;从信息安全角度看,国外产品往往不提供设计资料和源代码,使用过程中经常出现后门和漏洞,国家的重要信息数据有被窃取和泄露的巨大风险。CPU在计算机、通信设备、工业控制设备中使用广泛,CPU的缺少会导致企业的产品生产和经营活动受到严重影响。

CPU就像发动机、航空航天技术一样,是人类创造出来的高精尖技术。对于强烈依赖信息技术来驱动技术转型、实现产业升级的国家,掌握CPU技术成为影响一国经济发展和信息安全的焦点。

CPU分成哪些种类?

世界上第一款商用计算机微处理器是1971年发布的Intel 4004

CPU家族庞大,种类繁多,可以按不同的方式进行分类,如图1.4所示。

图1.4 CPU的多种分类方式

按照功能的适用范围,可以将CPU分成通用CPU和专用CPU。

通用CPU可以用在不同的场合,不局限于某一种应用,在设计上往往采用共性的结构,运行常用的操作系统、应用软件。常见的台式计算机、服务器、笔记本计算机、手机中的CPU都属于通用CPU。

专用CPU面向某一应用领域专门设计,往往采用特殊结构来最大化发挥其在该领域的优势,也可以牺牲掉不必要的功能。专用CPU运行的操作系统也往往是根据需求定制的。例如在汽车上,面向整车状态监测而专门设计一个CPU,只用于监测特定的物理量,软件固化烧写在CPU内部的存储模块中。在可穿戴设备中,针对节省电能的要求设计的结构简单、低主频、低功耗的CPU。在智能门锁中,为了支持按键、刷卡、蓝牙等多种开锁方式而专门设计的低功耗CPU。

按照制造工艺,可以将CPU分成电子管CPU、晶体管CPU、集成电路CPU,以及超大规模集成电路CPU。

电子管CPU是第一代,使用时间从1945年到20世纪50年代末。

晶体管CPU是第二代,主要活跃于20世纪50年代末到20世纪60年代。1954年,美国贝尔实验室研制出世界上第一台全晶体管计算机TRADIC,装有800个晶体管。

集成电路CPU是第三代,始祖是1971年发布的Intel 4004,这也是世界上第一款商用计算机微处理器,在一块芯片上集成2250个晶体管。

超大规模集成电路CPU是第四代,一般是指所包含的晶体管数量庞大(例如超过100万个)的芯片。龙芯CPU也属于这一代。

按照使用场合,可以将CPU分成科学计算CPU、信息化设备CPU、移动计算CPU、嵌入式CPU、微控制器CPU。按这一顺序,CPU的性能逐渐降低,而使用数量呈指数级增长。

科学计算CPU的特点是数值计算能力强,计算单元多,适合于大量CPU(几千个及以上)互相连接组成计算集群。科学计算CPU主要用于高性能的超级计算机。

信息化设备CPU通常指台式计算机、服务器、笔记本计算机中的CPU,特点是计算能力受应用需求的发展牵引,兼顾计算性能、成本、功耗的均衡设计。

移动计算CPU通常指手机、平板电脑中的CPU,特点是注重控制功耗、面积,倾向于采用世界最先进的制造工艺,经常和移动通信模块共同组合成一个电路芯片。

嵌入式CPU一般性能较低,功耗也相应较低,成本低,自带面向控制领域的丰富接口,大量用在工业控制和电子设备上。

微控制器CPU则比嵌入式CPU更为低端,虽然体积小,但是用量巨大。现在只要是带有智能控制功能的电子设备都会包含微控制器,甚至我们每个人身上都可能携带了好几个微控制器。未来一旦真的实现“万物互联”,微控制器将无处不在。

微观巨系统:为什么说CPU是世界难题?

在一根头发丝的宽度上排列几千根电路连线

CPU是一个典型的微观巨系统,可以算是人类制造出来的最精密、最复杂的工程产品。

1.电路设计复杂

CPU是所有集成电路中最复杂的。CPU核心源代码至少上百万行,模块之间存在复杂的网状调用关系,复杂度随代码行数的增加呈指数级增长。高端CPU集成了一个电路设计企业多年的经验。一个缺乏CPU设计技术知识的人员,即使拿到一个CPU的源代码,也几乎不可能在短时间内读懂、消化和掌握。

CPU集成了高性能计算的理论研究成果。随着计算机结构的发展,CPU也不断加入新的学术成果,例如流水线、动态调度、多发射、猜测执行等高级机制。几十年来大量计算机科学家不遗余力地挖掘性能“油水”,每一轮发展都会使CPU的复杂性提升一截。

2.生产工艺复杂

CPU的生产制造更需要世界级的高端装备。半导体电路进入纳米时代,这意味着晶体管本身的最小尺寸、两个晶体管之间的最小距离都已经进入纳米级别的微观尺度。例如手机CPU已经采用7nm工艺来生产,相比之下,硅原子的直径约10-10m,这样算来,1nm与10个硅原子连接起来的长度相近,芯片中两个晶体管之间的最小距离也就是不到100个硅原子!全球能够制造这样精密芯片的企业不超过5家。

3.工程细节复杂

CPU产品还要考虑大量工程细节,例如结构参数、材料、制造、可靠性,这些知识的广度和深度都超过了科学原理。因此在CPU团队中不仅需要多方面的复合型人才,更需要这些人才在实践中长期磨合。

CPU的开发过程不能全靠自动化的设计工具,反而强烈依赖于人工设计。开发简单芯片只需要使用电子设计自动化(Electronic Design Automation,EDA)工具,再加上一种类似于C语言的电路描述语言就能快速实现芯片设计需求。而为了增强性能、降低功耗,CPU的核心模块经常需要手工定制电路,可以理解为在纳米级尺度的电路板上对晶体管进行“排兵布阵”。因此,电路定制能力是CPU厂商实力的一个核心标志。

4.软件生态复杂

CPU需要建设配套的软件生态,其复杂性远远超过CPU本身。CPU作为计算机中的元器件,本身是无法独立工作的,必须要有相配合的操作系统、编译器、开发环境、应用软件才能发挥其使用价值。这些软件也都是超过千万行代码的大型系统,需要IT产业中很多厂家的协作。

硅谷的企业之所以保持领先地位,除了技术先进之外,更重要的是形成了产业合作的集聚力量、遵循了建设生态的成功模式(见图1.5),从而能实现生态的垄断。20世纪90年代Windows-Intel的组合能够称霸个人计算机(Personal Computer,PC)业界,得益于其在生态方面的成功远远超过技术本身。

总的来说,做出CPU是容易的,难的是做出高端CPU。中国有很多厂商做中低端CPU,例如嵌入式CPU、微控制器CPU,这些是比较容易开发出来的。很多学校计算机专业都讲解CPU原理,稍有能力的本科生都可以做出能够工作的CPU原型。开源社区上能找到很多低端CPU的设计资料,甚至还有很多“自制CPU教程”的图书。

图1.5 软件生态和计算机硬件

但是高端CPU仍然属于IT行业的明珠,在台式计算机、服务器、科学计算中使用的CPU,放眼全球也只有不到10个技术先进的国家能做出来。