计算机系统总线

Posted createchance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机系统总线相关的知识,希望对你有一定的参考价值。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
申明:这篇文章是我学习了哈尔滨工业大学计算机科学与技术系刘宏伟老师的mooc课程(参考教材为高教出版社出版的唐朔飞老师编写的《计算机组成原理(第二版)》)的课堂笔记整理(系统总线部分),其中的截图来自刘宏伟老师上课的PPT,版权归刘宏伟老师所有。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

什么是总线?

计算机系统的五大部件之间的链接方式有两种:第一种是各个部件之间使用单独的导线,这个称之为分散链接;另一种是将各个部件链接到一组公共的信息传输线上,这个称之为总线连接(BUS)。

为什么需要总线?

如果各个部件之间使用分散连接的话,那么计算机系统必然会因为众多的设备而导致拥有大量的数据导线,从而使得系统变得异常复杂,如果需要动态添加一个新的设备的话,会比较麻烦。

总线上信息传输的方式

总体来说,有两种方式:串行和并行。
串行:数据一位一位地传递,只有上一位传送完毕之后下一位才能传递,通常由一根导线设计。如下图:

并行:数据中的很多位可以同时传输,使用多根导线制造设计。如下图:

两种方式比较如下:
串行:优点:硬件设计简单,占用引脚较少,有利于集成。缺点:数据传输效率较低。
并行:优点:数据传输效率较高,吞吐量大。缺点:硬件设计复杂,占用较多引脚,集成复杂。

常见总线结构

单总线结构


这种结构是最经典,也是最简单的结构。所有的设备,包括CPU,主存,各种I/O设备全部挂接在一条总线上。但是这种方式的效率底下,因为同时只能有一对设备使用总线进行数据传输,如果这对设备传输时间很长的话(比如CPU和主存之间的数据传输)那么这段时间内别的设备只能等待;另外多个设备之间可能存在严重资源使用冲突的问题。

面向CPU的双总线结构


这种结构以CPU为中心,和上面的结构不同的是,这里主存不在挂在单一总线上了,而是设计了两个总线:I/O总线和M总线(Memory)。这样一来就把专门用于I/O设备数据传输的总线和存储总线分开了,解决了单一总线中因为CPU访问内存而导致系统总线负载较重的问题。
但是这种结构也是有问题的,比如所有的I/O设备如果需要和主存交互的话,那么效率是比较低的,因为每次都需要CPU实际参与。

以存储器为中心的双总线结构


还有一种以存储器为中心的双总线结构,如上图所示。它是在单总线的基础上又开辟一条CPU和主存之间的总线,称之为存储总线。这组总线速度高,只供主存和CPU之间传输信息。这样既提高了传输效率,有减轻了系统总线的负担,还保留了I/O设备与存储器之间交换信息时不经过CPU的特点。

总线的分类

总线应用广泛,从不同的角度可以有很多种分类方式。下面我们按照连接部件的不同,分为三类。

片内总线

片内总线是指芯片内部的总线,如在CPU芯片的内部,寄存器和寄存器之间,寄存器和运算逻辑单元ALU之间的都是由片内总线连接而成的。

系统总线

系统总线是指CPU,主存,I/O设备各大部件之间的信息传输线。由于这些部件通常安放在主板的各个插件板上,因此又称为板级总线或板间总线。按照系统总线传输的信息的不同,又可以分为三类:数据总线,地址总线,控制总线。

数据总线

数据总线用来传输各功能部件之间的数据信息,他是一个双向的传输总线,其位数与机器字长,存储字长有关,一般为8位,16位或者32位。数据总线的位数成为数据总线的宽度,他是衡量系统性能的一个重要参数。

地址总线

地址总线主要用来指出数据总线上的源数据或者目的数据在主存储单元的地址或者I/O设备的地址。地址总线的数据用来指明CPU想要访问的存储单元或者I/O端口的地址,由CPU输出,单向传输。数据线的位数代表着系统能够寻址的空间大小,比如地址线宽为20那么地址空间为2的20次方。

控制总线

我们知道,数据总线和地址总线是被挂在总线上的所有设备所共享的,那么这些设备之间怎么协调使用呢?答案就是控制总线,依靠控制总线来完成共享总线的占用申请。控制总线是发出各种控制信号的,因此它的传输方向就是单向的。但是,通常对于CPU而言的话,控制总线是既有输入,又有输出的。常见的控制信号有:时钟,复位,总线占用请求等等。

通讯总线

这类总线用于计算机系统之间或计算机系统与其他系统之间的通讯,比如网络连接。这类通讯涉及许多方面,因此互相之间差别极大,传输的类别很多,但是总体可以分为两种:串行和并行。

总线性能及指标

总线的物理实现

从物理角度看,总线有许多导线直接印在电路板上,延伸到各个部件,如下图显示了各个部件与总线之间的物理摆放位置:

