计算机组成原理学习(哈工大视频)第六章 计算机的运算方法

计算机中数的表示:在计算机中,能够被硬件直接识别和处理
计算机的运算方法
运算器的设计
6.1无符号数和有符号数
6.1.1无符号数
寄存器的位数,反应了无符号数的表示范围:8位的寄存器,表示范围为0——255,16位的寄存器,表示的范围为0——65535
6.1.2有符号数(包含数值部分和符号部分)
机器数和真值
保存在计算机中的数为机器数,真值是平常用的带符号的数值
小数点的位置是以约定的方式给出,没有专门的硬件来表示小数点的位置,设计机器是,默认的将小数点放到符号位的后面。
符号位同样以约定的方式给出,这里默认为符号位在最高位,既最左面的位。
当需要表示的数为整数时,表示的数的小数点的位置位于最右边,既数值的后边,以约定的方式给出。
以上两种都为定点数的表示。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第1张图片
原码表示法:
定义:
整数:最高位为符号位,正数为0,负数为1,这种方法使 0 有两种表示方法,一种最高位为0,其余为0,另一种最高位为1,其余为0.相当于带符号的绝对值表示。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第2张图片
小数:从真值到原码,如果是整数,加一个符号位,正数加 0,负数加 1,后面的数值部分照抄,就得到原码的机器表示。如果是小数,则小数点前面的一位就用于符号的表示,正数用 0,负数用 1,后面的数值部分照抄,就得到到了机器表示。要表示一个数,需要给出位数,以及位数是否包含符号位。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第3张图片
原码的特点:简单、直观,但是使用原码做加法时,会出现如下问题:使用原码进行加法过程,可能做加法,也可能做减法。能不能对加法做归一化处理,使其只做加法运算,既找到一个与负数等价的正数,来代替这个负数,使减法转化成加法
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第4张图片
补码表示法
补的概念:在以某个数为模(比如12)的记录数据的过程,将一个数变化成另一个数,既可以向前,也可以向后(比如从 6 变换到 3,则可以减去 3,也可以加上 9,称+9 是 -3 的以 12 为模的补数)。既一个负数加上“模”既得到该负数的补数,一个正数和一个负数互为补数时,他们的绝对值之和为模数。比如存放一个正数,并且规定存放正数的寄存器的位数为 4位,则计数器(模16),每当这个数超过计数器的模,则丢掉模(16)。
补码的定义:
整数:n 为整数的位数,不包括符号位
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第5张图片
小数:机器数有位数约定,受到计算机硬件资源的限制。这里小数使用了模 2,故小数点前面有1位,如果模4,小数点前面有两位,模 8的话,小数点前面有 3位……
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第6张图片
求补码的快捷方式: 若为正数,则加符号位 0,其余不变。若为符号,则加符号位 1,再将数值位取反,再加上1,既的负数的补码。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第7张图片
同样,由补码转换成原码时,当真值为负时,原码可用补码除符号位不变,每位取反,末位加 1求得。补码的最大的好处在于将减法转换成加法,对运算进行统一。补码形式下,0 具有唯一的表示方法,负值的部分,可以把绝对值最大的负数使用原码中的 负0 的表示方法,故相对于原码,可以多一个负的数值的表示。

