《计算机组成原理》 总线系统

words: 1.6k    views:    time: 5min

总线是构成计算机系统的互联机构,是多个系统部件之间进行数据传输的公共通道。借助于总线,各部件之间实现地址、数据、控制信息的互换。一个单处理器系统中的总线,可以分为三类:

  • 内部总线:CPU内部连接各寄存器及运算部件之间的总线;
  • 系统总线:CPU同计算机的其他高速功能部件,如存储器、通道等互相连接的总线,称为系统总线;
  • I/O总线:低速I/O设备之间互相连接的总线;

1. 总线连接方式

计算机的用途很大程度上取决于它所能连接的外围设备的范围,但外围设备种类多,速度差异大,不可能简单地把外围设备直接连接到CPU上,因此需要一种方法来将它们连接起来并一起工作。这个工作由适配器来完成,通常称为接口。

1.1. 单总线结构

单总线结构中,要求连接到总线上的逻辑部件必须高速运行,以便在某些设备需要使用总线时,能迅速获得总线控制权;而当不再使用总线时,能迅速放弃总线控制权。否则,由于一条总线由多功能部件共用,可能导致很大的延迟。

当CPU取一条指令时,首先把程序计数器PC中的地址同控制信息一起送至总线上,该地址不仅加至主存,同时也加至总线上的所有外围设备,但是只有与出现在总线上的地址相对应的设备,才执行数据传送操作。

这种简单的总线一般也由50~100条信号线组成,每条传输线一次只能传输1位二进制数据,总线即传输线数量之和,按照传送方式有串行传送和并行传送,比如32位系统,如果是并行方式传送,那么其一次可以传输32位二进制数据。对于传输线,如果按其功能可以分为三类:

  • 数据线:即CPU与内存或其他设备之间的数据通道,其决定了CPU和外界的数据传送速度。
  • 地址线:CPU通过地址总线来指定存储单元,其决定了CPU所能访问的最大内存空间,比如32位系统最大寻址为4G。
  • 控制线:CPU通过控制总线对外部设备进行控制。

1.2. 多总线结构

早期总线的不足之处在于:CPU是总线上唯一的主控者,其次总线结构与CPU紧密相关,通用性差。

现在的总线结构追求与结构、CPU、技术无关的开发标准,并满足多个CPU在内的主控者环境需求。一般CPU会与它私有的cache一起作为一个模块与总线相连,系统中运行有多个这样的处理器模块,而总线控制器负责对多个总线请求进行协调和仲裁。

整个总线分为四个部分:

  • 数据传送总线:同样由地址线、数据线、控制线组成;
  • 仲裁总线:包括总线请求线和总线授权线;
  • 中断和同步总线:包括中断请求线和中断认可线,用于处理带优先级的中断操作;
  • 公用线:包括时钟信号线、电源线、地线、系统复位线以及时序信号线等;

2. 总线仲裁

连接到总线上的功能模块有主动和被动两种形态,比如CPU在不同的时间可以作为主方也可以作为从方,而主存只能作为从方。每次总线操作,只能有一个主方占用总线控制权,但可以有多个从方。

事实上,除了CPU,I/O模块也可以提出总线请求,因此为了解决多个主设备同时竞争总线控制权的问题,必须具有总线仲裁部件,以某种策略选择其中一个主设备作为总线的下一次主方。具体的总裁策略这里不细说了。

3. 经典的PCI总线结构

  • HOST总线

HOST总线是连接北桥芯片与CPU之间的信息通路,不仅连接主存和多个CPU,还接有L2级cache,以及主存与cache控制器芯片,其用来控制CPU对主存和cache的存取操作。

  • PCI总线

负责连接各种高速的PCI设备,PCI是一个与处理器无关的高速外围总线,也是至关重要的层间总线。同时,系统中允许有多条PCI总线,它们可以使用HOST桥与HOST总线相连,也可以使用PCI/PCI桥与已经和HOST总线相连的PCI总线进行连接。

  • LEGACY总线

可以作为ISA、EISA、MCA等性能较低的传统总线,以便充分利用各种适配器卡,对低速I/O设备进行支持。

桥有着至关重要的作用,它连接两条总线,使彼此相互通信,同时也是一个总线转换部件,可以把一条总线上的地址空间映射到另一条总线的地址空间上,从而使系统中任意一个总线主设备都能看到同样的一份地址表。另外,HOST桥还是PCI总线控制器,含义中央总裁器。

利用桥可以实现总线间的猝发式传送,写操作时,桥把上层总线的写周期先缓存起来,后面再向下层总线生成写周期,即延时写。读操作时,桥可以早于上层总线,直接在下层总线上进行预读,无论延时写还是预读,桥都可以让所有的存取按CPU的需要出现在总线上。

而且,以桥连接的PCI总线结构具有很好的扩充性和兼容性,允许多条总线并行工作。它与处理器无关,不论HOST总线上是单CPU还是多CPU,也不论CPU是什么型号。

多总线结构确保高速、中速、低速设备可以连接到不同的总线上同时工作,以提高总线的效率和吞吐量,而且处理器的变化不影响高速总线,下面简单画一个多总线结构的实例:


参考:

  1. 《计算机组成原理》