预计阅读本页时间:-
1.3.6 总线
图1-6中的结构在小型计算机中使用了多年,并也用在早期的IBM PC中。但是,随着处理器和存储器速度越来越快,到了某个转折点时,单总线(当然还有IBM PC总线)就很难处理总线的交通流量了,只有放弃。其结果是导致其他的总线出现,它们处理I/O设备以及CPU到存储器的速度都更快。这种演化的结果是,目前一台较大的Pentium系统的结构如图1-12所示。

图中的系统有8个总线(高速缓存、局部、内存、PCI、SCSI、USB、IDE和ISA),每个总线传输速度和功能都不同。操作系统必须了解所有总线的配置和管理。有两个主要的总线,即早期的IBM PC ISA(Industry Standard Architecture)总线和它的后继者PCI(Peripheral Component Interconnect)总线。ISA总线就是原先的IBM PC/AT总线,以8.33MHz频率运行,可并行传送2字节,最大速率为16.67MB/s。它还可与老式的慢速I/O卡向后兼容。PCI总线作为ISA总线的后继者由Intel公司发布。它可在66MHz频率运行,可并行传送8字节,数据速率为528MB/s。目前多数高速I/O设备采用PCI总线。由于有大量的I/O卡采用PCI总线,甚至许多非Intel计算机也使用PCI总线。现在,使用称为PCI Express的PCI总线升级版的新计算机已经出现。
在这种配置中,CPU通过局部总线与PCI桥芯片对话,而PCI桥芯片通过专门的存储总线与存储器对话,一般速率为100MHz。Pentium系统在芯片上有1级高速缓存,在芯片外有一个非常大的2级高速缓存,它通过高速缓存总线与CPU连接。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
另外,在这个系统中有三个专门的总线:IDE、USB和SCSI。IDE总线将诸如磁盘和CD-ROM一类的外部设备与系统相连接。IDE总线是PC/AT的磁盘控制器接口的副产品,现在几乎成了所有基于Pentium系统的硬盘的标准,对于CD-ROM也经常是这样。
通用串行总线(Universal Serial Bus,USB)是用来将所有慢速I/O设备,诸如键盘和鼠标,与计算机连接。它采用一种小型四针连接器,其中两针为USB设备提供电源。USB是一种集中式总线,其根设备每1ms轮询一次I/O设备,看是否有信息收发。USB1.0可以处理总计为1.5MB/s的负载,而较新的USB2.0总线可以有60MB/s的速率。所有的USB设备共享一个USB设备驱动器,于是就不需要为新的USB设备安装新设备驱动器了。这样,无须重新启动就可以给计算机添加USB设备。
SCSI(Small Computer System Interface)总线是一种高速总线,用在高速硬盘、扫描仪和其他需要较大带宽的设备上。它最高可达320MB/s。自从其发布以来,SCSI总线一直用在Macintosh系统上,在UNIX和一些基于Intel的系统中也很流行。
还有一种总线(图1-12中没有展示)是IEEE 1394。有时,它称为火线(FireWire),严格来说,火线是苹果公司具体实现1394的名称。与USB一样,IEEE 1394是位串行总线,设计用于最快可达100MB/s的包传送中,它适合于将数码相机和类似的多媒体设备连接到计算机上。IEEE 1394与USB不同,不需要集中式控制器。
要在如图1-12展示的环境下工作,操作系统必须了解有些什么外部设备连接到计算机上,并对它们进行配置。这种需求导致Intel和微软设计了一种名为即插即用(plug and play)的I/O系统,这是基于一种首先被苹果Macintosh实现的类似概念。在即插即用之前,每块I/O卡有一个固定的中断请求级别和用于其I/O寄存器的固定地址,例如,键盘的中断级别是1,并使用0x60至0x64的I/O地址,软盘控制器是中断6级并使用0x3F0至0x3F7的I/O地址,而打印机是中断7级并使用0x378至0x37A的I/O地址等。
到目前为止,一切正常。比如,用户买了一块声卡和调制解调卡,并且它们都是可以使用中断4的,但此时,问题发生了,两块卡互相冲突,结果不能在一起工作。解决方案是在每块I/O卡上提供DIP开关或跳接器,并指导用户对其进行设置以选择中断级别和I/O地址,使其不会与用户系统的任何其他部件冲突。那些热衷于复杂PC硬件的十几岁的青少年们有时可以不出差错地做这类工作。但是,没有人能够不出错。
即插即用所做的工作是,系统自动地收集有关I/O设备的信息,集中赋予中断级别和I/O地址,然后通知每块卡所使用的数值。这项工作与计算机的启动密切相关,所以下面我们开始讨论计算机的启动。不过这不是件轻松的工作。