当前位置:首页 > 实用范文

CPU基础知识多篇

时间:2024-02-17 00:15:50
CPU基础知识多篇[本文共8439字]

【编辑】CPU基础知识多篇为的会员投稿推荐,但愿对你的学习工作带来帮助。

CPU的英文全称是(Central ProcessingUnit),中文意思翻译中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。下面就让小编带你去看看CPU基础知识大全,希望能帮助到大家!

关于 CPU 的一些基本知识总结

CPU是计算机的大脑。

1、程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。

当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取下一个指令、解码、执行,以此类推直到程序退出。

2、这个取指、解码、执行三个过程构成一个CPU的基本周期。

3、每个CPU都有一套自己可以执行的专门的指令集(注意,这部分指令是CPU提供的,CPU-Z软件可查看)。

正是因为不同CPU架构的指令集不同,使得__86处理器不能执行ARM程序,ARM程序也不能执行__86程序。(Intel和AMD都使用__86指令集,手机绝大多数使用ARM指令集)。

注:指令集的软硬件层次之分:硬件指令集是硬件层次上由CPU自身提供的可执行的指令集合。软件指令集是指语言程序库所提供的指令,只要安装了该语言的程序库,指令就可以执行。

4、由于CPU访问内存以得到指令或数据的时间要比执行指令花费的时间长很多,因此在CPU内部提供了一些用来保存关键变量、临时数据等信息的通用寄存器。

所以,CPU需要提供 一些特定的指令,使得可以从内存中读取数据存入寄存器以及可以将寄存器数据存入内存。

此外还需要提供加法、减、not/and/or等基本运算指令,而乘除法运算都是推算出来的(支持的基本运算指令参见ALUFunctions),所以乘除法的速度要慢的多。这也是算法里在考虑时间复杂度时常常忽略加减法次数带来的影响,而考虑乘除法的次数的原因。

5、除了通用寄存器,还有一些特殊的寄存器。

典型的如:

PC:program counter,表示程序计数器,它保存了将要取出的下一条指令的内存地址,指令取出后,就会更新该寄存器指向下一条指令。

堆栈指针:指向内存当前栈的顶端,包含了每个函数执行过程的栈帧,该栈帧中保存了该函数相关的输入参数、局部变量、以及一些没有保存在寄存器中的临时变量。

PSW:program statusword,表示程序状态字,这个寄存器内保存了一些控制位,比如CPU的优先级、CPU的工作模式(用户态还是内核态模式)等。

6、在CPU进行进程切换的时候,需要将寄存器中和当前进程有关的状态数据写入内存对应的位置(内核中该进程的栈空间)保存起来,当切换回该进程时,需要从内存中拷贝回寄存器中。

即上下文切换时,需要保护现场和恢复现场。

7、为了改善性能,CPU已经不是单条取指-->解码-->执行的路线,而是分别为这3个过程分别提供独立的取值单元,解码单元以及执行单元。这样就形成了流水线模式。

例如,流水线的最后一个单元——执行单元正在执行第n条指令,而前一个单元可以对第n+1条指令进行解码,再前一个单元即取指单元可以去读取第n+2条指令。这是三阶段的流水线,还可能会有更长的流水线模式。

8、更优化的CPU架构是superscalar架构(超标量架构)。

这种架构将取指、解码、执行单元分开,有大量的执行单元,然后每个取指+解码的部分都以并行的方式运行。比如有2个取指+解码的并行工作线路,每个工作线路都将解码后的指令放入一个缓存缓冲区等待执行单元去取出执行。

9、除了嵌入式系统,多数CPU都有两种工作模式:内核态和用户态。

这两种工作模式是由PSW寄存器上的一个二进制位来控制的。

10、内核态的CPU,可以执行指令集中的所有指令,并使用硬件的所有功能。

11、用户态的CPU,只允许执行指令集中的部分指令。

一般而言,IO相关和把内存保护相关的所有执行在用户态下都是被禁止的,此外其它一些特权指令也是被禁止的,比如用户态下不能将PSW的模式设置控制位设置成内核态。

12、用户态CPU想要执行特权操作,需要发起系统调用来请求内核帮忙完成对应的操作。

其实是在发起系统调用后,CPU会执行trap指令陷入(trap)到内核。当特权操作完成后,需要执行一个指令让CPU返回到用户态。

13、除了系统调用会陷入内核,更多的是硬件会引起trap行为陷入内核,使得CPU控制权可以回到操作系统,以便操作系统去决定如何处理硬件异常。

关于CPU的基本组成

1、CPU是用来运算的(加法运算+、乘法运算__、逻辑运算and

not or等),例如c=a+b。

