总线

需了解总线的组成、常见的总线标准以及定时方式,可能会在 CPU 和指令大题中作为知识点进行间接考察,也可能在选择题中出现一道。

基本概念

总线是一组电子导线或信号线,它们允许不同的硬件设备(如 CPU、内存、输入/输出设备等)之间进行数据传输和通信。总线是计算机内部和外部设备之间的信息传递通道。

总线分类

按照功能分有三类总线

  1. 核内总线:在处理器核内部各元件之间连线的总线称为核内总线,可连接核内各寄存器、ALU、指令部件等
  2. 系统总线:指连接 CPU、主存和 I/O 接口等主要部件的总线,通常所说的总线是指这类在系统主要模块之间互连的总线。下面要介绍的也是这种系统总线。
  3. 通信总线:计算机系统之间或计算机系统与其他系统(远程通信设备、测试设备)之间进行通信的总线,又称外部总线

按照数据传送方式分有两类总线

  1. 串行总线:只含有一条双向数据线或两条单向数据线,数据按位分时传送。适合远距离通信,大多数通信总线属于串行总线
  2. 并行总线:含有多条双向数据线,可实现多位同时传送。传输效率高,但相邻数据线之间会相互干扰,适合近距离传输。大多数系统总线属于并行总线

按照时序控制方式

  1. 同步总线:采用公共的时钟信号进行定时,挂接在总线上的所有设备都从时钟线上获得定时信号
    • 总线定时以最慢设备所用时间为标准,因此适合于存取时间相差不大的多个功能部件之间的通信
    • 由于时钟偏移问题,导致同步总线不能过长,否则会降低总线传输效率
    • 同步总线常采用并行传输,即总线的数据条数为 8、16、32 或 64 位等
  2. 异步总线:总线上连接的各部件或设备没有统一的时钟,而是依靠各自内部的定时操作,通过信号握手的方式来进行规定的总线操作,从而完成部件或设备之间的数据传输
    • 由于同步并行总线使用快速且长的传输线时,会导致传送到另一端的波形发生变形,从而使得(并行传输的)所有位中最快和最慢的位信号之间的时间差较大,因此现在更多使用异步串行方式进行传输:串行–传输速率可更快+不会影响到其他位

总线架构方式

总线架构方式可以分成单总线、多总线 以及 分层结构三种。

外部设备1
外部设备2
外部设备n
CPU
主存
I/O 接口
I/O 接口
I/O 接口
磁盘
打印机
I/O 接口
I/O 接口
通道/IO 处理器
CPU
主存
单总线结构
多总线结构
系统总线
存储总线
I/O 总线
键盘
I/O 接口
DMA 总线
高速外设
高速外设
  1. 单总线结构:
    • 在单总线结构中,所有的处理器、存储器和 I/O 设备都通过一个共享的通信通道进行连接。
    • 这种设计简单、成本低,但所有设备都必须竞争同一个总线,可能导致瓶颈。
  2. 多总线结构:
    • 多总线结构通过引入额外的总线来减轻单总线所带来的瓶颈问题。
    • 这种结构可能包括一个内部总线,专门用于处理器和主存储器之间的通信,以及一个或多个外部总线,用于处理器和外围设备之间的通信。
  3. 分层总线结构:
    • 在分层总线结构中,总线被组织成层次结构,每一层服务于不同级别的数据传输需求。
    • 例如,高速缓存和处理器可能在顶层使用高速总线,而存储器和 I/O 设备可能在下一层使用较慢的总线。

总线组成

系统总线通常由一组控制线、一组数据线和一组地址线构成。也有些总线没有单独的地址线,即数据线和地址线复用。

  1. 数据总线(Data Bus):数据总线用于在计算机系统的各个组件之间传输数据。它通常由多条并行线组成,每条线传输一个数据位(比特)。
    • 位数(数据总线条数)与机器字长、存储字长有关,一般是 8 位、16 位、32 位
  2. 地址总线(Address Bus):地址总线用于传输内存地址或外部设备的地址信息,以确定数据的存储位置或目标设备。
    • 地址总线的宽度决定了系统可以寻址的内存或设备的数量。更宽的地址总线通常允许系统寻址更多的内存或设备。
  3. 控制总线(Control Bus):控制总线传输控制信号和命令,用于控制各个硬件组件的操作。这些控制信号包括读/写信号、时钟信号、中断信号、复位信号等。控制总线用于协调数据传输和操作的序列。

