深入理解ache工作原理小林野夫

本文主要内容如下,基本涉及了Cache的概念,工作原理,以及保持一致性的入门内容。

CPU缓存(Cache Memory)也就高速缓冲存储器是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。CPU高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可先缓存中调用,从而加快读取速度。

当CPU需要读取数据并进行计算时,首先需要将CPU缓存中查到所需的数据,并在最短的时间下交付给CPU。如果没有查到所需的数据,CPU就会提出“要求”经过缓存从内存中读取,再原路返回至CPU进行计算。而同时,把这个数据所在的数据也调入缓存,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

缓存大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是从CPU芯片面积和成本的因素来考虑,缓存都很小。

我们首先从一张图来开始讲为什么需要 Cache.

根据摩尔定律,CPU 的访问速度每 18 个月就会翻倍,相当于每年增长 60% 左右,内存的速度当然也会不断增长,但是增长的速度远小于 CPU,平均每年只增长 7% 左右。于是,CPU 与内存的访问性能的差距不断拉大。

上图是 CPU 性能和 Memory 存储器访问性能的发展。

我们可以看到,随着工艺和设计的演进,CPU 计算性能其实发生了翻天覆地的变化,但是DRAM存储性能的发展没有那么快。

所以造成了一个问题,存储限制了计算的发展。

容量与速度不可兼得。

如何解决这个问题呢?可以从计算访问数据的规律入手。

我们随便贴段代码:

可以看到,由于大量循环的存在,我们访问的数据其实在内存中的位置是相近的。

主要是利用到大部分的程序,在处理数据时,都有一定程度的区域性。

换句专业点的话说,我们访问的数据有局部性。

大部分的程序,在处理数据时,都有一定程度的区域性。所以,我们可以用一小块快速的内存,来暂存目前需要的数据。

4、因为成为问题所以缓存比较小,1mb内存成本是0.01美元。1mb缓存成本是7美元

大家都知道现在CPU的多核技术,都会有几级缓存,现在的CPU会有三级内存(L1,L2, L3),如下图所示:

CPU一级缓存、二级缓存、三级缓存是什么意思?

一级缓存(L1 Cache)

在L1缓存中,又有一个叫做Cache line的东西。为了提升处理速度,CPU每次处理都是读取一个Cache line大小的数据。

二级缓存(L2 Cache)

三级缓存(L3 Cache)

///////题外话1 开始///////////////////////////////////////

题外话:如何查看个人电脑cpu缓存?答案 查看任务管理器

下图我本人的cpu缓存     L1:384K=6核*  64K/核。64K=32K 数据缓存+32K 指令缓存

L2:1.5MB=256K/核*/6核

L3:9MB是共享的。

///////题外话1 结束///////////////////////////////////////

其中:

再往后面就是内存,内存的后面就是硬盘。我们来看一些他们的速度

这边4个cpu周期,中时许电路中Latency (延迟)。

我们可以看到,L1的速度是RAM的27倍,L1和L2的存取大小基本上是KB级的,L3则是MB级别的。例如,Intel Core i7-8700K,是一个6核的CPU,每核上的L1是64KB(数据和指令各32KB),L2是256K,L3有2MB。

我们的数据从内存向上,先到L3,再到L2,再到L1,最后到寄存器进行计算。那么,为什么会设计成三层?这里有以下几方面的考虑:

物理速度,如果要更大的容量就需要更多的晶体管,除了芯片的体积会变大,更重要的是大量的晶体管会导致速度下降,因为访问速度和要访问的晶体管所在的位置成反比。也就是当信号路径变长时,通信速度会变慢,这就是物理问题。

另外一个问题是,多核技术中,数据的状态需要在多个CPU进行同步。我们可以看到,cache和RAM的速度差距太大。所以,多级不同尺寸的缓存有利于提高整体的性能。

这个世界永远是平衡的,一面变得有多光鲜,另一方面也会变得有多黑暗,建立多级的缓存,一定就会引入其它的问题。这里有两个比较重要的问题。

一个是比较简单的缓存命中率的问题,另一个是比较复杂的缓存更新的一致性问题

尤其是第二个问题,在多核技术下,这就很像分布式系统了,要面对多个地方进行更新。

