什么是 ALU
上一课我们看到了“加”这条指令。可是那次加法,实际上是谁在做?减法和比较又是谁来做?我们来认识CPU里专门负责计算的“工人”——ALU。
专门负责计算的部分
CPU里有一个专门负责计算的部分,名字叫ALU。
给它两个数和“做哪种计算”,它就做完计算,把结果送出来。
它就像计算器的心脏。
两个数从上面进去,计算结果从下面出来。
ALU是“算术逻辑单元”的缩写。
名字听起来很大,干的事却很明确。
用收到的两个数,做指定的计算,只做这一件事。
用旋钮选择计算种类
ALU有用,是因为它不只会做一种计算。
转动“做哪种计算”的旋钮,在加、减、乘中选一个,同样的两个数就会得到不同的结果。
下面你可以输入两个数,再切换旋钮。
输入两个数,选择计算种类。
只是换了一下旋钮,同一个工人就做了不同的计算。
这个“做哪种计算”,其实是由上一课的指令决定的值。
第6课的加法器就住在这里
打开ALU,会看到一个眼熟的东西:第6课做的加法器。
加法由这个加法器负责,减法、比较,还有与、或这样的逻辑运算,许多小计算电路都聚在这里。
聚集在ALU里的计算电路。
我们在第5课、第6课一个个做出来的小电路,其实都是组成这个ALU的零件。
小东西聚在一起,就成了一个负责计算的工人。
“谁更大”也由ALU来回答
在ALU的工作里,和计算一样重要的是比较。
“这个数比那个数大吗?”“两个数相等吗?”对这样的问题,它用真或假来回答。
这一个真或假,以后会成为“如果”这个岔路口的种子。
真是1,假是0。对计算机来说,这也是0和1。
“10比7大吗?”答案是真。
这个简单的判断非常重要。
程序看情况选择该走哪条路,全都从这样的比较开始。
指令转动旋钮
现在,两条线索会合了。
上一课讲的指令的前面部分,也就是操作码,正是转动ALU旋钮的那只手。
“加”就把旋钮转到加法,“减”就转到减法。
换句话说,ALU该做哪种计算,就写在指令里。
指令的操作码 → ALU的旋钮。
指令决定做什么,ALU把计算完成。
这样,CPU的两个核心零件就凑齐了。
下一课我们来看整个CPU,看看这两者怎样合成一体工作。