存储器的层次结构

本文详细介绍了多核CPU缓存的层级结构,包括从寄存器到主存的不同访问延迟,并探讨了Intel Mesi缓存一致性协议的工作原理。此外,还讨论了缓存行对齐的重要性及其在JDK中的应用,以及合并写技术和非统一内存访问(UMA和NUMA)的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

多核CPU

Registers< 1ns
L1约 1ns
L2

< 3ns

L3约15ns
主存约 80ns

 

 

 

 

 

 

为什么三层:工业测试的效果最好

缓存行大小:越大,局部性空间效率越大,读取越慢;越小,局部性空间效率越小,读取越快。64字节(intel) 

Intel mesi 缓存一致性协议(又叫缓存锁)

其他   msi  

一致性协议无法保证缓存一致性时 :跨越多个缓存行、无法缓存的数据

使用总线锁的策略

 

实践的指导意义:

缓存行对齐:对于有些特别敏感的数字,会存在线程高竞争的访问,为了保证不发生伪共享,可以使用缓存行对齐的编程方式

JDK7中,很多采用long padding提高效率 如disruptor

JDK8,加入了@Contended注解需要加上:JVM -XX:-RestrictContended 根据机器情况帮助填充

 

扩展概念:

1、合并写技术: Write Combining Buffer

一般是4个字节,由于ALU速度太快,所以在写入L1的同时,写入一个WC Buffer,满了之后,再直接更新到L2

2、UMA 和 NUMA 和 NUMA aware    Non Uniform Memory Access

ZGC - NUMA aware:分配内存会优先分配该线程所在CPU的最近内存

 

 

参考:缓存一致性协议 https://www.cnblogs.com/z00377750/p/9180644.html

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值