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

发布时间:2024年01月16日

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…


前言

一、电路基本原理&加法器设计
1、算术逻辑单元(ALU)
2、最基本的逻辑运算
3、复合逻辑
4、并行进位加法器
5、补码加减运算器
1、加法器原理
2、补码加/减法运算方法
6、加减运算和溢出判断
1、原码的加减运算
2、补码的加减运算
3、溢出判断
4、符号扩展
7、标志位的生成


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

1、算术逻辑单元(ALU)

在这里插入图片描述

  • 算术运算:加、减、乘、除等
  • 逻辑运算:与、或、非、异或等
  • 辅助功能:移位、求补等
    在这里插入图片描述

2、最基本的逻辑运算

在这里插入图片描述

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

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

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

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

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

3、复合逻辑

在这里插入图片描述
德摩根律
在这里插入图片描述
重点
在这里插入图片描述

4、并行进位加法器

在这里插入图片描述
串行进位的并行加法器:把n个全加器串接起来,就可进行两个n位数的相加。

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

在这里插入图片描述

5、补码加减运算器

1、加法器原理

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

例题1:
在这里插入图片描述在这里插入图片描述

例题2:
在这里插入图片描述
在这里插入图片描述

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

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

例题1:
在这里插入图片描述
例题2:
在这里插入图片描述
在这里插入图片描述
多路选择器MUX的0/1选择,如果sub的值是0那么多路选择器选择右边的路,Cin的值为0,如果sub的值是1那么多路选择器选择左边的路(非门的作用就是按位取反),Cin的值为1。
在这里插入图片描述

6、加减运算和溢出判断

1、原码的加减运算

原码的加法运算:

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

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

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

2、补码的加减运算

在这里插入图片描述在这里插入图片描述
负数补→原:①数值位取反+1;②负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码

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

例题
在这里插入图片描述

3、溢出判断

在这里插入图片描述
在这里插入图片描述

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

方法一:采用一位符号位
设A的符号为As(被加数的正负号),B的符号为Bs(加数的正负号),运算结果的符号为Ss(结果的正负号),则溢出逻辑表达式为
在这里插入图片描述
补充:逻辑表达式

  • 与:如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
    在这里插入图片描述
    方法二:采用一位符号位,根据数据位进位情况判断溢出
    在这里插入图片描述
    在这里插入图片描述
    方法三:采用双符号位
    正数符号为00,负数符号为11

在这里插入图片描述

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

4、符号扩展

在这里插入图片描述
重点
在这里插入图片描述

7、标志位的生成

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

在这里插入图片描述


总结

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

文章来源:https://blog.csdn.net/m0_64074924/article/details/135299652
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。