1

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

所以我做了一些搜索,发现这个链接指向一个 youtube 视频,该视频解释了如何执行加法 - 为初学者很好地解释了。甚至此链接也解释了CPU将算术处理定向到ALU但不处理如何ALU执行它。

我的问题是呢ALUcomparison作为人类,我们知道 5 小于 7。但是如何ALU知道这一点,它是否以某种方式硬编码。我敢肯定它必须使用一些logic来进行比较,那是什么逻辑。

很高兴知道主修 CS 是如何工作的

4

1 回答 1

6

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

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


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

于 2014-01-07T19:42:39.757 回答