3运算方法与运算器_第1页
3运算方法与运算器_第2页
3运算方法与运算器_第3页
3运算方法与运算器_第4页
3运算方法与运算器_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 运算方法与运算器, 计 算 机 组 成 原 理 精 品 课 程,进 入,主要内容,3.1 运 算 的 基 础,3.2 定 点 数 的 加 减 运 算 及 实 现,3.3 定 点 数 乘 法 运 算 及 实 现,3.4 定 点 数 除 法 运 算 及 实 现,3.6 浮 点 算 术 运 算 及 浮 点 运 算 器,3.5 定 点 运 算 器 的 组 成,算术逻辑运算单元(简称ALU)的主要功能是对二进制数据进行算术运算、逻辑运算和各种移位操作,它是一种以加法器为基础的多功能组合逻辑电路。其基本设计思想是:在加法器的输入端加入一个函数发生器,这个函数发生器可以在多个控制信号的控制下,为加法

2、器提供不同的输入函数,从而构成一个具有较完善的算术逻辑运算功能的运算部件。,3.1.1逻辑操作及算逻部件ALU,3.1 运算的基础,3.1.2 移位操作及移位寄存器,计移位操作是运算器的一种基本操作。根据移位的性质可将移位操作分为三种类型:逻辑移位,算术移位和循环移位。其中循环移位还可再分为不带进位的循环(小循环)和带进位的循环(大循环)两种。根据移位的方向又可分为左移和右移两大类。 如图3.2所示为一个可完成上述四类移位功能的16位移位寄存器的简化框图。,为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向总线发送数据的控制信号,CP为移位寄存

3、器的打入脉冲信号。,计数操作在计算机中被广泛使用,计数器就是实现这一操作的器件。计数器在计算机系统中的应用主要有:作分频器,产生计算机系统所需的各种时序信号。 根据计数器时钟的作用方式,计数器可分为异步计数器和同步计数器两大类。在异步计数器中由于高位触发器的时钟信号来自低一位触发器的输出,也就是说高位触发器的翻转依赖于低一位触发器的翻转,如图3.3所示。由于各位触发器不是在同一时间翻转,使得计数器速度较低。而且各位触发器输出信号不能同时产生。,3.1.3 计数操作及计数器,同步计数器中各位触发器的时钟信号是来自同一计数脉冲,各位触发器同时工作,因此工作速度比异步计数器高并且不受计数器位数影响,

4、但同步计数器要比异步计数器复杂许多,而且复杂程度随计数器位数增加而增加。,3.1.4 取反、取补操作及取补器,取反操作和取补操作是运算器应该具备的基本操作,取反操作就是逻辑非(NOT)操作,通常将这类操作归为逻辑运算。取反操作也属取补操作,它是对“1”求补。实现取反操作有多种途径。用非门实现;用异或门实现(异或门的一个输入端为输入数据,另一端作为控制端,取反时控制端应为“1”);如果是触发器,寄存器则由反端输出即可实现求反。 取补操作指的是对2求补。计算机指令系统中大多设置有取补指令NEG,由于计算机中的数据多以补码表示,该指令的功能实际上是求一个数的相反数。,从图中可以看出,当命令NEG到来

5、时(NEG=1),将开放各位与门,某位是否变“1”取决于前一位的或门输出是否为“1”。图中,最低位D0的与门和或门的一个输入端恒接地,因此D0的输出保持不变。而比其高的各位是否取反,则取决于输入数据D0是否为“1”。若D0=1,或门输出为“1”, D1位与门输出为“1”, D1位数据变反,并且使更高各位的或门输出始终为“1”,更高各位均按位取反;若D0=0,或门输出为“0”, D1位与门输出为“0”,使D1位数据不变,而第二位数据D2变反与否又取决于D1位的数据,以此类推,从而实现了求补运算。,为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向

6、总线发送数据的控制信号,CP为移位寄存器的打入脉冲信号。,3.2 定点数的加减运算及实现,3.2.1 补码的加减运算及溢出判断,1补码加法,负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。 补码加法的公式是,当x+y的结果无溢出时,有补补补,所谓溢出是在规定机器字长情况下,运算结果超出了可表示值的范围。,例3-1 0.1001, 0.0101,求。 解:补0.1001, 补0.0101 补0.1001 补0.0101 补0.1110 所以0.1110,例3-2 0.1011, 0.0101,求。 解:补0.1011,补1.

