CPU的结构主要由运算器、控制器、寄存器三大块组成。
①运算器就是中央机构里负责执行任务的部门,也就是专门干活的;而控制器就是中央机构的领导小组,针对不同需要,给运算器下达不同的命令;寄存器可以理解为控制器和运算器之间的联络小组,主要工作就是协调控制器和运算器。
运算器这个干活的部门,平日里整个中央机构要干点啥事就找这个部门。例如东边洪灾了,你去赈灾吧;西边发现金矿了,你去主导挖矿吧;北边下大雪了,你去送温暖吧;南边下暴雨了,你去疏导洪流吧……
②而控制器这个部门比较牛逼,他们是不用干活的,主要就是对国家(整部计算机)发生的各种情况,做出应对,然后让运算器去把活干好。在这里,我们会发现一个大问题:如果这个部门闲的蛋疼,乱下命令怎么办?这也好办,我们就制定出一套行为规范来限制他们,不让他们乱搞。而这套行为规范就是CPU的指令集。
指令集就是CPU的行为规范,所有的命令都必须严格按照这部行为规范来执行。在这里说明一下不同类型的CPU指令集也不一样,其中最常见的就是X86架构下的复杂指令集和ARM架构下的简单指令集。X86就是我们平常电脑CPU的架构,ARM就是手机CPU的架构。
由于电脑CPU这个中央机构所在的国家(电脑)面积大、人口多、国情复杂,啥事都会发生,所以规章制度就需要特别完善,考虑到方方面面的情况要怎么应对。而手机CPU这个中央机构国家小、人口少、面积窄,所以规章制度简单一点就可以了。这就是复杂指令集和简单指令集的区别。
③寄存器这个部门稍微复杂一点,因为它虽然没有运算器和控制器那么重要,但是它P事多,控制器平时总喜欢让寄存器去给运算器传达个命令。而运算器有时候也会担心数据太多一时处理不过来,就让寄存器帮它先记着,有时候工作需要纸笔、螺丝刀之类的小工具,也让寄存器帮它拿着。
CPU读取数据速度
了解完寄存器的功能后,又发现了一个问题,如果控制部门下达的命令太多,而运算部门又没那么快可以做完,又或者运算器让它记住的东西或者临时拿着的东西太多,寄存器部门太小,人太少,忙不过来怎么办?好办,扩招人员吧,可是这个部门的人员都是编制内的,没有在编名额了怎么办?也好办,那就招些编外人员吧,也就是我们常说的临时工。
招了临时工,总要给他个名号吧,那就再成立一个部门,叫高速缓存。为了体现亲疏有别,这个部门把临时工分为三个等级,分别是一级高速缓存、二级高速缓存、三级高速缓存。反正也是临时工,名号就这么随便叫吧。
在CPU这个中央机构可跟新闻上说的事给临时工做、锅给临时工背不同,在这里高速缓存这个临时工部门是作为寄存器替补而存在的,也是说,必须在寄存器完成不了工作量时,才能交给高速缓存来做。一开始交给一级高速缓存来做,一级也做不完再给二级,二级还做不完就给三级。这里又有一个问题出现了,那就是如果三级也做不完怎么办?
这完全没问题,交给中央机构的一个下属部门去办,这个部门就是内存。但是因为内存毕竟不属于中央机构,工作能力没有中央机构人员那么强,效率也没有那么高。
所以控制部门要下达命令或者运算部门要做事时,首先想到的就是寄存器,寄存器忙不过来了就找高速缓存帮忙,高速缓存也忙不过来就找内存帮忙。那么,内存也传达不过来呢?内存传达不过来那就没办法了,只能让电脑卡着吧,等运算部门先把上一件事处理好再说。所以,买电脑,不能光看CPU牛不牛,内存容量也要跟上。
还有一个容易被大家忽略的问题,在这里也说一下吧,那就是晶体管。晶体管是构成CPU最基础的原件,可以理解为整个中央机构的工作人员。随着科技的进步,CPU生产工艺越来越精细,目前手机端CPU(ARM架构)制程已经提升到7nm,电脑端也达到了14nm。
制程的提升,我们可以理解为,缩减每个办公人员的办公面积,以前科技不发达每个办公人员必须配一个独立办公室,才能有效完成工作,现在技术进步了,每个办公人员只需要一张办公桌就能完成工作了。所以同样的一栋大楼,可以容纳的办公人员(晶体管)就多了,工作能力就上升了。
以前一个CPU由于制程落后,只能容纳几千万或者几亿个晶体管,现在制程进步了,一个同样体积的CPU可以容纳几十亿个晶体管,性能自然就提升了。