首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS同步(ll/sc)

MIPS同步(ll/sc)
EN

Stack Overflow用户
提问于 2012-02-12 00:28:32
回答 1查看 6.1K关注 0票数 3

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

例如。

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

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

MEMORY ==> $s0 = 99

如果我们执行这些语句:

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-12 23:40:46

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9241832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档