seegongsik
结构

什么是 ALU

上一课我们看到了“加”这条指令。可是那次加法,实际上是谁在做?减法和比较又是谁来做?我们来认识CPU里专门负责计算的“工人”——ALU。

01

专门负责计算的部分

CPU里有一个专门负责计算的部分,名字叫ALU。
给它两个数和“做哪种计算”,它就做完计算,把结果送出来。
它就像计算器的心脏。

107
ALU
计算工人
结果: 17

两个数从上面进去,计算结果从下面出来。

ALU是“算术逻辑单元”的缩写。
名字听起来很大,干的事却很明确。
用收到的两个数,做指定的计算,只做这一件事。

02

用旋钮选择计算种类

ALU有用,是因为它不只会做一种计算。
转动“做哪种计算”的旋钮,在加、减、乘中选一个,同样的两个数就会得到不同的结果。
下面你可以输入两个数,再切换旋钮。

ALU · 加法
10 + 7
17

输入两个数,选择计算种类。

只是换了一下旋钮,同一个工人就做了不同的计算。
这个“做哪种计算”,其实是由上一课的指令决定的值。

03

第6课的加法器就住在这里

打开ALU,会看到一个眼熟的东西:第6课做的加法器。
加法由这个加法器负责,减法、比较,还有与、或这样的逻辑运算,许多小计算电路都聚在这里。

ALU内部
加法器
第6课做的那个(加法)
减法电路
减去的计算
比较电路
判断谁更大
逻辑电路
第5课的与·或·非
第6课的加法器,作为ALU的一个部件进来干活了

聚集在ALU里的计算电路。

我们在第5课、第6课一个个做出来的小电路,其实都是组成这个ALU的零件。
小东西聚在一起,就成了一个负责计算的工人。

04

“谁更大”也由ALU来回答

在ALU的工作里,和计算一样重要的是比较。
“这个数比那个数大吗?”“两个数相等吗?”对这样的问题,它用真或假来回答。
这一个真或假,以后会成为“如果”这个岔路口的种子。

>
真

真是1,假是0。对计算机来说,这也是0和1。

“10比7大吗?”答案是真。
这个简单的判断非常重要。
程序看情况选择该走哪条路,全都从这样的比较开始。

05

指令转动旋钮

现在,两条线索会合了。
上一课讲的指令的前面部分,也就是操作码,正是转动ALU旋钮的那只手。
“加”就把旋钮转到加法,“减”就转到减法。
换句话说,ALU该做哪种计算,就写在指令里。

ALU · 加法
10 + 7
17

指令的操作码 → ALU的旋钮。

指令决定做什么,ALU把计算完成。
这样,CPU的两个核心零件就凑齐了。
下一课我们来看整个CPU,看看这两者怎样合成一体工作。

一句话总结ALU是CPU里专门负责计算和比较的工人,第6课的加法器也住在里面。指令的操作码决定ALU做哪种计算,比较得出的真或假则是“如果”的种子。
← 结构
如果有帮助,请支持我们