这个小节基于之前学过的知识来复习和补充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要实现的五大功能,那接下来我们再站在运算器和控制器的角度,再把这些功能进行一个分类。运算器主要实现的就是对数据的加工,就是算术运算,逻辑运算,还有移位运算等等,就是对数据的处理。而控制器主要负责协调控制计算机各个部件执行程序的这个指令序列,包括取指令,分析指令和执行指令。这一系列的动作都是由控制器来负责指挥的。
每一条指令的执行背后都需要进行若干个微操作,而每一个不同的微操作,都需要由一个控制信号来控制。因此,执行指令的过程就是形成操作信号控制序列的一个过程,然后逐一的发出这些操作信号,从而控制着运算器,存储器,io设备还有各种寄存器之间进行数据交换或者完成某一个相应的操作。
那这是执行指令的过程,
之前我们讲到的那个简单的例子,执行完一条指令之后,就会紧接着执行下一条指令,但事实上在现代计算机当中。
每执行完一条指令之后,CPU都会检查是否有中断信号需要处理。在这个阶段&#x