• 正文
    • ALU介紹
    • ALU的信號
    • ALU 的配置
    • ALU的功能
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

算術邏輯單元ALU是什么 算術邏輯單元的功能

2024/09/30
24.8萬
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

ALU介紹

計算機系統中,ALU(Arithmetic Logic Unit)是中央處理器的主要組成部分,它代表算術邏輯單元,執(zhí)行算術和邏輯運算。它也稱為整數單元 (IU,integer unit),它是 CPU 或 GPU 內的邏輯電路,是處理器中執(zhí)行計算的最后一個組件。它能夠執(zhí)行所有與算術和邏輯運算相關的過程,例如加法、減法和移位運算,包括布爾比較(XOR、OR、AND 和 NOT 運算)。此外,二進制數可以完成數學和按位運算。ALU分為AU(算術單元)和LU(邏輯單元)。ALU 使用的操作數和代碼告訴它必須根據輸入數據執(zhí)行哪些操作。當 ALU 完成輸入處理后,信息被發(fā)送到計算機的內存中。

圖2?ALU在四級流水中的示意圖

除了執(zhí)行與加法和減法相關的計算外,ALU 還可以處理兩個整數的乘法,因為它們旨在執(zhí)行整數計算;因此,它的結果也是一個整數。但是,除法運算通常不能由 ALU 執(zhí)行,因為除法運算可能會產生浮點數的結果。相反,浮點單元 (FPU,floating-point unit) 通常處理除法運算;FPU 也可以執(zhí)行其他非整數計算。

浮點數的由來:用科學計數法的方式表示小數時,小數點的位置就變得「漂浮不定」了,這就是相對于定點數,浮點數名字的由來。

圖2?浮點數示例

雖然 ALU 是處理器中的主要組件,但 ALU 的設計和功能在不同的處理器中可能會有所不同。例如,有些 ALU 設計為僅執(zhí)行整數計算,而有些則用于浮點運算。一些處理器包含單個算術邏輯單元來執(zhí)行操作,而其他處理器可能包含許多 ALU 來完成計算。ALU 執(zhí)行的操作是:

邏輯運算:邏輯運算包括 NOR、NOT、AND、NAND、OR、XOR 等。

移位操作:它負責將位的位置向右或向左位移一定數量的位置,也稱為乘法運算。

算術運算:雖然它執(zhí)行乘法和除法,但這是指位加法和位減法。但是乘法和除法運算的成本(邏輯復雜度和面積)更高。在乘法運算中,加法可以用作除法和減法的替代。

ALU的信號

ALU 包含各種輸入和輸出連接,這使得外部電子設備和 ALU 之間可以投射數字信號。ALU 輸入從外部電路獲取信號,作為響應,外部電子設備從 ALU 獲取輸出信號。

數據:ALU 包含三個并行總線,包括兩個輸入和輸出操作數。這三個總線處理的信號數量是相同的。

操作碼:當 ALU 將要執(zhí)行操作時,操作選擇碼描述了 ALU 將執(zhí)行哪種類型的運算或邏輯運算。

輸出:ALU 操作的結果由狀態(tài)輸出以補充數據的形式提供,因為它們是多個信號。通常,諸如溢出、零、執(zhí)行、負數等狀態(tài)信號都包含在通用 ALU 中。當 ALU 完成每個操作時,外部寄存器包含狀態(tài)輸出信號。這些信號存儲在外部寄存器中,使它們可用于未來的 ALU 操作。

輸入:當 ALU 執(zhí)行一次操作時,狀態(tài)輸入允許 ALU 訪問更多信息以成功完成操作。此外,存儲的來自先前 ALU 操作的進位被稱為單個“進位”位。

圖3?ALU輸入輸出示意圖

ALU 是一種組合邏輯電路,這意味著它的輸出將隨著輸入變化而異步變化。在正常操作中,穩(wěn)定信號被施加到所有 ALU 輸入,當信號通過 ALU 電路傳播足夠的時間(稱為“傳播延遲”)時,ALU 操作的結果出現在 ALU輸出。連接到 ALU 的外部電路負責確保 ALU 輸入信號在整個操作過程中的穩(wěn)定性,并在對 ALU 結果進行采樣之前留出足夠的時間讓信號通過 ALU 傳播。

通常,外部電路通過向 ALU 的輸入施加信號來控制 ALU。通常,外部電路采用時序邏輯來控制 ALU 操作,該操作由頻率足夠低的時鐘信號來控制,以確保 ALU 輸出有足夠的時間在最壞情況下穩(wěn)定下來。

圖4?74181型四比特ALU

例如,CPU 通過將操作數從它們的源(通常是寄存器)路由到 ALU 的操作數輸入來開始 ALU 加法操作,而控制單元同時將值應用于 ALU 的操作碼輸入,將其配置為執(zhí)行加法。同時,CPU 還將 ALU 結果輸出路由到將接收和的目標寄存器。在 CPU 等待下一個時鐘時,允許 ALU 的輸入信號在下一個時鐘之前保持穩(wěn)定,通過 ALU 傳播到目標寄存器。當下一個時鐘到達時,目標寄存器存儲 ALU 結果,并且由于 ALU 操作已經完成,ALU 輸入可以設置為下一個 ALU 操作。

ALU 的配置

