总线概述
总线的概念
总线是连接多个部件之间的信息传输通路,是各部件间共享的传输介质。
总线是连接计算机个功能部件的逻辑电路,它不仅包括一组连接线,还包括管理信息传输规则的电路。即总线的基本组成是一组导线加上接受和发送控制逻辑。
在一个时刻,只能允许一个部件向总线发送信息,但多个部件可以同时从总线接受信息。并且在一个总线传输操作结束前不能启动另一个总线传输操作。
总线的分类
总线可以分为片内总线,系统总线,通信总线。
其中系统总线可分为数据总线,地址总线,控制总线。也可分为板级总线和板间总线。
通信总线分为串行通信总线和并行通信总线。
总线的管理与控制
总线仲裁机制
系统总线连接的各个部件,按照部件对总线是否有控制能力分为主模块和从模块。
主模块对总线有控制能力,而从模块只能被动地响应主模块发来的总线命令。一次总线操作
中只能一主一从或一主多从。宏观来看,CPU通常作为主模块,主存只能作为从模块,而有些I/O接口既可作为主模块也可作为从模块。
总线上的信息传输由主模块启动,多个主模块同时请求时,需要仲裁机制来仲裁控制权的分配问题。
总线仲裁方式分为集中式和分布式两种。下面仅讨论三种常见的集中式仲裁机制。
链式查询方式
核心思路:通过一条判优链路(优先链)对所有主模块逐个串行查询。
优先级:离总线越近的主模块优先级越高。
需要三根控制信号线:
- BR 总线请求:所有主模块通过此线向总线控制部件发送请求信号,为公用线。该信号有效时说明至少有一个主模块在请求使用总线。
- BG 总线同意:总线控制部件通过此线向请求总线的主模块发出同意使用总线信号。该信号有效时说明总线控制器已经响应了总线请求。
- BS 总线忙:主模块通过此线向总线控制器发出忙信号,为公用线。此信号有效时表示总线正在被占用。
具体查询方法:从离总线控制器最近的主模块开始查起。首先查到的一定是所有提出请求的主模块中优先权最高的一个。查到最高优先级且有请求的主模块后,该模块通过相应信号卡断判优链路,这样它就可以独占总线与从模块之间行操作了。当操作结束后时释放总线,此时总线控制器可以继续对其它请求模块进行判优。
优点:
- 所需控制线少
- 结构简单
- 易于扩充
缺点:
- 查询速度慢
- 优先级固定导致灵活性差,低优先级的模块可能长期得不到相应,大大限制模块数量。
- 对电路故障明杆(串联,一坏全崩)
计数器定时查询方式
核心思路:总线控制器中设一个计数器用作查询。
具体查询方法:查询开始,计数器计数。每计一次数,就将计数值作为模块地址发往各个主模块。每个申请总线的主模块对地址进行识别,地址符合的模块获得总线控制权,停止计数。
优先级:取决于计数器得工作方式。
- 若查询时计数器每次都从‘0’开始计数,即0号主模块的优先级最高
- 若查询时计数器从上一次查询的终止点开始计数,则终止点优先级最高。此时优先级是循环的
- 计数初值可以由程序设定,因此优先级可编程改变
优点:优先级设置较灵活,电路故障敏感度低。
缺点:需增加模块地址线,且控制较复杂,硬件成本高。
独立请求方式
每一个主模块专门有一根BR线和BG线,各自通过独立的请求线向总线控制器发请求;总线控制器里设置并行排队线路,同时接收各模块发来的请求信号并同时进行排队判优;通过各自独立的回答线发出总线同意信号 BG。
优点:响应速度最快。
缺点:控制线多,控制逻辑复杂,硬件开销大。
总线通信方式
概念
总线通信方式:一次总线传输操作涉及到多个部件,由于各部件的处理速度不同,所以需要进行时间上的协调,所采用的协调方式称为总线的定时方式或者通信方式。
一次总线操作的全过程分为4个阶段:
- 申请分配阶段:主模块申请总线,控制器总线判优、分配总线控制权;
- 寻址阶段:主模块获得总线控制权,通过总线向从模块发地址,发读/写命令,启动从模块工作;
- 传送阶段:主—从模块间通过总线进行数据交换,交换方向由主模块发出的读/写命令决定;
- 结束阶段:主模块撤除发在总线上的信号,让出总线使用权。
总线周期:一次完整的总线传送操作所需时间称为总线周期。
总线周期的基本类型:内存读 、内存写、外设读、外设写。
正常总线周期:由一次地址传送时间和一次数据传送时间组成 。
BURST(猝发)总线周期:由一次地址传送时间和多次数据传送时间组成。
总线的等待状态:在正常总线周期中,若由于被读写的部件速度慢,一次数据时间内不能完成读写操作,就要增加一个或多个数据时间,增加的数据时间被称为总线的等待状态。
常用总线通信方式:
- 同步通信
- 异步通信
- 半同步通信
- 分离通信
同步通信方式
通信双方使用统一的时钟信号来控制数据的传送过程。
一个总线周期中分配的时钟个数是固定的,每个时钟的用途对于任一模块都是一样的,不管模块的操作速度是否一致,所有总线周期的时间是一致的(设计时必须按最慢的模块、最长的距离来安排公共时钟周期时间)。
特点:控制简单;当系统中各部件速度差异较大时,严重影响总线工作效率;灵活性差;适合于短距离、各部件速度较接近的场合。
这种方式下欲提升数据传输速率:
- 扩大总线宽度
- 提高总线时钟频率
- 缩短总线周期
异步通信方式
异步通信,通信双方无统一的同步信号来控制数据的传送过程,各部件可按
约定的信号或者绝对时间使用总线。
主/从部件间采用应答(握手)方式建立联系,因此,主/从模块间要增加两条应答信号线。
特点:总线周期的长短可随主/从模块的实际工作时间变化,因而当系统中各部件速度差异较大时,总线工作效率比同步通信高得多,但控制复杂,比同步通信难实现。
异步通信根据应答信号配合的完善程度,分为三类:
- 不互锁方式:主请求,从回答,无相互制约.各自自行撤销
- 半互锁方式:主请求,从回答,主收到回答才撤销请求,而从自行撤销回答
- 全互锁方式:主请求,从回答,主收到回答才撤销请求,从发现请求被撤销了才撤销回答
半同步通信
同步通信和异步通信结合的方式。以同步通信为基础,设立系统时钟对总线操作进行控制。正常总线周期满足大多数部件的速度要求。对于少数特别慢速的部件,可根据需要插入若干个‘等待’时钟,以使总线周期得到延长。需增加一条“等待”状态信号线(-WAIT),以控制是否进入“等待时钟周期”。
特点: 保留了同步通信控制简单的优点,吸收了异步通信时间分配灵活的优点,实用性很强。但工作效率仍无异步通信高。适用于工作速度不高,部件速度差异较大的简单系统。
分离式通信
常规总线周期操作步骤:三步
- 主模块使用总线:发地址、命令、数据(写)等;
- 从模块按主模块的命令进行操作准备;
- 从模块使用总线:发数据(读)、接收数据(写)等。
不难发现,第二步期间,总线空闲,时间被浪费了。
分离式通信将一个总线周期分为两个子周期来解决这一问题:
- 第一个子周期:主模块A获得总线使用权,通过总线向从模块B发送地址、命令、数据(写)等信息,并把自己的地址也发过去。一旦B接收,A立即释放总线。B接到A的信息后,进行传送准备工作(不占用总线)直到完成。
- B在准备工作完成后申请总线,当获得总线使用权后,通过总线向A发送地址、数据(读)以及自己的地址,然后释放总线。
总线结构:
总线结构通常可以分为单总线结构和多总线结构两种。
单总线结构
系统中使用唯一的一条总线(包括数据总线,地址总线,控制总线)连接所有的部件和设备。早期的小型机、微型机常采用这种结构。
优点:结构简单,成本低廉,便于扩充。
缺点:各部件只能分时使用总线,运行效率低 。
多总线结构
系统中含有两条或以上的总线。
以CPU为中心的双总线结构:
以存储器为中心的双总线结构:
某三总线结构:
总线标准
总线特性
- 机械特性
- 电器特性
- 功能特性
- 时间特性
总线性能指标
- 总线宽度
- 总线工作频率
- 总线带宽
- 控制方式
- 通信方式
- 信号线数
- 扩展能力
- 负载能力