总线仲裁是指当前总线主机访问然后离开总线控制权并将其传递给另一个请求总线的处理器单元的过程。在某个实例中可以访问总线的控制器称为总线主控器。
如果DMA控制器或其他控制器或处理器的数量试图同时访问公共总线,则可能会发生冲突,但是只能对其中的一个进行访问。同一时间只能有一个处理器或控制器成为总线主控器。为了解决这些冲突,实施了总线仲裁程序来协调所有请求内存传输的设备的活动。总线主控器的选择必须通过建立用于访问总线的优先级系统来考虑各种设备的需求。总线仲裁员决定谁将成为当前的总线主控者。
总线仲裁有两种方法:
- 集中总线仲裁–
单个总线仲裁器执行所需的仲裁。 - 分布式总线仲裁–
所有参与选择下一个总线主站的设备。
集中式BUS仲裁方法–
总线仲裁方法有以下三种:
(i)菊花链方法–
这是一种简单且便宜的方法,其中所有总线主机都使用同一条线路来发出总线请求。总线授权信号通过每个主机串行传播,直到遇到第一个请求访问总线的信号为止。该主站阻止了总线授权信号的传播,因此任何其他请求模块都不会接收该授权信号,因此无法访问总线。
在任何总线周期中,总线主控器可以是连接到总线的任何设备-处理器或任何DMA控制器单元。
好处 –
- 简单性和可伸缩性。
- 用户可以在链中的任何位置添加更多设备,最高可以达到某个最大值。
缺点–
- 分配给设备的优先级值取决于主总线的位置。
- 这种方法会产生传播延迟。
- 如果一台设备发生故障,则整个系统将停止工作。
(ii)轮询或轮换优先权方法–
在这种情况下,控制器用于生成主机的地址(唯一优先级),所需的地址线数量取决于系统中连接的主机的数量。控制器生成一系列主地址。当发出请求的主机识别出其地址时,它将激活忙线并开始使用总线。
好处 –
- 此方法不支持任何特定的设备和处理器。
- 该方法也很简单。
- 如果一台设备发生故障,则整个系统将不会停止工作。
缺点–
- 添加总线主控器很困难,因为会增加电路的地址线数量。
(iii)固定优先级或独立请求方法–
在这种情况下,每个主控器都有一对单独的总线请求和总线授权线,并且每对都有一个优先级分配给它。
控制器中的内置优先级解码器选择最高优先级请求,并声明相应的总线授权信号。
好处 –
- 此方法生成快速响应。
缺点–
- 硬件成本很高。控制线是必需的。
分布式总线仲裁:
在这种情况下,所有设备都将参与下一个总线主设备的选择。总线上的每个设备都分配有一个4位标识号。设备的优先级将由生成的ID确定。