总线仲裁(考纲已移除)
集中仲裁
集中仲裁方式由一个中央仲裁器统一管理和分配总线使用权。当多个设备同时发出总线请求时,由仲裁器根据预设的仲裁策略进行裁决。
链式查询
链式查询(Daisy Chaining)是一种优先级固定的集中仲裁方式。所有设备共用一条总线请求线和一条总线允许线。当有设备发出总线请求时,总线仲裁器通过总线允许线发出允许信号,该信号串行地从离仲裁器最近的设备开始传递。若该设备有总线请求,则截断允许信号,获得总线使用权;否则,将允许信号继续向下传递给下一个设备。这种方式下,离仲裁器越近的设备优先级越高。
计数器定时查询
计数器定时查询(Polling Counter)是一种优先级相对灵活的集中仲裁方式。所有设备共用一条总线请求线,但总线允许信号通过多条线(通常是地址线)编码发送。总线仲裁器内部设置一个计数器,当收到总线请求时,计数器开始计数,并将计数结果通过地址线发送给各个设备。每个设备都有一个唯一的地址,当地址与计数器值匹配时,如果该设备有总线请求,则获得总线使用权。计数器的起始值可以预设,以实现不同设备的优先级调整。
独立请求
独立请求(Independent Request)是一种优先级最灵活、响应速度最快的集中仲裁方式。每个设备都拥有独立的请求线(Bus Request, BR)和独立的允许线(Bus Grant, BG)。当设备需要使用总线时,通过其独立的请求线向总线仲裁器发出请求。总线仲裁器根据预设的优先级算法,从所有请求中选择一个设备,并通过其独立的允许线发送允许信号,授予其总线使用权。
总结
| 对比项目\仲裁方式 | 链式查询 | 计数器定时查询 | 独立请求 |
|---|---|---|---|
| 控制线数 | 3 总线请求: 1 总线允许: 1 总线忙: 1 | 总线请求: 1 总线允许: 总线忙: 1 | 总线请求: n 总线允许: n 总线忙: 1 |
| 优点 | 优先级固定 结构简单, 扩展容易 易于实现 | 优先级较灵活 对电路故障不敏感 | 响应速度快 优先级灵活 可靠性高 |
| 缺点 | 对电路故障敏感 优先级不灵活 查询时间长 (取决于优先级和设备数量) | 控制线较多 控制相对复杂 仲裁时间长 (需要计数器逐个查询) | 控制线多 控制复杂 硬件成本高 |
“总线忙”信号的建立者是获得总线控制权的设备。
分布式仲裁
分布式仲裁方式没有中央仲裁器,每个潜在的主模块都拥有自己的仲裁器,并具备独立的仲裁逻辑和仲裁号。所有仲裁器通过共享的仲裁总线竞争总线使用权。
特点:
- 不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号。
- 当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上。
- 每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较。
- 如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号。
- 最后,获胜者的仲裁号保留在仲裁总线上,表示该设备获得总线控制权。
优点:
- 可靠性高:无单点故障,一个仲裁器失效不影响整个系统。
- 扩充性好:增加设备只需添加对应仲裁器,不需修改中央仲裁器。
- 传输速率较高:仲裁过程与数据传输可并行进行或部分并行。
缺点:
- 控制逻辑复杂:每个设备都需要一套独立的仲裁逻辑。
- 仲裁器成本高:每个设备都需集成仲裁器,增加了硬件成本。