【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】

文章目录

    • 1.1 Locked accesses

1.1 Locked accesses

当主机使用 AxLOCK 信号来指示事务是锁定的事务时,互连(Interconnect)必须确保只有该主机可以访问目标从属区域,直到来自同一主机的未锁定事务完成。互连中的仲裁器(arbiter)必须执行此限制。

在主机启动读或写事务的锁定序列之前,它必须确保没有其他事务等待完成。
下图用了 M0 和 M1 来展示 AXI 锁定访问
【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】_第1张图片
当 M0 使用 一个 lock 信号来说明当前的访问时锁定访问时,互联会使用仲裁器来保证只有M0可以访问从属目标区域。

下图展示了锁定访问的具体工作流程:
【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】_第2张图片

  • M0 发起 READ, MODIFY, WRITE 的流程申请,在事务开始, READ 执有LOCK 信号;
  • 互联将其它的事物都锁在外面,如上图,从此刻开始 M1 没有访问目标区域的权限;
  • 在事务的末尾,WRITE 不执有 LOCK 信号,互联去除锁定,此次锁定访问结束,其他事务可以进行访问目标区域,如下图:
  • 【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】_第3张图片
    任何带有 AxLOCK 的表示已锁定事务的事务都会强制互连锁定后续的事务。因此,锁定的序列必须由一个没有 AxLOCK 指示锁定事务终结。这就要求最后一个事务包含在锁定的序列中,并有效地移除锁定。此外,主机必须确保锁定序列中的所有事务都具有相同的AxID值。

AXI4 中考虑到大多数组件并不需要锁定的事务,而且锁定事务对于互连设计和 QoS 带来挑战,因此取消了对locked access的支持,AxLOCK信号为1bit

AXI3 支持 Locked access,AxLOCK 信号为 2bit:
【ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号】_第4张图片

你可能感兴趣的:(#,ARM,Bus,Introduction,网络,fpga开发,arm,arm开发)