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

eag*_*arn 1 architecture cpu ram logic alu

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

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

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

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

Ste*_*non 6

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

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


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