计算机如何进行逻辑计算—(计算机基础课十四)​​​​​​​​​​​​​​

 

上一篇: 计算机如何进行加减乘除计算—(计算机基础课十三)

我们现在讲 ALU 的另一半:逻辑单元。

逻辑单元执行逻辑操作

比如之前讨论过的 AND,OR 和 NOT 操作,它也能做简单的数值测试,比如一个数字是不是负数,例如,这是检查 ALU 输出是否为 0 的电路,它用一堆 OR 门检查其中一位是否为 1,哪怕只有一个 Bit (位) 是1,我们就知道那个数字肯定不是 0,然后用一个 NOT 门取反,所以只有输入的数字是 0,输出才为 1。

以上就是 ALU 的一个高层次概括,我们甚至从零做了几个主要组件,比如行波进位加法器,它们只是一大堆逻辑门巧妙的连在一起而已。让我们回到昨天开始时的 ALU,英特尔 74181,和我们刚刚做的 8 位 ALU 不同,74181 只能处理 4 位输入。也就是说你刚做了一个比英特尔 74181 还好的 ALU !其实 差不多啦,我们虽然没有全部造出来,但你理解了整体概念。

74181 用了大概 70 个逻辑门,但不能执行乘除,但它向小型化迈出了一大步,让计算机可以更强大更便宜。4 位 ALU 已经要很多逻辑门了,但我们的 8 位 ALU 会需要数百个逻辑门。工程师不想在用 ALU 时去想那些事情,所以想了一个特殊符号来代表它,看起来像一个大 "V"。

又一层抽象!我们的 8 位  ALU 有两个输入,A和B,都是 8 位 (bits),我们还需要告诉 ALU 执行什么操作,例如加法或减法,所以我们用 4 位的操作代码,我们之后会再细说。

简言之,"1000"可能代表加法命令, "1100"代表减法命令,操作代码告诉 ALU 执行什么操作,输出结果是 8 位的,ALU 还会输出一堆标志(Flag)。"标志"是1位的,代表特定状态。比如相减两个数字,结果为 0。我们的零测试电路(前面做的),会将零标志设为 True(1)。如果想知道两个数字是否相等,这个非常有用。如果想知道: A 是否小于 B,可以用 ALU 来算 A 减 B,看负标志是否为 true,如果是 true,我们就知道 A 小于 B,最后,还有一条线连到加法器的进位,如果有溢出,我们就知道,这叫溢出标志。高级 ALU 有更多标志,但这 3 个标志是 ALU 普遍用的,其实,我们之后会用到它们。

现在你知道了计算机是怎样在没有齿轮或杠杆的情况下进行运算。

接下来两节 我们会用 ALU 做 CPU,但在此之前,计算机需要一些 "记忆" !

 

每天五分钟学习计算机最基础的知识和原理

 相关阅读:

  

  1. XOR—布尔逻辑和逻辑门(三)

  2. 计算机如何进行加减乘除计算—算术逻辑单元(一)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

这就是编程

让我看到你的头像

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

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

打赏作者

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

抵扣说明:

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

余额充值