当前位置: 首页 > news >正文

AXI总线的基础知识

目录

一、核心设计哲学与特点

二、AXI的通道架构(Channel Architecture)

三、关键概念详解

1. Burst 传输

2. 事务ID

四、AXI协议家族

五、一个简单的写传输时序例子

总结


AXI(Advanced eXtensible Interface)是一种高性能、高频率的片上总线协议,是ARM公司推出的AMBA(Advanced Microcontroller Bus Architecture)标准的一部分。它被广泛用于连接处理器、内存控制器和高性能外设等片上系统(SoC)中的IP核。

一、核心设计哲学与特点

AXI的设计围绕几个核心思想展开,这些也是它区别于前代总线(如AHB)的关键:

  1. 分离的地址/数据通道:读命令、写命令、读数据、写数据、写响应都有独立的通道。这允许这些操作并行发生,极大地提高了总线利用效率。

    • 例如:处理器可以在前一个写操作的数据还在传输时,就发出下一个读操作的地址。

  2. 基于VALID/READY的握手机制:这是AXI的流控制机制。每个通道都使用VALIDREADY信号来握手。

    • 源端 驱动 VALID 表示地址、数据或控制信息已经准备好。

    • 目的端 驱动 READY 表示它已经准备好接收信息。

    • 传输发生在 VALID 和 READY 同时为高的时钟上升沿。这种机制使得连接双方可以以各自最快的速度运行,无需等待对方,实现了简单的反压控制。

  3. 支持乱序传输:每个传输都有一个ID标签。不同ID的交易可以以任何顺序完成。这对于提升系统性能至关重要,比如一个慢速外设的访问不会阻塞后续对高速内存的访问。

  4. 支持非对齐传输:简化了处理器(尤其是支持非对齐内存访问的架构,如ARM)与总线的接口设计。

  5. ** burst 传输**:只需提供首地址,即可传输一大块连续数据,高效利用带宽。


二、AXI的通道架构(Channel Architecture)

这是理解AXI工作原理的核心。AXI协议定义了5个独立的通道:

1. 写地址通道 (AW)

  • 主设备 → 从设备

  • 传输信息:本次写传输的首地址burst类型burst长度等。

2. 写数据通道 (W)

  • 主设备 → 从设备

  • 传输信息:实际的数据 和字节使能信号

  • 注意:数据通道的宽度可以配置(如32位,64位,128位等)。

3. 写响应通道 (B)

  • 从设备 → 主设备

  • 在一次burst写传输全部完成后,从设备通过此通道返回一个响应信号(如 OKAYEXOKAYSLVERRDECERR),告诉主设备这次写入是成功还是失败。

4. 读地址通道 (AR)

  • 主设备 → 从设备

  • 传输信息:本次读传输的首地址burst类型burst长度等。

5. 读数据通道 (R)

  • 从设备 → 主设备

  • 传输信息:从设备返回的数据,并在最后一次传输时携带响应信号


三、关键概念详解

1. Burst 传输

AXI的所有数据传输都是基于burst的。一次burst传输由1到256个数据节拍(beat)组成。主设备只需在地址通道发出首地址和burst信息,后续数据的地址由从设备根据协议自动计算。

  • Burst Length: 传输的数据量(ARLEN/AWLEN)。

  • Burst Size: 每次传输的数据宽度(ARSIZE/AWSIZE),如 1字节,4字节等。

  • Burst Type: 主要定义了地址计算方式(ARBURST/AWBURST)。

    • FIXED: 地址不变,用于访问FIFO或外设寄存器。

    • INCR: 递增burst,地址按size大小递增,用于访问常规内存。

    • WRAP: 回环burst,地址递增,但到达边界后回绕到起始地址,用于缓存行填充。

2. 事务ID

每个通道的信号中都包含一个ID标签(ARIDAWIDRIDBID)。这允许主设备发出多个未完成的事务(Outstanding Transactions),并且从设备可以以任何顺序(Out-of-order)返回这些事务的数据或响应。系统通过ID来匹配返回的数据与最初发出的请求。


四、AXI协议家族

