上一讲,咱们看到了如何经过电路,在计算机硬件层面设计最基本的单元,门电脑,我给你看的门电路很是简单,只能作简单的“与(AND)”“或(OR)”“NOT(非)”和“异或(XOR)”,学习
这样最基本的单比特逻辑运算。下面这些门电路的标你须要很是熟悉,后续的电路都是由这些门电路组合起来的。
spa
这些基本的门电路,是咱们计算机硬件端的最基本的“积木”,就好像了高积木里面最简答的小方块,看似不起眼但把他们组合起来满最终能够搭出一个星际大战里面千年年隼这样的大玩意儿。设计
咱们今天包含十亿级别晶体管的现代 CPU,都是由这样一个一个的门电路组合而成的。
3d
一、2个8位整数的加法blog
一、2排8个开关加法获得结果基础
二、须要1排8位的开关原理
二、其实加法器就是像一个办法把三排开关电路连起来
bfc
三、咱们人在计算加法的时候通常会怎么操做
打包
四、为何咱们须要异或?软件
其实异或就是一个最简单的整数加法,所须要使用的基本电路
五、进位
那这个就对应一个与门,也就是有且只有在加数和被加数都是1的时候,咱们的进位才是1
六、半加器
因此、经过一个异或们计算机出个位,经过一个与或门计算出是否仅为,咱们就经过电脑算出了一位数的加法、因而、咱们把两个门电路打包,给它取一个名字,就叫作半加器
七、半加器的电路演示
一、解决了什么问题?
二、存在什么问题?
咱们在写程序的时候如何知道本身的计算机结果是否会溢出?
看到全加器的电路设计,相信你应该明白,在整个加法器的结果中,咱们其实有一个电路的信号,会标识出加法的结果是否溢出。咱们能够把这个对应的信号,
输出给到硬件中其余标志位里,让咱们的计算机知道计算的结果是否溢出。而现代计算机也正是这样作的。这就是为何你在撰写程序的时候,可以知道你的计算结果是否溢出在硬件层面获得的支持。
相信到这里,你应该已经体会到了,经过门电路来搭建算数计算机的一个小功能,就好像搭乐高积木同样
咱们用两个门电路,搭出一个半加器,就好像咱们拿两块乐高,叠在一块儿,变成一个长方形的乐高,这样咱们就有了一个新的积木组件,柱子。
咱们再用两个柱子和一个长条的积木组合一下,就变成一个积木桥。而后几个积木桥串接在一块儿,又成了积木楼梯。
当咱们想要搭建一个摩天大楼,咱们须要不少不少楼梯。可是这个时候,咱们已经再也不关注最基础的一节楼梯是怎么用一块块积木搭建起来的。
这其实就是计算机中,不管软件仍是硬件中一个很重要的设计思想,分层。
从简单到复杂,咱们一层层搭出了拥有更强能力的功能组件。在上面的一层,咱们只须要考虑怎么用下一层的组件搭建出本身的功功能,而不须要下沉到更低层的其余组件。
就像你以前并无深刻学习过计算机组成原理,同样能够直接经过高级语言撰写代码,实现功能
在硬件层面,咱们经过门电路、半加器、全加器一层层搭出了加法器这样的功能组件。咱们把这些用来作算术逻辑计算的组件叫做 ALU,也就是算术逻辑单元。当进一步打造强大的 CPU 时,
咱们不会再去关注最细颗粒的门电路,只须要把门电路组合而成的 ALU,当成一个可以完成基础计算的黑盒子就能够了。
以此类推,后面咱们讲解 CPU 的设计和数据通路的时候,咱们以 ALU 为一个基础单元来解释问题,也就够了。