接(上)篇,当进程在内存中调度时,CPU是怎么执行进程和处理图片的呢?CPU内部怎么组成,做了什么呢?
CPU一直是计算机体系中最重要,研究最深的部件之一,光从其名称(中央处理器)就能看出其重要性,CPU的性能也是衡量计算机总体性能的指标之一。商用的CPU也是各大厂商争相研究占领市场的最大热点之一。
常见的CPU品牌(Intel AMD Apple chip)
英特尔(Intel)一直是计算机芯片世界的霸主,在90年代,以Windows和Intel结合体一度占据了电脑市场百分之七十以上份额,而AMD芯片公司一直在Intel之后,到最近几年,AMD逐渐缩小与Intel的差距,在多种旗舰机芯片上甚至远远超过Intel,现在提起计算机芯片,Intel和AMD基本并列。苹果系列芯片一直是自产自销,苹果家族的电子设备基本上从硬件到软件都是自家设计,这样的好处在于操作系统不需要为了兼容某种芯片而损失了性能和一些功能,转而向用户提供更流畅和快速的产品体验。)
当进程时间片轮到我们的显示图片进程时,CPU开始进行该进程的工作。
在CPU看来,无论内存中是什么,CPU只负责抽象成做下面几件事:
取指令
指令译码
访问内存(简称访存)
回写
通知对应的进程或者IO
也就是说,无论是什么样的应用程序,什么样的进程,打开视频还是图片还是其他资源文件,在CPU看来就是以上几件事,所以CPU并不知道它在做的到底是什么事情(好像这位总司令也不是太聪明呀😄)。
取指令阶段
当进程管理程序告诉CPU某个进程的初始地址时,CPU便可以开始取指令了,CPU从程序段开始取值令,CPU中有一个叫做指令指针寄存器(IP)的寄存器结构,指向下一条要取的指令,然后取值令完毕。
指令译码
当指令从内存中取出后,要怎么去识别指令是干什么用的呢?当然是CPU内部的译码器来进行译码,译码器会将取出的指令分解,如果是计算指令,就交给ALU计算部件,如果是取数据,那么下一步就将到内存的数据段或者其他数据结构中取数据,(计算指令可能需要回内存取数据,访问内存又与开头一样的流程)如果是中断指令,就交给中断机构等等。
回写阶段
当指令执行完毕以后,继续新一轮的取指令执行,如果进程结束后,CPU或其他机构就会通知进程。(各种通知和计算中间值,中断都是通过寄存器来记录的,后续会深入讲解CPU寄存器集。)
(CPU的执行复杂程度远远超过上述简写,但是作为了解,我们暂时到这里就可以)
在市面上我们都知道CPU的性能差异,都是进行指令执行,但是为什么性能差异这么大呢?
CPU性能的决定因素
原因在于CPU的性能指标由很多部分决定,像CPU位数,CPU的主频,CPU的半导体数量等。
CPU位数:CPU的位数我们在前面研究过,其实类似地址总线的位数(根数),位数决定了CPU一次能处理的数据长度,比如64位,就相当于数据线的数量为64根,一次能取64位的数据(4字节),目前常用的也是64位的CPU。
CPU主频:
数字电路使用的都是脉冲电流,也叫作锯齿波,CPU的执行是安装其频率来的,将脉冲分为机器周期,在某个或几个机器周期内取数据,某个或几个机器周期译码,所以如果其频率高的话,速度也会快。目前有的CPU可以超频(也就是提高时钟频率)。
组成CPU的半导体数量:
组成CPU的半导体从一定程度上能影响其运行速度,原因在于,半导体的体积越小,单位面积上能光刻的半导体就越多,那么自然处理速度就快,也就是半导体数量决定上述两个指标,CPU主频和CPU位数。目前商用计算机芯片半导体正在往10纳米以下发展,而嵌入式计算机芯片正在向5纳米以下发展。
外部因素:
当然,决定CPU性能的还有外部因素:散热性能,计算机设备的其他部件的运行速度(短板效应)等。
多核多线程:
当然,目前CPU不能只提高时钟频率和缩小半导体体积,现在的CPU在以多核多线程的方向发展,并且这样的CPU在功耗和执行速度上非常快(人多力量大嘛)。
多核:多核是真正意义上的物理多CPU,也就是一大块CPU里面有很多小CPU,这样的CPU就可以真正意义上的并行(而不是并发),也有的厂商能够讲对核心联合起来进行调度处理,由一个核心进行接收任务,然后将其划分为子任务分发给其他核心,最后结合(类似于分治法)。当然了,CPU核心数量也不是越多越好,CPU数量多了的话,CPU核心之间的协同合作又成了一大难点,甚至使CPU的运行速度变慢。那么如果想提高CPU速度还有办法吗?可以的,从并发编程发展以来,多线程编程一直是计算机领域研究的热点,CPU厂商也为并发编程提供了硬件支持,多线程CPU能够快速的在线程之间进行切换,以尽可能减少线程切换时间。(多线程和时间片算法会在后面编程讲到),目前市场上的CPU能达到6核8核/12线程15线程等。
嵌入式CPU也是研究的热点之一
自从2007年嵌入式操作系统Android发布以来,嵌入式CPU的发展速度一度超过传统的Intel和AMD,半导体目前正在往5纳米及以下发展。嵌入式CPU也根据其使用环境往不同方向发展。
嵌入式微处理器是从传统的CPU发展而来的,其性能一般要低于CPU,因为嵌入式设备在设计时要兼顾功耗和小体积的特点,需要将极少使用的部分裁剪,使用软件(程序设计)的形式来补充。
微控制器 一般用于工控领域
A:这个和我们上一篇说到的CPU能适应的内存大小是一个道理,数据线的位数决定了其每次处理数据长度的能力,而如果并行数据线太多,则会出现速度漂移效应。
(上述图片来源于京东和其他互联网,如有侵权请联系作者)
(除图片内容外全部内容为作者完全原创)
联系客服