图中的CPU,主存,I/O这些插板通过插头与水平方向总线插槽连接。因此,为了保证机械上的可靠连接,必须规定其机械特性;为了保证电气上的正确连接,必须规定其电气特性;为了保证正确地连接到不同部件,还需要规定其功能特性和时间特性。

总线的特性

机械特性

指总线在机械连接方式的一些性能,如插头与插座的尺寸,形状,引脚个数以及排列方式等等。

电气特性

指总线的每一根传输线上的信号的传递方向和有效的电平范围。

功能特性

指总线中每个传输线的功能,确定其地址线,数据线,控制线。

时间特性

指总线中任何一根导线在什么时间内有效。每条总线上的各种信号互相存在一种有效的时序关系,因此时间特效一般可以使用信号时序图表示。

总线性能指标

总体上,衡量总线的性能指标如下:

总线标准

总线式在计算机系统模块化的发展过程中产生的,随着计算机应用领域的不断扩大,计算机系统中的各类模块品种极其复杂,往往每一个模块都要配置一种总线。为了使系统设计简化,模块生成批量化,人们发明了很多总线的标准,只要计算机系统厂商和模块生产厂商统一遵守这些标准那么系统集成是很容易的。目前主要的总线标准,数据宽度,时钟,带宽如下:

总线结构

总线结构整体可以分为单总线结构和多总线结构。

单总线结构

整体结构如下图:

这是最简单的一种结构,计算机的各个部件均系统总线相连,所以它又称为面向系统的单总线结构。在单总线结构中,CPU与主存之间、CPU与I/O设备之间、I/O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点。

多总线结构

双总线结构

整体结构如下图:

这种结构的特点就是将速度较低的I/O设备从单总线上分离出来,形成主存总线和I/O总线分来的结构。图中的通道是一个具有特殊功能的处理器,CPU将一部分的功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存之间的数据传送,增大系统性能。但是这种结构的问题是:不是所有的I/O设备的工作速度都是一样的,不同速度的I/O放在一个总线工作会大大影响效率。

三总线结构

整体结构如下图:

这个结构为高速I/O设备建立了一个到达主存的高速通道,称为DMA(直接存储访问)总线。这个结构中同时只能有一个总线在使用,主存总线与DMA总线不能同时访问主存,I/O总线只有在CPU执行I/O指令时才能用到。

三总线加强版

下面是另外一种总线形式:

由图可见,处理器与cache之间有一个局部总线,它将CPU和cache或者更多地局部设备连接起来。Cache控制结构不仅将cache连接到局部总线上,而且还直接连接到系统总线上,这样cache就可以通过系统总线和主存交互,而且I/O设备与主存之间的交互也不必通过CPU。还有一条扩展总线,它将局域网,SCSI等接口连接起来,并且通过这些接口又可以与各类I/O设备连接,因此可以支持很多的外接设备。

四总线结构

为了进一步提高I/O设备的性能,使其更快地响应命令,又出现了四总线的结构,如下图:

这里又增加了一条与系统相连的高速总线,高速总线上挂了很多高速的I/O设备,他们通过cache控制机构中的高速总线桥或者高速缓冲器与系统总线和局部总线连接,使得这些高速设备和CPU更加密切。而一些较低速度的设备则放在了扩展总线上。这种结构对于高速设备而言,自身的工作可以很少依赖CPU,同时他们又比扩展总线上的设备更加靠近CPU,可见对于高性能设备与CPU来说,各自的效率将获得很大的提高。在这种结构中,CPU,高速总线的速度以及各自的信号线的定义可以完全不同,以至于各自改变结构也不会影响高速总线的正常工作。

总线结构的几个例子

传统微机总线结构

VL-BUS局部总线结构

PCI总线结构

多层PCI总线结构

总线控制

由于总线上有很多的设备,什么时候由哪个设备占用总线发送信息,如何给信息发送定时,如何防止信息丢失,如何避免多个设备同时发送等等问题都需要总线控制器统一管理。它主要包括判优控制(或仲裁逻辑)和通讯控制。

判优控制

总线上的各类设备,按照其对总线有无控制权分为主设备和从设备。主设备有控制权,从设备没有,从设备只能响应从主设备发过来的命令。总线上的信息传送是由主设备发起的,如果某个主设备想和另一个从设备通讯时,首先由主设备发出总线控制请求,然后才能通讯。假如同时有多个主设备发起了总线控制请求,那么总线控制器就要按照一定的逻辑按照某个优先级顺序确定哪个主设备能够使用总线。
常见的判优控制可以分类为:集中式和分布式,前者将控制逻辑集中在一起(比如在CPU中),后者将控制逻辑分散在与总线连接的各个部分或者设备上。下面我们简要介一下集中式的控制逻辑,通常来讲集控制逻辑分为以下三种。

链式查询

用3条控制线进行控制:
BS(总线忙); BR(总线讲求); BG(总线允许).
特征:将BG串行地从一部件(I/O接口)送到下一个部件,直到到达有请求的部件为止.
优先权位置:离总线控制器最近的部件具有最高使用权,离它越远,优先权越低.
电路:链式查询靠接口的优先权排队电路实现.
逻辑如下图:

