你的位置:首页 > 知识课堂 > 正文

什么是运算器

发布时间:2013-05-13

今天就为大家介绍一下有关运算器的知识,希望对大家有所帮助,通过以下的知识,大家能够更好地进一步地了解运算器的相关知识,也希望大家好好阅览一下相关的内容,充实自己的知识宝库。接下来就为大家讲解相关的知识。
运算器
运算器
运算器:arithmetic unit,计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。

运算器简介

运算器由:算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。与Control Unit共同组成了CPU的核心部分。

运算器操作

运算器能执行多少种操作和操作速度,标志着运算器能力的强弱,甚至标志着计算机本身的能力。运算器最基本的操作是加法。一个数与零相加,等于简单地传送这个数。将一个数的代码求补,与另一个数相加,相当于从后一个数中减去前一个数。将两个数相减可以比较它们的大小。

左右移位是运算器的基本操作。在有符号的数中,符号不动而只移数据位,称为算术移位。若数据连同符号的所有位一齐移动,称为逻辑移位。若将数据的最高位与最低位链接进行逻辑移位,称为循环移位。

运算器的逻辑操作可将两个数据按位进行与、或、异或,以及将一个数据的各位求非。有的运算器还能进行二值代码的16种逻辑操作。

乘、除法操作较为复杂。很多计算机的运算器能直接完成这些操作。乘法操作是以加法操作为基础的,由乘数的一位或几位译码控制逐次产生部分积,部分积相加得乘积。除法则又常以乘法为基础,即选定若干因子乘以除数,使它近似为1,这些因子乘被除数则得商。没有执行乘法、除法硬件的计算机可用程序实现乘、除,但速度慢得多。有的运算器还能执行在一批数中寻求最大数,对一批数据连续执行同一种操作,求平方根等复杂操作。
运算器
运算器
 
运算器性能指标

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

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

功能分类

运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变更符号,计算主存地址等。运算器中的寄存器用于临时保存参加运算的数据和运算的中间结果等。运算器中还要设置相应的部件,用来记录一次运算结果的特征情况,如是否溢出,结果的符号位,结果是否为零等。计算机所采用的运算器类型很多,从不同的角度分析,就有不同的分类方法。从小数点的表示形式可分为定点运算器和浮点运算器。定点运算器只能做定点数运算,特点是机器数所表示的范围较小,但结构较简单。浮点运算器功能较强,既能对浮点数,又能对定点数进行运算,其数的表示范围很大,但结构相当复杂。从进位制方面分为二进制运算器和十进制运算器。一般计算机都采用二进制运算器,随着计算机广泛应用于商业和数据处理,越来越多的机器都扩充十进制运算的功能,使运算器既能完成二进制的运算,也能完成十进制运算。计算机中运算器需要具有完成多种运算操作的功能,因而必须将各种算法综合起来,设计一个完整的运算部件。   浮点运算器

1、浮点运算器的一般结构

浮点运算可用两个松散连接的定点运算部件来实现:即阶码部件和尾数部件, 浮点运算器的一般结构尾数部件实质上就是一个通用的定点运算器,要求该运算器能实现加、减、乘、除四种基本算术运算。其中三个单字长寄存器用来存放操作数:AC为累加器,MQ为乘商寄存器,DR为数据寄存器。AC和MQ连起来还可组成左右移位的双字长寄存器AC-MQ。并行加法器用来完

成数据的加工处理,其输入来自AC和DR,而结果回送到AC。MQ寄存器在乘法时存放乘数,而除法时存放商数,所以称为乘商寄存器。DR用来存放被乘数或除数,而结果(乘积或商与余数)则存放在AC-MQ。在四则运算中,使用这些寄存器的典型方法如下:

运算类别 寄存器关系 加法 AC+DR→AC 减法AC-DR→AC 乘法DR×MQ→AC-MQ 除法AC÷DR→AC-MQ

对阶码部件来说,只要能进行阶码相加、相减和比较操作即可。在图2-21中,操作数的阶码部分放在寄存器E1和E2,它们与并行加法器相连以便计算。浮点加法和减法所需要的阶码比较是通过E1-E2来实现的,相减的结果放入计数器E中,然后按照E的符号为决定哪一个阶码较大。在尾数相加或相减之前,需要将一个尾数进行移位,这是由计数器E来控制的,目的是使E的值按顺序减到0。E每减一次1,相应的尾数则向右移1位。一旦尾数高速完毕,它们就可按通常的定点方法进行处理。运算结果的阶码值仍放到计数器E中。

2、点协处理器,80x87是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合80x86CPU进行的,所以又称为协处理器。现在我们以80x87为例来讨论浮点运算器部件的组成。

浮点协处理器的主要功能如下:

