baron · 1月17日

Exclusive monitor在spinlock中的应用

目录

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 才能成功。

image

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中的应用

image

添加威♥:sami01_2023,回复ARM中文,领取ARM中文手册

推荐阅读
关注数
9499
文章数
277
vx: coding_the_world
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息