计算机总线仲裁详解


总线仲裁


一、关于总线仲裁

总线仲裁来由: 我们按照对总线有无控制功能将总线上所连接的各类设备分为主设备和从设备。

主设备:具有获得总线控制能力的设备。
从设备:被主设备访问的设备,只能响应总线上的各种数据请求,而本身不具备控制总线的能力的设备。

随着技术的发展,多个主设备同时访问总线的情况越来越多,这个时候多个设备就会去争抢总线的使用权,由此引出了总线仲裁。

二、总线仲裁的分类

总线仲裁可以分为两大类:集中仲裁方式和分布仲裁方式。

1.集中仲裁方式

首先来了解一下总线仲裁的流程,方便后面的理解。

总线总裁可以分为三步:

  1. 主设备发出请求信号。
  2. 若同时有多个主设备请求,由总线控制器按照一定的优先级确定哪个设备能够访问总线。
  3. 获得总线控制权的设备开始传输数据

了解了总线仲裁的流程,下面来详细介绍一下集中仲裁的三种方式:

1.链式查询方式

图例:
在这里插入图片描述
这里对图中的三种数据线做一下介绍,后面与此相同:

BG:总线允许,由总线控制设备指定一个主设备获得总线控制权
BR:总线请求,主设备向总线控制器发出控制总线的请求
BS:总线忙,如果此时有一个主设备已经获得了总线的控制权,由该主设备发出总线忙信号告诉总线控制设备我已经获得了总线控制权
	不要再将控制权分给别人。

这里介绍一下具体的工作流程:

  1. 主设备通过BR总线请求线向总线控制设备发出控制总线的请求。
  2. 总线控制设备通过BG线,从距离总线控制设备最近的那个主设备出发,判断是哪个主设备发出了总线控制请求,最后将总线的使用控制权交给给主设备。
  3. 主设备获取到总线控制权后,会通过BS线告知我已经获取了总线的控制权并仍在使用。
  4. 主设备对总线的使用完毕后,会通过BS线发出使用完毕的信号,同时释放总线的控制权,再由总线控制设备赋予其他发出总线控制请求的设备控制权。

链式查询的特点:从图中可以看出,总线控制设备会从设备1依次向后遍历,来确认该设备是否发出了总线控制请求。所以距离总线控制设备越近的设备优先级就会越高。

链式查询方式的优点:只需要很少的几根线就能按照一定的优先级次序实现总线控制,结构简单。

同样的缺点也很明显:对硬件故障反应很敏感,如果某个时刻BG线发生故障,会导致故障点以后的主设备无法在获得总线的控制权。还有,如果优先级较高的设备频繁的使用总线的时候,此时优先级较低的设备就长时间无法使用总线。

2.计数器定时查询方式

在这里插入图片描述
如图:计数器定时查询方式省去了BG线,增加了一组设备地址线,要注意,这里的设备地址线是一组,不是一根。具体数目的多少要根据有多少个设备来决定。

如果有n个设备,就是log2n条(以2为底n的对数),再加上BS、BR。

具体的工作流程与链式查询类似,这里不再赘述。值得注意的是:在总线控制设备内部,有一个计数器的一个装置。是用来计数操作的,总线控制设备每访问一个设备,计数器的数值都会加1。

这样做的好处就是避免了链式查询方式的缺点:计数器的初始可以改变优先级的顺序。如果每次计数都重新从0开始计数,则优先级是固定的,距离总线控制设备越近,优先级就越高;如果每次计数从上次计数的终点开始,那么每个主设备都只能获得一次的总线控制权,优先级相同。同时,由于设备地址线是一组线,对硬件故障反应就没有那么敏感。

3.独立请求方式

在这里插入图片描述
从图中可以看出,每一个设备都有一套自己的设备线。在总线控制设备内部,存在一个排队器,当多个设备请求控制总线时,会由排队器决定他们的优先级顺序。

具体的工作流程还是参照上面两种方式。

从独立请求方式的结构图可以看出,设备可以与总线控制设备直接交互,所以响应速度是很快的,同时对优先级的控制也相对更加灵活。
但是相对的需要的控制线众多,总线的控制逻辑也相对复杂

如果有n个设备,就需要2n条控制线,一根BS线

2.分布仲裁方式

分布式仲裁不需要中央仲裁器,每个潜在的主方功能模块都有自己的仲裁号和仲裁器。当它们有总线请求时,把它们唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上得到的号与自己的号进行比较。如果仲裁总线上的号大,则它的总线请求不予响应,并撤消它的仲裁号。最后,获胜者的仲裁号保留在仲裁总线上。显然,分布式仲裁是以优先级仲裁策略为基础。这里不做详细介绍。

  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值