暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

逻辑电路的基本单元——门电路

Turbo的札记 2020-03-21
2089

将任何人类所创造和理解的符号、逻辑、数值和含义用只有0和1的二进制数表示,通过数字电路的连通/高电压表示1,断开/低电压表示0。


将最基本的算子—门电路组合成能处理更加复杂逻辑、进行各种运算的电路,基于复杂的逻辑电路来处理大量的二进制数,是当今计算机世界的基石。


这种用数字信号完成对数字进行算术运算和逻辑运算的电路称为数字电路。


我们先抛开要用什么电子元件来表示、处理数字信号,将其功能抽象出来,研究它能做什么,以及如何组成更加复杂的逻辑电路。

或门/OR

门电路这样的说法十分形象,这种电路真的像一扇门,输入信号从这扇门进去,再从门里出来的是运算结果。
输入端可以有很多,只要有一个是1,输出的结果(只有一个)便为1。


与门/AND

输入端全为1时,单一输出结果为1,否则为0。


非门/NOT

输入端和输出端均只有一个,输出结果和输入相反。


与非门/NOT AND/NAND

这是一个由与门和非门组成的二层逻辑门/算子,将与门的输出取反。
输入全为1时,输出0,否则为1。


同理,也可以有或非门/NOR


只能算一位的加法器—异或门XOR

这是一个三层封装的逻辑电路,由一个或门、一个与非门、和一个与门组成。
输入端相同输出0,不同输出1。

这个门可以理解成由或门改造得来:
S1.或门除了1+1以外,输出结果均符合二进制加法运算,所以只需要给或门填一点东西,将输入端均为1时得到的结果加工使之得0,同时又不影响其他三种输入结果即可。
S2.假设在或门的输出端添一个与门,将或门的输出作为与门的一个输入。
S3.与门的特征是只有输入均为1,输出才为1。原始输入为两个0与门输出必定为0,原始输入一个1一个0,则需要另一个输入为1才能不影响其他三种输入下的结果。
S4.也就是说,还需要添一个门,将这个门的输出作为与门的另一个输入,并且这个门满足当输入为一个0一个1的时候,输出为1,输入两个1的时候输出为0,输入两个0输出是什么无所谓。与非门不就刚好满足!



同理,还有同或电路/XNOR/EOR

输入相同时输出1,不同时输出0。
这是一个天然的比较器。比较几个数是否相同,相同输出1。


磁盘阵列中的RAID5就是利用了异或运算的特点来实现数据恢复:

使用n块硬盘,n≥3,其中n-1块用来存数据,留一块存放XOR校验值;
存数据的各个盘相互的将他们储存的二进制数一一对应,进行异或运算得到一个校验值;

如此一来,在单次损坏一块硬盘的情况下(存放校验值的盘也可以),这张盘的数据就能够得到恢复。

你可以尝试一下计算这样一个表达式的结果:1 XOR 0 XOR 1 XOR 1
       显然结果为1。

现在已知结果,抹去表达式中任意一个数字,都可以通过结果来反推出抹掉的数字。

这就是实现数据恢复的原理:已知异或表达式的值,结合表达式其他的操作数可以推出任意一个操作数的值。


文章转载自Turbo的札记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论