计算机组成原理|计算机组成原理-第二章(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)浮点数-整章
文章图片

  • 阶码是定点整数,阶符和阶码的数值部分位数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)浮点数-整章
    文章图片

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

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

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

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)浮点数-整章
文章图片

规则
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

三、浮点数的运算 3.1 浮点数的加减运算与强制类型转换
  • 浮点数加减运算步骤:
    ① 对阶:小阶看大阶
    ② 尾数加减
    ③ 规格化
    ④ 舍入:零舍一入法或恒置一法
    ⑤ 判断溢出:先规格化再判断溢出,阶码溢出必溢出,尾数溢出或许可以通过3.4步操作挽救
    计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
    文章图片
3.2 强制类型转换
int转float(实际有效数字24位),可能有数据舍入
int或float转double,能保留精确值
double转float,可能发生溢出和舍入
float转或double转int,可能会只保留整数部分,影响精度,可能发生溢出
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

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

四、算术逻辑单元ALU与加法器(串行加法器、并行加法器、全加器) 4.1 电路基本原理 ??说到电路基本原理,我们首要知晓的就是一些基本的数电模电基础:
  • 基本逻辑运算
表达式 门电路
Y = A B Y=AB Y=AB 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
Y = A + B Y=A+B Y=A+B 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
Y = A  ̄ Y=\overline{A} Y=A 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
优先级: 与 > 或 与>或 与>或
分配律: 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+C?A+(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)浮点数-整章
文章图片
Y = A + B  ̄ Y=\overline{A+B} Y=A+B? 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
Y = A ? B Y = A\bigoplus B Y=A?B 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
Y = A ? B Y=A\bigodot B Y=A?B 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片
德摩根律:
  • A + B  ̄ = A  ̄ ? B  ̄ \overline{A+B}=\overline{A}\cdot \overline{B} A+B?=A?B
  • A ? B  ̄ = A  ̄ + B  ̄ \overline{A\cdot B}=\overline{A}+ \overline{B} A?B=A+B
4.3 异或、同或运算 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

4.4 ALU—算术逻辑单元 4.4.1 ALU需要提供的功能
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

4.4.2 ALU结构
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

4.4.3 ALU芯片的组织
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

五、加法器 5.1 一位加法器
  • 1.三个输入:加数 A i 、 B i A_{i}、B_{i} Ai?、Bi?和低位传来的进位 C i ? 1 C_{i-1} Ci?1?
    2.两个输出:本位和 S i S_{i} Si?、向高位的进位 C i C_{i} Ci?
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

5.2 串行加法器
  • ① 只有一个全加器,逐位串行送入加法器进行运算
    ② 每次产生一位和,逐位送回寄存器
    ③ 若操作数长n位,则要进行n次运算
    ④ 器件小、成本低,但速度慢
    计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
    文章图片
5.3 并行加法器 5.3.1 串行进位的并行加法器
??串行进位的并行加法器就是把n个全加器串联起来,可以进行两个n位数的相加
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

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

最低位产生的进位将逐位影响到最高位:最长运算时间由进位信号的传递时间决定。
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

5.4 加法器优化 ??优化思路:同时产生各级进位输出,即并行进位(先行进位,同时进位)
并行进位
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

由于需要一次同时算出所有进位输出,无限套娃之后电路结构会越来越复杂,因此完全采用并行进位是不可行的。实际上,通常采用分组并行进位方式。
分组并行进位把n位全加器分为若干小组(n位CLA加法器),小组内实行并行快速进位,小组间可实行串行或并行进位,因此又可进一步分为两种
单级先行进位方式
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

多级先行进位方式,需要对原来的CLA电路进行修改,得到BCLA(成组先行进位加法器)加法器。例如16位的两级先行进位加法器可由4个BCLA加法器和1个CLA电路构成。
计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

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

5.5 ALU芯片的优化 计算机组成原理|计算机组成原理-第二章(10)浮点数-整章
文章图片

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

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

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

    推荐阅读