计算机组成原理:浮点数表示及运算(方案).ppt
计算机组成原理:浮点数表示及运算电子教案

负上溢
正上溢
-
最
负数 最
0
正数
最
最
+
小
大
小
大
负
负正正数 Nhomakorabea数
数
数
N=2E×M
|N|→∞ 产生正上溢或者负上溢
|N|→0 产生正下溢或者负下溢
计算机组成原理
3
机器字长一定时,阶码越长,表示范围越大,精度越低 浮点数表示范围比定点数大,精度高
8位定点小数可表示的范围
0.1000101010
把不满足这一表示要求的尾数,变成满足这一要求的尾数 的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改 阶码实现。
计算机组成原理
5
规格化目的: 为了提高数据的表示精度 为了数据表示的唯一性 尾数为R进制的规格化: 绝对值大于或等于1/R
二进制原码的规格化数的表现形式:
正数 0.1xxxxxx 负数 1.1xxxxxx 补码尾数的规格化的表现形式:尾数的最高位与符号位相反。
0.0000001 --- 0.1111111
1/128 --- 127/128
设阶码2位,尾数4位 可表示2-11*0.0001 --- 211*0.1111
0.0000001 --- 111.1
设阶码3位,尾数3位 可表示2-111*0.001 --- 2111*0.111
0.0000000001 --- 1110000
指数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
浮点数表示及运算

Emax=2046, f=1.1111…,1.111…1×22046-1023 =21023×(2-2-52)
负下溢出 零
负上溢出 可表示负数范围
正下溢出 可表示正数范围 正上溢出
ห้องสมุดไป่ตู้-(1-2-23) 2127
计算机组成原理
-0.52-128 0 0.52-128
(1-2-23) 2127
数轴
指数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
计算机组成原理
12
单精度浮点数编码格式
符号位 0/1 0/1 0 1 0/1 0/1 0/1
阶码 255 255 255 255 1~254
0 0
尾数 非零1xxxx 非零0xxxx
0 0
f f (非零)
0
表示
NaN Not a Number sNaN Signaling NaN +∞ -∞ (-1)S× (1.f) 2 × (e-127) (-1)S× (0.f) 2 × (-126) +0/-0
正数 0.1xxxxxx 负数 1.0xxxxxx
计算机组成原理
6
例:对数据12310作规格化浮点数的编码,假定1位符号位,基 数为2,阶码5位,采用移码,尾数10位,采用补码。
解:12310=11110112= 0.11110110002×27 [7]移=10000+00111 = 10111 [0.1111011000]补=0.1111011000 [123]浮= 1011 1 0 11 1101 1000
2024版《计算机组成原理》ppt课件

《计算机组成原理》ppt课件目录•计算机系统概述•数字逻辑基础•计算机各部件的功能和组成•指令系统•CPU的结构和功能•存储器的层次结构•计算机组成原理的应用和发展01计算机系统概述Part计算机的发展历程第一代计算机(1946-1957)电子管时代,采用电子管作为基本元件,体积大、功耗高、可靠性差。
第二代计算机(1958-1964)晶体管时代,采用晶体管作为基本元件,体积减小、功耗降低、可靠性提高。
第三代计算机(1965-1970)集成电路时代,采用中小规模集成电路,使得计算机体积更小、功耗更低、可靠性更高。
第四代计算机(1971年至今)大规模和超大规模集成电路时代,计算机性能得到极大提升,应用领域不断扩展。
计算机系统的层次结构微程序机器级微指令由硬件直接执行,微程序由微指令构成,用于描述机器指令。
高级语言级用高级语言编写程序,通过编译或解释程序翻译成机器语言程序或汇编语言程序。
传统机器级用微程序解释机器指令系统,提供传统机器级虚拟机器。
汇编语言级用汇编语言编写程序,通过汇编程序翻译成机器语言程序。
操作系统级通过系统调用实现操作系统功能,提供扩展机器。
计算机的性能指标机器字长指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
字长越长,数的表示范围越大,精度也越高。
存储容量包括主存容量和辅存容量。
主存容量通常以字节为单位,辅存容量通常以位为单位。
存储容量越大,系统能存储的信息就越多。
运算速度用每秒钟所能执行的指令条数来表示,单位通常用MIPS(百万条指令/秒)。
运算速度越快,系统处理任务的能力越强。
02数字逻辑基础Part数制与编码数制的基本概念介绍二进制、十进制、十六进制等数制的基本概念及转换方法。
编码方式详细阐述原码、反码、补码等编码方式及其在计算机中的应用。
数的定点与浮点表示解释定点数与浮点数的表示方法,包括整数和实数的表示。
1 2 3引入逻辑变量和逻辑函数的概念,为后续的逻辑运算打下基础。
计算机组成原理课件

