从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

    • 计算机组成原理(北大-陆俊林)

      • 概述-计算机组成原理(北大-陆俊林)
      • 第1周-计算机组成章节视频简介
      • 101-电子计算机的兴起
      • 102-冯·诺依曼结构的要点
      • 103-冯·诺依曼结构的小故事
      • 104-计算机结构的简化模型
      • 105-计算机执行指令的过程
      • 106-计算机输入和输出
      • 107-冯诺依曼结构和具体实现
      • 201-设计自己的计算机
      • 202-x86 体系结构
      • 203-x86 指令简介
      • 204-复杂的 x86 指令举例
      • 205-MIPS 体系结构
      • 206-MIPS 指令简介
      • 301-算术运算和逻辑运算
      • 302-门电路的基本原理
      • 303-寄存器的基本原理
      • 304-逻辑运算的实现
      • 305-加法和减法的实现
      • 306-加法器的优化
      • 401-乘法的运算过程
      • 402-乘法器的实现
      • 403-乘法器的优化 1
      • 404-乘法器的优化 2
      • 405-除法的运算过程
      • 406-除法器的实现
      • 407-除法器的优化
      • 501-处理器的设计步骤
      • 502-数据通路的建立
      • 503-运算指令的控制信号
      • 504-访存指令的控制信号
      • 505-分支指令的控制信号
      • 506-控制信号的集成
      • 601-流水线的基本原理
      • 602-流水线的优化
      • 603-超标量流水线
      • 604-流水线的冒险
      • 605-数据冒险的处理
      • 606-控制冒险的处理
      • 701-存储层次结构概况
      • 702-DRAM 和 SRAM
      • 703-主存的工作原理
      • 704-主存技术的发展
      • 705-高速缓存的工作原理
      • 706-高速缓存的组织结构
      • 707-存储容量的计算
      • 801-中断和异常的来源
      • 802-中断向量表的结构
      • 803-中断向量表的发展
      • 804-中断的处理过程
      • 805-内部中断分类说明
      • 806-基于中断的功能调用
      • 901-输入输出接口的基本功能
      • 902-输入输出接口的编址方式
      • 903-输入输出的控制方式
      • 904-中断控制方式
      • 905-外部中断的处理过程
      • 906-直接存储器访问方式
    • 字符编码入门

  • 操作系统

  • Linux

  • 计算机网络

  • 数据库

  • 编程工具

  • 装机

  • 计算机基础
  • 计算机组成原理
  • 计算机组成原理(北大-陆俊林)
2023-06-13

304-逻辑运算的实现

# 304-逻辑运算的实现

ALU 也就是算术逻辑单元,它能够提供基本的算术运算和逻辑运算的功能。那从硬件层面上,它是如何实现的呢?就让我们先从相对简单的逻辑运算开始分析。

‍

现在我们已经掌握了门单元的功能,可以提供基本的逻辑运算。 例如这个与门就可以对两个二进制的输入进行与操作,并输出结果。 但这和计算机当中与运算指令所需的功能还是有差距的。 例如这条 and 指令,它的两个源操作数都是 32 位的寄存器, 它的目的操作数也是一个 32 位的寄存器。 也就是说它要同时对两个 32 位的二进制数进行与操作运算, 并得到一个 32 位的运算结果。那么怎么用与门来完成呢? 其实也很简单,我们就把 32 个与门并排 连起来,将 32 位的输入分别连接到这 32 个与门上。 可以标记为 A0,A1 一直到 A31,这代表第一个操作数,而从 B0,B1 一直到 B31,这代表第二个操作数。这 32 个 与门的输出,分别记为 Y0,Y1 直到 Y31。 它们就组成了一个 32 位的数。在这条与运算的指令控制下, rs 所指定的寄存器的内容会被传送到这个端口。 而 rt 所指向的内容会被传送到另一个端口。 经过这些与门之后,得到的运算结果,会被传送到 rd 所指定的寄存器当中。 这样就完成了这条指令所要求的与运算。

​

与之类似,如果我们要完成这条或运算指令,则需要 32 个或门, 这样就构成一个可以完成 32 位或运算的单元。

​

那在 ALU 当中,实际上是包含了多钟不同的功能部件。 包括我们刚才提到的 32 位的与运算, 32 位的或运算,还会有其它的逻辑运算以及算术运算单元。 那它们是怎样合成一个整体的呢? 对于这个整体的运算单元,它需要有一个 32 位的输入,然后在运算单元的内部, 分别连接到各个不同的运算功能部件的 A 输入端口,然后将另一个 32 位的 输入也在运算单元的内部分别连接到各个不同功能单元的 B 输入端口。 这样每个功能部件都按照各自的功能完成对应的与操作,或操作, 以及其他的操作,并产生对应的运算结果。 那现在的问题是,我们到底需要哪个运算结果作为输出呢? 这就还需要增加一个部件就是多选器。

这里我们假定这个运算单元当中包含四种功能,所以我们会有四个运算的结果,要经过一个四选一的多选器。 那样从四个选择当中选出一个来, 我们就需要一个两位的选择信号,当这个选择信号为 00 时, 在这个图中就会选择与运算功能部件输出的结果。 如果它是 01 时,就会选择这个或运算功能部件输出的结果。 这个多选器实际上也是由若干个门组成的。当然如果这个运算单元中包含着更多数量功能单元,比如说 8 个,那么就要使用一个 8 选 1 的多选器, 而运算类型的选择信号也要扩大为 3 个 bit。 那好经过这个多选器之后,我们就可以产生一个 32 位的输出。 那对于这一个完整运算单元来说, 当我们通过这个选择信号选择了对应的运算类型之后, 从运算单元的输出端口,我们就可以看到经过指定运算之后产生的输出。

​

回到之前提到过的在模型机上进行逻辑运算的这个例子, 如果我们要执行这条指令,实际上是在控制电路的控制下将 9 号和 10 号寄存器的内容分别连接到 ALU 的两个输入端, 这里我们需要进行的与运算。如果按照上一页给出的例子, 这时候控制电路给出的选择信号应该是 00。 最后控制电路还会将 ALU 的输出与 8 号寄存器的输入相连, 这就相当于左边这张图所显示的电路的连接。 最上面是由 32 个 D 触发器组成的 8 号寄存器,中间是 9 号寄存器, 然后是 10 号寄存器。9 号,10 号寄存器的 Q 端的输出会被链接到 ALU 的两个输入, 同时 ALU 的功能选择信号输入了与运算所对应的编码。 然后 ALU 的输出会被连接到 8 号寄存器的输入 D 端, 所以在某一个时钟周期内,ALU 会按照输入的要求完成相关的运算,并将运算结果送到输出信号上。 输入结果经过连线的传送, 会送到 8 号寄存器的输入端, 等到下一个时钟上升沿来临的时候, 8 号寄存器就会将输入端的信号采样,存入到寄存器内部,并会在输出端表现出来。 之后的运算如果使用 8 号寄存器作为输入的话,就会使用这个新的值

​

这一节我们讲解了 如何通过简单的门电路构造出不同的逻辑运算单元, 而且我们还知道了如何将不同的运算单元整合成一个完整的 ALU。 但是 ALU 当中的算术运算单元又是如何实现的呢? 我们从下一节开始分析。

上次更新: 2025/5/5 16:37:43
303-寄存器的基本原理
305-加法和减法的实现

← 303-寄存器的基本原理 305-加法和减法的实现→

最近更新
01
学点统计学:轻松识破一本正经的胡说八道
06-05
02
2025 年 5 月记
05-31
03
《贫穷的本质》很棒,但可能不适合你
05-27
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式