美文网首页
关于CPU Cache的几个重要数据

关于CPU Cache的几个重要数据

作者: 谭英智 | 来源:发表于2023-12-31 16:37 被阅读0次

CPU Cache有L1/L2/L3 cache,它们是为了减缓CPU高速与Ram低速之间的数据运输成本的buffer

speed

L1: 4 CPU cycles
L2: 11 CPU cycles
L3: 39 CPU cycles
RAM: 107 CPU cycles

可见,越靠近CPU的cache,越快

size

L1: 64KB(数据32KB,指令32KB)
L2: 256KB
L3: 2MB

从size的数据可见,如果CPU访问RAM的热点 buf能够在L1全部装下,而且是乱序或者顺序访问,那么访问的数据都是L1的速度,以此类推L2,L3
例如L1 cache 32KB,一个整数4B,那么L1 cache可以容纳32KB/4B = 8192个整数

cache line size

CPU在加载内存时,是以cache line为单位的,而不是一个B一个B的加载,这样是为了更高的效率,当内存是临近访问时,这种设计变得尤为高效
cache line size是64B或者128B,当多线程访问时,这个size变得异常重要,如果两个线程共享了同一个cache line,会导致性能的下降

cache associativity

cache line与ram的地址关联是以hash来维护的
通过mod和N-way冲突来维护hash
例如L1 cache,把cache分成8-way,
L1 cache 32KB/64B = 512 cache line
1-way 512/8 = 64 cache line = 64*64B = 4096 B

RAM -> cache : addr %8 => 线性探索 64个格子 => 写入cache line

理解了hash结构,就可以在思考两个RAM地址是否会发生hash冲突了
如果在两个数据结构时,为了避免它们都放在1-way中,那么可以在它们的地址上做文章,利用hash函数的设计,让它们哈希到不通的way
例如一个ptr取余8是1,那么另外一个ptr可以设计为取余8是2

相关文章

  • CPU 是如何执行任务的?

    你清楚下面这几个问题吗?有了内存,为什么还需要 CPU Cache?CPU 是怎么读写数据的?如何让 CPU 能读...

  • CPU Cache相关

    名词解释 cache snooping - CPU修改cache中的数据,需要通知其他CPU。这种行为被叫做cac...

  • 备考预习笔记(层次化存储结构)

    Cache 概念 Cache 的功能:提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储系统间数据传送...

  • 拿什么拯救你的性能(1) - Spring Boot 中使用ca

    一、什么是缓存 Cache Cache 一词最早来自于CPU设计当CPU要读取一个数据时,首先从CPU缓存中查找,...

  • 深拷贝与浅拷贝

    CPU缓存 (Cache Memory) CPU缓存中存放了CPU短时间内需要访问的数据,从而加快运算速度.CPU...

  • 缓存 & redis

    cache vs buffer cache 缓存。经常使用的东西放在离自己更近的地方,比如cpu将最近使用的数据放...

  • 02章 并发基础

    CPU多级缓存 - 缓存一致性 用于保证多个CPU cache之间缓存共享数据的一致 CPU多级缓存 - 乱序执行...

  • JMM与happen-before规则

    1、CPU Cache模型 高速缓存区:CPU处理数据(读写)非常快,内存跟不上CPU的速度,所以提供了一层缓冲,...

  • CPU缓存一致性

    CPU Cache 通常分为三级缓存:L1 Cache、L2 Cache、L3 Cache,级别越低的离 CPU ...

  • 硬件和操作系统

    缓存一致性协议 多核CPU的Cache中,某些数据Cache后,数据在“写入”和“读取”的时候必须满足一些规范,通...

网友评论

      本文标题:关于CPU Cache的几个重要数据

      本文链接:https://www.haomeiwen.com/subject/lldyndtx.html