标签

#Memory-Model

2 篇

低延迟系统开发 专题 约 10 分钟

MESI 缓存一致性

MESI 只执行一条规矩:一条缓存行,要么只有一个核能写,要么有任意多个核只能读,两者不会同时存在。四个状态就是两个问题的答案——别人有没有这一行?我改过没有?协议里的每一笔代价,不是在层与层之间搬数据,就是在等另一个核确认。伪共享、SPSC 队列的缓存游标、读者越多生产者越慢,都是同一台状态机。一致性仍然不保证多字读取不撕裂,也不管不同地址的写谁先谁后,那是内存屏障的事。

低延迟系统开发 #2 约 12 分钟

内存序与缓存行

同一套缓存硬件带出两个不相干的问题。正确性:写先进 store buffer,别的核要过一段时间才看得见,靠 release/acquire 配对补上顺序。性能:就算每个值都读对了,两个核抢同一条缓存行(伪共享)照样慢,靠缓存行布局解决。