XiangShan
XiangShan copied to clipboard
Is a Store Operation permitted between lr and sc?
Is your feature request related to a problem? Please describe. 香山南湖dcache对应地址块在接受到lr指令后,对该地址进行store操作,再进行sc指令操作会匹配成功,不会返回错误。 疑问:1 单核的lr指令过后,store指令只在storebuffer上操作 ,无法立即写入 dcache,此原子操作功能是否有问题? 2 即使store指令能在lr锁定时间进入dcache,但目前没有看到内部代码对这进入的store指令检测的功能? 3 对于双核的原子指令操作:两个内核之间没有对这原子操作进行通信的功能,这样双核的原子操作功能需要怎样进行实现?
[TRANSLATION] Dcache of Nanhu will not throw an error when executing [lr - store - sc] operations on the same address.
Questions:
- After a single-core lr instruction, store instruction only operates on store buffer and cannot immediately write to dcache. Is there an issue with the atomic operation functionality?
- Even if the store instruction can enter the dcache during the lr lock time, there is currently no code for detecting this entering store instruction.
- Regarding atomic instruction operations for dual cores: There is no communication between the two cores for these atomic operations. How should the atomic operation functionality for dual cores be implemented?
1.2. RISC-V 手册没有规定同一 hart 内 program order 在 LR 之后的 store 对 SC 指令执行结果的影响。 3. 目前香山的原子操作靠某个核的数据缓存独占缓存行来实现。uncache 原子操作在南湖中尚不被支持。
[TRANSLATION] 1.2. The RISC-V manual does not specify the impact of [program-ordered stores after an LR instruction] on the execution result of an SC instruction within the same hart. 3. Currently, atomic operations in Xiangshan rely on a core's data cache exclusivity. Uncached atomic operations are not yet supported in Nanhu.
1.2. RISC-V 手册没有规定同一 hart 内 program order 在 LR 之后的 store 对 SC 指令执行结果的影响。 3. 目前香山的原子操作靠某个核的数据缓存独占缓存行来实现。uncache 原子操作在南湖中尚不被支持。 好的谢谢。 针对第三个问题,cache地址空间的原子操作是在dcache内部进行实现,那如果多核的原子操作,核1对该地址块进行原子操作,该原子操作信息通过什么方式进行共享至其他核,来实现其多核的原子操作? 还是说,在核1进行原子操作的时候,其他核不会执行原子操作?