《计算机组成与体系结构(原书第4版)》 —3.4 数字组件
3.4 数字组件
在打开一台计算机并观察内部结构时,人们会认识到有很多组成系统的数字组件需要了解。所有计算机使用的都是逻辑门的集合,它们通过导线作为信号通路建立连接。这些逻辑门往往都是标准化的,使得可用一组模块构建整个计算机系统。令人惊奇的是,这些模块都利用基本的AND、OR和NOT构造。在接下来的几节中,将讨论数字电路与布尔代数的关系、标准模块和两个不同类别的示例,以及构建这些模块需要的组合逻辑和时序逻辑。
3.4.1 数字电路及其与布尔代数的关系
布尔函数和数字电路之间有什么关系?可以看出,简单的布尔运算(如AND或OR)可以通过简单的逻辑门来表示。更复杂的布尔表达式可以表示为AND、OR和NOT门的组合,这样可以用一个逻辑图描述整个表达式。这个逻辑图从物理组件上表示给定表达式,或实际的数字电路。假设函数F(x,y,z)=x+y′z(前面介绍过)。图3-9所示为实现此函数的逻辑图。
图3-9 表示F(x,y,z)=x+y′z的逻辑电路图
回想一下关于乘积的和形式的讨论。这种形式非常适用于数字电路。例如,假设函数为F(x,y,z)=xy+yz′+xyz,其中每项对应于一个与门,其和由一个或门实现,从而产生以下电路:
我们可以为任何布尔表达式建立逻辑图(这反过来又产生数字电路)。在一定程度上,由计算机执行的每个操作都是一个布尔表达式的实现。对于高级语言程序员,这可能不是很明显,因为高级语言和布尔逻辑存在语义鸿沟。汇编语言程序员更接近硬件,使用布尔技巧能加速程序性能。使用XOR运算符可以清除存储单元的值,如A XOR A。XOR运算符也可用于交换两个存储单元的值。同样的XOR语句应用于两个变量3次,比如说A和B,交换它们的值:A=A
在高级语言中位掩码几乎是不可能实现的,即根据指定的模式把一个字节的各位剥离(设置为0)。在处理字节的各个位时,布尔位掩码操作是必不可少的。例如,如果要找出一个字节的第四个位是否被设置,将字节和04(十六进制)进行与运算,如果结果不为0,则该位等于1,掩码能屏蔽任何位。在想要保留的那个位的位置放置1,并设置其他为0,用AND运算留下所需要的位。
通过布尔代数可分析和设计数字电路。因为布尔代数和逻辑图之间存在关系,通过简化布尔表达式也就简化了电路。数字电路使用逻辑门来实现,但逻辑门和逻辑图并不是在设计阶段代表数字电路最方便的形式。布尔表达式在此阶段使用是因为它们更易于操作和简化。
由表达式表示的布尔函数的复杂性对所得到的数字电路的复杂性有直接影响:更复杂的表达式就会得到更复杂的电路。应该指出的是,通常不会使用布尔定律来简化电路。前面已经看到,有时这可能是相当困难和耗费时间的事。但是设计师可使用更自动化的方法来做到这一点。该方法涉及利用卡诺图(Kmaps)来进行逻辑电路的简化。阅读本章“特别关注”以了解卡诺图如何用于简化数字电路。
- 点赞
- 收藏
- 关注作者
评论(0)