一文知道总线仲裁的方式

一文知道总线仲裁的方式

一文搞懂总线仲裁方式总线仲裁(Bus Arbitration)是指在共享总线的系统中,多个主设备(如CPU、DMA控制器、GPU等)同时请求使用总线时,决定哪个设备获得总线控制权的机制。总线仲裁的目标是避免冲突、公平分配带宽,并确保高优先级任务优先执行。

1. 总线仲裁的基本分类总线仲裁方式主要分为以下两类:

(1)集中式仲裁(Centralized Arbitration)由中央仲裁器(Arbiter)统一管理总线分配。

所有主设备的请求发送给仲裁器,由仲裁器决定优先级。

优点:逻辑简单,易于实现高优先级调度。

缺点:仲裁器可能成为性能瓶颈,且存在单点故障风险。

(2)分布式仲裁(Distributed Arbitration)没有中央仲裁器,各设备通过竞争或协商决定总线使用权。

优点:无单点故障,扩展性强。

缺点:实现复杂,可能存在公平性问题。

2. 常见的总线仲裁方式(1)链式查询(Daisy Chain)原理:

所有设备共享一根“总线请求(BR)”线,按固定优先级顺序连接。

仲裁器收到请求后,依次查询设备,个发出请求的设备获得总线。

特点:

优先级固定(离仲裁器越近,优先级越高)。

简单但不公平,低优先级设备可能长期无法获得总线。

典型应用:早期ISA总线。

(2)计数器查询(Polling)原理:

仲裁器维护一个计数器,轮询各设备。

当设备请求总线时,仲裁器按计数器顺序检查,个匹配的设备获得总线。

特点:

优先级可动态调整(通过修改计数器)。

比链式查询更公平,但仍有延迟。

典型应用:某些工业控制总线。

(3)独立请求(Independent Request)原理:

每个设备有独立的请求线(BR)和授权线(BG)。

仲裁器根据优先级(可编程)直接授权某个设备。

特点:

响应快,适合高性能系统(如PCIe)。

需要较多信号线,硬件成本高。

典型应用:PCI、PCIe总线。

(4)时间片轮转(Time-Slice Round-Robin)原理:

总线使用权按固定时间片轮流分配给各设备。

类似CPU的时间片调度。

特点:

公平,但可能浪费带宽(即使某设备无数据也要分配时间片)。

适合负载均衡场景。

典型应用:某些SoC内部总线。

(5)冲突检测(CSMA/CD, CSMA/CA)原理:

载波监听多路访问/冲突检测(CSMA/CD):设备发送前监听总线,冲突时回退重试(如以太网)。

载波监听多路访问/冲突避免(CSMA/CA):通过ACK确认避免冲突(如Wi-Fi)。

特点:

完全分布式,无需仲裁器。

适用于高延迟、非实时网络。

典型应用:以太网、无线局域网(Wi-Fi)。

3. 总线仲裁的优先级策略除了仲裁方式,还需制定优先级规则:

固定优先级:如链式查询,高优先级设备总是优先。

动态优先级:

LRU(近少使用):避免某些设备“饿死”。

轮询+权重:结合时间片和优先级。

紧急请求:如DMA可打断CPU获取总线(用于高速数据传输)。

4. 典型总线的仲裁方式对比

总线类型仲裁方式特点ISA链式查询简单,优先级固定PCI独立请求高性能,支持多主设备PCIe基于包的仲裁点对点,无传统仲裁I2C冲突检测(线与逻辑)低速,多主设备竞争CAN非破坏性仲裁(ID优先级)实时性强,用于汽车电子

5. 总结集中式仲裁(如独立请求)适合高性能系统,分布式仲裁(如CSMA)适合网络。

链式查询简单但不公平,时间片轮转公平但低效。

优先级策略(固定/动态)影响系统实时性和公平性。

关键点记忆:

“链式查固定,独立请高效,时间片公平,CSMA抗冲突。”

现代高性能总线(如PCIe)趋向于点对点通信,减少仲裁需求。

关键词:总线

相关推荐