




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理数据的表示和运算1第二部分 数据的表示和运算 2.1 数制与编码 2.2 定点数表示和运算 2.3 浮点数表示和运算 2.4 算术逻辑单元ALU2 2.2 定点数表示和运算 2.2.1定点数的表示 1、无符号数的表示; 2、有符号数的表示。2.2.2定点数的运算 1、定点数的位移运算; 2、原码定点数的加/减运算; 3、补码定点数的加/减运算; 4、定点数的乘法运算3回顾1、移位运算对有符号数的移位运算成为算术移位。对无符号数的移位运算成为逻辑移位。算术移位的特点:对于正数,三种机器数算术移位后符号位均不变,左移最高位丢1,结果错误;右移最低位丢1,影响精度。对于负数,三种机器数
2、算术移位后符号位不变。 原码左移,高位丢1,结果出错;原码右移低位丢1,影响精度。 补码左移,高位丢0,结果出错;补码右移低位丢1,影响精度。 反码左移,高位丢0,结果出错;反码右移低位丢0,影响精度。4负数用补码表示,右移一位,是否也相当于乘1/2?均为任意符号,则有补码乘法算式:x.原码两位乘和原码一位乘比较反码加法运算遵循 X反+Y反=X+Y反 规则。y补 =x补.y1y2 yn) + x补= x*(y12-1+y22-2+ + yn2-n)z1补= 2-1(yn+1yn)x补+z0补 yn+1 = 0y1y2 yn) 乘积的符号位 x0 y0 = 0 1 = 1 数值部分按绝对值相乘移
3、位和加受末位乘数控制y补 = 2 +x.y=2(y1y2 yn 数值部分按绝对值相乘y1 yn ) x补 y0移位和加受末位乘数控制回顾2、补码定点数的加/减运算补码加法补码加法的特点:符号位作为数的一部分参加运算,符号位的进位丢掉。运算结果为补码形式整数 A补 + B补= A+B补 (mod 2n+1)小数 A补 + B补= A+B补 (mod 2)补码减法因为 AB= A+(B ),所以有补码减法:整数 A B补= A+(B )补= A补 + B补 (mod 2n+1)小数 A B补= A+(B )补= A补 + B补 (mod 2)从Y补求-Y补的法则是: 对Y补包括符号位“求反且最末位
4、加1” 5回顾3、溢出的检测 溢出:运算结果超出机器的表数范围定点加减法溢出条件:同号数相加或异号数相减。运算结果超载。1)溢出的检测可能产生溢出的情况两正数加,变负数,上溢(大于机器所能表示的最大数)两负数加,变正数,下溢(小于机器所能表示的最小数)2)溢出的检测方法 双符号位法(参与加减运算的数采用变形补码表示)单符号位法6回顾4、反码加减法运算(1)反码加法运算 反码加法运算遵循 X反+Y反=X+Y反 规则。符号位参加运算。符号位相加后,如果有进位,则把该进位的数字加到数的最低位,即循环进位。(2)反码减法 两个反码表示的数相减,类似于补码减法,将减数变符号,并根据变号后的减数取反,按反
5、码加法进行。72.2.2定点数的运算7、定点数的乘法运算 分析笔算乘法 A = 0.1101 BAB0 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1乘积的符号心算求得符号位单独处理乘数的某一位决定是否加被乘数 4个位积一起相加乘积的位数扩大一倍 ?82.2.2定点数的运算笔算乘法改进A B = AAAAAAA + ( AA)A + 0 A + 0. 1( AA)= A +0.1 0 A+0.1(AA)= 2-1A +2-1 0 A+2-1(A + 2-1(A+0)第一步 被乘数A + 0第二步 1,得新的
6、部分积第八步 1,得结果第三步 部分积 + 被乘数右移一位92.2.2定点数的运算改进后的笔算乘法过程102.2.2定点数的运算1)定点原码乘法 (1) 原码一位乘运算规则(以小数为例)设x原 = x0.x1x2 xn y原 = y0.y1y2 yn= (x0 y0). x*y*x y原 = (x0 y0).(0.x1x2 xn)(0.y1y2 yn)式中 x*= 0.x1x2 xn 为 x 的绝对值 y*= 0.y1y2 yn 为 y 的绝对值 乘积的符号位单独处理 x0 y0数值部分为绝对值相乘 x* y*112.2.2定点数的运算原码一位乘递推公式x* y* = x*(0.y1y2 yn
7、)= x*(y12-1+y22-2+ + yn2-n)= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0) )z1znz0 = 0z1 = 2-1(ynx*+z0)z2 = 2-1(yn-1x*+z1)zn = 2-1(y1x*+zn-1)z0122.2.2定点数的运算 右图是一个32位乘法器的结构框图,其中32位被乘数放在R2中,运算开始时32位乘数放在R1中,运算结束时64位乘积的高位放在R0中,低位放在R1中,R0和R1串联移位。 在该乘法过程中,每次操作是根据乘数的一位进行操作,对于32位数的乘法,需要循环32次完成一个乘法操作,因此称为一位乘法。 132.2.2定点数
8、的运算 完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示。 142.2.2定点数的运算 已知 x = 0.1110 y = 0.1101 求x y原逻辑右移逻辑右移152.2.2定点数的运算 乘积的符号位 x0 y0 = 1 0 = 1 数值部分按绝对值相乘 x* y* = 0. 1 0 1 1 0 1 1 0 则 x y原 = 1. 1 0 1 1 0 1 1 0 特点绝对值运算用移位的次数判断乘法是否结束逻辑移位162.2.2定点数的运算原码一位乘的硬件配置0 A n 加 法 器控 制 门0 X n 移位和加控制计数器 CSGM0Q n右移A、X、Q 均 n+1 位移位和
9、加受末位乘数控制172.2.2定点数的运算(2)原码两位乘原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定新的部分积如何形成,因此可提高运算速度。一位乘符号位和数值位部分分开运算两位乘每次用乘数的2位判断原部分积是否加和 如何加 被乘数182.2.2定点数的运算两位乘数共有4种状态,对应这4种状态可得下表。1 11 00 10 0新的部分积乘数yn-1 yn加 “0” 2加 1 倍的被乘数 2加 2 倍的被乘数 2加 3 倍的被乘数 2192.2.2定点数的运算原码两位乘运算规则11 111 010 110 001 101 000 100 0
10、 操 作 内 容标志位Cj乘数判断位yn-1yn z 2, y* 2, Cj 保持“0” z 2, y* 2, Cj 保持“1”zx* 2, y* 2, Cj 保持“1” z+2x* 2, y* 2, Cj 保持“0”z+x* 2, y* 2, Cj 保持“0” zx* 2, y* 2, 置“1” Cjz+2x* 2, y* 2, 置“0” Cj z+x* 2, y* 2, 置“0” Cj共有操作 +x* +2x* x* 2实际操作 +x*补 +2x*补 +x* 补 2 补码移202.2.2定点数的运算例:已知 x = 0.111111 y = 0.111001 求xy原补码右移212.2.2
11、定点数的运算 数值部分的运算 乘积的符号位 x0 y0 = 0 1 = 1x* y* = 0. 1 1 1 0 0 0 0 0 0 1 1 1则 x y原 = 1. 1 1 1 0 0 0 0 0 0 1 1 1特点绝对值的补码运算算术移位用移位的次数判断乘法是否结束222.2.2定点数的运算原码两位乘和原码一位乘比较符号位操作数移位移位次数最多加法次数x0 y0 x0 y0绝对值绝对值的补码逻辑右移算术右移nnn2(n为偶数)n2+1(n为偶数)原码一位乘原码两位乘n 为奇数时,原码两位乘移 n/2 +1次最多加 n/2 +1次232.2.2定点数的运算2) 补码乘法(1)补码与真值的关系
12、设 x补 = x0.x1x2 xn当X0时,x0=0,x补 = 0.x1x2 xn=xi2-i = x当x0 x(0.y1y2 yn) 补 = x补 (0.y1y2 yn) 所以 x.y补= x补 (0.y1y2 yn) + x补 282.2.2定点数的运算 乘数y补,去掉符号位,操作同 最后 加x补,校正运算规律:292.2.2定点数的运算 被乘数、乘数符号任意设x补 = x0.x1x2 xn y补 = y0.y1y2 yn综合 ,得到补码乘法统一算式 x y补= x补( 0.y1 yn ) + x补 y0当y0 时,y0=0 x. y补 = x补. y 当y0 时,y0=1 x.y补= x
13、补 (0.y1y2 yn) + x补 30补码比较法(Booth 算法)设x补 = x0.x1x2 xn y补 = y0.y1y2 ynx y补= x补( 0.y1 yn ) x补 y0= x补(y1 2-1+y22-2+ +yn2-n) x补 y0= x补(y0+y1 2-1+y22-2+ +yn2-n)= x补y0+(y1 y12-1)+(y22-1y22-2)+ +(yn2-(n-1)yn2-n) = x补(y1y0)+(y2y1)2-1+ +(ynyn-1)2-(n-1)+(0 yn)2-n) y1 2-1 + + yn 2-nx补= +x补 2-1 = 20 2-12-2 = 2-1
14、 2-2= x补(y1y0)+(y2y1)2-1+ +(yn+1yn)2-n 附加位 yn+131Booth 算法递推公式z0补= 0z1补= 2-1(yn+1yn)x补+z0补 yn+1 = 0zn补= 2-1(y2y1)x补+zn-1补x y补= zn补+(y1y0)x补最后一步不移位如何实现 yi+1yi ?0 00 11 01 11+x补 1+x补 11yi yi+1操作yi+1yi 0 1 -1 0 32例已知 x = +0.0011 y = 0.1011 求xy补解:0 0 . 0 0 0 01 1 . 1 1 0 11 1 . 1 1 0 10 0 . 0 0 1 11 1 .
15、1 1 0 10 0 . 0 0 1 11 1 . 1 1 0 11 . 0 1 0 100 0 . 0 0 0 111 1 . 1 1 0 11 10 0 . 0 0 0 11 1 11 1 . 1 1 0 11 1 1 1 x补 y补 x补 +x补1 1 . 1 1 1 01 1 0 1 0 11+x补0 0 . 0 0 0 01 1 1 0 101+x补1 1 . 1 1 1 01 1 1 1 0110 0 . 0 0 0 0 1 1 1 1 101+x补+x补 xy补 =1.11011111 最后一步不移位 332.2.2定点数的运算Booth 算法的硬件配置A、X、Q 均 n + 2
16、 位移位和加受末两位乘数控制0 A n+1n + 2 位加法器控 制 门0 X n+10 Q n n+1移位和加控制逻辑计数器 CGM00,110110右移342.2.2定点数的运算补码两位乘 补码两位乘运算规则是根据补码一位乘的规则,把比较yiyi+1的状态应执行的操作和比较yi-1yi 的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。判断位yi-1y iyi+1操作内容000zi+1补=2-2zi补001zi+1补=2-2zi补+x补010zi+1补=2-2zi补+x补011zi+1补=2-2zi补+2x补100zi+1补=2-2zi补+2-x补101zi+1补=2-2zi补+ -x补110zi+1补=2-2zi补+-x补111zi+1补=2-2zi补352.2.2定点数的运算操作中出现加2x补和加2-x补,故除右移两位的操作外,还有被乘数左移一位的操作;而加2x补和加2-x补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有行业适合做
- 把握汽车美容师职业发展的考试题目及答案
- 了解2024年汽车维修工考试考点及试题及答案
- 食品安全环境的质检理论试题及答案
- 统计学考试小技巧试题及答案2024
- 探索2025年语文考试试题及答案
- 汽车电子设备故障检修技术探讨试题及答案
- 商业分析师求职面试试题及答案
- 2024年商业分析师告别错误试题及答案
- 宠物营养师职业技能的竞赛与考试的结合与试题及答案
- 牛津译林版八年级下册英语Unit 5(单元整体+课时教学设计)
- 呼吸道疾病防治知识
- GB/T 27030-2025合格评定第三方符合性标志的通用要求
- 2025 南沙区危险化学品和化工医药企业防静电安全指引
- 2024年南通市市属事业单位统一招聘笔试真题
- (二模)温州市2025届高三第二次适应性考试数学试卷(含答案详解)
- 2025华电内蒙古能源有限公司校园招聘笔试参考题库附带答案详解
- 急性胆囊炎护理病例讨论
- 社会主义政治建设
- 公共管理学方法论知到智慧树章节测试课后答案2024年秋华南农业大学
- 科室停电停水的应急预案
评论
0/150
提交评论