乘法器与ALU
约 10 分钟
乘法:加法的「快进键」
CPU 怎么算乘法?回忆小学竖式:13×11,把 13 分别乘每一位再错位相加。二进制里这件事简单得可爱——乘数每一位不是 0 就是 1,乘上 0 得 0,乘上 1 就是原样照抄,「错位」恰好是二进制里的左移一位。所以 1101×1011 就是四行「抄或不抄」的移位相加。硬件乘法器就是一个移位寄存器加一排加法器,每拍加一行。
除法和减法呢?
减法用补码变成加法(第一章讲过);除法反过来做「移位相减」,像竖式除法一样一位位试商。四种运算最后都归到加法器和移位器身上——这就是为什么运算器的核心其实是一块超强的加法器。
ALU:运算器的「瑞士军刀」
把加法器、与或非门、移位器并排摆好,前面加一个数据选择器,用几根「操作码」线决定此刻让哪一路的结果通过——这就是算术逻辑单元 ALU。操作码 000 做加法,001 做与,010 做或……一条「R1 加 R2」的指令,翻译成硬件语言就是:把两个寄存器接到 ALU 输入,操作码拨到加法,时钟沿一到结果写回。
常见误区:CPU 不是「天生会算」,它只会切换开关;「会算」是 ALU 里那堆门电路的排列方式决定的。
练一练:用移位相加的思路手算 5×6(0101×0110),写出三行错位相加的过程。
小纸条
解释为什么 ALU 里加法器是绝对主力。
登录 后可看答案