本文讲解AXI协议中的独占访问锁定访问机制。

AXI中使用 ARLOCK或 AWLOCK信号的编码来表示普通访问、独占访问和锁定访问,这里我们用AxLOCK代指。

独占访问(Exclusive accesses):

独占访问机制使得信号量类型操作(semaphore type operations)的开发不需要总线在操作期间保持对某一特定主机的锁定。
独占访问的优点是既不会影响关键总线访问延迟,也不会影响最大可达到的带宽。
通过AxLOCK信号的值来选择独占访问,RRESP和BRESP信号分别表示独占访问读和写的成功或失败。

从机需要额外的逻辑来支持独占访问。AXI 协议提供了一种自动防故障(fail-self)机制来指示当主机试图对一个不支持独占访问的从机进行独占访问。

一个exclusive访问的基本过程如下:
1. 主机对slave的一个地址执行独占读操作。从机中的monitor会记录下该master的 ARID和 要访问的地址位置
2. 一段时间之后,主机对相同的地址执行独占写操作,从机同样要记录该操作的主机的 AWID 和 要访问的地址位置。
如果AWID == ARID 并且 该地址内容没有改变(没有被其他的master访问过),则独占写操作成功,同时slave会返回EXOKEY,否则slave会返回OKEY。
3. 主机独占写访问的结果表示为:
•如果自独占读访问到写访问以来没有其他主机写入该位置,则独占访问成功。在这种情况下,独占写更新内存地址。
•如果在独占读访问之后,有任何另外一个主机写入了该位置,则独占访问失败。

对于exclusive操作,总线不会被锁定,所以总线事实上允许其他master同时来请求总线。不过,当一个主机在执行独占访问时,其他master要同时通过总线访问其他的slave,该独占访问就失败了

独占访问限制:
•指定ID的独占写的burst size和burst length必须与前一个具有相同ID的独占读的burst size和burst length相同。
•独占访问的地址必须与事务中的总字节数(burst size * burst length)对齐。
•独占读和独占写的地址必须相同。
•独占访问中,独占读的ARID值必须与独占写AWID值匹配,即AWID==ARID
•独占访问中,独占读和独占写事务的控制信号必须相同。
•一个独占访问突发中,要被传输的字节数必须是2的幂,即1、2、4、8、16、32、64或128 bytes。
•一个独占访问突发中,可以传输的最大字节数是128。
•在AXI4中,独占访问的burst length不能超过16个transfers。
•AxCACHE信号的值必须保证监视独占访问的从机能看到事务。例如,一个独占访问不能具有表明该事务是可缓存的AxCACHE值。

锁定访问(Locked accesses):

当一个主机使用AxLOCK信号表示一个事务是锁定事务时,互联(interconnect)必须确保只有该主机可以访问目标从机区域,直到同一个主机的一个非锁定传输的事务完成。互连中的仲裁程序用来执行该限制,并且必须强制执行此限制。

锁定访问要求在锁定序列进行时,互连(interconnect)阻止任何其他事务发生,即某个master 可以锁定总线来实现独占,只有当该master完成传输后才释放出bus,因此可能会对互连性能产生影响。相比之下,exclusive访问不需要将bus锁定给某个master。

AXI3的实现必须要支持锁定事务,而AXI4移除了对LOCK访问的支持,因为:
•大多数组件不需要锁定事务
•锁定事务的实现对互连(interconnect)的复杂性、保证QoS的能力有显著影响:
所以AXI4建议锁定访问仅用于支持legacy设备。

AxLOCK信号编码:

AXI3的AxLOCK信号编码如表:

AXI4取消了对锁定事务的支持,只使用1位信号,AxLOCK信号编码如表:

legacy注意事项:
在AXI4环境中,任何AXI3锁定事务(locked transaction)会按如下规则转换:
•AWLOCK[1:0] = 2’b10被转换为一个普通的写事务,即AWLOCK = 1’b0
•ARLOCK[1:0] = 2’b10被转换为一个普通的读事务,即ARLOCK = 1’b0。
规范建议任何会进行此类转换的组件(通常是interconnect)都包含一种可选的机制,用于检测和标记发生了锁定事务转换。
手册表示:
Any component that cannot operate correctly if this translation is performed cannot be used in an AXI4 environment.
任何执行了此类转换就无法正确工作的组件,都不能在AXI4环境中使用。

