笔记:计算机组成原理——第六章

计算机组成原理——第六章 计算机的运算方法

  • 第六章 计算机的运算方法
    • 6.1 无符号数和有符号数
      • 一、无符号数
      • 二、有符号数
        • 1.机器数与真值
        • 2.原码表示法
        • 3.补码表示法
        • 4.反码表示法
        • 5.移码表示法
    • 6.2 数的定点表示和浮点表示
      • 一、定点表示
      • 二、浮点表示
        • 1.浮点数的表示形式
        • 2.浮点数的表示范围
        • 3.浮点数的规格化形式
        • 4.浮点数的规格化
      • 三、举例
      • 四、IEEE 754标准
    • 6.3 定点运算
      • 一、移位运算
        • 1.移位的意义
        • 2.算术移位规则
        • 3.算术移位的硬件实现
        • 4.算术移位与逻辑移位的区别
      • 二、加减法运算
        • 1.补码加减法运算的公式
        • 2.举例
        • 3.溢出的判断
        • 4.补码加减法的硬件配置
      • 三、乘法运算
        • 1.分析笔算乘法
        • 2.笔算乘法改进
        • 3.改进后的笔算乘法过程(竖式)
        • 4.原码乘法
      • 四、除法运算
        • 1.分析笔算除法
        • 2.笔算除法和机器除法的比较
        • 3.原码除法
    • 6.4 浮点四则运算
      • 一、浮点加减运算
        • 1.对阶
        • 2.尾数求和
        • 3.规格化
        • 4.舍入
        • 5.溢出判断
    • 6.5 算术逻辑单元
      • 一、ALU电路
      • 二、快速进位链
        • 1.并行加法器
        • 2.串行进位链
        • 3.并行进位链

第六章 计算机的运算方法

6.1 无符号数和有符号数

一、无符号数

笔记:计算机组成原理——第六章_第1张图片

  • 例如:8位寄存器的范围为00000000-11111111,表示0~255

二、有符号数

1.机器数与真值

笔记:计算机组成原理——第六章_第2张图片

  • 定点计算器分为两类:小数定点器——小数点在符号位后面;整数定点器——小数点在数值位后面

  • 在计算器当中,没有专门的硬件来表示小数点,小数点是以约定的方式给出的

2.原码表示法

笔记:计算机组成原理——第六章_第3张图片

  • 如果是负数有n位数值位,在n+1位符号位变为1,相当于给数据的绝对值加2^n

  • 当数值部分为n位时,最大值为数值位全1,能表示的最大值为2^(n-1)

  • 注意:如果x=0,计算出的原码可能正0和负0有两种表达方式

  • 符号位是0表示正数,是1表示负数

笔记:计算机组成原理——第六章_第4张图片

  • 如果是负数有n位数值位,在n+1位符号位变为1,相当于给数据的绝对值加1

  • 真值的0.表示小数,原码的0.表示正负

  • 在机器码中,无论是整数的逗号还是小数的小数点,在计算机中都是不需要存储的,仅仅为人阅读方便

  • 注意:原码表示保存在计算机中的数据,存储单元位数位数有限,求原码时需要知道机器数或其数值位的长度和包含符号位的位数

笔记:计算机组成原理——第六章_第5张图片
笔记:计算机组成原理——第六章_第6张图片

  • 原码:正0(0,0000)和负0(1,0000)的表示不相同

笔记:计算机组成原理——第六章_第7张图片

3.补码表示法

笔记:计算机组成原理——第六章_第8张图片
笔记:计算机组成原理——第六章_第9张图片
笔记:计算机组成原理——第六章_第10张图片

  • 2(4+1)=24(加上一个模得补数)+2^4(加一位符号位1区分正负数)

笔记:计算机组成原理——第六章_第11张图片

  • 补码形式最小可以表示到-2^n,也就是1,0000,n不包括符号位

  • 补码:正0和负0(0,0000)表示相同

笔记:计算机组成原理——第六章_第12张图片

  • 此处为模2的算法,相应的模4为时,小数点前面为两位,即模8为三位

