第18章 总线技术
本章主要内容 1. 总线的基本概念 2. 常见的总线标准(ISA,PCI,USB) 3.高速总线接口
18.1 总线的基本概念 18.1.1 总线定义 总线是计算机两个或两个以上的模块(部件或子系统)之间相互连接与通信的公共通路。 总线不仅仅是一组传输线,它还包括一套管理信息传输的规则(协议)。 在计算机系统中,总线可以看成一个具有独立功能的组成部件。
总线通常包括一组信号线,主要的信号线有: (1) 数据线和地址线:这一类信号线决定了数据传输的宽度和直接寻址的范围。 (2) 控制、时序和中断信号线: 这一类信号线决定了总线功能的强弱以及适应性的好坏。 (3) 电源线和地线: 这一类线决定了电源的种类及地线的分布和用法。 (4) 备用线: 这一类线是厂家和用户作为性能扩充或作为特殊要求使用的信号线。
18.1.2 总线的分类 微型计算机的总线按功能和规范可分为三大类型: (1) 片总线(Chip Bus, C-Bus) 18.1.2 总线的分类 微型计算机的总线按功能和规范可分为三大类型: (1) 片总线(Chip Bus, C-Bus) 又称元件级总线,是把各种不同的芯片连接在一起构成特定功能模块(如CPU模块)的信息传输通路。 (2) 内总线(Internal Bus, I-Bus) 又称系统总线或板级总线,是微机系统中各插件(模块)之间的信息传输通路。例如CPU模块和存储器模块或I/O接口模块之间的传输通路。
又称通信总线,是微机系统之间或微机系统与其他系统(仪器、仪表、控制装置等)之间信息传输的通路,如EIA RS-232C、IEEE-488等。 (3) 外总线(External Bus, E-Bus) 又称通信总线,是微机系统之间或微机系统与其他系统(仪器、仪表、控制装置等)之间信息传输的通路,如EIA RS-232C、IEEE-488等。 上述三类总线在微机系统中的地位及相互关系如图18.1所示。
微型计算机 图18.1 三类总线在微机系统中的地位和关系 控制部件 寄存器组 ALU C-Bus 存储器 I/O接口 I-Bus E-Bus 设备 Modem 仪器 图18.1 三类总线在微机系统中的地位和关系
18.1.3 总线标准 为了充分发挥总线的作用,每个总线标准都必须有具体和明确的规范说明,通常包括如下几个方面的技术规范或特性: (1) 机械特性:规定模块插件的机械尺寸,总线插头、插座的规格及位置等; (2) 电气特性: 规定总线信号的逻辑电平、噪声容限及负载能力等; (3)功能特性: 给出各总线信号的名称及功能定义; (4) 规程特性:对各总线信号的动作过程及时序关系进行说明。
总线标准的产生通常有两种途径: (1) 某计算机制造厂家(或公司)在研制本公司的微机系统时所采用的一种总线,由于其性能优越,得到用户普遍接受,逐渐形成一种被业界广泛支持和承认的事实上的总线标准。 (2) 在国际标准组织或机构主持下开发和制定的总线标准,公布后由厂家和用户使用。
在微型机总线标准方面,推出比较早的是S-100总线。有趣的是,它是由业余计算机爱好者为早期的微型计算机而设计的,后来被工业界所承认,并被广泛使用。 经IEEE修改,成为总线标准—IEEE 696。 由于S-100总线是较早出现的用于PC机的总线,没有其他总线标准或技术可供借鉴,因此在设计上存在一定的缺点。
如布线不够合理,时钟信号线位于9条控制信号线之间,容易造成串扰; 在100条引线中,只规定了两条地线,接地点太少,容易造成地线干扰; 对DMA传送虽然作了考虑,但对所需引脚未做明确定义;没有总线仲裁机构,因此不适于多处理器系统,等等。 这些缺点已在IEEE 696标准中得到克服和改进,并为后来的总线标准的制定提供了经验。
在总线标准的发展、演变历程中,其他比较有名或曾产生一定影响的总线标准还有: Intel MultiBus(IEEE 796); Zilog Z-Bus(122根引线); IBM PC/XT 总线(IBM 62线总线); IBM PC/AT 总线; ISA 总线; EISA 总线; PCI 总线; USB 总线等。
随着微处理器及微机技术的发展,总线技术和总线标准也在不断发展和完善,原先的一些总线标准已经或正在被淘汰,新的性能优越的总线标准及技术也在不断产生。 新的总线标准以高带宽(即高数据传输率)及实用性和开放性为特点。
18.1.4 总线仲裁 总线仲裁是指在总线上有多个总线主模块同时请求使用总线时,决定由哪个模块获得总线控制权。 所谓“总线主模块”,就是具有总线控制能力的模块,在获得总线控制权之后能启动数据信息的传输,如CPU或DMA控制器都可成为这种具有总线控制能力的主模块; 与总线主模块相对应的是“总线从模块”,它是指能够对总线上的数据请求作出响应,但本身不具备总线控制能力的模块,如前面介绍过的并行接口电路8255A、中断控制器8259A等。
总线作为一种重要的公共资源,各个总线主模块随时都可能请求使用总线,这样就可能会有不止一个总线主模块同时请求使用总线。 为了让多个总线主模块合理、高效地使用总线,就必须在系统中有处理上述总线竞争的机构,这就是总线仲裁器(bus arbiter)。 它的任务是响应总线请求,合理分配总线资源。
1. 串行总线仲裁方式 基本的总线仲裁方式有两种,即串行总线仲裁方式和并行总线仲裁方式。 在串行总线仲裁方式中,各个总线主模块获得的总线优先权决定于该模块在串行链中的位置,如图18.2所示。
Ⅰ Ⅱ N 允许 请求 总线忙 图18.2 串行总线仲裁方式
图中的Ⅰ、Ⅱ、…、N 等N个模块都是总线主模块。当一个模块需要使用总线时,先检查“总线忙”信号。若该信号有效,则表示当前正有其他模块在使用总线,因此该模块必须等待,直到“总线忙”信号无效。 在“总线忙”信号处于无效状态时,任何需要使用总线的主模块都可以通过“请求”线发出总线请求信号。 总线“允许”信号是对总线“请求”信号的响应。
“允许”信号在各个模块之间串行传输,直到到达一个发出了总线“请求”信号的模块,这时“允许”信号不再沿串行模块链传输,并且由该模块获得总线控制权。 由串行的总线仲裁方式的工作原理可以看出,越靠近串行模块链前面的模块具有越高的总线优先权。
2. 并行总线仲裁方式 并行总线仲裁方式的示意图如图18.3所示。 图中,模块Ⅰ到N都是总线主模块。每个模块都有总线“请求”和总线“允许”信号。 各模块间是独立的,没有任何控制关系。 当一模块需要使用总线时,也必须先检测“总线忙”信号。当“总线忙”信号有效时,则表示其他模块正在使用总线,因此该模块必须等待。 当“总线忙”信号无效时,所有需要使用总线的模块都可以发出总线“请求”信号。
仲 裁 器 模块1 . . . 模块N . . . 请求 允许 总线忙 图18.3 并行总线仲裁方式
总线仲裁器中有优先权编码器和优先权译码器。 总线“请求”信号经优先权编码器产生相应编码,并由优先权译码器向优先权最高的模块发出总线“允许”信号。 得到总线“允许”信号的模块撤销总线“请求”信号,并置“总线忙”信号为有效状态,当该模块使用完总线后再置“总线忙”信号为无效状态。
在串行、并行两种总线仲裁方式中,串行方式由于信号的串行传输会加大延迟(当串行模块链上的模块数目过多时甚至可能会超过系统允许的总线优先权仲裁时间),而且当高优先级的模块频繁使用总线时,低优先权的模块可能会长时间得不到总线。 串行方式只用于较小的系统中。 而并行方式则允许总线上连接许多主模块,而且仲裁电路也不复杂,因此是一种比较好的总线仲裁方法。
18.2 ISA总线和EISA总线 18.2.1 ISA总线介绍 20世纪80年代初期,IBM在推出自己的微机系统IBM PC/XT时,就定义了一种总线结构,称为XT总线。这是8位数据宽度的总线。 随着IBM采用80286 CPU,推出IBM PC/AT微机系统,又定义了与XT总线兼容的16位的AT总线。 ISA总线(Industrial Standard Architecture)即AT总线,它是在8位的XT总线基础上扩展而成的16位的总线体系结构。
在一段时间内,大多数Pentium系列的PC机主板上仍保留3~4个ISA总线扩充槽,即可以插入8位ISA卡,又可以插入16位ISA卡。 长插口有62个引脚,以A31~A1和B31~B1表示,分别列于插槽的两面; 短插口有36个引脚,以C18~C1和D18~D1表示,也分别列于插槽的两面。
D18 D1 C18 C1 B31 B1 A31 A1 图18.4 ISA总线插槽
18.4 PCI总线 18.4.1 PCI总线---对传统总线结构的突破 人们注意到,随着微处理器速度及性能的改进与更新,作为微型计算机重要组成部件的总线也被迫作相应的改进和更新。否则,低速的总线将成为系统性能的瓶颈。 同时,人们也看到了另一个不容忽视的事实,即随着微处理器的更新换代,一个个曾颇具影响的总线标准也相继黯然失色了,与其配套制造的一大批接口设备(板卡、适配器及连接器等)也渐渐被束之高阁。 这就迫使人们思考一个问题,即能否制定和开发一种性能优越且能保持相对稳定的总线结构和技术规范来摆脱传统总线技术发展的这种困境呢?
PCI总线(Peripheral Component Interconnect,外围部件互连总线)于1991年由Intel公司首先提出,并由PCI SIG(Special Interest Group)来发展和推广。 PCI SIG是一个包括Intel、IBM、Compaq、Apple和DEC等100多家公司在内的组织集团。1992年6月推出了PCI 1.0版,1995年6月又推出了支持64位数据通路、66MHz工作频率的PCI 2.1版。 由于PCI总线先进的结构特性及其优异的性能,使之成为现代微机系统总线结构中的佼佼者,并被多数现代高性能微机系统所广泛采用。
18.4.2 PCI总线的系统结构及特点 PCI总线的系统结构如图18.7所示。
. . . CPU总线 PCI总线 ISA总线 图18.7 PCI总线结构框图 CPU 存储器 CPU总线/PCI 总线桥(北桥) 总线桥(南桥) PCI图形 适配器 PCI网卡 PCI硬盘 控制器 PCI总线 ISA总线 ISA卡 . . . 图18.7 PCI总线结构框图
由图18.7可见,这是一个由CPU总线、PCI总线及ISA总线组成的三层总线结构。 CPU总线也称“CPU-主存总线”或“微处理器局部总线”,CPU是该总线的主控者。此总线实际上是CPU引脚信号的延伸。 通过桥芯片(北桥和南桥),上边与高速的CPU总线相连,下边与ISA总线相连。 PCI总线是一个32位/64位总线,且其地址和数据是同一组线,分时复用。在现代PC机(如Pentium系列)主板上一般都有2~3个PCI总线扩充槽。
在上述PCI总线结构中,CPU总线、PCI总线及ISA总线通过两个桥芯片连成一个整体,桥芯片起到信号缓冲、电平转换和控制协议转换的作用。 人们通常将“CPU总线/PCI总线桥”称为“北桥”,称“PCI总线/ISA总线桥”为“南桥”。 这种以“桥”的方式将两类不同结构的总线“粘合”在一起的技术特别能够适应系统的升级换代。 每当微处理器改变时只需改变CPU总线和改动“北桥”芯片,而全部原有外围设备及接口适配器仍可保留下来继续使用,从而保护了用户的投资。
18.4.3 PCI总线的引脚信号 PCI总线的数据宽度为32位或64位,地址总线为32位(可扩展至64位)。另外,它的地址线和数据线是多路复用的,以节省引脚并减小连接器的尺寸。这些多路复用的引脚信号标识为AD0~AD63。 PCI总线有5V和3V两种插槽类型,每种插槽的全部引脚号均为1~94(A1/B1~A94/B94),32位卡只用1~62号,64位卡则占用全部1~94号引脚。 其中,标为res的引脚为保留未用(reserved)的引脚;标为code的引脚是防止将插卡插错而设置的接口标记,也称连接器钥匙(connector key)。
18.5 USB总线 18.5.1 USB概述 在传统的PC机使用中,为了连接显示器、键盘、鼠标及打印机等外围设备,必须在主机箱背后接上一大堆信号线缆及连接器端口,给PC机的安装、放置及使用带来极大的不便。 另外,为了安装一个新的外设,除需要关掉机器电源外,还需安装专门的设备驱动程序,否则,系统是不能正常工作的。这也给用户带来不少麻烦。
USB总线(Universal Serial Bus,通用串行总线)是PC机与多种外围设备连接和通信的标准接口,它是一个所谓“万能接口”,可以取代传统PC机上连接外围设备的所有端口(包括串行端口和并行端口),用户几乎可以将所有外设装置——包括键盘、显示器、鼠标、调制解调器、打印机、扫描仪及各种数字音影设备,统一通过USB接口与主机相接。 同时,它还可为某些设备(如数码相机、扫描仪等)提供电源,使这些设备无须外接独立电源即可工作。
USB是1995年由称为“USB实现者论坛” (USB Inplementer Forum)的组织联合开发的新型计算机串行接口标准。 有许多著名计算机公司,如Compaq、IBM、Intel、DEC及Microsoft等均是该联合组织的重要成员。
USB Explained by Steven McDowell Martin D.Seyer Prentice Hall PTR
1996年1月,颁布了USB 1.0版本规范,其主要技术规范是: (1) 支持低速(1.5M bps)和全速(12M bps)两种数据传输速率。前者用于连接键盘、鼠标器、调制解调器等外设装置;后者用于连接打印机、扫描仪、数码相机等外设装置。 (2) 一台主机最多可连接127个外设装置(含USB集线器——Hub);连接节点(外设或Hub)间距可达5米,可通过USB集线器级联的方式来扩展连接距离,最大扩展连接距离可达20米。
(3) 采用4芯连接线缆,其中两线用于以差分方式传输串行数据,另外两线用于提供+5V电源。线缆种类有两种规格,即无屏蔽双绞线(UTP)和屏蔽双绞线(STP)。前者适合于1.5M bps的数据速率,后者适合于12M bps的数据速率。 (4) 具有真正的“即插即用”特性。主机依据外设的安装情况自动配置系统资源,用户无需关机即可进行外设更换,外设驱动程序的安装与删除完全自动化。 图18.9表示了一个典型的USB应用和配置情况。
18.5.2 USB的结构 主机与USB设备连接的拓扑结构从整体上看是一种树状结构,可利用集线器级联的方式来延长连接距离,还可将几个功能部件(例如一个键盘和一个轨迹球)组装在一起构成一个“复合型”设备,“复合型”设备通过其内部的USB Hub与主机相连,主机中的USB Hub称为“根 Hub”。 USB总线的拓扑结构如图18.10所示。
主 机 根 Hub Hub 复合型设备 设备 图18.10 USB总线的拓扑结构
图18.10USB总线的拓扑结构为了防止环状接入,USB总线的拓扑结构进行了层次排序,最多可分为五层: 第一层是主机,第二、三、四层是外设或USB Hub,第五层只能是外设。 层与层之间的线缆长度不得超过5米。
目前新型主板一般配有两个内建的USB连接器,可以连接两个USB设备,或一个连接USB外设,另一个连接USB Hub;USB Hub还可以串接另一个USB Hub,但是USB Hub连续串接最多不能超过3个。 USB Hub自身也是USB设备,它主要由信号中继器和控制器组成,中断器完成信号的整形、驱动并使之沿正确方向传递,控制器理解协议并管理和控制数据的传输。 四芯USB线缆及连接器情况如图18.11所示。USB集线器(USB Hub)及其端口情况如图18.12所示。
图18.11 USB线缆及连接器 引脚 Vcc(电源) Data+ Data- Ground(地) (a) 4芯USB线缆 1 2 3 4 (b) 两种类型的USB连接器
端口1 端口2 端口3 端口4 端口5 端口6 上行端口 连接至USB主机 图18.12 USB集线器
18.6 高速总线接口 18.6.1 IEEE 1394 USB总线是一种新型计算机外设接口标准。但USB总线的数据传输主要还是适合于中、低速设备,而对于那些高速外设(如多媒体数字视听设备)就显得有些不够了。 IEEE 1394(又称i.Link或Fire Wire),是由Apple公司和TI(德克萨斯仪器)公司开发的高速串行接口标准,其数据传输率已达100M bps、200M bps、400M bps、800M bps,即将达到1Gbps和1.6G bps。 而前一时期流行的USB 1.1的通信速率仅为12M bps(2000年问世的USB 2.0的速率也仅为480M bps)。
采用IEEE 1394标准,一次最多可将63个IEEE 1394设备接入一个总线段,设备间距可达4 采用IEEE 1394标准,一次最多可将63个IEEE 1394设备接入一个总线段,设备间距可达4.5米;如加转发器(repeater)还可相距更远。 目前,人们正在进行将这个距离延伸至25米的尝试。 最多63个设备可以通过菊花链方式串接到单个IEEE 1394适配器上。 另外,通过桥接器(bridge),允许将1000个以上的总线段互联,可见IEEE 1394具有相当大的扩展能力。
使用专门设计的6芯电缆,其中两线用于提供电源(连接在总线上的设备可以取得电压为直流8V~40V、电流可达1.5A的电能); 另外四线分为两个双绞线对,用于传输数据及时钟信号。 图18.17给出了IEEE 1394的电缆及连接器情况。
与USB相似,IEEE 1394也完全支持“即插即用”(PnP)。任何时候,都可以在总线上添加或拆卸IEEE 1394设备,即使总线正处于全速运行的状态。 总线配置发生改变以后,节点地址会自动重新分配,而不需用户进行任何形式的介入。 通过IEEE 1394连接的设备包括多种高速外设如硬盘、光驱、新式DVD以及数码相机、数字摄录机、高精度扫描仪等。 一个IEEE 1394的典型应用实例如图18.18所示
18.6.2 高速图形端口AGP 在一般的PC机中,三维图形卡与主存之间是通过PCI总线进行连接和通信的,其最大数据传输率仅为132MB/S(兆字节/秒)。加之PCI总线还接有其他设备(如硬盘控制器、网卡、声卡等),所以,实际数据传输率远低于132MB/S。 而三维图形加速卡在进行三维图形处理时不仅有极高的数据处理量,而且要求具有很高的总线数据传输率。因此,这种通过PCI总线的连接和通信方式,实际上成了三维图形加速卡进行高速图形数据传送和处理的一大瓶颈。
AGP(Accelerated Graphics Port,高速图形端口)是为解决计算机三维图形显示中“图形纹理”数据传输瓶颈问题应运而生的。现在许多PC机系统都增加了AGP功能。 AGP是由Intel公司开发,并于1996年7月正式公布的一项新型视频接口技术标准。 它定义了一种高速的连通结构,把三维图形控制卡从PCI总线上分离出来,直接连在CPU/PCI控制芯片组”(北桥)上,形成专用的高速点对点通道——高速图形端口(AGP)。 图 18.19 给出了Pentium Ⅱ系统中AGP的连接以及系统中其他总线的情况。
图18.19 PentiumⅡ系统中的AGP PentiumⅡ 处理器 局部总线 (66MHz或100MHz) CPU/PCI桥芯片 (440LX或440BX) 存储器 AGP视频 控制卡 AGP接口 (66MHz) 局部帧 缓冲区 PCI/ISA桥芯片 PCI卡 ISA卡 ISA总线(8MHz) USB总线(12MB/s) PCI总线(22MHz或66MHz) 图18.19 PentiumⅡ系统中的AGP
从严格的总线意义上讲,AGP并不是一种总线标准,因为总线通常是多个设备共享的资源。而AGP仅为供AGP视频控制卡专用的高速数据传输端口。 AGP允许视频卡能与系统RAM(主存)直接进行高速连接,即支持所谓DIME(Direct Memory Execute,直接存储器执行)方式,当显存容量不够时,将主存当作显存来使用,把耗费显存的三维操作全部放在主存中来完成。这样一可以节省显存,二可以充分利用现代PC机大容量主存(现已达GB容量级)的优越条件。 这在三维图形操作需要越来越多存储资源的今天显得特别重要。
AGP可以工作于处理器的时钟频率下,若以66MHz的基本频率(实际为66 AGP可以工作于处理器的时钟频率下,若以66MHz的基本频率(实际为66.66MHz)运行,则称为基本AGP模式(即AGP 1X),每个时钟周期完成一次数据传输。 由于AGP的数据传输宽度为32位(4字节),所以在66MHz的时钟频率下能达到约266MB/S的数据传输能力;
此外,还定义了AGP 2X模式,每个时钟周期完成两次数据传输(宽度仍为32位),速率达533MB/S;大多数AGP卡都工作在2X模式。 AGP 2.0规范增加了4X模式的传输能力,每个时钟周期完成四次数据传输,达1066MB/S(约1GB/S)的数据传输速率,是传统PCI数据传输率的8倍。 现代PC主板均全面支持AGP2.0规范及AGP 4X模式。
第18章 作业 第1、2、3题 第6、7题 第9、10题
课程复习要求 以平时讲课内容和作业为基本要求; 全面复习 重点掌握
第5章 计算机、微型计算机的组成及工作过程 计算机的基本组成及各个组成部件的基本功能; 微型计算机系统的组成; 计算机的基本工作过程; 硬布线控制器与微程序控制器的各自特点。
第7章 汇编语言的基本语法 练习1:根据下面的数据定义: ORG 10H DAT1 DB 10 DUP(?) DAT2 EQU 12H DAT3 DW 56H,$+10 确定数据项$+10的值。 $: 地址计数器的当前值; ORG:指定下一个要用的存储单元的偏移地址。
练习2: DATA SEGMENT TAB DW 1,2,3,4,5,6 ENTRY EQU 3 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA L: MOV AX, DATA MOV DS, AX MOV BX,OFFSET TAB ADD BX, ENTRY MOV AX, [BX] CODE ENDS END L 上述程序执行后,AX= .
练习3: 若定义DAT DD 12345678H,则(DAT+1) 字节单元的数据是( ) A. 12H B. 34H C.56H D.78H