0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是算术逻辑单元?

lhl545545 来源:EDA365 作者:EDA365 2020-06-18 16:27 次阅读

计算机用二进制存储数字的目的是为了计算,而计算的过程是由“算术逻辑单元”来完成的。

那什么是算术逻辑单元?

算术逻辑单元(Arithmetic and Logic Unit)简称ALU,就是负责实现计算机里的多组算术运算和逻辑运算的组合逻辑电路。

看看上面这个实物,图片中是最著名的ALU——英特尔74181,1970年发布,当时它是第一个完全被封装在单个芯片里的完整ALU,对人们来说这是一个惊人的工程。

今天,让我们一起用布尔逻辑门来构建一个简单的与74181功能相同的ALU电路吧。

在构建ALU之前,我们要知道ALU电路包含2个单元,一个是算术单元和一个是逻辑单元。

我们先从算术单元开始,算术单元负责计算机中所有的数字操作,比如加减法,当然它还会做一些其他简单的事,比如给某个数字加1,这叫增量运算。

在算术单元中,我们会用到AND,OR,NOT和XOR逻辑门,最简单的加法电路,就是有2个二进制的输入:A和B,还有1个就是输出,即两个二进制数字的和。

假设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”。

针对上面出现的问题,我们可以把AND门加到电路中,即当两个输入都为“true”时,输出才为“true”,这样就组成了“半加器”电路。

如果你想处理大于1+1的情况,就需要“全加器”(full adder),全加器比半加器复杂点,它有3个bit的输入:A、B、C,所以最大可能输入为:1+1+1,总和1,进位1,因此需要两条输出线,即进位线与总和线。

其实,我们也可以用半加器来实现全加器的功能,先用半加器将A和B相加,然后把C输入到第二个半加器中,最后用一个OR门检查进位是不是true就可以了。

现在,我们可以做一个两个8 Bit进行相加的电路,这两个8 bit分别为A和B,看下图:

我们从A和B的第一位开始相加,第一位分别称为A0和B0,因为只有2个数,所以用一个半加器就可以,我们将它俩的和称为Sum0,考虑到A1和B1相加的时候可能会有A0和B0相加的进位,就会有3个数,所以从A1和B1相加开始就得用全加器,然后依次类推,搞定8个bit的相加,这叫 “8位脉动进位加法器”。

请注意:A7和B7的全加器有“进位”输出,如果它俩相加有输出进位,代表数字A和B相加,和超过了8位,这叫“溢出”(overflow)。如果想避免溢出,就得加更多全加器,然后相加16或32位数字,这就会让溢出更难发生,但缺点是每次进位都要一点时间向前移动。

简单的ALU没有专门的电路去处理乘法和除法,而是用多次加法实现乘法运算,比如:可以将12加5次来实现12乘以5。

当然,不用去担心我们现在的笔记本和手机,因为他们有更好的处理器,可以专门做乘法的算术单元哦。

关于算术单元我们说的很多了,现在,我们来说一下ALU的另一半:逻辑单元。逻辑单元执行的是逻辑操作,像之前讨论过的AND,OR和NOT操作,当然也可以执行简单的数值测试,比如检查数字的正负。

上图是检查ALU的输出是否为0的电路,用了一堆OR门来检查其中一位是否为1,哪怕只有一个Bit (位)是1,我们就可以肯定那个数字肯定不是0,然后用一个NOT门取反,所以只有输入的数字为0时,输出才为1。

到此,我们已经对ALU进行了一个高层次的概括,甚至做了几个主要组件,比如脉动进位加法器,虽然只是巧妙的将一大堆逻辑门连在了一起。我们再回到开始时说的ALU,英特尔74181,它只有4位输入,而我们刚才介绍的是8位输入,是74181的两倍哦!

虽然我们没有做出ALU实物,但是我们应该已经对ALU有了整体的概念,它的诞生打开了通向更强大电脑的大门。

由于ALU在市面的应用越来越多,工程师们为了方便,就用了一个看起来很像大“V”的符号来代表它。

一个4位的ALU需要很多逻辑门,一个8位的ALU需要的逻辑门肯定更多,我们工程师肯定不想在这里浪费很多时间,那就出现了一种便于ALU执行所需要的操作代码,这个后面有机会再详细介绍给大家。

ALU除了输出计算结果外,还会输出一系列标志(Flag),这个标志代表特定状态的1位(bit)输出,例如,如果我们相减两个数字,结果为0,我们的零测试电路就会将零标志设为True(1),这在确定两个数字是否相等时是非常有用的。

当然这个标志位也可以用来判断数字的大小和是否出现溢出等,如果使用的ALU越好,它的标志也会更多,但刚说的这3个标志是ALU普遍会用到的。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7489

    浏览量

    87877
  • 加法电路
    +关注

    关注

    0

    文章

    10

    浏览量

    8144
  • ALU
    ALU
    +关注

    关注

    0

    文章

    33

    浏览量

    13096
  • 华秋DFM
    +关注

    关注

    20

    文章

    3494

    浏览量

    4492