/////////////////////题外话2 开始///////////////////////

1 MB 大小的 CPU Cache 需要 7 美金的成本,而内存只需要 0.015 美金的成本,成本方面相差了 466 倍,所以 CPU Cache 不像内存那样动辄以 GB 计算,它的大小是以 KB 或 MB 来计算的。

为了解决这一问题,CPU设置了多级缓存结构

其中较为典型的有L1,L2,L3高速缓存

其中L1高速缓存具有和寄存器差不多的速度。

L1,L2,L3缓存都位于芯片内部,这些缓存我们统称为Cache

/////////////////////题外话2 结束///////////////////////

对于写操作,存在写入缓存缺失数据的情况,这时有两种处理方式:

Write allocate方式将写入位置读入缓存,然后采用write-hit(缓存命中写入)操作。写缺失操作与读缺失操作类似。

No-write allocate方式并不将写入位置读入缓存,而是直接将数据写入存储。这种方式下,只有读操作会被缓存。

无论是Write-through还是Write-back都可以使用写缺失的两种方式之一。只是通常Write-back采用Write allocate方式,而Write-through采用No-write allocate方式;因为多次写入同一缓存时,Write allocate配合Write-back可以提升性能;而对于Write-through则没有帮助。

处理流程图

Write-through模式处理流程:

A Write-Through cache with No-Write Allocation

