在选购电脑时
CPU一直是最被看重的参数之一
但有多少小伙伴只知道和店员说着CPU
却从来不知道它的真正含义呢
我们每天使用手机软件,以及在电脑上写方案、敲代码、制作PPT等所有计算机软件的计算,都需要CPU的计算。
此外,航天飞船的制造需要CPU进行前期建模工作;发射时间、轨道、天气预测、燃料都需要CPU的模拟计算;发射后的实时追踪、内部调度及处理应急问题也都需要CPU精准的计算。
可以说,21世纪,CPU在生活、工作及科学等方方面面都发挥了重要作用。
今天我们来研究一下:
什么是CPU?
CPU的原理是什么?
CPU和GPU有何联系?
CPU
中央处理器,简称CPU,是现在电子计算机的核心元件,也是信息时代最主要的器件之一。
CPU的功能主要是处理计算机软件的数据,将人类的命令转化为机器语言,并对其他计算机中的设备,如内存、显卡、主板等“提出命令”。在整台计算系统中,它扮演“老板”的角色。
更形象地说,CPU就是人类的大脑,一切信息都需要它的参与或思考。
CPU由三部分组成:运算器、控制器与寄存器。
运算器主要是负责执行任务,可以理解为“打工人”,它的任务是负责直接计算相关数据;
控制器类似于“领导”,任务就是针对不同的需要,给“员工”下达不同的命令;
寄存器则可以理解为控制器和运算器之间联络的小组,也可以理解成“秘书”,它的主要工作是协调控制器和运算器。
寄存器这个“部门”的事情非常繁琐,控制器会让它给运算器下达命令,运算器运算的数据太多,也会让寄存器暂时先寄存一部分。所以,当数据过多时候,寄存器忙不过来就只能暂时招收一些“临时工”——高速缓存。
在寄存器完成不了工作时候,就调用高速缓存来存储数据。当然临时工也会有等级:一级缓存、二级缓存和三级缓存。如果三缓也耗尽,那就交给CPU外的内存来缓存。
但是,如果内存也不够了怎么办呢?这时候,你的电脑就开始卡顿了。
CPU运行
在一个庞大的部门中,必须要制定相关的行为规范,才让控制器能按照规则来下达命令。这一行为规范就是指令集。
不同设备的指令集可能会不一样。例如,我们的计算机用的就是复杂指令集x86,而手机处理器的指令集就是精简指令集ARM。这两种指令集最大的区别,就在于设计者考虑问题的方式。
举个简单的例子,比如命令一个人吃饭,我们应该怎么发布指令呢?
• 直接对他下达“吃饭”的命令。
• 命令他“先拿勺子,再舀起一勺饭,然后张嘴,之后送到嘴里,最后咽下去”。
从这里可以看到,对于“命令人吃饭”这件事,可以复杂也可以简单。而如何训练那个人,则出现不同的理解。
有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要说一句“吃饭”,他就会吃饭,这就是“复杂指令集”的思路。
但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜,那还得再训练吃菜的技能。既然如此,我们为什么不把事情分为许多非常基本的步骤呢?
这样的话,虽然下达命令的人稍微累一点,但只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,这就“精简指令集”的逻辑。
从利用这两种指令集的设备,我们就可以看出指令集的区别了。
• 性能:ARM强在效率,在一些任务相对固定的应用场合,其优势就能发挥得淋漓尽致。而x86则在专业软件或者综合性工作方面,依然是“大哥”。
• 扩展能力:手机方面,可能直到淘汰产品,我们都不会自行加装例如内存、存储等扩展设备,奉行的原则是够用就好。而计算机可以通过桥接方式扩展许多设备。
• 功耗:X86的计算机性能强,但是功耗一直居高不下,ARM方的手机则大概只有几瓦的功耗,因此它更适于便携化与移动化。
CPU和GPU
随着新兴技术的兴起以及突如其来的疫情,共同推动了GPU市场的迅猛发展。GPU是英文Graphics Processing Unit的缩写,是一种专门为PC或者嵌入式设备进行图像运算工作的微处理器。北京邮电大学计算机学院副教授杨旭东表示:
CPU和GPU有很多相同之处,比如两者都是为了完成计算任务而设计的处理器,都遵循冯 · 诺依曼计算机体系结构。但它们的差别也很明显,CPU的结构属于单指令单数据处理结构,逻辑计算能力强;GPU则是单指令多数据处理结构,数据处理能力强。
也就是说,CPU擅长统领全局的复杂逻辑计算,而GPU擅长数据并行计算,因此特别适合处理量大且统一的数据。
对于复杂的2D渲染处理或3D图像处理,CPU就要花费很多的资源去处理,这不仅会降低其他方面的工作效率,也会影响使用体验。于是CPU就将一些高帧率的游戏画面和高质量的特效交给GPU去处理。
但另一方面,GPU无法单独工作,必须由CPU进行控制调用才能工作。CPU发出指令以后,GPU领取到属于自己的任务才开始工作。
GPU最早是在个人电脑上使用,为了解决多媒体数据处理,后来在移动智能终端上应用,如今人们又把GPU放在服务器端,俗称服务器GPU。随着通信技术/网络技术的发展,数据处理越来越多放在服务器计算。杨旭东表示,如今服务器GPU既可以进行专业可视化、计算加速、深度学习等应用,也支持云计算、人工智能等一系列技术的发展,有望成为GPU行业未来应用的重点。
来源: 中国科普博览、南方医科大学医工科创