惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Application and Cybersecurity Blog
Application and Cybersecurity Blog
A
About on SuperTechFans
S
SegmentFault 最新的问题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Help Net Security
Help Net Security
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
O
OpenAI News
美团技术团队
月光博客
月光博客
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
Webroot Blog
Webroot Blog
Cyberwarzone
Cyberwarzone
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google Online Security Blog
Google Online Security Blog
T
Tenable Blog
S
Security Affairs
博客园_首页
S
Schneier on Security
Security Latest
Security Latest
T
Threat Research - Cisco Blogs
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
Spread Privacy
Spread Privacy
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
Vercel News
Vercel News
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
B
Blog
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 最新话题
D
DataBreaches.Net
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - Franky
W
WeLiveSecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Fortinet All Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
Check Point Blog
H
Hacker News: Front Page

博客园 - 蓝天上的云℡

事件编程之eventfd 事件驱动编程模式之EventLoop syslog日志查看器GUI图形界面,支持Windows/Linux/Macos开箱即用 ERRNO链条分析 Linux Kernel Init Bootstrap 内核初始化启动 RK芯片平台GPIO控制 Linux USB子系统之Gadget设备端驱动 远程调试桥接-网络-ADB-GDB 斐讯N1盒子安装飞牛FNOS NAS 安卓以太网链路检测 安卓原生开发-Recovery使用minui绘制图形 蓝牙音频协议——安卓开发 RKxx系列的RK628摄像头配置影响HDMI出图 usb储存之BOT/UAS内核驱动 现代操作系统-音频处理技术1 Linux驱动底层 Linux驱动适配I2C/SPI例子 模块编译的pr_debug Linux内核/GKI内核主线更新-usb网卡名称变更引出的BUG 为Kernel代码生成VSCODE索引,快速跳转 安卓开机时间/性能优化 Linux/Golang/glibC系统调用 SGDMA与普通DMA Linux内核源码-存储驱动之 QSPI Flash golang数据转换技巧
ARM AMBA总线之AXI系
蓝天上的云℡ · 2026-04-20 · via 博客园 - 蓝天上的云℡

概览

AMBA(The Advanced Microcontroller Bus Architecture) 是一种开放标准的片上互联规范,用于SOC设计。AMBA协议定义了功能模块之间的通信方式,简化了多处理器、大量控制器和外设的设计,被认可之后广泛应绿色与ASIC和SoC部件上,其良好的设计大大超出了原本只为微控制器设计的范畴并不断演变。

从最初我们熟知的APB AHB演变到
image

本文AMBA 以AXI4为主介绍,

AXI协议包含了非常多的标准和版本,包括AXI3 AXI4 AXI5 AXI-ST AXI-MM等等

AXI是IP间的高速主从通信总线

在有主处理器体系中,ARM核心是核心数据的处理中枢,所以在AXI总线中一般担任主机角色做控制端,ARM-FPGA混合架构中,如ZYNQMP由于ARM有系统层控制力强,FPGA数据能力强,所以也一般是ARM作为FPGA的主机。
在纯FPGA IP的架构中,FPGA IP和IP之间会根据需求选择一个做主机,一个做葱鸡。

AXI协议是点对点协议,而非总线协议。只传输信号和时序。

单主机管理
image

多主机管理
image

从ARM的system diagram可以看到AXI,并且这里AXI3和AXi4不同接口之间会进行协议转换
image

AXI Channels

在FPGA的blockdiaram中可以看到AXI主从之间由五路channels构成:地址R&数据W,数据R&数据W,写响应B
image
这里B是用于W的completed通知

Channel的传输有源和目的,分别由Valid信号 Ready信号来握手,依靠的是时钟上升沿
image

Channel例子

Channel-传输
image

如我们常在FPGA核心中看到的BVALID,就是B的有效信号

写-事务
image
并发写-事务
image

AXI协议的主要特性

  • 读写通道是独立的,可同时进行,大大提高了带宽性能。
  • 支持多个未完成地址,支持并行事务
  • 地址和数据没有严格的时序关系
  • 支持非对齐数据传输,不像系统那样必须对齐到地址上的32位格子。
  • 乱序事务,AXI协议包含了食物ID。
  • 基于起始地址的突发处理,只需要在第一次传输时发送起始地址,后续都会自动计算下个地址。

AXI会有一个响应超时时间,在做IP设计时要考虑这个,避免挂死整个链路
有些SOC上会有AXI超时模块来处理这个问题。

signals-保护级别

AWPROT 和 ARPROT 这两个保护信号用于访问保护和安全事务,如Arm TrustZone

AxPROT位有三位,
image

  • P,值1授权访问,0无权限
  • NS,值1非安全事务,0安全事务
  • I,值1指令类型,0数据类型(这种可以有效防范数据携带指令攻击)

Signals-Cache缓存支持

image

  • B 可缓冲bufferable标志位,RA/WA依赖这个标识
  • C/M 是AXI3的Cacheable位,AXI4的Modifiable位
  • RA 表示读取推荐使用事务,但不强制
  • WA 表示写入推荐使用事务,但不强制

RA或WA生效时,事务必须在缓存中查找。

signals-AxLock

AXI提供两种原子访问的机制

signals-QoS

AXI4引入了服务质量,用于优先处理较高优先级的事务
image

Signals-略

还有很多信号,这里主要了解AXI的主要功能,所以省略。

Refer

资料来自ARM