lec08_功能部件

上传人:ji****en 文档编号:107678985 上传时间:2019-10-20 格式:PDF 页数:38 大小:588.77KB
返回 下载 相关 举报
lec08_功能部件_第1页
第1页 / 共38页
lec08_功能部件_第2页
第2页 / 共38页
lec08_功能部件_第3页
第3页 / 共38页
lec08_功能部件_第4页
第4页 / 共38页
lec08_功能部件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《lec08_功能部件》由会员分享,可在线阅读,更多相关《lec08_功能部件(38页珍藏版)》请在金锄头文库上搜索。

1、1 高性能计算机系统结构 胡伟武胡伟武 2 功能部件 定点补码加法器设计定点补码加法器设计 龙芯龙芯1号号ALU设计设计 定点补码乘法器的设计定点补码乘法器的设计 3 定点补码加法器设计 4 先行进位加法器 一位全加器一位全加器 三个输入三个输入: A, B, Cin 两个输出两个输出: S, Cout ABCinSCout 00000 00110 01010 01101 10010 10101 11001 11111 S= A*B*Cin+A*B*Cin+A*B*Cin+A*B*Cin AA 00 01 11 10 C00010 C10111 BBB Cout= A*B+A*Cin+B*Ci

2、n AA 00 01 11 10 C00101 C11010 BBB 5 A B Cin S Cout A B Cout Cin S 一位全加器 6 以以16位加法器为例位加法器为例 进位从低位到高位传送进位从低位到高位传送, 形成形成c16需要需要32级门延迟级门延迟 延迟随位数增长线性增长延迟随位数增长线性增长 A B Cout Cin S A B Cout Cin S A B Cout Cin S A B Cout Cin S . a15 b15 a14 b14 a1 b1 a0 b0 c0 s15 s14 s1 s0 c16 c15 c2 c1 串行进位加法器 7 ci+1 = ai*

3、bi+ai*ci+bi*ci = ai*bi+(ai+bi)*ci = gi+pi*ci gi=ai*bigi=ai*bi称为进位生成因子称为进位生成因子, , 只要只要gigi为为1, 1, 就有进位就有进位 pi=ai+bipi=ai+bi称为进位传递因子称为进位传递因子, , 只要只要pipi为为1, 1, 就有把低位的进位就有把低位的进位 向前传递向前传递 四位进位传递为例四位进位传递为例 c1 = g0+(p0*c0) c2 = g1+(p1*g0)+(p1*p0*c0) c3 = g2+(p2*g1)+(p2*p1*g0)+(p2*p1*p0*c0) c4 = g3+(p3*g2)

4、+(p3*p2*g1)+(p3*p2*p1*g0)+(p3*p2*p1*p0*c0) 只要低位有一个进位生成只要低位有一个进位生成, , 而且被传递而且被传递, , 则进位输出为则进位输出为1 1 进位的传递 8 c3 g3 g2 g1 g0 c0 p3-0 c4 c2 c1 p3-0 g3-0 c4 c0 c3-0 4位并行进位逻辑 9 注意输入为注意输入为pi, gi, 输出为输出为ci 每次并行产生每次并行产生4位进位位进位, 从从pi, gi产生产生c16只要只要4级传递级传递, 8级级 门延迟(产生运算结果还需要一个异或)门延迟(产生运算结果还需要一个异或). 原来从原来从ai, b

5、i产产 生生c16需要需要16级传递级传递, 32级门延迟级门延迟. 分块分块, 块内并行块内并行, 块间串行块间串行 块内并行块内并行, 块间并行块间并行? p15-12 g15-12 p11-8 g11-8 p7-4 g7-4 p3-0 g3-0 c0 p3-0 g3-0 c4 c0 c3-0 c15-12 c11-8 c7-4 c3-0 p3-0 g3-0 c4 c0 c3-0 p3-0 g3-0 c4 c0 c3-0 p3-0 g3-0 c4 c0 c3-0 c16 c12 c8 c4 以16位加法器为例 10 老办法老办法: 产生每块的进位传递因子和进位产生因子产生每块的进位传递因子

6、和进位产生因子 进位传递因子进位传递因子: 每一位的传递因子都为每一位的传递因子都为1时才能传递时才能传递 P0 = p0*p1*p2*p3 进位产生因子进位产生因子: 块内产生进位块内产生进位, 不考虑进位输入不考虑进位输入 G0 = g3+(p3*g2)+(p3*p2*g1)+(p3*p2*p1*g0) 块内并行, 块间并行 c3 g3 g2 g1 g0 c0 p3-0 P G c2 c1 进位生成逻辑 11 进位生成与传递逻辑 c3 g3 g2 g1 g0 c0 p3-0 P G c2 c1 进位生成逻辑 p3-0 g3-0 c0 c3-0 P G 12 从从pi, gi产生产生c16需

