1. AHB BusMatrix架构深度解析
在复杂SoC设计中,多主设备(如CPU、DMA、GPU等)并发访问共享从设备(如存储器、外设等)的场景日益普遍。传统共享总线架构由于串行访问特性,已成为系统性能瓶颈。ARM公司提出的AHB BusMatrix解决方案,通过交叉开关(crossbar)结构实现真正的并行访问路径。根据实测数据,8x8配置的BusMatrix在100MHz时钟下可提供高达6.4GB/s的总带宽,相比传统AHB总线提升达8倍。
1.1 核心架构组成
BusMatrix采用分层设计思想,主要模块包括:
-
输入层(Input Stage):每个主设备接口对应一个输入层,负责缓冲地址/控制信号。当目标从设备忙时,输入层中的32位宽地址保持寄存器(Address Holding Register)会暂存传输请求,避免主设备 stall。关键信号HeldTran[1:0]指示寄存器状态,其真值表如下:
HeldTran[1] HeldTran[0] 状态描述 0 0 寄存器空 0 1 单次传输待处理 1 0 突发传输未完成 1 1 保留状态 -
解码器(Decoder):采用两级流水设计,第一级根据HADDR[31:24]确定目标从设备端口,第二级处理地址相位到数据相位的转换。特殊情况下,用户可修改
AddrOutPort映射逻辑实现自定义地址空间划分。 -
输出仲裁(Output Arbiter):每个从设备端口独立仲裁,支持两种模式:
- 固定优先级(Fixed):端口号越小优先级越高
- 轮询(Round-Robin):通过4-bit权重计数器实现公平调度
仲裁决策树如下图所示:
code复制if (HM
