首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高速缓存中的MESI协议

高速缓存中的MESI协议
EN

Stack Overflow用户
提问于 2014-07-17 19:26:18
回答 1查看 365关注 0票数 1

我有个关于MESI协议的问题。

(1)考虑在实现MESI缓存一致性协议的单处理器系统上运行的以下代码片段:

I1: load $s1,A I2: load $s2,B I3: add $s1,$s2,$s3 I4: store $s3,C I5: Sub$s3,1,$s4 I6: store $s3,A

假设通过写操作缓存策略。如果内存块A、B和C被加载(如果需要)到单个处理器上的两个不同的缓存块(最初为空),则在每条指令执行后,完成下表以标识包含A、B、C的块的缓存状态。

我对此的回答是:

代码语言:javascript
复制
Step/State                A                   B               C
I1                        E                   I               I
I2                        E                   E               I
I3                        E                   E               I
I4                        I                   I               E
I5                        I                   I               E
I6                        E                   I               I

(2)在以下RTL中

代码语言:javascript
复制
I1: R1 <-[6] 
I2: R2 <-[4] 
I3: R3 <- R1 + R2 
I4: [6]<- R3 
I5: R4 <- R4 - 1 
I6: [4]<- R4 

假设通过写操作缓存策略。如果将内存块4和6加载到单个处理器上的两个不同的缓存块(最初为空)上

我的答案是

代码语言:javascript
复制
Step/state            Block 4                Block 6
Initial                 I                      I
I1                      I                      E
I2                      E                      E
I3                      E                      E
I4                      I                      E(write miss, AOW)
I5                      I                      E
I6                      E(write miss, AOW)     I

我的答案正确吗?先谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-25 16:52:08

第一个问题的答案取决于您的写策略,以及您的层次结构中是否有多个缓存级别。您是使用写分配还是不写分配?而且,假设您拥有的是L2,这是公平的吗?

如果假设没有写分配,那么存储(I4)将在缓存周围写入,而根本不请求行,因此它仍然无效。

如果您假设写分配策略,那么缓存行C将在M状态下被请求(至少在一个缓存级别上,并且肯定在LLC中)。因此,这里的答案将取决于缓存的数量以及写策略。

但I4不应使A或B失效,因此它们都处于独占模式。唯一使它们失效的方法是,如果另一个处理器给它们写信,或者您有冲突。我不清楚您的内存位置A、B和C是如何映射到缓存行的。如果它们是一对一且缓存中没有冲突,则A和B将保持独占模式,如果存在冲突,则需要根据替换策略来决定。

第二个问题的答案也取决于缓存的数量和你的LLC是否是回写的。当I4写入块6时,它已经在缓存中了,这意味着它将同时修改这个缓存和较低级别的缓存,后者将被标记为M(假设较低级别的缓存是写回的)。同时,第4块没有失效。

当I6写入块4时,同样的情况也会发生。该块将被写入此缓存中,也将写入较低级别的缓存中。较低级别的缓存将标记为M(同样,假设较低级别的缓存是写回的)。

如果你澄清所有这些假设,我可以画出正确的(在我看来)的图表。

希望这能有所帮助!

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

https://stackoverflow.com/questions/24811880

复制
相关文章

相似问题

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