选购电脑时,cpu一直是最受关注的参数之一。
然而有多少人只是跟店员说“我需要什么cpu”而并不真正理解其含义呢?
那么,什么是cpu呢?
在本文中,我们来探讨cpu的概念、原理以及与gpu之间的联系。
图片来源网络
我们每天使用手机软件以及在电脑上进行各类计算机任务,都需要cpu进行计算。
制造航天飞船需要cpu进行建模,发射后的航天器调度、追踪以及紧急情况处理也依赖cpu的准确计算。
可以说,cpu在21世纪的生活、工作和科学方方面面发挥着重要作用。
本文的研究内容包括:
cpu的定义是什么?
cpu的工作原理是什么?
cpu与gpu之间有何联系?
什么是cpu?
中央处理器(cpu)是电子计算机的核心元件之一,也是信息时代最重要的器件之一。
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行业未来应用的重点。