[PPT模板]计算机组成原理.ppt

上传人:sccc 文档编号:4596163 上传时间:2023-04-29 格式:PPT 页数:35 大小:508.50KB
返回 下载 相关 举报
[PPT模板]计算机组成原理.ppt_第1页
第1页 / 共35页
[PPT模板]计算机组成原理.ppt_第2页
第2页 / 共35页
[PPT模板]计算机组成原理.ppt_第3页
第3页 / 共35页
[PPT模板]计算机组成原理.ppt_第4页
第4页 / 共35页
[PPT模板]计算机组成原理.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《[PPT模板]计算机组成原理.ppt》由会员分享,可在线阅读,更多相关《[PPT模板]计算机组成原理.ppt(35页珍藏版)》请在三一办公上搜索。

1、计算机组成原理,王立波,Computer Composition Principle,临沂大学信息学院,2,第二部分 数据的表示和运算,2.1 数制与编码 2.2 定点数表示和运算 2.3 浮点数表示和运算 2.4 算术逻辑单元ALU,3,2.2 定点数表示和运算,2.2.1定点数的表示 1、无符号数的表示;2、有符号数的表示。2.2.2定点数的运算 1、定点数的位移运算;2、原码定点数的加/减运算;3、补码定点数的加/减运算;4、定点数的乘/除运算;,4,2.2.2定点数的运算,7、定点数的乘法运算 分析笔算乘法 A=0.1101 B=0.1011,AB=0.10001111,0.1 1 0