计数器定时查询

总线上的任一设备要求使用总线时,通过BR线发出总线请求.中央仲裁器接到请求信号以后,在BS线为”0”的情况下让计数器开始计数,计数值通过一组地址线发向各设备.每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备 置”1”BS线,获得了总线使用权,此时中止计数查询.
逻辑如下图:

独立请求方式

每一个共享总线的设备均有一对总线请求线BRi和总线授权线BGi. 当设备要求使用总线时,便发出该设备的请求信号.总线控制器中的排队电路决定首先响应哪个设备的请求,给设备以授权信号BGi。它的优点是:响应时间快,确定优先响应的设备所花费的时间少,用不着一个设备接一个设备地查询.
其次,对优先次序的控制相当灵活,可以预先固定也可以通过程序来改变优先次序;还可以用屏蔽(禁止)某个请求的办法,不响应来自无效设备的请求.
逻辑如下图:

三种方式的控制线数目比较

链式查询方式——只用二根线.
计数器定时查询方式——大致用㏒2n根线,n是允许接纳的最大部件数.
独立请求方式——要用2n根线. ..

通讯控制

总线完成一次传输,分四个阶段:
1. 总线裁决:决定哪个主控设备使用总线
2. 寻址阶段:主控设备送出要访问的主存或设备的地址,同时送出有关命令(读或写等),启动从设备
3. 数据传输阶段:主、从设备间进行数据交换
4. 结束阶段:有关信息在总线上撤销,让出总线使用权
总线通信控制的目的:
解决主、从设备如何获知传输开始和传输结束,以及通信双方如何协调进行数据通信。
有四种通信方式:

同步通讯

控制线中有一个时钟信号线,挂接在总线上的所有设备都从这个公共的时钟线上获得定时信号,一定频率的时钟信号定义了等间隔的时间段,这个固定的时间段为一个时钟周期,也称总线周期。
每种总线操作都有一个确定的通信协议(规定在每个时钟周期内交换哪些信息)。
例如,在处理器-主存总线上执行存储器读操作,其协议为:在第1个时钟周期发送地址和存储器读命令,然后存储器被要求在第5个时钟将数据放到总线上。
优点:速度快,并且接口逻辑很少(因为协议简单)。
缺点:
1. 总线上的每个设备必须以同样的时钟速率进行工作。
2. 由于时钟偏移问题,同步总线不能很长.
操作逻辑如下(读操作):

异步通讯

非时钟定时,没有一个公共的时钟标准。因此,能够连接带宽范围很大的各种设备。总线能够加长而不用担心时钟偏移问题。
采用握手协议(应答方式)。由一系列步骤组成,只有当双方都同意时,发送者或接收者才会进入到下一步,协议通过一对附加的“握手”信号线(Ready、Ack)来实现。
异步通信有非互锁、半互锁和全互锁三种方式:

优点:灵活,可挂接各种具有不同工作速度的设备。
缺点:
1. 对噪声较敏感。
2. 接口逻辑较复杂。

半同步通讯

为解决异步通信方式对噪声敏感的问题,一般在异步总线中引入时钟信号,就绪和应答等定时信号都在时钟的上升沿有效,这样信号的有效时间限制在时钟到达的时刻,而不受其他时间的信号干扰。这种通信方式称为半同步通信方式。(例如:Wait信号、TRDY和IRDY信号等)
半同步方式结合了同步和异步的优点。既保持了“所有信号都由时钟定时”的特点,又允许“不同速度设备共存于总线“:

操作时序如下:

操作流程(读操作):

分离式通讯

上面三个通讯方式的共同点是:

这里发现从设备准备数据的过程中总线式等待状态的,这个时候就是一种资源的浪费。因此我们要想办法把这部分利用起来。解决的办法就是分离式通讯:

•基本思想:将一个传输操作事务分成两个子过程。在第一个子过程中,主控设备A在获得总线使用权后,将请求的事务类型(即总线命令)、地址以及其他有关信息(如标识主控设备身份的编号等)发送到总线上,从设备B记录下这些信息。主控设备发完这些信息后便立即释放总线,这样其他设备便可使用总线。在第二个子过程中,从设备B收到主控设备A发来的信息后,就按照其请求的命令进行相应的操作,当准备好主控设备所需的数据后,从设备B便请求使用总线,一旦获得使用权,则从设备B就将主控设备A的编号及所需的数据等送到总线上,这样主控设备A便可接收数据。
• 优点:提高整个系统的总有效带宽。
缺点:控制相当复杂,开销大。
分离式通讯的基本特点:

教材中的截图





以上是关于计算机系统总线的主要内容,如果未能解决你的问题,请参考以下文章

重学计算机计组D1章:计算机系统概论

计算机组成原理

SCSI 总线和协议

(计算机组成原理)第六章总线-第四节:总线标准

计算机系统漫游笔记

计算机组成原理计算机系统概述