总线仲裁的基本概念
同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据。
将总线上所连接的各类设备按其对总线有无控制功能分为:
主设备:获得总线控制权的设备。
从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令。
为什么要仲裁?
总线作为一种共享设备,不可避免地会出现同一时刻有多个主设备竞争总线控制权的问题。
总线仲裁的定义:
多个主设备同时竞争主线控制权时,以某种方式选择一个主设备优先获得总线控制权称为总线仲裁。
总线仲裁分类:
集中仲裁方式 链式查询方式、计数器定时查询方式、独立请求方式
分布仲裁方式
集中仲裁方式
工作流程:
1.主设备发出请求信号;
2.若多个主设备同时要使用总线,则由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个
主设备能使用总线;
3.获得总线使用权的主设备开始传送数据。
链式查询方式:
计数器查询方式:
独立请求方式:
三种方式的对比:
分布仲裁方式
特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上;每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;
如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;最后,获胜者的仲裁号保留在仲裁总线上。