4、AXI互连架构(一):单点对点连接、共享总线架构、Crossbar(交叉开关)架构

大家好,我是老李。今天咱们聊聊AXI互连架构。说实话,这玩意儿是SoC设计里最绕不开的话题之一。我入行那会儿,第一个项目就是调一个多主多从的AXI总线,折腾得我够呛。后来慢慢摸透了,才发现其实核心就三种架构:点对点、共享总线、Crossbar。搞懂它们,你就能应付绝大多数场景了。

4.1 单点对点连接:最简单,也最直接

先说说最简单的。单点对点,就是一个主设备连一个从设备。没有仲裁,没有地址译码,信号直连。说白了,就是一根线拉过去完事。

适用场景:CPU直连私有SRAM、DMA直连某个专用外设。

我在一个低功耗IoT芯片项目里用过这种方案。当时CPU要频繁访问一个很小的配置寄存器组,我就没走系统总线,直接拉了一组AXI-Lite过去。省掉了总线矩阵的延迟和功耗,效果很好。

但要注意,这种架构扩展性很差。你想想看,每加一个主设备,就得给每个从设备多拉一组线。SoC里主设备一多,布线资源就炸了。所以它只适合固定、少量的连接。

4.2 共享总线架构:经典但问题不少

接下来是共享总线。这是早期SoC最常用的方案。所有主设备挂在一条总线上,通过仲裁器决定谁用总线。从设备也挂在上面,通过地址译码器选择谁被访问。

嗯,这里要注意一个关键点:同一时刻,只能有一个主设备发起传输。其他主设备都得等着。

我曾经在一个多核处理器项目里吃过这个亏。三个CPU核共享一条AXI总线,结果高负载时总线利用率飙到90%以上,延迟大得离谱。后来一分析,发现是仲裁策略太简单,低优先级的主设备经常被饿死。

避坑指南:我曾经在共享总线上挂了一个高带宽的GPU和一个低延迟的CPU。结果GPU一发起长burst传输,CPU的请求就被堵在后面。后来我改用了基于优先级的仲裁,并给CPU开了个旁路通道,才算解决。

共享总线的优点是简单、面积小、功耗低。缺点也很明显:带宽受限、延迟不可控、扩展性差。适合主设备少、带宽要求不高的场景,比如一些MCU级别的芯片。

4.3 Crossbar架构:高性能的代价

Crossbar,也叫交叉开关。它本质上是一个全连接的交换矩阵。每个主设备都有独立的路径到每个从设备。多个主设备可以同时访问不同的从设备,互不干扰。

说白了,共享总线是单车道,Crossbar是多车道立交桥。

我参与过一个AI加速器芯片的设计,里面用了4个CPU核、2个DMA、1个硬件加速器,总共7个主设备。从设备有DDR控制器、SRAM、PCIe控制器等。如果用共享总线,带宽根本不够。最后我们上了Crossbar,每个主设备都有独立的读写通道,带宽直接翻了7倍。

核心优势:并行传输、高带宽、低延迟、无阻塞(前提是访问不同的从设备)。

但Crossbar不是万能的。它的面积和功耗随端口数呈O(n²)增长。你想想看,4个主设备连4个从设备,需要16条独立的通道。如果是16个主设备连16个从设备,那就是256条通道。芯片面积和功耗会爆炸。

所以实际项目中,我们很少用全连接的Crossbar。更多是用部分连接的Crossbar,或者结合共享总线做分层设计。比如,把高带宽的主设备(如GPU)和从设备(如DDR)放在一个Crossbar里,低带宽的设备走共享总线。

4.4 三种架构对比:一张表说清楚

特性 单点对点 共享总线 Crossbar
并行度 1对1 1对1(同一时刻) 多对多(同时)
带宽 固定 共享,易瓶颈 高,可扩展
面积 最小 中等 大(O(n²))
延迟 最低 中等(有仲裁) 低(无阻塞时)
扩展性 差 一般 好(但代价高)
典型应用 CPU-私有SRAM MCU、低端SoC 高性能SoC、AI芯片

4.5 核心知识体系:一张SVG图

下面这张图总结了三种架构的核心逻辑和适用场景。我建议你把它存下来,以后做架构选型时拿出来对照一下。

AXI互连架构核心知识体系 单点对点 Master Slave 1对1直连 无仲裁 最低延迟 扩展性差 适用:CPU-私有SRAM 共享总线 M0 M1 M2 仲裁器 S0 S1 同一时刻仅1个Master 带宽共享 面积中等 适用:MCU、低端SoC Crossbar M0 M1 M2 交叉 矩阵 S0 S1 S2 多Master可同时访问 不同Slave 高带宽 面积O(n²) 适用:高性能SoC、AI芯片

4.6 实际项目中的选型建议

我个人习惯,拿到一个SoC架构需求后,会先做三件事:

  1. 数主设备数量:少于3个,考虑共享总线;3-8个,考虑Crossbar;超过8个,必须做分层。
  2. 看带宽需求:如果所有主设备的总带宽需求超过单条总线的带宽,直接上Crossbar。
  3. 分析访问模式:如果主设备经常访问不同的从设备,Crossbar优势巨大。如果都抢同一个从设备(比如DDR),那Crossbar也救不了你,得从存储系统层面优化。

重要提醒:不要盲目追求Crossbar。我见过一个项目,明明只有两个主设备,非要上Crossbar,结果面积大了30%,功耗高了20%,性能提升不到5%。纯属浪费。

好了,今天的内容就到这里。三种架构各有优劣,关键是根据实际需求做权衡。下一节我们会深入AXI的时序和协议细节,到时候再聊。

可可精品资料库