解决: 解决:浮点数的规格化
15:03 5
§2.3 机器数的定点与浮点表示
2. 浮点数的规格化
当尾数的值不为0 当尾数的值不为0时,其绝对值应大于等于0.5,即|M|≥0.5。 其绝对值应大于等于0.5, |M|≥0.5。 大于等于0.5 而尾数又为定点小数,即|M|<1,故0.5≤|M|<1。 而尾数又为定点小数, |M|< 0.5≤|M|< 如:[1011.1101] 原=0,100;0.10111101为规格化浮点数 , ; 为规格化浮点数 而[1011.1101] 原=0,110;0.0010111101非规格化 , ; 非规格化 ------必须通过左移尾数并同时修改阶码使其变为规格化的浮点 必须通过左移尾数并同时修改阶码使其变为规格化的浮点 这种操作被称为浮点数的规格化处理。 浮点数的规格化处理 数,这种操作被称为浮点数的规格化处理。 要满足0.5≤|M| 0.5≤|M|< 要满足0.5≤|M|<1, 原码表示:尾数最高位为1 =0.1或 原码表示:尾数最高位为1,即Ms.M1 =0.1或 Ms.M1 =1.1 补码表示:正数:尾数最高位为1 补码表示:正数:尾数最高位为1,即Ms.M1 =0.1 负数:尾数最高位为0 负数:尾数最高位为0,即Ms.M1 =1.0 符号位与第一数值位相异
15:03 8
§2.3 机器数的定点与浮点表示
4.浮点数的表示范围
尾数部分给出有效数字的位数, 尾数部分给出有效数字的位数,决定了浮点数的表示 部分给出有效数字的位数 精度,尾数占的位数越大,浮点数的表示精度就越高; 精度,尾数占的位数越大,浮点数的表示精度就越高; 阶码部分指明小数点在数据中的位置, 阶码部分指明小数点在数据中的位置,决定了浮点 数的表示范围 阶码占的位数越大, 表示范围, 数的表示范围,阶码占的位数越大,浮点数的表示范围 就越大; 就越大; 通常希望数据表示的范围越大越好、精度越高越好, 通常希望数据表示的范围越大越好、精度越高越好, 但是由于计算机的存储字长是一定的,不能两者兼顾。 但是由于计算机的存储字长是一定的,不能两者兼顾。
计算机组成原理(本全)ppt课件

定点数的加减法实现
通过硬件电路实现定点数的加减法,包括加 法器、减法器等。
浮点数的加减运算
浮点数的表示方法
包括IEEE 754标准中浮点数的表示方法、规格化表示 和精度。
浮点数的加减法规则
包括阶码和尾数的运算规则、对阶操作、尾数加减运 算和结果规格化等。
浮点数的加减法实现
通过硬件电路实现浮点数的加减法,包括浮点加法器 、浮点减法器等。
指令的执行过程与周期
指令执行过程
取指、译码、执行、访存、写回等阶段 。
VS
指令周期
完成一条指令所需的时间,包括取指周期 、间址周期、执行周期等。
07
中央处理器(CPU)
CPU的功能与组成
控制器
负责指令的取指、译码和执行,控制 数据和指令在CPU内部的流动。
运算器
执行算术和逻辑运算,包括加、减、 乘、除、与、或、非等操作。
多核处理器与并行计算
多核处理器
将多个处理器核心集成在一个芯片上,每个核心可以独立执行指令,提高处理器的并行 处理能力。
并行计算
利用多核处理器或多个处理器同时处理多个任务或数据,加速计算过程,提高计算效率 。
08
输入输出系统
I/O接口与I/O设备
I/O接口的功能
实现主机与外设之间的信息交换,包括数据 缓冲、信号转换、设备选择等。
乘法与除法运算
浮点数的乘除法运算
包括浮点数的乘法、除法和平方根运算等。
定点数的乘除法运算
包括原码一位乘法、补码一位乘法、原码除 法和补码除法等。
乘除法运算的实现
通过硬件组成与设计
运算器的基本组成
包括算术逻辑单元(ALU)、寄存器组、数据总线等。
运算器的设计原则
计算机组成原理第12-浮点数的运算2

