当前位置: 首页 > news >正文

总线的atmotic与lock/exclusive

在互联总线里,“原子操作”与 “AxLOCK” ,exclusive不是并列概念,而是“同一机制的不同实现方式”。

1.atmotic原子操作

原子操作指的是不可被中断的、最小的操作单元—— 它要么完整执行完毕,要么完全不执行,不存在 “执行了一半” 的中间状态。

对于总线来说,基本的原子操作有原子读,原子写,原子读改写。

原子读:主要就是多transfer读中间不能被其他写打断或者更新。

-------比如读地址0~3,同时有写2~3发生,导致读0,1是旧值,2~3是新值。这就导致一个读被割裂了

原子写:主要是多transfer写过程中不要被其他读写操作打断。

-------如果在原子写过程中,出现有相同目标地址的读,只能全部读没写之前的状态,或等全部写完之后读。具体取决于原子写的内存模型和硬件 / 语言的同步语义

-------如果在原子写过程中,出现有相同目标地址的写,这个写只能在原子写之前或之后。不会出现原子写0~3 abcd,其他写0~3 efgh,最终结果0~3为abgh,efcd这种交叉的情况

-------最终结果只能是abcd或者efgh。多线程环境下,两个原子写的执行顺序是不确定的(由 CPU 调度器决定),如果没有额外的同步机制(比如锁、内存屏障),无法预测最终结果。

-------也可以对两个原子写中先被仲裁的返回resp_ok,没被仲裁的返回resp_err

原子读改写:先读数据,在修改全部或者部分数据在写入原地址。在这个写完成之前不能有其他的操作修改内存。改数据可以在存储的远端也可以在存储的近端。如果是近端,读出来的数据就无需传到远端,节省带宽,减少延迟,但通常需要请求的时候把部分操作数传到近端

-------在axi5增加了原子操作的专用信号AWATOP,直接定义ADD/SWAP/CLR/SET/EOR等操作。在此之前是没有专门的原子操作信号,但是可以利用axuser来传递这些信息。

2.axlock和exclusive

axi3及之前版本有2bit axlock:

00:normal

01:exclusive

10:locked

axi4及之后版本放弃了locked,只需1bit axlock

0:normal

1:exclusive

Locked

锁住目标地址别的请求完全不能访问该 目标地址,直到解锁

可以是单独的locked read或write,如果不能返回失败

如获得lock,需要最后一笔trans以unlock解锁

(阻塞访问该地址)AXI3 遗留现代设计已废弃
Exclusive

不锁总线仅对目标地址设 monitor
后续写用BRESP=EXOKAY/OKAY告知“是否被别的主机踩过”

包含先Exclusive read+后Exclusive write两部分,其中一步失败,就认为Exclusive失败

(仅冲突时重试)AXI4/5 推荐实现 spinlock、CAS、LL/SC

显然Locked可以实现atmoic的读/写/读改写;Exclusive可以实现atmotic的读改写。

http://www.jsqmd.com/news/101957/

相关文章:

  • 投影机选型核心技术解析:4大参数原理+实操选型指南
  • vue基于Springboot框架的在线导游预约系统
  • vue基于Springboot框架的在线教育课程购买作业平台的设计与实现
  • 为什么很少有大单元的游戏耳机?
  • vue基于Springboot框架的性格测试系统
  • 基于微信小程序的宠物领养系统的设计与实现论文
  • vue基于Springboot框架网上电子书店商城好书推荐管理系统 论坛
  • 工厂级绣花生产适配:威尔克姆 Wilcom9.0 精准还原设计软件下载安装教程
  • vue基于人脸识别基于spring boot的网络考试系统的设计与实现
  • 《Etsy 最狠的地方,不是封号,而是先让你注册成功》
  • 基于SpringBoot的演唱会售票系统设计与实现论文
  • 生产模型的分类、似然函数、最大似然函数与生成模型的关系
  • AI大模型正在“变笨”:一场看不见的认知退化危机
  • 【AI OCR加速新突破】:Dify + Tesseract 实现每秒百页文档识别的秘密
  • IoTDB详解
  • 【资深架构师亲授】:Dify+Agent文档生成的7大核心模式
  • 基于springboot的高校二手物品交易平台的设计与实现论文
  • 计算机毕业设计springboot健身房管理系统 基于Spring Boot的健身房信息化管理平台设计与实现 Spring Boot框架下的健身房综合管理系统开发
  • 基于SpringBoot的校园二手书交易平台的设计与实现
  • 基于Java的家政服务预约管理系统的设计与开发论文
  • 计算机毕业设计springboot基于web的动漫综合社区的设计与实现基于Spring Boot框架的Web动漫社区平台开发与实践 Web环境下Spring Boot驱动的动漫综合社区系统设计
  • Linux 环境下 SQL Server 自动收缩日志作业创建脚本(Shell 版)
  • 【Java毕设全套源码+文档】基于java的在线作业管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • RPA实战|亚马逊账号申诉自动化!3分钟搞定申诉材料,成功率提升300%[特殊字符]
  • RPA实战|亚马逊库存预警自动化!3分钟生成智能报告,缺货风险降为0[特殊字符]
  • 1 篇吃透!从静态到动态:MySQL锁等待排查的performance_schema终极实战
  • Dify 1.7.0音频时长受限?立即应用这6种实战解决方案
  • 【Java毕设全套源码+文档】基于Java的在线考试系统设计与实现(丰富项目+远程调试+讲解+定制)
  • DVWA漏洞靶场实战项目
  • 场地扫地车是什么?主要有哪几种类型及其特点?