购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 寄存器和算术逻辑部件

为什么处理器能够自动计算,这个问题已经在我的上一本书《穿越计算机的迷雾》里讲过了,不过这些原理讲起来很费劲,花了整整一本书的篇幅。当然,如果你没看过这本书,也没关系,下面就来简单回顾一下。回顾这些知识很有用,因为只有这样你才能知道如何安排处理器做事情。

电子计算机能做很多事情。你能够知道明天出门要穿厚一点才不挨冻,是因为电子计算机算出了天气。除此之外,它还能让你看电影、听音乐、写文章、上网。尽管表面上看来,这些用处和算数学题没什么关系,但实质上,这些功能都是以数学计算为基础的。正是因为如此,人们才会把“计算”这个词挂在嘴边,什么“云计算”、“网络计算”、“64 位计算”,等等。

处理器不是法师手里的仙器,它之所以能计算数学题,是因为其特殊的设计。处理器是一个“器”,即器件,不太大,有的是长方形,有的是正方形,就像饼干。实际上,它是一块集成电路。

图2-2 处理器进行数学运算的简单原

如图2-2 所示,在处理器的底部或者四周,有大量的引脚,可以接受从外面来的电信号,或者向外发出电信号。每个引脚都有自己的用处,在往电路板上安装的时候,不能接错。所以,如图中所示,处理器在生产的时候,都会故意缺一个角,这是一个参照标志,可以确保安装的人不会弄错。当然,并不是所有的处理器都会缺一个角,这不是一个固定不变的做法。

处理器的引脚很多,其中有一部分是用来将参与运算的数字送入处理器内部。有些引脚是复用的,假如现在要进行加法运算,那么我们要重复使用这些引脚,来依次将被加数和加数送入。

一旦被加数通过引脚送入处理器,代表这个二进制数字的一组电信号就会出现在与引脚相连的内部线路上。这是一排高低电平的组合,代表着二进制数中的每一位。这时候,必须用一个称为寄存器(Register)的电路锁住。之所以要这样做,是因为相同的引脚和线路马上还要用于输入加数。也正是因为这个原因,这些内部线路称为处理器内部总线。

同样地,加数也要锁进另一个寄存器中。如图2-2 所示,寄存器RA 和RB 将分别锁存参与运算的被加数和加数。此后,RA 和RB 中的内容不再受外部数据线的影响。

寄存器是双向器件,可以在一端接受输入并加以锁存,同时,它也会在另一端产生一模一样的输出。与寄存器RA 和RB 相连的,是算术逻辑单元,或者算术逻辑部件(Arithmetic Logic Unit,ALU),也就是图2-2 中的桶形部分。它是专门负责运算的电路,可以计算加法、减法或者乘法,也可做逻辑运算。在这里,我们要求它做一次加法。

一旦寄存器RA 和RB 锁存了参与运算的两个数,算术逻辑部件就会输出相加的结果,这个结果可以临时用另外一个寄存器RC 锁存,稍后再通过处理器数据总线送到处理器外面,或者再次送入RA 或RB。

处理器内部有一个控制器(图中没有画出),在指令的执行过程中,它负责给各个部件发送控制信号,使各个部件在某个正确的时间点上执行某个动作。同时,它还负责决定在某个时间点上哪个部件有权使用总线,以免彼此发生冲突。

处理器总是很繁忙的,在它操作的过程中,所有数据在寄存器里面都只能是临时存在一会儿,然后再被送往别处,这就是为什么它被叫做“寄存器”的原因。早期的处理器,它的寄存器只能保存4 比特、8 比特或16 比特,分别叫做4 位、8 位和16 位寄存器。现在的处理器,寄存器一般都是32 位、64 位甚至更多。

如图2-3 所示,8 位寄存器可以容纳8 比特(bit),或者说1 字节(Byte),这是因为

1 byte = 8 bit

另外,我们还要为这个字节的每一位编上号,编号是从右往左进行的,从0 开始,分别是0、1、2、3、4、5、6、7。在这里,位0(第1 位)是最低位,在最右边;位7(第8 位)是最高位,在最左边。

为了更好地理解上面这些概念,图中假定8 位寄存器里存放的是二进制数10001101,即十六进制的8D。这时,它的最低位和最高位都是1。

16 位寄存器可以存放2 个字节,这称为1 个字(word),各个数位的编号分别是0~15,其中0~7 是低字节,8~15 是高字节。实际上,“字”的概念出现得很早,也并非指16 个比特。只是到了后来,才特指16 个二进制位的长度。

32 位寄存器可以存放4 个字节,这称为1 个双字(double word),各个数位的编号分别是0~31,其中0~15 是低字,16~31 是高字。

尽管图中没有画出,但是64 位寄存器可以容纳更多的比特,也就是8 个字节,或者4 个字。位数越多,寄存器所能保存的数越大,这是显而易见的。

图2-3 寄存器数据宽度示意 OxiODLz+Je9VIX8B2ondPZ6pJod1rxfZwDHNzru5XWF7yBXfYtR7xE9NupkRT04+

点击中间区域
呼出菜单
上一章
目录
下一章
×