CK=TL/TK=(n·k)/(k+(n-1)) 当 n>>k 时, Ck->k 。这就是说,理论上k级线性流水线处理几乎 可以提高k倍速度。但实际上由于存储器冲突、数据相关,这个理想的加速比不一定能 达到。
[解:] (1)加法器的流水线时钟周期至少为 τ=90ns+10ns=100ns
如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为 τ1+τ2+τ3+τ4 =300ns
因此,4级流水线加法器的加速比为 Ck=300/100=3
(2) 当每个过程段的时间都是75ns时,加速比为 Ck=300/75=4
[例30] 已知计算一维向量x,y的求和表达式如下:
x
y
z
56
65
20.5
14.6
0
336
121 35.1 336
114.3 + 7.2 = 121.5
69.6
72.8
142.4
3.14
1.41
4.55
试用4段的浮点加法流水线来实现一维向量的求和运算,这4段流水线是阶码比较、 对阶操作、尾数相加、规格化。只要求画出向量加法计算流水时空图。
2.CPU之内的浮点运算器
奔腾CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。
指令执行过程分为8段流水线。前4 段为指令预取(DF)、指令译码(D1)、地址生 成(D2)、取操作数(EX),在U、V流水线中完成;后4段为执行1(X1)、执行2(X2) 、结果写回寄存器堆(WF)、错误报告(ER),在浮点运算器中完成。一般情况下 ,由U流水线完成一条浮点数操作指令。
计算机组成原理第4章浮点数运算方法ppt课件

jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
11
5. 溢出判断
在浮点规格化中已指出,当尾数之和(差)出现 01.××…×或10.××…×时,并不表示溢出,只有 将此数右规后,再根据阶码来判断浮点运算结果是否 溢出。
若机器数为补码,尾数为规格化形式,并假设阶符取 2位,阶码取7位,数符取2位,尾数取n位,则它们能 表示的补码在数轴上的表示范围如下图。
浮 点 数 加 减 运 算 流 程 图
16
浮点加减法运算
1. 大型计算机和高档微型机中,浮点加减法运算是由 硬件完成的。低档的微型机浮点加减法运算是由软 件完成的,但无论用硬件实现或由软件实现加减法 运算,基本原理是一致的。
2. 浮点加减法运算要经过对阶、尾数求和、规格化、 舍入和溢出判断五步操作。其中尾数运算与定点加
23
2. 尾数运算
(1)浮点乘法尾数运算 (2)浮点除法尾数运算
24
(1)浮点乘法尾数运算
预处理:检测两个尾数中是否有一个为0, 若有一个为0,乘积必为0,不再作其他操 作;如果两尾数均不为0,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。
计算机组成原理计算机的运算方法(共56张PPT)精选全文

