爱上编程:给孩子的计算机入门书
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1节 计算机的“大脑”——CPU

首先,我们来介绍一下计算机最重要的部位,它的“大脑”——中央处理器(Central Processing Unit,简称CPU)

简单来说,CPU就是处理所有运算的核心部件,也叫芯片。所有的计算机中都有CPU。

我们举个例子,第1章中我们提到过,计算器程序可以帮助我们计算数字,只要我们输入数字和运算符号,计算机就能马上给出答案。计算机是如何做到的呢?秘密就在CPU里面——计算机把数字和运算符号传递给CPU,CPU进行计算,然后再把结果告诉我们。

当然,CPU不仅仅能计算数字,它还可以做很多逻辑运算。可以说,计算机能完成的所有事情,都是靠CPU协调计算机的其他部分来完成的。

CPU这么强大,它到底在哪里呢?下面,我们就来找找看。

我们还是以台式计算机为例,如图1-0-1所示,右侧黑色的箱子就是台式计算机的机箱,CPU就在这个机箱里面。我们拆开来看,如图2-1-1所示,有风扇的地方就是CPU了。

图2-1-1 机箱内部

在CPU外部,有一个风扇形状的罩子,没错,那就是风扇。

这里需要给小朋友们特别说明一下。计算机的各个部件都很精密、脆弱,我们要好好保护它,在对计算机没有深入了解之前,千万不要自己动手拆卸它们,否则很容易造成不可挽回的损害。

机箱里的风扇

为什么CPU边上需要配置风扇呢?因为CPU是通过电来工作的,台式机的CPU只有手掌心那么大,但是上面有上亿个晶体管构成的集成电路,这么多电路一起工作,就会产生大量的热量,如果没有风扇,温度过高,那么CPU就会因此受到损害。

我们上边说的都是台式计算机,其他计算机也是类似的。

我们再来看看手机中的CPU。如图2-1-2所示,打开手机的外壳,我们就可以看到手机的电路板,CPU就嵌在里面。当然,不同型号的手机,CPU的位置和大小都不一样,我们可以对比一下台式计算机和手机的CPU。

图2-1-2 手机内部

从外观来看,两者最大的不同就是尺寸的大小。为什么会有这样的不同呢?这其实跟应用场景的不同有关系。

台式计算机一般都摆放在桌面上,可以放置的空间比较大,因此能容纳体积较大的CPU;CPU体积大,耗电就多,产生的热量也多,而台式计算机可以在CPU上面加置风扇,这样可以更好地散热;同时,台式计算机一般不会来回搬动,可以使用比较稳定的电源。所以,台式计算机的大小和耗电都没有特别的限制,我们可以在CPU里放置更多的晶体管线路,以追求更快的运算速度。

再来看看手机里的CPU。因为我们一般都是在移动的环境下使用手机的,手机使用的场景也比较复杂,没有稳定的电源,只能靠电池来供电;手机空间太小,也就没有办法安装风扇。所以,手机的CPU尺寸不能太大,耗电也不能太高。这就注定了CPU要设计得尽量小、尽量省电,所以,手机CPU的性能也是有限的。

那么,CPU内部又是由什么构成的呢?怎么比较不同的CPU呢?

CPU的真面目——硅

如图2-1-3所示,台式计算机的CPU就是一个长满了针脚的卡片,大概有手掌心大小。下面,让我们继续走近CPU,探索它外表之下的故事。

图2-1-3 CPU

如果我们拆开CPU外部这层塑料或者陶瓷的卡片,就能看到CPU的真面目——硅。要在这么小的物体上雕刻出上亿个晶体管电路,只有硅这样的材料才能满足硬度和导电性的要求。最重要的是,硅在地球上非常容易获得。

说到这里,大家是不是好奇硅到底是什么呢?

硅是一种类金属材料,而且在地球上到处都是。沙子的主要成分就是硅,只不过沙子里有太多其他元素,无法直接使用,所以需要先提纯。

怎么在这么小的硅片上雕刻出这么多晶体管呢?这里的技术含量确实非常高,尤其是对精度的要求达到了纳米(纳米是长度单位,1米等于10亿纳米)的级别,拿我们的头发来说,一根头发丝的直径大概有几万纳米,而制作CPU需要在硅片上雕刻出万分之一头发丝粗细的电路,可想而知CPU的生产工艺有多复杂。

英特尔

