第 6 章 总线

Intro

【考纲内容】

【复习提示】

本章的知识点较少,通常以选择题的形式出现,特别是总线的特点、猝发传输方式、性能指标、定时方式及常见的总线标准等。总线带宽的计算也可能结合其他章节出综合题。

在学习本章时,要带着以下问题:

  1. 引入总线结构有什么好处?
  2. 引入总线结构会导致什么问题?如何解决?

一、总线概述

随着 I/O 设备的种类和数量越来越多,为了更好地解决 I/O 设备和主机之间连接的灵活性,计算机的结构从分散连接发展为总线连接。为了进一步简化设计,又提出了各类总线标准。

0x00 总线基本概念

  1. 总线的定义:总线是一组能为多个部件分时共享的公共信息传送线路。分时和共享是总线的两个特点。分时是指同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发送信息。共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享,多个部件可同时从总线上接收相同的信息。

  2. 总线设备:总线上所连接的设备,按其对总线有无控制功能可分为主设备和从设备两种。

    • 主设备:指获得总线控制权的设备。
    • 从设备:指被主设备访问的设备,它只能响应从主设备发来的各种总线命令。
  3. 总线特性:总线特性是指机械特性(尺寸、形状)、电气特性(传输方向和有效的电平范围)、功能特性。

0x01 总线的分类

计算机系统中的总线,按功能划分为以下 4 类:

  1. 片内总线:片内总线是芯片内部的总线,它是 CPU 芯片内部寄存器与寄存器之间、寄存器与 ALU 之间的公共连接线。

  2. 系统总线:系统总线是计算机系统内各功能部件(CPU、主存、I/O 接口)之间相互连接的总线。按系统总线传输信息内容的不同,又可分为 3 类:数据总线、地址总线和控制总线。

    • 数据总线:用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
    • 地址总线:用来指出数据总线上的源数据或目的数据所在的主存单元或 I/O 端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。
    • 控制总线:传输的是控制信息,包括 CPU 送出的控制命令和主存(或外设)返回 CPU 的反馈信号。

    注意区分数据通路和数据总线:各个功能部件通过数据总线连接形成的数据传输路径称为数据通路。数据通路表示的是数据流经的路径,而数据总线是承载的媒介。

  3. I/O 总线:I/O 总线主要用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能,常见的有 USB、PCI 总线。

  4. 通信总线:通信总线是在计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线,通信总线也称外部总线。此外,按时序控制方式可将总线划分为同步总线和异步总线,还可按数据传输格式将总线划分为并行总线和串行总线。

0x02 系统总线的结构

  1. 单总线结构:单总线结构将 CPU、主存、I/O 设备(通过 I/O 接口)都挂在一组总线上,允许 I/O 设备之间、I/O 设备与主存之间直接交换信息,如图 6.1 所示。CPU 与主存、CPU 与外设之间可直接进行信息交换,而无须经过中间设备的干预。

    6-1

    优点:结构简单,成本低,易于接入新的设备。
    缺点:带宽低、负载重,多个部件只能争用唯一的总线,不支持并发传送操作。

  2. 双总线结构:双总线结构有两条总线:一条是主存总线,用于在 CPU、主存和通道之间传送数据;另一条是 I/O 总线,用于在多个外部设备与通道之间传送数据,如图 6.2 所示。

    6-2

    优点:将低速 I/O 设备从单总线上分离出来,实现了存储器总线和 I/O 总线分离。
    缺点:需要增加通道等硬件设备。

  3. 三总线结构:三总线结构是在计算机系统各部件之间采用 3 条各自独立的总线来构成信息通路,这 3 条总线分别为主存总线、I/O 总线和直接内存访问(DMA)总线,如图 6.3 所示。

    6-3

    优点:提高了 I/O 设备的性能,使其更快地响应命令,提高系统吞吐量。
    缺点:系统工作效率较低。

0x03 常见的总线标准

