首页 > 其他分享 >AMBA4 AXI - 原子操作的锁定访问 & 独占访问

AMBA4 AXI - 原子操作的锁定访问 & 独占访问

时间:2023-06-12 20:58:34浏览次数:59  
标签:锁定 独占 访问 主机 传输 从机 AMBA4 AXI


1. 锁访问

  • 这篇博客中有介绍原子操作,主要使用LOCK信号,锁住一笔传输,拒绝其它传输的干扰,只有这笔传输完成之后释放Lock信号,才可以进行其它笔传输。
  • 在M0想要发起一笔锁定传输前,需要确保是否还有在进行的传输,必须要确保之前进行的传输都已完成。
  • M0使用AxLOCK发起locked transaction,interconnect通过内部仲裁器确保只有M0能够访问S0,其它主机的访问都会被阻塞掉,直到锁定传输完成。
  • AXI3支持锁定访问,但AXI4已经不支持了。

2. 独占访问

  • AXI4取消锁定访问的原因是新增了独占访问,比锁定访问效率更高,还是使用AxLOCK信号。
  • 锁定访问是不允许其它主机访问正在锁定访问的从机,而独占访问允许访问该从机,只是不允许其它主机访问相同的内存范围(memory range)。
  • 这样既不会出现两个主机对同一块内存空间进行更改,导致数据错误;还可以一定程度保证了总线的最大带宽和总线延迟。
  • 从机内部需要实现一个独占访问的monitor,用于记录独占事务序列的信息确定哪段地址区间被独占访问,以及识别正在执行独占访问的主机ID。
  • RRESP[1:0]和BRESP[1:0]可以表示独占访问的成功或失败。
RRESP/BRESP 响应 含义
00 OKAY 表示独占访问失败/正常访问成功
01 EXOKAY 独占访问成功
  • 独占访问的过程
    • (1)主机对slave的一个地址进行独占读操作,从机monitor记录下该master的ARID以及访问的地址位置。
    • (2)一段时间之后,主机对相同地址进行独占写操作,此时从机monitor同样记录下该操作主机的AWID和要访问的地址位置。
    • (3)将AWID与之前记录的ARID进行比对,如果一致,说明该地址之前并没有被其它主机访问,返回EXOKAY;否则返回OKAY,独占访问失败。
  • 另一个例子
    • 对于在独占写之前有多比独占读,那么monitor所记录下来的ID都将存入一张表内,之后当开始独占写时,查找这张表,如果有ID相同的,则独占写传输成功。
    • 由于该地址的数据已被更改,前面记录的ID会全部被清楚,如果连着独占写,那么一定会失败,返回OKAY。

如有错误,请指正!!

标签:锁定,独占,访问,主机,传输,从机,AMBA4,AXI
From: https://www.cnblogs.com/qianbinbin/p/17476071.html

相关文章

  • 【Ubuntu22.04】安装MySQL数据库,修改root用户密码,实现远程访问,
    预备条件本次实验使用静态IP的地址192.168.1.81作为mysql-001服务器地址,并配置为本地域名mysql-001:打开Powershell(Window自带)使用SSH方式连接服务器,用户名test,密码:123456:安装Mysql:更新软件源aptupdate安装MySQL8.0,因为Ubuntu22.04不支持MySQL5.7sudoaptinst......
  • Codeforces Round #221 (Div. 2)-D. Maximum Submatrix 2
    原题链接D.MaximumSubmatrix2timelimitpertestmemorylimitpertestinputoutputYouaregivenamatrixconsistingofdigitszeroandone,itssizeis n × m.Youare......
  • Educational Codeforces Round 20-C. Maximal GCD
    原题链接C.MaximalGCDtimelimitpertestmemorylimitpertestinputoutputn.Youshouldcreatesuch strictlyincreasing sequenceof k positivenumbers a1, a2, ..., ak,thattheirsumisequalto nGr......
  • Axios 代理跨域后后端无法接收Session问题
    将一个MVC项目重构为一个前后端分离项目,前端使用了react+axios+vite...。在前后端分离项目中,通常都会使用代理来解决跨域问题,vite需要在vite.config.js文件中配置代理:exportdefaultdefineConfig({server:{//代理配置proxy:{//请求前缀......
  • qt6.5.0使用windeployqt发布程序提示Creating qt_ar_qm... Cannot open. : 拒绝访问
    报错内容如下图这是一个软件bug,qt社区的解决办法是,使用新版本6.5.1或6.6.0 ......
  • url中包含特殊字符,访问400处理
    原因是一个完整的请求地址包含http(s)://xxxx/xxx/xxxurl里面包含tomcat鬼定字符以外的字符,他们不被认可为合理的url参数,必须满足RFC3986规范/***解决servlet字符串乱码**@returnConfigurableServletWebServerFactory*/@Bean@......
  • Dynamics 365 访问团队模板配置
    1、 访问团队模板实体启用访问团队功能  设置>安全性>访问团队模板 在实体窗体中添加子网格 在该实体中添加用户就可以访问 也可以通过代码创建访问用户  ......
  • 在Istio中,到底怎么获取 Envoy 访问日志?
    Envoy访问日志记录了通过Envoy进行请求/响应交互的相关记录,可以方便地了解具体通信过程和调试定位问题。环境准备部署httpbin服务:kubectlapply-fsamples/httpbin/httpbin.yaml部署sleep服务:kubectlapply-fsamples/sleep/sleep.yamlhttpbin服务作为接收请......
  • AMBA4 AXI 多主机多传输
    参考https://zhuanlan.zhihu.com/p/1491123121.多主机AXI架构单个主机的特性描述见这篇博客.2.不同主机间的事务独立如何实现多主机间事务独立(1)各主机保证自己的ID与其它主机不同。协议并没有在主机之间设立消息共享机制,也就是各个主机都不知道其它主机使......
  • 访问利用windows IIS 搭建的webdav出现500、403等代码的解决方案
    服务端在IIS中启用webDav添加创作规则(如第1张图)启用「身份验证」(如第2、3张图)防火墙设置将「在IIS中对该webDav站点设置的端口」设为「例外」或直接关闭防火墙重启该IIS站点(可选)客户端下载地址(选一即可):Windows64位https://www.123pan.com/s/FfztVv-DxNn3.html......