计算机组成原理之算数逻辑单元

举报
哥的时代 发表于 2023/12/29 23:01:56 2023/12/29
【摘要】 一、电路基本原理&加法器设计 1、算术逻辑单元(ALU)算术运算:加、减、乘、除等逻辑运算:与、或、非、异或等辅助功能:移位、求补等 2、最基本的逻辑运算优先级:与>或(类比乘法、加法)Eg: AB+CD 先算与要算或A(C+D) = AC+ AD ————分配律ABC=A(BC)————结合律A+B+C=A+(B+C)————结合律Tips:本质上逻辑表达式是对电路的数学化描述,简化逻辑...

一、电路基本原理&加法器设计

1、算术逻辑单元(ALU)

image.png

  • 算术运算:加、减、乘、除等
  • 逻辑运算:与、或、非、异或等
  • 辅助功能:移位、求补等
    image.png

2、最基本的逻辑运算

image.png

  • 优先级:与>或(类比乘法、加法)
    Eg: AB+CD 先算与要算或

  • A(C+D) = AC+ AD ————分配律

  • ABC=A(BC)————结合律

  • A+B+C=A+(B+C)————结合律

image.png

Tips:本质上逻辑表达式是对电路的数学化描述,简化逻辑表达式就是在简化电路,就是在省钱。

3、复合逻辑

image.png

德摩根律
image.png

重点
image.png

4、并行进位加法器

image.png

==串行进位的并行加法器==:把n个全加器串接起来,就可进行两个n位数的相加。

串行进位又称为行波进位,每一级进位直接依赖于前一级的进位,即进位信号是逐级形成的。

image.png

5、补码加减运算器

1、加法器原理

image.png

Cin是在末尾进行相加(A和B两个数相加时,再加上Cin的值)Cout是进位所得的数(A和B两个数相加时,如果最高位进1则Cout的值为1,如果最高位没进位则Cout的值为0)

例题1:
image.png

image.png

例题2:
image.png

image.png

2、补码加/减法运算方法

  • n bit补码X+Y,按位相加即可
  • n bit补码X-Y:将补码Y全部按位取反,末位+1,得到[-Y]补,减法变加法

例题1:
image.png

例题2:
image.png

image.png

多路选择器MUX的0/1选择,如果sub的值是0那么多路选择器选择右边的路,Cin的值为0,如果sub的值是1那么多路选择器选择左边的路(非门的作用就是按位取反),Cin的值为1。
image.png

6、加减运算和溢出判断

1、原码的加减运算

原码的加法运算:

  • 正+正→绝对值做加法,结果为正
  • 负+负→绝对值做加法,结果为负
  • 正+负→绝对值大的减绝对值小的,符号同绝对值大的数
  • 负+正→绝对值大的减绝对值小的,符号同绝对值大的数

原码的减法运算,“减数”符号取反,转变为加法:

  • 正-负→正+正
  • 负-正→负+负
  • 正-正→正+负
  • 负+正→负-负

2、补码的加减运算

image.png

image.png

负数补→原:①数值位取反+1;②负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码

对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算

例题
image.png

3、溢出判断

image.png

image.png

  • 只有“正数+正数”才会上溢――正+正=负
  • 只有“负数+负数”才会下溢――负+负=正

方法一:采用一位符号位
设A的符号为As(被加数的正负号),B的符号为Bs(加数的正负号),运算结果的符号为Ss(结果的正负号),则溢出逻辑表达式为
image.png

补充:逻辑表达式

  • 与:如ABC,表示A与B与C
    仅当A、B、C均为1时,ABC为1
    A、B、C中有一个或多个为0,则ABC为0
  • 或:如A+B+C,表示A或B或C
    仅当A、B、C均为0时,A+B+C为0
    A、B、C中有一个或多个为1,则A+B+C为1
    image.png

方法二:采用一位符号位,根据数据位进位情况判断溢出
image.png

image.png

方法三:采用双符号位
正数符号为00,负数符号为11

image.png

  • 双符号位补码又称:模4补码
  • 单符号位补码又称:模2补码

4、符号扩展

image.png

重点
image.png

7、标志位的生成

  • OF (Overflow Flag)溢出标志。溢出时为1,否则置0。
  • SF (Sign Flag)符号标志。结果为负时置1,否则置0.
  • ZF (Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
  • CF (Carry Flag)进位/借位标志,进位/借位时置1,否则置0.

image.png


总结

以上就是计算机组成原理之算数逻辑单元的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。