笔记:计算机组成原理——第六章_第13张图片

  • 做减法时,可以将100000转化为11111+1进行计算

  • 注意:快捷方式的真值必须为负数;考虑计算机规定的字长

笔记:计算机组成原理——第六章_第14张图片
笔记:计算机组成原理——第六章_第15张图片
笔记:计算机组成原理——第六章_第16张图片

  • 70转换二进制64+4+2,为1000110

  • 补码为1.0000表示-1,原码为1.0000表示-0

  • (问题:-1的补码用小数定点机可以表示为1.0000,但是为什么按位取反加1求原码真值为1.1111)

  • (解答:原码小数的定义域不包括-1,也要注意在整数定点机中-1的补码为1,1111)

4.反码表示法
  • 反码:与补码相比,少末尾加1

笔记:计算机组成原理——第六章_第17张图片

笔记:计算机组成原理——第六章_第18张图片
笔记:计算机组成原理——第六章_第19张图片

  • 反码:正0(0,0000)和负0(0,0000)表示不相同

笔记:计算机组成原理——第六章_第20张图片

笔记:计算机组成原理——第六章_第21张图片

笔记:计算机组成原理——第六章_第22张图片

5.移码表示法

笔记:计算机组成原理——第六章_第23张图片

笔记:计算机组成原理——第六章_第24张图片

  • 注意:不管正负数均加2^n;移码只有整数形式的定义,通常用来表示浮点数据表示的阶码部分,而阶码均为整数

笔记:计算机组成原理——第六章_第25张图片

笔记:计算机组成原理——第六章_第26张图片

笔记:计算机组成原理——第六章_第27张图片

  • 机器数的正0和负0:补码和移码的表示相同,原码和反码的表示不相同

6.2 数的定点表示和浮点表示

一、定点表示

笔记:计算机组成原理——第六章_第28张图片

  • 如果是补码形式,小数定点机能表示的唯一整数为-1

二、浮点表示

笔记:计算机组成原理——第六章_第29张图片

笔记:计算机组成原理——第六章_第30张图片

笔记:计算机组成原理——第六章_第31张图片

  • 如果尾数的基值取4,尾数中的两位二进制数表示了一位四进制数

  • 210中10为2的二进制表示,2100中100为4的二进制表示

1.浮点数的表示形式

笔记:计算机组成原理——第六章_第32张图片

2.浮点数的表示范围

笔记:计算机组成原理——第六章_第33张图片

  • 浮点数的表示范围由阶码的范围大小来决定

  • 上溢:计算机系统按照计算出错处理;下溢:按照机器零处理

  • 阶码基本决定数值大小,尾数范围0~1

  • m=4:因为15的二进制表示法需要4位

  • 尾数的长度影响数的精度,如果要保证精度,尾数要尽可能的长,因此阶码位数尽可能的少

笔记:计算机组成原理——第六章_第34张图片

3.浮点数的规格化形式
  • 作用:尽可能的保证数据的精度,让尾数的有效位数更多

笔记:计算机组成原理——第六章_第35张图片

4.浮点数的规格化
  • 通过对尾数数据左右移,移除左侧多余的0

  • r=2使尾数的最高位为1;r=4尾数最高两位不等于0,阶码加1每次移动两位

  • 通过调整阶码部分,保证数据的真值不发生变化
    笔记:计算机组成原理——第六章_第36张图片笔记:计算机组成原理——第六章_第37张图片

三、举例

笔记:计算机组成原理——第六章_第38张图片

  • 19=16+2+1;除128数据向右移动7位,移动一位相当于除2

  • 在定点机中:因为数值为正数,原码补码反码都相同

  • 在浮点机中:尾数和阶码的数值分别表示;因为阶码为负,阶码的原码补码反码不同,但尾数的原码补码反码相同

笔记:计算机组成原理——第六章_第39张图片

  • 定点数转浮点数,因为数据右移了6位,要乘2110相当于26

  • 定点表示:数值部分要求10位,加上符号位0,共11位

  • 浮点表示:阶码部分数值位要求4位,加上符号位0,阶码表示共5位

  • 阶码为正数,只有用移码表示时,阶码要发生改变