在AMBA 4(2010年)中,AXI演进为一个协议家族,包含三个主要变体:

协议全称主要特点与适用场景
AXI4AXI4 (Full)高性能内存映射接口。支持最多256 beat的burst,功能最全,用于连接处理器、DDR控制器、DMA等高带宽需求的主从设备。
AXI4-LiteAXI4-Lite简化版,轻量级。不支持burst(每次传输1个数据),所有其他高级功能(乱序、非对齐等)均不支持。用于配置寄存器等简单的低速外设,实现简单。
AXI4-StreamAXI4-Stream用于高速数据流没有地址概念,只有一个主设备和一个从设备,数据一直流。用于连接ADC/DAC、视频处理管线、网络接口等。

五、一个简单的写传输时序例子

  1. 主设备写地址通道上驱动地址和控制信息,并拉高 AWVALID

  2. 从设备准备好接收地址后,拉高 AWREADY

  3. 在CLK上升沿,AWVALID 和 AWREADY 同时为高,地址被捕获。

  4. 主设备写数据通道上驱动数据,并拉高 WVALID。如果是最后一次数据传输,同时拉高 WLAST

  5. 从设备准备好接收数据后,拉高 WREADY

  6. 在CLK上升沿,WVALID 和 WREADY 同时为高,数据被捕获。重复步骤4-6直到所有数据传输完毕。

  7. 从设备在写响应通道上驱动响应信号(如BRESP),并拉高 BVALID

  8. 主设备准备好接收响应后,拉高 BREADY

  9. 在CLK上升沿,BVALID 和 BREADY 同时为高,写响应被主设备捕获,整个写事务结束。

总结

AXI总线通过其通道分离握手机制,实现了高性能、高灵活性的片上通信。它的架构完美契合了现代多核、高并行度SoC的设计需求,成为了该领域无可争议的事实标准。理解其五通道模型和VALID/READY握手是掌握AXI的关键。

http://www.dtcms.com/a/486696.html

相关文章:

  • 【泛微OA】泛微OA平台实现计算具体的天数
  • 「深度学习笔记1」深度学习全面解析:从基本概念到未来趋势
  • puppeteer 生成pdf,含动态目录,目录带页码
  • 深度学习的卷积神经网络中医舌诊断病系统-ResNet50与VGG16方法的比较研究
  • 如何查看网站空间wordpress图片多选
  • Android的Activity与intent知识点
  • 一、前置基础(MVC学习前提)_核心特性_【C# MVC 前置】委托与事件:从 “小区通知” 看懂 MVC 过滤器的底层逻辑
  • 网站建设年度汇报详情页设计理念怎么写
  • Spring Boot项目中Maven引入依赖常见报错问题解决
  • Android 13 启动的时候会显示一下logo,很不友好
  • seo网站快速排名外包关键词seo排名优化如何
  • Linux防火墙:核心机制与安全实践全解析
  • SX1261IMLTRT射频收发器Semtech赋能远距离物联网连接的低功耗射频芯片IC
  • Flutter---坐标网格图标
  • 邢台做网站多少钱洪泽网站建设
  • 整体设计 逻辑系统程序 之30 定稿V1 之1 含 4 套程序架构、三式模型与时空约束体系
  • 基于单片机的智能洗衣机的设计与实现(论文+源码)
  • 【ComfyUI】SDXL Revision 文本提示实现参考图像概念迁移生成
  • Zabbix 模板、监控项、图形指南
  • 个人如何做网站软件湛江免费制作网站
  • 嘉兴公司网站模板建站建设厅官方网站
  • 【javaFX基础】javaFX文档学习及基础编程实践
  • [c++语法学习]Day10:c++引用
  • iOS App 上架全流程详解:证书配置、打包上传、审核技巧与跨平台上架工具 开心上架 实践
  • C++设计模式_行为型模式_迭代器模式Iterator
  • [iOS] KVC 学习
  • 网站开发中用到的英文单词舅舅建筑网
  • 怎么做交易网站seo整体优化
  • 基于卷积神经网络的苹果叶片病虫害识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
  • 【计算机组成原理】第七章:输入/输出系统