2、 1,0.1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0.1 0 0 0 1 1 1 1,乘积的符号心算求得,5,2.2.2定点数的运算,笔算乘法改进,A B=A 0.1011,=0.1A+0.00A+0.001A+0.0001A,=0.1A+0.00A+0.001(A+0.1A),=0.1A+0.010 A+0.1(A+0.1A),=0.1A+0.1 0 A+0.1(A+0.1A),=2-1A+2-1 0 A+2-1(A+2-1(A+0),第一步 被乘数A+0,第八步 1,得结果,第三步 部分积+被乘数,6,2.2.2定点数的运算,改进后的笔算乘法过程,7

3、,2.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*,8,2.2.2定点数的运算,原码一位乘递推公式,x*y*=x*(0.y1y2 yn),=x*(y12-1+y22-2+yn2-n),=2-1(y1x*+2-1(y2x*+2-1(ynx*+0),z0,

4、9,2.2.2定点数的运算,右图是一个32位乘法器的结构框图,其中32位被乘数放在R2中,运算开始时32位乘数放在R1中,运算结束时64位乘积的高位放在R0中,低位放在R1中,R0和R1串联移位。,在该乘法过程中,每次操作是根据乘数的一位进行操作,对于32位数的乘法,需要循环32次完成一个乘法操作,因此称为一位乘法。,10,2.2.2定点数的运算,完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示。,11,2.2.2定点数的运算,已知 x=0.1110 y=0.1101 求x y原,逻辑右移,逻辑右移,12,2.2.2定点数的运算,乘积的符号位 x0 y0=1 0=1 数值部分

5、按绝对值相乘 x*y*=0.1 0 1 1 0 1 1 0 则 x y原=1.1 0 1 1 0 1 1 0 特点绝对值运算用移位的次数判断乘法是否结束逻辑移位,13,2.2.2定点数的运算,原码一位乘的硬件配置,A、X、Q 均 n+1 位,移位和加受末位乘数控制,14,2.2.2定点数的运算,(2)原码两位乘原码两位乘与原码一位乘一样,符号位的运算和数值部分是分开进行的,但原码两位乘是用两位乘数的状态来决定新的部分积如何形成,因此可提高运算速度。,一位乘,符号位 和 数值位 部分 分开运算,两位乘,每次用 乘数的 2 位判断 原部分积是否加 和 如何加 被乘数,15,2.2.2定点数的运算,

6、两位乘数共有4种状态,对应这4种状态可得下表。,16,2.2.2定点数的运算,原码两位乘运算规则,共有操作+x*+2x*x*2,实际操作+x*补+2x*补+x*补 2 补码移,17,2.2.2定点数的运算,例:已知 x=0.111111 y=0.111001 求xy原,补码右移,18,2.2.2定点数的运算,数值部分的运算,乘积的符号位 x0 y0=0 1=1,x*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,特点,绝对值的补码运算,算术移位,用移位的次数判断乘法是否结束,19,2.2.2定点数的运算,原码两位乘和原

7、码一位乘比较,符号位,操作数,移位,移位次数,最多加法次数,x0 y0,x0 y0,绝对值,绝对值的补码,逻辑右移,算术右移,n,n,(n为偶数),+1(n为偶数),原码一位乘,原码两位乘,n 为奇数时,原码两位乘移 n/2+1次,最多加 n/2+1次,20,2.2.2定点数的运算,2)补码乘法(1)补码与真值的关系 设 x补=x0.x1x2 xn当X0时,x0=0,x补=0.x1x2 xn=xi2-i=x当x0时,x0=1,x补=1.x1x2 xn=2+x所以 x=1.x1x2 xn 2=-1+0.x1x2 xn=-1+xi2-i得出 x=-x0+xi2-i,ni=1,ni=1,ni=1,2

8、1,2.2.2定点数的运算,(2)补码的右移 正数右移一位,相当于乘1/2。负数用补码表示,右移一位,是否也相当于乘1/2?,设 x补=x0.x1x2 xn因为 x=-x0+xi2-i 所以 x=-x0+xi2-i=-x0+x0+xi2-i=-x0+xi2-(i+1)即 x补=x0.x0 x1x2 xn,ni=1,ni=1,ni=1,ni=0,22,2.2.2定点数的运算,(3)补码一位乘运算规则设 被乘数 x补=x0.x1x2 xn 乘数 y补=y0.y1y2 yn均为任意符号,则有补码乘法算式:x.y补=x补.y证明:被乘数任意,乘数为正 根据补码定义,有 x补=2+x=2 n+1+x(m

9、od 2)y补=y所以,x补.y补=2 n+1.y+x.y=2(y1y2 yn)+x.y由于(y1y2 yn)是大于0的正整数,所以,2(y1y2 yn)=2(mod 2)故 x补.y补=2+x.y=x.y补 即 x.y补=x补.y补=x补.y,23,2.2.2定点数的运算,同原码乘,但 加 和 移位 按 补码规则 运算,乘积的符号自然形成,运算规律:,24,2.2.2定点数的运算,被乘数任意,乘数为负,x补=x0.x1x2 xn y补=1.y1y2 yn=2+y(mod 2)因为 y=y补 2=0.y1y2 yn-1 所以 x.y=x(0.y1y2 yn)x x.y补=x(0.y1y2 yn

10、)补+x补 因为0.y1y2 yn0 x(0.y1y2 yn)补=x补(0.y1y2 yn)所以 x.y补=x补(0.y1y2 yn)+x补,25,2.2.2定点数的运算,乘数y补,去掉符号位,操作同,最后 加x补,校正,运算规律:,26,2.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补(0.y1y2 yn)+x补,27,补码比较法(Booth 算法),x y补,附加位 yn+1,28,Boot

11、h 算法递推公式,z0补=0,z1补=2-1(yn+1yn)x补+z0补 yn+1=0,zn补=2-1(y2y1)x补+zn-1补,x y补=zn补+(y1y0)x补,最后一步不移位,如何实现 yi+1yi?,0 0,0 1,1 0,1 1,1,+x补 1,+x补 1,1,0,1,-1,0,29,例,已知 x=+0.0011 y=0.1011 求xy补,解:,0 0.0 0 0 0,1 1.1 1 0 1,1 1.1 1 0 1,0 0.0 0 1 1,1 1.1 1 0 1,0 0.0 0 1 1,1 1.1 1 0 1,1.0 1 0 1,0,x补=0.0011,y补=1.0101,x补=

12、1.1101,+x补,+x补,+x补,+x补,+x补,xy补=1.11011111,最后一步不移位,30,2.2.2定点数的运算,Booth 算法的硬件配置,31,2.2.2定点数的运算,补码两位乘 补码两位乘运算规则是根据补码一位乘的规则,把比较yiyi+1的状态应执行的操作和比较yi-1yi 的状态应执行的操作合并成一步,便可得出补码两位乘的运算方法。,32,2.2.2定点数的运算,操作中出现加2x补和加2-x补,故除右移两位的操作外,还有被乘数左移一位的操作;而加2x补和加2-x补,都可能因溢出而侵占双符号位,故部分积和被乘数采用三位符号位。补码两位乘的部分积多取一位符号位(共3位),乘

13、数也多取一位符号位(共2位),这是由于乘数每次右移2位,且用3位判断,故采用双符号位更便于硬件实现。可见,当乘数数值位为偶数时,乘数取2位符号位,共需作n/2次移位,最多作n/2+1次加法,最后一步不移位;当n为奇数时,可补0变为偶数位,以简化逻辑操作。也可对乘数取1位符号位,此时共作n/2+1次加法和n/2+1次移位(最后一步移一位)。对于整数补码乘法,其过程与小数乘法完全相同。为了区别于小数乘法,在书写上可将符号位和数值位中间的“.”改为“,”即可。,33,2.2.2定点数的运算,例:x补=0.0101,y补=1.0101 求:x y补。解:求解过程如下表所示。其中乘数取两位符号位即11.0101,-x补=1.1011 取三符号位为111.1011。,34,乘法小结,原码乘 符号位 单独处理 补码乘 符号位 自然形成,原码乘去掉符号位运算 即为无符号数乘法,不同的乘法运算需有不同的硬件支持,整数乘法与小数乘法完全相同 可用 逗号 代替小数点,35,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号