第5 章总线与主板 总线(Bus)是供多个部件分时共享的公共信息传送线路,一个系统的总线结构决定了 该计算机系统的数据通路及系统结构。它能简化系统设计、便于组织多家厂家进行专业化 大规模生产,降低产品成本、提高产品的性能和质量,促进产品的更新换代、满足不同用 户需求以及提高可维修性等,因而得以迅速发展。自1970 年美国DEC 公司在其PDP-11/20 小型计算机上采用Unibus 以来,各种标准的、非标准的总线纷纷面世。如今,几乎所有的 计算机系统中都采用了总线结构。 在微型计算机中,总线以及所连接的部件都安放在主板(Main Board )上。计算机在运 行中对于系统内的部件和外部设备的控制都通过主板实现,主板的组成与布局也影响着系 统的运行速度、稳定性和可扩展性。 5.1 总 线 概 述 5.1.1 总线及其规范 共享、分时和规范是总线的3 个基本特点。共享是指多个部件连接在同一组总线上, 各部件之间相互交换的信息都可以通过这组总线传送。分时是指同一时刻总线只能在一对 部件之间传送信息。 总线是计算机系统模块化的产物,相同的指令系统,相同的功能,不同厂家生产的各 功能部件在实现方法上不尽相同,但希望相同的功能部件可以互换使用,这要求各厂家的 产品必须遵循一定的规范。这些规范包括如下4 方面。 1. 机械规范 机械规范又称物理规范,指总线在机械上的连接方式,如插头与插座所使用的标准, 包括接插件尺寸、形状、引脚根数及排列顺序等,以便能正确无误地连接。图5.1 为计算机 中常用的一些总线接插件。 图5.1 计算机中常用的一些总线接插件 ·206 · 2. 电气规范 电气规范指总线的每根线上信号的传递方向及有效电平范围、动态转换时间、负载能 力等。一般规定送入CPU 的信号称为输入信号(IN),从CPU 发出的信号称为输出信号 (OUT)。例如,地址总线是输出线,数据总线是双向传送,这两类信号线都是高电平有效; 控制总线一般是单向的,有输出的也有输入的,有高电平有效也有低电平有效。总线的电 平都符合TTL 电平的定义。例如RS-232C 的电气规范规定,用低电平表示逻辑1,并且要 求电平低于–3V;用高电平表示逻辑0,并且要求电平高于+4V;通常额定信号电平为–10V~ +10V。 3. 功能规范 按功能,总线可分为地址总线、数据总线和控制总线。在控制总线中,各条线的功能 也不相同,有CPU 发出的各种控制命令(如存储器读写、I/O 读写等),也有外部设备与主 机的同步匹配信号,还有中断信号、DMA 控制信号等。 4. 时间规范 时间规范又称逻辑规范,指在总线操作过程中每根信号线上信号什么时候有效,通过 这种信号有效的时序关系约定,确保总线操作正确进行。 5.1.2 总线的性能指标 1. 总线性能指标 总线的主要性能指标如下。 1)总线带宽 总线带宽即总线标准传输率,指的是单位时间内总线上传送的数据量,即每秒传送兆 字节的最大稳态数据传输率。与总线密切相关的两个因素是总线的位宽和总线的工作频率。 (1)总线位宽也称传送宽度,指总线能同时传送的二进制数据的位数,主要指数据总 线的位数,用b(位)表示,如总线位宽有8b、16b 、32b 、64b。总线位宽越宽,每秒数据 传输率越大,总线带宽越宽。 (2)总线的工作频率越高,总线的传输率越高 。 总线带宽与位宽和工作频率之间的关系为 : 总线带宽=总线工作频率×总线位宽/ 8 或 总线带宽=(总线位宽/ 8) / 总线周 期 例如,总线工作频率为33MHz ,总线位宽为32 位,则最大传输率 为 Dr = 4B×33×106 / s = 132MB/ s ·207 · 2)寻址能力 寻址能力取决于地址总线的根数。例如,PCI 总线的地址总线为32b,寻址能力达4GB 。 3)负载能力 负载能力即总线上能够连接的设备数。 4)即插即用能力 即插即用(Plug-and-Play,PnP,也称热插拔)是由微软公司提出的,意思是系统自动 侦测周边设备和板卡并自动安装设备驱动程序,做到插上就能用,无须进行其他设置,是 Windows 系统自带的一项技术。符合PnP 标准的PC 插卡等外围设备安装到计算机时,操作 系统自动设定系统结构。当用户安装新的硬件时,不必再设置任何跳线器开关,也不必用 软件配置中断请求(IRQ)、内存地址或直接存储器访问(DMA)通道,Windows 系统会向 应用程序通知硬件设备的新变化,并会自动协调IRQ、内存地址和DMA 通道之间的冲突。 5)是否支持突发传送 总线上数据传送方式分为两种。 (1)正常传送:每个传送周期先传送数据的地址,再传送数据。 (2)突发传送:支持成块连续数据的传送,只需给出数据块的首地址,后续数据地址 自动生成。 PCI 总线支持突发传送,ISA 总线不支持。 6)总线控制方式 总线控制含有突发传输、并发工作、自动配置、仲裁方式、逻辑方式、记数方式等 内容。 7)其他指标 除了以上6 项指标外,还有如下一些。 (1)传输距离(对I/O 总线很重要)。 (2)传输差错率(对I/O 总线很重要)。 (3)抗干扰力。 (4)确定性延迟。 (5)同步方式。 (6)信号线数。 (7)是否支持多路复用。 (8)电源电压高低。 (9)能否扩展64b 位宽等。 ·208 · 2. 几种微型计算机标准系统总线性能示例 表5.1 列出了在微型计算机发展过程中形成的一些标准系统总线性能。这些标准中有 些已经被淘汰,有些正在被应用,有些即将被应用。其中对现在和未来有重大影响的,将 在5.3 节介绍。 表5.1 在微型计算机发展过程中形成的一些标准系统总线性能 总线名称开发者推出时间总线位宽总线工作频率总线带宽负载能力 PC-XT IBM 1981 年8b 4MHz 4MB/s 8 ISA IBM 1984 年16b 8MHz 16MB/s 8 MCA IBM 1987 年32b 10MHz 40MB/s 无限制 EISA Compaq 等 1988 年9 月32b 8.33MHz 33MB/s 6 PCI Intel 、IBM 等 1991 年32b 20MHz~33.3MHz 133MB/s/528MB/s 3 VESA VESA 1992 年32b 66MHz 266MB/s 6 AGP Intel 1996 年7 月32b 66.7MHz/133MHz 266MB/s/2.133GB/s PCI-E Intel 、IBM 等 2002 年7 月串行 2.5GHz/5GHz/ 10GHz 点对点:4GB/s/16GB/s 双向:8GB/s/32GB/s 5.1.3 总线分类 总线应用很广且形态多样,从不同的角度可以有不同的分类方法。下面列举6 种。 1. 按照总线传递的信号性质分类 按照总线传递的信号性质,总线可以分为3 种。 (1)地址总线(Address Bus,AB),用来传递地址信息。 (2)数据总线(Data Bus,DB),用来传递数据信息。 (3)控制总线(Control Bus,CB),用来传递各种控制信号。 2. 按照总线所处的位置分类 按照总线所处的位置分,为机内总线和机外总线。 (1)机内总线分为片内总线和片外总线。片内总线指CPU 芯片内部,用于寄存器、 ALU 以及控制部件之间传输信号的总线;片外总线指CPU 芯片之外,用于连接CPU、内 存以及I/O 设备的总线。 (2)机外总线指与外围设备接口的总线,实际上是一种外部设备的接口标准。目前在 微型计算机上流行的接口标准有IDE、SCSI、USB 和IEEE 1394 等。 3. 按照总线在系统中连接的主要部件分类 按照总线在系统中连接的主要部件,总线可以分为5 种。 (1)存储总线:连接存储器 。 (2)DMA 总线:连接DMA 控制器 。 (3)系统总线:连接I/O 通道总线和各扩展槽。 ·209 · (4)I/O(设备)总线:连接外部设备控制芯片。 (5)局部总线:通常是一种实现高速数据传输的高性能总线,用来在高度集成的外部 设备控制器器件、扩展板和处理器/存储器系统之间提供一种内部连接机制。 4. 按照总线传输的数据单位分 类 按照总线传输的数据单位,总线可以分为串行总线和并行总线(见图5.2) 。 图5.2 串行总线与并行总线 (1)串行总线按位进行传输,每次传输1 位数据。串行总线按照所传输数据的方向性, 又可分为3 种:单工、半双工和双工。 ① 单工数据传输只支持数据在一个方向上传输,除控制信号和电源外,一般只用一根 数据线。 ② 半双工数据传输允许数据在两个方向上传输,但两个方向的传输不可同时进行,故 除控制信号和电源外,一般也只用一根数据线。 ③ 双工数据传输允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方 式的结合。 (2)并行总线每次传输多位,通常有8b、16b 、32b 和64b 等几种。所以,并行传输除 了控制信号、电源等之外,要传输多少位数据,就需要多少根数据线。 5. 按照发送端与接收端有无共同的时钟分类 按照发送端与接收端有无共同的时钟,总线可以分为同步总线与异步总线等类型。具 体将在第5.2 节中深入讨论。 6. 按照系统中使用的总线数量分类 大多数总线都是以相同方式构成的,其不同之处仅在于总线中数据线、地址线和控制 线的数目,以及控制线的功能。按照系统中使用的总线条数可以分为单总线结构、双总线 结构和多总线结构。 单总线结构使用一组单一的系统总线来连接CPU、主存和I/O 设备。在这类系统中, 所有的模块都挂在同一组总线上,分时地进行数据传输。这种总线结构简单、连接灵活、 易于扩充,还容易扩展成多CPU 系统,只要在总线上挂接多个CPU 即可。因所有信息都 在一组系统总线上传输,故信息传输的吞吐量受到限制。 ·210· 双总线结构保持了单总线结构简单、易于扩充的优点,又在CPU 和主存之间有一组专 门高速总线,使CPU 可与主存迅速交换信息,而主存不必经过CPU 仍可通过总线与外部设 备之间实现DMA 操作。这样,缓解了对系统总线和CPU 的压力,提高了系统的效率。 由于各种设备对于总线的要求不同,在设备不断增加的形势下,总线趋向于分级的总 线结构。图5.3 为三级总线结构。 图5.3 三级总线结构 这种三级总线结构一般用于I/O 设备性能相差不大的情况。在高速的视频设备、网 络、硬盘等大量涌现的情况下,将它们与低速设备(如打印机、低速串口设备)接在同 一条总线上,非常影响系统的效率。进一步的改进是为这些高速设备设立一条单独的高 速总线,形成如图5.4 所示的由系统总线、局部总线、高速总线和扩展总线组成的四级总 线结构。 图5.4 四级总线结构 计算机总线是计算机模块间传递信息的通路。计算机总线技术包括通路控制性能、使 用方法、仲裁方法和传送方式等。总线技术在整个计算机系统中占有十分重要的位置。任 何系统的研制和外围模块的开发,都必须服从一定的总线规范。总线的结构不同,性能差 别很大。由于计算机总线的主要职能是负责计算机各模块间的信息传送,所以,对总线性 能的衡量,也是围绕这一职能而定义、测试和比较的。 ·211 · 5.2 总线的工作原理 5.2.1 总线的组成与基本传输过程 1. 总线的组成 总线包括如下3 部分 。 1)传输 线 总线是信号线的集合,这些信号线可分为以下5 种类型 。 (1)地址线:决定直接寻址的范围。 (2)数据线:决定同时并行传输的数据宽度。 (3)控制、时序和中断信号线:决定总线功能的强弱、适应性好坏。 (4)电源线:决定电源电压种类、地线分布以及它们的用法。 (5)备用线:留给用户进行性能扩充,满足特殊需要 。 2)接口逻 辑 总线与各部件并不是直接相连的,通常需要一些三态门(控制双向传输)和缓冲寄存 器等作为它们之间的接口。 3)总线控制器 总线要为多个部件共享。为了正确地实现它们之间的通信,必须有一个总线控制机构, 对总线的使用进行合理的分配和管理。 2. 总线中信号的基本传输过程 作为数据传输通道,总线连接着多个部件,传递着多种信号。每个信号的传输,都是 主方(发送端)发出数据,从方(接收端)接收数据。 总线中信号的传输过程一般包含如下5 个环节。 1)请求总线 由利用总线进行信息传输的主控模块申请总线,以便取得总线控制权。 2)总线仲裁 多个主控模块同时申请总线时,系统做出裁定,按规则把总线的控制权赋予某个主控 模块。 ·212 · 3)目的寻址 某主控模块取得总线控制权后,由其进行寻址,通知被访问的模块进行信息传输。 4)信息传输 主控模块与被访问模块之间进行数据传输,根据读写方式确定信息流向,可分两种 情形。 (1)单周期方式是在获得一次总线使用权后只能传输一个数据,如果需要传输多个数 据,就要多次申请使用总线。 (2)突发式是指获得一次总线使用权可以连续进行多个数据的传输,在寻址过程中, 主控模块发送数据块的首地址,后续的数据在首地址的基础上按一定的规则寻址,如PCI 总线支持突发数据传输方式,这种方式下总线利用率高。 5)错误检测 最常用、最简单的错误检测方法是奇偶检验。错误检测结束后,主控模块的有关信息 均从系统总线上撤销,让出总线。 5.2.2 总线的争用与仲裁 按对总线有无控制功能,连接在总线上的设备可以分为主模块和从模块两种。前者具 有对总线的控制权,后者没有。总线上信息的传输由总线主设备启动,即总线上的一个主 模块要与另一个模块部件进行通信时,首先应该由主模块发出总线请求信号。总线同一时 刻只允许在一对模块之间进行通信。当多个主模块同时要求使用总线时,可以采用两种方 法解决冲突:静态方法和动态方法。静态方法是时间片划分方法,好像一周上了6 门课, 而每门课只能按照课程表在规定的时间段内上。动态方法是总线控制机构中的判优和仲裁 逻辑将按一定的判优原则,来决定由哪个模块使用总线。只有获得了总线使用权的模块, 才能开始传输数据。动态判优分为集中控制和分布式控制两种。前者将控制逻辑集中在一 起(如在CPU 中),后者将控制逻辑分散在与总线连接的各个部件或设备上。 1. 多路复用法 多路复用是将一条物理通道分割成多条逻辑通道,在计算机内多采用时间片划分方法, 即将时间分片,按照事先的规定,在不同的时间片中传输不同模块的通信信号。图5.5 为把 一条物理总线用分时传输的方法,当作3 条逻辑总线使用的情形。 2. 集中控制的优先权仲裁 集中控制的优先权仲裁方式有3 种:链式查询、计数器定时查询和独立请求。 1)链式查询方式 链式查询方式如图5.6 所示。它靠3 条控制线进行控制:BS(总线忙)、BR(总线请求) ·213 · 图5.5 时间分片传输示意图 和BG(总线同意)。它的主要特征是将BG 串行地从一个部件(I/O 接口)送到下一个部件, 若BG 到达的部件无总线请求,则继续下传,直到到达有总线请求的部件为止。这意味着该 部件获得了总线使用权。 图5.6 链式查询方式 显然,在查询链中离总线控制器最近的部件具有最高优先权,离总线控制器越远,优 先权越低。链式查询通过接口的优先权排队电路实现。 2)计数器定时查询方式 计数器定时查询方式采用一个计数器控制总线的使用权,其工作原理如图5.7 所示。它 仍用一根请求线,当总线控制器接到总线请求信号以后,若总线不忙(BS 线为0),则计数 器开始计数,并把计数值通过一组地址线发向各部件。当地址线上的计数值与请求使用总 线设备的地址一致时,该设备获得总线使用权,置BS 为1。同时中止计数器的计数及查询 工作。 计数器每次可以从0 开始计数,也可以从中止点开始。如果从0 开始,各部件的优先 次序与链式查询法相同,优先级的顺序是固定的。如果从中止点开始,则每台设备使用总 线的优先级相等,这对于用终端控制器来控制各个显示终端设备是非常合适的。因为,终 端显示属于同一类设备,应该具有相等的总线使用权。计数器的初值也可用程序设置,以 方便地改变优先次序。当然这种灵活性是以增加控制线数为代价的。 ·214· 图5.7 计数器定时查询方式 3)独立请求方式 独立请求方式原理如图5.8 所示。在独立请求方式中,每个共享总线的部件均有一对总 线请求线BRi 和总线允许线BGi。当该部件要使用总线时,便发出请求信号,在总线控制部 件中排队。总线控制器可根据一定的优先次序决定首先响应哪个部件的总线请求,以便向 该部件发出总线的响应信号BGi。该部件接到此信号就获得了总线的使用权,开始传输 数据。 图5.8 独立请求方式 独立请求方式的优点是响应时间快,不用一个部件接一个部件地查询,然而这是以增 加控制线数为代价的。设n 为允许接纳的最大部件数,则在链式查询中仅用两根线确定总 线使用权属于哪个部件,在计数查询中大致用log2n 根线,而独立请求方式需要采用2n 根线。 独立请求方式对优先次序的控制非常灵活,需要采用特定的裁决算法。常用的算法有 如下4 种。 (1)静态优先级算法。预先固定优先级别,例如让BR0 优先级最高,BR1 次之,……, BRn.1 最低。有使用冲突时,优者得。 (2)平等算法。以轮转方式使各设备都获得较为均等的总线使用机会。 (3)动态优先算法。根据使用情况,动态地改变优先次序,如让近期最少使用者或使 用时间短者优先。 (4)先来先服务算法。即按申请到达的顺序进行裁决。 ·215 ·