仲裁:解决多个设备争用总线使用权
主设备:获得总线控制权的设备
从设备:只能响应主设备发来的各种总线命令
为什么要仲裁:
作为共享设备,不可避免会出现同一时刻多个主设备竞争
总线仲裁的定义:
多个设备同时竞争主线控制权,以某种方式选择一个主设备获得总线控制权
总线仲裁的分类:
①集中仲裁
链式查询、计数器定时查询、独立请求方式
②分散仲裁
集中仲裁方式
- 链式查询:
- BG,BS,BR都是单根的线
- 优点:链式查询方式优先级固定,需要很多的几根控制线就按照一定优先次序实现
- 缺点:对硬件电路的故障敏感,优先级固定
- 总线忙,信号建立者是获得总线控制权的设备
- 优先级:离总线控制器越近,优先级越高
- 计数器查询方式:
- 取消BG,多一组设备地址线
- 通过发送地址可以选择
- 使用计数器来选择,实现定位,设备发送总线忙信号
- 计数器清0往下数
- 优点:优先级体现在计数器技术,可以实现程序来控制计数器,对电路故障没有那么敏感
- 缺点:增加控制线数、多了控制器
- 独立请求方式:
- 使用排队器来仲裁
- 优点:响应速度快、灵活设计排队器来选择
- 缺点:线数更多,设备n,需要2n+1条控制线,排队器更复杂
总线忙这个信号是由获得总线控制权的设备发出的
分布仲裁方式
没有中央仲裁器,每个主模块都有自己的仲裁器和仲裁号