摘要: 系统总线的基本概念:计算机的五大部件(运算器、控制器、存储器、输入设备、输出设备)之间的互联方式有两种:一是各部件之间单独连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。 总线是连接多个部件之间的信息传输线,是各个部件共享信息...
- 系统总线的基本概念:
计算机的五大部件(运算器、控制器、存储器、输入设备、输出设备)之间的互联方式有两种:一是各部件之间单独连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。
总线是连接多个部件之间的信息传输线,是各个部件共享信息的传输介质。当多个部件与总线相连时,如果出现2个或2个以上的部件同时向总线发送信息,势必导致信号冲突,传输无效。因此,在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线接收相同的信息。
总线实际上是由许多传输线和通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内传输完成。若干条线,可以同时传输若干位二进制代码,例如:16条传输线组成的总线可同时传输16位二进制代码。
下面举几个简单的总线结构图:
(图1 面向 CPU 的双总线结构框图)
(图2 单总线结构框图)
(图3 以存储器为中心的双总线结构框图)
2.总线的分类:
按数据的传送方式,可分为并行总线和串行总线。
在并行总线中,按照传输的宽度:8位、16位、32位、64位等。
按照总线的使用范围又分为:计算机(包括外设)总线;测控总线;网络总线等。
下面按照连接的部件不同,介绍三类总线。
- 片内总线:
概念:片内总线是指芯片内部的总线,如在CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单位ALU之间都是由片内总线连接。
- 系统总线:
概念:系统总线是指CPU、主存、I/O设备(通过I/O接口)各大部件之间的信息传输线,是各个部件共享信息的传输介质。
按照系统总线传输的信息的不同,又可分为三类:数据总线、地址总线、控制总线。
A 数据总线:
数据总线DB用于传送各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为8位、16位、32位。
数据总线的位数,称之为数据总线的宽度,它是衡量系统性能的一个重要参数。如果数据总线的宽度是8位,而指令字长是16位,那么,CPU在取指阶段必须两次访主存。
B 地址总线:
地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。
例如:欲从存储器读出一个数据,则CPU先要将此数据在存储单位的地址送到地址总线上。
例如:欲将某数据经I/O设备输出,则CPU除了将数据所在的存储单位的地址送到地址线上外,还需将该输出设备的地址(通常都经过I/O设备)送到地址总线上。
总结:地址总线上的代码是用来指明CPU欲访问的存储单元或I/O端口的地址,由CPU输出,单向输出。地址线的位数与存储单位的个数有关。
C 控制总线:
数据总线和地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线的使用权,需要依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。通常对任何一个控制总线来说,它的传输都是单向的。
常见的控制信号如下:
- 时钟:用来同步各种操作。
- 复位:初始化所有部件
- 总线请求:表示某部件需要获得总线的使用权。
- 总线允许:表示需要获得总线使用权的部件已经获得控制权
- 中断请求:表示某部件提出中断请求。
- 中断响应:表示中断请求已经被接收。
- 存储器写:将数据总线上的数据写至存储器的指定地址单元内。
- 存储器读:将指定的存储单元内的数据读到数据总线上。
- I/O读:从指定的I/O端口将数据读到数据总线上。
- I/O写:将数据总线上的数据输出到指定的I/O端口内。
- 传输响应:表示数据已经被接收,或已姜数据送至数据总线上。
2.通信总线:
这类总线用于计算机系统之间或计算机与其他系统(如控制仪表、移动通信等)之间的通信。由于这类联系涉及许多方面,如外部连接、距离远近、速度快慢、工作方式等,差别极大,因此通信总线类别很多,但按传输方式可分为两种:串行通信和并行通信。
- 串行通信:数据在单条1位宽的传输线上,一位一位的按照顺序分时传送。
如:1字节的数据,在串行的传送中,1字节的数据要通过一条传输线,分8次由低位向高位按照顺序逐位传送。
- 并行通信:数据在多条并行的1位宽的传输线上,同时由源传送到目的地。
如:1字节的数据,在并行传送中,要通过8条并行传输线同时由源传送到目的地。
备:1、并行通信适宜于近距离的数据传输,通常小于30m;
- 串行通信适宜于远距离传送,可以从几千米到数千公里;
- 串行和并行通信的数据传送速率都与距离成反比。
3.总线特性及性能指标:
从物理学角度来看,总线由许多导线直接印制在电路板上,延伸到各个部件。
(图4 总线结构的物理实现)
目前,已经将CPU直接安置在主板上,且很多插卡已做成专用芯片,减少了插槽。
(一)总线的特性:
- 机械特性:总线在机械连接方式上的一种性能。
如:插头与插座的使用标准,它们的几何尺寸、形状、引脚的个数以及排列的顺序,接头处的可靠接触等。
- 电气特性:
总线的每一根传输线上的信号的传递方向和有效的电平范围。通常规定:CPU发出的信号为输出信号,送入CPU的信号为输入信号。
如:地址总线为单项输出线,数据总线为双向传输线,定义高电平为“1”,低电平为“0”.
- 功能特性:
功能特性是指总线中每根传输线的功能。
如:地址总线用来指出地址码;数据总线用来传输数据;控制总线用来发出控制信号。
- 时间特性:
时间特性是指总线中的任一根线在什么时间内有效。每根总线上各种信号互相存在一的一种有效时序的关系。时间特性一般用信号时序图来描述。
(二)总线的性能指标:
- 总线的宽度:通常是指总线的根数,用bit(位)表示。
如:8位、16位、32位、64位(即8根、16根、32根、64根)。
- 总线带宽:总线带宽可理解为总线的数据传输速率,即,单位时间内总线上传输数据的位数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。
如:总线工作的频率为33MHz,总线宽度为32位(4B),则总线的带宽为:33*(32/8)=132MBps
- 时钟同步/异步:总线上的数据与时钟是同步工作的总线,称为同步总线。
与时钟不同步工作的总线,称为异步总线。
- 总线复用:一条信号线上分时传送两种信号。
如:通常地址总线与数据总线在物理上分开的两种总线,地址总线传输地址码,数据总线传输数据信息。为了提高总线的利用率,优化设计,特将地址总线与数据总线共用一条物理线路,在这条物理线路上分时传输地址信号和数据信号,即为总线的多路复用。
- 信号线数:地址总线,数据总线,控制总线三种总线的总和。
- 总线控制方式:突发工作(指被传输的数据在主存中连续存放,则在访问此组数据时,只需给出第一个数据的地址,占用一个时钟周期,其后的每个数据的传送各站一个时钟周期,不必每次给出各个数据的地址,提高传输效率)、自动配置、仲裁方式、逻辑方式、计数方式等)。
- 其他指标:负载能力、电源电压、总线宽度能否扩展等。
(三)总线标准:
概念:可视为系统与模块、模块与模块之间的一个互连的标准界面。这个界面对它两端的模块都是透明的,即任何一方只需根据总线的标准的要求完成自身一方接口的功能要求,而无须了解对方接口与总线的连接要求。因此,按照总线标准设计的接口可视为通用接口。
简单介绍几个总线的标准:
(图5 总线标准汇总)
4.总线结构:
总线结构分为:单总线结构和多总线结构
(一)单总线结构:
(图6 单总线结构)
(二)多总线结构
- 双总线结构:
(图7 双总线结构)
这种结构大多用于大、中型计算机系统。
- 三总线结构:
(图8 三总线结构)
在三总线结构中,任一时刻只能使用一种总线,主存总线,和DMA总线不能同时对主存进行存取。
I/O总线只能在CPU执行I/O指令的时候才能用到。
(图9 另一种 三总线结构)
- 四总线结构图:
(图10 四总线结构)
(三)总线结构举例:
(图11 传统的微型计算机总线结构)
(图12 VL-BUS局部总线结构)
(图13 PCI 总线结构)
(图14 多层PCI总线结构)
5.总线控制:
主设备:对总线有控制权
从设备:响应从主设备发来的总线命令
总线控制分类主要包括:判优控制(仲裁逻辑)和通信控制。
(一)总线判优控制:
总线判优控制分为:集中式和分布式。
集中式将控制逻辑集中在一处(如在CPU中),分布式将控制逻辑分散在与总线连接的各个部件或设备上。
- 集中控制优先权仲裁方式分为:链式查询、计数器定时查询、独立请求方式。
(1)链式查询:
(图15 链式查询方式)
- 离总线控制部件最近的设备具有最优的优先级。
- 只需很少的几根线就能按照一定的优先顺序实现总线控制。
- 很容易扩展设备。
- 对电路的故障很敏感。
- 优先级低的设备可能很难获得请求。
(2)计数器定时查询:
(图16计数器定时查询方式)
总线控制部件接到由BR送来的总线请求信号后,在总线未被占用(BS=0),的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向设备发出一组地址信号。当这个请求占用总线的设备地址与计数值一致时,便获得了总线是使用权,此时终止计数查询。
- 计数可以从“0”开始,此时一旦设备的优先次序被固定,设备的优先级就按“0,1,2.......n”是顺序排列,且固定不变。
- 此时也不可以从上一次计数的终点开始,即是一种循环方法,此时设备使用总线的优先级相等。
- 计数器的初始值还可以由程序设置,故优先级可以改变。
- 对电路的故障,不如链路式敏感,但增加了控制线(设备地址)数,控制也较复杂。
(3)独立请求方式:
(图17 独立请求方式)
由图片可见,每一台设备均有一对总线请求BR和总线同意BG。当设备要求使用总线时,便发出该设备的使用请求信号。总线控制部件中有一排队电路,可根据优先级次序确定响应哪一台设备的请求。
- 响应速度快。
- 优先次序控制灵活(通过程序改变)。
- 控制线路多,总线控制复杂。
(二)总线通信控制
众多部件共享总线,在争夺总线使用权时,应按各部件的优先等级来解决。
在通信时间上,则应按分时方式来处理,即以获得总线使用权的先后顺序分时占用总线。
目的:解决通信双方 协调配合 问题。
通常完成一次总线操作的时间称为总线周期,分为以下四个阶段。
- 申请分配阶段:
由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一次传输周期的总线使用权授于某一个申请者。
- 寻址阶段:
取得了使用权的主模块(或主设备)通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动本次传输的从模块。
- 传数阶段:
主模块和从模块进行数据交换,数据由源模块发出,经数据总线流入目的模块。
- 结束阶段:
主模块的有关信息均从系统总线上撤除,让出总线使用权。
- 总线通信分为四种方式:同步通信、异步通信、半同步通信、分离式通信。
(1)同步通信:
通信双方由统一时标控制数据传送。
时标通常由CPU总线控制部件发出,送到总线上的所有部件;
也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号进行同步。
(图18同步式数据输入)
同步通信在系统总线设计时,对T1、T2、T3、T4都有明确、唯一的规定。
对于读命令,时间周期如下:
T1 主模块发地址
T2 主模块发读命令
T3 主模块提供数据
T4 主模块撤销读命令,从模块撤销数据
(图19同步式数据输出)
对于写命令,时间周期如下:
T1 主模块发地址
T2 主模块提供数据
T3 主模块发出写命令,从模块接受命令后,必须在规定的时间内将数据总线上的数据写到地址总线指明的单元中
T4 主模块撤销写命令和数据等信号
特点:
- 优点是:规定明确、统一,模块间的配合简单一致。
- 缺点是:主、从模块间的时间配合属于强制性“同步”,必选在限定的时间内完成规定的要求。并且对所有的从模块都用同一限时,对各个不同速度的部件,必须按最慢的速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
- 同步通信中的总线系统中,总线传输周期越短,数据线的位数越多,直接影响总线的传输效率。
场景:同步通信一般用于总线长度较短。各部件存取时间比较一致的场合。
(2)异步通信:
异步通信允许了各个部件的速度不一致性,给设计者充分的灵活性和选择余地。没有公共时钟,不要求所有部件严格的统一操作时间,而是采取了应答的方式(又称握手方式),即当主模块发出“请求”信号时,一直等待的从模块反馈回来“响应”信号后,才开始通信。主从模块之间增加了两条应答线(握手交互信号线)。
- 异步通信可用于串行通信和并行通信。
- 异步串行通信的数据传输速率用波特率来衡量。波特率是指单位时间内传送的二进制数据吃位数,单位用bps(位/秒)表示,记作波特。
- 异步通信的分类:不互锁、半互锁,全互锁。
(图20 异步通信)
(3)半同步通信:
半同步通信保留了同步通信的基本特点,如所有的地址,命令、数据信号的发出时间,都严格参照系统时钟的某个前沿开始。而接收方都采用系统后沿时刻来进行判断识别,同时又像一步通信那样,允许不同速度的模块和谐的工作。为此增加了一条“等待”响应信号线,采用插入时钟等待周期的措施来协调通信双方的配合问题。
(图21 半同步通信)
- T1 主模块发地址
- T2 主模块发命令
- Tw 当 WAIT为低电平时,等待一个 T
- T3 从模块提供数据
- T4 从模块撤销数据,主模块撤销命令
应用场景:适用于工作速度不高,但又包含很多工作速度差异较大的各类设备组成的简单系统。
(4)分离式通信:
特点:充分挖掘系统总线每个瞬间的潜力。充分提高了总线的有效占用率。
一个总线传输周期分为两个子期:
- 主模块 申请 占用总线,使用完后,即 放弃总线 的使用权
- 从模块 申请 占用总线,将各种信息送至总线上
分离式通信特点:
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