片上总线中的仲裁机制

1. 概述

在 SoC 或 FPGA 设计中,常常会出现 多个 Master 同时访问同一个 Slave 或总线资源 的情况。

如果没有控制机制,就会出现 资源冲突。因此系统需要一种机制来决定 谁可以获得总线使用权,这就是 仲裁(Arbitration)

本文简单整理几种常见的仲裁方式。

2. 常见形式

2.1 固定优先级

固定优先级仲裁是最简单的一种方式。系统为每个请求方分配一个固定优先级,当多个请求同时出现时,优先级最高的获得总线访问权

优点

  • 硬件实现简单

  • 延迟低

  • 面积小

缺点

如果高优先级 Master 长时间请求,总线可能一直被占用,低优先级设备可能 长期得不到访问机会(Starvation)

2.2 轮询仲裁(Round Robin)

轮询仲裁是一种 公平性更好的仲裁方式。

其基本思想是,每个 Master 按顺序获得优先级,仲裁器会在每次仲裁后 移动优先级指针。

优点

  • 公平性好

  • 不会出现饿死问题

缺点

  • 硬件复杂度略高

  • 仲裁逻辑比固定优先级复杂

2.3 随机仲裁(Random Arbitration)

当多个请求同时到来时,仲裁器 随机选择一个请求方。一般较少使用。

通常通过 LFSR(线性反馈移位寄存器) 产生伪随机数。

优点

  • 实现简单

  • 从统计角度较为公平

缺点

  • 仲裁结果不可预测

  • 短时间内可能出现不公平

2.4 时间片仲裁(Time Slice / TDM)

时间片仲裁采用 时间复用(TDM,Time Division Multiplexing) 的方式。

系统将时间划分为固定周期,每个 Master 在自己的时间片内访问总线。

优点

  • 完全公平

  • 延迟可预测

缺点

如果某个 Master 没有请求,总线时间片可能被浪费。

4.5 加权轮询(Weighted Round Robin)

加权轮询是在 Round Robin 基础上的改进,允许不同 Master 拥有不同带宽。

优点

可以控制带宽分配

支持 QoS(Quality of Service)

4.6 Token 仲裁(Token Passing)

Token 仲裁通过在各个 Master 之间传递一个 Token(令牌) 来控制访问权限。

只有持有 Token 的 Master 才可以访问总线。

优点

  • 完全公平

  • 不会发生冲突

缺点

  • Token 传递可能增加延迟

  • 系统结构较复杂

3.总结

在实际 SoC 设计中,不同仲裁方式适用于不同场景。

仲裁方式实现复杂度公平性典型应用
固定优先级较差简单总线
轮询AXI / Crossbar
随机一般网络系统
时间片很好实时系统
加权轮询NoC / DDR
Token很好分布式系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值