THE END
0.腰椎L3L4膨出,L4L5突出,L5那么“L”又是什么意思呢?“L”就是腰椎椎体的意思,其中的“S”就是骶椎椎体的意思,这样大家是不是就容易理解了一些。但是“L3-L4”又是什么意思呢?我们需要在图中找到腰椎的第三椎体和第四椎体,那么这个就是表示这两椎体之间的东西,其实就是我们的椎间盘。 同理L4-L5也是如此,而L5-S1呢就是第五腰椎和第一骶椎之间的椎间盘的意思。 那么这些膨jvzq<84yyy4489iqe0ipo8hqpvkov8731293486817634=624a?7:;>892
1.l3自动驾驶是什么意思l3自动驾驶是什么意思 l3自动驾驶级别是指汽车自动系统既能完成某些驾驶任务,也能在某些情况下监控驾驶环境,但驾驶员必须准备好重新取得驾驶控制权。自动驾驶是区分等级,L3实际上就是Level 3,属于中等水平。 SAE的五个级别分别是:L0:驾驶员完全掌控车辆,无任何自动化能力。jvzquC41o0vdc~yq0eun0ls1z1893:44:37:;;=0jvsm
2.汽车L1L2和L3分别代表什么意思汽车的 L1、L2 和 L3 代表着不同的意思。 L1 是辅助驾驶,能操控的功能很少,比如通过自适应巡航控制速度或者通过车道保持控制方向,但绝大部分功能还得驾驶员自己操作。 L2 是半自动驾驶,拥有两个及以上的辅助功能,像自动泊车、自动加速、自动减速、自动跟车、车道保持等,在路况好、标识清晰、环境简单的道路,比如高jvzquC41o0vdc~yq0eun0ls1z1:6:B467:?:6<60jvsm
3.何为L3级自动驾驶那L3和L2、L1、L0有啥区别呢?咱们来简单聊聊: - **L0级别**:完全靠你自己开车,系统只会偶尔帮个小忙,比如紧急刹车、提醒你盲区有车或者车道偏离了。这些功能只在紧急情况下才会启动。 - **L1级别**:系统能帮你控制车的一部分,比如自适应巡航(自动跟车)或者车道保持,但你还是得全程盯着,不能完全放手。 jvzquC41o0pqsnc0eun1yfigu5eqwlvck5jpmjzAkj>7?;676=12;+htqs`u{h?dkpja}fd
4.科普汽车L1和L2和L3代表啥意思🚗家人们是不是经常听到汽车L1、L2、L3这些级别,但又不太清楚到底啥意思?今天咱就来好好唠唠,让你彻底搞明白😎 L1级(辅助驾驶) 根据经验,L1级就像是个“偏科生”🤣。它只能在控制油门刹车或者控制方向盘里选一样来做。像定速巡航就是控制油门刹车,车道保持就是控制方向盘。驾驶员得时刻握紧方向盘,时刻准备接jvzquC41yy}/rlfwvq4dqv3ep1tpvn4:75?69@=37;;73B;890nuou
5.科普l3级自动驾驶是什么意思?想知道L3级自动驾驶到底是什么意思?这就来给大家详细科普一下📖 L3级自动驾驶的核心特点 L3级自动驾驶也叫“有条件自动驾驶”。它对场景有明确限定,主要适用于高速公路、城市快速路等结构化道路。像奔驰DRIVE PILOT系统,目前仅在国内部分城市高速才能使用。而且在系统激活期间,驾驶责任从驾驶员转移到了车辆。不过,驾jvzquC41yy}/rlfwvq4dqv3ep1tpvn4:75647B:7:8744=8;;0nuou
6.汽车自动驾驶的L0L5是什么意思?智能驾驶l1到l5定义汽车L0、L1、L2、L3、L4、L5自动驾驶都是什么意思呢? 近年来「自动驾驶」对我们来说不再陌生,很多人虽然早有所闻,但是真不懂自动驾驶的L0、L1、L2、L3、L4、L5是什么意思,都有哪些功能,今天就来为大家科普一下。 二、智能驾驶L0到L5定义 自动驾驶技术起源于上世纪80年代,在全球汽车行业所公认的汽车自动驾jvzquC41dnuh0lxfp0tfv8vs66<3:;9341gsvrhng1jfvjnnu173:;=8:3;
7.自动驾驶L3是哪些级别L3自动驾驶是第四级别的汽车自动驾驶技术。以下是关于L3自动驾驶的具体介绍: 1、L3自动驾驶的意思是自动系统既能完成某些驾驶任务,也能在某些情况下监控驾驶环境,但驾驶员必须准备好重新取得驾驶控制权,在这个等级下,实际上驾驶员还是必须时刻保持警惕,随时取回车辆控制权; jvzquC41yy}/{xtlkc4dqv4ygpjb1A6227>/j}rn
8.李想昨天说的VLM是什么意思?2024年6月8日李想在重庆表示基于现有的计李想昨天说的VLM是什么意思? 2024年6月8日李想在重庆表示基于现有的计算平台,有监督的L3级别自动驾驶100%可实现,最早今年年底,最晚明天年初就会全量推送,无监督的L4自动驾驶三年内一定可以实现。 理想汽车的自动驾驶路线核心思路是用一颗Orin X芯片用于端到端,一颗Orin X用于VLM,端到端为系统一,处理所有的正常的jvzquC41zwkrk~3eqo523;<64;;3487;546669>
9.汽车l3是什么意思汽车知识问答汽车l3是什么意思?匿名用户提问爱卡汽车 汽车l3是汽车配备的是直列3缸发动机,三缸发动机是由三个气缸组成的发动机,在其内部,三个相同的单缸排列在一个机体上共用一根曲轴输出动力,主要作用是将化学能转换为机械能,为传统燃油汽车以及新能源混合动力车型提供动力。三缸发动机基本原理是利用汽油(柴油)化学能转化为热能jvzquC41c0~dc{3eqo4dp8|gpfg04?59;0nuou
10.汽车L1L2L3级别自动辅助驾驶是什么意思?这样解释通俗易懂!汽车L1-L2-L3级别自动辅助驾驶到底有啥区别?90%的人都听销售吹,却没人搞明白真相! 你有没有想过,你买的新车所谓的“智能驾驶”,到底能有多智能?别说老司机,我看连不少4S店销售自己都答不上来。 前几天刷懂车帝,看到他们针对36辆热门车型在高速上的辅助驾驶做了个横评,特斯拉又一次冲第一,把网友们吵得不可jvzquC41yy}/fxsiejkek7hqo1gsvrhng1=65>57:6<94@8939=98
11.SAEJ3016路面机动车驾驶自动化系统相关术语的分类和定义(2021中文版L3级:有条件的驾驶自动化 L4级:高度驾驶自动化 L5级:完全驾驶自动化 这些级别的定义,以及本文提供的其他支持性术语和定义,可以用来以功能一致和连贯的方式描述装备在[机动]车辆上的全部驾驶自动化功能。"道路 "是指可公开使用的道路(包括允许公众进入的停车场和私人校园),这些道路共同为所有道路使用者服务jvzquC41yy}/gnkqewy/exr1ctzjeuj175668<3jvor
12.发动机l3什么意思发动机l3什么意思 咨询技师 发动机l3什么意思?l3代表直列三缸发动机,这种发动机是比较常见的,很多车企都在大规模使用三缸发动机。三缸发动机与四缸发动机相比是有很多优势的。有很多a级轿车在使用三缸涡轮增压发动机。 三缸发动机与四缸发动机相比重量是更轻的。jvzquC41cwzp0lmkpc4dqv4okr567=;60jznn
13.莲花汽车L3车内标志什么意思懂车帝提供莲花汽车L3车内标志什么意思的详细内容,懂车帝是一个汽车资讯平台,懂车更懂你。我们提供最新汽车报价,汽车图片,汽车价格大全,行情、评测、导购等内容,看车选车买车就上懂车帝。jvzquC41yy}/fxsiejkek7hqo1zbi8uie1?75=;73
14.车门上的setL1L2L3是什么意思有什么用?车门上的set L1 L 2 L3是什么意思 有什么用?手机 Moto Moto L2 查看全部5条评论回答 写回答 幽游白书 那些按钮是用来控制车门电子系统的,比如L1就是左侧前车门锁开关。当你需要离开车子但不想让其他人随意进入时,就可以通过按这些键来锁定车门。这样能提供额外的安全保障。别忘了在停车离开时检查一下jvzquC41ycv/|xq0eqs/ew4cum5eg}fknue2:A;686?`6A6246=`57mvon
15.欧美熟妇性毛茸茸,揭秘私房性感写真,真实记录生活状态,视觉盛宴等什么意思呢?就是只限定一部分场景,比如说高速公路,城市快速路这种结构化道路。 未来的L3系统达到最顶级的时候,可以让你在高速公路时候全程不接管,放心大胆到后排座椅去睡觉。需要接管的时候,系统会提示你接管,而且会给你充足的时间。 但一旦进出匝道,进城区,过红绿灯,遇到修路或突发事故的时候,对不起,L3级别无法满足jvzq<845i0tbk€z0mfku0ls1xkg06B69a;655A=0jvs
16.空调出现l3是什么意思空调出现l3是什么意思 去看看 F3故障代码是格力空调的直流风机故障提示。导致出现该故障的原因包括插脚接触不良、内机控制电路板异常、风机马达故障等。下面是具体的说明: 1、检查插脚是否松脱接触不良或断线,将线路重新连接固定后再开机尝试; 2、检查风机马达是否故障,如果风机马达不转可能是马达烧毁,需要更换;jvzq<84rtqjve}3reqtmkwj0eqs/ew4kvdq0vxu135=21:8937<247mvon
17.L3中等安全用药是什么意思呢L3中等安全用药,是指哺乳期女性在选择用药时这种药对宝宝的身体的影响是中等安全,一般分为五类前两类属于是安全用药,后两类用药,是危险或禁止的药物,而L3属于是中等的,以上这些就是哺乳期妈妈用药对宝宝以及自身的影响,建议平时需要注意运动,这样jvzquC41okv/rrsiiwumx7hqo1gtm85idehjkq3jvor
18.智能汽车l3是什么意思智能汽车l3是什么意思 L3级自动驾驶的意思,是指在特定的环境中可以完成驾驶操作、周边环境监控等动作,并不需要驾驶员自己操作,但在车辆自动驾驶过程中,驾驶员需要保持注意力集中,准备随时接管车辆,以应对自动驾驶系统处理不了的情况。 奥迪A8是全球首款可以在公共道路上实现L3级别自动驾驶的车型,能以24个传感器和41种jvzquC41o0vdc~yq0eun0ls1z1893?44:3<94>50jvsm
19.汽车L3是什么意思汽车L3 有两种含义,既代表自动驾驶的一个级别,也指三挡的低速挡位。作为自动驾驶级别,L3 意味着车辆能在特定条件下完成驾驶任务并监控环境,但驾驶员不能松懈,仍要随时准备干预;而作为低速挡位时,L3 可在 1、2、3 挡之间变换,适用于需jvzquC41o0vdc~yq0eun0ls1z1:95946:5638A>0jvsm