2.2.1 运算器

运算器是计算机的执行部件,是对信息进行加工、运算的部件,它的主要功能是对二进制代码进行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)。运算器一般包括ALU和寄存器组,如图2-4所示。

1.ALU

ALU即运算器,负责进行算术和逻辑运算。不同的处理器的ALU的运算能力是不同的。一般算术运算有加、减、乘、除和加1、减1计算等;逻辑运算就是与、或、非及异或等。

几乎来自于存储器的所有数据都要经过ALU,即使不进行计算的数据传送操作(指令),如形成一个程序的转移地址的指令,也需要通过ALU把地址数据送到所指定的内部寄存器或存储器。运算器从技术实现的角度分为两部分:定点运算器和浮点运算器。

2.寄存器组

寄存器(Register)用来临时存放参与ALU运算的各种数据,它是具有存储特性的内部高速单元。寄存器主要有数据寄存器、指令寄存器和指令计数器等。

数据寄存器用来存放需要临时存放的数据,如图2-4中的R1~R3。数据寄存器的数据存取速度要比存储器的数据存取速度快得多。

图2-4 运算器和控制器

指令寄存器存放程序的指令代码(图2-4中寄存器组中的I),它存放从存储器中取来的指令码,经由控制器,产生控制各个部件的工作信号和各种输出控制信号。

程序计数器(PC)是一个具有计数功能的寄存器,也称指令地址寄存器。程序计数器存放当前所执行的指令的存储器地址。当前指令执行完,程序计数器自动增量,或根据当前指令修改计数器的内容,形成下一条指令的内存地址,在控制器的信号作用下,ALU将从该存储器地址中取下一条指令执行。