笔记:计算机组成原理——第六章_第40张图片

四、IEEE 754标准

笔记:计算机组成原理——第六章_第41张图片

  • 注意:数值的符号位在最前面,阶数的符号位在阶码中

6.3 定点运算

一、移位运算

1.移位的意义

笔记:计算机组成原理——第六章_第42张图片

  • 在计算机中,小数点以约定的方式给出,计算机中没有硬件用于表示小数点,因此计算机中的移位,指数据相对于小数点左右移
2.算术移位规则

笔记:计算机组成原理——第六章_第43张图片

  • 负数补码左移添0,因为原码末尾为0的,补码取反加1仍为0(右上角例题)

笔记:计算机组成原理——第六章_第44张图片

  • 数值位左移一位:真值变为原来的两倍;数值位右移一位:真值变为原来的一半

  • 右移的最后一位可能会丢1;(正数)原码补码反码均导致数值变小

笔记:计算机组成原理——第六章_第45张图片

笔记:计算机组成原理——第六章_第46张图片

  • 右移的最后一位可能会丢1;(负数)原码表示导致数值绝对值变小,补码表示导致数值绝对值变大

  • 右移的最后一位可能会丢0;(负数)反码表示导致数值绝对值变小

3.算术移位的硬件实现

笔记:计算机组成原理——第六章_第47张图片

  • 正数原码右移、负数补码和反码右移,相当于符号位自我复制后,符号位再移到数值位的最高位

  • 丢失数值位时,如果对应这真值中的0,不影响精度;如果对应着真值中的1,可能变大可能变小

4.算术移位与逻辑移位的区别

笔记:计算机组成原理——第六章_第48张图片

  • 逻辑移位:全部数值位都移

  • 算术移位:符号位不变,从第二位的数值位移

二、加减法运算

笔记:计算机组成原理——第六章_第49张图片

1.补码加减法运算的公式

笔记:计算机组成原理——第六章_第50张图片

2.举例

笔记:计算机组成原理——第六章_第51张图片

  • 注意:把数字放入计算机中时,必须要考虑寄存器和存储单元的长度、机器数的字长

笔记:计算机组成原理——第六章_第52张图片

  • 求B的负数的补码:用B的补码,符号位取反,数值位取反末位加1

  • 练习一错误:正确值为20/16,超出了小数定点机最大范围1

  • 练习二错误:正确值为+138,超出了整数定点机的范围-128~127

3.溢出的判断

笔记:计算机组成原理——第六章_第53张图片

笔记:计算机组成原理——第六章_第54张图片

  • 模为4表示右移两位,补码表示应该左边补1

  • 结果的双符号位不同表溢出,10,…或01,…两种情况;其中第一个符号位为真正符号位,第二个符号位为数值运算溢出部分

  • 两位符号位相当于一位符号位增加一个储存数值位的进位

4.补码加减法的硬件配置

笔记:计算机组成原理——第六章_第55张图片

  • 加法器——为核心,完成两个补码的加法运算

  • A——ACC寄存器,保存被加数

  • X——寄存器,保存加数或被减数

  • GA、GS——加法标记GA为1,减法标记GS为1,用来控制求补运算

  • 求补控制逻辑——如果进行减法运算,x的补码转化为-x补码;只实现让x补码每位取反,末位加1其他部件实现

  • 关于全加器:一共有三个输入,两个输入加法相应位,一个输入进位;每位取反,在加法器和寄存器之间添加反向器;末尾加一,通过第一位的进位实现

三、乘法运算

1.分析笔算乘法

笔记:计算机组成原理——第六章_第56张图片

2.笔算乘法改进

笔记:计算机组成原理——第六章_第57张图片

  • 部分积的初始值为0
  • 累加结果右移一位得到新的部分积,再与乘数末位决定的被乘数相加,乘数也需不断右移
3.改进后的笔算乘法过程(竖式)

