cpu芯片是如何计算加法和减法的

CPU是如何计算加减法的?这个看似简单的问题,计算机处理起来却非常复杂。CPU里面是一块小芯片,将芯片放大,可以看到CPU内部有上百亿的晶体管。晶体管可以使用这种符号来表示,它的一端是发射极,另一端是极电极,中间是积极。当发射及通电时,晶体管是无法导通的,但是如果在机极上施加一个小电流,晶体管就会被导通。本质上,晶体管可以看作一个开关,只不过晶体管是通过电信号来操控的。现在我们将两个晶体管串联起来,当两个晶体管个积极输入都为零,或者两个晶体管任何一个输入为零时,晶体管都不会被导通。只有当两个晶体管的积极都输入一时,整个电路才会被导通。这种电路也被称为宇门电路,它的电路符号是这样的,除了串联,我们还可以将晶体管并联起来,当积极输入都为0时,输出为0,电路无法导通,但是只要有一个输入为1或。这二者都唯一,输出就唯一,电路就会被导通。这种电路也被称为后门电路,它的电路符号是这样的,现在我们将晶体管的输出端往前拉,当积极不通电,也就是为0时,输出端有电流通过,记录为1,当积极通电,也就是为1时,输出端没有电流通过,记录为0。可以看到输入与输出的值刚好是相反的,这种电路被称为非门电路。到这里,我们已经得到了与门或门、非门三种最基本的门电路。有了这三种门电路,我们可以组成更为复杂的异或门电路,它是两个输入,尤且只有一个为一,始输出结果才为1,其他情况结果都为0。抑或门电路的符号是这样的。有了这四种门电路,我们就能设计一个加法器来计算加法了。设计前,我们先来看一个二进制加法,前面三组计算非常简单,但是计算1+10有所不同,因为二进制是逢二进一,所以计算1+10。低位满2向前进一位,所以得到10。同时我们将前面三组的计算结果补上0,然后拆分成这种真值表。问题是电路要怎么设计才能输出右图所示的真值表呢?我们先将进位输出这一列隐藏掉,然后来分析一下这些值,可以发现两个输入有且只有一个唯一,输出结果才为1,其他情况结果都为0,这不就是异或门电路的特性吗?所以这个加法器中首先需要一个异或门电路来进行求和。然后我们接着分析,现在将求和这一列隐藏掉,可以发现两个输入必须都为1,输出结果才为1,其他都为0,这不正是宇门电路的特性吗?所以我们在加法器中再放一个与门电路来求进位值,这其实就组成了一个最简单的加法器。但是它只能实现两个一位二进制数的加法运算,也被称为半加器,现在我们用半加器来计算多位的二进制加法,会发生什么呢?回答这个问题前。如果你也想制作这种知识动画,可以通过左下角的精选APP进行学习,里面都是大数据整理归纳好的优质合集,赶紧下载试试吧,从右往左,先计算1+11+1,满二进一,接着计算0+1,由于前面进位了一个1,但是半加器没有单独的输入来接收这个1,所以得到的结果还是1,接着再计算1+1,得到10,最终半加器得到的结果1010与正确答案1100并不相等。之所以会这样,问题就出在这个进位上。为了解决进位问题,我们将半加器继续改进,设计成这种全加器。全加器在输入端多加了一个进位输入。为了便于理解,我们先不要关心全加器内部单个晶体管是如何运行的,我们直接将它们看成一个整体,现在我们再来计算前面的加法,还是先计算1+1,最开始时没有进位,所以进位为01+1+0,得到的结果为10,接着计算0+1,注意这里这时。计算的进位输出一会被赋值给下一个全加器的进位输入,所以计算1+0+1得到结果为10,这个进位输出一会继续赋值给下一个全加器的进位输入,所以计算1+1+1得到111,最终结果为1100,这和正确结果是一样的。如果我们想计算8位的二进制计算,只需要将8个全加器连接起来,就能进行8位的加法运算了。为了便于理解,我们还是不要关注细节,而是将它们看成一个整体。根据加法器,我们还可以设计出减法器,减法器内部晶体管连接是这样的,同时还可以设计出增量器和减量器,然后将这些运算器作为一个整体封装到CPU的内部。这里有个问题,CPU怎么知道该调用这几个运算器中的哪一个呢?其实很简单,计算机运行时会将程序代码解析成汇编指令代码,我们看第三行的AAPP指令,指令解析后其实就对应加法器。而S。UB解析后则对应的是解码器。问题是,这些指令是如何解析的呢?这就要用到二进制解码器。当我们向解码器输入不同的组合值,会激活不同位置的输出信号,为了便于理解,还是将它们封装起来。然后我们来看一下具体执行过程。由于计算机底层只认识二进制,所以汇编代码最终会被翻译成二进制。对于二进制的前两位,如果是00代表是算术运算指令,接下来的两位00代表加法运算,01代表减法运算,一一代表递减运算。这两位二进制也被称为操作码。当CPU需要进行计算时,会先判断二进制前两位是否为算术运算指令,如果是的,CPU会将操作码传入解码器,00代表加法运算,所以解码器会调用加法器来进行运算,然后将两个输入端加入进来,并与每个运算器相连接,这样一来,运算器就能根据指令的不同调用相应的运算器进行运。算,然后我们再将这个运算器整体进行封装,一个基础的算术逻辑单元就完成了。算术逻辑单元接收两个输入值,然后根据操作码的不同,内部会调用不同的运算器,最终得到相应的计算结果。当然,现代的CPU远远比这复杂,内部采用的是更为先进的MOS晶体管,可以实现更为复杂的算术运算和逻辑运算。本视频只是在非常浅显的层面进行了探讨。

我司专注于 线路板ERP线路板生产系统线路板ERP系统线路在线下单系统线路板下单系统PCB下单系统PCB小批量系统

线路板厂家。多年来一直专于线路板生产,PCB生产系统,多层板生产系统等。


Latest Blog Post

02 May 2014

Donec id elit non mi porta gravida at eget metus amet int

02 May 2014

Donec id elit non mi porta gravida at eget metus amet int

02 May 2014

Donec id elit non mi porta gravida at eget metus amet int