计算机组织中的总线仲裁

2024 年 8 月 28 日 | 3 分钟阅读

什么是总线仲裁?

总线仲裁是一种程序,通过该程序,活动总线主控器访问总线,放弃对其的控制,然后将其转移到不同的寻求总线的处理器单元。总线主控器是一个可以在给定实例中访问总线的控制器

如果多个 DMA 控制器、其他控制器或处理器尝试同时访问公共总线,但只允许一个访问,则可能会发生冲突。总线主控器状态一次只能由一个处理器或控制器保持。通过协调所有寻求内存传输的设备的行为,总线仲裁方法用于解决这些冲突。

总线仲裁遵循两种方法

  1. 集中式总线仲裁 - 其中必要的仲裁由单个总线仲裁器执行。
  2. 分布式总线仲裁 - 其中每个设备都参与选择新的总线主控器。为总线上的每个设备分配一个 4 位标识号。创建的 ID 将决定设备的优先级。

集中式总线仲裁方法

有三种集中式总线仲裁方法,如下所示

1. 菊花链方法 - 在这种简单且成本较低的方法中,所有总线主控器都在同一条线上工作以发出总线请求。在遇到第一个请求访问总线的主控器之前,总线授权信号会依次通过每个主控器。任何其他寻求模块都不会收到授权信号,因此无法访问总线,因为该主控器阻止了总线授权信号的传播。

连接到总线的任何设备,例如处理器或任何 DMA 控制器单元,都可以在任何总线周期中充当总线主控器。

它的优点

  • 它具有可扩展性并提供简单性
  • 用户可以随意将多个设备添加到预定义的最大设备数量的任何位置。

它的缺点

  • 设备的优先级值由主控器总线的位置决定。
  • 使用此策略会导致传播延迟。
  • 如果一个小工具发生故障,整个系统将停止运行。

2. 轮询优先级方法 - 所需的地址线取决于系统中连接的主控器数量。控制器用于生成主控器的唯一优先级(或地址)。控制器生成一系列主控器地址。一旦请求主控器知道其地址并激活忙线,总线就会被使用。

它的优点

  • 这种方法在处理器和设备首选项方面是中立的。
  • 该过程也很简单。

它的缺点

  • 添加总线主控器具有挑战性,因为它增加了电路的地址线计数。
  • 即使一个设备发生故障,系统也将继续运行。

3. 独立请求或固定优先级方法 - 为每个主控器提供唯一的一对总线请求和总线授权线,并且每对都具有优先级。控制器的内置优先级解码器选择最高优先级请求,然后断言匹配的总线授权信号。

它的优点

  • 这种技术产生快速响应。

它的缺点

  • 需要大量的控制线,这增加了硬件成本。