32位cpu中的位指什么问题(32位cpu中的32位指的是什么)

我们先回忆下第六章设计的二位加法器

点击添加图片描述(最多60个字)

现在我们要探讨怎么设计一个三位数二进制加法器,我们先随便找两个三位二进制数,111+101,看看它们相加的过程:

点击添加图片描述(最多60个字)

二位二进制加法器只能计算第一组和第二组数,为了完成第三组计算,需要增加半加器。我们看第三组数(1+1+1),他有两轮加法计算(1+1=10,0+1=1),所以我们需要两个半加器,一个用来第一轮计算1+1=10,一组用来第二轮计算0+1=1。我们只需要按照第六章设计二位二进制加法器的方法,来设计三位二进制数加法器,如下图

点击添加图片描述(最多60个字)

上图所示,就是我们设计的三位二进制加法器,它能计算三位以内的所有二进制数加法。比如计算111+101=1100,如果你不信的话,可以多验证几组三位以内的二进制数。

比照这种方法,要计算四位以内二进制数加法,需要设计四位二进制加法器,要计算五位以内的二进制数加法,需要设计五位二进制加法器,依次类推。

如何快速的组装多位加法器?我们可以借助模块化的概念,仔细观察,我们会发现多位二进制加法器是由结构功能类似的部件组成,我们可以将这些功能部件做成模块,在搭建多位加法器时,只需组装这些模块,会大大降低工作的繁琐度。

还是拿三位二进制加法器举例,我们来观察它的构成部件,如下图

点击添加图片描述(最多60个字)

如图,三位二进制数加法器其实由三大部分组成,其中第二部分和第三部分构造是一样的,所以实际上由两种结构不同的部件构造而成。再仔细思考一下,其实第一部分就第二部分、第三部分在进位输入为0的时候的特定状态,当第二部分和第三部分部件的进位输入设置为0(即不接进位线),其输出和第一部分的输出一模一样。所以实质上多位二进制加法器是多个同种部件组装而成。我们只需在此种部件外装一个外壳保护起来,留出三个输入接口和两个输出接口,即可做成一个模块,如下图

点击添加图片描述(最多60个字)

上面这个电路我们可以把他叫做“全加器”,当它进位输入设置为0的时候,它就是一个一位二进制加法器。两个全加器可以组装成两位二进制数加法器,其组装方式为:低位全加器的进位输出连接高位全加器的进位输入,如下图

点击添加图片描述(最多60个字)

如图,我们用两个一位加法器组装成了一个二位加法器,同理,我们可以用两个二位加法器组装成一个四位加法器,如下图

点击添加图片描述(最多60个字)

同理,两个四位加法器,可以组装成一个八位加法器。两个八位加法器可以组装成一个16位加法器,两个16位加法器可以组装成32位加法器,两个32位加法器可以组装成64位加法器。我们常听到所谓32位、64位CPU,32位64位指什么意思,现在你大概知道了吧。

不过,这里有个问题,现在计算机cpu是64位,这意味着计算机最大只能计算64位二进制数吗?当然不是,比如下面这列128位二进数,

点击添加图片描述(最多60个字)

这是一个128位的二进制数,但是cpu一次最大只能运算64位数,如何计算两个128位数加法?我们可以把这128位数分成两部分:前64位和后64位,我们可以让cpu先计算前64位,将结果保存起来,然后再计算后64位,得到另一个结果,将这两部分结果组合起来,就得到我们需要的和。当然,这其中有些细节问题需要靠软件去解决。说这么多,就是要告诉大家一个事实:低位加法器也是可以用来计算两个高位数加法的。

OK,到本章结束,我们已经设计了一个能够拿来计算任意位数二进制数加法的电路。但明眼人轻易能看明白,这个加法器在现实中没什么卵用,与其不停的掰开关,不如拿支笔在纸上验算更方便高效。不过要是这个加法器能自己计算,不用我们去掰开关的话,那就要另说了。下章我们将讨论自动化的问题。