存储
![](https://img.haomeiwen.com/i24162719/fb4a698fa0679ce4.png)
![](https://img.haomeiwen.com/i24162719/622e8338b165b96a.png)
例如:一块 4 核的 CPU
- 这块 CPU 每个核有 32KB,一共 128KB 的 L1 指令 Cache。还有 32KB,一共 128KB 的 L1 数据 Cache。
- 每个核有 256KB,一共 1MB 的 L2 Cache。
- 一块多个核心共用的 12MB 的 L3 Cache。
- 8GB 的内存一块
- 128G 的 SSD 硬盘一块
- 1T 的 HDD 硬盘
在一台实际的计算机里面,越是速度快的设备,容量就越小。
缓存一致性问题
![](https://img.haomeiwen.com/i24162719/25a5e5ad369ef7fb.png)
![](https://img.haomeiwen.com/i24162719/81cc6741ee2b8a98.png)
如果1 号CPU核心更新的数据仅更新到自己的l1级别缓存,而没有更新到内存,l2号CPU核心无法获取到最新的数据。
总线嗅探
把所有的读写请求都通过总线广播给所有的 CPU 核心,然后让各个核心去“嗅探”这些请求,再根据本地的情况进行响应。
MESI 协议
是一种叫作写失效的协议。在写失效协议里,只有一个 CPU 核心负责写入数据,其他的核心,只是同步读取到这个写入。在这个 CPU 核心写入 Cache 之后,它会去广播一个“失效”请求告诉所有其他的 CPU 核心。其他的 CPU 核心,只是去判断自己是否把这个也标记成失效的就好了。
网友评论