计算机组成原理-第二章(10)浮点数-整章

计算机组成原理

此系列为王道计算机考研组成原理精细笔记


计算机组成原理-第二章(10)浮点数

  • 计算机组成原理
  • 一、浮点数的表示
    • 1.1 为什么要使用浮点数
  • 二、浮点数的表示
    • 2.1 浮点数的表示格式
    • 2.2 规格化浮点数
      • 2.3.1 规格化
      • 2.2.2 表示范围
    • 2.3 IEEE 754标准
  • 三、浮点数的运算
    • 3.1 浮点数的加减运算与强制类型转换
    • 3.2 强制类型转换
  • 四、算术逻辑单元ALU与加法器(串行加法器、并行加法器、全加器)
    • 4.1 电路基本原理
    • 4.2 复合逻辑
    • 4.3 异或、同或运算
    • 4.4 ALU—算术逻辑单元
      • 4.4.1 ALU需要提供的功能
      • 4.4.2 ALU结构
      • 4.4.3 ALU芯片的组织
  • 五、加法器
    • 5.1 一位加法器
    • 5.2 串行加法器
    • 5.3 并行加法器
      • 5.3.1 串行进位的并行加法器
    • 5.4 加法器优化
    • 5.5 ALU芯片的优化
  • 总结

一、浮点数的表示

1.1 为什么要使用浮点数

  因为定点数可表示的数字范围有限,但我们不能无限制地增加数据的长度,这就是定点数的局限性,而浮点数就是为了解决这样一个问题。

  浮点数让小数点位置根据需要浮动,可以在位数有限情况下既扩大数的表示范围,又保持数的有效精度。

二、浮点数的表示

2.1 浮点数的表示格式

  参考科学计数法理解,浮点数可表示为:N=rE * M,r是浮点数阶码的底(隐含,通常为2),E和M都是有符号的定点数,E为阶码,M为尾数。

  所以浮点数可以用二进制表示为阶码和尾数两部分的拼接。
计算机组成原理-第二章(10)浮点数-整章_第1张图片

  • 阶码是定点整数,阶符和阶码的数值部分位数m共同反映浮点数的表示范围和小数点的实际位置。

  • 数符代表浮点数的符号。

  • 尾数的位数n反映浮点数的精度。

2.2 规格化浮点数

2.3.1 规格化

  • 规格化:类似科学计数法,规定位数的最高数位必须是一个有效值(即尾数最高位不为0),以充分利用空间,提高精度。

  • 左规:将尾数算数左移一位,阶码减一(基数为2时),可能要进行多次。

  • 右规:尾数溢出时使用,将尾数算数右移一位,阶码加一(基数为2时),只进行一次。

  • r=2原码规格化后(最高数值位一定为1)

  • r=2补码规格化后(规定符号位和最高数值位必须不一样)

  • 两位符号位(小数点前两位11或00),是变形补码。补码的规格化表示是小数点后n位与符号位不同(n由基数决定,2的n次方为基数).例如基数为8。是2的3次方。每三位表示一个数,n等于3。故观察尾数前三位(小数点后三位):

  • 对基数为8该题解答技巧:
    ① 当浮点数为正数时,数值位前三位不全为0时,是规格化数;
    ② 当浮点数为负数时,数值位前三位不全为1时,是规格化数;
    计算机组成原理-第二章(10)浮点数-整章_第2张图片
    计算机组成原理-第二章(10)浮点数-整章_第3张图片

2.2.2 表示范围

  • 运算结果大于最大正数时称为正上溢,小于绝对值最大负数时称为负上溢,正上溢和负上溢统称上溢。
    数据一旦产生上溢,计算机必须中断运算操作,进行溢出处理。

  • 当运算结果在0至最小正数之间时称为正下溢,在0至绝对值最小负数之间时称为负下溢,正下溢和负下溢统称下溢。
    数据下溢时,浮点数值趋于零,计算机仅将其当作机器零处理。
    计算机组成原理-第二章(10)浮点数-整章_第4张图片

2.3 IEEE 754标准

① IEEE 754标准的浮点数(除临时浮点数外),是尾数用采取隐藏位策略的原码表示,且阶码用移码表示的浮点数。(此处移码偏置值为2n-1,移码=真值+偏置值,相当于补码最高位取反)尾数部分隐藏表示最高位1,表示尾数1.M,具体如下图:
② 以短浮点数为例,最高位为数符位;其后是8位阶码,以2为底,用移码表示,阶码的偏置值为28-1-1= 127;其后23位是原码表示的尾数数值位。
③对于规格化的二进制浮点数,数值的最高位总是“1”,为了能使尾数多表示一位有效位,将这个“1”隐含,因此尾数数值实际上是24位。隐含的“1”是一位整数。
④ 在浮点格式中表示的23位尾数是纯小数。例如,(12)10= (1100)2, .
将它规格化后结果为1.1x23, 其中整数部分的“1”将不存储在23位尾数内。
计算机组成原理-第二章(10)浮点数-整章_第5张图片
规则
计算机组成原理-第二章(10)浮点数-整章_第6张图片

三、浮点数的运算

3.1 浮点数的加减运算与强制类型转换

  • 浮点数加减运算步骤:
    ① 对阶:小阶看大阶
    ② 尾数加减
    ③ 规格化
    ④ 舍入:零舍一入法或恒置一法
    ⑤ 判断溢出:先规格化再判断溢出,阶码溢出必溢出,尾数溢出或许可以通过3.4步操作挽救
    计算机组成原理-第二章(10)浮点数-整章_第7张图片

3.2 强制类型转换

int转float(实际有效数字24位),可能有数据舍入
int或float转double,能保留精确值
double转float,可能发生溢出和舍入
float转或double转int,可能会只保留整数部分,影响精度,可能发生溢出
计算机组成原理-第二章(10)浮点数-整章_第8张图片
计算机组成原理-第二章(10)浮点数-整章_第9张图片

四、算术逻辑单元ALU与加法器(串行加法器、并行加法器、全加器)

4.1 电路基本原理

  说到电路基本原理,我们首要知晓的就是一些基本的数电模电基础:

  • 基本逻辑运算
表达式 门电路
Y = A B Y=AB Y=AB 计算机组成原理-第二章(10)浮点数-整章_第10张图片
Y = A + B Y=A+B Y=A+B 计算机组成原理-第二章(10)浮点数-整章_第11张图片
Y = A ‾ Y=\overline{A} Y=A 计算机组成原理-第二章(10)浮点数-整章_第12张图片

优先级: 与 > 或 与>或 >
分配律: A ( C + D ) = A C + A D A(C+D)=AC+AD A(C+D)=AC+AD
结合律: A B C = A ( B C ) ABC=A(BC) ABC=A(BC)
结合律: A + B + C − A + ( B + C ) A+B+C-A+(B+C) A+B+CA+(B+C)
在这里逻辑表达式实际上是对电路的数学化描述,简化逻辑表达式可以简化电路。例如: A C + A D = A ( C + D ) AC+AD=A(C+D) AC+AD=A(C+D)

4.2 复合逻辑

  • 复合逻辑包括:
    ① 与非
    ② 或非
    ③ 异或
    ④ 同或
表达式 门电路
Y = A B ‾ Y=\overline{AB} Y=AB 计算机组成原理-第二章(10)浮点数-整章_第13张图片
Y = A + B ‾ Y=\overline{A+B} Y=A+B 计算机组成原理-第二章(10)浮点数-整章_第14张图片
Y = A ⨁ B Y = A\bigoplus B Y=AB 计算机组成原理-第二章(10)浮点数-整章_第15张图片
Y = A ⨀ B Y=A\bigodot B Y=AB 计算机组成原理-第二章(10)浮点数-整章_第16张图片

德摩根律:

  • A + B ‾ = A ‾ ⋅ B ‾ \overline{A+B}=\overline{A}\cdot \overline{B} A+B=AB
  • A ⋅ B ‾ = A ‾ + B ‾ \overline{A\cdot B}=\overline{A}+ \overline{B} AB=A+B

4.3 异或、同或运算

计算机组成原理-第二章(10)浮点数-整章_第17张图片

4.4 ALU—算术逻辑单元

4.4.1 ALU需要提供的功能

计算机组成原理-第二章(10)浮点数-整章_第18张图片

4.4.2 ALU结构

计算机组成原理-第二章(10)浮点数-整章_第19张图片

4.4.3 ALU芯片的组织

计算机组成原理-第二章(10)浮点数-整章_第20张图片

五、加法器

5.1 一位加法器

  • 1.三个输入:加数 A i 、 B i A_{i}、B_{i} AiBi和低位传来的进位 C i − 1 C_{i-1} Ci1
    2.两个输出:本位和 S i S_{i} Si、向高位的进位 C i C_{i} Ci

计算机组成原理-第二章(10)浮点数-整章_第21张图片

5.2 串行加法器

  • ① 只有一个全加器,逐位串行送入加法器进行运算
    ② 每次产生一位和,逐位送回寄存器
    ③ 若操作数长n位,则要进行n次运算
    ④ 器件小、成本低,但速度慢
    计算机组成原理-第二章(10)浮点数-整章_第22张图片

5.3 并行加法器

5.3.1 串行进位的并行加法器

  串行进位的并行加法器就是把n个全加器串联起来,可以进行两个n位数的相加

计算机组成原理-第二章(10)浮点数-整章_第23张图片
在这里插入图片描述
最低位产生的进位将逐位影响到最高位:最长运算时间由进位信号的传递时间决定。

计算机组成原理-第二章(10)浮点数-整章_第24张图片

5.4 加法器优化

  优化思路:同时产生各级进位输出,即并行进位(先行进位,同时进位)

并行进位
计算机组成原理-第二章(10)浮点数-整章_第25张图片

由于需要一次同时算出所有进位输出,无限套娃之后电路结构会越来越复杂,因此完全采用并行进位是不可行的。实际上,通常采用分组并行进位方式。
分组并行进位把n位全加器分为若干小组(n位CLA加法器),小组内实行并行快速进位,小组间可实行串行或并行进位,因此又可进一步分为两种
单级先行进位方式
计算机组成原理-第二章(10)浮点数-整章_第26张图片
多级先行进位方式,需要对原来的CLA电路进行修改,得到BCLA(成组先行进位加法器)加法器。例如16位的两级先行进位加法器可由4个BCLA加法器和1个CLA电路构成。
计算机组成原理-第二章(10)浮点数-整章_第27张图片
在这里插入图片描述

5.5 ALU芯片的优化

计算机组成原理-第二章(10)浮点数-整章_第28张图片

总结

  下一章是存储系统,期待大家和我交流,留言或者私信,一起学习,一起进步!
计算机组成原理-第二章(10)浮点数-整章_第29张图片

计算机组成原理-第二章(10)浮点数-整章_第30张图片

计算机组成原理-第二章(10)浮点数-整章_第31张图片

你可能感兴趣的:(计算机组成原理,后端,计算机基础)