总线控制
总线上连接多个部件,为了解决:
- 什么时候由哪个部件发送信息
- 如何给信息传送定时
- 如何防止信息丢失
- 如何避免多个部件同时发送
- 如何规定接受信息的部件
等一些列问题,需要总线控制线进行统一管理,这就是总线控制,包括两个方面:
- 判优控制
- 通信控制
判优控制
总线判优控制,又称总线仲裁,可以再分为两类:
- 集中式控制
- 分布式控制
总线上连接的设备,可以分为主设备(模块)和从设备(模块),主设备对总线享有控制权,从设备只能响应来自主设备的总线命令
集中式控制
- 链式查询
控制总线上其中3根用于总线控制,分别是:BS(总线忙)、BR(总线请求)和BG(总线统一):
BG信号串行,若某接口由BR请求,则该接口连接的设备获取总线使用权,并建立BS,表示它已经占用了总线。因此离控制部件越近的设备,优先级越高
仅需 2 根线即可确定总线使用者
优点:
- 简单
- 易扩展
缺点:
- 对电路故障敏感
如果第i个设备的接口故障,i之后的设备都无法使用 - 优先次序固定
- 优先级低的设备可能饥饿
- 计数器定时查询
相比链式查询,去掉了BG总线,添加了设备地址线:
当产生BR请求时,如果BS=0时,计数器开始计数,当计数值与其中一个请求使用总线的设备的地址一致时,技术终止,该设备或者总线使用权
需要
log
2
n
\log_2 n
log2n 根线确定使用设备,n 是允许接纳的最大设备数
优点:
- 优先次序可变
- 对电路故障不敏感
缺点:
- 增加了一组设备线,设备需要对设备线的信号译码,控制变复杂
- 独立请求方式
每台设备都拥有一对BR线和BG线,总线控制部件内有一个排队器:
当设备请求总线时,发出BR信号,如果总线忙(BS=1),就进入排队,排队电路根据一定的规则指定排队中的设备的优先次序
需要 2n 根线确定使用设备,n 是允许接纳的最大设备数
优点:
- 次序灵活可变(可通过程序指定)
- 响应快
- 可以屏蔽某设备的请求
缺点:
- 控制线数量众多,总线控制最为复杂
★ 当代总线控制标准普通采用独立请求方式
通信控制
总线周期:完成依次总线操作的时间
- 申请分配:主设备请求
- 寻址阶段:主设备找需要的从设备
- 传数阶段:主从设备数据交换
- 结束阶段:主设备让出总线
总线通信控制解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调配合的问题。常用的四种通信方式:同步通信、异步通信、半同步通信和分离式通信。
- 同步通信
由 统一时标 控制数据传输
优点:
- 规定明确统一,配合简单
- 适合总线短,部件存取时间一致的场景
缺点:
- 主从时间配合强制同步,不得不按最低速设备的速度设计公共时钟
- 异步通信
采用 应答方式,可分为 不互锁、半互锁 和 全互锁 三种
优点:
- 解决了同步通信的缺点
-
半同步通信
同步、异步结合:- 同步:
- 发送方 用 时钟前沿 发信号
- 接收方 用 时钟后沿 判断识别
- 异步:
- 不同速度设备协调工作
- 增加 WAIT(等待响应信号)线
优点:
- 兼容了同步和异步的优点
- 同步:
-
分离式通信
充分挖掘系统总线每个瞬间的潜力:- 各模块有权占用总线
- 同步通信
- 各模块准备数据时,不占用总线
- 总线被占用时,无空闲
提高了总线的有效占用率