欢迎来到天天文库
浏览记录
ID:39416406
大小:1.79 MB
页数:40页
时间:2019-07-02
《运算方法与运算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章运算方法与运算器《计算机组成原理》精品课程进入主要内容3.1运算的基础3.2定点数的加减运算及实现3.3定点数乘法运算及实现3.4定点数除法运算及实现3.6浮点算术运算及浮点运算器3.5定点运算器的组成算术逻辑运算单元(简称ALU)的主要功能是对二进制数据进行算术运算、逻辑运算和各种移位操作,它是一种以加法器为基础的多功能组合逻辑电路。其基本设计思想是:在加法器的输入端加入一个函数发生器,这个函数发生器可以在多个控制信号的控制下,为加法器提供不同的输入函数,从而构成一个具有较完善的算术逻辑运算功能的运
2、算部件。3.1.1逻辑操作及算逻部件ALU3.1运算的基础3.1.2移位操作及移位寄存器计移位操作是运算器的一种基本操作。根据移位的性质可将移位操作分为三种类型:逻辑移位,算术移位和循环移位。其中循环移位还可再分为不带进位的循环(小循环)和带进位的循环(大循环)两种。根据移位的方向又可分为左移和右移两大类。如图3.2所示为一个可完成上述四类移位功能的16位移位寄存器的简化框图。为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向总线发送数据的控制信号,CP为移
3、位寄存器的打入脉冲信号。计数操作在计算机中被广泛使用,计数器就是实现这一操作的器件。计数器在计算机系统中的应用主要有:作分频器,产生计算机系统所需的各种时序信号。根据计数器时钟的作用方式,计数器可分为异步计数器和同步计数器两大类。在异步计数器中由于高位触发器的时钟信号来自低一位触发器的输出,也就是说高位触发器的翻转依赖于低一位触发器的翻转,如图3.3所示。由于各位触发器不是在同一时间翻转,使得计数器速度较低。而且各位触发器输出信号不能同时产生。3.1.3计数操作及计数器同步计数器中各位触发器的时钟信号是来自
4、同一计数脉冲,各位触发器同时工作,因此工作速度比异步计数器高并且不受计数器位数影响,但同步计数器要比异步计数器复杂许多,而且复杂程度随计数器位数增加而增加。3.1.4取反、取补操作及取补器取反操作和取补操作是运算器应该具备的基本操作,取反操作就是逻辑非(NOT)操作,通常将这类操作归为逻辑运算。取反操作也属取补操作,它是对“1”求补。实现取反操作有多种途径。用非门实现;用异或门实现(异或门的一个输入端为输入数据,另一端作为控制端,取反时控制端应为“1”);如果是触发器,寄存器则由反端输出即可实现求反。取补操
5、作指的是对2求补。计算机指令系统中大多设置有取补指令NEG,由于计算机中的数据多以补码表示,该指令的功能实际上是求一个数的相反数。从图中可以看出,当命令NEG到来时(NEG=1),将开放各位与门,某位是否变“1”取决于前一位的或门输出是否为“1”。图中,最低位D0的与门和或门的一个输入端恒接地,因此D0的输出保持不变。而比其高的各位是否取反,则取决于输入数据D0是否为“1”。若D0=1,或门输出为“1”,D1位与门输出为“1”,D1位数据变反,并且使更高各位的或门输出始终为“1”,更高各位均按位取反;若D0
6、=0,或门输出为“0”,D1位与门输出为“0”,使D1位数据不变,而第二位数据D2变反与否又取决于D1位的数据,以此类推,从而实现了求补运算。为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向总线发送数据的控制信号,CP为移位寄存器的打入脉冲信号。3.2定点数的加减运算及实现3.2.1补码的加减运算及溢出判断1.补码加法负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。补码加法的公式是,当
7、x+y的结果无溢出时,有[x]补+[y]补=[x+y]补,所谓溢出是在规定机器字长情况下,运算结果超出了可表示值的范围。[例3-1]x=0.1001,y=0.0101,求x+y。解:[x]补=0.1001,[y]补=0.0101[x]补 0.1001+[y]补 0.0101[x+y]补 0.1110所以 x+y=+0.1110[例3-2]x=+0.1011,y=-0.0101,求x+y。解:[x]补=0.1011, [y]补=1.1011[x]补 0﹒1101+[y]补 1﹒1010[x+y]
8、补 10﹒0111所以 x+y=0.0110由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是超过2的进位要丢掉。2.补码减法数用补码表示时,减法运算的公式为[x-y]补=[x]补-[y]补=[x]补+[-y]补从[y]补求[-y]补的法则是:对[y]补包括符号位“按位求反且最末位加1”,即可得到[-y]补。写成运算表达式,则为[-y]补=﹁[y]补+2-n,其中符号﹁表示对[y]补作
此文档下载收益归作者所有