1、CPU的基本功能
---- CPU实质上包括运算器和控制器两大部分。对于冯诺依曼结构的计算机而言,一旦程序进入存储器后,就可由计算机自动完成
取指令和执行指令的任务,控制器就是专用于完成此项工作的,它负责协调并控制计算机各部件执行程序的指令序列,其基本功能
是取指令、分析指令和执行指令。
--1) 取指令
控制器必须具备能自动地从存储器中取出指令的功能。为此,要求控制器能自动形成指令的地址,并能发出取指令的命令,将对应
此地址的指令取到控制器中。第一条指令的地址可以人为指定,也可由系统设定。
--2)分析指令
分析指令包括两部分内容:其一,分析此指令要完成什么操作,即控制器需发出什么操作命令;其二,分析参与这次操作的操作数
地址,即操作数的有效地址。
--3)执行指令
执行指令就是根据分析指令产生的“操作命令”和“操作数地址”的要求,形成操作控制信号序列(不同的指令有不同的操作控制信号序列)
通过对运算器、存储器以及I/O设备的操作,执行每条指令。
-- 此外,控制器还必须能控制程序的输入和运算结果的输出(即控制主机与I/O设备交换信息)以及对总线的管理,甚至能处理机器
运行过程中出现的异常情况(如掉电)和特殊请求(如打印机请求打印一行字符),即处理中断的能力。
-- 总之,CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令所需的控制命令(称操作控制),对各种操作加以时间
上的控制(称时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能。
2、CPU的结构
---- 要取指令,必须有一个寄存器专用于存放当前指令的地址。
---- 要分析指令,必须有存放当前指令的寄存器和对指令操作码进行译码的部件。
---- 要执行指令,必须有一个能发出各种操作命令序列的控制部件CU(Control Unit)。
---- 要完成算术运算和逻辑运算,必须有存放操作数的寄存器和实现算术逻辑运算的部件ALU (Algorithm Logic Unit)。
---- 为了处理异常情况和特殊请求,还必须有中断系统。
3、CPU的寄存器
---- CPU中的寄存器大致可分为两类:一类属于用户可见寄存器,用户可对这类寄存器编程,以及通过优化使CPU因使用这类寄存器而
减少对主存的访问次数;另一类属于控制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可
被带有特权的操作系统程序使用,从而控制程序的执行。
---- 用户可见寄存器
通常CPU执行机器语言访问的寄存器为用户可见寄存器,按其特征又可分为以下几类:
--1)通用寄存器
--2)数据寄存器
数据寄存器用于存放操作数,其位数应满足大多数数据类型的数值范围,有些机器允许使用两个连续的寄存器存放双倍字长的值。还有些
机器的数据寄存器只能用于保存数据,不能用于操作数地址的计算。
--3)地址寄存器
地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式,如用于基址寻址的段指针(存放基地址)、用于变址寻址
的变址寄存器和用于堆栈寻址的栈指针。地址寄存器的位数必须足够长,以满足最大的地址范围。
--4)条件码寄存器
这类寄存器中存放条件码,它们对用户来说是部分透明的。条件码是CPU根据运算结果由硬件设置的位,例如,算术运算会产生正、负、
零或溢出等结果。条件码可被测试,作为分支运算的依据。此外,有些条件码也可被设置,例如,对于最高位进位标志C,可用指令对它
置位和复位。将条件码放到一个或多个寄存器中,就构成了条件码寄存器。
在调用子程序前,必须将所有的用户可见寄存器的内容保存起来,这种保存可由CPU自动完成,也可由程序员编程保存,不同机器不同。
---- 控制和状态寄存器
CPU中还有一类寄存器用于控制CPU的操作或运算。在一些机器里,大部分这类寄存器对用户是透明的。如以下四种寄存器在指令执行
过程中起重要作用。
--1)MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。(Memory address register)
--2)MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。(Memory data register)
--3)PC:程序计数器,存放现行指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。
--4)IR:指令寄存器,存放当前欲执行的指令。(Instruction register)
通过这4个寄存器,CPU和主存可交换信息。例如,将现行指令地址从PC送至MAR,启动存储器做读操作,存储器就可将指定地址单元内
的指令读至MDR,再由MDR送至IR。
在CPU内部必须给ALU提供数据,因此,ALU必须可直接访问MDR和用户可见寄存器,ALU的外围还可以有另一些寄存器,这些寄存器用
于ALU的输入/输出以及用于和MDR及用户可见寄存器交换数据。在CPU的控制和状态寄存器中,还有用来存放程序状态字PSW的寄存器,
该寄存器用来存放条件码和其他状态信息。在具有中断系统的机器中还有中断标记寄存器。