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

    文章

    7764

    浏览量

    92674
  • 加法电路
    +关注

    关注

    0

    文章

    10

    浏览量

    8360
  • ALU
    ALU
    +关注

    关注

    0

    文章

    34

    浏览量

    13449
  • 华秋DFM
    +关注

    关注

    20

    文章

    3512

    浏览量

    6145
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    流水线基本结构

    两个阶段: 取指 + 解码(Fetch + Decode):同时完成指令读取和初步解码。 执行(Execute):完成运算或数据操作。 特点: 减少流水线层级,简化控制逻辑。 动态功耗更低(每个周期激活的硬件单元更少)。 流水线冲突(如分支预测错误)概率降低,功耗浪费减
    发表于 11-21 07:35

    MDD 逻辑IC的逻辑电平不兼容问题与解决方案

    在现代电子系统中,MDD辰达半导体逻辑IC(集成电路)扮演着至关重要的角色,广泛应用于数据处理、时序控制、信号转换等各类电路中。随着技术的进步,不同逻辑系列的IC(如TTL、CMOS、BiCMOS等
    的头像 发表于 10-29 09:39 158次阅读
    MDD <b class='flag-5'>逻辑</b>IC的<b class='flag-5'>逻辑</b>电平不兼容问题与解决方案

    E203_defines的阅读分享

    E203_CFG_SUPPORT_SHARE_MULDIV 常量是否被定义,决定了 ALU(Arithmetic Logic Unit,算术逻辑单元)模块的加法器位宽。如果支持共享乘除器,则将
    发表于 10-24 06:55

    IEEE 754浮点算术标准(2)

    IEEE 754 浮点算术标准 5种舍入模式 5种异常
    发表于 10-22 06:08

    辰达芯科技推出逻辑IC产品全系列

    在当今全球贸易摩擦、科技竞争日益激烈的大环境下,国产替代战略在半导体产业中有着极为重要的意义。逻辑IC芯片作为电路系统的“决策单元”,其稳定性、可靠性及持续供应能力直接影响着产品的生命周期与市场竞争力。
    的头像 发表于 10-21 14:22 555次阅读

    坚持继续布局32位MCU,进一步完善产品阵容,96Mhz主频CW32L012新品发布!

    CW32L012基于ARM® Cortex-M0+内核,主频高达96MHz,同时集成了CORDIC硬件单元、扩展算术运算单元(EAU),可以提供部分数学函数、算术运算的硬件加速,特别适
    的头像 发表于 07-16 16:34 1015次阅读
    坚持继续布局32位MCU,进一步完善产品阵容,96Mhz主频CW32L012新品发布!

    NVMe高速传输之摆脱XDMA设计之六:性能监测单元设计

    性能监测单元负责监测 NVMe over PCIe 逻辑加速引擎的运行状态和统计信息, 包括复位后 运行时间信息、 NVMe 指令数量统计信息、 数据操作数量统计信息、 IOPS 性能统计 信息
    发表于 07-02 19:51

    一文讲清楚芯片的分类-多个维度

    •定义:执行程序指令、处理数据的核心组件,包含算术逻辑单元(ALU)、控制单元(CU)等。 •类型: •CPU(中央处理器):计算机、服务器的“大脑”,如Intel Core系列。
    的头像 发表于 05-06 15:04 5108次阅读

    单元测试在嵌入式软件中的关键作用及winAMS工具的卓越贡献

    发现潜在缺陷,提升代码质量。 ‌核心作用解析‌ ‌缺陷早期捕获‌:单元测试在代码编写阶段即可执行,帮助开发者在问题扩散前识别逻辑错误、边界条件处理不当等问题,降低后期修复成本。 ‌代码质量提升‌:通过强制模块化设计
    的头像 发表于 04-11 14:31 753次阅读

    ANet-ESCU储能柜逻辑控制单元

    简婷 安科瑞电气股份有限公司 上海嘉定 201801 技术支持18701998775 1. ANet-ESCU储能柜逻辑控制单元 产品介绍 ANet-ESCU 储能控制单元是一种适用于储能一体柜(箱
    的头像 发表于 02-12 17:13 732次阅读
    ANet-ESCU储能柜<b class='flag-5'>逻辑</b>控制<b class='flag-5'>单元</b>

    逻辑板升级工具

    逻辑板升级工具
    发表于 02-10 13:50 0次下载

    Imagination D系列GPU:关于2D 双速率纹理处理

    实现景深、光晕、模糊等效果。大多数这些后处理过程都是以纹理采样为主的过滤效果,它们对算术逻辑单元(ALU)的要求不高,但受限于纹理处理单元(TPU)的吞吐率。解决这
    的头像 发表于 02-08 14:28 670次阅读
    Imagination D系列GPU:关于2D 双速率纹理处理

    解密逻辑单元与CoreScore得分的关系

    FPGA 通过查找表 (LUT) 实现逻辑功能。这些 LUT 类似于真值表或卡诺图 (Karnaugh map),FPGA 可以通过组合多个 LUT ,来实现几乎任何你所需的逻辑功能。
    的头像 发表于 02-06 15:06 694次阅读
    解密<b class='flag-5'>逻辑</b><b class='flag-5'>单元</b>与CoreScore得分的关系

    复合的逻辑运算

    符合逻辑运算
    的头像 发表于 01-16 09:10 557次阅读
    复合的<b class='flag-5'>逻辑</b>运算

    MPU微处理器的工作原理

    几个主要部分组成: 算术逻辑单元(ALU) :负责执行所有的算术逻辑运算。 控制单元(CU)
    的头像 发表于 01-07 18:08 2201次阅读