计算机组成原理--加法器的速度

本文介绍了如何通过改进全加器的逻辑设计,实现同步加法器,从而显著提高加法器的速度。通过分析输入信号间的逻辑关系,跳过中间级数的计算,使得所有位的运算结果同时输出,而非逐位进行。对比了常规进位和超前进位的不同,指出了教材中的错误并强调了实用电路的重要性。
摘要由CSDN通过智能技术生成

在上一篇博文中介绍的【加法器】,是仿照人类计算的步骤来设计的。

如果需要把两个四位二进制数相加起来,其算法以及电路示意图如下:

做加法,大家都会的,就是由低位到高位,逐位的相加。

对于二进制数,就要按照逢二进一的规则,把进位加到高位中。

按照这个做法,就需要把四个全加器级联起来,如上图所示。

所谓的级联,就是:把低位的进位输出端,用导线连接到高位的进位输入端。

上图中的橙色数字,就是每一位相加后,产生出来的进位。

按此思路设计的 N 位加法器,各个进位,就是由低到高,逐位产生出来,再加入到高位中。

由于要一位一位的计算,所以,该加法器的工作速度,是比较慢的了。

而且,加法器的位数越多,它计算的,就越慢。这个事,不需要证明吧?

这种电路形式,称为【常规进位、递进进位】,都是很切题的。

但是,如果称之为 “行波进位”,明显就是有点跑题了。

怎样才能提高加法器的速度呢?

可以从全加器输出与输入的逻辑关系来分析。

右边第一个全加器输出端的逻辑表达式是:

  S1 = A1 ⊕ B1 ⊕ C0;

  C1 = A1B1 + A1C0 + B1C0   --三人表决中的最简与或式

     = A1B1 + (A1 + B1) C0。

右边第二个全加器输出端的逻辑表达式是:

  S2 = A2 ⊕ B2 ⊕ C1

     = A2 ⊕ B2 ⊕ (A1B1 + (A1 + B1) C0)

  C2 = A2B2 + A2C1 + B2C1   --三人表决中的最简与或式

     = A2B2 + (A2 + B2) C1

     = A2B2 + (A2 + B2) (A1B1 + (A1 + B1) C0)

由此可知,S2、C2 都可由输入信号 A2A1、B2B1、C0 直接计算出来! 

不用先计算出 C1,再拿 C1 来计算 S2、C2 了。

用这种方法,就可以同时计算 C1S1 和 C2S2,以及其余更高的位。

那么,各个位的运算结果,就可以同步输出,而不是逐位计算逐位输出。

为了简化逻辑表达式,可令:

  Gi = Ai Bi、 Pi = Ai + Bi。

因此有:

  C1 = G1 + P1 C0。

  C2 = G2 + P2 C1

     = G2 + P2 ( G1 + P1 C0 )

     = G2 + P2 G1 + P2 P1 C0。

 C2 的逻辑电路图如下。

  C3 = G3 + P3  C2

     = G3 + P3 ( G2 + P2 G1 + P2 P1 C0 )

     = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C0。

 C3 的逻辑图如下。

  C4 = G4 + P4 C3

     = G4 + P4 ( G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C0 )

     = G4 + P4 G3 + P4 P3 P2 G2 + P4 P3 P2 G1 + P4 P3 P2 P1 C0。

 C4 的逻辑图如下。

(在上面几个图中,与门、或门所用的逻辑符号,有点与众不同哈)

按照这种思路设计的 N 位加法器,其各个位的运算结果,就是【同步输出】的。

运算所用的时间,都是三级逻辑门的延迟时间,与加法器的位数 N 并无关系。

那么,把这种加法器,命名为【同步加法器】就是很切题的。

计算机专业把这种电路称为 “超前进位”加法器,真是不可理喻!

是超谁的前? 是比 “常规进位” 超前吧?

明明是给本电路命名,为什么要拉扯上以前的电路?

————————————————

另外,在本电路中有:Pi = Ai + Bi。

但是,有些《计算机》教材写的,却是 Pi = Ai ⊕ Bi,这明显是错误的。

在 Ci 的表达式中,它们两者的逻辑功能,可说是相同的。

但是,它们的工作速度,却能相差两到三倍!

在电路中,Pi 和 Gi 是并列在一起的,如果用异或算法产生 Pi,就会比 Gi 晚很多了。

那么,电路中的信号,就会出现明显的 “毛刺”!

这在《数字电路》设计中,是最忌讳的事。

由此可知,计算机专家所说的,只是纸上谈兵而已。

本文所给出的电路,才是可以实用的。

本文完

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值