“英特尔”就是CPU上常出现的“intel”标志所代表的公司,它是台式计算机和笔记本电脑CPU的主要生产厂商。

采用了英特尔CPU的电脑都会在外部包装上有明显的“intel”标志,小朋友看看自己家的电脑上有没有这个标志吧。

随着手机等各种移动计算机的普及,人们对CPU的尺寸需求越来越小,性能需求却越来越高。在CPU制造行业有一个有趣的定律:CPU上集成电路的数量每隔18—24个月就会增加一倍,性能也将提升一倍。这就是英特尔联合创始人戈登·摩尔(Gordon Moore)提出的“摩尔定律”。

那么,CPU的生产会不会一直遵循摩尔定律呢?显然是不会的,因为它还受到物理因素的限制。

我们对任何物质进行分割,总会分割到一定程度就不能再分割了,这个不能再被分割的部分叫原子。虽然大千世界的物质千姿百态,但万事万物都是由原子构成的,包括我们的身体。这就是大自然的神奇所在。

原子的大小就是摩尔定律的极限。原子的直径大概只有0.1纳米,目前CPU的生产精度已经逼近这个极限了。

那怎样才能突破CPU的极限呢?其实,业内已经在进行各种尝试,一种方式是找到比硅更好的材质;另一种方式是彻底改变目前晶体管电路的架构,找到更省资源、更高效的模拟计算方式。

这里我们需要解释一下,晶体管电路这种模拟计算的方式,其实并没有大家想象的那么神秘,它是没有意识的,比如当我们让计算机进行数学运算时,它其实并不知道自己在“算数”,它只是按照人类的命令进行固定的操作而已,它也并不清楚运算的意义,是人类赋予了计算机运算的意义。

举个例子,我们想象一下在桌子上有一堆大米,我们想数一下这堆大米的数量是不是成对的。我们可以借助家里的电灯来完成——数到第一颗的时候,就打开灯,再数到一颗,就关掉灯,以此类推。当我们把米粒都数完以后,如果灯还亮着,就说明大米粒的数量不是成对的,反之,就是成对的。这里电灯的开和关本身没有意义,是我们人类用它来代表数量是否成对,用这种方式来模拟计算。

再举个例子,如图2-1-4所示,算盘其实也可以被看作一种计算机,算盘的口诀就是一种模拟计算的方式,我们只需要按照口诀进行操作,算盘就能帮我们算出想要的结果,但是,算盘本身是不知道自己在做什么的,是我们人类赋予了它意义。

图2-1-4 算盘

晶体管电路也是如此。我们将电流在不同线路经过后的表现来代表不同的含义,只不过它比算盘更复杂、更精密而已。如果我们能找到更好的模拟计算的方式,就可以突破目前CPU的性能极限。晶体管具体是怎样模拟计算的,我们会在后面的章节讲解哦。

当然,除了继续挖掘单个CPU的潜力以外,我们还有另外一种方式来打破极限,那就是让多个CPU协同作战,“三个臭皮匠,赛过诸葛亮”,人多力量大。我们甚至还可以在一个CPU内部做出多个“核”等。

给CPU做个体检

在上节,我们了解了CPU的结构和材料。这么多大大小小、不同用途的CPU,虽然材质一样,差异却是巨大的。就像我们人类,虽然是同一物种,但大家的身高、体重等都有所差异。下面,我们就来给CPU做个“体检”,看看CPU之间的不同吧。

怎么给CPU做体检呢?在哪里可以看到CPU的信息呢?又到实际操作的环节了,小朋友们,请跟着下面的步骤去实际操作一下吧。

我们以台式计算机或者笔记本电脑为例。首先,在计算机的屏幕上找到“计算机”图标;然后,在图标上单击鼠标右键,就会弹出如图2-1-5所示的菜单;接着,点击“属性”,就会看到如图2-1-6所示的界面。

图2-1-5 在“计算机”图标上单击右键

图2-1-6 查看电脑属性

在这个界面上,我们就可以看到这台计算机的基本信息了。图2-1-6中红色标记部分就是CPU的信息。

如果计算机的操作系统不同,那么这个操作步骤也会略有不同。不过没关系,你还记得我们曾经聊过的搜索引擎吗?任何不明白的事,我们都可以去问它哦。尝试去搜索一下自己寻找答案吧。

下面,我们来解释一下CPU的基本信息。图2-1-6中红色标记部分如下:

Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz  2.70 GHz

