算术逻辑单元如何知道比较的逻辑?

时间:2014-01-07 19:40:13

标签: architecture logic cpu ram alu

我正在我的大学学习系统工具和架构课程,第一堂课是关于CPURAM如何讨论以及CPU如何处理数据。正如教授所解释的那样,CPUALU (Arithmetic Logic unit)执行算术,例如加法和比较。但他没有解释它是如何做到的。

所以我做了一些搜索this link,它指向一个YouTube视频,解释了如何执行添加 - 为初学者做了很好的解释。即使this link解释了CPU将算术处理指向ALU,但也没有处理ALU执行它的方式。

我的问题是ALU如何comparison。作为人类,我们知道5小于7。 但ALU如何知道这一点,是否在某种程度上是硬编码的。我确信它必须使用一些logic进行比较,这是什么逻辑。

很高兴知道这是如何成为CS的主要工作

1 个答案:

答案 0 :(得分:6)

您是否熟悉典型的ALU如何设置标志以指示发生溢出,或者操作结果为零还是负?通常,通过减法和更新标志但丢弃数字结果来执行比较。

例如,如果从5减去7,则结果为负。因此,5小于7。


我应该注意,这绝对不是实现比较的唯一方式。稍加思考,可以构造一个算法(可以制作成电路)直​​接比较两个整数的二进制表示而不减去它们。但是,减法是一种基本操作,(几乎)所有CPU都已经非常有效地实现它,并且没有理由不重用该实现进行比较。