计算机体系结构中的算术逻辑移位单元是什么?


计算机系统使用多个存储寄存器,这些寄存器连接到一个称为算术逻辑单元 (ALU) 的公共运算单元。ALU 是 CPU 内部最核心和最重要的单元之一。

计算机的所有逻辑和数值运算都在这里实现。特定寄存器的內容被安排到 ALU 的输入端。ALU 执行给定的运算,然后将其传输到目标寄存器。

图中展示了算术逻辑移位单元的一个阶段。下标 i 表示一个典型的阶段。算术单元和逻辑单元都使用两个输入。

使用输入 S1 和 S0 选择特定的微操作。输出端的 4x1 多路复用器在算术输出和逻辑输出之间进行选择。多路复用器中的数据由输入 S3 和 S2 选择。

多路复用器有两个数据输入,接收用于右移运算的输入 Ai-1 和用于左移运算的输入 Ai+1。对于 n 位 ALU,电路应重复 n 次。

给定算术阶段的输出进位 Ci+1 应连接到系列中下一阶段的输入进位 Ci。第一个阶段的输入进位是输入进位 Cin。它可以支持算术运算的选择变量。

图中确定了一个阶段的电路。它提供八种算术运算、四种逻辑运算和两种移位运算。每个运算都由五个变量 S3、S2、S1、S0 选择。输入进位 Ci∧Cin 只能用于选择算术运算。

算术逻辑移位单元功能表

S3S2S1S0Cin操作功能
00000F = A传输 A
00001F = A + 1A 加 1
00010F = A + B加法
00011F = A + B + 1带进位的加法
00100F = A + B’带借位的减法
00101F = A + B’ + 1减法
00110F = A – 1A 减 1
00111F = A传输 A
0100XF = A $\wedge$ B
0101XF = A $\vee$ B
0110XF = A$\oplus$B异或
0111XF = A’A 的补码
10XXXF = shr A将 A 右移到 F
11XXXF = shl A将 A 左移到 F

此表显示了 ALU 的 14 个操作。前八个是算术运算,由 S3S2 = 00 选择。接下来的四个是逻辑运算,由 S3S2 = 01 选择。最后两个运算是移位运算,由 S3S2 = 10 和 11 选择。其他三个选择输入不影响移位。

更新于:2021年7月24日

9K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告