2、运算操作涉及到数据输入(input)、处理、数据输出(output),a和b是输入数据,加法运算是处理,c是输出数据。

3、CPU需要使用一个叫做存储器(也就是各种寄存器)的东西保存输入和输出数据。

以下是几种常见的寄存器(前文也介绍了一些)

MAR: memory address register,保存将要被访问数据在内存中哪个地址处,保存的是地址值

MDR: memory data register,保存从内存读取进来的数据或将要写入内存的数据,保存的是数据值

AC: Accumulator,保存算术运算和逻辑运算的中间结果,保存的是数据值

PC: Program Counter,保存下一个将要被执行指令的地址,保存的是地址值

CIR: current instruction register,保存当前正在执行的指令

4、CPU还要将一些常用的基本运算工具(如加法器)放进CPU,这部分负责运算,称为算术逻辑单元(ALU,

Arithmetic LogicUnit)。

5、CPU中还有一个控制器(CU,

Control Unit),负责将存储器中的数据送到ALU中去做运算,并将运算后的结果存回到存储器中。

控制器还包含了一些控制信号。

5、控制器之所以知道数据放哪里、做什么运算(比如是做加法还是逻辑运算?)都是由指令告诉控制器的,每个指令对应一个基本操作,比如加法运算对应一个指令。

6、例如,将两个MDR寄存器(保存了来自内存的两个数据)中的值拷贝到ALU中,然后根据指定的操作指令执行加法运算,将运算结果拷贝会一个MDR寄存器中 ……此处隐藏3744个字……微领先,但是整体性能却被Intel彻底压制了。这就是因为AMD的中央机构各部门协调能力比Intel差多了,所以即使工作能力差不多,但协调不好,所以整体工作性能就比不过了。

说完了性能接下来我们就来说说CPU的结构和工作原理。

CPU的结构主要由运算器、控制器、寄存器三大块组成。

①运算器就是中央机构里负责执行任务的部门,也就是专门干活的;而控制器就是中央机构的领导小组,针对不同需要,给运算器下达不同的命令;寄存器可以理解为控制器和运算器之间的联络小组,主要工作就是协调控制器和运算器。

运算器这个干活的部门,平日里整个中央机构要干点啥事就找这个部门。例如东边洪灾了,你去赈灾吧;西边发现金矿了,你去主导挖矿吧;北边下大雪了,你去送温暖吧;南边下暴雨了,你去疏导洪流吧……

②而控制器这个部门比较牛逼,他们是不用干活的,主要就是对国家(整部计算机)发生的各种情况,做出应对,然后让运算器去把活干好。在这里,我们会发现一个大问题:如果这个部门闲的蛋疼,乱下命令怎么办?这也好办,我们就制定出一套行为规范来限制他们,不让他们乱搞。而这套行为规范就是CPU的指令集。

指令集就是CPU的行为规范,所有的命令都必须严格按照这部行为规范来执行。在这里说明一下不同类型的CPU指令集也不一样,其中最常见的就是__86架构下的复杂指令集和ARM架构下的简单指令集。__86就是我们平常电脑CPU的架构,ARM就是手机CPU的架构。

由于电脑CPU这个中央机构所在的国家(电脑)面积大、人口多、国情复杂,啥事都会发生,所以规章制度就需要特别完善,考虑到方方面面的情况要怎么应对。而手机CPU这个中央机构国家小、人口少、面积窄,所以规章制度简单一点就可以了。这就是复杂指令集和简单指令集的区别。

③寄存器这个部门稍微复杂一点,因为它虽然没有运算器和控制器那么重要,但是它P事多,控制器平时总喜欢让寄存器去给运算器传达个命令。而运算器有时候也会担心数据太多一时处理不过来,就让寄存器帮它先记着,有时候工作需要纸笔、螺丝刀之类的小工具,也让寄存器帮它拿着。

了解完寄存器的功能后,又发现了一个问题,如果控制部门下达的命令太多,而运算部门又没那么快可以做完,又或者运算器让它记住的东西或者临时拿着的东西太多,寄存器部门太小,人太少,忙不过来怎么办?好办,扩招人员吧,可是这个部门的人员都是编制内的,没有在编名额了怎么办?也好办,那就招些编外人员吧,也就是我们常说的临时工。

招了临时工,总要给他个名号吧,那就再成立一个部门,叫高速缓存。为了体现亲疏有别,这个部门把临时工分为三个等级,分别是一级高速缓存、二级高速缓存、三级高速缓存。反正也是临时工,名号就这么随便叫吧。