常见总线标准

  1. PCI (Peripheral Component Interconnect):PCI 总线是一种用于连接内部扩展卡(如显卡、网卡、声卡等)到主板的标准。PCI 总线存在多个版本,包括 PCI、PCI-X 和 PCI Express(PCIe),它们在带宽、速度和适用范围上有所不同。
  2. SATA (Serial Advanced Technology Attachment):SATA 是一种用于连接存储设备(如硬盘驱动器和光盘驱动器)到计算机的总线标准。它广泛应用于个人电脑和服务器中。
  3. ISA(Industry Standard Architecture):16 位体系结构,只能支持 16 位的 I/O 设备,是已经被淘汰的插槽接口。
  4. IDE (Integrated Drive Electronics):IDE 是早期计算机中用于连接硬盘驱动器和光盘驱动器的总线标准,现在已经被 SATA 所取代。
  5. USB (Universal Serial Bus):USB 是一种通用的总线标准,用于连接各种外部设备(如键盘、鼠标、打印机、存储设备等)到计算机。USB 有多个版本,包括 USB 1.0、USB 2.0、USB 3.0、USB 3.1 和 USB 3.2,它们在传输速度和功能上有所区别。

还有一些其他总线标准比如 PCI-Express、EISA 这种,看到能够认出来是总线标准即可。

总线事务

总线事务是计算机总线操作的一个基本单位。一个总线事务通常涉及一系列的操作,这些操作可以是数据的读取或写入。

在一个总线事务中,主设备(发起事务的设备)通过总线控制线对总线进行控制,并发出地址和数据,以及读写信号。从设备(数据被读取或写入的设备)则识别地址,并根据读写信号进行相应的数据交换。

总线事务包含几个主要阶段:

  1. 请求(Request):主设备发出总线传输请求。
  2. 仲裁(Arbitration): 如果多个设备同时尝试使用总线,它们必须通过某种仲裁过程来决定哪个设备有权控制总线。这通常涉及一个优先级方案,以防止冲突和数据损坏。
  3. 寻址(Addressing): 主设备将目标地址放在总线上,以指定事务的目的地,如特定的内存地址或 I/O 设备。
  4. 传输(Transfer): 一旦地址被确认,数据传输就会发生。这可以是读操作,也可以是写操作。
  5. 终止(Termination): 一旦数据成功传输,事务就会结束。终止阶段可能包括从设备发出的确认信号,或者主设备撤销其对总线的控制。

突发总线传输事务

突发(Burst)总线传输事务是指在总线通信中,一次性连续传输多个数据单元(通常是字节或字)而无需为每个数据单元单独发起请求或握手的过程。这种传输方式广泛应用于现代计算机体系结构中,以提高数据传输效率和总线利用率。

总线周期

总线周期是指 CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。 一个总线周期通常包含多个时钟周期,这些时钟周期可以被分为四个阶段(四个时钟周期 $T_1, T_2, T_3, T_4$):

  1. 申请分配阶段:主设备进行请求和仲裁。
  2. 寻址阶段:主设备用地址信息来指明它想读/写的那个从设备是哪一个。
  3. 传输阶段:主设备向从设备发出读命令或者写命令。
  4. 结束阶段:主设备把地址信息、读写命令等从总线上撤除,让出总线的使用权。

总线定时

根据 时钟周期 一节可知,计算机中的设备也许并不使用相同的时钟周期,但是设备间在交换数据的过程中需要时间上配合。

这种时间配合的控制过程就叫做总线定时,总线定时包含 同步定时 和 异步定时 两种方式。

同步定时方式

在总线同步定时方式中,数据传输的时钟信号由一个中央时钟源(通常是主时钟源或总线控制器)生成,并将时钟信号传送到所有参与通信的设备。

这个时钟信号每次都产生一个相等的时间间隔,这个间隔为一个总线传输周期,主设备和从设备必须在这个限定的时间内完成规定的操作。

T1
T2
T3
T4
总线传输周期
时钟
地址
读命令
数据
  • $T_{1}$ 的上升沿到来时,主模块向从模块发送地址
  • $T_{2}$ 的上升沿到来时,主模块发送读命令
  • $T_{3}$ 的上升沿到来时,从模块提供数据
  • $T_{4}$ 的上升沿到来时,主模块撤销读命令,从模块撤销数据

同步通信适用于总线长度较短(出现信息错误的概率小)及总线所接部件的存取时间比较接近的系统。 如果有的从设备速度较慢,就会跟不上总线的节奏,进而拖慢了主设备的速度。

异步定时方式

在总线异步定时方式中,数据传输的时钟信号不是由中央时钟源统一控制,而是由每个设备自己的时钟信号驱动。完全依靠传送双方相互制约的“握手”信号来实现定时控制,通常我们将交换信息的两个设备称为主设备和从设备,主设备发送“请求”,从设备接收到后回复“回答”。

异步定时根据“请求”和“回答”的类型,可以分为三种类型:

  • 不互锁:主设备持续发送请求一段时间,默认从设备接收到请求。
  • 半互锁:主设备接收到来自从设备的回答后停止发送请求,从设备发送回答一段时间,默认主设备接收到回答。
  • 全互锁:从半互锁的基础上,从设备接收到来自于主设备的回答后停止发送回答。
不互锁
不互锁
半互锁
半互锁
不互锁
不互锁
主设备
主设备
从设备
从设备
Text is not SVG - cannot display