(1) 可与配套的CPU芯片异步并行工作。80x87相当于386的一个I/O部件,本身有它自己的指令,但不能单独使用,它只能作为386主CPU的协处理器才能运算。因为真正的读写主存的工作不是80x87完成,而是由386执行的。如果386从主存读取的指令是80x87浮点运算指令,则它们以输出方式把该指令送到80x87,80x87接收后进行译码并执行浮点运算。在80x87进行运算期间,386可取下一条其他指令予以执行,因而实现了并行工作。如果在80x87执行浮点运算指令过程中386又取来一条80x87指令,则80x87以给出“忙”的标志信号加以拒绝,使386暂停向80x87发送命令。只有待80x87完成浮点运算而取消“忙”的标志信号以后,386才可以进行一次发送操作。

(2) 高性能的80位字长的内部结构,有8个80位字长的以堆栈方式管理的寄存器组。80x87从存储器取数和向存储器写数时,均用80位的临时实数和其他6种数据类型执行自动转换。全部数据在80x87中均以80位临时实数的形式表示。因此80x87具有80位的内部结构,并有八个80位字长以 “先进后出”方式管理的寄存器组,又称寄存器堆栈。这些寄存器可以按堆栈方式工作,此时,栈顶被用作累加器;也可以按寄存器的编号直接访问任一个寄存器。

(3) 浮点数的格式,完全符合IEEE制定的国际标准。

(4) 能处理包括二进制浮点数、二进制整数和十进制数串三大类共7种数据。此7种数据类型在寄存器中表示如下:短整数(32位整数) S 31位 (二进制补码) 长整数(64位整数) S 63位 (二进制补码) 短实数(32位浮点数) S 指数 尾数(23位) 长实数(64位浮点数) S 指数 尾数(52位) 临时实数(80位浮点数) S 指数 尾数(64位) 十进数串(十进制18位) S -- d17d16 … d1d0。此处S为一位符号位,0代表正,1代表负。三种浮点数阶码的基值均为2。阶码值用移码表示,尾数用原码表示。尾数有32位、64位、80位三种。不仅仅是一个浮点运算器,还包括了执行数据运算所需要的全部控制线路,就运算部分讲,有处理浮点数指数部分的部件和处理尾数部分的部件,还有加速移位操作的移位器线路,它们通过指数总线和小数总线与八个80位字长的寄存器堆栈相连接。

(5) 内部的出错管理功能为了保证操作的正确执行,80x87内部还设置了三个各为16位字长的寄存器,即特征寄存器、控制字寄存器和状态寄存器。特征寄存器用每两位表示寄存器堆栈中每个寄存器的状态,即特征值为00-11四种组合时表明相应的寄存器有正确数据、数据为0、数据非法、无数据四种情况。控制字寄存器用于控制80x87的内部操作。其中PC为精度控制位域(2位):00为24位,01为备用,10为53位,11为64位。RC为舍入控制位域(2位):00为就近舍入,01朝-方向舍入,10朝+方向舍入,11朝0舍入。IC为无穷大控制位:该位为0时+与-作同值处理,该位为1时+与-不作同值处理。控制寄存器的低6位作异常中断屏蔽位:IM为非法处理,DM为非法操作数,ZM为0作除数,OM为上溢,UM为下溢,PM为精度下降。状态字寄存器用于表示80x87的结果处理情况,例如当“忙”标志为1时,表示正在执行一条浮点运算指令,为0则表示80x87空闲。状态寄存器的低6位指出异常错误的6种类型,与控制寄存器低6位相。当的控制寄存器位为0(未屏蔽)而状态寄存器位为1时,因发生某种异常错误而产生中断请求。

3.CPU内的浮点运算器,奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。指令执行过程分为8段流水线。前4段为指令预取(DF)、指令译码(D1)、地址生成(D2)、取操作数(EX),在U,V流水线中完成;后4段为执行1(X1)、执行2(X2)、结果写回寄存器堆(WF)、错误报告(ER),在浮点运算器中完成。一般情况下,由V流水线完成一条浮点操作指令。浮点部件内有浮点专用的加法器、乘法器和除法器,有8个80位寄存器组成的寄存器堆,内部的数据总线为80位宽。因此浮点部件可支持IEEE754标准的单精度和双精度格式的浮点数。另外还使用一种称为临时实数的80位浮点数。对于浮点的取数、加法、乘法等操作,采用了新的算法并用硬件来实现,其执行速度是80486的10倍多。

以上内容就是我为大家讲解的运算器的相关知识,希望对大家有很大的帮助,能够更加深入地了解运算器,也希望大家好好一起学习,学习是永无止境的,我们必须有一颗勤奋好学上进的心,用知识来充实自己的生活,有好的知识大家也都应该好好分享出来哦!

浏览过《什么是运算器》的人也浏览了以下:

什么是智能操作器?
http://baike.cntronics.com/abc/5250


什么是电抗器
http://baike.cntronics.com/abc/5214


什么是计算器 ?
http://baike.cntronics.com/abc/5022

特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