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