反码表示法:相当于在补码表示法中的最后一步,加 1 的步骤,不再需要;同样受到计算机字长的限制,受到计算机资源的限制。
定义:
整数:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第8张图片
小数:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第9张图片
三种机器数小结:最高位为符号位,书写上用“,”(整数)或“.”(小数)将数字部分和符号位隔开;对于正数,原码=补码=反码;对于负数,符号位为1,其数值部分,原码除符号位外每一位取反末位加 1——>补码,原码除符号位外每位取反——>反码;
若机器数字长为 8 位(其中 1 位为符号位),对于整数,当其代表无符号数、原码、补码、反码时,对应的真值的范围:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第10张图片
若已知[y]补,求[-y]补:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第11张图片
移码表示法:补码表示很难直接判断其真值的大小;若计算机中的字长为 n 位,则移码表示不论要表示的数是正数或者负数,不做区别,直接将其加上 2 的 n 次方,作为移码表示。移码相当于将数值在数轴上平移了 2 的n 次方,这样获得相同的半轴上的数据,故称为移码;移码中符号位的 1 表示正数, 0 表示负数;移码只对整数情况作了定义,没有对小数情况做定义。
移码的定义:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第12张图片
移码和补码的比较:移码和补码只相差一个符号位,比如:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第13张图片
真值、补码、移码的对照表:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第14张图片
移码的特点:正负 0 的移码表示具有唯一性;最小的真值的移码表示全为 0;用移码表示浮点数的阶码;能方便的判断浮点数的阶码的大小
6.2数的定点表示和浮点表示
小数点按约定的方式标出
6.2.1 定点表示:小数点在数值部分的前面
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第15张图片
根据定点计算机约定的小数点的位置,将其分为两类:小数定点机,整数定点机
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第16张图片
6.2.2浮点表示
浮点数的表示形式:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第17张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第18张图片
如上,Sf(代表浮点数的符号),n(其位数反应浮点数的精度),m(其位数反应浮点数的表示范围),jf 和 m(共同表示小数点的实际位置)
浮点数的表示范围:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第19张图片
设机器数字长为24位,欲表示±3万的十进制数,试问在保证数的最大精度的前提下,除阶符,数符各站一位,阶码和尾数各取几位?
要满足最大的精度要求,则尾数应该尽可能的大,故: 计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第20张图片
浮点数的规格化形式:尽可能的保证数据的精度,让有效的位数尽可能多
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第21张图片
浮点数的规格化:对尾数的数据进行左移或者右移,使其最高位满足规格化形式
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第22张图片
基数 r 值越大,可表示的浮点数的范围越大,基数 r 值越大,浮点数的精度越低
例如:m=4,n=10,r=2,尾数规格换后的浮点数表示范围:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第23张图片
6.2.3举例
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第24张图片
注意在求该数的二进制表示时,19=16+2+1=10011,除以128,相当于右移7位。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第25张图片
注意58=32+16+8+2=111010
机器零:当浮点数尾数为 0时,不论其阶码为何值,按机器零处理;如果浮点数阶码等于或者小于它所表示的最小数时,不论尾数为何值,按照机器零处理,如m=4,n=10 时,当阶码和尾数都用补码表示时,机器零为:
在这里插入图片描述
当阶码用移码,尾数用补码表示时,有利于机器中的“判 0”电路的实现,机器零为:
在这里插入图片描述
6.2.4IEEE 754 标准
在这里插入图片描述
尾数为规格化表示:若使用二进制表示,基值为2,意味着不论原码,反码,补码,尾数的第一位数值的真值一定是 1,则非“0” 的有效位最高位为“1” (隐含),相当于增加了尾数的位数,增加了精度。
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第26张图片
6.3定点运算
6.3.1移位运算
移位运算的数学意义:移位的机器用语,相当于值相对于小数点进行移位(小数点不动),左移,绝对值扩大,右移,绝对值缩小 ;注意采用的数制,对应移位的扩大或缩小的倍数;在计算机中,移位和加减配合,能够实现乘除 运算
算术移位规则:
符号位不能变:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第27张图片
对于机器数字长为 8 位(含一位符号位),则对于A=+26=16+8+2,有:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第28张图片
对于机器数字长我 8 位(含一位符号位),则对于A=-26=-(16+8+2),有:
原码:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第29张图片
补码:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第30张图片
反码:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第31张图片
算术移位的硬件实现:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第32张图片
算术移位与逻辑移位的区别:
算术移位(有符号数的移位),逻辑移位(无符号数的移位)
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第33张图片
例如:01010011,逻辑左移的结果为:10100110,算术左移的结果为:00100110(此时高位1 移丢)
例如:10110010,逻辑右移的结果为:01011001,算术右移的结果为:11011001