在CPU这个中央机构可跟新闻上说的事给临时工做、锅给临时工背不同,在这里高速缓存这个临时工部门是作为寄存器替补而存在的,也是说,必须在寄存器完成不了工作量时,才能交给高速缓存来做。一开始交给一级高速缓存来做,一级也做不完再给二级,二级还做不完就给三级。这里又有一个问题出现了,那就是如果三级也做不完怎么办?

这完全没问题,交给中央机构的一个下属部门去办,这个部门就是内存。但是因为内存毕竟不属于中央机构,工作能力没有中央机构人员那么强,效率也没有那么高。

所以控制部门要下达命令或者运算部门要做事时,首先想到的就是寄存器,寄存器忙不过来了就找高速缓存帮忙,高速缓存也忙不过来就找内存帮忙。那么,内存也传达不过来呢?内存传达不过来那就没办法了,只能让电脑卡着吧,等运算部门先把上一件事处理好再说。所以,买电脑,不能光看CPU牛不牛,内存容量也要跟上。

还有一个容易被大家忽略的问题,在这里也说一下吧,那就是晶体管。晶体管是构成CPU最基础的原件,可以理解为整个中央机构的工作人员。随着科技的进步,CPU生产工艺越来越精细,目前手机端CPU(ARM架构)制程已经提升到7nm,电脑端也达到了14nm。

制程的提升,我们可以理解为,缩减每个办公人员的办公面积,以前科技不发达每个办公人员必须配一个独立办公室,才能有效完成工作,现在技术进步了,每个办公人员只需要一张办公桌就能完成工作了。所以同样的一栋大楼,可以容纳的办公人员(晶体管)就多了,工作能力就上升了。

以前一个CPU由于制程落后,只能容纳几千万或者几亿个晶体管,现在制程进步了,一个同样体积的CPU可以容纳几十亿个晶体管,性能自然就提升了。

那么,为什么晶体管数量增加了,CPU的能耗却没有增加呢?我们可以这么理解,每个工作人员都需要吃饱了才有力气干活,以前的工作人员需要吃九菜一汤才够力气,现在改为营养配餐了,每个工作人员只需要吃一片营养药丸就可以工作了,所以工作人员虽然增加了,但是整体伙食成本(耗电量)并没有增加。

最后,我们说一下CPU的核心和进程又是什么呢?我们可以这么理解,在单核时代,每个CPU只有一个核心,也就是只有一个中央机构,但是国家那么大,事那么多,中央机构每天加班25个小时都忙不完了。那就没办法了,扩充中央机构吧。于是乎双核、四核、多核CPU就出来了。每一个核心都是一个独立的中央机构,都具有相同的工作能力。

这么多个中央机构成立了,那听谁的,有事情交给哪个中央机构去做,要知道它们的权利和功能都是一样的啊。这时候就要改变CPU架构了,也就是国家的管理制度了。以前国家只有一个中央机构,啥事都交给它去做准没错,现在突然变成好几个中央机构了,怎么办?

这个时候就需要为每个核心安排去负责不同的事务了,这套中央机构专门负责农业,那套负责工业,剩下的负责税收、财政等等之类的。

那什么是进程呢,进程其实可以理解为一个中央机构里面的人员组成。有时候事太多了,光这几个中央机构处理起来还是有点吃力,但是为了节约成本,我们不能再组建新的中央机构了,那就只好折中处理,不另外成立新的中央机构了,就在原有的基础上,每个中央机构组建两套完全一致的工作班子吧。

所以,4核CPU就是拥有四个独立的中央机构,都具备相同的工作能力和权限,但是每个核心都会负责不同的事务。4核8线程就是四个独立的中央机构,每一个中央机构都拥有两套完整的工作班子,每套工作班子权限也一样。

这时候问题又出现了,例如某个中央机构负责的事特别多,忙不过来,而其他的中央机构负责的事很少,闲的发慌,那怎么办?这时候,我们的架构又出现了,好办!今天你这个核心负责的事多,就你来主导,让其他事少的核心辅助你工作。明天另外一个核心负责的事多,就由它来主导,其他核心辅助它工作。

在这里小编想起来一个网上很火的段子:MTK的CPU一核有难九核围观。这就是架构落后造成的,它的管理制度不完善,没办法调节每个中央机构之间的互相配合,有事情要做,往死里用一个核心,其他九个核心啥事没有,只好吃瓜围观了。

所以,在最后,重申一遍,CPU架构很重要!!!

你也可以在搜索更多本站小编为你整理的其他CPU基础知识多篇范文。

《CPU基础知识多篇[本文共8439字].doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式