![第3章 运算方法和运算器-2_第1页](http://file4.renrendoc.com/view12/M00/07/38/wKhkGWXeehOAarA0AAIgeg1OwX8475.jpg)
![第3章 运算方法和运算器-2_第2页](http://file4.renrendoc.com/view12/M00/07/38/wKhkGWXeehOAarA0AAIgeg1OwX84752.jpg)
![第3章 运算方法和运算器-2_第3页](http://file4.renrendoc.com/view12/M00/07/38/wKhkGWXeehOAarA0AAIgeg1OwX84753.jpg)
![第3章 运算方法和运算器-2_第4页](http://file4.renrendoc.com/view12/M00/07/38/wKhkGWXeehOAarA0AAIgeg1OwX84754.jpg)
![第3章 运算方法和运算器-2_第5页](http://file4.renrendoc.com/view12/M00/07/38/wKhkGWXeehOAarA0AAIgeg1OwX84755.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章运算方法和运算器§3.3定点乘法运算乘法运算是计算机中常用的运算,过去的计算机中,没有专门的乘法器。乘法运算要靠软件编程来实现。但现在随着LSI和VLSI应用的普及以及价格的下降,乘法运算已做成了标准部件—乘法器。
硬件实现:速度快,成本高
软件实现:速度低,成本低乘法实现原理一样一般来讲,做乘除法运算,用原码比用补码简单,但有的机器,数据是用补码表示的,为避免码制间的频繁转换,乘除也用补码来做。1§3.3定点乘法运算
一、原码乘法原码一位乘用原码运算,数据的符号不能同数值位一同参加运算,而需单独处理,两原码表示的数相乘,其结果的符号是两数符号的异或。-0.1101×0.1011=?Zs=xs
⊕
ys
=1原码运算符号位要单独处理2§3.3定点乘法运算手算乘法:
-0.1101×0.1011=-0.10001111
0.11010.10111101110100001101
0.10001111可以看出:手算乘法是通过移位和加法来实现的。计算机不能照搬的原因:①n位乘法,需n个数相加得部分积,而全加器只有三个输入端,故实现不了。②n位乘法,乘积2n位,要用2n位的寄存器来存放积.③若用加法器做加法,n位乘法,需2n位的加法器,造成硬件浪费.于是,想改进上述方法,达到以下目的:①n位乘法,只用n位加法器,且只用两数相加的加法器②n位乘法,只用n位寄存器来存放结果3§3.3定点乘法运算X×Y=X×0.1011=X×0.1+X×0.00+X×0.001+X×0.0001=0.1{X+0.1[0+0.1(X+0.1×X)]}=2-1{X+2-1{0+2-1[X+2-1(X+0)]}}
|X|×|Y|=|X|×(0.Y1Y2…Yn
) =|X|×(Y12-1+Y22-2+…+Yn
2-n)
=2-1(Y1|X|+2-1(Y2|X|+2-1(…+2-1(Yn
|X|+0)…)))规则:参加运算的操作数取其绝对值;
令乘数的最低位为判断位,若为1,则加被乘数,若为0,则加0;
累加后的部分积以及乘数右移一位;
重复上述操作,直到乘数位全部乘完为止。
n次加法,n次移位4原码一位乘举例(
-0.1101×0.1011)部分积A乘数C00.00001011被乘数B00.1101+00.110100.1101101100.01101101+00.110101.0011110100.10011110+00.000000.1001111000.01001111+00.110101.0001111100.10001111结果:A——积的高位
C——积的低位[x×y]原=1.10001111x×y=-0.100011115原码一位乘法流程图
6原码乘法器7二、补码乘法1.补码一位乘用补码做加减运算很方便,做乘法(包括除法)却是原码很方便,既然这样为何又有补码乘法呢?主要为了避免频繁的码制转换。被乘数x,[x]补=xs.x1…xn
乘数y,[y]补=ys.y1…yn校正法⑴x任意,y>0时,
[X×Y]补=
[Y]补×
[Y]补⑵x任意,y<0时,
[X×Y]补=
[X]补×
(0.y1…yn
)+[-X]补
8
比较法--Booth乘法
补码校正法虽可行,但是在乘数为负时校正控制比较复杂,实用性差。希望能有一个正负数操作一致的算法,这就是比较法(又叫Booth法).
设被乘数[X]补
=Xs.X1X2…Xn
和乘数[Y]补
=Ys.Y1Y2…Yn
均为任意符号,=(Y1-Ys)×[X]补+2-1((Y2-Y1)×[X]补
+2-1((Y3-Y2)×[X]补
+2-1(…+2-1((Yn+1-Yn)×[X]补
+0)
)))9二、补码乘法将此式展开,得到递推关系:
[Z0]补=0[Z1]补=2-1{[Z0]补+(yn+1-yn)[x]补}[Z2]补=2-1{[Z1]补+(yn-yn-1)[x]补}..[Zn]补=2-1{[Zn-1]补+(y2-y1)[x]补}从而得到:
[x×y]补=[Zn]补+(y1-ys).[x]补
--------补码一位乘比较法
10补码一位乘规则及注意事项⑴相乘时,参加运算的数用补码表示,符号位参与运算;被乘数取双符号位,乘数取单符号位并参加运算。⑵乘法开始前,部分积置全0,乘数末位增加附加位yn+1=0。⑶比较yi
和yi+1,决定如何运算
yi
yi+1
00;+全0,结果右移一位;01;+[x]补,结果右移一位;10;+[-x]补,结果右移一位;11;+全0,结果右移一位。⑷重复n+1次,最后一次不移位⑸得乘积2n+2位,其中含两位符号位
11补码一位乘举例例:x=-0.1011,y=-0.1101求x×y=?解:[x]补=11.0101,[-x]补=00.1011[y]补=1.001100.00001.0011
0+00.101100.10111.00110+00.000000.010111001
1
》00.010111001100.001011100
1
》+11.010111.011111100
1
[x×y]补=00.10001111部分积AC11.101111110
0
》
+00.000011.1011111100
11.110111111
0
》
+00.101100.100011111
0
x×y=0.1000111112Booth乘法流程图13原码、补码乘法总结
一位乘
原码补码加法N次N+1次移位N次N次最后一步移一位不移位14§3.6定点除法运算除法是乘法的逆运算,与乘法运算的处理思想相似,可以将n位除转化成若干次“减法-移位”。153.6.1原码除法运算1.原码比较法和恢复余数法手算除法:x=-0.10010y=0.11011
上商:0.10101x/y=-0.10101
余数:0.01001×2-50.1001000.101010.110110.0110110.001001000.0000100100
0.00011011
0.0000001001
0.000001101116⑴比较法比较法类似于手工运算,只是为了便于机器操作,将除数右移改为部分余数左移,每一位的上商直接写到寄存器的最低位。设A寄存器中存放被除数(或部分余数),B寄存器中存放除数,C寄存器用来存放商Q,若A≥B,则上商1,并减除数;若A<B,则上商0。比较法需要设置比较线路,从而增加了硬件的代价。比较过程流程
17
⑵恢复余数法恢复余数法是直接作减法试探方法,不管被除数(或部分余数)减除数是否够减,都一律先做减法。规则:
将被除数-除数,结果大于0,商1,余数左移一位。结果小于0,商0,恢复余数,余数左移一位。重复上述操作,直至商的精度满足要求为止。恢复余数过程流程18
恢复余数法在计算机中较少采用的原因:
(1)恢复除数法会使得除法运算的实际操作次数不固定,从而导致控制电路比较复杂。(2)而且在恢复余数时,要多作一次加法,降低了除法的执行速度。192.原码不恢复余数法(原码加减交替法)
原码不恢复余数法是对恢复余数法的一种改进,它减少了浪费的加法时间,且运算的次数固定,故被广泛采用。在恢复余数法中,若第i-1次求商的部分余数为ri-1,则第i次求商操作为:ri=2ri-1-Y,
若够减,部分余数ri=2ri-1-Y>0,商1,然后进行第i+1次操作:
ri+1=2ri-Y
。
若不够减,部分余数ri=2ri-1-Y<0,商0,恢复余数后,ri’=ri+Y,然后再进行第i+1次操作:
ri+1=2ri’-Y=2(ri+Y)-Y=2ri+2Y-Y=2ri+Y20
原码不恢复余数除法由下面的通式表示:
ri+1=2ri+(1-2Qi)Y
式中Qi为第i次所得的商,若部分余数为正,则Qi=1,部分余数左移一位,下一次继续减除数;若部分余数为负,则Qi=0,部分余数左移一位,下一次加除数。由于加减运算交替地进行,故称为原码加减交替法。21
除法运算需要3个寄存器。A和B寄存器分别用来存放被除数和除数,C寄存器用来存放商,它的初值为0。运算过程中A寄存器的内容为部分余数,它将不断地变化,最后剩下的是扩大了若干倍的余数,只有将它乘上2-n才是真正的余数。
例3-19:已知:X=0.10101,Y=0.11110,求:X÷Y。
|X|=00.10101→A,|Y|=00.11110→B,0→C[|Y|]变补=11.0001022←11.01110左移一位+|Y|00.11110+|Y|原码不恢复余数除法示例
AC说明00.101010.00000+[|Y|]变补
11.00010-|Y|11.101110.00000
余数为负,商000.011000.00001
余数为正,商1←00.11000左移一位+[|Y|]变补
11.00010-|Y|11.110100.00010
余数为负,商0←11.10100左移一位+|Y|00.11110+|Y|00.100100.00101
余数为正,商1←01.00100左移一位+[|Y|]变补
11.00010-|Y|00.001100.01011
余数为正,商1←00.01100左移一位+[|Y|]变补
11.00010-|Y|11.011100.10110
余数为负,商0+|Y|00.11110恢复余数,+|Y|00.01100商=0.10110余数=0.011002-5
符号为正号23原码加减交替除法流程图24原码不恢复余数法需要注意的问题:
(1)在定点小数除法运算时,为了防止溢出,要求被除数的绝对值小于除数的绝对值,|X|<|Y|(|X|=|Y|除外),且除数不能为0。
(2)在原码加减交替法中,当最终余数为负数时,必须恢复一次余数,使之变为正余数,注意此时不需要再左移了。
253.6.2补码除法运算
补码加减交替除法规则[X]补与[Y]补第一次操作[ri]补与[Y]补上商求新余数[ri+1]补的操作同号[X]补-[Y]补①同号(够减)1[ri+1]补=2[ri]补-[Y]补②异号(不够减)0[ri+1]补=2[ri]补+[Y]补异号[X]补+[Y]补①同号(不够减)1[ri+1]补=2[ri]补-[Y]补②异号(够减)0[ri+1]补=2[ri]补+[Y]补26规则:1)第一次:若被除数与除数同号,做被除数减除数若被除数与除数异号,做被除数加除数2)若余数与除数同号,商1,余数左移一位,减除数若余数与除数异号,商0,余数左移一位,加除数3)商的末位恒置1(误差2-n),余数可以是负的,不需要恢复余数。
27补码加减交替除法示例例:已知X=0.1000,Y=-0.1010;求X÷Y。
[X]补=00.1000→A,
[Y]补=11.0110→B,0→C[-Y]补=00.101028+[-Y]补
00.1010+[-Y]补
AC说明00.10000.0000+[Y]补
11.0110[X]补、[Y]补异号,+[Y]补←
11.1100左移一位00.01100.0010
[ri]补、[Y]补异号,商0←
00.1100左移一位+[Y]补
11.0110+[Y]补00.00100.0100[ri]补、[Y]补异号,商0+[Y]补
11.0110+[Y]补11.10100.1001
[ri]补、[Y]补同号,商1←
11.0100左移一位+[-Y]补
00.1010+[-Y]补11.11101.0011
末位恒置111.11100.0001[ri]补、[Y]补同号,商1←
00.0100左移一位29补码加减交替除法示例
[商]补=1.0011[余数]补=1.11102-4∴商=-0.1101
余数=-0.00102-41.11102-41.0110[X÷Y]补=1.0011+-0.00102-4-0.1010X÷Y=-0.1101+30补码加减交替除法流程图
31§3.7逻辑运算计算机在解题过程中,除了要做大量的算术运算外,还需做许多逻辑操作,如:与、或、非、异或等。逻辑运算比算术运算要简单得多,这是因为逻辑运算是按位进行的,位与位之间没有进位与借位的关系。321.逻辑非逻辑非又称求反操作,它对某个寄存器或主存单元中各位代码按位取反。
设:X=X0X1…Xn,Z=Z0Z1…Zn
则:Zi=(i=0,1,…,n)2.逻辑与
逻辑与就是将两个寄存器或主存单元中的每一相应位的代码进行按位与操作。
设:X=X0X1…Xn,Y=Y0Y1…Yn,
Z=Z0Z1…Zn
则:Zi=Xi∧Yi(i=0,1,…,n)
333.逻辑或逻辑或就是将两个寄存器或主存单元中的每一相应位的代码进行或操作。
设:X=X0X1…Xn,Y=Y0Y1…Yn,
Z=Z0Z1…Zn
则:Zi=Xi∨Yi(i=0,1,…,n)4.逻辑异或
逻辑异或又称按位加,它对两个寄存器或主存单元中各位的代码求模2和。
设:X=X0X1…Xn,Y=Y0Y1…Yn,
Z=Z0Z1…Zn
则:Zi=Xi⊕Yi(i=0,1,…,n)34例3-25X=10101011,Y=11001100,求X⊕Y。解:10101011⊕
1100110001100111353.8定点运算器设计
运算器是在控制器的控制下实现其功能的。运算器不仅可以完成数据信息的算术和逻辑运算,还可以作为数据信息的传送通路。363.8.1运算器的基本结构
基本的运算器包含以下几个部分:实现基本算术、逻辑运算功能的ALU;提供操作数与暂存结果的寄存器组;有关的判别逻辑和控制电路等。
运算器内的各功能模块之间的连接也广泛采用总线结构,这个总线称为运算器的内部总线,ALU和各寄存器都挂在上面。运算器的内部总线是CPU的内部数据通路,因此只有数据线。37
按照向ALU提供操作数的方法不同分为:⑴带多路选择器的运算器
各寄存器可以独立、多路地将数据送至ALU的多路选择器,使ALU有选择地同时获得两路输入数据。运算器的内部总线是一组单向传送的数据线,它将运算结果送往各寄存器。
38
⑵带输入锁存器的运算器
运算器的内部总线是一组双向传送的数据线。为了进行双操作数之间的运算操作,ALU输入端前设置了一级锁存器,可暂存操作数。例如,要实现(R0)+(R1)→R2,可通过内部总线先将R0中的数据送入锁存器1,再通过内部总线将R1中的数据送入锁存器2,然后相加,并将结果经总线送入R2。
393.8.2
运算器的内部总线结构
⑴单总线结构运算器
前面两种运算器就是单总线结构运算器。这种结构的运算器实现一次双操作数的运算需要分成三步,它的主要缺点是操作速度慢。
40
⑵双总线结构运算器
两个操作数可以分别通过总线1和总线2同时送到ALU去进行运算,并且立即可以得到运算的结果。但是ALU的输出不能直接送到总线上去,这是因为此时两条总线都被操作数所占据着,所以必须在ALU的输出端设置一个缓冲器,先将运算结果送入缓冲器,第二步再把结果送至目的寄存器。显然,它的执行速度比单总线要快,每次操作比单总线少一步。
41
⑶三总线结构运算器
ALU的两个输入端分别由两条总线供给,输出与第三条总线相连,这样算逻操作就可以在一步控制之内完成。如果某一个数不需要运算和修改,而需要直接由总线2传到总线3,可通过总线旁路器把数据送出,而不必借助于ALU。三总线结构的特点是操作速度快,但控制较前两种复杂。423.8.3算术逻辑运算单元(ALU)1.ALU电路
ALU即算术逻辑单元,它是既能完成算术运算又能完成逻辑运算的部件。前面已经讨论过,无论是加、减、乘、除运算,最终都能归结为加法运算。因此,ALU的核心首先应当是一个并行加法器,同时也能执行像“与”、“或”、“非”、“异或”这样的逻辑运算。
ALU的逻辑原理图432.4位ALU芯片
典型的4位ALU芯片(74181)
74181能执行16种算术运算和16种逻辑运算。
4474LS181逻辑图45S3S2S1S0M=0(算术运算)M=1(逻辑运算)Cn=1(无进位)Cn=0(有进位)0000F=AF=A+1F=A0001F=A|BF=(A|B)+1F=A|B0010F=A|BF=(A|B)+1F=AB0011F=0-1F=0F=00100F=A+ABF=A+AB+1F=AB0101F=AB+(A|B)F=AB+(A|B)+1F=B0110F=A-B-1F=A-BF=A⊕B0111F=AB-1F=ABF=AB1000F=A+ABF=A+AB+1F=A+B1001F=A+BF=A+B+1F=A⊕B1010F=AB+(A|B)F=AB+(A|B)+1F=B1011F=AB-1F=ABF=AB1100F=A+AF=A+A+1F=11101F=A+(A|B)F=A+(A|B)+1F=A+B1110F=A(A|B)F=A+(A+B)+1F=A+B1111F=A-1F=AF=A
74LS181逻辑功能表(注意:“+”为算术加,“|”为逻辑或,“-”为算术减。)463.ALU的应用
74181的4位作为一个小组,小组间既可以采用串行进位,也可以采用并行进位。当采用串行进位时,只要把低一片的Cn+4与高一片的Cn相连即可。当采用组间并行进位时,需要增加一片74182,这是一个先行进位部件。74182可以产生3个进位信号Cn+x、Cn+y、Cn+z,并且还产生大组进位产生函数和进位传递函数。4774182芯片方框图
48
各片74181输出的组进位产生函数和组进位传递函数作为74182的输入,而74182输出的进位信号Cn+x、Cn+y、Cn+x作为74181的输入,74182输出的大组进位产生函数和大组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目合同还款协议
- 现代办公环境下的绿色建筑施工技术研究
- 电子病历系统建设及管理案例分享
- 2024年高中化学第二章1第1课时烷烃和烯烃练习含解析新人教版选修5
- 2024-2025学年高中地理第一章自然灾害概述第三节人类活动与自然灾害学案中图版选修5
- 电商平台的短视频营销策略分析
- 电动车产业人才培养的课程设计与实践教学
- 物流产业与城市经济发展关系研究
- 社交媒体与企业领导的形象塑造
- 电子支付的商业应用场景及未来方向
- 地理-广东省上进联考领航高中联盟2025届高三下学期开学考试题和答案
- 2025山东能源集团中级人才库选拔高频重点提升(共500题)附带答案详解
- 新员工入职登记表模板表格(标准版)
- 《边教书边成长》读书分享课件
- 刘润年度演讲2024
- 燃气经营安全重大隐患判定标准课件
- 统编版语文八年级下册全册大单元整体教学设计表格式教案
- 小学科学人教鄂教版四年级下册全册教案2023春
- 节后复工复产安全生产工作方案
- 配电网工程典型设计10kV电缆分册
- 寒凝淤阻型月经不调治疗中温经祛瘀汤辩证疗法的运用评估
评论
0/150
提交评论