6.3.2加减法运算
补码加减法运算的公式:连同符号位一起相加,符号位产生的进位自然丢掉
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第34张图片
举例
机器数是存放在计算机中的数,故一定要考虑字长,一定要考虑寄存器的长度,能够存储多长的数据,其中符号位是几位
数值位是几位;同时要考虑补码运算过程中,没有发生溢出,既没有超出机器数能够表示的范围。
若机器数字长是8 位(含一位的符号位),且A=15=8+4+2+1=0001111,B=24=16+8=0011000,用补码求A-B:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第35张图片
溢出的判断:
一位符号位判溢出:参加操作的两个数(减法时,即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出(故两个操作数的符号不同时,不会发生溢出)。硬件实现:最高有效位的进位和符号位的进位的异或结果等于 1 ,则溢出。
两位符号位判溢出:同样范围的数,相加,结果不会超过该范围的两倍,故使用两个符号位应足够判断溢出
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第36张图片
补码加减法的硬件配置:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第37张图片
6.3.3乘法运算
分析笔算乘法:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第38张图片
笔算乘法改进:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第39张图片
改进后的笔算乘法过程:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第40张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第41张图片
原码乘法:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第42张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第43张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第44张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第45张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第46张图片
6.3.4除法运算
分析笔算除法:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第47张图片
笔算除法和机器除法的比较:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第48张图片
原码除法:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第49张图片
恢复余数法:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第50张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第51张图片
不恢复余数法(加减交替法):是对恢复余数法的改进
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第52张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第53张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第54张图片
原码加减交替除法硬件配置:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第55张图片
6.4浮点四则运算
浮点数的加减运算
在这里插入图片描述
对阶:
求阶差(用两个阶码做减法操作,在这里使用补码实现):对阶过程,尾数向左移,可能造成高位的 1 的丢失,不可取;尾数向右移,可能造成 1 的丢失,影响精度,相对可取;故对阶的过程应该是小阶向大阶对齐
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第56张图片
例如:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第57张图片
尾数求和
规格化(尽可能的利用计算机的资源):若计算机以 2 为基值,则规格化的定义为:
在这里插入图片描述
规格化数的判断:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第58张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第59张图片
规格化方式:左规(尾数左移一位,阶码减 1,直到数符和第一数位不同为止),比如:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第60张图片
规格化方式:右规(尾数右移一位,阶码加 1,直到数符和第一数位不同为止;尾数的绝对值大于 1 时(既尾数溢出),需要右规,既尾数出现01.XXX……X或者10.XXX……X时);
举例:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第61张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第62张图片
舍入:数据的长度超过了计算机中存储这个数据的物理器件能够保存的数据的长度,这样,数据的低位进行处理,进而使数据保持合适的精度;在对阶和右规过程中,可能出现尾数末位丢失引起误差,需要考虑舍入;
常用舍入方法: 0 舍 1 入法,恒置“1”法
阶符和数符都使用 2 位,便于判别是否溢出
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第63张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第64张图片
溢出判断
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第65张图片
浮点的乘除运算
6.5算术逻辑单元
6.5.1ALU电路
Ai,Bi表示输入,Ki表示取不同的运算,Fi表示输出,ALU不具有记录功能,故输入输出和寄存器相联;
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第66张图片
6.5.2快速进位链
并行加法器:两个n+1位的数,可以利用这个加法器以并行的方式完成加法的运算;A,B输入两个数的对应位的值,C输入从低位出来的值,C输出当前高位的进位值,S输出当前的位的相加的值;由于A,B的值是已知的,C的值是低位的进位,故决定输出的S的快慢,既ALU的快慢的决定因素是进位的快慢;
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第67张图片
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第68张图片
串行进位链
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第69张图片
并行进位链:n 位加法器的进位同时产生,以 4 位加法器为例:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第70张图片
单重分组跳跃进位链:n 位全加器分为若干小组,小组中的进位同时产生,小组和小组之间采用串行进位,以 n =16为例: 计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第71张图片
双重分组跳跃进位链:n 位全加器分为若干大组,大组中又包含若干小组;每个大组中小组的最高位进位同时产生;大组和大组之间采用串行进位 ;以 n=32为例:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第72张图片
双重分组跳跃进位链,大组进位分析:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第73张图片

双重分组跳跃进位链的大组进位线路:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第74张图片
双重分组跳跃进位链的小组进位 线路:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第75张图片
n=16双重分组跳跃进位链:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第76张图片
n=32 双重分组跳跃进位链:
计算机组成原理学习(哈工大视频)第六章 计算机的运算方法_第77张图片

你可能感兴趣的:(计算机组成原理(哈工大视频))