[音乐] 上一周介绍了各类数据的表示和在存储器中的
存储,这些数据最终通过相应的运算指令被处理 因此,本周我们将学习数据的运算
前面提到冯·诺依曼结构计算机的一个重要 特征是所有信息都是采用二进制编码
也就是说计算机中的所有运算都是基于0和1进行的
那么计算机是如何基于0和1来构造所有的运算电路的呢?
下面我们将简要介绍有关运算电路的基础
及数字逻辑电路基础 关于0和1的一套数学运算体系
起源于1850年前后英国数学家乔治·布尔的工作
因此这样的一套运算体系称为布尔代数
那么布尔代数的主要的思想 就是将0和1来代表逻辑值
"假"和"真",也就是说用0代表"假",用1代表"真",这样的话,命题逻辑
当中的一些推理关系,可以用基于0和1的布尔代数运算
来构建,最基本的逻辑运算有与,就是AND
操作,或就是OR操作,而非就是NOT操作
那么这些基本的运算,它的运算符AND操作就是
与可以用点或者用这个符号来表示,或运算呢,可以用加
或者用这个符号表示,非呢,可以在一个 变量上面加上一横,比如说A上面加一横,就是A上一bar
表示对A取反,也就是非操作,或者在变量前面加一个这个符号
这是运算符,通常呢我们用真值表来反应输入和输出之间的关系
比如说现在我们要表示与或非
三种逻辑运算的关系,我们可以画成这样一个真值表
那么这个输入就是A和B这样两个变量 这两个变量的取值可以是00
01 10 11 一共有4种组合,就是两个变量
那么它的组合数就是2的2次方,4种组合,这4种
组合下面,与或非三种逻辑运算
它的结果就可以用真值表来表示,那么与操作的含义就是
当A和B当中,只要有一个是假,那么它的结果
就是假,只要有一个是0结果就是0,只有当A和B都是真的时候
A与B的操作才是真,两个都是1的时候,结果才是1,或操作是说
在A和B两个变量当中,只要有一个是真,结果就是真,也就是说只要有一个是
1,结果就是1,只有当两个都是假的时候,结果
或操作的结果才是假,也就是输入是00的时候,结果是0
非操作就是对这个变量取反 那么也就原来是假,那就是结果就是真,原来是真,结果就是
假,那么0变成1,1变成0,这是与或非三种操作
那么任何一种逻辑表达式 我们都可以写成这三种基本运算的逻辑组合
都可以写成用与或非三种基本运算来表示
比如说这个异或运算,异或运算的表达式
A异或B,这个异或的这个运算符用这个 运算符表示,A异或B,它可以写成
A的反与B,或上A与B的反
反可以用与或非三种运算组合来表示 那么它的这个含义是什么呢
? A异或B,或者我们也称A不等价于B,也就是A和B的不等价运算
它的含义是说只有当A和B
不相等,相异的时候,不等价的时候,它的结果
才是1,当它们两个都是 00,也就是两个都是假,或者两个都是真的时候
结果是假,实际上也就是1的计数是奇数个的时候
结果是1,1的这个个数是偶数个的时候,结果是0 这个就是不等价运算,或者叫异或运算
我们也可以写成这样的一个,画成这样的一个真值表,来表示这个运算的这个关系
输入和输出之间的关系,那关系我们也可以用一个逻辑表达式来表示,这里面有几个概念
一个是真值表的概念,真值表就是把输入的所有的 组合在这个不同的组合下面得到的所有的
结果全部画出来,这是反应了输入输出之间的关系
那么这里的A和B都是称为变量,这个是
逻辑运算的结果,这个写成一个符号的形式,那么这个
叫逻辑表达式,逻辑表达式,这是最基本的几种逻辑运算
那么这个逻辑运算在机器里面是可以通过门电路来实现的
与的操作用与门实现,或的操作用或门实现 非的操作用非门实现,那么这个与或非的门电路的符号
我们是规定是这样的,与就是画成这样一种形式表示A和B
与的结果等于这个输出F,这种符号表示或操作的符号
A或B结果等于F,输出 这个是表示取反,就是非门对A取反
A=0,输出就等于1;A等于1,输出就等于0 那么其他的门电路我们就可以
用这三种门电路来构建,比如说我们刚才讲的 异或这个操作,异或逻辑
我们可以写成这样的一个逻辑表达式,这个逻辑表达式实际上是对A先取反
那么这个地方我们可以对A取反 就是等于A上一bar,就是A的反
然后和B进行与 与出来的是这个或门的一个输入,另外一个是A
与B反,那么就是A与B取反,这两个与起来又作为
或门的另外一个输入,这两个输入相或以后,送到一个或门上去
输出的结果就是异或操作的输出,所以我们
只要用与或非门就可以构建 其他任何的逻辑门电路
刚才我们讲的是一位的逻辑,也就是一个真假值
和另外一个真假值进行某种逻辑运算 得到的结果,那么在机器里面我们知道
可以用一个位串来表示n个逻辑值
那么这个n位的逻辑运算只要重复使用相同的那个门电路就行了
比如说一个位串A 它是由n个0和1组成的
n位的01序列,B也是n位的01序列 然后对A和B进行与操作的时候
实际上我们是An-1和Bn-1进行与
An-2和Bn-2进行与,一直到最后 0、
A0和B0进行相与,也就是说我们是 按位相与的,因此我们只要用n个
门电路,n个与门就可以实现n位的逻辑操作,刚才我们举的是
与的这种逻辑,按位或按位取反、 按位异或都是一样的
我们用逻辑符号表示,我们只要在这个输入和输出
上面打上一个n就表示这个地方的输出有n位
那么真正实现的时候就是n个逻辑门电路来实现的
这个与门也是这样子的,或门只要在输入输出上面标上一个位数就可以了
反门也是这样子的,刚才我们讲的异或门
是用与或非三种门电路实现的这个异或门,它的符号是这样的
后面是一个或门的符号再加上这个圆弧,这样的话是一个异或操作
组合逻辑部件是计算机里面的一种部件
那么根据电路它是否有存储功能,我们可以分成两类
一类就是刚才我们提到的那些组合逻辑部件
它不能存储信息,它的输出仅依赖于输入,比如说刚才我们举的
那个非门,非门的输出F,完全 取决于输入A,输入A是0,输出就是1
输入A是1,输出F就是0,那么这个输出F完全取决于这个输入A
它跟其他没有关系,这种叫组合逻辑电路。
还有一种是时序逻辑电路,它具有存储功能。
它实际上是一个状态的转换,那么当前的这个输出 不仅取决于当前的这个输入,还跟这个
存储单元当前的状态有关系,它是一种时序逻辑电路。
利用这个基本的门电路,可以构成一些特定的
组合逻辑部件,这种特定功能的组合逻辑部件,我们称为功能部件。
比如说这个部件是专门用来进行译码的,嗯,我们
称为译码器,这个部件专门用来编码的,我们称为编码器。
或者是进行多路选择的,多路选择器。
或者用来做加法运算的,那我们叫加法器,那这些都是最常用的
功能部件,都是一种组合逻辑 电路,组合逻辑部件。
实现一个功能部件的过程很简单,首先是画真值表。
就是这个功能部件它有输入有输出 把它的输入输出之间的关系,用这个真值表进行
描述,完了以后,根据这个真值表可以得到逻辑表达式,
然后根据逻辑表达式,就可以画出逻辑电路,就可以实现逻辑电路了。
这是最基本的一个过程,后面我们来看一下这个
多路选择器,多路选择器它的这个功能就是
多选一的功能,最简单的就是二选一的电路, 就是这个输出或者选择把
A输出去,或者选择把B输出去。
这个叫二选一,就是F要么等于A要么等于B。
那么什么时候等于A,什么时候等于B呢?它有一个控制端S来指出
那么当S等于这个地方写上0,这个地方写上1,它的含义就是说
当S等于0的时候这个F呢就等于A,就把A选择出去。
当S等于1的时候就把B选择作为F输出,所以它的这个电路
实际上就是这样的,当S等于0的时候,这一个 与门的输入有一个是等于0,因此这个地方是等于0。
那么等于0的时候,这个小圆圈表示取反
0取反就是1,那么这个与门的输入这个地方就是1。
是1的时候这个与门的输出就完全取决于Ai, Ai等于1,这个输出就是1,它等于0这就是等于0。
因为它是1,它是1,那么这边是1的时候,两个都是1的时候,输出是1。
所以这个输出完全是等于Ai,那么这个Ai 和刚才我们讲过的这个0,因为这样输入是0,所以这样输出是0。
和0相与输出来的结果当然就是0与上任何一个值
结果还是等于任何一个值,因为0在与门当中0就不起作用,完全取决于另外一个
是0输出就是0,是1输出就是1,所以我们可以看到 当S等于0的时候就把Ai输出,变成Fi了
那么这是一位的二路组相连,那么就是只有一个0或者1的情况
那么这个S等于1的时候很显然就是把Bi选出去。
Bi选出作为Fi,这是一位,如果n位的话
这样只要有一个一个的叠上去,那就n个这样的电路就可以实现n位的二路
选择器了,这个里面二路选择器就有两个输入端,一个输出端,有一个控制端
控制端的输出,控制端的功能就是决定输出等于哪一个输入,
那么这个简单的二路选择器我们可以扩展成 k路的选择器,比如说这边有
A输入还有B还有C。
或者是D,ABCD三选一或者四选一,这种情况下S
如果是三选一或者四选一的话,这个S就要有两位
就是00把A选出去,01把B选出去,10把C选出去 所以这边的这个S这个控制端的位数
是和输入端的个数是相关的,如果输入是三到四路输入,
这个S就有两位,多余五个输入的话,那么就是五到八。
那就是五选一或者六选一、 七选一、
八选一 的时候,S就等于3,因为2的三次方
等于8,2的三次方等于8,那么这边就是 五路或者六路七路八路的时候,S就应该有三位。
这个是k路选择器, 通常我们用这个二路选择器,二路选择器用的比较多一点。
那么这个就是多路选择器,是一种功能部件。
可以说是最简单的这种功能部件。
[音乐] [音乐]