参考:
AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite
AXI协议中的模棱两可的含义的解释

AXI 独占访问(Exclusive)和锁定访问(Locked )机制相关推荐

  1. Axi:名词解释、乱序、间插、卷绕、窄带访问、非对齐访问、OST

    信号说明: AWBURST.ARBURST: 指示burst type,有3种burst类型. Fixed:固定地址模式,每次burst传输首地址固定,用于访问FIFO INC:递增递增模式,每次传输 ...

  2. Linux中搭建FTP服务器,匿名用户访问、本地用户访问、虚拟用户访问(详细解答安装配置步骤)

    对于Linux搭建服务器步骤详解:可以基于匿名访问.本地用户访问.虚拟用户访问 FTP服务访问可分为三种 匿名用户:用户名为ftp或者anonymous,提供任意密码或无密码访问即可. 本地用户:要求 ...

  3. 水平越权访问与垂直越权访问漏洞

    目录 前言 越权访问漏洞 水平越权访问漏洞 垂直越权访问漏洞 防范措施 前言 电网机巡智能管控平台是XX省电力巡检智能管控平台,辅助全省无人机巡线作业工作顺利.高效开展.由于今年互联网出现了严重的安全 ...

  4. 项目用druid,长时间不访问应用,再访问又连接不上了数据库了

    问题:据库和应用在同一台机,数据库用mysql5.6.20,已经升级druid到最新的1.0.7版本,访问的是localhost的mysql,放一个晚上不访问,第二天访问就报错了,重启服务正常,错误提 ...

  5. java访问控制符_java中访问控制符的作用

    展开全部 java中访问控制符的作用是说明被声明的内容(类.属性.方法和构造方法)的访问权636f70793231313335323631343130323136353331333337393466限 ...

  6. java 修饰符 访问控制符_Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public classclassName { // body of class } private boo ...

  7. 请求服务器 显示非法访问,访问负载均衡出现访问host非法

    访问负载均衡出现访问host非法 内容精选 换一换 本章节介绍如何使用Jedis访问GaussDB(for Redis)实例.样例代码GaussDB(for Redis)支持与限制的命令,详情请参见支 ...

  8. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  9. linux查看目录访问权限,Linux文件访问权限

    一.设置用户ID和设置组ID 1.实际用户ID和实际组ID标识当前登录的用户. 2.有效用户ID,有效组ID以及附加组ID决定了我们的文件访问权限. 3.通常,有效用户ID等于实际用户ID,有效组ID ...

最新文章

  1. 非常震撼!微软 Win 10X 系统的深度体验
  2. 减少资源消耗方法之一:减少状态图片
  3. ECJTUACM16 Winter vacation training #4 题解源码
  4. 如何让Filddler抓包时忽略某些主机名
  5. java把map值放入vector_Thinking in java基础之集合框架
  6. laravel created_at 时间戳_Laravel 单行为控制器设计的魅力
  7. dispatch_sync
  8. python办公室应用_Python干货:玩转办公室软件(一)PP还能这样玩!
  9. Python 科学计算
  10. SSD固态硬盘4K对齐一键分区
  11. 【Paper】英文文章图表规范和文献引用格式
  12. 13.计蒜客ACM题库.A1147 结果填空:礼物盒
  13. matlab 求矩阵奇异值,MATLAB矩阵特征值和奇异值.
  14. 在python中month函数的用法_Python代码中calendar.monthrange(year,month)函数其什么作用呢?...
  15. Linux上配置nginx访问图片报404解决方案
  16. 网易2019实习生招聘编程题
  17. 跟我20天学Java:01-计算机基础以及JDK、IDEA等安装详解
  18. 我自己对英语学习的心得与体会
  19. 机器学习实战之决策树(一)构造决策树
  20. 数据类型_function_函数概论

热门文章

  1. 100+问说清放大器噪声那些事儿,超实用技巧
  2. 越狱Season 1- Episode 18: Bluff
  3. 中小型企业如何进行网络安全防护?
  4. 微信支付rootca.pem通用根证书文件,亲测可用
  5. HDU.5128 The E-pang Palace
  6. GitHub 上这个「计算机科学」自学指南火了!
  7. ios开发 静音键设置_IOS 静音开关检测
  8. 数风流人物,还看今朝
  9. 如何快速在服务器上搭建隧道ip
  10. 统一配置中心对比介绍