0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

什么是算術邏輯單元?

lhl545545 ? 來源:EDA365 ? 作者:EDA365 ? 2020-06-18 16:27 ? 次閱讀

計算機用二進制存儲數(shù)字的目的是為了計算,而計算的過程是由“算術邏輯單元”來完成的。

那什么是算術邏輯單元?

算術邏輯單元(Arithmetic and Logic Unit)簡稱ALU,就是負責實現(xiàn)計算機里的多組算術運算和邏輯運算的組合邏輯電路。

看看上面這個實物,圖片中是最著名的ALU——英特爾74181,1970年發(fā)布,當時它是第一個完全被封裝在單個芯片里的完整ALU,對人們來說這是一個驚人的工程。

今天,讓我們一起用布爾邏輯門來構建一個簡單的與74181功能相同的ALU電路吧。

在構建ALU之前,我們要知道ALU電路包含2個單元,一個是算術單元和一個是邏輯單元。

我們先從算術單元開始,算術單元負責計算機中所有的數(shù)字操作,比如加減法,當然它還會做一些其他簡單的事,比如給某個數(shù)字加1,這叫增量運算。

在算術單元中,我們會用到AND,OR,NOT和XOR邏輯門,最簡單的加法電路,就是有2個二進制的輸入:A和B,還有1個就是輸出,即兩個二進制數(shù)字的和。

假設A和B都是只有一個bit,即0或1,那A和B的運算就只有下列四種可能的組合:

0+0=0

1+0=1

0+1=1

1+1=10

提醒一下,在二進制里,1代表true,0代表false,所以這組輸入和輸出的前三種可能與XOR門的邏輯關系是一樣。

第四中輸入組合,顯然1+1≠2,因為在二進制里是沒有2的,所以結果是0,將1進位到下一位,和為二進制的“10”,對于XOR門的輸出,只對了一部分,即1加1,輸出0,這個時候,我們只需要一根額外的線來代表進位,即只有當輸入是1和1時,進位才是“true”。

針對上面出現(xiàn)的問題,我們可以把AND門加到電路中,即當兩個輸入都為“true”時,輸出才為“true”,這樣就組成了“半加器”電路。

如果你想處理大于1+1的情況,就需要“全加器”(full adder),全加器比半加器復雜點,它有3個bit的輸入:A、B、C,所以最大可能輸入為:1+1+1,總和1,進位1,因此需要兩條輸出線,即進位線與總和線。

其實,我們也可以用半加器來實現(xiàn)全加器的功能,先用半加器將A和B相加,然后把C輸入到第二個半加器中,最后用一個OR門檢查進位是不是true就可以了。

現(xiàn)在,我們可以做一個兩個8 Bit進行相加的電路,這兩個8 bit分別為A和B,看下圖:

我們從A和B的第一位開始相加,第一位分別稱為A0和B0,因為只有2個數(shù),所以用一個半加器就可以,我們將它倆的和稱為Sum0,考慮到A1和B1相加的時候可能會有A0和B0相加的進位,就會有3個數(shù),所以從A1和B1相加開始就得用全加器,然后依次類推,搞定8個bit的相加,這叫 “8位脈動進位加法器”。

請注意:A7和B7的全加器有“進位”輸出,如果它倆相加有輸出進位,代表數(shù)字A和B相加,和超過了8位,這叫“溢出”(overflow)。如果想避免溢出,就得加更多全加器,然后相加16或32位數(shù)字,這就會讓溢出更難發(fā)生,但缺點是每次進位都要一點時間向前移動。

簡單的ALU沒有專門的電路去處理乘法和除法,而是用多次加法實現(xiàn)乘法運算,比如:可以將12加5次來實現(xiàn)12乘以5。

當然,不用去擔心我們現(xiàn)在的筆記本和手機,因為他們有更好的處理器,可以專門做乘法的算術單元哦。

關于算術單元我們說的很多了,現(xiàn)在,我們來說一下ALU的另一半:邏輯單元。邏輯單元執(zhí)行的是邏輯操作,像之前討論過的AND,OR和NOT操作,當然也可以執(zhí)行簡單的數(shù)值測試,比如檢查數(shù)字的正負。