收藏 人收藏

    评论

    相关推荐

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--了解算力芯片CPU

    的计算结果都需要计算单元来完成计算,计算单元是CPU的后端核心也是最原始状态的CPU。 ALU(Arithmetic Logic Unit,算术逻辑
    发表于 10-20 12:03

    《算力芯片 高性能 CPU/GPU/NPU 微架构分析》第1-4章阅读心得——算力之巅:从基准测试到CPU微架构的深度探索

    叫好。SIMD就像是一位指挥家,用一个指令指挥整个乐团同时演奏,大大提高了计算效率。计算单元设计是CPU性能提升的另一重要方向。ALU(算术逻辑单元)作为CPU的核心,负责执行整数运算
    发表于 10-19 01:21

    51单片机的主要逻辑功能部件是什么

    部件的操作。它包括算术逻辑单元(ALU),用于执行算术逻辑运算。 2. 存储器 程序存储器(ROM):用于存储程序代码,通常是
    的头像 发表于 10-18 12:49 395次阅读

    【「算力芯片 | 高性能 CPU/GPU/NPU 微架构分析」阅读体验】--全书概览

    CPU计算单元设计 4.1 计算单元逻辑构成 4.2 数相浮点数的差异 4.3 算术逻辑单元 4.4 浮点数
    发表于 10-15 22:08

    微处理器的执行单元是什么

    微处理器的执行单元(Execution Unit,简称EU)是微处理器中负责执行指令的核心部分,它集成了多种功能单元,共同协作完成算术运算、逻辑运算以及指令的译码和执行等任务。
    的头像 发表于 10-05 15:19 391次阅读

    使用逻辑和转换优化数字驾驶舱处理单元

    电子发烧友网站提供《使用逻辑和转换优化数字驾驶舱处理单元.pdf》资料免费下载
    发表于 09-05 11:08 0次下载
    使用<b class='flag-5'>逻辑</b>和转换优化数字驾驶舱处理<b class='flag-5'>单元</b>

    寄存器根据功能的不同分为哪两种

    Registers) 通用寄存器是处理器中最常见的寄存器类型,它们没有特定的功能,可以用于存储任意类型的数据或指令。这些寄存器通常用于执行算术逻辑运算、数据传输等操作。 1.1 算术逻辑
    的头像 发表于 08-06 09:27 1359次阅读

    cpu控制器的功能是什么

    Processing Unit Controller,是计算机硬件的核心部件之一。它主要由算术逻辑单元(ALU)、控制单元(CU)、寄存器组等组成,负责执行计算机程序中的指令,实现计
    的头像 发表于 06-30 10:48 2136次阅读

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

    ,负责执行计算机程序中的指令。微处理器的主要功能包括: 指令解码:将程序中的指令转换为微指令,以便执行。 算术逻辑单元(ALU):执行算术逻辑
    的头像 发表于 06-30 10:05 2808次阅读

    逻辑电路有哪些应用领域呢?

    逻辑电路的应用领域: 一、计算机与微处理器 逻辑电路是计算机和微处理器的基础,用于实现算术逻辑单元(ALU)、控制
    的头像 发表于 05-24 15:54 1600次阅读

    嵌入式微处理器的架构分为哪几类模块

    嵌入式微处理器的架构可以分为以下几类模块: 中央处理单元(CPU):嵌入式微处理器的核心部分,负责执行指令、进行数据运算和控制任务。它包括控制单元(CU)和算术逻辑
    的头像 发表于 04-21 09:55 1009次阅读

    微处理器由什么组成 微处理器和cpu的关系

    微处理器由以下几个主要组成部分构成:控制单元算术逻辑单元、寄存器组和高速缓存。 控制单元:控制单元
    的头像 发表于 02-22 10:40 3755次阅读

    dsp芯片和arm芯片区别 dsp的应用领域

    架构设计的差异: DSP芯片:DSP(Digital Signal Processor)芯片是一种专门设计用于实时数字信号处理的处理器,其架构相对于通用用途的处理器更专注于高效地执行数学运算。DSP芯片通常采用流水线结构,具备多级算术逻辑
    的头像 发表于 02-01 10:17 6391次阅读

    处理器和cpu是一个东西吗 cpu和主板的区别

    执行指令来进行数据处理、运算和控制操作的核心。它主要包括算术逻辑单元(ALU)、控制单元(CU)和寄存器等多个功能部件的集合。CPU通过时钟信号的驱动,从内存中读取指令和数据,经过解码
    的头像 发表于 01-19 09:52 2w次阅读

    CPU与PUA的区别

    的领域,它指的是操纵、欺骗以及通过心理技巧来追求或者引发他人的浪漫或者性意愿的人。 首先,我们来讨论一下 CPU。CPU 是计算机中最重要的组成部分之一,它是计算机的"大脑",负责执行计算机程序的指令。一个 CPU 通常由控制单元算术
    的头像 发表于 01-10 10:35 1.4w次阅读