【计算机组成原理】二、数据的表示和运算:3.算术逻辑单元ALU(逻辑运算、加法器)

本文主要是介绍【计算机组成原理】二、数据的表示和运算:3.算术逻辑单元ALU(逻辑运算、加法器),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4.运算器ALU

文章目录

    • 4.运算器ALU
      • 4.1逻辑运算
        • 非(NOT)
        • 与(AND)
        • 或(OR)
        • 异或(XOR)
        • 同或(XNOR)
      • 4.2加法器
        • 4.2.1一位全加器
        • 4.2.2串行加法器
        • 4.2.3并行加法器
      • 4.3ALU功能与结构

运算器由 算术逻辑单元ALU和若干 通用寄存器(用于暂存操作数和中间结果),如 累加器ACC乘商寄存器MQ操作数寄存器X变址寄存器IX基址寄存器BR等组成。其中 ACC,MQ,X是必须有的

运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂存在运算器中。

4.1逻辑运算

命题联结词

同或异或
其他名称,反,逻辑否,逻辑乘,逻辑积,逻辑加,逻辑和同或异或,模2加
符号(数电)¬A Ā A’ ~A∧ · ×∨ +
符号(计算机位运算)~&&||^
符号(离散)¬
使用的联结词(离散)否定联结词合取联结词析取联结词等价联结词

下面从表达式、真值表、门电路三个方法真是逻辑运算。

非(NOT)

Y = A’

AY
10
01
与(AND)

Y = A · B = AB

Y = A && B

A、B必须全部为真,Y才为真。

ABY
000
010
100
111
或(OR)

Y = A + B

Y = A || B

A、B只要有一个为真,Y就为真。

ABY
000
011
101
111
异或(XOR)

Y = A ⊕ B

相异为一,相同为零。AB不一样时结果为1,AB相同时结果为0。

ABY
000
011
101
110
同或(XNOR)

Y = A ⊙ B

相同为一,相异为零。AB相同时结果为1,AB不一样时结果为0。

ABY
001
010
100
111

在这里插入图片描述

4.2加法器

加法器是由全加器再配以其他必要的逻辑电路组成的,根据组成加法器的全加器个数是单个还是多个,加法器有串行和并行之分。

在这里插入图片描述

4.2.1一位全加器

全加器(FA)是最基本的加法单元,有加数Ai、加数Bi与低位传来的进位Ci-1共三个输入,有本位和Si与向高位的进位Ci共两个输出。

全加器的逻辑表达式如下:

在这里插入图片描述

一位全加器逻辑结构,逻辑单元:

在这里插入图片描述

4.2.2串行加法器

在串行加法器中,只有一个全加器,数据逐位串行送入加法器中进行运算。若操作数长n位,则加法就要分n次进行,每次产生1位和,并且逐行地送回寄存器。进位触发器用来寄存进位信号,以便参与下一次运算。

在这里插入图片描述

4.2.3并行加法器

并行加法器由多个全加器组成,其位数与机器的字长相同,各位数据同时运算。并行加法器可同时对数据的各位相加。虽然操作数的各位是同时提供的,但低位运算所产生的进位会影响高位的运算结果,并行加法器的最长运算时间主要是由进位信号的传递时间决定的,而每个全加器本身的求和延迟只是次要因素。

在这里插入图片描述

提高并行加法器速度的关键是尽量加快进位产生和传递的速度

并行加法器的进位产生和传递如下:

并行加法器中的每个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。通常将传递进位信号的逻辑线路连接起来构成的进位网络称为进位链

进位表达式为:
C i = G i + P i C i − 1 ( G i = 1 或 P i C i − 1 = 1 时, C i = 1 ) C_i=G_i+P_iC_{i-1}(G_i=1或P_iC_{i-1}=1时,C_i=1) Ci=Gi+PiCi1(Gi=1PiCi1=1时,Ci=1)
Gi是进位产生函数,Gi=Ai Bi
Pi是进位传递函数,Pi=Ai⨁Bi

当Ai与Bi都为1时,Ci=1,即有进位信号产生,所以将AiBi称为进位产生函数或本地进位,并以Gi表示。

Ai⨁Bi=1且Ci-1=1时,Ci=1。这种情况可视为第i-1位的进位信号Ci-1可通过本位向高位传送,因此,把Ai⨁Bi称为进位传递函数(进位传递条件),并以Pi表示。

并行加法器的进位通常分为串行进位与并行进位。

4.3ALU功能与结构

ALU的基本功能包括:

  • 算术运算:加减乘除四则运算

  • 逻辑运算:与或非,异或等

  • 辅助功能:移位、求补等

  • ALU基本结构:

在这里插入图片描述

Ai和Bi为输入变量;Ki为控制信号,Ki的不同取值可决定该电路做哪种算术运算或逻辑运算;Fi为输出函数。

  • 典型的4位ALU芯片74181外特性如下:

在这里插入图片描述

CU解析完指令的含义(加减乘除逻辑运算)之后,发出一些信号,这里就是S0~S1。M的值用来区分算术运算(M=0)逻辑运算(M=1),S3~S0的不同取值可实现不同的操作。

机器字长的真面目:一般来说,ALU是多少位,那么寄存器一般也会设计为多少位,来适配ALU的位数。所以一般ALU的位数就是机器字长

C、AB、G、P一般是用于和其他机器进行串联。

例题:在串行进位的并行加法器中,影响加法器运算速度的关键因素是()
 A.门电路的级延迟 B.元器件速度
C.进位传递延迟  D.各位加法器速度的不同

答案:C。

例题:组成一个运算器需要多个部件,但下面的()不是组成运算器的部件。
 A.状态寄存器  B.数据总线 
C.ALU D.地址寄存器

答案:D;数据总线供ALU与外界交互数据使用,地址寄存器不属于运算器,而属于存储器。

这篇关于【计算机组成原理】二、数据的表示和运算:3.算术逻辑单元ALU(逻辑运算、加法器)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1093662

相关文章

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键