计算机的核心:ALU(算术和逻辑单元)

        本节我们将揭秘计算机的核心部件:算术和逻辑单元。了解计算机里基础的加法,左移,右移,非,与,或,异或,比较操作是如何被选择和处理的。

算术和逻辑单元

        目前,我们已经见到了计算机的其中设备:加法,左移,右移,非,与,或,异或。把它们放在一个单元里,并提供一种方法来选择在任何给定时间使用哪一台设备,这被称为“算术和逻辑单元”,简称“ALU”。

        所有七个设备都连接了一个输入“a”,如果设备具有两个输入,那就连接着输入端“b”。所有七个设备都始终连接到输入,但每个设备的输出都连接到其中一个使能器。开启使能器的导线连接到解码器的输出,因此在给定时间只能打开一个使能器。解码器的七个输出使单个设备能够继续使用公共输出“c”。当您根本不想选择任何设备时,将使用解码器的第八个输出。解码器的三条输入线被标记为“op”,因为它们选择了所需的“操作”。

        这里的一个小问题是来自加法器的进位,以及来自移位器的“移入”和“移出”位。它们的使用方式非常相似,因此从这里开始,我们将把它们统称为进位。加法器和两个移位器将进位作为输入,并生成进位作为输出。因此,三个进位输入连接到一个ALU输入,三个输出中的一个与器件的总线输出一起被选择。查看上面3X8解码器的最右侧输出,并确认它同时启用加法器总线和加法器进位。

        我们这里是有两个总线输入、一个总线输出、四个bit其他输入和四个bit其他输出的盒子。三个输入bit选择在输入和输出总线之间发生的“操作”。下面是一种简化的绘制方法

        请注意,上面标记为“op”的三个单位输入可以有八种不同的组合。其中七种组合选择了前面描述的设备之一。第八种组合不选择任何输出字节,但“较大”和“相等”位仍然有效,所以第八种组合是比较器的操作。

        “op”的位组合意味着什么。这听起来像是另一个代码。是的,这是一个三位代码,我们将很快使用:

        算术和逻辑单元是计算机的核心。这就是计算机里所有动作发生的地方。这里面比你想象的要复杂得多。

处理器

        至此,计算机CPU里还有另一个非常简单的装置,它有一个总线输入、一个总线输出和一个其他输入bit。它非常类似于使能器。其中七位通过与门,其中一位通过或门。一个bit的输入决定了当一个字节试图通过这个设备时会发生什么。当“总线1”位关闭时,输入总线的所有位都不变地传递到输出总线。当“总线1”位接通时,输入字节被忽略,输出字节将为0000 0001,这是二进制数字1。我们将此设备称为“总线1”,因为当我们需要时,它会将数字1放在总线上。

        现在我们可以将这个“总线1”和ALU放入CPU。我们将改变导线进出ALU的位置,使其更适合我们的图表。总线输入位于顶部,总线输出位于底部,所有输入和输出bit位于右侧。

        ALU的输出连接到ACC。ACC接收并临时存储最近ALU操作的结果。ACC的输出然后连接到总线,因此其内容可以根据需要发送到其他地方。

        当我们想进行单输入ALU操作时,我们必须将ALU的三个“运算”位设置为所需的操作,将我们想要的寄存器启用到总线上,并将结果连接到ACC。

        对于两个输入ALU操作,有两个步骤。首先,我们在总线上启用其中一个寄存器,并将其设置为TMP。然后,我们在总线上启用第二个寄存器,选择ALU操作,并将答案设置为ACC。

        如您所见,如果我们在正确的时间打开和关闭适当的启用和设置位,我们现在可以将字节数据从RAM移动到RAM,从寄存器移动到寄存器,通过ALU移动到ACC,然后从那里移动到寄存器或RAM。这就是电脑内部发生的事情。

        这里只缺少一件事,这与寄存器、ALU和RAM上的所有这些控制位有关。RAM有三个控制位,一个用于设置MAR,一个设置当前选择的字节,一个启用当前选择的输出。寄存器R0、R1、R2、R3和ACC中的每一个都有一个置位和一个使能位,TMP仅有一个设置位,总线1有一个控制位,ALU有三个选择所需操作的“操作”位。

        我们需要在适当的时间打开和关闭所有这些控制位的东西,这样我们才能做一些有用的事情。标有“控制部分”的框将在接下来开始揭秘。

实验一 算术逻辑单元 1. 实验目的 (1) 掌握运算器的工作原理。 (2) 验证运算器的功能 2. 实验要求 (1)基本要求 设计一个4位的算术逻辑单元,满足以下要求。 ①4位算术逻辑单元能够进行下列运算:加法、减法、加1、减1、与、或、非传递。用3位操作码进行运算,控制方式如下表所示。 运算操作码     运   算 对标识位ZC的影响 000 result ←A+B 影响标志位ZC 001 result ←A+1 影响标志位ZC 010 result ←A-B 影响标志位ZC 011 result ←A-1 影响标志位ZC 100 result←A and B 影响标志位Z 101 result←A or B 影响标志位Z 110 result← not B 影响标志位Z 111 result←B 不影响标志位ZC ②设立两个标志触发器ZC。当复位信号reset为低电平时,将这两个标志触发器清零。当运算结束后,在时钟clk的上升沿改变标志触发器ZC的值。运算结果改变标志触发器C、Z的情况如下:加法、减法、加1、减1运算改变Z、C;与、或、非运算改变Z,C保持不变;传送操作保持Z、C不变。因此在运算结束时Z、C需要两个D触发器保持。 ③为了保存操作数AB,设计两个4位寄存器AB。当寄存器选择信号sel=0时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入A寄存器;当sel=1时,如果允许写信号write=1,则在时钟clk的上升沿将数据输入dinput送入B。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Briwisdom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值