其他分享
首页 > 其他分享> > 运算器(串行加法器和并行加法器,ALU)

运算器(串行加法器和并行加法器,ALU)

作者:互联网

文章开始声明一点,从本章开始很多电路图都是博主从百度百科搜到的,因为实在是画得不好,如果有侵权请私信我,我在调用时也会注明出处。

这里就要说到我们组成原理的五个功能部件的第一个——运算器了。
注意:
1)运算器的功能主要包括算术运算和逻辑运算以及移位补位等辅助运算。
2)运算器的核心是算术逻辑单元(ALU)。
3)运算器的操作种类来源于控制器,操作的数值来源于存储器。处理结果往往返回存储器(也可以暂时保存)。
4)运算器也包含许多通用的逻辑单元,暂存操作数,累加器(ACC),商乘寄存器(MQ),操作数寄存器(X),程序状态寄存器(PSW)还有两个非必须的变址寄存器和基址寄存器。
5)PSW主要用于存放运算中得到的标志信息(是否溢出,进位错位,结果是否为负)。

加法器

1.一位全加器
一位全加器的图型如下:
在这里插入图片描述
图片来源于百度百科
A,B分别为两个加数,低位回传进来一个Cin作为进位,因此会有三个输入,输出和和进位所以有三个输出。
当A,B中1的个数为奇数时一定会产生0+1现象也就是会出现1;当A,B中1的个数为偶数个的时候一定会产生0+0或1+1现象所以当前和为0;
所以我们可以知道当前和其实就是一个异或运算。(这仅仅是在进位并未参与运算的情况下)。
当我们算加法的时候我们知道进位是要参与运算的,也就是说如果有进位的情况下我们要加入进位即A,B,Cin三者的异或运算为当前这一位的值。
进位的计算方式很简单:我们在对A,B异或运算得出为0时需要判断是因为两个都是0还是判断两个都是1,与非门是有1则1,所以A与B走与门,得两1才1。最后再与A,B异或的值相与即可得到。

为了便于理解我写一下公式:
Sum=A异或B异或C(注意这个C是第n-1个C)
C=(A异或B与C)与(A与B);

2.串行加法器
这个仅仅有一个一位全加器,也就是和一位全加器的过程一样不过是进行了n次。运算速度当然不会很快但是这个确实很省钱。

3.并行加法器
顾名思义就是好多个一位全加器一起加。这个速度肯定快,也比较花钱。
这个时候会出现两种情况一种是不同时进位(串行进位),我们很容易理解,因为我们再算加法的过程其实就是这种现象的抽象,写两排加数一个一个算。另外一种是同时进位(并行进位,先行进位)。
举个例子:
比如我们在计算的时候
C1=(A1异或B1与C0)与(A1与B1)
C2=(A2异或B2与C1)与(A2与B2)
这是串行
当我们并行的时候我们把C2改为:
C2=(A2异或B2与(A1异或B1与C0)与(A1与B1))与(A2与B2)
这样是不是就只需要知道刚开始的值就可以了,也就实现了并行。

ALU

在这里插入图片描述
左边是ALU的形状,A,B是两种输入数据,K是操作指令,F是输出函数。
右边是4位信号,这个是最简单的信号。可以进行16种逻辑运算和16种算术运算。
M用来说明是算术还是逻辑运算。
S则是不同的运算操作。
我们再每一个片内是并行运算的,但是我们把不同的片组合一起变为串行运算。

标签:全加器,运算,异或,加法器,运算器,串行,ALU,进位
来源: https://blog.csdn.net/m0_50210478/article/details/110438958