每個算術邏輯單元都包括以下配置:Instruction Set Architecture、Accumulator、Stack、Register-Register Architecture、Register - Stack Architecture、Register and ?Memory。

Accumulator:每個操作的中間結果都包含在累加器中,這意味著指令集架構(ISA)并不復雜,因為只需要保存一位。通常,它們速度更快且不太復雜,但使 Accumulator 更穩(wěn)定;需要編寫附加代碼以用適當的值填充它。不幸的是,對于單個處理器,很難找到累加器來執(zhí)行并行性。累加器的一個例子是桌面計算器。

Stack:每當執(zhí)行最新操作時,這些操作都會存儲在以自上而下順序保存程序的堆棧中,這是一個小寄存器。當新程序被添加執(zhí)行時,它們會推送舊程序。

Register-Register Architecture:它包括 1 個目標指令和 2 個源指令的位置,也稱為 3 - Register操作機。該指令集架構必須更長,以存儲三個操作數、1 個目標和 2 個源。運算結束后,將結果寫回寄存器會很困難,而且字的長度也應該更長。但是,如果在這個地方遵循寫會規(guī)則,可能會導致更多的同步問題。

Register - Stack Architecture:通常,寄存器和累加器操作的組合稱為寄存器 - 堆棧架構。需要在寄存器堆棧架構中執(zhí)行的操作被壓入堆棧頂部。它的結果保存在堆棧的頂部。借助反向拋光方法,可以分解更復雜的數學運算。一些designer為了表示操作數,使用二叉樹的概念。這意味著反向拋光方法對這些程序員來說很容易,而對其他程序員來說可能很困難。要執(zhí)行 Push 和 Pop 操作,需要創(chuàng)建新的硬件。

Register and Memory:在這種架構中,一個操作數來自寄存器,另一個來自外部存儲器,因為它是最復雜的架構之一。其背后的原因是每個程序都可能非常長,因為它們需要保存在完整的內存空間中。該技術一般與Register-Register 技術相結合,實際上不能單獨使用。

ALU的功能

一算術運算

加法:A 和 B 相加,和出現在 Y 和進位。

進位加法:A、B 和進位相加,總和出現在 Y 和進位處。

減法:從 A 中減去 B(反之亦然),差值出現在 Y 和進位。對于此功能,結轉實際上是一個“借”指標。這個操作也可以用來比較A和B的大?。辉谶@種情況下,處理器可能會忽略 Y 輸出,處理器只對操作產生的狀態(tài)位(特別是零和負數)感興趣。

借位減法:借位(進位)從 A 中減去 B(反之亦然),差值出現在 Y 和進位(借出)處。

二進制補碼:從零中減去 A(或 B),差值出現在 Y 處。增量計算:A(或 B)加 1,結果值出現在 Y。減量計算:A(或 B)減 1,結果值出現在 Y。

Pass through:A(或B)的所有位在Y處顯示為未修改。此操作通常用于確定操作數的奇偶校驗或是否為零或負數,或將操作數加載到處理器寄存器中。

二位邏輯運算

AND:A 和 B 的按位與出現在 Y 處。

OR:A 和 B 的按位 OR 出現在 Y 處。

異或:A 和 B 的按位異或出現在 Y 處。

1 的補碼:A(或 B)的所有位都被反轉并出現在 Y 處。

三位移操作

ALU 移位操作導致操作數 A(或 B)左移或右移(取決于操作碼),移位后的操作數出現在 Y。簡單的 ALU 通常只能將操作數移位一位,而更復雜的 ALU 使用桶形移位器允許他們在一次操作中將操作數移動任意位數。在所有單位移位操作中,移出操作數的位出現在進位輸出;移入操作數的位的值取決于移位的類型。

算術移位:操作數被視為二進制補碼整數,這意味著最高有效位是“符號”位并被保留。

邏輯移位:將邏輯零移入操作數。這用于移動無符號整數。

循環(huán):操作數被視為循環(huán)位緩沖區(qū),因此其最低有效位和最高有效位有效相鄰。

進位循環(huán):進位位和操作數共同被視為位的循環(huán)緩沖區(qū)。

圖5? 八比特ALU位移計算示意圖

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
DS3234SN# 1 Maxim Integrated Products Real Time Clock, Non-Volatile, 1 Timer(s), CMOS, PDSO20, 0.300 INCH, ROHS COMPLIANT, SOP-20
$10.19 查看
TMS320F28377DPTPT 1 Texas Instruments C2000™ 32-bit MCU with 800 MIPS, 2xCPU, 2xCLA, FPU, TMU, 1024 KB flash, EMIF, 16b ADC 176-HLQFP -40 to 105

ECAD模型

下載ECAD模型
$25.67 查看
STM32H750VBT6 1 STMicroelectronics High-performance and DSP with DP-FPU, Arm Cortex-M7 MCU with 128 Kbytes of Flash memory, 1MB RAM, 480 MHz CPU, L1 cache, external memory interface, JPEG codec, HW crypto, large set of peripherals

ECAD模型

下載ECAD模型
$27.62 查看

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

與非網2022年度影響力創(chuàng)作者 Top 2,與非網2023年度最佳創(chuàng)作者 Top10,與非網2024年度創(chuàng)作者;IC技術圈成員。

微信公眾號