常见的总线标准有 ISA、EISA、VESA、PCI、AGP、PCI-Express、USB 等。它们的主要区别是总线宽度、带宽、时钟频率、寻址能力、是否支持突发传送等。

  1. ISA (Industry Standard Architecture):工业标准体系结构,是最早出现的微型计算机的系统总线,应用在 IBM 的 AT 机上。
  2. EISA (Extended Industry Standard Architecture):扩展的 ISA,是为配合 32 位 CPU 而设计的扩展总线,EISA 对 ISA 完全兼容。
  3. VESA (Video Electronics Standards Association):视频电子标准协会,是一个 32 位的局部总线,是针对多媒体 PC 要求高速传送活动图像的大量数据而推出的。
  4. PCI (Peripheral Component Interconnect):外部设备互连,是高性能的 32 位或 64 位总线,是专为高度集成的外围部件、扩充插板和处理器/存储器系统设计的互连机制。目前常用的 PCI 适配器有显卡、声卡、网卡等。PCI 总线支持即插即用。
  5. AGP (Accelerated Graphics Port):加速图形接口,是一种视频接口标准,专用于连接主存和图形存储器,用于传输视频和三维图形数据,属于局部总线。
  6. RS-232C:由美国电子工业协会(EIA)推荐的一种串行通信总线,是应用于串行二进制交换的数据终端设备(DTE)和数据通信设备(DCE)之间的标准接口。
  7. USB (Universal Serial Bus):通用串行总线,是一种连接外部设备的 I/O 总线,属于设备总线。具有即插即用、热插拔等优点,有很强的连接能力。
  8. PCMCIA (Personal Computer Memory Card International Association):广泛应用于笔记本电脑的一种接口标准,是一个用于扩展功能的小型插槽,具有即插即用功能。
  9. IDE (Integrated Drive Electronics):集成设备电路,更准确地称为 ATA,是一种 IDE 接口磁盘驱动器接口类型,硬盘和光驱通过 IDE 接口与主板连接。
  10. SCSI (Small Computer System Interface):小型计算机系统接口,是一种用于计算机和智能设备之间(如硬盘、软驱)系统级接口的独立处理器标准。
  11. SATA (Serial Advanced Technology Attachment):串行高级技术附件,是一种基于行业标准的串行硬件驱动器接口,是由 Intel、IBM、Dell 等公司共同提出的硬盘接口规范。

0x04 总线的性能指标

  1. 总线传输周期:指一次总线操作所需的时间,包括申请阶段、寻址阶段、传输阶段和结束阶段。总线传输周期通常由若干总线时钟周期构成。
  2. 总线时钟周期:即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
  3. 总线工作频率:总线上各种操作的频率,为总线周期的倒数。实际上指 1 秒内传送几次数据。若总线周期 =

N 个时钟周期,则总线的工作频率 = 时钟频率 / N。

  1. 总线时钟频率:即机器的时钟频率,它为时钟周期的倒数。

  2. 总线宽度:又称总线位宽,它是总线上同时能够传输的数据位数,通常指数据总线的根数,如 32 根称为 32 位总线。

  3. 总线带宽:可理解为总线的最大数据传输率,即单位时间内总线上最多可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。总线带宽 = 总线工作频率 ×(总线宽度 / 8)。

    注意:总线带宽和总线宽度应加以区别。

  4. 总线复用:总线复用是指一种信号线在不同的时间传输不同的信息,因此可以使用较少的线传输更多的信息,从而节省空间和成本。

  5. 信号线数:地址总线、数据总线和控制总线 3 种总线数的总和称为信号线数。

总线的最主要性能指标为总线宽度、总线工作频率、总线带宽。总线带宽是指总线本身所能达到的最高传输速率,它是衡量总线性能的重要指标。三者关系:总线带宽 = 总线宽度 × 总线频率。

例如,总线工作频率为 22 MHz,总线宽度为 16 位,则总线带宽 = 22 ×(16 / 8)= 44 MB/s。

 

二、总线事务和定时

总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,其实质是一种协议或规则,主要有同步和异步两种基本定时方式。

0x00 总线事务

从请求总线到完成总线使用的操作序列称为总线事务,它是在一个总线周期中发生的一系列活动。典型的总线事务包括请求操作、仲裁操作、地址传输、数据传输和总线释放。

  1. 请求阶段:主设备(CPU 或 DMA)发出总线传输请求,并且获得总线控制权。
  2. 寻址阶段:主设备通过总线给出要访问的从设备地址及有关命令,启动从模块。
  3. 传输阶段:主模块和从模块进行数据交换,可单向或双向进行数据传送。
  4. 释放阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。

在总线事务的传输阶段,主、从设备之间一般只能传输一个字长的数据。突发(猝发)传送方式能够进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,但不释放总线,直到一组数据全部传送完毕后,再释放总线。

0x01 同步定时方式

同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。在每个时钟周期中,发送方和接收方可以进行一次数据传送。由于采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线传送周期结束,下一个总线传送周期开始。

0x02 异步定时方式

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。通常,把交换信息的两个部件或设备分为主设备和从设备,主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。

异步定时方式可以分为以下几种:

  1. 不互锁方式:主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间便撤销“请求”信号。从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间后自动撤销“回答”信号。双方不存在互锁关系,如图 6.4(a)所示。
  2. 半互锁方式:主设备发出“请求”信号后,必须在接到从设备的“回答”信号后,才撤销“请求”信号。从设备在接到“请求”信号后,发出“回答”信号,并经过一段时间后自动撤销“回答”信号,不存在互锁关系。半互锁方式如图 6.4(b)所示。
  3. 全互锁方式:主设备发出“请求”信号后,必须在从设备发出“回答”信号后才撤销“请求”信号,从设备也必须在接收到主设备撤销“请求”信号后才撤销“回答”信号。双方存在互锁关系,如图 6.4(c)所示。

6-4c