赞
踩
总线仲裁来由: 我们按照对总线有无控制功能将总线上所连接的各类设备分为主设备和从设备。
主设备:具有获得总线控制能力的设备。
从设备:被主设备访问的设备,只能响应总线上的各种数据请求,而本身不具备控制总线的能力的设备。
随着技术的发展,多个主设备同时访问总线的情况越来越多,这个时候多个设备就会去争抢总线的使用权,由此引出了总线仲裁。
总线仲裁可以分为两大类:集中仲裁方式和分布仲裁方式。
首先来了解一下总线仲裁的流程,方便后面的理解。
总线总裁可以分为三步:
了解了总线仲裁的流程,下面来详细介绍一下集中仲裁的三种方式:
图例:
这里对图中的三种数据线做一下介绍,后面与此相同:
BG:总线允许,由总线控制设备指定一个主设备获得总线控制权
BR:总线请求,主设备向总线控制器发出控制总线的请求
BS:总线忙,如果此时有一个主设备已经获得了总线的控制权,由该主设备发出总线忙信号告诉总线控制设备我已经获得了总线控制权
不要再将控制权分给别人。
这里介绍一下具体的工作流程:
链式查询的特点:从图中可以看出,总线控制设备会从设备1依次向后遍历,来确认该设备是否发出了总线控制请求。所以距离总线控制设备越近的设备优先级就会越高。
链式查询方式的优点:只需要很少的几根线就能按照一定的优先级次序实现总线控制,结构简单。
同样的缺点也很明显:对硬件故障反应很敏感,如果某个时刻BG线发生故障,会导致故障点以后的主设备无法在获得总线的控制权。还有,如果优先级较高的设备频繁的使用总线的时候,此时优先级较低的设备就长时间无法使用总线。
如图:计数器定时查询方式省去了BG线,增加了一组设备地址线,要注意,这里的设备地址线是一组,不是一根。具体数目的多少要根据有多少个设备来决定。
如果有n个设备,就是log2n条(以2为底n的对数),再加上BS、BR。
具体的工作流程与链式查询类似,这里不再赘述。值得注意的是:在总线控制设备内部,有一个计数器的一个装置。是用来计数操作的,总线控制设备每访问一个设备,计数器的数值都会加1。
这样做的好处就是避免了链式查询方式的缺点:计数器的初始可以改变优先级的顺序。如果每次计数都重新从0开始计数,则优先级是固定的,距离总线控制设备越近,优先级就越高;如果每次计数从上次计数的终点开始,那么每个主设备都只能获得一次的总线控制权,优先级相同。同时,由于设备地址线是一组线,对硬件故障反应就没有那么敏感。
从图中可以看出,每一个设备都有一套自己的设备线。在总线控制设备内部,存在一个排队器,当多个设备请求控制总线时,会由排队器决定他们的优先级顺序。
具体的工作流程还是参照上面两种方式。
从独立请求方式的结构图可以看出,设备可以与总线控制设备直接交互,所以响应速度是很快的,同时对优先级的控制也相对更加灵活。
但是相对的需要的控制线众多,总线的控制逻辑也相对复杂
如果有n个设备,就需要2n条控制线,一根BS线
分布式仲裁不需要中央仲裁器,每个潜在的主方功能模块都有自己的仲裁号和仲裁器。当它们有总线请求时,把它们唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上得到的号与自己的号进行比较。如果仲裁总线上的号大,则它的总线请求不予响应,并撤消它的仲裁号。最后,获胜者的仲裁号保留在仲裁总线上。显然,分布式仲裁是以优先级仲裁策略为基础。这里不做详细介绍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。