計算機體系結構中的算術邏輯移位單元是什麼?
計算機系統使用多個儲存暫存器,這些暫存器連線到一個稱為算術邏輯單元 (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 選擇。其他三個選擇輸入不影響移位。
廣告