协议简介

0 绪论

AXI——Advanced Xtensible Interface(高级可扩展接口)是为了满足高性能系统设计而定义的一套独立通道协议,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0,目前已经到达AMBA5.0版本。

AMBA4.0包括AXI4.0、AXI4.0-Lite、ACE4.0、AXI4.0-stream四个版本。AXI4.0-Lite是AXI的简化版本,ACE4.0是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要是用在FPGA进行以数据为主导的大量数据的传输应用。

5.0目前未接触,暂不讨论。

本文参考的官方文档链接如下所示:

https://developer.arm.com/documentation/ihi0022/c/

1 简介

1.1 关于AXI协议

AMBA AXI协议的目标是高性能、高频的系统设计,包括许多特性,使其适合高速亚微米互联。

最新一代AMBA接口的目标是:

  • 适合高带宽低延时设计
  • 无需复杂的桥就能实现高频操作
  • 能满足大部分器件的接口要求
  • 适合高初始延时的存储控制器
  • 提供互联架构的灵活性与独立性
  • 向下兼容已有的AHB和APB接口

关键特点:

  • 分离的地址/控制、数据传输通道
  • 使用字节选通来支持非对齐的数据传输
  • 使用基于burst的传输,只需传输首地址
  • 分离的读、写数据通道,以实现低功耗DMA (直接内存访问)
  • 支持多种寻址方式
  • 支持乱序传输
  • 允许容易的添加寄存器级来进行时序收敛

除了数据传输协议外,AXI协议还包括可选扩展、涵盖低功耗操作的信号。

1.1.1 AXI版本修订

AXI协议多来年一直是工业标准,AMBA协议规范1.0版本描述了AIX接口。

这次修订,即文档的2.0版本,包含了关于原来的AXI协议规范(现在称为AXI3)的所有信息,以及两个新的章节,详细介绍了AXI4和AXI4-lite。

AXI4

AXI4比AXI3更新了以下内容:

  • 支持长达256拍的burst长度
  • 服务质量(QoS)信号
  • 支持多区域接口
  • 更新了写响应请求
  • 更新了AWCACHE和ARCACHE的信号细节
  • 关于Ordering要求的额外信息
  • 移除lock传输操作
  • 移除写间插操作

AXI4还包括了使用默认信号的信息,并讨论模块之间互操作性。

AXI4-Lite

AXI4-Lite是AXI4协议的一个子集,旨在与组件中的控制寄存器风格的接口进行通信,并允许构建更简单的组件接口。

AXI4-Lite接口的关键特性是:

  • 所有传输的突发长度为1
  • 所有数据访问位宽与数据总线的宽度相同
  • 支持32位或64位的数据总线宽度
  • 所有访问都相当于AWCACHE或者ARCACHE等于b0000
  • 不支持排他性访问

1.2 AXI架构

AXI 协议是基于突发的。 每个事务在地址通道上都有地址和控制信息,这些信息描述了要传输的数据的性质。 使用到从机的写数据通道或到主机的读数据通道在主机和从机之间传输数据。 在所有数据从主设备流向从设备的写事务中,AXI 协议有一个额外的写响应通道,允许从设备向主设备发出写事务完成的信号。

AXI 协议支持:

  • 在实际数据传输之前发布的地址信息
  • 支持多个未完成的交易
  • 支持无序完成事务

图1-1显示了读事务如何使用读地址和读数据通道。

Figure1-1 Channel architecture of reads

图1-2显示了写事务如何使用写地址、写数据和写响应通道。

Figure1-2 Channel architecture of writes

1.2.1 通道定义

五个独立通道中的每一个都包含一组信息信号,并使用双向 VALIDREADY 握手机制。
信息源使用 VALID 信号来显示有效数据或控制信息何时在通道上可用。 目的地址使用 READY 信号来显示它何时可以接受数据。 读数据通道和写数据通道都包含一个 LAST 信号,用于指示事务内最终数据项的传输何时发生。

读写地址通道
读和写事务都有自己的地址通道。 适当的地址通道携带事务所需的所有地址和控制信息。 AXI 协议支持以下机制:

  • 可变长度突发,每次突发 1 到 16 次数据传输
  • 传输大小为 8-1024 位的突发
  • 环绕、递增和非递增突发
  • 原子操作,使用独占或锁定访问
  • 系统级缓存和缓冲控制
  • 安全和特权访问

读数据通道
读数据通道将读数据和任何读响应信息从从设备传送回主设备。 读取数据通道包括:

  • 数据总线,可以是 8、16、32、64、128、256、512 或 1024 位宽
  • 读取响应,指示读取事务的完成状态

写数据通道
写数据通道将写数据从主机传送到从机,包括:

  • 数据总线,可以是 8、16、32、64、128、256、512 或 1024 位宽
  • 每八个数据位有一个字节通道选通,指示数据总线的哪些字节有效

写数据通道信息总是被视为缓冲的,因此主设备可以执行写事务而无需从设备对先前写事务的确认。

