在AXI3中,AxLOCK信号指定了正常、独占和锁定访问。表格A7-1显示了AXI3中AxLOCK信号的编码。
AxLOCK[1:0] | 访问类型 |
---|---|
00 | 正常访问 |
01 | 独占访问 |
10 | 锁定访问 |
11 | 保留 |
AXI4去除了对锁定事务的支持,并仅使用一个1位的锁定信号。表格A7-2显示了AXI4中AxLOCK信号的编码。
AxLOCK | 访问类型 |
---|---|
0 | 正常访问 |
1 | 独占访问 |
向后兼容性考虑
在AXI4环境中,任何AXI3锁定事务都按以下方式转换:
- AWLOCK[1:0] = 10 是转换为正常写事务,AWLOCK = 00。
- ARLOCK[1:0] = 10 是转换为正常读事务,ARLOCK = 00。
本规范建议,任何执行此类转换的组件,通常是互连,有一个可选的机制来检测和标记此类转换已经发生。
如果任何组件如果执行了这种转换却不能在AXI4环境中使用,那么组件就不能正常工作。
注意
对于许多使用锁定事务的旧版案例,例如执行SWP指令,可能需要软件更改以防止使用任何强制执行锁定事务的指令。