第 3 章数值的机器运算
3.1基本内容摘要
1、定点数的加、减法运算和加、减法电路的实现
◆定点数的加减运算
补码的加法公式、补码的减法公式;
◆补码的溢出判断和检测方法
溢出的产生、符号比较法、双进位法、双符号位法;
◆从半加器到算术逻辑部件ALU
半加器、全加器、并行加法器、加减法部件ASU、 BCD码(十进制)加法器、算术逻辑部件 ALU;
2、定点数的乘、除法运算和乘、除法电路的实现
◆定点数的乘法运算和乘法电路的实现
原码一位乘法、原码一位乘法运算器、补码原码一位乘法、补码原码一位乘法运算器;
◆定点数的除法运算和除法电路的实现
原码除法、原码加减交替法除法运算器、补码除法;
3、逻辑运算
◆“与”、“或”和“非”运算
逻辑与、逻辑或、逻辑非
◆“异或”运算
4、定点运算器的基本结构与工作原理
◆移位电路
◆定点运算器的主要组成
5、浮点数运算和浮点数运算器的实现
◆ 二进制数的浮点表示法
◆ 二进制数的浮点运算
浮点数的加减法运算、浮点数的乘除法运算
◆ 浮点运算器的基本结构
浮点加减运算器硬件结构及其工作原理
3. 2知识点
一、逻辑运算
逻辑与:又称为“逻辑乘”,其逻辑表达式为:
F=A × B=A·B=A ∧ B
逻辑或:又称“逻辑加”,其逻辑表达式为:
F=A+B=A ∨ B
逻辑非:又称为“逻辑反”,其逻辑表达式为:
B = A
异或:又称为“按位加”,其逻辑表达式:
F=A ⊕ B=A ∨B
二、定点数的加、减法运算和加、减法电路的实现
1、补码加减法
补码加法公式:[X+Y] 补=[X] 补+[Y] 补
补码减法公式:[X-Y]补=[X] 补-[Y] 补=[X]补+[-Y] 补
当 X 、Y 、X+Y 均在一定字长补码所表示的数值范围内,公式成立;
补码运算加减运算中,符号位可一起参加运算,不考虑符号位和数值位的区别;
在补码减法运算中,有: [-y ]补 =- [y ]补, [-y]补= [ [y ]补 ]求补
求补运算指对[ y]补包括符号位“求反且最末位加1”
2、溢出及其检测方法
定点数的运算中出现溢出,其运算结果不能表示正确结果,但可以通过一定方法修正。
加减运算中溢出的判别方法有:
(1)符号比较法
溢出判断逻辑表达式:
V = X s Y s (X + Y) s+ X s Y s (X + Y) s+ X s Y s(X - Y) s+ X s Y s(X - Y) s
(2)双进位法
溢出判断逻辑表达式:
V = C in⊕ C out
当 C out C in=0 1,结果正溢;当 C out C in=1 0结果负溢
(3)双符号位法
溢出判断逻辑表达式:
V=S S1⊕ S S2
当 S s1S s2=01结果正溢(或上溢);当S s1S s2=10结果负溢(或下溢);
在补码运算中,最高位(符号位)产生进位并不表示溢出,该进位虽然丢弃,但运
算结果仍然正确。
3、定点加减运算器的结构
(1)半加器:只是对两个输入数据位进行加法的电路,输出一个结果位和一个向高位的进位,不考虑低位的进位。半加器采用一个异或门和一个与门实现。
(2)全加器:两个输入数据位和低位进位输入进行加法运算,输出一个结果位和一个向高
位的进位。全加器采用 2 个异或门、 2 个与门和 1 个或门实现。
( 3)串行进位的并行加法器(行波进位加法器)
n 个全加器串接构成一个n 位并行加法器,即将各位向高位的进位串联起来,低位的进位
输出作为高一位加法器的进位输入,最低位的进位输入端置0。
( 4)先行进位的并行加法器
◆ 先行进位的并行加法器的进位信号
将全加器的进位表达式C i = X i Y i +(X i⊕ Y i)C i-1中
X i Y i定义为“进位生成函数”G i,( Xi ⊕Yi )定义为“进位传送函数”Pi ,
n级并行加法器中各级的进位信号表达式为:
C1=G1 +P1C 0
C2 = G 2+P2G1+P2P1C 0
┊┊
C n = G n+P n G n-1+P n P n-1G n-2++ P n P n-1P2G1 + P n P n-1P2P1C 0
◆先行进位电路CLA 和先行进位CLA加法器
( 5)加减法部件ASU(行波进位的补码加/ 减法器)
( 6)算术逻辑部件ALU
1位 ALU电路原理
4 位 ALU逻辑部件74181 功能及其应用
( 7) BCD码(十进制)加法器
BCD 码加法原理:被加数的 4 位二进制数和加数的 4 位二进制数相加时>1001 则对应4位数要加0110 进行修正;
BCD码减法原理:减数的 4 位二进制数减去被减数的 4 位二进制数时有借位,则对应4位数要减 110 进行修正;
BCD码加法器:加法器和修正电路组成
三、定点数的乘、除法运算和乘、除法电路的实现
1、原码一位乘法
◆ 原码乘法的算法:
乘积 [Z]
原=[X]
原
×[Y]
原
=(X⊕Y)+(O.X X ﹍﹍ X X)× (O.Y Y ﹍﹍ Y Y )SS 1 2n-1 n 1 2n-1 n
◆ 原码一位乘法的计算机实现
步骤:
①取被乘数X 和乘数 Y 的绝对值
| X | = 0. X 1X 2·X n-1X n ,|Y|= 0. Y1Y2·Y n-1Y n
N 位部分积的初值为全“0”;
②以乘数 Y 的最低位 Y n作为判断位,若Y n = 1 ,原部分积之和+被乘数得新部分积之和;
Yn = 0 ,原部分积就是新部分积之和;
③新部分积之和同乘数|Y |一起右移一位;
④依次检查Yn-1 、 Yn-2··Y1 ,重复上二步操作,最终得乘积Z = X×Y的绝对值;
符号位Zs = Xs + Ys 和乘积 Z 结合得 ZsZ1Z2··Z2n-1Z2n 为 [X ×Y] 原
◆ 原码一位乘法运算器结构
2、补码一位乘法
◆ 补码一位乘法的表达式为:
[Z] 补 = [X × Y] 补= [X] 补× [0.Y 1Y 2·Y n]+ [- X] 补× Y s
◆补码一位乘法的Booth 算法
运算步骤:
①参加运算被乘数采用变形补码、乘数釆用单符号位补码表示,符号位参加运算;
②乘数最低位 Yn 后加一位附加位Yn+1 ,初值为 0;
③求得每次部分积后必须与乘数一起右移一位,由乘数的最低二位Yn+1Yn 的值决定下一
次执行的操作——累加与右移
Yn Yn+1 = 01原部分积+[X] 补,并右移一位;
Yn Yn+1 = 10原部分积+ [-X] 补,并右移一位;
Yn Yn+1 = 00和 Yn Yn+1 = 11原部分积+0,并右移一位;
④ 操作次数,累加n+ 1 次,移位 n 次(最后一次不移位);
◆ 补码一位乘法运算器结构
3、原码一位除法
方法是先将符号位与数值位分开,对数值位部分进行除法运算得到的结果为商的数值部分,
除数和被除数的符号位异或得到的是商的符号位,再加上商的数值部分运形成商的原码,余数应
和被除数同符号
◆ 恢复余数的除法:先作被除数和除数的减法,判别余数:
如果余数为正,商上为1;
如果余数为负,商上为 0,由于已作了相减运算,需加上除数恢与那部分余数;
◆ 加减交替法的除法:先作被除数和除数的减法,判别余数:
余数为正,商上1,余数左移一位减除数;
余数为负,商上0,余数左移一位加除数。若最后一次余数为负,商上0 并加︱Y︱。
◆ 原码加减交替法的除法运算器
4、补码一位除法
补码加减交替法的规则表为:
[X] 补与[Y] 补第一次操作[r i ] 补与 [Y] 补上商求新余数 [r i+1] 补的操作
①同号
1[r i+1] 补=2[r i ]补 -[Y] 补
(够减)
同号[X] 补 -[Y] 补
②异号0[r i+1] 补=2[r i ]补 +[Y] 补
(不够减)
①同号1[r i+1] 补=2[r i ]补 -[Y] 补
(不够减)
异号[X] 补 +[Y] 补
②异号0[r i+1] 补=2[r i ]补 +[Y] 补
(够减)
四、定点运算器的基本结构与工作原理
1、移位电路的工作原理
2、定点运算器的主要组成及其原理
五、浮点数运算和浮点数运算器的实现
1.浮点数的加减法运算:
浮点数加减法运算的步骤:
(1)对阶:将原阶码小的数的尾数右移,使其阶码等于大数的阶码;
(2)尾数运算:两个尾数进行加减运算,可任意采用一种方法;
(3)结果规格化:对不符合规格化要求的结果进行规格化处理:左规或右规;
( 4)舍入处理:对运算时多保留的数据位进行舍入处理,可采用截去法、0舍 1入法、恒置 1
法;
( 5)溢出处理:检查阶码是否溢出,阶码下溢则置运算结果为浮点数形式的“机器零”;阶码上
溢,置溢出标志,由 CPU 的异常处理机制进行处理。
2. 浮点数的乘除法运算
浮点数加减法运算的步骤:
( 1)阶码运算:乘法时,阶码做加法;除法时阶码做减法,
若阶码以补码表示,阶码 [E xy]补 =[E x +E y ]补 =[E x]补 +[E y]补
阶码 [E x/y]补 =[E x -E y]补 = [E x]补 -[E y]补
若阶码以移码表示,阶码 [E xy]移 = [Ex + Ey] 移 = [Ex] 移 + [Ey] 补
阶码 [E x/y]移=[E x -E y] 移 = [Ex] 移 + [- Ey] 补
( 2)尾数乘除法运算:
乘法时,先检测相乘两尾数中是否有“0”,若有一个为“0”,乘积必为“0”,若均不为“0”,可进行乘法运算;
除法时,检测被除数是否为“0”若为,“0”则商必为,“0”再检测除数是否为;“0,”若为
“ 0,”则商必为“无穷大”,另作处理;除数和被除数都不为“ 0,”可进行除法运算;
可以采用定点小数的任一种乘、除法运算来完成;
(3)规格化:将尾数运算结果规格化处理;
(4)舍入
(5)溢出处理
3、浮点运算器的基本结构
(1)浮点数加减法运算操作流程
(2)浮点数加减运算器的结构
六、主要的术语及概念:
求补、行波进位、先行进位、半加、全加、对阶、左规、右规、舍入、变形补码;