上圖是檢查ALU的輸出是否為0的電路,用了一堆OR門來檢查其中一位是否為1,哪怕只有一個Bit (位)是1,我們就可以肯定那個數(shù)字肯定不是0,然后用一個NOT門取反,所以只有輸入的數(shù)字為0時,輸出才為1。

到此,我們已經(jīng)對ALU進行了一個高層次的概括,甚至做了幾個主要組件,比如脈動進位加法器,雖然只是巧妙的將一大堆邏輯門連在了一起。我們再回到開始時說的ALU,英特爾74181,它只有4位輸入,而我們剛才介紹的是8位輸入,是74181的兩倍哦!

雖然我們沒有做出ALU實物,但是我們應該已經(jīng)對ALU有了整體的概念,它的誕生打開了通向更強大電腦的大門。

由于ALU在市面的應用越來越多,工程師們?yōu)榱朔奖?,就用了一個看起來很像大“V”的符號來代表它。

一個4位的ALU需要很多邏輯門,一個8位的ALU需要的邏輯門肯定更多,我們工程師肯定不想在這里浪費很多時間,那就出現(xiàn)了一種便于ALU執(zhí)行所需要的操作代碼,這個后面有機會再詳細介紹給大家。

ALU除了輸出計算結果外,還會輸出一系列標志(Flag),這個標志代表特定狀態(tài)的1位(bit)輸出,例如,如果我們相減兩個數(shù)字,結果為0,我們的零測試電路就會將零標志設為True(1),這在確定兩個數(shù)字是否相等時是非常有用的。

當然這個標志位也可以用來判斷數(shù)字的大小和是否出現(xiàn)溢出等,如果使用的ALU越好,它的標志也會更多,但剛說的這3個標志是ALU普遍會用到的。
責任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7289

    瀏覽量

    87516
  • 加法電路
    +關注

    關注

    0

    文章

    10

    瀏覽量

    8128
  • ALU
    ALU
    +關注

    關注

    0

    文章

    33

    瀏覽量

    13054
  • 華秋DFM
    +關注

    關注

    20

    文章

    3492

    瀏覽量

    4298
