CPU多级缓存
- L1 Cache 是CPU第一级缓存,分为数据缓存和指令缓存.以帮服务器CPU的L1缓存的容量通常在21-4906KB.
- L2 Cache 由于L1级高速缓存容量限制,为了再次提高CPU的运算速度在CPU外部放置已高速存储器,即二级缓存。
- L3 Cache 现在都是内置的,而他可以进一步降低内存延迟,同时提高大数据量计算的处理器性能(其作用是进一步降低内存的延迟,同时提升海量数据量计算时的性能)。具有加大L3缓存的处理器提供更有效的文件系统缓存行为,即较短消息队列长度。一般是多核共享一个L3级缓存。
CPU读取数据顺序: L1–>L2–>L3–>内存–>外部存储器
缓存同步协议(MESI协议)
MESI协议它规定每条缓存都有个状态为,同时定义了下面的四个状态
-
**修改态(modified)**该条数据是在CPU的缓存中,并且是被修改过的,与主内存里面的数据不一致,这条数据是要在某个的时间点回写到主内存当中,这个时间点是允许其他CPU读取主内相应的内存之前,当值被回写到主内存后缓存状态被修改为E.
-
**专有态(Exclusive)**该条数据是没有被修改过的,内容同于主内存,但不出现在其他Cache中,这条数据可以在任何时刻,其他CPU读取后状态修改为S,当CPU修改内容后状态就会变为M.
-
**共享态(shared)**这条数据内容同于主内存当也出现在其他CPU中(也就是可以被多个CPU进行缓存),当有一个CPU修改缓存时,其他CPU从该缓存行是可以被作废的,状态就会变为I.
-
**无效态(invalid)**这个缓存是无效的,