7、1011 补 01101 补11010 补 100111 所以0.0110 由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是超过2的进位要丢掉。,2补码减法,数用补码表示时,减法运算的公式为 补补补补补 从补求补的法则是:对补包括符号位“按位求反且最末位加1”,即可得到补。写成运算表达式,则为补补2n,其中符号表示对补作包括符号位在内的求反操作,2n表示最末位的1。,例3-3 已知10.1110,20.1101,求:1补,1补,2补,2补。 解: 1补1.0010,2补0.1101 1补1补2-40.11010.00010.1110 2补2补2-41.00100.0

8、0011.0011,例3-4 0.1101,0.0110,求。 解:补0.1101,补0.0110,补1.1010 补 0.1101 补 1.1010 补10.0111 所以0.0111,3溢出概念与检测方法,在定点小数机器中,数的表示范围为|1. 在运算过程中如出现绝对值大于1的现象,称为“溢出”。下面是机器定点小数的表示。 例3-5 0.1011, 0.1001,求。 解:补0.1011, 补0.1001 补0.1011 补0.1001 补1.0100 两个正数相加的结果成为负数,这显然是错误的。,例3-7 0.1100, 0.1000,求。 解:补00.1100,补00.1000 补 0

9、0.1100 补 00.1000 补 01.0100 两个符号位出现“01”,表示已正溢出,即结果大于1。,例3-8 0.1100, 0.1000,求。 解:补11.0100,补11.1000 补11.0100 补11.1000 补 10.1100 两个符号位出现“10”,表示已负溢出,即结果小于1。,3.2.2 加减运算的实现,全加器有三个输入量:本位加数Ai 、Bi和低位来的进位Ci。两个输出量Si和向高位的进位Ci+1。 图3.5为一位全加器示意图,求和部分Si由两个异或门组成,进位部分Ci+1由与非门组成。,3.2.4 二-十进制数运算及加法器,使计算机直接进行十进制运算,为此需要十进

10、制运算器,十进制运算器的核心部件是十进制加法器。 BCD码中的8421码是用4位二进制数表示一位十进制数的有权码。4位二进制数可有16种不同的编码,一位十进制数只需要00001001共十种码点,其余六个10101111是不能使用的非法编码。,例3-9 347 解:8421码和数001101000111 结果为7,不需修正。,例3-10 3912 解:8421码和数001110011100 结果10,有非法编码出现,结果需要修正。修正方法是再加上6。 因此8421码十进制加法调整规则为: (1)将4位二进制分为一组,代表一位十进制数,在组内相加仍遵循“逢二进一”的规则; (2)两位8421码相加

11、结果16,即向高一组进位时,应加6修正; (3)两位8421码相加结果10,即有非法码出现时,应加6修正。,3.3.1原码乘法及实现,在定点机中,有两个原码表示的数,设 x原xf.x1x2xn ,y原yf.y1y2yn,Z原x原y原zf.z1z2zn。 1积的符号单独按两操作数的符号异或得到。用被乘数和乘数的数值部分进行运算。 2以乘数的最低位作为乘法判别位,若判别位为1,则在前次部分积(初始部分积为0)上加上被乘数,然后连同乘数一起右移一位;若判别位为0,则在前次部分积上加0(或不加),然后连同乘数一起右移一位。 3重复第2步直到运算n次为止(n为乘数数值部分的长度)。,3.3 定点数乘法运

12、算及实现,3.3.1原码乘法及实现,例3-11 x=0.1101,y=0.1011,根据原码一位乘法的算法计算z=xy。 解:x原0.1101,y原1.1011,乘积 z原xy原 首先,符号位单独处理得 zf011,将被乘数和乘数的绝对值的数值部分相乘。 |x|原0.1101 ,|y|原0.1011 ,数值部分为4位,共需运算4次。 得:|xy|0.10001111 加上符号部分得:xy原1.10001111 即:xy0.10001111,3.3.2补码乘法及实现,下面讨论的补码一位乘法就是Booth乘法,其算法描述如下: 1参加运算的数均以补码表示,符号位参加运算且部分积与被乘数采用双符号位

13、。 2乘数末位增设附加位yn+1,且初始yn+10。 3 以ynyn+1作为乘法判别位: 若ynyn+100或11,则前次部分积(初始部分积为0)加0(或不加),然后连同乘数右移一位;若ynyn+101,则前次部分积加x补,然后连同乘数右移一位;若ynyn+110,则前次部分积加x补,然后连同乘数右移一位。 4重复上面第3步,共做n+1次,最后一次不移位。,3.3.3阵列乘法器,随着大规模集成电路技术的发展,为提高乘法的运算速度,出现了阵列乘法器。阵列乘法器的组成依据也来源于手算。 图3.11就是一个实现定点数按绝对值相乘的阵列乘法器。将大量的加法器单元电路按一定的阵列形式排列起来,直接实现乘

