第三章 运算方法和运算器 3无符号阵列乘法器。原码、补码——位乘法的硬件逻辑实现需要在时钟下通过控制逻辑的控制执行相应农次的加法右移操作来实现速度较慢。为了提高运算速度可以井采用组合逻辑电路以专用硬件方式构建列正乘法器构建正列乘法器的基本思路是模仿二进制乘法的笔算方法。阵列乘法器结构标范画标重话程度高有利于布局布线适合四大规模战略实现且可以获得较高的运算速度与运算速度即取逻辑门和加法器的传输延迟。定点数乘法运算——补码阵列乘法器。原码和补码之间可以相互转换利用反码法或扫描法1、如果不考虑原码符号位则原码的数值为可看作是无符号数。如果将原码的符号位单独处理则原码乘法运算。可将被乘数原码数值位和乘数原码的数值位直接带入无符号阵列乘法器进行运算。得到结果为元符号乘积在其前面添加单独处理符号位可得到原码乘法结果。2、如果将补码符号位单独处理将补码数值位转换为原码的数值位就可以利用元符号阵列乘法器进行乘法运算。得到结果为元符号乘积将其换成补码的数值位后在其前面添加单独处理的符号位即可得到补码乘法的结果。定点数除法运算——原码除法运算恢复余数法。由于原码表示与元符号数非常类似仅比原符号数多一个符号因此进行原码除法运算时可将符号位与数值部分分开处理。高的符号由于被除数和除数各自的符号进行异或运算求得。高的数值部分由被除数和除数各自的数值部分即数值的绝对值相除求得。恢复余数的缺点1、运算时间不确定2、控制电路比较复杂。除法原码除法运算——不恢复余数法。最后一次运算上商时其余数小于0此时虽然所有上商位都已经得到了但负余数还需要加上除数y恢复成正数.2、上商位与进位位的值是相同的因此在硬件逻辑实现时可用加法器的进程输出作为上商的控制信号以及可控加减法电路的控制信号。补码除法运算不恢复余数法。运算过程中符号位与数值位一起运算。一、确定商值。1、由于补码除法中的被除数、除数和中间余数都是有符号的所以不能像源码那样直接判断是否“够减”。2、补码除法判断是否“够减”的依据是中间余数初始为被除数与除数之间的负号的异同以及相应作减法或加法后结果的符号。二、形成商符。商符是在求商过程中自然形成的。在定点小数纯小数的除法中被除数的绝对值必须小于除数的绝对值否则商会大于1而溢出。3、如何得新余数与原码除法不恢复余数法加减交替法是类似的。浮点运算——浮点加减法运算。1、对接 2、尾数运算 3、结果规格化 4、舍入处理 对阶原则小阶向大阶看齐尾数右移相应位数两个阶的差的绝对值移出位暂保留称为保留附加位保留附加位参与中间运算以提高运算精度尾数运算结束结果规格化在进行舍入。 最高数值为不是有效值因此不是规格化的尾数。左规尾数运算结果为11.1 bb...b或00.0 bb...b尾数每左移一位阶码减一直到尾数为规格化数为止还需判断阶码是否下溢。 右规尾数运算满足为10.bb...b或01.bb...b即尾数运算结果溢出尾数只需右移一位阶码加一。还原需判断阶码是否上溢若发生上溢符号位为0、1可认为符号为无穷。 在进行对阶时会用到算术右移而进行结果规格化时可能会用到算术右移会导致尾数末位几位因超出机器字长被丢掉而产生误差。所以机器可进行舍入处理。截判法直接去丢弃超出机器字长的尾数低位导致积累误差末位恒置1法将机器字长的尾数的最低恒置为1损失一位精度但累计误差较小0舍1入法需要丢弃的尾数低位中的最高位为1时将机器字长低的尾数的最低位加1。IEEE——754浮点加减法运算。1、在对阶和结果规格化过程中涉及到接码的加减运算时采用移码的加减运算规则。2、尾数运算采用原码运算规则隐藏位要参与尾数运算。3、隐藏位参与尾数的规格化。4、舍入处理就近舍入朝无穷方向舍入朝负方向舍入。截断处理直接丢弃多位朝零方向舍入。5、溢出判断向右规格化阶码全1规格化上溢。全0规格化下溢。浮点乘法运算规则浮点除法运算规则
【学习笔记】计算机组成原理
第三章 运算方法和运算器 3无符号阵列乘法器。原码、补码——位乘法的硬件逻辑实现需要在时钟下通过控制逻辑的控制执行相应农次的加法右移操作来实现速度较慢。为了提高运算速度可以井采用组合逻辑电路以专用硬件方式构建列正乘法器构建正列乘法器的基本思路是模仿二进制乘法的笔算方法。阵列乘法器结构标范画标重话程度高有利于布局布线适合四大规模战略实现且可以获得较高的运算速度与运算速度即取逻辑门和加法器的传输延迟。定点数乘法运算——补码阵列乘法器。原码和补码之间可以相互转换利用反码法或扫描法1、如果不考虑原码符号位则原码的数值为可看作是无符号数。如果将原码的符号位单独处理则原码乘法运算。可将被乘数原码数值位和乘数原码的数值位直接带入无符号阵列乘法器进行运算。得到结果为元符号乘积在其前面添加单独处理符号位可得到原码乘法结果。2、如果将补码符号位单独处理将补码数值位转换为原码的数值位就可以利用元符号阵列乘法器进行乘法运算。得到结果为元符号乘积将其换成补码的数值位后在其前面添加单独处理的符号位即可得到补码乘法的结果。定点数除法运算——原码除法运算恢复余数法。由于原码表示与元符号数非常类似仅比原符号数多一个符号因此进行原码除法运算时可将符号位与数值部分分开处理。高的符号由于被除数和除数各自的符号进行异或运算求得。高的数值部分由被除数和除数各自的数值部分即数值的绝对值相除求得。恢复余数的缺点1、运算时间不确定2、控制电路比较复杂。除法原码除法运算——不恢复余数法。最后一次运算上商时其余数小于0此时虽然所有上商位都已经得到了但负余数还需要加上除数y恢复成正数.2、上商位与进位位的值是相同的因此在硬件逻辑实现时可用加法器的进程输出作为上商的控制信号以及可控加减法电路的控制信号。补码除法运算不恢复余数法。运算过程中符号位与数值位一起运算。一、确定商值。1、由于补码除法中的被除数、除数和中间余数都是有符号的所以不能像源码那样直接判断是否“够减”。2、补码除法判断是否“够减”的依据是中间余数初始为被除数与除数之间的负号的异同以及相应作减法或加法后结果的符号。二、形成商符。商符是在求商过程中自然形成的。在定点小数纯小数的除法中被除数的绝对值必须小于除数的绝对值否则商会大于1而溢出。3、如何得新余数与原码除法不恢复余数法加减交替法是类似的。浮点运算——浮点加减法运算。1、对接 2、尾数运算 3、结果规格化 4、舍入处理 对阶原则小阶向大阶看齐尾数右移相应位数两个阶的差的绝对值移出位暂保留称为保留附加位保留附加位参与中间运算以提高运算精度尾数运算结束结果规格化在进行舍入。 最高数值为不是有效值因此不是规格化的尾数。左规尾数运算结果为11.1 bb...b或00.0 bb...b尾数每左移一位阶码减一直到尾数为规格化数为止还需判断阶码是否下溢。 右规尾数运算满足为10.bb...b或01.bb...b即尾数运算结果溢出尾数只需右移一位阶码加一。还原需判断阶码是否上溢若发生上溢符号位为0、1可认为符号为无穷。 在进行对阶时会用到算术右移而进行结果规格化时可能会用到算术右移会导致尾数末位几位因超出机器字长被丢掉而产生误差。所以机器可进行舍入处理。截判法直接去丢弃超出机器字长的尾数低位导致积累误差末位恒置1法将机器字长的尾数的最低恒置为1损失一位精度但累计误差较小0舍1入法需要丢弃的尾数低位中的最高位为1时将机器字长低的尾数的最低位加1。IEEE——754浮点加减法运算。1、在对阶和结果规格化过程中涉及到接码的加减运算时采用移码的加减运算规则。2、尾数运算采用原码运算规则隐藏位要参与尾数运算。3、隐藏位参与尾数的规格化。4、舍入处理就近舍入朝无穷方向舍入朝负方向舍入。截断处理直接丢弃多位朝零方向舍入。5、溢出判断向右规格化阶码全1规格化上溢。全0规格化下溢。浮点乘法运算规则浮点除法运算规则