下载第 21章 总 线 连 接处理器无疑是计算机中最重要的部件,但并不是唯一的部件 。一台计算机也需要随机访问存储器( R A M)来存放机器码指令以便让处理器执行。计算机还必须有一些方法使这些指令进入 R A M(输入设备)以及一些方法使程序执行结果得以看见(输出设备) 。前面讲过,
R A M是易失性的,当断电时,它的内容就会丢失。所以计算机中另一个有用的部件是永久存储设备,当计算机断电的时候,它们可以保存代码和数据。
组成一台完整计算机的所有集成电路必须安装在电路板上。在一些小型机器上,所有的集成电路可以安装在一块板上,但更常见的是,不同的部件分开安装在两块或更多的板上,
这些板之间通过总线互相通信。简单地说,总线是提供给计算机中每块电路板的数字信号的集合,这些信号可以分为 4类:
地址信号。这些信号由微处理器提供,常用来寻址 R A M单元,也可用来寻址连接到计算机上的其他部件。
数据输出信号。也由微处理器提供,用来写入数据到 R A M或其他设备。要仔细推敲输入( i n p u t)和输出( o u t p u t)的含义。数据输出信号是从微处理器输出,变成 R A M和其他设备的数据输入信号。
数据输入信号。是由计算机的其余部分提供,由微处理器读入的信号。数据输入信号通常来自于 R A M的输出,也即表示微处理器读入存储器内容。但是其他部件也提供数据输入信号给处理器。
控制信号。由各种各样的信号组成,通常与计算机的特定处理器的控制信号一致。控制信号可来自于微处理器或从其他部件传送到微处理器。例如,微处理器可用一个控制信号来指示它要写一些数据到某一存储器地址。
另外,总线给计算机中的各个电路板提供电源。
早期家用计算机流行的一种总线是 S - 1 0 0总线,该总线 1 9 7 5年在第一台家用计算机 M I T S
A l t a i r上首先采用。尽管这种总线以 8 0 8 0微处理器为基础,但后来它也被其他一些处理器,如
6 8 0 0采用。 S - 1 0 0的电路板的规格是 5,3× 1 0英寸,电路板的一边有 1 0 0个接头可插在插槽里
(这就是 S - 1 0 0的来源) 。
S - 1 0 0计算机有一块较大的板称为母板或主板,上面有若干个 (如,1 2个 )互相连接起来的
S - 1 0 0总线插槽,这些插槽有时也叫扩展槽,S - 1 0 0电路板(也叫扩展板)插到插槽里。 8 0 8 0
微处理器及支持芯片(第 1 9章曾提到过)在此 S - 1 0 0板上。 RAM 在另一个或更多的其他 S - 1 0 0
电路板上。
S - 1 0 0总线是为 8 0 8 0芯片设计的,它有 1 6个地址信号,8个数据输入信号,8个数据输出信号(前面讲过,8 0 8 0自身是把数据输入、输出信号混合在一起的,由 8 0 8 0所在电路板上的另一个芯片来把这些信号分开成单独的输入、输出信号) 。总线上还有 8个中断信号,这些信号由那些需要 C P U立即做出响应的部件产生。例如(在本章后面将要讲到),当在键盘上敲一个键时,键盘会产生中断信号,8 0 8 0执行一个小程序确定是哪一个键并做出相应反应。包含
8 0 8 0的电路板上通常还有一个芯片称作 Intel 8214优先级中断控制单元,它用来处理这些中断。
当中断产生时,该芯片产生一个中断信号给 8 0 8 0,8 0 8 0响应中断。该芯片提供 R S T( R e s t a r t)
指令使得微处理器保存当前的程序计数器,并根据具体的中断信号转移到地址 0 0 0 0 h,0 0 0 8 h、
0 0 1 0 h,0 0 1 8 h,0 0 2 0 h,0 0 2 8 h,0 0 3 0 h或 0 0 3 8 h处去执行。
如果正在设计一个具有新的总线类型的新计算机,你可以选择公开你的总线规范或者保密。
如果一个总线规范是公开的,其他厂商 — 称为第三方厂商 — 可以设计并销售与这种总线相配套的扩展板。这些附加的扩展板使得计算机更有用且更令人满意,计算机的大量销售为扩展板提供了更大的市场。这种现象刺激许多小的计算机系统设计者坚持开放体系结构的原则,允许其他厂商生产计算机的外围设备。这样总有一种总线最终可以认为是工业界的标准。标准已成为个人计算机工业的重要组成部分。
最著名的开放式体系结构个人计算机起源于 IBM PC。 1 9 8 1年秋季,I B M公开了包括整个计算机完整电路图的 P C机技术参考手册,其中还包括 I B M为它制造的所有扩展板。这个手册是很重要的工具,它使得许多制造商可以生产自己的 P C机扩展板并且事实上产生了 P C机的
“克隆”体 — 兼容 P C机,兼容 P C机与 I B M P C机几乎完全相同且运行相同的软件。
源于 IBM PC的更新换代产品现在已占到桌面计算机系统大约 9 0 %的份额。尽管 I B M自身只有很少的市场份额,但它毕竟要比最初的 P C机采用专有设计的封闭式体系结构所占的份额要大。苹果公司的 M a c i n t o s h机开始就采用封闭式体系结构,根本不考虑开放其体系结构,这当初的决定可以用来解释为什么在目前的桌面计算机市场上 M a c i n t o s h只占有不到 1 0 %的份额。
(记住一点,无论一个计算机系统是在开放体系结构还是封闭体系结构下设计,都不会影响到其他公司开发在该计算机系统上运行的软件。只有那些特定的视频游戏软件开发商才会限制其他公司开发用于他们系统的软件。 )
最初的 IBM PC使用 Intel 8088微处理器,可寻址 1 M存储空间。尽管 8 0 8 8处理器内部是 1 6
位,但在外部按照 8位来寻址存储器。 I B M为最初的 P C机设计的总线现在称作 I S A( i n d u s t r y
standard architecture,工业标准体系结构)总线。扩展板上有一个 6 2针的插头,信号包括 2 0个地址信号,8个组合(复用)数据输入 /输出信号,6个中断请求信号和 3个 D M A( d i r e c t
memory access,直接存储器访问)请求信号。 D M A允许存储设备(本章最后将要讲到)比采用别的方法更快地进行操作。通常,微处理器处理所有的内存读 /写操作,但通过 D M A,其他设备可绕过微处理器通过总线直接进行内存读 /写操作。
在 S - 1 0 0系统里,所有的部件都安装在扩展板上。在 IBM PC机里,微处理器、一些支持芯片及一些 R A M安装在 I B M所称的系统板上,系统板也常称作主板或母板。
1 9 8 4年,I B M推出了 Personal Computer AT (先进技术型个人计算机 ),它采用 1 6位的 I n t e l
8 0 2 8 6微处理器,可寻址 1 6 M存储器。 I B M保留了已有的总线,但另加了一个 3 6针的插槽,其中包括新增的 7个地址信号(尽管只需要 4个),8个数据输入 /输出信号,5个中断请求信号和 4
个 D M A请求信号。
无论是数据宽度(从 8位到 1 6位到 3 2位)还是输出的地址信号数目,当处理器在这些方面的增长超出总线能力时,就需要对总线进行更新换代;当处理器达到较高的速度时,它也会超出总线的能力。早期的总线是为时钟频率是几兆赫而不是几百兆赫的处理器设计的。如果总线的设计不能适应高速传输,则可能引起射频干扰( R F I),从而引起收音机或电视机附近第 21章 总 线 连 接 219下载
220 编码的奥秘 下载的静态或其他噪声干扰。
1 9 8 7年,I B M推出了微通道体系结构( micro channel architecture,M C A)总线,这种总线的某些方面 I B M已申请了专利,这样 I B M就可以从其他使用这种总线的公司收到授权费用。
可能也正因为如此,M A C总线没有成为工业标准。取而代之的是 1 9 8 8年 9家公司 (不包括 I B M )
联合推出的 3 2位 E I S A( Extended Industry Standard Architecture,扩展的工业标准体系结构)总线。近年来,I n t e l公司设计的外围部件互联( peripheral component interconnect,P C I)总线在 P C兼容机上已普遍采用。
为理解计算机中各种不同部件是如何工作的,让我们再重新回到 7 0年代中期较质朴的年代。假想我们正在为 A l t a i r或者为我们自己设计的 8 0 8 0,6 8 0 0计算机设计电路板,我们可能打算为计算机设计一些存储器,用一个键盘作输入,一个电视机作输出,此外还有一些方法用来保存关闭计算机电源时存储器中的内容。现在来看一看我们所设计的把这些部件添加到计算机中所用的各种各样的接口。
第 1 6章讲过,R A M阵列有地址输入、数据输入、数据输出信号,并且有一个控制信号用来写入数据到存储器。地址输入信号的个数决定了 R A M阵列中可以存放的数值的个数:
R A M阵列中数值的个数 = 2地址输入信号个数数据输入 /输出信号的数目表明了存放的数值的位数。
7 0年代中期家用计算机中常用的存储器芯片是 2 1 0 2:
2 1 0 2是 MOS(metal_oxide semiconductor,金属氧化物半导体 )家族的成员,与 8 0 8 0,6 8 0 0
中使用的 M O S技术一样,M O S半导体器件很容易与 T T L芯片连接,但前者通常比 T T L器件的晶体管密度高但速度较慢。
通过统计地址信号( A0? A9),数据输出信号( D O)和数据输入信号( D I),可以算出这种芯片可以存放 1 0 2 4位。根据采用的 2 1 0 2芯片的类型,访问时间 — 即从一个地址提供给芯片到数据输出成为有效所需要的时间 — 从 3 5 0? 1 0 0 0纳秒不等。 R /- W(读 /写)信号在读存储器时是 1。当向芯片写数据时,R /- W必须在至少为 1 7 0? 5 5 0纳秒的时间段内为 0,这也取决于所选用的 2 1 0 2芯片类型。
特别要提到的是 -C S信号,它表示片选。当信号为 1时,片子不被选中,意味着片子对 R /- W
信号不做响应。然而,-C S信号对芯片还有一种重要作用,我们下面将简单描述一下。
当然,如果要为一个 8位的微处理器组织存储器,则肯定希望存储器按 8位而不是 1位存放。
按最少计算,需要把 8个这样的 2 1 0 2芯片连接在一起用来存放整个字节。可以把所有 8个芯片对应的地址信号,R /- W和 -C S信号连接起来达到此目的,结果如下图所示:
这是一个 1 0 2 4× 8的 R A M阵列,即 1 K B的 R A M
从实际观点来看,需要把这些存储芯片安装在一个电路板上。在一块板上可以装多少呢?如果真的把它们紧紧安装在一起,可以在一个 S - 1 0 0板上安装 6 4个这样的芯片,提供 8 K B
存储器。但是,最好还是宽松地安装,用 3 2个芯片组成 4 K B存储器。连接在一起用来存储完整字节的一组芯片(见上图)称为存储体。一个 4 K B存储器由 4个存储体组成,每个存储体有
8个芯片。
像 8 0 8 0,6 8 0 0这样的 8位微处理器有 1 6位地址可用来寻址 6 4 K B存储器。如果连接的是有 4
个存储体的 4 K B存储器板,则存储器板中 1 6位地址信号完成的功能如下:
1 0个地址信号 A0? A9直接连到 R A M芯片,地址信号 A1 0和 A11用来选择 4个存储体中的一个,
地址信号 A1 2? A1 5用来确定是哪一块存储器板。每个 4 K B存储器板占据微处理器整个 6 4 K B存储空间 1 6个不同的 4 K B地址空间范围中的一个,它们分别是:
0 0 0 0 h? 0 F F F h或
1 0 0 0 h? 1 F F F h或
2 0 0 0 h? 2 F F F h或
F 0 0 0 h? F F F F h
假定一个 4 K B存储器板的地址范围是 A 0 0 0 h? A F F F h,则意味着地址 A 0 0 0 h? A 3 F F h提供给其中的第 1个 1 K B存储体,地址 A 4 0 0 h? A 7 F F h提供给第 2个存储体,地址 A 8 0 0 h? A B F F h提供给第 3个存储体,地址 A C 0 0 h? A F F F h提供给第 4个存储体。
连接 4 K B存储器板是很经常的,后面可看到如何灵活地确定存储器板的地址范围。为获得灵活性,可以使用 D I P开关,一种双排直插封装的系列( 2? 1 2个)微小开关。它可以插入到普通的 I C插座中:
可以把这个开关和总线中的高 4位地址信号连接到称作 (比较器) 的电路中:
第 21章 总 线 连 接 221下载地址数据输入 数据输出选择存储板 选择存储体 寻址 RAM
222 编码的奥秘 下载前面讲过,只要两个输入中有一个而不是两个都为 1,则 X O R(异或)门的输出为 1。这也就是说如果两个输入相同 — 都为 0或都为 1— 则异或门的输出为 0。
假设闭合对应于 A1 3和 A1 5的开关,则意味着我们选择的存储器板的地址范围从 A 0 0 0 h?
A F F F h。
如果来自总线的地址信号 A1 2,A1 3,A1 4和 A1 5与开关中设置的地址相同,则 4个异或门的输出都是 0,也即 N O R(或非)门的输出为 1:
可以把 E q u a l信号通过 2- 4译码器生成 - C S信号来选择存储器板中的 4个存储体之一:
第 21章 总 线 连 接 223下载例如 A1 0 = 0,A11 = 1,则选择第 3个存储体。
如果回忆一下第 1 6章所讲的组织 R A M阵列的繁琐细节,可能会认为还需要 8个 4 - 1选择器从 4个存储体中选择正确的数据输入信号。但是,这并不需要。
通常,T T L兼容集成电路的输出信号或者大于 2,2伏(逻辑 1)或者小于 0,4伏(逻辑 0) 。
如果试着把输出信号连接起来,会出现什么情况呢?如果一个集成电路的输出为 1,另一个输出为 0,把这两个输出连接到一起后,结果会是什么呢?你是无法回答的。那么为什么集成电路的输出信号不能连接在一起呢?
2 1 0 2芯片的数据输出信号是 三态输出 。除了逻辑 0和逻辑 1外,数据输出信号还可以是第三种状态,这种状态就是什么都不是,就好像芯片的引脚什么都没有连接。当 - C S输入为 1的时候,2 1 0 2芯片就进入第三种状态,这意味着可以把 4个存储体对应的数据输出信号连接到一起,并用这 8个组合输出作为总线的 8个数据输入信号。
需要强调一下三态输出的概念,因为它对总线的操作至关重要。连到总线上的所有芯片都可以使用总线上的数据输入信号向处理器传送数据。任何时候,连到总线上的众多电路板中只有一个用来确定总线上的数据输入信号是什么。其他电路板不被选中,输出为第三态。
2 1 0 2芯片是一个静态随机访问存储芯片,即 S R A M,与动态 R A M( D R A M)不同。
S R A M每存储 1位需要 4个晶体管(与第 1 6章讲到的用触发器作存储器所需要的晶体管数不完全相同),而 D R A M每位只需要一个晶体管。 D R A M的缺点是它的外围支持电路较复杂。
只要芯片有电,S R A M芯片如 2 1 0 2就会保持已存储的内容;如果断电,则内容会丢失。
在这方面,D R A M也是如此。但 D R A M还需要周期性地对存储器进行访问,即使这些内容是不需要的。这称之为刷新,1秒钟内含有好几百次刷新,就好像隔一段时间就推一下某个人使他不要入睡一样。
抛开在使用 D R A M上的争论,过去几年 DRAM 芯片容量的不断增长使得 D R A M得到广泛的应用。 1 9 7 5年,I n t e l公司首创了 D R A M芯片,它可以存储 16 384位。与摩尔法则一致,
D R A M芯片的容量基本上是每三年增长 4倍。现在的计算机通常在系统板上有存储器槽,可以插上若干个 D R A M芯片组成称为单行直插存储体( S I M M)或双行直插存储体( D I M M)的小电路板。现在 1 2 8 M B的 D I M M售价在 $ 300以下。
即然已经知道了如何组织存储器,因此可不必把微处理器的存储空间都分配给存储器,
可以留一部分存储空间给输出设备。
阴极射线管( C RT) — 外观上有些像在家里看到的电视机 — 已成为计算机最普通的输
- CS第 1个存储体
- CS第 2个存储体
- CS第 3个存储体
- CS第 4个存储体出设备。连到计算机上的 C RT通常称为视频显示器或监视器,提供信号给显示器的电子部件称为视频适配器。视频适配器是计算机中的一块电路板,通常称为视频卡。
虽然视频显示器或电视机的二维图像看起来似乎很复杂,但它实际上是由一束连续的射线很快扫过屏幕而形成的。射线从左上角开始,从左到右扫过屏幕,然后很快回到左边,开始第 2行。每个水平行称为扫描行,每次回到下一行的开始称为 水平回扫 。当射线扫描完最后一行后,就从屏幕右下角回到左上角( 垂直回扫 ),并不断重复这一过程。以美国的电视信号为例,这种扫描每秒进行 6 0次,称之为 场频 。由于扫描速度很快,图像在屏幕不会出现闪烁。
由于采用隔行扫描,电视的情况有点儿复杂。两个场需要用来形成一个单独的帧,帧是一个完整的静态视频图像。每个场完成整个帧的一半扫描线 — 第一个场完成偶数扫描线,
第二个场完成奇数扫描线。 水平扫描频率,即扫描每个水平行的频率,为 15 750赫兹。把它除以 6 0赫兹,为 2 6 2,5行,这就是一个场的扫描线数。整个帧是它的两倍,即 5 2 5条扫描线。
不考虑隔行扫描技术的细节,生成视频图像的连续射线由一个连续信号来控制的。尽管电视节目在进行广播或通过有线电视系统传送的时候是音频和视频的混和,但最终还是分开的。这里讲到的视频信号与从 V C R、摄像机和电视机的视频插口上输入 /输出的信号是一致的。
对黑白电视来说,视频信号很简单也容易理解(彩色电视则要麻烦一些) 。每秒 6 0次场扫描,同时扫描信号中包含有用来标明一个场开始的 垂直同步脉冲,脉冲电压为 0伏(地),宽度为 4 0 0毫秒。 水平同步脉冲 用来标明每个扫描行的开始,它的信号为 0伏,宽度为 5毫秒,每秒出现 15 750次。在两次水平同步脉冲之间,信号从 0,5伏(黑)? 2伏(白)变化,0,5伏? 2
伏之间的电压用来表示灰度。
因而电视图像部分是数字的,部分是模拟的。图像在垂直方向上分成 5 2 5行,但每一个扫描线的电压是连续变化的 — 用来模拟图像的可视强度。但是电压并不是无限制地变化,电视机能响应的信号变化频率有上限,称为 电视机带宽 。
带宽是通信中很重要的概念,它关系到某个传输媒体上能够传输的信息量。在电视机中,
带宽限制了视频信号变化的速率。美国的广播电视带宽为 4,2 M H z。
如果把视频显示器连接到计算机,则很难把显示器想像成是模拟和数字混合的设备,它很容易看成是一个地地道道的数字设备。从计算机的观点来看,视频图像很容易想像成是由离散的点组成的矩形网格,这些离散的点称之为像素。
视频带宽限制了水平扫描行上像素的个数。我们定义带宽为视频信号变化 (从黑到白,再从白到黑 )的速率。具有 4,2 M H z带宽的电视机允许每秒 4 2 0万次 2个像素或者 — 用水平扫描频率 15 750去除 2× 4 200 000— 每个水平扫描行 5 3 3个像素。但是大约 1 / 3的像素是不可用的,
因为它们被隐藏了 — 或者在图像的远端或者在射线水平回扫中。水平扫描行上剩下大约有
3 2 0个像素是有用的。
同样,在垂直方向上也不是 5 2 5个像素都有用。实际上,在屏幕的上、下部和在垂直回扫过程中都会有损失。计算机在用电视机显示时不采用隔行扫描,垂直方向上的像素数目是
2 0 0。
因此,最初连到普通电视机上的视频适配器的分辨率为 3 2 0× 2 0 0,即水平方向 3 2 0个像素,
垂直方向 2 0 0个像素:
224 编码的奥秘 下载为了确定网格上像素总数,可以去统计也可以简单地用 3 2 0× 2 0 0得到 64 000个像素。根据视频适配器的配置(下面将会做简要的解释),每个像素可以是黑或白的,也可以为某一特定的颜色。
如果需要显示一些字符,能显示多少个呢?
这显然依赖于每个字符的像素数目。下图是一种可能的方法,每个字符使用 8× 8网格
( 6 4像素),
这是 A S C I I码 2 0 h? 7 F h对应的字符。 (不可显示的字符对应的 A S C I I码从 0 0 h? 1 F h。 )
每个字符由 7位 A S C I I码来标识,而每个字符的显示情况由相对应的 6 4位来确定。可以把这 6 4位信息看成代码。
使用这种字符定义,可以在 3 2 0× 2 0 0视频显示器中显示 2 5行,每行 4 0个字符。这足以显示 Amy Lowell完整的一首短诗:
第 21章 总 线 连 接 225下载
226 编码的奥秘 下载视频适配器需要一些 R A M来存储所显示的信息,微处理器可以向这个 R A M写入信息用来改变屏幕显示的信息。更为方便的是,这个 R A M可以是微处理器存储空间的一部分。上面讲到的显示适配器需要多少 R A M呢?
这并不是一个简单的问题,结果可能的范围是从 1 K B? 1 9 2 K B。
从最低估计开始,减少视频适配器所需存储器的方法之一就是限制适配器只显示字符。
我们已知一屏可以显示 2 5行,每行 4 0个字符,即总共 1 0 0 0个字符。这样视频适配器上的 R A M
只需存储这 1 0 0 0个字符的 7位 A S C I I码。这 1 0 0 0个 7位值大约是 1 0 2 4字节即 1 K B。
视频适配器还需要有包含所有 A S C I I码字符点阵的 字符生成器,这些字符生成器通常是只读存储器,即 R O M。 R O M是一种集成电路,特定的地址下得到特定的数据输出。不像 R A M,
R O M没有数据输入信号。
也可把 R O M看成是把一种代码转换成另一种代码的转换电路。存储 1 2 8个 A S C I I码字符的
8× 8点阵的 R O M需要 7个地址信号(代表 A S C I I码)和 6 4个数据输出信号。这样,R O M就把 7
位 A S C I I码转换成可确定字符显示结果的 6 4位代码。然而 6 4位的输出信号会使得芯片过大!如果有 1 0个地址信号,8个输出信号就会变得很方便,其中 7位地址信号确定某一 A S C I I码字符
(这 7位地址信号来自于视频适配器的数据输出),其余 3个地址信号用来标识字符中的一行。
如:地址 0 0 0标识最高行; 111标识最低行。 8位输出是每一行的 8个像素 。
例如,假设 A S C I I码为 4 1 h。这是大写字母 A,且有 8行,每行 8位。下表显示了字符 A的 1 0
位地址(空格分开了 A S C I I码和行代码)和数据输出信号:
地址 数据输出
1000001 000 0 0 11 0 0 0 0
1000001 001 0 1111 0 0 0
1000001 010 11 0 0 11 0 0
1000001 011 11 0 0 11 0 0
1000001 100 111111 0 0
1000001 101 11 0 0 11 0 0
1000001 11 0 11 0 0 11 0 0
1000001 111 0 0 0 0 0 0 0 0
第 21章 总 线 连 接 227下载从中你是否看见了以 0构成的背景上显示 1来画出的 A?
显示字符的视频显示适配器必须还要有一个光标逻辑电路。光标是一个小下划线用来表明键盘中输入的下一个字符将要显示的位置。光标字符的行,列位置值通常存在视频卡的两个 8位寄存器中,微处理器可向其中写入数据。
如果显示适配器并非只限于显示文本,则称为 图像适配器 。微处理器通过写入信息到图像视频卡上的 R A M而在屏幕上显示图像,其中包括各种大小和模式的字符。图像视频卡比仅显示字符的视频卡所需的存储器容量要大。显示 3 2 0× 2 0 0像素的图像视频卡有 64 000个像素。
如果一个像素对应于 1位 R A M,则该视频卡需要 64 000位 R A M,即 8 0 0 0字节。但是,这是最低的要求。 1位对应于 1个像素只能表示两种颜色 — 如,黑和白。 0可能对应于黑色像素,1
可能对应于白色像素。当然,黑白电视机显示的不仅仅是黑、白两种颜色,还可以显示出不同的灰度。为了在图像视频卡上显示灰度,通常一个像素对应于一个字节的 R A M。 00h 对应于黑色,F F h对应于白色,中间的数据对应于不同的灰度。显示 2 5 6种不同灰度的 3 2 0× 2 0 0视频卡需要 64 000字节的 R A M,与一直在讲的 8位微处理器的整个地址空间非常接近。
如果要达到很好的色彩效果,则每个像素需要 3个字节。仔细观察彩色电视机或计算机的视频显示器,可以看到每种颜色是三原色,即红、绿和蓝的不同混合。为了获得各种颜色,
需要一个字节来标明三原色每种颜色的强度。这样需要 192 000字节的 R A M。 (本书最后一章将会讲到更多有关彩色图形的内容。 )
视频适配器能够显示的颜色的多少与每个像素所用的位数有关。这种关系与本书中讲到的许多编码很相似,也牵涉到 2的幂:
颜色数 = 2每个像素使用的位数
3 2 0× 2 0 0分辨率是标准电视机所能达到的最大分辨率,正因为如此,为计算机特制的显示器比电视机具有更高的带宽。 1 9 8 1年 IBM PC所用的显示器可以显示 2 5行,每行 8 0个字符,
这是 I B M巨大且昂贵的大型机的 C RT显示器上的字符数目。对 I B M来说,8 0是一个很特殊的数字,因为它正好是 I B M穿孔卡片上的字符数。的确,早期连到主机上的 C RT显示器主要用来显示穿孔卡片的内容。偶尔你会听到一种过时的叫法,把仅显示字符的视频显示器的所有行称为卡片。
多年来,视频显示适配器的分辨率及显示的颜色不断增加。一个重要的里程碑是 1 9 8 7年
IBM PS/2个人计算机系列和苹果公司的 Macintosh II都采用了水平 6 4 0像素,垂直 4 8 0像素的视频适配器。这是从那时起就已保持的最低标准的视频分辨率了。
6 4 0× 4 8 0分辨率是一个具有重要意义的里程碑。也许你不会相信,它之所以重要的原因还要追溯到托尔斯·爱迪生!大约在 1 8 8 9年,当爱迪生和工程师 William Kennedy Laurie
D i c k s o n研究电影摄影机和电影放影机的时候,他们决定使电影画面的宽比高要多出 1 / 3。宽和高的比例称为长宽比。 E d i s o n和 D i c k s o n确定的这个比例通常表示为 1,3 3∶ 1或 4∶ 3;在 6 0多年的时间里,这个长宽比为许多电影所采用,并且电视上也采用了这个长宽比。直到 1 9 5 0年的早期,好莱坞引入宽银幕技术来与电视竞争才打破了 4∶ 3的长宽比。
像电视一样,许多计算机监视器的长宽比也是 4∶ 3,这很容易用尺子测量一下来验证。
6 4 0× 4 8 0分辨率的比例也是 4∶ 3,这意味着水平方向上 1 0 0个像素的物理长度与垂直方向上
1 0 0个像素的物理长度是一样的。这是计算机图像的重要特征,称之为 正方形像素 。
现在的视频适配器和监视器都能实现 6 4 0× 4 8 0的分辨率,但也存在其他各种各样的显示
228 编码的奥秘 下载模式,常见的分辨率有 8 0 0× 6 0 0,1 0 2 4× 7 6 8,1 2 8 0× 9 6 0和 1 6 0 0× 1 2 0 0。
尽管总有人认为计算机显示器和键盘是按照同样的方式连到计算机上的 — 敲入什么就在屏幕上显示什么 — 实际上,它们是不同的。
键盘上的每一个键是一个简单的开关,键按下则开关闭合。可能有类似于打字机的 4 8个键的键盘,现在个人计算机键盘通常有 1 0 0多个键。
连到计算机上的键盘应该有硬件来为每一个按键提供唯一的代码,一种可能的方法是这个代码是该键对应的 A S C I I码。但是,这种方法既不实用也不可取。例如,A这个键可以对应于 A S C I I码 4 1 h或 6 1 h,这取决于是否同时按下了 s h i f t键。此外,现在的计算机键盘有许多键并不对应于 A S C I I码字符,键盘硬件产生的代码是一种称之为扫描码的代码。一个小的计算机程序可以计算出在键盘上按下的某一个键时所对应的 A S C I I码(如果有的话) 。
为使键盘硬件的描述不至于太繁杂,假设键盘只有 1 6个键。无论什么时候按下一键,键盘硬件会产生一个 4位代码,范围是 0 0 0 0? 1111。
键盘硬件包括了前面讲到的一些部件:
图的左下部是键盘的 1 6个键,用简单的开关来表示。一个 4位计数器迅速地循环对应于 1 6
个键的代码。循环所有的代码所需的时间必须比按下并松开一个键所需的时间要短。
4位计数器的输出作为 2 - 4译码器和 4 - 1选择器的输入。如果没有键按下,选择器的输入没有一个为 1,则选择器的输出不为 1。如果有一个键按下,则对某一特定的 4位计数器的输出来说,选择器的输出为 1。例如,如果从右上角开始的第二个键按下,并且如果计数器的输出为
0 11 0,则选择器的输出为 1:
振荡器
2-4译码器
4位计数器
4-1选择器那就是该键所对应的代码。当该键被按下,没有其他计数器的输出将会使选择器输出为 1。
每个键都有自己的代码。
如果键盘有 6 4个键,则需要 6位扫描码,也即需要 6位计数器。可以用 3 - 8译码器和 8 - 1选择器把键排成 8× 8阵列。如果键盘的键在 6 5? 1 2 8个之间,则需要 7位代码。可以把键排成 8× 1 6
阵列,采用 4 - 1 6译码器和 8 - 1选择器(也可用 3 - 8译码器和 1 6 - 1选择器) 。
下面将发生什么取决于键盘接口电路。键盘硬件可以为每一个键安排一个 1位的 R A M,由计数器的输出作为地址。如果键未按下,则 R A M内容为 0;按下则为 1。可以由微处理器来读取 R A M的内容以确定每个键的状况。
键盘接口中另一个有用的部分是中断信号。前面讲过,8 0 8 0微处理器允许外设中断 C P U
的当前工作。微处理器响应中断并从存储器中读入一条指令。这通常是一条 R S T指令,使微处理器转去执行内存中另外一个区域中的中断处理程序。
本章最后介绍的外围设备是长期存储设备。前面讲过,随机访问存储器 — 不论是用继电器、电子管还是晶体管构成的 — 在当电源关闭时,内容会丢失。所以,一个完整的计算机也需要长期存储器。长久以来使用的方法是在纸上或卡片上打孔,就像 I B M的穿孔卡片。在早期小型计算机中,是通过在滚动的纸带上打孔来保存程序和数据的这便于以后重新装入到内存中。但是,穿孔卡片和纸带存在一个问题,即介质不能重复使用,当打上一个孔后就不容易再恢复。另一个问题是效率低,就当时来说,如果想要真切的看到某一比特,可能要花费太多空间。
第 21章 总 线 连 接 229下载
2-4译码器
4-1选择器振荡器 4位计数器
4位锁存器中断所以,现在最流行的长期存储器类型是磁介质存储器。磁介质存储器起源于 1 8 7 8年,当时美国工程师 Oberlin Smith(1840— 1 9 2 6 )描述了它的原理。第一个可用的设备是在 2 0年后即
1 8 9 8年,由丹麦的发明家 Valdemar Poulsen( 1 8 6 9— 1 9 4 2)制造的。 P o u l s e n的电磁式录音机起初打算用来记录人不在家时收到的电话信息。他用电磁铁 — 电报机里随处可见的部件 —
和可变长度的金属丝来记录声音。电磁铁按照声音的高低来磁化金属丝。当磁化的金属丝在通过电磁线圈的时候,根据磁化程度的不同会产生不同的电流。不管采用何种磁化介质,都是用电磁铁来记录和读取信息的。
1 9 2 8年,澳大利亚发明家 Fritz Pfleumer发明了一种磁记录设备,该设备是在很长的纸带上采用最初用于生产香烟上金属带的技术覆盖铁粒子,并对它申请了专利。很快,一种强度更高的醋酸盐纤维素代替了纸,从而导致更耐久和更知名的记录介质的诞生。卷在轴上的磁带 — 现在都很方便地包装在塑料盒里 — 仍然是用来记录和回放音乐及视频信号的极通用的介质。
用来记录计算机数字数据的第一个商用磁带系统由 Reming Rand 在 1 9 5 0年发明。那时,
1 / 2英寸的卷轴磁带可以存放几兆字节的数据。早期家用计算机采用普通的盒式磁带录音机来保存信息。一些小程序用来存储内存块的内容到磁带并以后再从磁带读到内存。最早的 I B M
P C有一个连接盒式磁带存储器的接头。今天,磁带仍然是很普遍的介质,特别是对那些要长期保存的文档。然而,磁带并不是理想的介质,因为不能很快地移动到磁带上的任一点进行访问,频繁的前进和倒回要花费很多时间。
从几何观点上看,能够进行快速访问的介质是磁盘。磁盘围绕中心旋转,连到臂上的一个或多个磁头从磁盘外边向中间移动。磁盘上的任何区域都能够被快速访问。
在记录声音信息这一方面,磁盘确实比磁带产生得要早一些。而用来存储计算机数据的第一个磁盘驱动器是由 I B M在 1 9 5 6年发明的,此 R A M A C( random access method of
accounting and control)由 5 0个盘片组成,直径 2英尺,可以存放 5 M字节数据。
从那时起,磁盘越来越小而容量越来越大。磁盘通常分为软盘和硬盘。软盘是由覆盖磁性物质的塑料片组成,外面是起保护作用的厚纸板或塑料包装(现在常用) 。 (塑料包装保护磁盘不被弯折,因而虽然现在的磁盘与以前的软盘已经有很大区别,但仍然习惯称之为软盘。 )
软盘必须插入软盘驱动器,这是连接到计算机上的一个部件,用来向软盘写或从软盘读取信息。早期的软盘直径为 8英寸。早期的 IBM PC用 5,2 5英寸的软盘,现在常用的是直径 3,5英寸的软盘。软盘可以从软盘驱动器中取出来,用来在计算机之间传递数据。磁盘现在仍然是商用软件中一个重要的分发媒体。
硬盘通常由多个金属磁盘组成,永久性地做在驱动器里。硬盘通常比软盘速度快,并可存储更多的数据。但是,硬盘中的磁盘自身不能移动。
磁盘的表面分成很多同心圆,称为磁道,每个磁道又分成像圆饼切片一样的扇区,每一个扇区存放一定数量的字节,通常为 5 1 2字节。最早 IBM PC 上用的软盘只有一面,分成 4 0个磁道,每个磁道 8个扇区,每个扇区可保存 5 1 2字节。这样,每一个软盘可存放 163 840个字节,
即 160KB 。今天,P C兼容机常用的 3,5英寸软盘有两面,每面 8 0个磁道,每个磁道 1 8个扇区,
每个扇区可存放 5 1 2字节,这样总共可存放 1 474 560字节,即 1 4 4 0 K B。最早的硬盘驱动器由
IBM PC/XT在 1 9 8 3年使用,可存放 1 0 M B的内容。 1 9 9 9年,2 0吉字节的硬盘驱动器(可存放
2 0 0亿字节)售价都只在 $ 400以下。
230 编码的奥秘 下载软盘和硬盘通常与它们的电气接口一起工作,它们与微处理器之间也需要另外的接口。
硬盘驱动器常用的标准接口包括 S C S I( small computer system interface,小型计算机系统接口),
E S D I( enhanced small device interface,增强的小型设备接口)和 I D E( integrated device
e l e c t r o n i c s,集成设备电气接口),所有这些接口均使用 D M A(直接内存访问)来接管总线和在随机访问存储器和硬盘之间直接传送数据,且不需经过微处理器。每次传输的数量是磁盘扇区字节数(通常是 5 1 2字节)的倍数。
许多家用计算机的初学者总听到关于兆字节和吉字节的技术谈论,这使得他们对半导体随机访问存储器与磁盘存储器有什么不同感到很困惑。近几年出现的分类规则也减少了人们对术语的困惑。
随机访问存储器与磁介质存储器之间的主要区别是:随机访问存储器是易失性的,而软盘或硬盘上的数据会一直保留,除非故意删除或写覆盖。此外,还有一个显著的不同只有在理解微处理器如何工作之后才能理解:当微处理器输出一个地址信号后,通常是寻址随机访问存储器,而不是磁介质存储器。
从磁盘取出数据到内存供微处理器访问需要额外的步骤,即需要微处理器执行一段小程序去访问磁盘驱动器,使磁盘驱动器把数据传输到内存。
随机访问存储器与磁介质存储器之间的差别有一个比喻:随机访问存储器就像桌面上的东西,可以直接拿来使用;磁介质存储器就像一个文件柜,如果要用文件柜里的东西,需要站起来,走到文件柜前,找到需要的文件,并带回到桌面上。如果桌面上太拥挤,还需要把桌上的一些东西拿回到文件柜中去。
这个比喻很恰当,因为存在磁盘上的数据确实是以所谓的“文件”来存放的。存放文件、
提取文件是操作系统这个很重要软件的职权范围。
第 21章 总 线 连 接 231下载