什么是总线?

总线(BUS)是计算机中各个功能部件之间传送信息的公共通信干线,是由导线组成的传输线束。

按照计算机所传输的信息种类,总线可被划分为数据总线(传输数据)、地址总线(传输数据地址)和控制总线(传输控制信号)。
计算机系统中,部件之间传送信息的公共通路被称为总线,传统微型计算机便是以总线结构来连接各个部件。因此,总线是计算机内部的一种公用通道,主要传递 cpu、内存、输入设备、输出设备之间的信息。
计算机中内部部件通过总线相连接,外部设备则是通过相应的接口电路与总线相连接,从而形成完整的计算机硬件系统。

计算机系统中按所连接的对象,总线可分为:片总线,又称器件级总线,它是中央处理器芯片内部的总线。内总线,又称系统总线或板级总线,它是计算机各部件之间的传输通路,微型计算机总线通常称为内总线。外总线,又称通信总线,它是计算机系统之间,或者是计算机主机与外围设备之间的传输通路。

总线是一种共享型的数据传送设备。虽然总线上可连接多个设备,但是通常只允许一对设备在某一时刻参与数据传输。
按信息传输的形式,总线可分为并行总线和串行总线两种。
总线连接各部件的一组信号线,通过信号线上的不同信号来约定如何操作。

为了提高计算机的可扩展性,以及部件和设备的通用性,除了片内总线外,各部件或设备都采用标准化的形式连接到总线上,并按标准化的方式实现总线上的信息传输。而总线的这些标准化的连接形式和操作方式,统称为总线标准。

总线按照功能和规范可分为五大类型:

  1. 数据总线(Data Bus)
  2. 地址总线(Address Bus)
  3. 控制总线(Control Bus)
  4. 扩展总线(Expansion Bus)
  5. 局部总线(Local Bus)

“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即它既可以把CPU的数据传送到存储器或I/O等其他部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理器的字长保持一致。数据的含义是广义的,可以是真正的数据,也可以是指令代码或状态信息,甚至是一个控制信息。因此,实际应用中,数据总线上传送的并不一定是真正意义上的数据。

”地址总线AB“是专门用来传送地址,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线是单向三态的,这与数据总线不同,地址总线的位数决定了CPU可直接寻址的地址空间大小。

“控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器或I/O接口电路的,也有的是其他部件反馈给CPU的。因此,控制总线的传送方向由具体控制信号而定,(信息)一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。

总线应用结构图:

计算机总线架构示意图 计算机总线又叫什么_嵌入式

接下来描述两种不同的总线,分别是PCI总线和HT总线。

PCI总线

PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写。该总线目前是使用最为广泛的接口。
PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作。PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI从设备而且读写只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。

PCI总线结构图:

计算机总线架构示意图 计算机总线又叫什么_地址总线_02


在PCI处理器系统中,包括PCI总线和PCI总线树这两个概念。这两个概念并不相同,在一颗PCI总线树中可能具有多条PCI总线,而具有血缘关系的PCI总线组成一颗PCI总线树。PCI总线由HOST主桥或者PCI桥管理,用来连接各类设备,如声卡、网卡和IDE接口卡等。在一个PCI处理器系统中,可以通过PCI桥扩展PCI总线,并形成具有血缘关系的多级PCI总线,从而形成PCI总线树型结构。在处理器系统中有几个HOST主桥,就有几颗这样的PCI总线树,而每一颗PCI总线树都与一个PCI总线域对应。与HOST主桥直接连接的PCI总线通常被命名为PCI总线0。考虑到在一个处理器系统中可能有多个主桥。

PCI总线的地址总线与数据总线是分时复用的。一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在做数据传输时,由一个PCI设备做发起者(主设备),而另一个PCI设备做目标(从设备)。总线上的所有时序的产生与控制,都由主设备来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构来决定谁有权利拿到总线的主控权。

简要说明一下 PCI 总线的工作原理:

当PCI总线进行操作时,发起者(主设备)先置REQ#,当得到仲裁器的许可时(GNT#),会将FRAME#置低,并在AD总线上放置从设备地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上的设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#都置低时,可以传输数据。当主设备数据传输结束前,将FRAME#置高以表明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。

HT总线

HT是HyperTransport的简称。HyperTranspor本质上是一种为主板上的集成电路互连而设计的端到端总线技术,目的是加快芯片间的数据传输速度。在基础原理上,HyperTransport采用点对点的单双工传输线路,引入抗干扰能力强的LVDS信号技术,命令信号、地址信号和数据信号共享一个数据路径,支持DDR双触发技术等等。

HT总线与PCI总线在用途上截然不同,PCI主要用于计算机的系统总线,而HyperTransport总线主要用于两枚芯片之间的连接,HT 总线的链接对象可以是处理器与处理器、处理器与芯片组、芯片组的南北桥、路由器控制芯片等等,属于计算机系统的内部总线范畴。

两者的区别如图:

计算机总线架构示意图 计算机总线又叫什么_嵌入式_03


PCI总线属于上图中的E-BUS类别,HT总线则属于I-BUS类别。