CPU的结构和基本功能(万字长文,吐血推荐!!!一文弄懂CPU)

CPU的结构和基本功能(万字长文,吐血推荐!!!一文弄懂CPU)

这个小节基于之前学过的知识来复习和补充CPU的功能与基本结构。 CPU由运算器和控制器这样的两大部件组成,那CPU首先要完成的最重要的一个功能就是指令控制, 就是要完成取指令,分析指令和执行指令的这些操作。CPU需要能够自动的完成指令序列或者说程序的顺序执行,一条一条的往后执行。 那通过之前的例子,我们能够感受到CPU在执行指令的过程中需要控制各个部件一步一步的来完成工作,因此CPU需要实现操作控制的功能。 一条指令的执行,往往需要通过多个细分的操作才能够完成,因此CPU需要提供一系列的操作信号, 每一种操作信号会对应着一种微操作。也就是一个细分步骤。 那么,通过多种操作信号的组合,就可以完成指令所需要的一个一个的微操作。CPU需要根据具体的指令来决定应该发出哪些操作信号,另外这些操作信号会被送到相应的部件,比如说某一个寄存器或者说alu算术逻辑单元等等。那么,这些更细小的硬件部件接收到相应的操作信号之后,就可以按照要求来进行相应的动作。那这是CPU的第二个功能操作控制。 第三个功能叫时间控制,因为我们之前那个例子当中能够体会到一条指令执行的过程当中各个操作其实是有先后顺序。一步一步的来执行的。而每一个具体的微操作会对应一个操作信号,那显然这些操作信号应该按照时间的先后顺序来逐一的发出。 所以这就是时间控制这个功能存在的意义。 第四个叫做数据加工,那数据加工的功能不用多说,就是进行算术和逻辑运算。 而第五个我们之前没有过多的提及,叫做中断处理,如果大家学过操作系统的第一章,那么肯定能够知道中断是一个什么东西,那这儿先简单的解释一下什么是中断。那经过之前的学习,我们知道cpu工作的过程,其实就是执行这些一条一条指令的过程。都是按顺序一条一条往下执行的,但是有的时候我们的计算机运行的过程当中可能需要处理一些突发情况。比如说你的计算机本来正在运行这个程序,然而你通过你的鼠标进行了一次单击操作,那么这次鼠标的单击操作是不是也需要被CPU处理?因此。当CPU执行到这儿的第四条指令的时候,如果说收到来自鼠标的一个中断信号,也就是鼠标单击所对应的这个中断信号。那么,此时CPU会暂时先中断,先暂停前边这个程序的运行,

此时运行到第四句,再往后应该是第五句。 所以CPU需要记录下来,当前这个程序运行到了哪一句? 那记录了当前这个程序的运行状况之后CPU会转向执行一个中断处理程序。 中断处理程序也是由一系列的指令序列来组成的,那这个中断处理程序就是用来处理鼠标单击这个事件,那当CPU运行完这个中断处理程序之后。又会再回到刚才所执行的这些程序继续的往后执行, 所以这就是所谓的中断处理。正常情况下,我们的CPU肯定是从头到尾依次顺序的执行某一个程序的指令,但是由于计算机内部会有一些突发的状况需要处理,因此就引入了这种中断机构。当CPU检测到某一种特殊的中断信号之后,会转而执行处理这个中断相对应的那一系列指令代码。当这个中断处理完了之后,再回去执行之前执行的这一系列的指令。

所以中断处理也是CPU必须实现的一个功能,那大家可以想一下。如果说CPU没有实现中断处理的话。 是不是就意味着你的CPU只能顺序的执行你的一个程序,只有这个程序执行结束之后CPU才有可能去执行另一个程序。如果没有中断处理,那么当你的这个程序执行的过程当中,你点击鼠标或者敲击键盘, 所有的这些动作都不会被CPU响应。因此,中断处理也是一个必不可少,必须要实现的功能。 那这就是CPU要实现的五大功能,那接下来我们再站在运算器和控制器的角度,再把这些功能进行一个分类。运算器主要实现的就是对数据的加工,就是算术运算,逻辑运算,还有移位运算等等,就是对数据的处理。而控制器主要负责协调控制计算机各个部件执行程序的这个指令序列,包括取指令,分析指令和执行指令。这一系列的动作都是由控制器来负责指挥的。

在取指令的时候CPU应该自动的形成下一条应该执行的指令的地址,也就是我们之前强调过很多次的PC会自动加一的这个功能。另外,每一条指令执行结束之后。控制器也应该自动的发出下一条指令的取指令命令。

当取得一条指令之后,也需要分析这个指令,也就是要把指令的操作码进行一个译码。 来分析这条指令到底想要完成什么样的操作。另外,在分析指令的过程中,也需要产生操作数的有效地址,那这个是数据寻址那一块我们讲过的内容。因为我们执行的指令有可能采用直接寻址,也有可能是间接寻址或者寄存器间接寻址。

那么,控制器在分析指令的过程当中,就需要根据指令的数据寻址方式不同,来得到我们最终要操作的操作数存放在什么有效地址。需要完成这样的一个地址转换的过程。

那控制器分析指令之后就能够知道接下来这条指令应该做一些什么样的操作,同时也知道了这个指令需要操作的那些操作数到底是存放在什么地址?

每一条指令的执行背后都需要进行若干个微操作,而每一个不同的微操作,都需要由一个控制信号来控制。因此,执行指令的过程就是形成操作信号控制序列的一个过程,然后逐一的发出这些操作信号,从而控制着运算器,存储器,io设备还有各种寄存器之间进行数据交换或者完成某一个相应的操作。 那这是执行指令的过程,

之前我们讲到的那个简单的例子,执行完一条指令之后,就会紧接着执行下一条指令,但事实上在现代计算机当中。

每执行完一条指令之后,CPU都会检查是否有中断信号需要处理。在这个阶段,控制器会完成对总线还有输入输出设备的处理,就是应该有的响应,比如我们之前提到的鼠标的点击操作。那除了我们外部设备有可能导致这种中断的发生之外,我们内部指令

💎 相关推荐

世界杯熬夜看球,立事牙发炎怎么办
英国365bet日博

世界杯熬夜看球,立事牙发炎怎么办

📅 10-28 👁️ 5631
大数据行业2017年度盘点:双重暴击,浴火重生
365app安卓客户端下载

大数据行业2017年度盘点:双重暴击,浴火重生

📅 10-09 👁️ 3094
单机尽、古剑藏——工长君离职烛龙艰难选择的背后