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

相关文章

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读