第二章 运算方法和运算器06浮点运算
第二章 浮点数的表达与运算
浮点数的表示与运算一、选择1、在规格化浮点数运算中,若浮点数为25×1.10101,其中尾数为补码表示,则该数需将尾数左移一位规格化2、浮点数格式如下:1位阶符,6位阶码,1位数符,8位尾数。
若阶码用移码,尾数用补码表示,则浮点数所能表示数的范围是-263 ~(1-2-8)×2633、某浮点机,采用规格化浮点数表示,阶码用移码表示(最高位代表符号位),尾数用原码表示。
下列哪个数的表示不是规格化浮点数?(B )阶码尾数A.11111111,1.1000 (00)B.0011111,1.0111 (01)C.1000001,0.1111 (01)D.0111111,0.1000 (10)4、设浮点数阶的基数为8,尾数用模4补码表示。
试指出下列浮点数中哪个是规格化数?(C )A.11.111000B.00.000111C.11.101010D.11.1111015、按照IEEE654标准规定的32位浮点数(41A4C000)16对应的十进制数是( D )A.4.59375B.-20.59375C.-4.59375D.20.593756、如果某单精度浮点数、某原码、某补码、某移码的32位机器数为0xF0000000。
这些数从大到小的顺序是移>补>原>浮7、假定采用IEEE754标准中的单精度浮点数格式表示一个数为45100000H,则该数的值是(+1.125)10×2118、设浮点数共12位。
其中阶码含1位阶符共4位,以2为底,补码表示:尾数含1位数符共8位,补码表示,规格化。
则该浮点数所能表示的最大正数是27-19、如果浮点数的尾数用补码表示,则下列(D )中的尾数是规格化数形式。
A. 1.11000B. 0.01110C. 0.01010D.1.0001010、设浮点数的基数为4,尾数用原码表示,则以下(C )是规格化的数。
A. 1.001101B.0.001101C.1.011011D.0.00001011、已知X=00.875×21,Y=0.625×22,设浮点数格式为阶符1位,阶码2位,数符1位,尾数3位,通过补码求出Z=X-Y 的二进制浮点数规格化结果是0111 01112、IEEE754标准中的舍入模式可以用于二进制数也可以用于十进制数,在采用舍入到最接近且可表示的值时,若要舍入两个有效数字形式,(12.5)D应该舍入为1213、下列关于舍入的说法,正确的是(E )A.不仅仅只有浮点数需要舍入,定点数在运算时也可能要舍入B. 在浮点数舍入中,只有左规格化时可能要舍入C. 在浮点数舍入中,只有右规格化时可能要舍入二、综合应用题1、什么是浮点数的溢出?什么情况下发生上溢出?什么情况下发生下溢出?2、现有一计算机字长32位(D31~D0),数符位是第31位。
计算机组成原理-运算方法与运算器-浮点运算方法和浮点运算器
2020年10月15日星期
计算机组成原理
8
第二章 运算方法和运算器
对阶操作规定使尾数右移,尾数右移后阶码作相应 增加,其数值保持不变(若右移引起最低有效位的 丢失,则采用0舍1入的方法),一个增加后的阶码 与另一个阶码相等,所增加的阶码一定是小阶,因 此在对阶时,总是使小阶向大阶看齐。
2020年10月15日星期
计算机组成原理
12
(5)舍入处理
第二章 运算方法和运算器
在IEEE754标准中,舍入处理提供了4种可选方法
就近舍入:就是“四舍五入”,如尾数超出规定23位 的多余位数字是10010,多余位的值超过规定的最低 有效位值的一半,则最低有效位增1;若为01111这样, 则简单截尾;为10000这样的特殊值时视最低有效位 情况,为0截尾;为1向上进1,末位为0。
浮点数加、减运算过程 Z X Y
计算机组成原理
4
浮点数加减法运算的过程 第二章 运算方法和运算器
(1)零操作数检查 (2)对阶 (3)尾数求和 (4)结果规格化 (5星期
计算机组成原理
5
浮点数加法运算的过程
第二章 运算方法和运算器
(1)零操作数检查 如操作数之一为0则可省去后续操作,节省运算时间。
阶码上溢:超过阶码可表示的最大值的正指数值。一 般认为是+ 和-。
阶码下溢:超过了阶码可表示的最小值的负指数值。 一般将其认为是0。
尾数上溢:两个同符号尾数相加产生最高位向上的进 位,要将尾数右移,阶码增1来从新对齐。
尾数下溢:将尾数右移时,尾数的最低有效位从尾数 域右端流出,要进行舍入处理。
2020年10月15日星期
朝0舍入:就是简单的截尾。使取值的绝对值比原值 的绝对值小,易导致误差积累。
浮点数的运算方法
阶码位 尾数数码位 总位数
1 1 1
8 11 15
23 52 64
32 64 80
浮点数的阶码的位数决定数的表示范围, 浮点数的阶码的位数决定数的表示范围, 阶码的位数决定数的表示范围 尾数的位数决定数的有效精度 的位数决定数的有效精度。 尾数的位数决定数的有效精度。
浮点数在计算机内的格式
X = MX * 2
负数 正数
[X]补 = X 2n+1 + X 0 ≤ X < 2n -2n ≤ X ≤ 0 0
机器数
浮点数格式:关于移码的知识 浮点数格式:关于移码的知识 移码
8 位的阶码能表示 位的阶码能表示-128~+127,当阶码为 ,当阶码为-128时,其补码表 时 示为 00000000,该浮点数的绝对值 -128,人们规定此浮点数的 ,该浮点数的绝对值<2 人们规定此浮点数的 值为零, 机器零。 值为零,若尾数不为 0 就清其为 0,并特称此值为机器零。 ,并特称此值为机器零 位数值位组成的移码, 其定义为; 一位符号位和 n 位数值位组成的移码 其定义为; [E]移 = 2n + E -2n<=E<2n 负数 正数 +127 0 -128 机器数 表示范围: 00000000 ~ 11111111 表示范围: 8 位移码表示的机器数为数的真值 向右平移了 在数轴上向右平移 在数轴上向右平移了 128 个位置
(2)尾数相除:MX/MY = 0.1011/(-0.1101) )尾数相除: = -0.1101 (3) (4) (5) 已是规格化数 不必舍入 也不溢出 已是规格化数, 不必舍入, 最众的商 [MX]移 = 1 0110 1101, , 即 2-2 *(-0.1101) ( )
第二章运算方法和运算器PPT课件
▪ 尾数域最左位(最高有效位)总是1, 故这一位经常不予存储, 而认为隐藏在小数点的左边。
▪ 采用移码表示阶码E ,将浮点数的指数真值e变成阶码E时, 应将指数e加上一个固定的偏移值127(01111111),即 E=e+127。
29.01.2021
-
14
2.1.1数据格式
第二章 运算方法和运算器
2.1数据与文字的表示 2.2定点加法、减法运算 2.3定点乘法运算 2.4定点除法运算 2.5定点运算器的组成 2.6浮点运算与浮点运算器
29.01.2021
-
返回 1
2.1数据与文字的表示方法
2.1.1数据格式 2.1.2数的机器码表示 2.1.3字符的表示 2.1.4汉字的表示 2.1.5校验码
S 阶码(8位)
尾数(23位)
指数e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数
1.M=1.011 0110 0000 0000 0000 0000=1.011011
于是有
x=(-1)S×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10
29.01.2021
-
9
2.1.1数据格式
3、定点纯整数
x0 x1 x2 x3 … xn-1 xn
符号
量值
小数点固定于最后一位之后, 不需专门存放位置
表示数的范围是 0≤|x|≤2n-1
最小数、最大数、最接近0的正数、最接近0的负数呢?
29.01.2021
-
10
2.1.1数据格式
4、定点表示法的特点
29.01.2021
第2章2.3浮点运算和浮点运算器
• 阶码用移码表示
• 移码的特点:真值越大,移码的数值也越大,无论正负 • 可以用比较电路直接比较两个阶码的大小
4
2.3 .3 浮点运算流水线
1 流水线原理
• 线性流水线 • 各子任务之间具有这种线性优先关系的流水线 • 线性流水线的硬件基本结构(流水线CAI演示) • 处理一个子任务的过程为过程段(Si) • 线性流水线由一系列串联的过程段组成 • 各个过程段之间设有高速缓冲寄存器(L),以暂 时保存上一过程子任务处理的结果 • 在一个统一的时钟(C)的控制下,数据从一个过 程段流向下一个相邻的过程段
• 当指令控制器工作时,运算器基本上处于空闲状态,而当 运算器工作时指令控制器又处于空闲状态,资源浪费浪费 • 完成第一条指令前三步后,指令控制器不等运算器完成 该指令后两步,立即开始第二条指令,运算器也如此; 16 • 形成一种与工厂中的装配流水线类似的流水线
2.3 .3 浮点运算流水线
1 流水线原理
【例2-18】 设x=2010×0.11011011,y=2100×(-0.10101100), 求x+y。 【解】 为了便于直观理解,假设两数均以补码表示,阶码采用双符 号位,尾数采用单符号位,则它们的浮点表示分别为 [x]浮=00 010 0.11011011 [y]浮=00 100 1.01010100 ①求阶差并对阶 △E=Ex-Ey=[Ex]补+[-Ey]补=00 010+11 100=(11 110)补= (11 010)原=(-2)10 简单起见,010是2D, 100是4D,所以 △E=-2D x的阶码小,应使Mx右移2位,Ex加2 ∴[x]浮=00 100 0.00110110(11) 其中(11)表示Mx右移2位后移出的最低两位数。
浮点运算方法和浮点运算器
溢出判断和处理
课堂作业
设[x1]补=11.01100000,
[x2]补=11.01100001, [x3]补=11.01101000, [x4]补=11.01111001,
求执行只保留小数点后4位有效数字的 舍入操作值。
• 例:设X=2001*(-0.111),Y=2010*0. 101 ,求X-Y.(假设两数均以补码表示,阶码采 用3位,尾数采用4位,均包括符号位.)
(4).判溢出 阶码不溢出。所以最终的结果为 X+Y=2011*(-0.101)
2.6.2 浮点乘法和除法运算
设有两个浮点数x和y: x=2Ex· Mx y=2Ey· My x×y=2(Ex+Ey)· (Mx×My) x÷y=2(Ex-Ey)· (Mx÷My) 乘除运算分为四步
浮点加减法运算
舍入
(1) “0舍1入”法,即右移时丢掉的最高位为0,则 舍去;是1,则将尾数的末位加1(相当于进入)。 (2)“恒置1”法,即不管移掉的是0还是1,都把尾数 的末位置1。
溢出处理
阶码最高位为00或11不溢出 [E]补=01 XX…X为上溢,真正溢出,需做溢出处理。 [E] 补=10 XX…X为下溢,浮点数值趋于零,用机器零 表示。
丢失
两个负数相加,结果为正数, 说明产生了溢出.
但是在浮点数的运算中,只有当阶码产生溢出时,才是溢出。 此时只是说明尾数的结果为不规格化数,应进行右规。
(3).规格化和舍入处理
由于结果产生了溢出,应执行右规处理,所谓右规格 化的规则,就是尾数右移1位,阶码加1,所以结果为 1.011(1) ,阶码为011 舍入处理,采用恒舍法处理,则有尾数为1.011
计算机组成原理—运算方法和运算器-6
规则:尾数右移1位,高位补符号位,阶码加1
例如:10.011101×2-110 右规后11.001110(1)×2-111 ②补码结果是00.0...01.....或11.1...10...时,需向左规格化(左规) 规则:尾数左移1位,低位补0,阶码减1,直到规格化 规格化:原码尾数值最高位为1,补码尾数值最高位与符号相反
2014-4-14
计算机组成原理
12
21:06
2.6.2 浮点乘法、除法运算
补码采用双符号位,为了对溢出进行判断:
00 01 为正 上溢 11 10 为负 下溢
[例]:x=+011,y=+110,求[x+y]补和[x-y]补,并判断是否溢出 [x]补=00011, [y]补=00110, [-y]补=11010 [x+y]补=[x]补+[y]补=01001, 结果上溢。 [x-y]补=[x]补+[-y]补=11101, 结果正确,为-3。
2014-4-14 计算机组成原理 17
21:06
2.6.1 浮点加法、减法运算
⑸舍入处理(对阶和向左规格化时):采用就近舍入处理得
00.11100011
⑹溢出判断和处理 阶码符号位为00,无溢出,不需处理; 尾数无溢出,不需处理。 最终真值结果为:x+y = (0.11100011)×24
设有两个浮点数x和y:x=2Ex· Mx 则:x×y=2(Ex+Ey)· (Mx×My); 乘/除运算分为六步: y=2Ey· My x÷y=2(Ex-Ey)· (Mx÷My);
①.0操作数检查; ②.阶码加减操作; ③.尾数乘除操作;
④.结果规格化;
⑤舍入处理; ⑥确定符号
Mx=111101101;
计算机组成原理第四版第二章
+ [y]补 0. 0 1 0 1 [x+y]补 0. 1 1 1 0
所以x+y=+0.1110
Back
第二章 运算方法和运算器
B 补码减法
➢ 公式:
[x-y]补=[x]补-[y]补=[x]补+[-y]补
➢ 举例
已知 x=+0.1101 , y=+0.0110,求x-y。 解: [x]补=0.1101 [y]补=0.0110 ,[-y]补=1.1010 [x]补 0. 1 1 0 1 + [-y]补 1. 1 0 1 0 [x-y]补 1 0. 0 1 1 1
最大正数,称为“上溢” 或“正溢出”
两个负数相加,结果 小于机器所能表示的最
小负数,称为“下溢” 或“负溢出”
判断方法
举例说明
Back
第二章 运算方法和运算器
溢出检测方法常用以下两种方法:
1.采用双符号位(变形补码)判断方法:
变形补码: “00”表示正数、“11”表负数,两符号位同时参加运算, 运算结果符号出现01或10表明溢出。
发生溢出;而在浮点运算时,运算结果超出尾数的表示范围 却并不一定溢出,只有当阶码也超出所能表示的范围时,才 发生溢出。
Back
3.十进制数串的表示方法
➢ 目前,大多数通用性较强的计算机都能直接 处理十进制形式表示的数据。十进制数串 在计算机内主要有两种表示形式:
➢ 1.字符串形式 ➢ 2.压缩的十进制数串形式
➢ 计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设 定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运 算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当, 往往会使运算结果产生溢出或降低数据的有效精度。
浮点运算
2.5浮点运算与浮点运算器2.5.1浮点数的运算规则浮点数的形式X=Mx * 2E x▲ 尾数的右移: 若尾数是原码表示,每右移一位,符号位不参加移位,尾数高位补0;若尾数是补码表示,每右移一位,符号位参加右移,并保持补码的符号不变。
一、浮点加法和减法设有两个浮点数:X=Mx * 2E x Y=My * 2E y它们的加减步骤是:1、对阶——使两个数的阶码相等,才能进行尾数的加减。
对阶原则——小阶向大阶看齐,即小阶的尾数向右移位(相当于小数点左移),每右移一位,其阶码加1,直到两数的阶码相等为止,右移的位数等于阶差△E 。
例1:两浮点数X=201*0.1101, Y=211*(-0.1010),将两个数对阶。
解:假设两数在计算机中以补码表示。
[△E]补=[Ex]补 – [Ey]补=[Ex]补 + [–Ey]补=00 01 + 11 01=11 10即△E=-2,表示Ex 比Ey 小2,因此将X 的尾数右移2位:右移一位,得[X]浮=00 10,00.0110再右移一位,得[X]浮=00 11,00.0011对阶完毕。
2、尾数求和+ 尾数和为:3、规格化(1)对于补码来说 规格化(2)规格化的方法浮点数的尾数相加后得到补码的形式M ,对比符号位和小数点后的第一位,如果它们不等,即为00. 1…和11. 0…的形式,就是规格化的数;如果它们相等,即00. 0…或11. 1…,就不是规格化的数,此时要进行左规格化,或左规。
向左规格化——尾数左移1位,阶码减1。
当结果出现01.…或10. …的形式时,要进行右规格化,或右规。
00 001111 011011 1001 正数:00. 1… 负数:11. 0…向右规格化——尾数右移1位,阶码加1。
4、舍入在对阶或向右规格化时,尾数要向右移位,这样,被右移的尾数的低位部分会被丢掉,从而造成一定的误差,因此要进行舍入处理。
舍入的方法——“0舍1入”:如果右移时,被丢掉数位的最高位是0则舍去,反之则将尾数的末位加“1”。
计算机组成原理浮点数运算
计算机组成原理浮点数运算
在计算机组成原理中,浮点数的运算涉及到数值的表示、加减运算等多个方面。
以下是浮点数运算的基本过程:
1. 对阶:在进行浮点数运算时,需要先对参与运算的浮点数的阶码进行对齐,即比较两个阶码的大小,将阶码较小的数向右移动,使得两个数的阶码相等。
2. 尾数运算:对阶完成后,进行尾数的加减运算。
尾数通常使用补码表示,加减运算规则与定点数的补码加减运算规则相同。
3. 结果格式化:根据尾数运算结果的符号和数值大小,确定最终结果的格式。
如果尾数的结果为正,则结果的格式与源码相同;如果尾数的结果为负,则结果的格式与补码相同。
浮点数的范围和精度由阶码和尾数的位数决定。
阶码的位数能够决定数的范围,尾数的位数决定数的有效精度。
在实际应用中,需要根据具体需求选择合适的浮点数表示方式和运算方法。
浮点运算和运算器
求阶差=0001+1101=1110,即-2,因 此,将x的尾数右移二位,得 [x]补=0011,00.0011 至此,表示对阶完毕。
计算机组成原理 浮点运算和运算器
1.1.2、尾数求和 对阶完毕后可得
浮点规格化的定义是尾数S应满足 1/2≤|S|<1
显然对正数而言,有S=00.1φφ…φ 对负数而言,有S=11.0φφ…φ。 否则,需要Байду номын сангаас数向左移位以实现规格化, 叫做向左规格化。
计算机组成原理 浮点运算和运算器
对上例中的求和结果进行规格化。 尾数求和的结果是
[x+y]补=0011,11.1001 由于符号位和第一位数相等,不是规格化 数,需要向左规格化:尾数左移一位,阶 码减1。因此得规格化结果:
计算机组成原理 浮点运算和运算器
相加的结果放到累加寄存器AC中,此时 AC中原先的第一个数随即被冲掉。 如果需要把AC中的求和结果存入存储器, 那么数据由AC送至缓冲寄存器DR,再由 DR发送至双向数据总线,然后写入存储 器。
计算机组成原理
计算机组成原理 浮点运算和运算器
1.1.4、舍入 在对阶或向右规格化时,尾数要向右移位, 这样,被右移的尾数的低位部分会被丢掉, 从而造成一定误差,故应进行舍人处理。
计算机组成原理 浮点运算和运算器
常用的舍入方法有两种:一种是“0舍 入”法,即如果右移时被丢掉数位的最 高位为0则舍去,反之则将尾数的末位 加“1”。另一种是“恒置1”法,即只要 有数位被移掉就在尾数的末位恒置“1”。
因此,对阶操作规定使尾数右移,尾数右 移后使阶码相应增加,其数值保持不变。 很显然,一个增加后的阶码与另一个阶码 相等,所增加的阶码一定是小阶。
浮点数计算方法ppt
2n>x≥0 0≥x>-2n
对于0,原码机器中往往有“+0”、“-0” 之分,故有两种形式:
[+0]原 = 0.000...0 [ -0]原 = 1.000...0
采用原码表示法简单易懂,但它的最大 缺点是加法运算复杂。这是因为,当两数相 加时,如果是同号则数值相加;如果是异号, 则要进行减法。而在进行减法时还要比较绝 对值的大小,然后大数减去小数,最后还要 给结果选择符号。为了解决这些矛盾,人们 找到了补码表示法。
2. 补码表示法
我们先以钟表对时为例说明补码的概念。
假设现在的标准时间为4点正; 而有一只表已
经7点了,为了校准时间,可以采用两种方法:
一是将时针退 7-4=3 格;一是将时针向前拨12-
3=9格。这两种方法都能对准到4点,由此可以
看出,减3和加9是等价的,就是说9是(-3)对12
的补码,可以用数学公式表示:
浮点数所表示的范围远比定点数大。一台 计算机中究竟采用定点表示还是浮点表示,要根 据计算机的使用条件来确定。一般在高档微机 以上的计算机中同时采用定点、浮点表示,由使 用者进行选择,而单片机中多采用定点表示。
[例1] 若浮点数x的754标准存储格式为
(41360000)16,求其浮点数的十进制数值。
4. 移码表示法
移码通常用于表示浮点数的阶码。由于
阶码是个n位的整数,假定定点整数移码形式
为 x0x1x2…xn时,对定点整数移码的传
统定义是:
[x]移=2n+x
2n>x≥-2n
若阶码数值部分为5位,以x表示真值,
则: [x]移=25+x
25>x≥- 25
小结:上面的数据四种机器表示法中,移码 表示法主要用于表示浮点数的阶码。由于补 码表示对加减法运算十分方便,因此目前机 器中广泛采用补码表示法。在这类机器中, 数用补码表示,补码存储,补码运算。也有 些机器,数用原码进行存储和传送,运算时 改用补码。还有些机器在做加减法时用补码 运算,在做乘除法时用原码运算。
白中英计算机组成原理第2章-运算方法与运算器
2024年7月16日星期二
5
2.1 数据与文字的表示方法
2.1.1 数据格式 2.1.2 数的机器码表示 2.1.1 数据格式 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码
2024年7月16日星期二
6
2.1.1 数据格式——定点数
2024年7月16日星期二
3
2.0 数据的类型(1/2)
按数制分:
十进制:在微机中直接运算困难;
二进制:占存储空间少,硬件上易于实现,易于运算;
十六进制:方便观察和使用;
二-十进制:4位二进制数表示1位十进制数,转换简单。 按数据格式分:
真值:没有经过编码的直观数据表示方式,其值可带正负号, 任何数制均可;
-8 1000 0000 -7 1001 0001 -6 1010 0010 …… …… ……
可以比较直观地判断两个数据的大小; 0 0000 1000
浮点数运算时,容易进行对阶操作;
+1 0001 1001
表示浮点数阶码时,容易判断是否下溢; …… …… ……
当阶码为全0时,浮点数下溢。
+7 0111 1111
优点 与真值对应关系简单;
缺点 参与运算复杂,需要将数值位与符号位分开考虑。
2024年7月16日星期二
11
补码表示法的引入(1/3)
要将指向5点的时钟调整到3点整,应如何处理?
5-2=3
2024年7月16日星期二
5+10=3(12自动 丢失。12就是模)
12
补码表示法的引入(2/3)
继续推导: 5-2=5+10(MOD 12) 5+(-2)=5+10(MOD 12) -2=10(MOD 12)
第二章运算方法与运算器(浮点数的加减法,IEEE754标准3264浮点规格化数)
第⼆章运算⽅法与运算器(浮点数的加减法,IEEE754标准3264浮点规格化数)这⼀章,主要介绍了好多种计算⽅法。
下⾯,写⼀点⾃⼰对于有些计算(⼿写计算过程)的见解。
1.原码、反码、补码 原码:相信⼤家都会写,符号位在前⼆进制数值在后,凑够位数即可。
反码:原码符号位不变,其他位全部取反。
补码:反码末位加⼀ / 原码符号位不变,从右往左数第⼀个1及其右边的各位不变,其余位全部取反2.IEEE754的转换 IEEE754标准32/64浮点规格化数形式:X = (-1)S * 1.M * 2E-127(其中,S-阶符,M-尾数,E-阶码) 32位的规格化浮点数:SEM00000...(即⼆进制SEM后⾯补0,写够32位) 以27/64为例: ①化形式:27/64 = + (1.1011)2 * 2-2 ②找SEM:S=0,M=1011,E=(125)10=(01111101)2 ③写结果:00111110 11011000 00000000 00000000 = (3ED800)163.变形补码计算加减法 变形补码没什么稀奇,不过是符号位变成两位⽽已(00为正,11为负),它的价值在于可以作溢出判断(结果00//11表⽰未溢出,01-上溢(所谓上溢符号位还是0),11-下溢(下溢符号位还是1)),就正常求补码(符号位double),放在⼀起加和,做溢出判断,最后别忘了把补码再转换回原码作为最终结果。
x+y: 以x=11011, y=00011为例: ①求补:[11011]补=0011011, [00011]补=0000011 ②加和:011011 + 000011 = 0011110;符号位00,未溢出,故x+y=11110 x-y:(这⾥把减法化为加法,即 x-y = x+(-y),另外[-y]补 = [y]补 从右往左数第⼀个1及其右边的各位不变,其余位全部取反,这次连带符号位也要取反) 以x=11011, y=-11111为例: ①求补:[11011]补=0011011, [-11111]补=1100001,[-y]补=0011111 ②加和:[x]补+[-y]补 = 0011011 + 0011111 = 0111010;符号位01,正溢(上溢);故x-y=+1110104.浮点数加减法(我⽤的是补码计算) 这⾥⾯涉及的东西⽐较多,每⼀步都需要仔细,错⼀步结果就错了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章小结
为运算器构造的简单性,运算方法中算术运算通 常采用补码加、减法,原码乘除法或补码乘除法。 为了运算器的高速性和控制的简单性,采用了先 行进位、阵列乘除法、流水线等并行技术措施。 运算方法和运算器是本章的重点。 定点运算器和浮点运算器的结构复杂程度有所不 同。早期微型机中浮点运算器放在CPU芯片外, 随着高密度集成电路技术的发展,现已移至CPU 内部。
2.6.1 浮点加法、减法运算
舍入处理(对阶和向右规格化时)
溢出判断和处理
◦ 就近舍入(0舍1入):类似”四舍五入”,丢弃的最高 位为1,进1 ◦ 朝0舍入:截尾 ◦ 朝+∞舍入:正数多余位不全为”0”,进1;负数,截尾 ◦ 朝-∞ 舍入:负数多余位不全为”0”,进1;正数,截尾 ◦ 例子 ◦ 阶码上溢,一般将其认为是+∞和-∞ 。 ◦ 阶码下溢,则数值为0 ◦ 尾数上溢,两个同符号位的数相加。处理方法是 尾数右移,阶码 加1。 ◦ 尾数下溢。尾数右移时,最低位从最右端流出。 进行要进行舍入处理 。
3、尾数相加
◦ 00.00110110(11)+11.01010100=11.10001010(11)
4、结果规格化
◦ (1)在浮点加减运算时,尾数求和的结果也可以得到 01.ф…ф或10.ф…ф,即两符号位不等,此时将运算 结果右移以实现规格化表示,称为向右规格化。 ◦ 规则:尾数右移1位,阶码加1 ◦ (2) 结果是 00.0..01..... 或 11.1...10... 时,则向左 规格化 ◦ 规则:尾数左移1位,阶码减1,直到规格化 ◦ 右规,阶码加1,左规,阶码减1 ◦ 刚才例子左规为11.00010101(10),阶码减1为00011 ◦ 练习:01.1101 10.0001 11.1001
原则:小阶向大阶 设△E>0,表示Ex>Ey,则移动y的尾数,My 右移△E位,问题:为什么要小阶向大阶看齐? 阶差=Ex-Ey=00 010- 00 100 =11 110 即阶差为-2,Mx右移两位,Ex加2 x=00100 , 0.00110110(11)
2.6.1 浮点加法、减法运算
浸渍2 浸渍3 捞纸1 捞纸2
t2
t3
时 间
t4
t5
... ...
2.6.3 浮点运算流水线
1、提高并行性的两个渠道:
空间并行性:
◦ 增加冗余部件,如增加多操作部件处理机和超标 量处理机
时间并行性:
◦ 改善操作流程如:流水线技术
2.6.3 浮点运算流水线
2、流水技术原理
◦ 在流水线中必须是连续的任务,只有不断的提供 任务才能充分发挥流水线的效率 ◦ 把一个任务分解为几个有联系的子任务。每个子 任务由一个专门的功能部件实现 ◦ 在流水线中的每个功能部件之后都要有一个缓冲 寄存器,或称为锁存器 ◦ 流水线中各段的时间应该尽量相等,否则将会引 起“堵塞”和“断流”的现象 ◦ 流水线需要有装入时间和排空时间,只有当流水 线完全充满时,才能充分发挥效率
2.6.1 浮点加法、减法运算
2、浮点运算步骤如下:
1. 0 操作数的检查,看有无简化操作的 可能; 2. 比较阶码大小并完成对阶(小阶向 大阶对齐); 3. 尾数进行加或减运算; 4. 结果规格化并进行舍入处理,看是 否溢出
2.6.1 浮点加法、减法运算
2.6.1 浮点加法、减法运算
[例28] 设x=22×0.11011011,y=24×0.10101100
采集原料 泡浆 踏浆 浸渍 捞纸 压榨 揭纸 烘干 裁剪 包装
怎么提高速度
从造纸术说起-10道工序
采集原料部门
采集原料1
采集原料2
采集原料3
采集原料4
采集原料5
... ... ... ... ... ...
泡浆部门 踏浆部门 浸渍部门 捞纸部门 t1
泡浆1
泡浆2 踏浆1
泡浆3 踏浆2 浸渍1
泡浆4 踏浆3
2.6.1 浮点加法、减法运算
课堂练习:x=0.1101*201 y=-0.1010*211 尾数和阶符都采用补码表示,都采用双 符号位表示法。 求x+y
2.6.1 浮点加法、减法运算
[x]浮=0001,00.1101 [y]浮=0011,11.0110 阶差=1110 即为-2 Mx应当右移2位, [x]浮=0011,00.0011(01) 尾数和为11.1001(01) 左规11.0010(10),阶码减1为0010 舍入(就近舍入)11.0011 丢弃10 x+y=-0.1101*210
2.6.2 浮点乘法和除法运算
设有浮点数x=2-5×0.0110011,y =23×(-0.1110010),阶码用4位移码表 示,尾数(含符号位)用8位补码表示。求 [x×y]浮。要求用补码完成尾数乘法 运算,运算结果尾数保留高8位(含符号 位),并用尾数低位字长值处理舍入操作。
[解:] 移码采用双符号位,尾数补码采用单符号位,则有 [Mx]补=0.0110011, [My]补=1.0001110, [Ey]移=01 011, [Ey]补=00 011, [Ex]移=00 011, [x]浮=00 011, 0.0110011, [y]浮=01 011, 1.0001110 (1)判断操作是否为”0”,求阶码和 [Ex+Ey]移=[Ex]移+[Ey]补=00 011+00 011=00 110, 值为移码形式-2。 (2) 尾数乘法运算可采用补码阵列乘法器实现,即有 [Mx]补×[My]补=[0.0110011]补×[1.0001110]补 =[1.1010010,1001010]补 (3) 规格化处理 乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左 规,阶码变为00 101(-3), 尾数变为 1.0100101,0010100。 (4) 舍入处理 尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾 数为1.0100101 。 最终相乘结果为 [x×y]浮=00 101,1.0100101 其真值为 x×y=2-3×(-0.1011011)
流水线原理
设过程段 Si所需的时间为τi,缓冲寄存器的 延时为τl,线性流水线的时钟周期定义为 τ=max{τi}+τl=τm+τl 流水线处理的频率为 f=1/τ。
流水线原理
一个具有k 级过程段的流水线处理 n 个任务需 要的时钟周期数为Tk=k+(n-1), 所需要的时间为: T=Tk × τ 而同时,顺序完成的时间为:T=n×k×τ k级线性流水线的加速比: Ck = TL = n·k Tk k+(n-1)
2.6.2 浮点乘法和除法运算
实现的逻辑框图
C A M
阶码加法器
尾数相加以 及控制线路
C
B
从造纸术说起
采集原料
从造纸术说起
从造纸术说起
采集原料
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起
从造纸术说起-10道工序
2.6.2 浮点乘法和除法运算
设有两个浮点数x和y: x=2Ex·Mx y=2Ey·My x×y=2(Ex+Ey)·(Mx×My) x÷y=2(Ex-Ey)·(Mx÷My) 乘除运算分为四步
① ② ③ ④ 0操作数检查 阶码加减操作 尾数乘除操作 结果规格化和舍入处理
2.6.2 浮点乘法和除法运算-阶码加减操作
◦ CPU之内的浮点运算器(486DX以上)
浮点数有时候也不可靠
1996年6月4日,欧洲航天局发射 的一架未载人阿丽亚娜5号 (Ariane 5)火箭 在发射升空40秒钟后发生了爆炸 这架造价70亿美元的火箭项目是 10年研发后的首次发射 损毁的火箭和货仓就价值5亿美 元。 事故调查委员会两个周后给出了 爆炸的起因,声称是惯性参考系 统的一个软件错误引发的。
1、0操作数检查(非0) 2、对阶:阶码对齐后才能加减。规则是阶码小的向 阶码大的数对齐;
若△E=0,表示两数阶码相等,即Ex=Ey; 若△E>0,表示Ex>Ey; 若△E<0,表示Ex>Ey。 当Ex≠Ey 时,要通过尾数的移动以改变Ex或Ey, 使之相等。
2.6.1 浮点加法、减法运算
浮点数有时候也不可靠
控制惯性导航系统的计 算机向控制引擎喷嘴的 计算机发送了一个无效 数据 将一个64位浮点数转换 成16位整数时,产生了 溢出 溢出值是火箭的水平速 率,比Ariane 4高出5倍 之前认为不会超过16位
本章小结
一个定点数由符号位和数值域两部分组成。按小数点 位置不同,定点数有纯小数和纯整数两种表示方法。 按IEEE754标准,一个浮点数由符号位S、阶码E、尾数 M三个域组成。其中阶码E的值等于指数的真值e加上 一个固定偏移值。 为了使计算机能直接处理十进制形式的数据,采用两 种表示形式:(1)字符串形式,主要用在非数值计算的 应用领域;(2)压缩的十进制数串形式,用于直接完成 十进制数的算术运算。
2.6.2 浮点乘法和除法运算
移码采用双符号位,为了对溢出进行判 断 01 为正 00 为负 10 上溢 11 下溢
x=+011,y=+110,求[x+y]移 和 [x-y]移,并判断是否溢出。
[x]移=01 011, [y]补=00 110, [-y]补=11 010 [x+y]移=[x]移+[y]补=10 001, 结果上溢。 [x-y]移=[x]移+[-y]补=00 101, 结果正确,为-3。
2.6.2 浮点乘法和除法运算
尾数处理
◦ 截断 ◦ 舍入
尾数用原码表示时
只要尾数最低为1或者移出位中有1数值位,使最低位置1 0舍1入