在多线程并发场景下,一般的累加很可能错的
CPU多级缓存
- Main Memory : 主存
- Cache : 高速缓存,数据的读取存储都通过此通知缓存
- CPU Core : CPU外围
- Bus : 系统总线
CPU Core和Cache通过快速通道连贯,Main menory和Cache都挂载到Bus上通信,Bus还用于其它组件的通信,在Cache呈现后,零碎变得越来越简单,Cache和Main memory的速度差别越来越大,直到退出另一级Cache,新退出的Cache比第一级Cache要大,然而速度更慢,因为加大一级Cache从经济上不划算,所以呈现了二级Cache,三级Cache.
为什么要应用CPU CACHE
CPU的频率太快了,快到主存跟不上,在CPU时钟周期内,CPU须要期待主存,浪费资源,这样CPU会花很长时间期待数据或把数据写入主存。所以Cache呈现的意义是匹配Main menory(主存)和CPU速度不匹配的问题。
CPU > CACHE > Main Memory
CPU CACHE的意义
缓存的容量要远远小于Main Memory(主存),因而呈现缓存不命中的状况在劫难逃。
CACHE意义
1.工夫局部性:如果一个数据被拜访,那么在不久的未来很可能再次被拜访。
2.空间局部性:如果一个数据被拜访,那么它相邻的数据很可能被再次拜访。
缓存的工作原理:当CPU读取一个数据时,先从Cache(缓存)中查找,如果查到了,就间接送给CPU解决,反之就会去速度慢的Main Memory(主存)去读取,并把该数据写入到Cache(缓存),下次CPU再次读取该数据时,间接去Cache取。Cache(缓存)的命中率很高(90%),也就是说CPU下一次读取数据90%都在缓存,只有10%的数据须要去Main Memory(主存)中读取。