什么是运算器

时间:2017-08-08 写作指导 我要投稿

  运算器:arithmetic unit,计算机中执行各种算术和逻辑运算操作的部件。下面是小编分享的相关内容,欢迎阅读,仅供参考。

什么是运算器

  运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。

  运算器的功能与分类

  运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变更符号,计算主存地址等。运算器中的寄存器用于临时保存参加运算的数据和运算的中间结果等。运算器中还要设置相应的部件,用来记录一次运算结果的特征情况,如是否溢出,结果的符号位,结果是否为零等。

  计算机所采用的运算器类型很多,从不同的角度分析,就有不同的分类方法。从小数点的表示形式可分为定点运算器和浮点运算器。定点运算器只能做定点数运算,特点是机器数所表示的范围较小,但结构较简单。浮点运算器功能较强,既能对浮点数,又能对定点数进行运算,其数的表示范围很大,但结构相当复杂。从进位制方面分为二进制运算器和十进制运算器。一般计算机都采用二进制运算器,随着计算机广泛应用于商业和数据处理,越来越多的机器都扩充十进制运算的功能,使运算器既能完成二进制的运算,也能完成十进制运算。

  运算器的组成

  计算机中运算器需要具有完成多种运算操作的功能,因而必须将各种算法综合起来,设计一个完整的运算部件。运算器的组成决定于整机的设计思想和设计要求,采用不同的运算方法将导致不同的运算器组成。但由于运算器的基本功能是一样的,其算法也大致相同,因而不同机器的运算器是大同小异的。运算器主要由算术逻辑部件、通用寄存器组和状态寄存器组成。

  1)算术逻辑部件ALU。ALU 主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。算术运算主要包括定点加、减、乘和除运算。逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。移位操作主要完成逻辑左移和右移、算术左移和右移及其他一些移位操作。某些机器中,ALU 还要完成数值比较、变更数值符号、计算操作数在存储器中的地址等。可见,ALU 是一种功能较强的组合逻辑电路,有时被称为多功能发生器,它是运算器组成中的核心部件。ALU 能处理的数据位数(即字长)与机器有关。如 Z80 单板机中,ALU 是 8 位;IBM PC/XT 和 AT 机中,ALU 为 16 位;386 和 486 微机中,ALU 是 32 位。ALU 有两个数据输入端和一个数据输出端,输入输出的数据宽度(即位数)与 ALU 处理的数据宽度相同。

  2)通用寄存器组近期设计的机器的运算器都有一组通用寄存器。它主要用来保存参加运算的操作数和运算的结果。早期的机器只设计一个寄存器,用来存放操作数、操作结果和执行移位操作,由于可用于存放重复累加的数据,所以常称为累加器。通用寄存器均可以作为累加器使用。通用寄存器的数据存取速度是非常快的,目前一般是十几个毫微秒(ns)。如果 ALU 的两个操作数都来自寄存器,则可以极大地提高运算速度。

  运算器的组成和设计

  通用寄存器同时可以兼作专用寄存器,包括用于计算操作数的地址(用来提供操作数的形式地址,据此形成有效地址再去访问主存单元)。例如,可作为变址寄存器、程序计数器(PC)、堆栈指示器(SP)等。必须注意的是,不同的机器对这组寄存器使用的情况和设置的个数是不相同的。

  3)状态寄存器状态寄存器用来记录算术、逻辑运算或测试操作的结果状态。程序设计中,这些状态通常用作条件转移指令的判断条件,所以又称为条件码寄存器。一般均设置如下几种状态位:

  (1)零标志位(Z):当运算结果为 0 时,Z 位置“1”;非 0 时,置“0”;(2)负标志位(N):当运算结果为负时,N 位置“1”;为正时,置“0”;(3)溢出标志位(V):当运算结果发生溢出时,V 位置“1”;无溢出时,置“0”;(4)进位或借位标志(C):在做加法时,如果运算结果最高有效位(对于有符号数来说,即符号位;对无符号数来说,即数值最高位)向前产生进位时,C 位置“1”;无进位时,置“0”。在做减法时,如果不够减,最高有效位向前有借位(这时向前无进位产生)时,C 位置“1”;无借位(即有进位产生)时,C 位置“0”。

  除上述状态外,状态寄存器还常设有保存有关中断和机器工作状态(用户态或核心态)等信息的一些标志位(应当说明,不同的机器规定的内容和标志符号不完全相同),以便及时反映机器运行程序的工作状态,所以有的机器称它为“程序状态字”或“处理机状态字”(Processor Status Word,PSW )。

  1)机器字长

  机器字长是指参与运算的数据的基本位数。它决定了寄存器、运算器和数据总线的位数,因而直接影响到硬件的价格。字长标志着计算精度。为协调精度与造价,并满足多方面的要求,许多计算机允许变字长计算,例如半字长、全字长和双倍字长等。由于数和指令代码都放在主存中,因而字长与指令码长度往往有一个对应关系,字长也就影响到指令系统功能的强弱。计算机字长从 4 位、8 位、16 位、32 位到 64 位不等。机器字长可包含一个或多个字节。用于科学计算的机器,为了确保精度,需要较长的字长;用于数据处理、工业控制的机器,字长为 16 位或 32 位就能满足要求。

  2)运算速度

  它是计算机的主要指标之一。计算机执行不同的运算和操作所需的时间可能不同,因而对运算速度存在不同的计算方法。一般常用平均速度,即在单位时间内平均能执行的指令条数来表示,如某计算机运算速度为 100 万次 /秒,就是指该机在一秒钟内能平均执行 100万条指令(即 1MIPS)。有时也采用加权平均法(即根据每种指令的执行时间以及该指令占全部操作的百分比进行计算)求得的等效速度表示。