320 likes | 467 Views
运算器与运算方法. My Email: liuxd@buaa.edu.cn or xudliu@263.net. 本讲内容. 加减法运算及其实现 乘法运算及其实现(重点) 除法运算 浮点数运算 十进制数运算. 加减法运算及其实现 乘法运算及其实现(重点) 除法运算 浮点数运算 十进制数运算. 若. 则. 1.1 加减法运算机器实现. 原则(以定点整数为例说明). [ X] 补 与[- X] 补. S i. C i+1. . C i. A i. B i. 1.1 加减法运算机器实现. 加法单元(全加器). 1.1 加减法运算机器实现.
E N D
运算器与运算方法 My Email:liuxd@buaa.edu.cn or xudliu@263.net
本讲内容 • 加减法运算及其实现 • 乘法运算及其实现(重点) • 除法运算 • 浮点数运算 • 十进制数运算
加减法运算及其实现 • 乘法运算及其实现(重点) • 除法运算 • 浮点数运算 • 十进制数运算
若 则 1.1 加减法运算机器实现 • 原则(以定点整数为例说明) • [X]补与[-X]补
Si Ci+1 Ci Ai Bi 1.1 加减法运算机器实现 • 加法单元(全加器)
1.1 加减法运算机器实现 • 并行加法器--串行进位 • 串行进位的特点: • 进位串行传递 • 进位延时较长
1.1 加减法运算机器实现 • 并行加法器--并行进位(或先行进位) • 并行进位的特点 • 同时产生进位 • 加法延时缩短 • 实现相对复杂
1.1 加减法运算机器实现 • 并行进位链
1.1 加减法运算机器实现 • 并行进位加法器
1.1 加减法运算机器实现 • 分组并行进位加法器(组内并行,组间传递)
1.1 加减法运算机器实现 • 分组并行进位加法器(组内并行,组间并行)
加减法运算及其实现 • 乘法运算及其实现(重点) • 除法运算 • 浮点数运算 • 十进制数运算
2.1 无符号数乘法及其实现 • 笔算分析 • 1101 × 1011 • 机器算法改进 • 通过多次加法实现乘法 • 每次加法均在上一次加法的结果(部分积)的基础上进行 • 每完成一次加法,结果右移一位 • 举例
2.1 无符号数乘法及其实现 • 算法推导(以定点整数为例)
2.1 无符号数乘法及其实现 变成分步算式:
2.1 无符号数乘法及其实现 • 逻辑实现 • 逻辑部件 • 加法器Adder • 被乘数寄存器M • 乘数寄存器Q(乘积低位部分) • 累加器A(部分积,乘积高位部分) • 控制逻辑 • 数据通路 • Adder M • Adder A • A Adder • A Shr A, Q Shr Q, Qn-1 A0
2.1 无符号数乘法及其实现 • 逻辑实现结构图
2.2 补码乘法及其实现 • 补码乘法规则 • 乘积的补码=被乘数的补码 ×乘数的真值 • 问题与约束 • 参加运算的操作数本身是补码形式 • 机器中不能直接表示真值 • 必须寻求一种直接利用操作数补码进行运算来实现补码乘法的算法 • 结果要求直接是补码形式
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 补码表示与真值的关系 • 比较法算法推导(以定点整数为例)
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) 变成分步算式:
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 算法规则 • 比较乘数相邻的两位:Qi 和 Qi-1 • Qi Qi-1=00 或 11,上一次部分积直接右移一位形成新的部分积 • Qi Qi-1=01,上一次部分积加上被乘数补码后右移一位形成新的部分积 • Qi Qi-1=10,上一次部分积减去被乘数补码后右移一位形成新的部分积 • 重复 n 次。 • 对于 n 位数的一位比较法,需要执行 n 次加法运算和 n 次移位运算。 • 举例
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 流程图
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 逻辑实现 • 采用两位符号位(为什么?) • 加法器ADDER(n+1位) • 累加器A(n+1位),保存部分积,最后保存乘积高位部分 • 被乘数寄存器M • 乘数寄存器Q,最后保存结果低位部分 • 计数器Counter,对运算次数计算 • 触发器,控制逻辑等
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 数据通路及微操作控制信号 • P0:Shr A, Shr Q, Qn-1 A0 • P1:ADD A • P2:ADD M • P3:ADD NOT M • P4:Counter Counter - 1 • P5:A ADD
2.2 补码乘法及其实现(一位比较法,又称一位Booth法) • 实现结构图
1位比较法 2位比较法 2.2 补码乘法及其实现(二位比较法) • 二位比较法 • 在一位比较法的基础上,对算法进行改进,每次比较乘数相邻的 3 位,根据不同的组合,对部分积进行不同的加减运算,然后对结果右移 2 位,形成新的部分积。 • 算法推导如下:
2.2 补码乘法及其实现(二位比较法) • 算法规则 • 比较乘数相邻的3 位:Qi+1、Qi 和 Qi-1 • Qi+1 Qi Qi-1=000 或 111,A 1/4 A • Qi+1 Qi Qi-1=010 或 100,A 1/4 (A + M) • Qi+1 Qi Qi-1=011 或 101,A 1/4 (A - M) • Qi+1 Qi Qi-1=110,A 1/4 (A + 2M) • Qi+1 Qi Qi-1=001,A 1/4 (A - 2M) • 重复 n/2 次(n为偶数)或(n+1)/2次(n为奇数)。 • n为奇数时,最后一次采用1位比较法算法. • 采用3位符号位 (Why?)
2.3 阵列乘法器 • 基本思路 • 利用若干全加器,完全由硬件直接计算乘法结果 • 以 4 位无符号数为例
2.3 阵列乘法器 • 实现电路
2.3 阵列乘法器 • 总结: • 对于n位的阵列乘法,需全加器n(n-1)个 • 最长路径2(n-1)个全加器延时 • 最后的串性进位可采用先行进位加法器
加减法运算及其实现 • 乘法运算及其实现(重点) • 除法运算 • 浮点数运算 • 十进制数运算
数的机器编码及其表示 • 字符的表示 • 指令系统 • 指令系统举例 • 指令系统的设计