ARM架构(三)——AMBA和总线②

本文参考
ARM文档“Introduction to AMBA AXI4 - Arm Developer”
手册可以在ARM官方文档中下载ARM.con,也可以访问我的百度网盘资源 提取码:1234

1. AXI协议概述

1.1 多主系统中的AXI

1、下图显示了一个SoC系统的简化示例,它由主、从和连接它们的互连组成。
在这里插入图片描述
上图显示,每个AXI主接口连接到单个AXI从接口。当涉及多个主从时,需要一个互连结构(如上图中的深蓝色Inter-connection archtecture)。这种互连结构还实现了从接口和主接口,其中实现了AXI协议。AXI协议定义了主从之间点对点连接的信号和定时。
AXI协议是点对点规范,而不是总线规范。因此,它只描述接口之间的信号和时序。

2、多Master多Slave的Sample总线传输模型
下图显示的是一个较为复杂的互连,它需要自己的AXI主接口和从接口与外部功能块通信:
在这里插入图片描述
下图显示了一个具有各种处理器和功能块的SoC示例(是【ARM架构(三)——AMBA和总线①】2.1中的那个示例图):
在这里插入图片描述
这个图显示了使用AXI的所有连接。在同一个SoC中使用了AXI3和AXI4,这是比较常见的做法。在这种情况下,互连执行不同AXI接口之间的协议转换。

1.2 AXI通道

AXI规范描述了两个接口之间的点对点协议:主接口和从接口。下图显示了每个AXI接口用于通信的五个主要通道:
在这里插入图片描述

  • 写操作使用以下通道:
    (1)主设备在写地址(Write address, AW)通道上发送一个地址
    (2)地址发送之后,主设备在写数据(Write data, W)通道上向从服务器传输数据。
    (3)slave将接收到的数据写到指定的地址。一旦从服务器完成了写操作,它就在写响应(write Response, B)通道上用一条消息响应主服务器。
  • 读操作使用以下通道:
    (1)主设备在读地址(AR)通道上发送它想要读取的地址。
    (2)从设备通过读取数据( R )通道将数据从请求地址发送到主设备。 从设备也可以在读数据( R )通道上返回一个错误消息。例如,如果地址无效,或数据损坏,或访问没有正确的安全权限,则会发生错误。

每个通道都是单向的,因此需要一个单独的写响应通道来将响应传递回主机。但是,不需要读取响应通道,因为读取响应是作为读取数据通道的一部分传递的。

使用单独的地址和数据通道进行读写传输有助于最大限度地利用接口带宽。读写通道组之间没有时序关系。这意味着读序列可以与写序列同时发生。
这五个通道中的每一个都包含几个信号,每个通道中所有这些信号的前缀如下:

前缀 含义
AW 表示 Write Address写地址通道的信号;
AR 表示 Read Address读地址通道的信号;
W 表示 Write Data写数据通道的信号;
R 表示Read Data 读数据通道的信号;
B 表示Write Response写响应通道的信号
B代表缓冲的,因为从服务器的响应发生在所有写操作完成之后

1.3 AXI的主要特点

AXI协议有几个关键特性,旨在改善数据传输和事务的带宽和延迟,如下所示:

  1. 独立的读写通道。 AXI支持两组不同的通道,一组用于写操作,另一组用于读操作。拥有两组独立的信道有助于提高接口的带宽性能。读和写操作可以同时发生。
  2. 多个未完成地址。 AXI允许存在多个未完成地址。主设备可以在不等待先前事务完成的情况下发出事务。这可以提高系统性能,支持并行处理事务。
  3. 地址和数据操作之间没有严格的定时关系。 使用AXI,地址和数据操作之间没有严格的时间关系。例如,主设备可以在写地址通道上发出写地址,但是对于主设备何时必须提供相应的数据以在写数据通道上写入没有时间要求。
  4. 支持不对齐数据传输。 对于任何由大于一个字节的数据传输组成的突发,访问的第一个字节可以与自然地址边界不对齐。例如,从字节地址0x1002开始的32位数据包不与自然32位地址边界对齐。
  5. 乱序事务完成。 AXI可以实现乱序事务完成。AXI协议包括事务标识符,并且对使用不同ID值完成事务没有限制。这意味着单个物理端口可以通过充当多个逻辑端口来支持乱序事务,每个逻辑端口按顺序处理其事务。
  6. 基于起始地址的突发事务。 AXI主设备只会为第一次传输发出起始地址。对于任何后续传输,slave将根据突发类型计算下一个传输地址。

2. 通道传输和事务( transfers and transactions)

transfer对应一次传输,transaction是对应一次或多次传输操作,或者说一个传输包。通常一个transaction由一个或者多个transfer组成。

2.1 Channel handshake(通道握手)

AXI4协议定义了五个不同的通道,AXI总线的五个通道各自独立,每个通道都有自己的双向握手机制。所有这些通道都共享基于VALID和READY信号的相同握手机制,如下图所示。
在这里插入图片描述

VALID信号 从【源】发送到【目的】,【源】使用VALID信号来指示信息有效。VALID信号必须保持断言状态,即设置为高电平,直到【目的】接收该信息。以这种方式保持断言的信号称为sticky signals(粘性信号)。
READY信号 从【目的】发送到【源】。 【目的】指示何时可以使用READY信号接受信息。

源端或目的端是主端还是从端取决于使用的是哪个通道。例如,主机是读地址通道的源端,但却是读数据通道的目的端。
用Valid信号表示主设备准备好发送,用Ready信号表示从设备准备好接收。一般Valid信号拉高时表示要发送数据的那一方当前的地址或者数据通道里对应的信息有效,接收的那一方拉高Ready表示已经准备好接收相应的信号。读写通道传输数据结束时,会拉高last信号以表示该数据是最后一个数据。

2.2 transfers和transactions的区别

  1. transfers通道传输是一次信息交换,只有一次VALID和READY握手。下图显示了一个传输transfers:
    在这里插入图片描述

2.事务transactions是一连串的传输,包括一次地址传输、一次或多次数据传输,对于写序列,还包括一次响应传输。下图显示了一个事务transact

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值