写响应沟道
写响应通道为从设备提供了一种响应写事务的方式。 所有写事务都使用完成信号。
完成信号针对每个突发出现一次,而不是针对突发内的每个单独数据传输。

1.2.2 接口与互联

典型的系统由若干主设备和从设备通过某种互连方式连接在一起组成,如图1-3所示。

Figure1-3 Interface and interconnect

AXI 协议提供了用于描述接口的单一接口定义:

  • 在主设备和互连之间
  • 从设备和互连之间
  • 在主从设备之间

接口定义支持各种不同的互连实现。 设备之间的互连相当于另一个具有对称主从端口的设备,可以连接真正的主从设备。

大多数系统使用以下三种互连方法之一:

  • 共享地址和数据总线
  • 共享地址总线和多条数据总线
  • 多层,具有多个地址和数据总线

在大多数系统中,地址通道带宽要求明显低于数据通道带宽要求。 通过使用具有多个数据总线的共享地址总线来实现并行数据传输,此类系统可以在系统性能和互连复杂性之间实现良好的平衡。

1.2.3 寄存器切片

每个AXI通道只在一个方向传输信息,各个通道之间不需要固定的关系。 这很重要,因为它可以在任何通道中插入寄存器片,但代价是额外的延迟周期。 这使得在延迟周期和最大操作频率之间进行权衡成为可能。

还可以在给定互连内的几乎任何点使用寄存器片。 在处理器和高性能存储器之间使用直接、快速的连接可能是有利的,但使用简单的寄存器片将更长的路径隔离到对性能不太重要的外围设备。

1.3 基本事务

本节给出基本的axi协议事务的示例。每个示例都展示了VALID和READY握手机制。当VALID和READY信号都是HIGH时,就会发生地址信息或数据的传输。例子为:

  • 读取突发示例
  • 重叠读突发示例
  • 写突发示例

本节还描述了传输顺序。

1.3.1 读burst示例

图1-4显示了4次传输的读burst。在这个例子中,主设备驱动地址,一个周期后从服设备接受它。
注意:
主设备还驱动一组显示脉冲串长度和类型的控制信号,但为清楚起见,图中省略了这些信号。
地址出现在地址总线上后,数据传输发生在读数据通道上。 从机将 VALID 信号保持为低电平,直到读取数据可用。 对于突发的最后数据传输,从器件置位 RLAST 信号以表明正在传输最后一个数据项。

Figure1-4 Read burst

1.3.2 重叠读burst示例

图 1-5 显示了在从设备接受第一个地址后,主设备如何驱动另一个突发地址。 这使得从设备能够在完成第一个突发的同时开始处理第二个突发的数据。

Figure1-5 Overlapping read bursts

1.3.3 写burst示例

图 1-6 显示了一个写事务。 当主机在写地址通道上发送地址和控制信息时,该过程开始。 然后主设备通过写数据通道发送每一项写数据。 当主机发送最后一个数据项时,WLAST 信号变为高电平。 当从设备接受了所有数据项后,它将写响应驱动回主设备以表示写事务已完成。

Figure1-6 Write burst

1.3.4 事务排序

AXI 协议支持无序事务完成。 它为界面上的每笔事务都提供了一个 ID 标签。 该协议要求具有相同 ID 标签的事务按顺序完成,但具有不同 ID 标签的事务可以乱序完成。

无序事务可以通过两种方式提高系统性能:
• 互连可以使与快速响应从属的事务在与较慢从属的较早事务之前完成。(个人理解:慢点事务原本在前,但是太慢了会影响后续事务的传输,因此互连无序事务可以避免这种堵塞)
• 复杂从设备可以无序返回读取数据。 例如,在用于较早访问的数据可用之前,可以从内部缓冲区获得用于稍后访问的数据项。

如果 master 要求事务以它们发出的相同顺序完成,那么它们都必须具有相同的 ID 标签。 但是,如果主设备不需要按顺序完成事务,它可以为事务提供不同的 ID 标签,使它们能够以任何顺序完成。

在多主设备中,互连负责将附加信息附加到 ID 标签,以确保所有主设备的 ID 标签都是唯一的。 ID 标签类似于主设备编号,但具有扩展性,即每个主设备可以通过提供一个 ID 标签来指示虚拟主设备编号,从而在同一端口内实现多个虚拟主设备。

虽然复杂的设备可以使用乱序设施,但简单的设备不需要使用它。 简单的master可以使用相同的 ID 标签发出每笔交易,而简单的slave可以按顺序响应每笔交易,而不管 ID 标签如何。

1.4 附加特性

AXI协议也提供以下附加属性:
突发类型:
AXI 协议支持三种不同的突发类型,适用于:

  • 正常的内存访问
  • 环绕缓存线突发
  • 将数据流式传输到外设 FIFO 位置

