1.什么是CPU多级缓存模型?

简介: 1.什么是CPU多级缓存模型?

小陈:老王,最近学习并发不知如何入手,看的知识很零散;没多久又记不住了,你有啥好建议吗?

老王:来我这,我给你整理一下并发的知识和学习路线,能形成一个比较全面的知识图谱。聊起JAVA并发,还是需要把最基础的概念和知识梳理清楚,然后才能进入后面的深入的学习。

老王:我们先从CPU的多级缓存架构讲起,下面我画个图说一下CPU多级缓存架构:

image.png

计算机为什么要设计高速缓存架构?

小陈:CPU和主内存之间为啥要有个高速缓存,CPU直接读写内存不可以吗?

老王:给你分析下原因就知道了:

CPU与主存运行速度的差异

CPU是计算机的大脑,是负责执行指令的;自身的频率和指令执行的速度非常快,一秒执行的指令大概10^9级别的;内存的的速度要比CPU慢上好几个级别,每秒处理的速度大概是10^6的级别的。

CPU长时间空闲

这样就会导致一个问题;如果CPU要频繁的访问主存的话,每次都需要等待很长的时间,执行性能就会低,大部分时间都在等待主存返回数据,没有发挥出CPU的性能

image.png

引入高速缓存,减少CPU等待时间,提升运行效率:

image.png

多核CPU的多级缓存架构是怎么样的?

小陈:CPU和主存之间引入高速缓存的目的我知道了,就是为了减少CPU的等待时间,提高执行效率嘛,那多核CPU的多级缓存架构是怎样的?

老王:再给你画一张图,你就知道多核CPU的多级缓存架构是怎样的了:

image.png

如上图所示,现代计算机一般都是多核CPU的,其中每个CPU都有自己的高速缓存,其中主内存是共用的。读取数据的时候先从主内存读取到自己的高速缓存中,CPU需要数据时先从自己的高速缓存中查找,找不到再去主内存中拉取,同时刷入自己的高速缓存中。

多核CPU的多级缓存架构带来的缓存数据一致性问题

小陈:看了多核CPU的多级缓存架构图,这样相当于每个CPU都有自己的缓存吗?这样不会导致各个CPU的缓存之间数据不一致的问题吗?

老王:嘿嘿,看来小陈你挺聪明的,这个问题确实是存在的,下面来给你分析下这个问题产生的原因:

image.png

如上图所示:在多线程并发操作的时候,由于CPU多级缓存的存在,有可能你修改了值,但是别的CPU的高速缓存还是旧值,CPU计算的时候使用了旧值计算,导致数据有问题。


相关文章
|
3月前
|
缓存 Java 应用服务中间件
面试官:如何实现多级缓存?
面试官:如何实现多级缓存?
185 1
|
2天前
|
存储 缓存
CPU缓存简介
CPU缓存简介
7 1
|
6天前
|
缓存 NoSQL Java
Springboot 多级缓存设计与实现
Springboot 多级缓存设计与实现
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
不止于大模型 英特尔CPU引领智算新高度
ChatGPT的横空出世拉开了AI大模型的新时代,而近期的文生视频模型SORA又让业界为之激动不已。据了解,Sora所需token(文本处理最小单位)数量相较于文本及图片模型的推理呈数量级增长。经中信证券简单估算,对于一个60帧的视频(约6至8秒),Sora要生成至少约120万个token,这是相当大的计算量。
|
2月前
|
缓存 应用服务中间件 数据库
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(多级缓存设计分析)
37 1
|
6月前
|
存储 缓存 数据库
CodeFuse开源ModelCache大模型语义缓存
CodeFuse 开源火热进行中!本次开源的是 ModelCache 大模型语义缓存,可大幅降低大模型应用的推理成本,提升用户体验。 CodeFuse-ModelCache 项目地址: https://github.com/codefuse-ai/CodeFuse-ModelCache
223 0
|
2月前
|
存储 缓存 算法
说说什么是本地缓存、分布式缓存以及多级缓存,它们各自的优缺点?
说说什么是本地缓存、分布式缓存以及多级缓存,它们各自的优缺点?
|
3月前
|
存储 缓存 Linux
CPU高速缓存架构
CPU高速缓存架构
|
6月前
|
存储 缓存 编译器
从CPU缓存结构到原子操作-2
从CPU缓存结构到原子操作
101 0
|
2月前
|
缓存 NoSQL 安全
【Redis】缓存穿透
【Redis】缓存穿透
30 0