收藏 人收藏

    評論

    相關推薦

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架構分析」閱讀體驗】--了解算力芯片CPU

    的計算結果都需要計算單元來完成計算,計算單元是CPU的后端核心也是最原始狀態(tài)的CPU。 ALU(Arithmetic Logic Unit,算術邏輯
    發(fā)表于 10-20 12:03

    《算力芯片 高性能 CPU/GPU/NPU 微架構分析》第1-4章閱讀心得——算力之巔:從基準測試到CPU微架構的深度探索

    叫好。SIMD就像是一位指揮家,用一個指令指揮整個樂團同時演奏,大大提高了計算效率。計算單元設計是CPU性能提升的另一重要方向。ALU(算術邏輯單元)作為CPU的核心,負責執(zhí)行整數(shù)運算
    發(fā)表于 10-19 01:21

    51單片機的主要邏輯功能部件是什么

    部件的操作。它包括算術邏輯單元(ALU),用于執(zhí)行算術邏輯運算。 2. 存儲器 程序存儲器(ROM):用于存儲程序代碼,通常是
    的頭像 發(fā)表于 10-18 12:49 ?49次閱讀

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架構分析」閱讀體驗】--全書概覽

    CPU計算單元設計 4.1 計算單元邏輯構成 4.2 數(shù)相浮點數(shù)的差異 4.3 算術邏輯單元 4.4 浮點數(shù)
    發(fā)表于 10-15 22:08

    寄存器根據(jù)功能的不同分為哪兩種

    Registers) 通用寄存器是處理器中最常見的寄存器類型,它們沒有特定的功能,可以用于存儲任意類型的數(shù)據(jù)或指令。這些寄存器通常用于執(zhí)行算術邏輯運算、數(shù)據(jù)傳輸?shù)炔僮鳌?1.1 算術邏輯
    的頭像 發(fā)表于 08-06 09:27 ?521次閱讀

    cpu控制器的功能是什么

    Processing Unit Controller,是計算機硬件的核心部件之一。它主要由算術邏輯單元(ALU)、控制單元(CU)、寄存器組等組成,負責執(zhí)行計算機程序中的指令,實現(xiàn)計
    的頭像 發(fā)表于 06-30 10:48 ?1499次閱讀

    控制器的組成部件以及各部件的功能

    ,負責執(zhí)行計算機程序中的指令。微處理器的主要功能包括: 指令解碼:將程序中的指令轉換為微指令,以便執(zhí)行。 算術邏輯單元(ALU):執(zhí)行算術邏輯
    的頭像 發(fā)表于 06-30 10:05 ?1466次閱讀

    邏輯電路有哪些應用領域呢?

    。 邏輯電路的應用領域: 一、計算機與微處理器 邏輯電路是計算機和微處理器的基礎,用于實現(xiàn)算術邏輯單元(ALU)、控制
    的頭像 發(fā)表于 05-24 15:54 ?1068次閱讀

    嵌入式微處理器的架構分為哪幾類模塊

    嵌入式微處理器的架構可以分為以下幾類模塊: 中央處理單元(CPU):嵌入式微處理器的核心部分,負責執(zhí)行指令、進行數(shù)據(jù)運算和控制任務。它包括控制單元(CU)和算術邏輯
    的頭像 發(fā)表于 04-21 09:55 ?892次閱讀

    微處理器由什么組成 微處理器和cpu的關系

    微處理器由以下幾個主要組成部分構成:控制單元、算術邏輯單元、寄存器組和高速緩存。 控制單元:控制單元
    的頭像 發(fā)表于 02-22 10:40 ?3331次閱讀

    dsp芯片和arm芯片區(qū)別 dsp的應用領域

    架構設計的差異: DSP芯片:DSP(Digital Signal Processor)芯片是一種專門設計用于實時數(shù)字信號處理的處理器,其架構相對于通用用途的處理器更專注于高效地執(zhí)行數(shù)學運算。DSP芯片通常采用流水線結構,具備多級算術邏輯
    的頭像 發(fā)表于 02-01 10:17 ?5264次閱讀

    處理器和cpu是一個東西嗎 cpu和主板的區(qū)別

    執(zhí)行指令來進行數(shù)據(jù)處理、運算和控制操作的核心。它主要包括算術邏輯單元(ALU)、控制單元(CU)和寄存器等多個功能部件的集合。CPU通過時鐘信號的驅動,從內(nèi)存中讀取指令和數(shù)據(jù),經(jīng)過解碼
    的頭像 發(fā)表于 01-19 09:52 ?1.7w次閱讀

    CPU與PUA的區(qū)別

    的領域,它指的是操縱、欺騙以及通過心理技巧來追求或者引發(fā)他人的浪漫或者性意愿的人。 首先,我們來討論一下 CPU。CPU 是計算機中最重要的組成部分之一,它是計算機的"大腦",負責執(zhí)行計算機程序的指令。一個 CPU 通常由控制單元、算術
    的頭像 發(fā)表于 01-10 10:35 ?1.3w次閱讀

    FPGA學習筆記:邏輯單元的基本結構

    邏輯單元在FPGA器件內(nèi)部,用于完成用戶邏輯的最小單元
    的頭像 發(fā)表于 10-31 11:12 ?1571次閱讀
    FPGA學習筆記:<b class='flag-5'>邏輯</b><b class='flag-5'>單元</b>的基本結構

    用VHDL語言創(chuàng)建一個8位算術邏輯單元(ALU)

    在這個項目中,我們用 VHDL 語言創(chuàng)建一個 8 位算術邏輯單元 (ALU),并在連接到帶有輸入開關和 LED 顯示屏的定制 PCB 的 Altera CPLD 開發(fā)板上運行。
    的頭像 發(fā)表于 10-24 17:05 ?1733次閱讀
    用VHDL語言創(chuàng)建一個8位<b class='flag-5'>算術</b><b class='flag-5'>邏輯</b><b class='flag-5'>單元</b>(ALU)