AXI协议详解(7)-响应信号

响应信号

本章描述了 AXI 读写事务中的四个从响应。 它包含以下部分:

  • 关于响应信令
  • 响应类型

7.1 关于响应信号

AXI 协议允许读取和写入事务的响应信号。 对于读取事务,来自Slave的响应信息与读取数据本身一起传递,但是对于写入,响应信息沿写入响应通道传送。

AXI 协议响应为:

  • OKAY
  • EXOKAY
  • SLVERR
  • DECERR

表 7-1 显示了 RRESP[1:0]BRESP[1:0] 信号的编码。

AXI协议详解(7)-响应信号_第1张图片

Table7-1 RRESP[1:0] and BRESP[1:0] encoding

对于写事务,整个突发只给出一个响应,而不是突发内的每个数据传输。(一个突发一个响应,而不是突发中每个数据每个响应)

在读事务中,Slave可以对突发内的不同传输给出不同的响应。 例如,在 16 次读取传输的突发中,Slave可能会为 15 次传输返回 OKAY 响应,并为其中一次传输返回 SLVERR 响应。

该协议定义了必须执行所需数量的数据传输,即使报告了错误。 例如,如果从Slave请求读取 8 次传输,但Slave有错误情况,则Slave必须执行 8 次数据传输,每次传输都有错误响应。 如果Slave给出单个错误响应,则不会取消突发的剩余部分。

该协议对可以发出多个未完成地址并且还必须支持精确错误信号的Master施加了限制。 这样的Master必须能够处理较早传输的错误响应,而较晚的传输已经在进行中。

7.2 响应类型

本节介绍四种 AXI 协议响应类型:

  • 正常访问成功
  • 独占访问
  • Slave错误
  • 解码错误

7.2.1 正常访问成功

OKAY 响应表明:

  • 正常访问成功
  • 独占访问失败
  • 对不支持独占访问的Slave独占访问

OKAY 是大多数事务的响应。

7.2.2 独占访问

EXOKAY 响应指示独占访问成功。

7.2.3 Slave 错误

SLVERR 响应指示不成功的事务。 Slave错误条件的示例是:

  • FIFO/缓冲区溢出或欠载情况
  • 尝试的传输大小不受支持
  • 尝试对只读位置进行写访问
  • Slave超时条件
  • 尝试访问不存在寄存器的地址
  • 尝试访问禁用或关闭的功能

为了简化系统监控和调试,建议错误响应仅用于错误条件,而不是用于发出正常、预期事件的信号。

7.2.4 译码错误

在没有完全解码地址映射的系统中,可能存在没有Slave响应事务的地址。 在这样的系统中,互连必须提供合适的错误响应以将访问标记为非法,并防止系统通过尝试访问不存在的Slave而锁定。

当互连无法成功解码Slave访问时,它会有效地将访问路由到默认Slave,并且默认Slave返回 DECERR 响应。

一个实现选择是让默认Slave也记录解码错误的详细信息,以便以后确定错误是如何发生的。 这样,默认Master可以大大简化调试过程。

响应。

一个实现选择是让默认Slave也记录解码错误的详细信息,以便以后确定错误是如何发生的。 这样,默认Master可以大大简化调试过程。

AXI 协议要求完成事务的所有数据传输,即使出现错误情况也是如此。 因此,任何提供 DECERR 响应的组件都必须满足此要求。

你可能感兴趣的:(AMBA协议,硬件工程,驱动开发,arm开发,硬件架构)