14、法算式。阵列乘法器主要用于并行流水线运算器等追求运算速度的场合。,3.4.1原码除法及实现,由于定点运算的结果不应超过机器的所能表示的数据范围,所以为了不使商产生溢出,在进行定点除法时应满足:对定点小数要求:|被除数|除数|,对定点整数要求:|被除数|除数|。在此介绍除法的两种方法。 1恢复余数法 实际计算机作除法时是通过做减法来进行余数和除数的比较,即用余数(初值为被除数)减去除数,若减得结果为正,表示够减,商为1;若减得结果为负,表示不够减,商为0。这时本来不够减而减了,所以要把除数再加回去,恢复成原来的余数,因此本方法称为“恢复余数法”。,3.4 定点数除法运算及实现,原码恢复余数法算法

15、:(定点小数) (1)判溢出,要求|被除数|除数|。若除法溢出,则停止运算。 (2)符号位单独按两数符号异或值求得; (3)被除数减去除数; (4)若所得余数为正,表示够减,相应位上商为1,余数左移一位(相当于除数右移)减去除数;若所得余数为负,表示不够减,相应位上商为0,余数加上除数(恢复余数),再左移一位减去除数。 (5)重复第(4)步,直到求得所要求的商的各位为止。,2加减交替法(不恢复余数法) 加减交替法是在恢复余数法的基础上发展而来的,是对恢复余数法的一种改进。加减交替法,将原码恢复余数法中余数ri0时的操作相加、左移、相减三步,用左移、相加两步来代替。这样,既可节省恢复余数的时间,

16、又简化了控制逻辑(余数为正为负,均为左移、加/减两步) 。,(1)判溢出,若|被除数|除数|,则除法将发生溢出,不能进行除法运算; (2)商的符号单独按两个操作数符号的模2加法求得; (3)被除数减去除数;,3.4.2 补码除法及实现,补码除法的运算规则如下: (1)如果被除数与除数同号,求商时,用被除数减去除数;若两数异号,则用被除数加上除数的办法处理。 (2)若余数与除数同号,上商1,左移一位后下次作余数减除数操作;若余数与除数异号,上商0,左移一位后下次作余数加除数操作。 (3)商的符号是在第一次试算时求出的,若定点除不溢出,得到的就是正确的符号位的值。 (4)商的修正问题。在对精度要求

17、不高时,将商的最低一位恒置1。此时最大误差为|2-n|。若对商的精度要求较高时,可对n位数求商的n+1次,按得到的不同结果对商进行修正。当商为负时,要在商的最低一位加1,从反码的结果得到商的正确的补码值。,3.4.3 阵列除法器,与阵列乘法器相类似,利用大规模集成电路技术,可制成阵列除法器组件。阵列除法器是利用若干个加减单元组成阵列,将各步加减、移位操作在一个节拍内完成,从而提高除法运算速度。其结构原理是将多步“左移,加减”操作交给一个由基本可控加减单元组成的阵列完成。图3.13是可控加减单元(CAS)逻辑框图。,3.4.3 阵列除法器,3.5 定点运算器的组成,运算器是CPU的重要组成部分,

18、它是计算机对数据进行加工处理的部件,不仅可以完成数据信息的算术逻辑运算,而且也作为数据信息的主要通路。 运算器包括算术逻辑部件ALU、通用寄存器组、多路开关和数据总线等基本逻辑部件。运算器设计主要是围绕着ALU和寄存器同数据总线之间如何传送操作数和运算结果而进行的。 现代计算机的运算器大体上有三种结构形式。,3.5.1 运算器的内部总线,1单总线结构的运算器,2双总线结构的运算器,3三总线结构的运算器,3.5.2 带累加器的运算器,3.5.3 单总线移位乘除的运算器,在定点机中,有两个原码表示的数,设 x原xf.x1x2xn ,y原yf.y1y2yn,Z原x原y原zf.z1z2zn。 原码一位乘法的算法 1积的符号单独按两操作数的符号异或得到。用被乘数和乘数的数值部分进行运算。 2以乘数的最低位作为乘

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论