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