10 0001 0000
0000
0001
……
……
1001
1010
0
00110000
1
00110001
……
9
00111001
A
16 0001 0110
1111
F
由于ASCII码低四位与BCD码相同,转换方便。 ASCII码左移四位得BCD码, BCD码前加0011得ASCII码。
一般采用二进制运算的计算机中不采用BCD码,矫正不方便。 商用计算机中采用BCD码,专门设置有十进制运算电路。
八进制数与十六进制数之间,可将二进制数作为中介进行转换。
、数值的处理(数制转换)
3) BCD码(十进制):P214-215
如果计算机以二进制进行运算和处理时,只要在输入输出处理时进
行二 / 十进制转换即可。
但在商业统计中,二 / 十进制转换存在两个问题:
(1)转换占用实际运算很大的时间; (2)十进制的,无法用二进制精确表示;
例:将(0. 1)10转换成二进制数 ( 要求5位有效位) 。
结果
0.1×2
最高位 0 .2×2
… 0 .4×2
0 .8×2
1 .6×2
1 .2×2
0 .4×2
直到乘积的小数部分为0,
或结果已满足所需精度要求为止.
0 .8×2
最低位 1 .6000
可能永远乘不完,小数部分不为0, 意味存在一点误差。
2 105
余数
结果
2 52
1
2 26
0
2 13
0
26
1
23
0
21
1
0
1
直到商等于0为止
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浮点数表示及运算
计算机组成原理
1
一、浮点数的表示
9×10-28 = 0.9 ×10-27 2×1033 = 0.2 ×1034
任意一个十进制数 N 可以写成
N=10E·×M (十进制表示)
计算机中一个任意进制数 N 可以写成
N=Re×m = 2E×M = 2±e× (±m)
m :尾数,是一个纯小数。 e :浮点的指数, 是一个整数。
浮点数的表示范围 负下溢 正下溢
负上溢
正上溢
-
最
负数 最
0
正数
最
最
+
小
大
小
大
负
负
正
正
数
数
数
数
N=2E×M
|N|→∞ 产生正上溢或者负上溢
|N|→0 产生正下溢或者负下溢
计算机组成原理
3
机器字长一定时,阶码越长,表示范围越大,精度越低 浮点数表示范围比定点数大,精度高
8位定点小数可表示的范围
0.0000001 --- 0.1111111
1/128 --- 127/128
设阶码2位,尾数4位 可表示2-11*0.0001 --- 211*0.1111
0.0000001 --- 111.1
设阶码3位,尾数3位 可表示2-111*0.001 --- 2111*0.111
0.0000000001 --- 1110000
= BBD8H
计算机组成原理
7
三 、浮点数的标准格式IEEE754
为便于软件移植,使用 IEEE(电气和电子工程师协会)标准IEEE754 标 准:尾数用原码;阶码用“移码”;基为2。
31 30 23 22
0
32位 S E
M
63 62
52 51
64位 S
E
0
M
S——尾数符号,0正1负; M——尾数, 纯小数表示, 小数点放在尾数域的最前面。采用原码表示。 E——阶码,采用“移码”表示(移码可表示阶符);
计算机组成原理
4
二、浮点数规格化
浮点数是数学中实数的子集合,由一个纯小数乘上一个指数 值来组成。
一个浮点数有不同的表示: 0.5; 0.05101 ; 0.005 102 ; 50 10-2
为提高数据的表示精度,需做规格化处理。
在计算机内,其纯小数部分被称为浮点数的尾数,对非 0 值的浮点数,要求尾数的绝对值必须 >= 1/2,即尾数域的最高 有效位应为1,称满足这种表示要求的浮点数为规格化表示:
阶符采用隐含方式,即采用移码方法来表示正负指数。
计算机组成原理
8
规格化浮点数的真值
31 30 23 22
0
32位浮点数格式:
SE
M
一个规格化的32位浮点数x的真值为:
x = (-1)s (1.M) 2E-127
e =E – 127
一个规格化的64位浮点数x的真值为:
x = ( –1)s×(1.M)×2E-1023 这里e是真值,E是机器数
=(-1)1×(1 + 0.1000 0000 0000 0000 0000 000)×2-1
0.1000101010
把不满足这一表示要求的尾数,变成满足这一要求的尾数 的操作过程,叫作浮点数的规格化处理,通过尾数移位和修改 阶码实现。
计算机组成原理
5
规格化目的: 为了提高数据的表示精度 为了数据表示的唯一性 尾数为R进制的规格化: 绝对值大于或等于1/R
二进制原码的规格化数的表现形式:
正数 0.1xxxxxx 负数 1.1xxxxxx 补码尾数的规格化的表现形式:尾数的最高位与符号位相反。
R :基数,对于二进计数值的机器是一个常数,一般规定R 为2,8或16
E0 E1 E2 … … … Em M0 M1 M2 … … … Mn
阶符
阶值
尾符 尾数值ห้องสมุดไป่ตู้
计算机组成原理
2
一个机器浮点数由阶码和尾数及其符号位组成: 尾数:用定点小数表示,给出有效数字的位数,决定了浮点数的表示精度 阶码:用定点整数形式表示,指明小数点在数据中的位置,决定了浮点数 的表示范围。
Emin=1, Emax=254/2046
计算机组成原理
9
例:若浮点数 x 的二进制存储格式为(41360000)16,求其32位 浮点数的十进制值。
解: 0100,0001,0011,0110,0000,0000,0000,0000 数符:0 阶码:1000,0010 尾数:011,0110,0000,0000,0000,0000
S=0,E=4+127=131=1000,0011,M=010010011 最后得到32位浮点数的二进制存储格式为
0100 0001 1010 0100 1100 0000 0000 0000= (41A4C000)16
计算机组成原理
11
例:将十进制数-0.75表示成单精度的IEEE 754标准代码。 解:-0.75 = -3/4 = -0.112 = -1.1×2-1
正数 0.1xxxxxx 负数 1.0xxxxxx
计算机组成原理
6
例:对数据12310作规格化浮点数的编码,假定1位符号位,基 数为2,阶码5位,采用移码,尾数10位,采用补码。
解:12310=11110112= 0.11110110002×27 [7]移=10000+00111 = 10111 [0.1111011000]补=0.1111011000 [123]浮= 1011 1 0 11 1101 1000
计算机组成原理
10
例: 将十进制数20.59375转换成32位浮点数的二进制格式来存储。
解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011
然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×24 e=4
于是得到: e =E – 127
1.隐藏位技术
原码非0值浮点数的尾数数值最高位必定为 1,则在保存浮点数到内存前,
通过尾数左移, 强行把该位去掉, 用同样多的位数能多存一位二进制数, 有利于提高数据表示精度,称这种处理方案使用了隐藏位技术。
当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。
2.阶码用“移码”偏移值127而不是128
指数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