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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则