【计算机组成原理】二、数据的表示和运算: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

相关文章

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内