1 / 70

AMBA AXI4 协议

AMBA AXI4 协议. 何宾 2012.02. 本章内容. AMBA AXI4 协议是由 Xilinx 公司和 ARM 公司制定的 用于 SOC 内 IP 互联的规范。 本章详细介绍了 AXI4 规范。主要内容包括 AXI 概 述、 AXI4 功能、 AXI4-Lite 功能和 AXI4-Stream 功能等。 其中 AXI4 功能、 AXI4-Lite 功能和 AXI4-Stream 功能 是本章的重点内容,也是构成 AXI4 协议的主要部分。. AXI 概述.

thy
Download Presentation

AMBA AXI4 协议

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AMBA AXI4协议 何宾 2012.02

  2. 本章内容 AMBA AXI4协议是由Xilinx公司和ARM公司制定的 用于SOC内IP互联的规范。 本章详细介绍了AXI4规范。主要内容包括AXI概 述、AXI4功能、AXI4-Lite功能和AXI4-Stream功能等。 其中AXI4功能、AXI4-Lite功能和AXI4-Stream功能 是本章的重点内容,也是构成AXI4协议的主要部分。

  3. AXI概述 Xilinx 同 ARM 密切合作,共同为基于 FPGA 的高性 能系统和设计定义了 AXI4 规范。并且在其新一代可编 程门阵列芯片上采用了高级可扩展接口(Advanced eXtensible Interface, AXI)协议。 AXI总线是ARM高级微控制器总线结构(Advanced Microcontroller Bus Architecture, AMBA)的一部分。AXI 总线的第一个版本包含在AMBA3.0(2003年发布)中, AXI总线的第二个版本AXI4包含在AMBA4.0(2010年发 布)中。

  4. AXI概述 最新一代的AMBA接口的目标是: (1)适合于高带宽和低延迟设计; (2)在不使用复杂的桥接方式下,允许更高频率的操作; (3)满足普遍情况下的元件接口要求; (4)适用于高初始访问延迟的存储器控制器; (5)为互联结构的实现提供了灵活性; (6)与已有的AHB和APB接口向下兼容。

  5. AXI概述 AXI协议的关键特性表现在以下几个方面: (1)独立的地址/控制和数据阶段; (2)使用字节选通,支持非对齐的数据传输; (3)只有开始地址的猝发交易; (4)独立的读和写数据通道,可以使能低成本的直接存 储器访问DMA传输; (5)能发出多个未解决的地址; (6)完成无序交易; (7)容易添加寄存器切片,满足时序收敛要求;

  6. AXI概述-- AXI协议的优势 1.提供了更高的生产率,主要体现在以下几个方 面: (1)将多种不同的接口整合到一个接口(AXI4)中,因此 用户仅需了解单个系列的接口; (2)简化了不同领域 IP 的集成,并使自身或第三方合作伙 伴 IP 的开发工作更简单易行; (3)由于AXI4 IP 已为实现最高性能、最大吞吐量以及最低 时延进行了优化,从而使设计工作进一步获得简化;

  7. AXI概述 2.提供了更大的灵活性,主要体现在以下几个 方面: (1)支持嵌入式、DSP 及逻辑版本用户; (2)调节互连机制,满足系统要求:性能、面积及功耗; (3)帮助设计者在目标市场中构建最具号召力的产品;

  8. AXI概述 3.提供了广泛的 IP 可用性 (1)第三方 IP 和 EDA 厂商普遍采用开放式 AXI4 标 准,从而使该接口获得了更广泛的应用。 (2)基于 AXI4 的目标设计平台可加速嵌入式处理、 DSP以及连接功能设计开发。

  9. AXI4功能 AXI4协议基于猝发式传输机制。在地址通道上, 每个交易有地址和控制信息,这些信息描述了需要传 输的数据性质。 在主设备和从设备之间所传输的数据分别使用到 从设备的写数据通道和到主设备的读数据通道。 在从主设备到从设备的写数据交易中,AXI有一个 额外的写响应通道,从设备通过该通道向主设备发出 信号表示完成写交易。

  10. AXI4功能 所有的AXI4包含了5个不同的通道: (1)读地址通道(Read address channel, AR) ; (2)写地址通道(Write address channel, AW); (3)读数据通道(Read data channel, R); (4) 写数据通道(Write data channel, W); (5) 写响应通道(Write response channel, B);

  11. AXI4功能 每个通道由一个信号集构成,并且使用双向的 VALID和READY握手信号机制。 信息源使用VALID信号,表示在通道上存在可用 的有效数据或者控制信息;而信息接收源使用READY 信号,表示可以接收数据。 读数据通道和写数据通道也包含LAST信号,该信 号用来表示在一个交易发生时,最后一个传输的数据 项。

  12. 读地址通道 从 接 口 主 接 口 地址和控制 读数据通道 读数据 读数据 读数据 读数据 图2.1 读通道结构 AXI4功能 图2.1给出了AXI4使用读地址和读数据通道的读 交易。图2.2给出了AXI4使用写地址和写数据通道的 写交易

  13. 写地址通道 从 接 口 主 接 口 地址和控制 写数据通道 写数据 写数据 写数据 写数据 写响应通道 写响应 图2.2 写通道结构 AXI4功能

  14. AXI4全局信号

  15. 低功耗接口信号

  16. AXI4通道及信号 读和写交易有各自的地址通道。地址通道上给出交易 所要求的地址和控制信息。AXI4读和写地址通道包括下面 的机制: (1)可变长度的猝发操作,每次猝发操作包含1-256数据; (2)提供服务质量(QoS)信号 (3)支持多个区域接口; (4)猝发传输不能超过4k边界; (5)包裹、递增和非递增猝发; (6)使用互斥和锁的原子操作; (7)系统级缓存和缓冲控制; (8)安全和特权访问。

  17. AXI4通道及信号--读和写地址通道 (写地址)

  18. AXI4通道及信号--读和写地址通道 (读地址)

  19. AXI4通道及信号--读数据通道 读数据通道传送所有来自从设备到主设备的读 数据及读相应信息。表2.5给出了读数据通道信号及 其信号定义。 读数据通道包括: (1) 数据总线宽度:8、16、32、64、128、256、 512和1024位宽度; (2) 读响应表示读交易完成的状态

  20. AXI4通道及信号--读数据通道

  21. AXI4通道及信号--写数据通道 写数据通道传送所有从主设备到从设备的写数据。 表2.6给出了写数据通道信号及信号定义。写数据通道 包括: (1) 数据总线宽度:8、16、32、64、128、256、 512和1024位宽度; (2) 每8位有一个字节通道选通,用来表示数据总线 上的哪个字节是有效的;

  22. AXI4通道及信号--写数据通道

  23. AXI4通道及信号--写响应通道 写响应通道提供了一种方法,用于从设备响应写 交易。所有的写信号使用完成信号。每个响应用于一 次猝发的完成,而不是用于每个交易的数据。 读交易和写交易可以通过下面的交易例子进行说 明: 1)读猝发交易 2)重叠猝发交易 3)写猝发交易

  24. AXI4通道及信号--写响应通道

  25. 图2.3读猝发交易过程中典型信号的交互过程 AXI4通道及信号--写响应通道 图2.3给出了读猝发交易过程中典型信号的交互 过程。

  26. 图2.4写猝发交易过程中典型信号的交互过程 AXI4通道及信号--写响应通道 图2.4给出了写交易过程中典型信号的交互过程。

  27. AXI4交易通道的握手信号关系 为了避免死锁条件,必须考虑握手信号之间存在的 依赖关系。在任何交易中: (1) AXI互联中的VALID信号不依赖于交易中其它元件的 READY信号; (2) READY信号能等待VALID信号的确认;

  28. 图2.5 读交易中的握手之间的依赖关系 AXI4交易通道的握手信号关系--AXI4读交易的握手信号关系 • 图2.5给出了读交易中握手之间的依赖关系。

  29. AXI4交易通道的握手信号关系--AXI4读交易的握手信号关系AXI4交易通道的握手信号关系--AXI4读交易的握手信号关系 在读交易中: (1) 在确认ARREADY信号前,从设备能等待确认ARVALID信 号; (2)在从设备通过确认RVALID信号开始返回数据前,必须等待 确认所有的ARVALID和ARREADY信号;

  30. 图2.6 写交易中的握手之间的依赖关系 AXI4交易通道的握手信号关系--AXI4写交易的握手信号关系 • 图2.6给出了写交易中握手之间的依赖关系。

  31. AXI4交易通道的握手信号关系--AXI4写交易的握手信号关系AXI4交易通道的握手信号关系--AXI4写交易的握手信号关系 在写交易中: (1) 在确认AWVALID和WVALID信号前,主设备不需要等待从 设备确认AWREADY或者WREADY信号; (2) 在确认AWREADY前,从设备能等待AWVALID或WVALID 信号,或者全部这两个信号; (3) 在确认WREADY前,从设备能等待AWVALID或WVALID信 号,或者全部这两个信号; (4) 从设备在确认BVALID前,从设备必须等待确认所有的 AWVALID和AWREADY信号; (5) 在确认BVALID前,从设备不需要等待主设备确认BREADY 信号。 (6) 在确认BREADY前,主设备能等待BVALID信号;

  32. AXI4猝发类型及地址计算 --AXI4猝发类型 AXI协议中定义了三种猝发类型: (1) 固定猝发(Fixed burst); (2) 递增猝发(Incrementing burst); (3) 包裹猝发(Wrapping burst) 表2.8给出了ARBURST和AWBURST信号所选择的 猝发类型:

  33. AXI4猝发类型及地址计算 --AXI4猝发类型

  34. AXI4猝发类型及地址计算 --AXI4猝发类型 对于包裹式的猝发方式,有两个限制: (1) 开始地址必须对齐传输大小; (2) 猝发的长度必须是2,4,8或16。 (3) 大于16拍的猝发传输只支持INCR类型。WRAP和 FIXED类型只限于小于16拍的猝发传输。

  35. AXI4猝发类型及地址计算 --AXI4猝发地址 为了说明猝发交易过程中地址的计算方法,首先给出 计算过程中,所需要使用的一些术语: (1) Start_Address: 主设备给出的开始地址; (2) Number_Bytes: 每次数据传输过程中最大的字节个数; (3) Data_Bus_Bytes: 数据总线上的字节通道的个数; (4) Aligned_Address: 开始地址的对齐版本; (5) Burst_Length: 在一个猝发中数据传输的总个数; (6) Address_N: 在一个猝发中传输N个的地址; (7) Wrap_Boundary: 在一个包裹猝发方式的低地址; (8) Lower_Byte_Lane: 一个传输最低寻址字节的字节通道; (9) Upper_Byte_Lane: 一个传输中最高寻址字节的字节通道; (10) INT(x): x取整操作;

  36. AXI4猝发类型及地址计算 --AXI4猝发地址 给上面的术语进行如下的赋值操作: (1) Start_Address=ADDR; (2) Number_Bytes=2SIZE; (3) Burst_Length=LEN+1; (4)Aligned_Address=(INT(Start_Address/Number_Byte))x Number_Bytes;

  37. AXI4猝发类型及地址计算 --AXI4猝发地址 • 在一个猝发中,第一个传输的地址表示为: Address_1=Start_Address; • 在一个猝发中,传输N个数据后的地址表示为: Address_N=Aligned_Address+(N-1)x Number_Bytes; • 对于WARP的猝发方式,其边界由下式确定为: Wrap_Boundary=(Int(Start_Address/(Number_Bytes x Burst_Length))) x (Number_Bytes x Burst_Length); 如果Address_N=Wrap_Boundary+(Number_Bytes x Burst_Length). 则使用这个等式: Address_N=Wrap_Address 在边界后,使用这个等式: Address_N = Start_Address + ((N – 1) x Number_Bytes) – (Number_Bytes x Burst_Length);

  38. AXI4猝发类型及地址计算 --AXI4猝发地址 使用下面的等式确定第一个传输中使用哪个字 节通道: Lower_Byte_Lane = Start_Address - (INT(Start_Address / Data_Bus_Bytes))x Data_Bus_Bytes Upper_Byte_Lane = Aligned_Address + (Number_Bytes – 1) -(INT(Start_Address / Data_Bus_Bytes)) x Data_Bus_Bytes;

  39. AXI4猝发类型及地址计算 --AXI4猝发地址 使用下面的等式确定在一个猝发中第一个传输 后用于所有传输中使用哪个字节通道: • Lower_Byte_Lane = Address_N – (INT(Address_N / Data_Bus_Bytes)) x Data_Bus_Bytes; • Upper_Byte_Lane = Lower_Byte_Lane + Number_Bytes – 1; • 传输数据的范围在: • DATA[(8xUpper_Byte_Lane) + 7 : (8 x Lower_Byte_Lane)];

  40. AWCACHE和ARCACHE属性 AWCACHE[3:2]和ARCACHE[3:2] AWCACHE[2]和ARCACHE[2]为读分配位。 AWCACHE[3]和ARCACHE[3]为写分配位。 对于读交易,写分配位表示: (1) 由于一个写交易,位置能预先在高速缓存Cache中进行分 配; (2) 由于其它主设备的行为,位置能预先在高速缓存Cache中 进行分配; (3) 对于写交易,读分配位表示: (4) 由于一个读交易,位置能预先在高速缓存Cache中进行分 配; (5) 由于其它主设备的行为,位置能预先在高速缓存Cache中 进行分配;

  41. AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] AWCACHE[1]和ARCACHE[1]在AXI4中表示可修改 位。该位为1时,表示交易是可修改的,否则交易时不可 修改的。 1.不可修改的交易 不可修改交易不能分割成多个交易或者与其它交易合 并。交易不可修改时,下面的参数是不可修改的:传输地 址(AWADDR, ARADDR, AWREGION, ARREGION)、 猝发大小(AWSIZE, ARSIZE)、猝发长度(AWLEN, ARLEN)、猝发类型(AWBURST. ARBURST)、锁类 型(AWLOCK, ARLOCK)、保护类型(AWPROT, ARPROT)。

  42. AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] 不可修改交易中,交易ID和QoS值是可修改的。对 于猝发长度大于16的不可修改的交易,允许分割成多 个交易。每个产生的交易都满足上面的要求,但减少 猝发长度,所产生的猝发地址也相应的修改。

  43. AWCACHE和ARCACHE属性AWCACHE[1]和ARCACHE[1] 2.可修改的交易 可修改的交易可以通过下面的方法进行操作: (1) 交易能分割成多个交易; (2) 多个交易能合并成一个交易; (3) 读交易能取出比要求多的数据; (4) 写交易能访问比要求更大的地址范围,使用写选通信号 来保证只更新合理的位置; (5) 可以修改每个产生交易的传输地址(AWADDR, ARADDR)、猝发大小(AWSIZE, ARSIZE)、猝发长度 (AWLEN, ARLEN)、猝发类型(AWBURST. ARBURST) 但是不能修改锁类型(AWLOCK, ARLOCK)、保护类型 (AWPROT,ARPROT)。可修改交易中,交易ID和QoS值是 可修改的。

  44. AWCACHE和ARCACHE属性AWCACHE[0]和ARCACHE[0] AWCACHE[0]和ARCACHE[0]表示可缓冲,当为 低,AWCACHE[0]表示写响应由终端设备发出,否则 可以有中间设备发出。ARCACHE[0]表示读数据由终 端设备发出或者由写的是最终目的地发出。

  45. AXI互联结构模型 其互联结构模型包括: • 直通模式; • 只转换模式; • N-1互联模式; • 1-N互联模式; • N-M互联模式。 下面对这几种互联结构模型进行介绍:

  46. 互联 主设备0 从设备0 图2.7 直通模式 AXI互联结构模型--直通模式 如图2.7所示,当只有一个主设备和一个从设备和 AXI互联时,AXI互联不执行任何转换或流水线功能, AXI互联结构退化成直接的线连接。在这种模式下,没 有延迟存在,同时不消耗逻辑资源。

  47. AXI互联结构模型--只转换模式 如图2.8所示,当连接一个主设备和一个从设备时, AXI互联能执行不同的转换和流水线功能。这些功能主 要包括: • 数据宽度转换; • 时钟速率转化; • AXI4-Lite从适应; • AXI-3从适应; • 流水线(例如一个寄存器Slice或者数据通道FIFO)。 在只转换模式下,AXI互联不包含仲裁、解码或布线 逻辑,但是可能产生延迟。

  48. 互联 主设备0 从设备0 转换/流水 图2.8转换模式 AXI互联结构模型--只转换模式

  49. AXI互联结构模型--N-1互联模式 如图2.9所示,AXI互联的一个普通的退化配置模 式是,多个主设备访问一个从设备。 典型的情况是,一个存储器控制器,很显然需要仲 裁逻辑。这种情况下,AXI互联不需要地址译码逻辑 (除非需要确认地址的有效范围)。在这个配置中, 也执行数据宽度和时钟速率的转换。

  50. 互联 主设备0 从设备0 仲 裁 器 主设备1 图2.9 N-1互联模式 AXI互联结构模型--N-1互联模式

More Related