欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Exclusive monitor在spinlock中的应用

发布时间:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Exclusive monitor在spinlock中的应用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

👉👉👉 个人博客笔记导读目录(全部) 👈👈👈
.
说明:
在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 5.14

目录

        • 1、Exclusive monitor概念
        • 2、独占访问在spinlock中的应用

1、Exclusive monitor概念

ARMv6 架构时引入了对内存位置进行独占访问的概念,提供了更灵活的原子内存更新。对应的独占访问的指令是:LDREX 和STREX. 而在armv8架构中,这两个指令变成了LDXR和STXR

独占监视器是一个简单的状态机,具有open和exclusive的两种状态。 为了支持处理器之间的同步,系统必须实现两组监视器,local和global。 Load-Exclusive 操作将监视器更新为exclusive状态。 Store-Exclusive 操作访问监视器以确定它是否可以成功完成。 只有当所有访问的独占监视器都处于独占状态时,Store-Exclusive 才能成功。

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

STXR Ws, Wt, [base{,#0}]
(1)、将Wt中的数据写入到base地址处,如果成功Ws返回0,否则返回1;
(1)、将Monitore从exclusive状态切换成open, 如果切换成功,则说明写入成功,Ws返回0; 如果切换失败,则数据不会写入到内存,Ws返回1

注意事项:

  • 以上独占机制只适用normal memory,如果是device memory则不会启用exclusive访问机制。
  • 如果是配置成shareable的memory,则会启用global monitor,如果配置成的是non-shareable memory,则只有local monitor生效

2、独占访问在spinlock中的应用

总结

以上是生活随笔为你收集整理的Exclusive monitor在spinlock中的应用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。