参见第4章寻址选项。
系统缓存支持:
AXI 协议的缓存支持信号使主设备能够向系统级缓存提供事务的可缓冲、可缓存和分配属性。
请参阅第 5-2 页的缓存支持。
保护单元支持:
为了同时启用特权访问和安全访问,AXI 协议提供了三个级别的保护单元支持。
请参阅第 5-5 页的保护单元支持。
原子操作:
AXI协议定义了独占访问和锁定访问的机制。
错误支持:
AXI协议为地址解码错误和Slave产生的错误提供错误支持。
参见第7章响应信号。
地址对齐:
为了提高突发内的初始访问性能,AXI协议支持非对齐的突发起始地址。
见第10章非对齐传输。

AXI协议详解(1)-协议简介相关推荐

  1. 协议详解_I2C协议详解

    I2C通信协议 I2C通信协议的基础 简介 I2C「Inter-integrated Circuit」总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换 ...

  2. TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记

    TCP/IP协议的体系结构: TCP/IP协议族四层模型和OSI七层模型 上层协议使用下层协议的服务,下层协议给上层协议提供一个接口. 四层模型中各个层次的作用和特点 上图说明: 最底层是数据链路层, ...

  3. rtp协议详解/rtcp协议详解

    1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...

  4. sip协议详解_SIP协议详解-INVITE消息发送过程

    SIP协议是VoIP中最重要的信令控制协议.SIP中第一件事情就是主叫发送INVITE给被叫,被叫响铃.本文从多角度详细描述INVITE消息发送的全过程. 一.阅读RFC权威描述 关于INVITE消息 ...

  5. HTTPS简介以及SSL协议详解

    HTTPS简介以及SSL协议详解 1.HTTPS简介 2.SSL协议介绍 2.1.SSL协议的功能 2.2.SSL协议在协议栈的位置 2.3.SSL协议组成 2.3.1.纪录协议的功能 2.3.2.S ...

  6. 一篇有点长的HTTP协议详解

    一.HTTP简介 01.什么是HTTP HTTP(HyperText Transfer Protocol ,超文本传输协议),是一个基于请求与响应的,无状态的,应用层的协议,常基于TCP/IP协议传输 ...

  7. STM32常用协议之SPI协议详解

    SPI协议详解 SPI协议简介 一.SPI物理层 二.SPI协议层 2.1 SPI基本通信过程 2.2 通信的起始和终止信号 2.3 数据有效性 2.4 CPOL/CPHA及通信模式 三.编程实现 四 ...

  8. MQTT协议详解,非常易懂

    MQTT协议详解一 协议地址:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html 当然也有PDF版的,百度 ...

  9. Dubbo——协议详解

    Dubbo协议详解 Dubbo协议设计参考了现有TCP/IP协议.一次RPC调用包括协议头和协议体两个部分.16字节长的报文头部主要携带了魔法数(0xdabb),以及当前请求报文是否是Request. ...

最新文章

  1. #每天一种设计模式# 模板方法
  2. html掷骰子小游戏,网页实现掷骰子小游戏
  3. python类中方法的执行顺序-python – 新式类中的方法解析顺序(MRO)?
  4. 需求用例分析之三:补充规约
  5. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 规范与部署
  6. android解决工具类中没有context中的问题
  7. 实训项目四 powerpoint 综合应用_【深化改革结硕果】新疆番茄综合精深加工关键技术及产业化应用项目取得重大突破...
  8. 怎么样做好手机网站的优化和推广呢?
  9. 方便好用的论文管理软件EndNote X9 + PDF阅读编辑器Adobe Acrobat DC(2)
  10. NHOI2019总结
  11. ssdp协议 upnp_【零知ESP8266】教程:SSDP简单服务发现协议示例
  12. 夏普电视账号服务器异常,夏普电视故障通病维修案例,你中了几个?
  13. 9针串口RS232、RS485之间的差异
  14. XCTF-Cat+Bug
  15. html网页右侧悬浮代码,html悬浮窗口代码
  16. 西瓜创客python课程、8岁可以上课吗_有家长让孩子用西瓜创客学编程的吗,感觉怎么样?...
  17. html css齿轮滚动特效,纯CSS3实现的齿轮滚动动画
  18. 你应该知道的Android签名知识
  19. Android开发5年,怎么样通过自学拿到40W年薪的?,安卓面试题最新2020
  20. Required field ‘serverProtocolVersion‘ is unset! User: root is not allowed to impersonate root

热门文章

  1. uIP TCP/IP协议栈在51系列单片机上的应用
  2. 物联网常见的几种通信方式
  3. 阿里巴巴的业务范畴/文化和价值观
  4. WinEdt教程 表格,图像,公式,段落
  5. 市场营销工作重中之重——提升工作效率
  6. 使用GCD 转自 Posted by 唐巧
  7. 【python】2行代码实现gif动图压缩(pygifsicle)
  8. linux中rcf命名管道,RCF-进程间为C通讯
  9. [论文翻译]据传比MTCCN的FaceBoxes《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》
  10. 在安卓系统上使用NFC技术的模拟M1卡的探索之路