计算机体系结构中的算术逻辑移位单元是什么?
计算机系统使用多个存储寄存器,这些寄存器连接到一个称为算术逻辑单元 (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 只能用于选择算术运算。
算术逻辑移位单元功能表
S3 | S2 | S1 | S0 | Cin | 操作 | 功能 |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | F = A | 传输 A |
0 | 0 | 0 | 0 | 1 | F = A + 1 | A 加 1 |
0 | 0 | 0 | 1 | 0 | F = A + B | 加法 |
0 | 0 | 0 | 1 | 1 | F = A + B + 1 | 带进位的加法 |
0 | 0 | 1 | 0 | 0 | F = A + B’ | 带借位的减法 |
0 | 0 | 1 | 0 | 1 | F = A + B’ + 1 | 减法 |
0 | 0 | 1 | 1 | 0 | F = A – 1 | A 减 1 |
0 | 0 | 1 | 1 | 1 | F = A | 传输 A |
0 | 1 | 0 | 0 | X | F = A $\wedge$ B | 与 |
0 | 1 | 0 | 1 | X | F = A $\vee$ B | 或 |
0 | 1 | 1 | 0 | X | F = A$\oplus$B | 异或 |
0 | 1 | 1 | 1 | X | F = A’ | A 的补码 |
1 | 0 | X | X | X | F = shr A | 将 A 右移到 F |
1 | 1 | X | X | X | F = shl A | 将 A 左移到 F |
此表显示了 ALU 的 14 个操作。前八个是算术运算,由 S3S2 = 00 选择。接下来的四个是逻辑运算,由 S3S2 = 01 选择。最后两个运算是移位运算,由 S3S2 = 10 和 11 选择。其他三个选择输入不影响移位。
广告