OpenXiangShan/HuanCun

请教有关多核原子操作的问题

Closed this issue · 1 comments

在双核中L3cache是共享的,原子指令在dcache中处理,以双核为例,当core0使用lr对某一地址进行标记后,若在sc指令之前,core1对同一地址进行store类操作,core0的sc应该失败,那在共享的L3cache中是怎么实现原子指令标志相关信息的共享的呢?谢谢!

当 core1 对同一地址进行 store 操作的时候,会需要获取 cacheline 的 Tip 权限,从而由 L3 负责转发给 core 0 一个 probe 请求。当 core 0 发现收到了 lr 标记地址的 probe 请求的时候,就会认为 sc 失效