笔记:计算机组成原理——第六章_第58张图片

  • 部分积右移之后,多出来的位数放在乘数的存储器中

  • 最后还要右移一位得结果,结果应为不带符号位的数值部分,为0.10001111

  • 结果的符号位通过异或电路来获得

笔记:计算机组成原理——第六章_第59张图片

  • 需要n次加法和移位,n为参加运算的数据的数值部分

  • 3个寄存器:一个保存被乘数——x寄存器,一个保存乘积的高位——ACC寄存器(其与被乘数相加),一个保存乘数的剩余部分和部分积的低位——MQ寄存器

  • 2个移位功能:一个保存累加和的高位和低位的寄存器,一个乘数部分的乘商寄存器;被乘数寄存器不需要移位功能

  • 1个全加器:被乘数和部分积高位的相加的操作,全加器只需要n+1位,而不是2n+1位,因为加法操作只加高位部分

4.原码乘法

笔记:计算机组成原理——第六章_第60张图片

笔记:计算机组成原理——第六章_第61张图片

笔记:计算机组成原理——第六章_第62张图片

  • 原码乘法的数值部分运算采用绝对值的运算,因此进行逻辑右移

  • 此时在第n+1位的符号位的数值位1,是数值位运算的进位,也要右移到数值部分

  • 注意:最后加完被乘数之后,需要逻辑右移一位

笔记:计算机组成原理——第六章_第63张图片

  • 原码乘法结束标志:经过了n次加法(不一定,乘数末位为0可以不进行加法)和n次移位(一定)

笔记:计算机组成原理——第六章_第64张图片

  • A——寄存器ACC,有n+1位,此处的最高位不是符号位,是进位

  • x——寄存器x,保存被乘数,计算过程中保持不变

  • Q——乘商寄存器MQ,初始时保存乘数,一边计算一边移位,高位部分逐渐被累加和的低位部分占据,直到所有的乘数数值位部分被移除

  • 计数器C——用来记录移位次数,初始时数值部分位数n开始,每次减1直到0为止

  • 符号位s——两个数的符号位进行异或运算

  • GM——乘法标志

  • 移位和加控制——由乘数的末位控制,为1就累加一次然后右移一位,为0可以不做加法直接右移

四、除法运算

1.分析笔算除法

笔记:计算机组成原理——第六章_第65张图片

  • 被除数和除数比较,大于就商1,小于就商0

  • 商完被除数末位加0,除数右移一位,再比较

2.笔算除法和机器除法的比较

笔记:计算机组成原理——第六章_第66张图片

  • 笔算除法中除数右移的目的是比大小,因此也可将余数左移比较,减少所需的加法器数据长度
3.原码除法

笔记:计算机组成原理——第六章_第67张图片

  • 在小数定点机中,保存的数据均为小于1的小数形式,因此结果依然要为小数,被除数要小于除数;整数同理
  • 被除数如果等于0,不需要进行除法操作,直接判0操作
  • 除数如果等于0,会出现异常操作

笔记:计算机组成原理——第六章_第68张图片

笔记:计算机组成原理——第六章_第69张图片

  • 移位后的余数和除数绝对值比较,通过减法操作进行,相当于加上负y的补码l来进行计算

  • 进行减法操作比较后,若为负数则需要商0恢复余数,然后将余数逻辑左移,再和除数进行比较;若为正数,商1直接左移比较

  • 在小数定点机中原码只能表示小于1的数,若第一次上商为1就判为溢出

笔记:计算机组成原理——第六章_第70张图片

  • 余数左移一位,相当于乘2操作

笔记:计算机组成原理——第六章_第71张图片

  • 初始时,用被除数绝对值减除数绝对值(加负除数绝对值补码)
  • 看当前余数的正负,正数商1左移减除数绝对值(加上其负数补码),负数商0左移加除数绝对值