首先,“Intel(R)”是个CPU的品牌,说明它是英特尔公司生产的;“R”是英文单词“Register”的缩写,代表“注册商标”的意思。

接下来,“Core(TM) i5-5257U CPU”代表了CPU的型号,其中“i5”是主版本型号。怎么理解主版本型号呢?举个例子,就像我们上学的年级——一年级、二年级等,不同的年级代表着不同的学习阶段,这样别人就可以通过年级直观地了解我们的很多信息,比如上过几年学、学过哪些课程、大概的知识体系等。同样的道理,我们通过主版本号就能了解CPU的很多信息,比如这是英特尔的第几代产品、性能的大概情况、特性等。

我们继续来看,“2.70GHz”代表什么意思呢?Hz是频率的单位,中文读作“赫兹”,意思就是1秒钟内进行周期性动作的次数,在这里就是指CPU在1秒内运算的次数。G是数量单位,就像我们说的“百”“千”“万”一样,1G等于1000000000,也就是10亿,“2.70GHz”翻译过来,就是CPU每秒钟会计算27亿次。很显然,次数越多代表CPU的性能越强。

当然,我们上一篇也讲过,CPU是通过电流流过电路来模拟计算的,运算的频次越高,代表着电流流过的频次越高,发热就会越厉害,对制造的工艺要求也就越高。小朋友们,你有没有过这样的体验,当我们玩手机或平板电脑一段时间之后,手机或平板电脑的背面就会很热,这其实就是CPU一直在高速运转的缘故。

赫兹

赫兹其实是一个人名,他的全名叫海因里希·鲁道夫·赫兹(Heinrich Rudolf Hertz)。赫兹是一位了不起的德国科学家,他在1888年首先证实了电磁波的存在,并对电磁学做出了巨大贡献。为了纪念他,科学界将他的名字作为频率的国际单位制单位。

未来大家会遇到很多将人名作为单位的情况,这样的人,一般都是大名鼎鼎的科学家哦。

最后,又出现了一个“2.70 GHz”,这是什么意思呢?这代表这款CPU有两个“核”。这里的“核”我们可以理解为小的CPU。上节我们说过,CPU总会有性能的瓶颈,而突破瓶颈的办法之一就是把多个核组装到一个CPU上,这样所有核就可以同时进行计算,即所谓的“人多力量大”,这样的效率肯定会高过单个核。

那是不是核越多越好呢?理论上是这样的。但是,核越多,CPU的制作工艺就越复杂。

现在,CPU的两个最核心的要素——频率和核数,我们都讲完了,它们一个代表1秒钟内计算的次数,一个代表有多少个核在并行计算。

理论上讲,频率越高、核数越多,CPU的性能越高。我们可以根据这两个指标来比较不同的CPU性能。以手机为例,我们经常听到某个手机是“几核”的,“核”前面的数字越大,就代表这个手机的性能越好。

当然,CPU的硬件条件再好,如果不能充分利用起来,整台计算机的运算效率也不会很高,这跟我们如何分配计算的任务有关系。比如我们要搬家,有10件物品需要搬运,如果5个人搬,需要搬两趟;而如果10个人来搬,那么一趟就够了,效率确实高很多;但是,如果20个人搬,也只需要一趟,效率和10个人一样。

同理,我们在使用计算机的时候,就是在向CPU下达任务。还是以台式计算机为例,有时我们会打开很多应用程序,比如前几篇提到的计算器、办公软件、浏览器等,分配这些任务的方式,会影响计算机的最终效率。在这里我们先卖一个关子,在第3章我们还会继续聊这个话题。

小朋友们,动手时间到了。请大家去搜索引擎,搜索一下“i5”,了解这款CPU的更多信息吧。

透视CPU内部的逻辑结构

在上两节中,我们聊了CPU的材质以及衡量其性能的指标。那么,CPU到底怎么实现的计算呢?下面,我们就来聊聊CPU的内部逻辑结构。

什么叫逻辑结构呢?这个词是跟物理结构相对应的。物理结构包括CPU的材质、形状以及内部元器件和电路的样子,而逻辑结构则描述了CPU在功能层面分为哪些单元、每一个单元都对应什么功能、不同的单元又是如何协作完成整个运算的。

