msi mesi moesi cpu缓存一致性

想想计算机代码都在干啥,等待事件,处理事件

所以遍历事件,check,handle

所以for(i++){if(eventsi){handlei}}

所以cache就诞生了。这个i 代表了时间局部性,它老是会访问一个地址。然后events\[\]是空间局部性,代码通常会访问相邻的地址。万恶的链表就没这福利。

cache按行为单位从内存捞出数据保存下来,供cpu享用。这里又扯到了存储金字塔。

大多数情况他们都跑的好好的,但是想想两个线程共享一个变量,他两跑在两个cpu上。

现在就需要引入什么机制来保证所有u上的数据都是一致的。

所有的不一致都是由于有人想做出变化,想写。

msi

Modified Shared Invalid

大家最开始都是 s,然后咱u写了就便m了,然后通知其他u变成i。其他u就不能用这一行了。

mesi

多了一个 Exclusive

如果这一行只有咱有,则不是s而是e,这样咱想改就直接e变m,不需要通知其他u改i了。大多数的数据他是不在多个u共享的,咱系统这么多进程,大多相互也八竿子打不着,然后多线程,也不能全是共享变量不是?

moesi

多了一个owner。

一般情况下,A改了行变成m后,其他B想用这行,必须A写回ddr,B再去ddr里面load。这一来一回时间就长了。然后现在,B想用这行,A直接m变o,然后把这行发个B,B是s。节省了这一来一回的时间。当然最后在某个trigger还是会写回ddr来个大同步。主要cover微改的case。

当然,有这些协议有专门的状态机转移图,细节比这复杂的多了。

相关推荐
code2cat17 分钟前
【随笔】RAG语义缓存:问题很相似,答案就能直接复用吗
java·缓存·知识库·rag
小静AI工程实验室1 小时前
AI 应用缓存键怎么设计?租户、模型、提示词与索引版本的 7 项离线验证
缓存
北京地铁1号线1 小时前
后端开发:缓存(Cache)简介
后端·缓存·cache
李纲明2 小时前
WordPress 结账页一直转圈不跳支付:AJAX、缓存排除、支付回调和 REST 怎么逐层核
运维·ajax·缓存·wordpress·woocommerce·devdiy·结账
程序猿编码20 小时前
纯 C++ 手写 LLM 推理引擎:分页 KV 缓存、连续批、多卡张量并行全部内置
c++·深度学习·缓存·大模型推理·自动微分·模型推理
code2cat20 小时前
【随笔】RAG检索缓存:复用证据之前,先把权限和版本放进缓存键
java·人工智能·缓存·知识库·rag
牧瀬クリスだ1 天前
Redis五大数据类型全解析:从入门到实战
java·数据库·redis·后端·缓存
讯捷蓝达1 天前
HPE Nimble CS3000存储,断电恢复后,双控缓存异常,存储卷无法正常启动
缓存
Lucis__1 天前
Redis持久化机制解析
redis·缓存·操作系统·文件·非关系型数据库·1024程序员节
李纲明2 天前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie