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

ARMv8/ARMv9的Exclusive机制深度解读

说明:本文虽然以spinlock函数为例,但并不会深度解读spinlock函数。本文重点解读exclusive机制。

基础知识

  • 每一个core都有一个Internal exclusive monitor,它有open和exclusive两个状态,管理着:Load-Exclusive accesses 、Store-Exclusive accesses、Clear-Exclusive(CLREX) instructions

  • Load-Exclusive instruction和Store-Exclusive instruction是LDX, LDAX, STX, STLX

  • 可以使用这些指令去构造semaphores、spinlock,以确保在同一个core之间的不同线程的同步操作。在不同的core之间也是可以使用同一个的coherent memory locations来确保同步。

  • Load-Exclusive instruction标记一个block用于独占访问的内存, CTR_EL0定义了这个block的大小。

LDXR Wt, [base{,#0}]
(1)、从base地址处读取一个数字,存放到Wt寄存器中;
(2)、将Monitor的状态变成exclusive

STXR Ws, Wt, [base{,#0}]
(1)、将Wt中的数据写入到base地址处,如果成功Ws返回0,否则返回1;
(2)、将Monitor从exclusive状态切换成open, 如果切换成功&#x

相关文章:

  • 机器学习——梯度下降算法
  • 64.【网络编程】
  • Python爬虫-网页认识
  • 面试官:深度不够,建议回去深挖
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • 接口测试用例生成工具介绍及应用
  • C#接入 NPOI
  • 面试百问:项目上线后才发现bug怎么办?
  • SpringBoot+Vue实现前后端分离网上药店平台
  • Simulink 自动代码生成电机控制:基于Keil软件集成
  • LQ0103 子串分值【字符串】
  • 数据库实战经验分享(全量表,增量表,拉链表,流水表,快照表)
  • 【node.js从入门到精通】使用express创建web服务器,路由,进行中间件的创建链接路由及其他中间件
  • [附源码]Java计算机毕业设计SSM电力公司员工安全培训系统
  • stm32f4xx-ADC
  • @jsonView过滤属性
  • 「译」Node.js Streams 基础
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angularjs之国际化
  • AngularJS指令开发(1)——参数详解
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Django 博客开发教程 8 - 博客文章详情页
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • input的行数自动增减
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript设计模式与开发实践系列之策略模式
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Spring Boot MyBatis配置多种数据库
  • SSH 免密登录
  • ucore操作系统实验笔记 - 重新理解中断
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 测试如何在敏捷团队中工作?
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 关于for循环的简单归纳
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 开源地图数据可视化库——mapnik
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我与Jetbrains的这些年
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 2017年360最后一道编程题
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###项目技术发展史
  • #NOIP 2014#Day.2 T3 解方程
  • (5)STL算法之复制
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (三十五)大数据实战——Superset可视化平台搭建
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)认识微服务
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .“空心村”成因分析及解决对策122344
  • .bat文件调用java类的main方法
  • .NET Core 项目指定SDK版本