我们仍以数值计算为例,看看CPU是怎么完成这个任务的。比如我们想要通过台式计算机中的计算器程序计算1+1+1+1,就要依次输入数字和符号,但实际上CPU是没法直接理解我们的操作的,是计算器程序将我们的各种操作转换成了CPU能够识别的形式,这个形式就叫指令。编写计算器程序的过程叫作编程,编写程序的人被称为工程师,工程师其实就是我们跟计算机之间的翻译,他们通过编写各种应用程序,在我们跟计算机之间搭建起沟通的桥梁。后面我们还会继续了解这个过程哦。

通过计算器程序的转换,“1+1+1+1”就被分解成类似于“(((1+1)+1)+1)”这样的加法指令。CPU有一个单元,叫控制单元,专门接收这些指令,并且控制这些指令的执行。

CPU接收到“(((1+1)+1)+1)”这条指令后,就要进行实际的运算了,这个实际进行计算的单元就叫运算单元

运算单元每计算完一次加法,都会得到一个中间的结果,比如计算“(((1+1)+1)+1)”时,先算最中间的括号(1+1),得到2,那么,CPU就得把2记录下来,用于下一次的计算。这个记录数据的单元就是CPU的存储单元

总结起来,CPU由三个逻辑单元构成,分别是控制单元、运算单元和存储单元。如图2-1-7所示,控制单元接收外界的指令,然后根据指令,控制运算单元和存储单元进行数据的运算和存储。

图2-1-7 CPU逻辑结构图

我们知道,计算机上有很多应用程序,这么多应用程序都要给CPU发送指令,要执行的任务不一样,指令也就不一样。那么,CPU得设计多少种类型的指令才能满足需求呢?实际上,业内有两种指令类型的设计方式,一种叫复杂指令集计算机(Complex Instruction Set Computer,简称CISC)架构,另一种叫精简指令集计算机(Reduced Instruction Set Computer,简称RISC)架构。

大家先别被复杂的名称吓到,听我慢慢解释。打个比方,把我们对计算机的各种操作翻译成CPU能懂的指令,CPU再完成指令的过程,就像用不同形状的积木来搭玩具,一种形状的积木就是一种指令,最终搭成的玩具就是计算机要完成的操作。要搭建的玩具不同,需要的积木种类就不同,到底需要多少种积木才能满足需求呢?这个所需积木的种类就是指令集。

那么,积木的设计就有两种思路。

一种是把积木做得足够小、足够通用,如图2-1-8所示,积木的种类虽少,但无论你要搭建什么,都可以完成。这就是RISC架构的原理。因为指令种类少,所以这些指令的集合叫作精简指令集。

图2-1-8 通用积木

这种方式的优点就是指令集简单,CPU的制作也简单,CPU可以被做得足够小巧。而且,因为每次执行的指令比较小,所以执行效率就比较高。当然,它也有缺点,那就是每次搭建一个玩具所需的步骤比较多,搭建起来比较麻烦。对应到CPU上来说,就是每次将用户的操作翻译成指令和执行指令的过程都比较麻烦。

另一种设计思路就是把积木做得比较大,如图2-1-9所示,我们针对要搭建的目标来设计积木。这样设计的好处是搭建的时候比较简单,只需要拼接几下就可以完成任务,对应到CPU来说就是,将用户的操作翻译成CPU能懂的指令和执行指令的过程,这样运行起来比较简单。这就是CISC架构的原理。

图2-1-9 个性积木

但是,这种方式的缺点是,因为要搭建的目标实在太多,所以需要的积木种类就比较多。对应到CPU上,就是指令的种类比较多,所以这些指令的集合叫作复杂指令集。要支持这么多复杂的指令,CPU的制作难度就很高,执行单个指令的效率也比较低。

在实际的计算机设计中,这两种方式都被普遍采用了。比如CISC架构,就被英特尔公司用在了台式计算机的CPU中;而RISC架构,则在我们的手机以及其他移动设备中被普遍采用,其中英国ARM公司的产品在这类CPU中占主流。

为什么两类指令集架构分别被用在了两类不同的计算机上呢?小朋友们可以开动脑筋想一想。

本章我们讲的东西有点难度,下面我们来总结一下:

CPU在逻辑上由3个单元构成,分别是接受指令的控制单元、实际进行计算的运算单元和存储计算数据的存储单元。我们在各种应用程序中进行的各种操作,最终都会被翻译成CPU能够执行的指令。要支持这么多复杂的操作,CPU中要预先设计好指令集。指令集的设计有两种思路,一种是精简指令集,另一种是复杂指令集。这两种指令集各有优缺点,分别适合不同的设备。