热度 1| |||
以下是基于文档的 uMCTL2 Port Arbiter (PA) 模块功能详解,按核心功能分层解析:
1. 多级仲裁机制
(1) 读写方向仲裁(Read/Write Arbitration)
目标:动态选择当前周期处理读或写请求,最大化内存效率。
决策依据:
信用机制:检查DDRC的读/写信用(Credits)是否可用。
超时请求:优先处理达到超时(Priority0)的端口。
方向切换代价:减少读写切换频率以提升总线效率。
算法逻辑:
读模式:
持续处理读请求,直到:
(a) 出现超时写请求(Priority0)且有写信用;
(b) 无读信用且有待处理写请求。
写模式:
持续处理写请求,直到:
(a) 出现超时读请求(Priority0)或有高优先级读(HPR);
(b) 无写信用且有待处理读请求。
紧急信号:
arurgent/awurgent 信号可强制立即切换方向(需寄存器使能)。
(2) 超时仲裁(Port Timeout)
机制:
每个端口的读/写请求设有老化计数器(Aging Counter),初始值由 PCFGR_n.rd_port_priority 等寄存器设定。
计数器归零时触发 Priority0(最高优先级),防止饥饿。
紧急信号联动:
arurgent/awurgent 可直接将端口提升至 Priority0(独立于计数器)。
2. 请求优先级分层
(1) 读请求分级(HPR/LPR/VPR)
HPR (High Priority Read):
独占高优先级队列(需预留CAM空间),优先级 > LPR/VPR。
VPR (Variable Priority Read):
未超时:视为 LPR(低优先级)。
超时后:升级为 Priority0(优先级 > HPR)。
LPR (Low Priority Read):
基础优先级,仅当无HPR/VPR超时时被调度。
(2) 写请求分级(NPW/VPW)
VPW (Variable Priority Write):
未超时:视为 NPW(普通优先级)。
超时后:升级为 Priority0。
NPW (Normal Priority Write):
基础写优先级,与VPW未超时同级。
3. 端口(port)优先级策略
(1) 外部QoS优先级(UMCTL2_EXT_PORTPRIO=1)
通过AXI的 arqos/awqos 信号动态设置16级优先级(值越高优先级越高)。
适用于端到端QoS管理系统。
Qos 端到端例子(由QOS来决定服务优先级)
(2) 内部老化优先级(UMCTL2_EXT_PORTPRIO=0)
基于端口老化计数器的值自动计算优先级(32级)。
计数器值越低,优先级越高(逼近超时则优先级提升)。
4. 仲裁收尾策略
轮询仲裁(Round-Robin):
同优先级请求按端口索引顺序轮流服务,保证公平性。
触发条件:
经过前序仲裁层后仍存在多个同级请求。
5. 高级优化功能
(1) 页面匹配(Page Match)
机制:
当端口连续访问相同Bank/Row(同一页)时,锁定该端口优先处理后续请求。
释放条件:
其他端口出现Priority0请求;
达到连续事务上限(默认4个);
信用耗尽需切换方向。
目的:减少DDR预充电开销,提升带宽利用率。
(2) 独占写锁(Write Exclusive Access Lock)
确保AXI独占写(Exclusive Access)的多命令原子性。
锁定期间不响应其他请求,防止数据竞争。
6. 特殊模式支持
(1) 双HIF模式(UMCTL2_DUAL_HIF=1)
读写并行:读/写请求可同时提交至HIF,跳过读写仲裁层。
保留机制:超时、优先级、轮询等仲裁仍生效。
(2) RDIMM适配
自动处理DDR4 RDIMM的时序约束(如Staggered CS、Output Inversion)。
总结:PA模块核心价值
多层仲裁:通过方向选择→超时处理→分级优先级→轮询的四层仲裁,平衡效率、实时性与公平性。
智能优化:页面匹配减少DDR操作开销,信用机制防止过载。
灵活配置:支持外部QoS或内部老化策略,适配不同场景。
异常处理:超时与紧急信号确保关键请求低延迟响应。
最终目标:在满足DDR协议约束下,最大化多端口内存访问的吞吐量与实时性。