7、要需要4级门延迟级门延迟, 产生产生c15-0需要需要6级门延迟级门延迟 延迟随尾数增长以延迟随尾数增长以log的速度增长的速度增长 32位或位或64位,位, 可以用可以用3层结构层结构 p15-12 g15-12 p11-8 g11-8 p7-4 g7-4 p3-0 g3-0 c0 c15-12 c11-8 c7-4 c3-0 c12 c8 c4 p3-0 g3-0 c0 c3-0 P G c0 P G c0 P G c0 P G p3 g3 c3 p2 g2 c2 p1 g1 c1 p3-0 g3-0 p3-0 g3-0 p3-0 g3-0 c3-0 c3-0 c3-0 c0 块间并行加法

8、器 13 用加法器做减法 A补 补- B补补 = A-B补补= A补补 + -B补补 -B补 补 的计算 的计算: B补 补 “取反加 取反加1” 只要在只要在B的输入端对的输入端对B进行取反并置进位为进行取反并置进位为1. ai bi SUB gi pi c0 14 溢出判断 加法加法: A和和B的符号位相同的符号位相同, 但结果的符号位与但结果的符号位与A和和B的符号的符号 位不同位不同, 即正数相加得负或负数相加得正即正数相加得负或负数相加得正 ov=s31*a31*b31+s31*a31*b31 减法减法: 正数减负数结果为负数或负数减正数结果为正数正数减负数结果为负数或负数减正数结果

9、为正数 ov=s31*a31*b31+s31*a31*b31 因此因此, 运算器溢出条件为运算器溢出条件为 ov=ADD*(s31*a31*b31+s31*a31*b31)+ SUB*(s31*a31*b31+s31*a31*b31) 例例: 1001+0101(-7+5), 0011+0100(3+4) 0101+0101(5+5), 1100+1100(-4+(-4) 0101-0011(5-3), 0011-0101(3-5) 1100-0101(-4-5), 0101-1100(5-(-4) 15 AB判断判断 先做先做A-B 如果没有溢出如果没有溢出, 则符号位为则符号位为1时时AB

10、 如果有溢出如果有溢出, 则符号位为则符号位为0时时AB 因此因此, AB条件为条件为 ov*s31+ov*s31=a31*s31+b31*s31+a31*b31 大小比较 16 龙芯1号ALU设计 17 龙芯1号处理器的ALU设计 操作操作 加减、逻辑运算、移位、转移、加减、逻辑运算、移位、转移、trap 输入:输入:a31:0, b31:0 输出:输出:value, ov, trap 18 ALU有关操作 操作操作 操作码操作码 运算运算 OvOv TrapTrap ValueValue SLLSLL 010000010000 ABAB 0 0 0 0 S S SRLSRL 0100100

11、10010 补补0 0右移右移 0 0 0 0 S S SRASRA 010011010011 补符号右移补符号右移 0 0 0 0 S S ADDADD 011000011000 A+BA+B a a31 31b b3131s s31 31 | a | a31 31b b31 31s s3131 0 0 S S ADDUADDU 011001011001 A+BA+B 0 0 0 0 S S SUBSUB 011010011010 A A- -B B a a31 31b b31 31s s31 31 | a | a31 31b b3131s s3131 0 0 S S SUBUSUBU 01

12、1011011011 A A- -B B 0 0 0 0 S S ANDAND 011100011100 A 再用加法器把最后两个数相加再用加法器把最后两个数相加 Wallace加法树 33 A B Cin S Cout 三个输入三个输入, 两个输出两个输出 进位输出在下一级相加时连到下一位进位输出在下一级相加时连到下一位 两级门延迟两级门延迟 A B C C S 全加器 34 A B C C S A B C C S A B C C S A B C C S A B C C S . x31 x31 x31 x31 x31 x31 x30 x29 x5 x4 x3 x2 x1 x0 x31 x31

13、 x31 x31 x30 x29 x28 x27 x3 x2 x1 x0 x31 x31 x30 x29 x28 x27 x26 x25 x1 x0 - s36 s35 s34 s33 s32 s31 s30 s29 s5 s4 s3 s2 s1 s0 c35 c34 c33 c32 c31 c30 c29 c18 c4 c3 c2 c1 c0 全加器把三个加数变成两个加数 35 16个数相加的1位加法树 input c s cout cin A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C C S A B C S 36 64位加法器位加法器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号