JSE-1.1.4 内存屏障和CPU缓存
内存屏障和CPU缓存 【信息】 CPU性能优化手段-缓存 为了提高程序运行的性能 例如:CPU高速缓存。尽可能地避免处理器访问主内存的时间开销,处理器大多会利用缓存以提高性能。 CPU有三级缓存:L1-L3 多级缓存 L1 Cache(一级缓存):CPU第一层高速缓存,分为数据缓存和指令缓存。一般容量在32-4096KB。 L2:由于L1高速缓存容量的限制,为了提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。 L3:现在都是内置的。可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。 一般多核共享一个L3缓存 ! CPU读数据时,读取顺序:L1-L2-L3-内存-外存储器 缓存同步协议 多CPU读取同样的数据进行缓存,进行不同运算之后,最终写入主内存以哪个CPU为准? MESI协议 ,规定每条缓存有一条状态位,4个状态: 修改态(Modified):此cache行已被修改过(脏行),内容已不同于主存,为此cache专有。 专有态(Exclusive):此cache行内存同于主内存,但不出现与其他cache中。 共享态(Shared):此cache行内容同于主内存,但也出现于其他cache中。 无效态(Invalid):此cache行内容无效(空行) 多处理器时