RISC-V原子指令(A扩展)

标准原子指令扩展命名为A,包含对原子原子读-修改-写存储器,以支持不同hart之间对同一片内存空间的同步。A扩展提供了两种原子指令,包括load-reserved/store-conditional和fetch-and-op存储指令。两种指令都支持各种存储器的一致性排序,包括无序、获取、释放和顺序一致性。这些指令使得RISC-V可以支持RCsc内存一致性模型。

原子指令指定顺序

基础RISC-V ISA有一个宽松的内存模型,使用FENCE指令来施加额外的顺序约束。地址空间被执行环境划分为存储器域和I/O域,FENCE指令提供了对其中一个或两个访问地址域的访问顺序。
为了对release consistency提供更有效的支持,每个原子指令包含两个bit:aq和rl,用于额外指定内存访问的顺序约束。这些bit会约束特定域(存储器域或I/O域)内的访问顺序,两个域之间的访问无法做顺序约束,只能使用FENCE指令规定跨域访问顺序。

  • 如果aq和rl都为0,则不对原子操作添加额外的顺序约束;
  • 如果只有aq = 1,则原子内存操作被视为acquire access,即在acquire操作之前,同一个hart上不会执行同一个域的内存操作;
  • 如果只有rl = 1,则原子内存操作被视为release access,即同一个域的内存操作只会在release操作之前执行;
  • 如果aq和rl都为1,则原子内存操作是sequentially consistent,即这个hart上的内存操作是顺序执行的。

Load-Reserved/Store-Conditional指令

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值