gpt4 book ai didi

synchronization - MIPS 同步 (ll/sc)

转载 作者:行者123 更新时间:2023-12-02 02:18:50 24 4
gpt4 key购买 nike

我想知道如果在使用 ll/sc 时在执行 sc 语句之前处理器发生变化会产生什么结果。

例如

CPU 1 ==> $t1 = 1, $t0 = 2

CPU 2 ==> $t1 = 30, $t0 = 40

内存 ==> $s0 = 99

如果我们执行这些语句:

ll $t1, 0($s0)    # CPU 1
ll $t1, 0($s0) # CPU 2
addi $t1, $t1, 1 # CPU 2
sc $t1, 0($s0) # CPU 2 ($t1 = 1, $s0 = 100)
sc $t0, 0($s0) # CPU 1

我知道执行后(如果我错了请纠正我):

CPU 2 ==> $t1 = 1, $t0 = 40

CPU 1 ==> $t1 = 99

我不知道在最后一个 CPU 1 命令之后 $s0 和 $t0 会发生什么。 $s0 = 2 吗??

最佳答案

好吧...我自己找到了解决方案...由于 ll 语句在 CPU1 上首次执行时 CPU 发生了变化,并且 CPU2 正在修改相同的内存区域,因此第 5 行中的 sc(最后线)会失败。因此,当 sc 失败时 $t0 = 0 & 因为最后一行的 sc 失败导致内存未被修改,所以 $s0 = 100

来源:http://www.weblearn.hs-bremen.de/risse/RST/docs/MIPS/mips-isa.pdf

读取加载链接 (LL) 和存储条件 (SC) 提取。

关于synchronization - MIPS 同步 (ll/sc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com