当前位置: 首页 > news >正文

计算机组成原理的学习笔记(2)--数据表示与运算·其二 逻辑门和加减乘

学习笔记

前言

本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。

1. 逻辑门

逻辑门是数字电路中用于执行基本逻辑运算的组件。每种逻辑门都有独特的功能和特性:

  • 与门(AND Gate)

    • 符号:·&

    • 功能:输出为 1 当且仅当所有输入均为 1。

  • 或门(OR Gate)

    • 符号:+

    • 功能:只需一个输入为 1,输出即为 1。

  • 非门(NOT Gate)

    • 符号:¬!

    • 功能:输出为输入的反转,¬A!A 表示 A 的反转。

  • 异或门(XOR Gate)

    • 符号:

    • 功能:输入不同(一个为 1,一个为 0)时,输出为 1;相同(两个都是 1 或两个都是 0)时,输出为 0。

  • 与非门(NAND Gate)

    • 符号:¬(A · B)

    • 功能:与门的输出反向,即 AB 都为 1 时,输出为 0,否则为 1。

  • 或非门(NOR Gate)

    • 符号:¬(A + B)

    • 功能:或门的输出反向,即 AB 都为 0 时,输出为 1,否则为 0。

  • 同或门(XNOR Gate)

    • 符号:

    • 功能:输入相同时(都为 1 或都为 0),输出为 1,否则输出为 0。


2. 全加器(Full Adder)

全加器是数字电路中进行二进制加法的基本单元。

  • 输入

    • A:第一个加数。

    • B:第二个加数。

    • Cin:进位输入。

  • 输出

    • S:和(Sum),表示当前位的结果。

    • Cout:进位输出,表示是否需要进位到下一个位。

  • 逻辑公式

    • S = A ⊕ B ⊕ Cin

    • Cout = (A · B) + (Cin · (A ⊕ B))


3. 多重分组全加器

前置概念

  1. 组内并行

    • 意思是在同一组内的多个任务可以同时进行,即多个处理单元或线程可以并行处理不同的数据。例如,在一个计算任务中,可以将数据分成多个部分,然后在多个处理器上同时处理每一部分。

  2. 组间串行

    • 意思是在不同组之间的任务执行是串行的。这意味着一组的计算结果需要在另一组开始执行之前完成。例如,计算 A 组的结果需要在 B 组开始之前完成。

分组加法

  • 在进行较大位数的加法时,可以将加法任务分成多个较小的组(例如每组 4 位或 8 位),然后为每组分别使用全加器进行处理。这样可以提高电路的并行性和计算效率。

  • 每个小组的进位由全加器处理,同时不同组之间的进位需要传递并进行处理。这通常需要额外的逻辑电路来管理进位的传递和计算。


4. 算术移位

  • 算术左移:将所有位向左移动,最右侧补零,等于乘以 2 的 k 次方。对于无符号数和有符号数,效果是一样的。

  • 算术右移:用于有符号数,根据符号位补充左侧,保持数的符号,可以理解为 C 语言中的右移操作符。对于正数,左侧补 0;对于负数,左侧补 1。


5. 溢出判定

溢出发生在运算超出数据类型表示范围的情况下。

  • 有符号整数

    • 加法溢出(A > 0 && B > 0 && S < 0) || (A < 0 && B < 0 && S > 0)

    • 减法溢出(A < 0 && B > 0 && S > 0) || (A > 0 && B < 0 && S < 0)

  • 无符号整数

    • 加法溢出S < A || S < B

    • 减法溢出A < B


6. ALU(算术逻辑单元)

ALU 是计算机的核心部件,负责所有算数和逻辑运算。

  • 功能

    • 执行加法、减法、逻辑运算(与、或、非)等。

    • 可以执行移位操作、乘法、除法和比较运算等(某些 ALU 还包括这些功能)。

  • 组成

    • 多个逻辑门和运算单元、输入输出寄存器。

  • 标志位

    • 利用状态寄存器的标志位来反馈运算结果(如零标志、进位标志、溢出标志等)。


7. 部分积乘法

部分积乘法是计算乘法的一种方法,通过逐位计算来形成结果。

  • 步骤:

    1. 将乘数的每一位与被乘数相乘,生成部分积。

    2. 对部分积进行移位和累加。

    3. 部分积移除的位会移动到乘数中,乘数中已操作的位不再使用,直接移除。


8. ACC 和 MQ 在乘法中的作用

  • ACC(累加器)

    • 存储中间结果和部分积,最终乘积的结果。

  • MQ(乘数寄存器)

    • 存储乘数,用于与被乘数组合生成部分积。


结语

        关于逻辑门之类的知识我之前并没有学习过,我看到逻辑门的时候就去看了一些关于逻辑门的知识,我觉得这位up主对初学者比较友好,在此处推荐一下,另外本文对于尚硅谷的计算机组成原理视频中所涉及的比较重要的知识点,在这里记下笔记,以备后续复习,如有需要自取。

其他

另外提一嘴,最近脚骨折,去不了图书馆,只能呆在寝室,感觉学习效率好低下,各位一定要保重自己的身体啊。


http://www.mrgr.cn/news/80909.html

相关文章:

  • 打 印 菱 形
  • git 删除鉴权缓存及账号信息
  • firefox浏览器如何安装驱动?
  • 点云融合代码学习
  • 高防IP能够为游戏行业提供哪些防护?
  • 8. 日常算法
  • 细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV
  • 微信小程序的轮播图学习报告
  • UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏
  • JS子页面调用父页面函数,监听刷新事件
  • Spring学习之——Sping-XML
  • Linux文件:动静态库制作 动态库链接原理解析
  • 深度学习中,用损失的均值或者总和反向传播的区别
  • 以腾讯混元模型为例,在管理平台上集成一个智能助手
  • 黑马Java面试教程_P8_并发编程
  • PyQt5学习笔记
  • Linux之文件相关命令
  • jvm类加载器
  • 挑战一个月基本掌握C++(第七天)了解指针,引用,时间,输入输出,结构体,vector容器,数据结构 - 通用完结
  • Spring Security 6 系列之五 - 授权管理
  • 相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“
  • electron-vite【实战系列教程】
  • 【Leetcode 热题 100】114. 二叉树展开为链表
  • 【软考高级】系统架构设计师复习笔记-精华版
  • 【Leetcode 热题 100 - 扩展】303. 区域和检索 - 数组不可变
  • 【数据可视化案列】白葡萄酒质量数据的EDA可视化分析