笔记:计算机组成原理——第六章_第72张图片
笔记:计算机组成原理——第六章_第73张图片

  • A——寄存器ACC,保存被除数和余数

  • x——寄存器x,保存除数

  • Q——乘商寄存器MQ,保存商,商的最低位控制加减交替

  • 移位和加控制——由商的末位来确定加除数还是其负数的补码,余数和商都要左移

  • 计数器C:移位次数n或加法次数n+1作为除法停止标志

  • GD——除法标志

  • S——符号位,进行异或运算

  • V——表示溢出

6.4 浮点四则运算

一、浮点加减运算

  • 浮点数运算,阶码和尾数的机器数都用补码表示
1.对阶

笔记:计算机组成原理——第六章_第74张图片

  • 如果左移,尾数高位丢失数据偏差大;如果右移,尾数低位丢失只有精度偏差

  • 小阶向大阶看齐,当阶数加1时,尾数要向右移一位

笔记:计算机组成原理——第六章_第75张图片

  • 求阶差:比较阶的大小用减法,相当于加上其负数补码

  • 对阶:阶码变为相同,尾数向右移相差的单位

2.尾数求和

笔记:计算机组成原理——第六章_第76张图片

3.规格化

笔记:计算机组成原理——第六章_第77张图片

笔记:计算机组成原理——第六章_第78张图片

笔记:计算机组成原理——第六章_第79张图片

  • 尾数符号位为00.或11.考虑左规,为01.或10.考虑右规

  • 左规:符号位为11时,左移去1不影响数值;符号位为00时,左移去0不影响数值

  • 右规:尾数为01.或10.时,01.中0是真正的符号位,1是数值位为两个正数相加的溢出

笔记:计算机组成原理——第六章_第80张图片

笔记:计算机组成原理——第六章_第81张图片

4.舍入
  • 数据的长度超过了计算机中所能存储数据的长度,要对低位数据进行处理,保持较好的精度

笔记:计算机组成原理——第六章_第82张图片

  • 计算机中存储机器数的形式:运算过程采用补码形式;阶符和尾符的符号位部分均取2位,更容易判断溢出

笔记:计算机组成原理——第六章_第83张图片

笔记:计算机组成原理——第六章_第84张图片

  • 对阶过程和尾数求和过程,如果出现了溢出,直接先舍去溢出位
  • 右规操作是对于尾数部分进行的
5.溢出判断

笔记:计算机组成原理——第六章_第85张图片

  • 可表示的数据是离散的,相邻两个点之间的数只能近似表示

  • 下溢:按照机器零处理;上溢:按照出错处理

  • 最大负数和最小整数的尾数要进行规格化形式

6.5 算术逻辑单元

一、ALU电路

笔记:计算机组成原理——第六章_第86张图片

  • 蓝色符号为ALU代表运算器,A和B代表参加运算的数据,F表示运算结果,K表示进行运算的类型
  • ALU为组合逻辑电路,没有记忆功能,AB输入数据消失F输出也会消失,因此A和B端要链接寄存器,F端也要链接寄存器来保存运算结结果
  • ALU 74181可以进行四位数的算术运算和逻辑运算;M和S为控制端

二、快速进位链

1.并行加法器

笔记:计算机组成原理——第六章_第87张图片

  • 三个输入:A和B是参与运算的数值,C为低位的进位
  • 两个输出:S为和的结果,C为向高位的进位
  • 由S的表达式看出,最影响和结果S的运算速度为进位C
2.串行进位链

笔记:计算机组成原理——第六章_第88张图片

  • 进位表达式的求解运用了德·摩根定律,转化为与非门
3.并行进位链

笔记:计算机组成原理——第六章_第89张图片

  • 进位表达式转化为与或非门
    笔记:计算机组成原理——第六章_第90张图片
    笔记:计算机组成原理——第六章_第91张图片
    笔记:计算机组成原理——第六章_第92张图片
    笔记:计算机组成原理——第六章_第93张图片
    笔记:计算机组成原理——第六章_第94张图片
    笔记:计算机组成原理——第六章_第95张图片
    笔记:计算机组成原理——第六章_第96张图片

你可能感兴趣的:(笔记:计算机组成原理,其他)