我正在我的大学学习系统工具和架构课程,第一堂课是关于CPU
和RAM
如何讨论以及CPU如何处理数据。正如教授所解释的那样,CPU
有ALU (Arithmetic Logic unit)
执行算术,例如加法和比较。但他没有解释它是如何做到的。
所以我做了一些搜索this link,它指向一个YouTube视频,解释了如何执行添加 - 为初学者做了很好的解释。即使this link解释了CPU
将算术处理指向ALU
,但也没有处理ALU
执行它的方式。
我的问题是ALU
如何comparison
。作为人类,我们知道5小于7。
但ALU
如何知道这一点,是否在某种程度上是硬编码的。我确信它必须使用一些logic
进行比较,这是什么逻辑。
很高兴知道这是如何成为CS的主要工作
答案 0 :(得分:6)
您是否熟悉典型的ALU如何设置标志以指示发生溢出,或者操作结果为零还是负?通常,通过减法和更新标志但丢弃数字结果来执行比较。
例如,如果从5减去7,则结果为负。因此,5小于7。
我应该注意,这绝对不是实现比较的唯一方式。稍加思考,可以构造一个算法(可以制作成电路)直接比较两个整数的二进制表示而不减去它们。但是,减法是一种基本操作,(几乎)所有CPU都已经非常有效地实现它,并且没有理由不重用该实现进行比较。