CPU实用缓存知识
了解一下CPU的缓存对性能的影响

了解一下CPU的缓存对性能的影响随着计算机技术的不断发展,处理器(CPU)作为计算机的核心组件,其性能在不断提升。
而在提升处理器性能的过程中,缓存技术起到了至关重要的作用。
本文将深入探讨CPU的缓存对性能的影响,并介绍缓存的工作原理以及常见的缓存优化方法。
一、缓存的工作原理CPU缓存是一种高速的存储介质,用于临时存储CPU经常访问的数据和指令。
它位于CPU内部,相比于主存储器(内存),缓存的访问速度更快,从而能够提高CPU的运行效率。
当CPU需要访问数据或指令时,它首先会检查缓存中是否存在所需内容。
如果存在,称之为命中(Cache Hit),CPU可以直接从缓存中读取数据或指令,节省了访问主存储器的时间。
反之,若缓存中不存在所需内容,称之为未命中(Cache Miss),CPU需要从主存储器中读取,并将数据或指令存入缓存,以供之后的访问使用。
二、缓存对性能的影响缓存的存在对于CPU性能有着显著的影响。
首先,缓存能够加快CPU的访问速度,提高了数据和指令的获取效率。
由于CPU的执行速度远快于内存的响应速度,当缓存命中率较高时,CPU能够更快地获取所需内容,从而提高了整体性能。
其次,缓存还能够减少CPU对内存的访问次数。
相比于内存访问,缓存访问的速度更快,这意味着CPU能够更快地获取到数据或指令,从而减少了等待时间。
当缓存命中率较高时,CPU可以多次使用缓存中的数据,而不需要频繁地从内存中读取,大幅提升了执行效率。
然而,缓存的存在也会带来一些问题。
首先,由于缓存容量的限制,无法将所有数据和指令都缓存起来。
因此,在缓存不命中时,CPU需要从主存储器中读取数据,增加了访问时间。
其次,缓存的更新机制可能会引发一致性问题。
当多个核心或处理器同时访问同一个内存地址时,可能会发生数据不一致的情况,需要通过一致性协议来解决。
三、缓存优化方法为了进一步提升CPU的性能,人们提出了一系列的缓存优化方法。
下面介绍几种常见的方法:1. 提高缓存命中率:通过合理的程序设计和数据结构选择,可以提高缓存命中率,减少缓存未命中的次数。
cpu缓存工作原理

cpu缓存工作原理CPU缓存工作原理引言:CPU缓存是计算机系统中的关键组件之一,它起到了提高数据访问速度和减少内存访问时间的重要作用。
本文将介绍CPU缓存的工作原理,包括缓存的层次结构、缓存命中和缓存未命中的处理方式,以及常见的缓存优化技术。
一、缓存层次结构CPU缓存通常分为多级缓存,包括一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。
这些缓存层次结构的目的是根据访问频率和容量需求来优化数据的存储和访问。
1. 一级缓存(L1 Cache):一级缓存是与CPU核心紧密集成的缓存,容量较小但速度非常快,通常分为指令缓存(Instruction Cache)和数据缓存(Data Cache)两部分。
指令缓存用于存储CPU执行的指令,数据缓存用于存储CPU需要处理的数据。
2. 二级缓存(L2 Cache):二级缓存位于一级缓存和内存之间,容量较大但速度较慢。
它的作用是扩大缓存的容量,提高数据的访问速度。
二级缓存通常由多个缓存组成,每个缓存可以独立操作,提高了并发性能。
3. 三级缓存(L3 Cache):三级缓存位于二级缓存和内存之间,容量更大但速度更慢。
它的作用是进一步增加缓存的容量,减少对内存的访问次数,提高整体性能。
二、缓存命中和缓存未命中当CPU需要访问数据时,它首先会检查一级缓存。
如果所需数据在一级缓存中找到,称为缓存命中(Cache Hit),CPU可以立即访问数据,提高了访问速度。
如果所需数据不在一级缓存中,称为缓存未命中(Cache Miss),CPU需要继续检查更高级别的缓存或者内存。
缓存命中率是衡量缓存性能的重要指标,它表示在所有访问中有多少次是缓存命中的。
高缓存命中率意味着CPU能够更频繁地从缓存中获取数据,提高了整体性能。
三、缓存未命中的处理方式当发生缓存未命中时,CPU需要从更高级别的缓存或者内存中获取数据。
这个过程通常称为缓存填充(Cache Fill)。
cache相关知识点

缓存相关知识点缓存是一个常见的计算机概念,用于提高系统的性能和响应速度。
在计算机领域中,缓存是指存储数据的临时存储区域,用于加快数据的访问速度。
通过缓存,系统可以避免频繁地从较慢的存储区域(如硬盘)中读取数据,从而显著提高系统的性能。
在本文中,我们将深入探讨缓存的相关知识点。
1.什么是缓存?缓存是一种将数据存储在更快速、更容易访问的存储区域中的技术。
它可以是硬件缓存(如CPU缓存)或软件缓存(如Web浏览器缓存)。
缓存的目的是通过减少数据的访问时间来提高系统的性能。
2.缓存的工作原理当系统需要访问数据时,首先会检查缓存中是否已经存在该数据。
如果数据已经在缓存中,系统可以直接从缓存中获取数据,而不需要从较慢的存储区域中读取。
如果数据不在缓存中,系统将从存储区域中读取数据,并将其存储到缓存中以供以后使用。
3.缓存的类型根据存储介质的不同,缓存可以分为多种类型。
常见的缓存类型包括:•CPU缓存:CPU缓存是位于处理器芯片上的一块高速存储器,用于存储最常用的指令和数据。
它可以显著提高CPU的性能。
•硬盘缓存:硬盘缓存是位于硬盘驱动器内部的一块存储区域,用于存储最近访问的数据。
它可以加快读写硬盘的速度。
•Web浏览器缓存:Web浏览器缓存是位于Web浏览器中的一块存储区域,用于存储最近访问的网页和相关资源。
它可以减少网页加载的时间。
4.缓存的优势和劣势缓存的使用可以带来许多优势,包括:•提高系统的性能和响应速度。
•减少对较慢的存储区域(如硬盘)的访问次数,从而延长存储设备的寿命。
•减少网络带宽的使用,提高网络传输的效率。
然而,缓存也存在一些劣势,如:•缓存的数据可能会过时,导致访问到的数据不是最新的。
•缓存需要占用一定的存储空间,可能会导致浪费。
•缓存的管理和更新可能会增加系统的复杂性。
5.如何有效使用缓存为了有效使用缓存,我们可以采取以下措施:•设定合理的缓存策略,如缓存数据的过期时间和更新机制。
•使用合适的缓存算法,如LRU(最近最少使用)算法,以确保缓存中的数据是最常用的数据。
CPU缓存——精选推荐

CPU缓存在计算机系统中,CPU⾼速缓存(英语:CPU Cache,在本⽂中简称缓存)是⽤于减少处理器访问内存所需平均时间的部件。
在⾦字塔式存储体系中它位于⾃顶向下的第⼆层,仅次于CPU寄存器。
其容量远⼩于内存,但速度却可以接近处理器的频率。
当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。
如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),则要先把内存中的相应数据载⼊缓存,再将其返回处理器。
缓存之所以有效,主要是因为程序运⾏时对内存的访问呈现局部性(Locality)特征。
这种局部性既包括空间局部性(Spatial Locality),也包括时间局部性(Temporal Locality)。
有效利⽤这种局部性,缓存可以达到极⾼的命中率。
在处理器看来,缓存是⼀个透明部件。
因此,程序员通常⽆法直接⼲预对缓存的操作。
但是,确实可以根据缓存的特点对程序代码实施特定优化,从⽽更好地利⽤缓存。
基本描述缓存的存储结构结构上,⼀个直接映射(Direct Mapped)缓存由若⼲缓存块(Cache Block,或Cache Line)构成。
每个缓存块存储具有连续内存地址的若⼲个存储单元。
在32位计算机上这通常是⼀个双字(dword),即四个字节。
因此,每个双字具有唯⼀的块内偏移量。
每个缓存块有⼀个索引(Index),它⼀般是内存地址的低端部分,但不含块内偏移和字节偏移所占的最低若⼲位。
⼀个数据总量为4KB、缓存块⼤⼩为16B的直接映射缓存⼀共有256个缓存块,其索引范围为0到255。
使⽤⼀个简单的移位函数,就可以求得任意内存地址对应的缓存块的索引。
由于这是⼀种多对⼀映射,必须在存储⼀段数据的同时标⽰出这些数据在内存中的确切位置。
所以每个缓存块都配有⼀个标签(Tag)。
拼接标签值和此缓存块的索引,即可求得缓存块的内存地址。
如果再加上块内偏移,就能得出任意⼀块数据的对应内存地址。
因此,在缓存⼤⼩不变的情况下,缓存块⼤⼩和缓存块总数成反⽐关系。
cpu缓存计算方法

CPU缓存的计算方法通常涉及多个步骤和参数。
首先,我们需要考虑缓存的层级结构,因为不同层级的缓存具有不同的速度和容量。
1. 缓存层级结构:CPU缓存通常分为L1、L2、L3等层级。
每一层级的缓存容量和访问速度都不同。
通常,L1缓存的访问速度最快,但容量最小,而L3缓存的容量最大,但访问速度较慢。
2. 容量:在确定了某个层级缓存的大小时,其容量可以直接计算。
例如,如果L2缓存的大小为2MB,那么其容量就是2MB。
3. 速度:CPU访问不同层级的缓存的速度各不相同。
这些速度通常用每纳秒能完成多少次数据读取或写入来衡量。
为了计算缓存的平均访问速度,我们需要考虑各个层级缓存的访问速度以及它们被访问的概率。
4. 命中率:CPU在访问数据时,如果数据已经在缓存中(即命中),则直接返回数据;如果数据不在缓存中(即未命中),则需要从更低层级的缓存或内存中获取数据。
命中率是衡量缓存效率的重要指标,它可以帮助我们了解CPU在访问数据时有多少次是直接从缓存中获取的。
5. 效率:效率是指CPU在访问数据时,有多少次是从缓存中获取的,而不是从更低层级的存储器中获取的。
效率可以用以下公式计算:效率= 缓存命中次数/ (缓存命中次数+ 缓存未命中次数)。
l3 缓存 作用 -回复

l3 缓存作用-回复标题:深入理解L3缓存的作用在计算机体系结构中,缓存是一个非常重要的部分,它对系统的性能有着决定性的影响。
L3缓存是现代多核处理器中的重要组成部分,对于提高系统性能和降低延迟起着关键作用。
本文将从L3缓存的定义、工作原理、作用等方面进行详细介绍。
一、什么是L3缓存?L3缓存,全称为Level 3 Cache,是CPU三级缓存的一种。
它是介于内存和CPU之间的一个临时数据存储区,主要用来存储那些CPU频繁访问的数据,以减少CPU直接读取内存的时间,提高CPU的运行效率。
二、L3缓存的工作原理当CPU需要读取数据时,首先会查询L1缓存,如果L1缓存中没有所需的数据,那么CPU会接着查询L2缓存,最后才是L3缓存。
这个过程被称为缓存层次结构。
L3缓存的主要特点是容量大、速度相对较慢,但是由于其容量大,可以存储更多的数据,因此可以有效减少CPU直接访问内存的次数,从而提高系统的整体性能。
三、L3缓存的作用1. 提高数据访问速度L3缓存的存在大大减少了CPU直接访问内存的次数,提高了数据的访问速度。
这是因为,相比于内存,L3缓存的速度要快得多。
当CPU需要访问数据时,优先在缓存中查找,如果在缓存中找到了所需的数据,就不需要再访问内存了,这样就大大提高了数据的访问速度。
2. 减少内存延迟内存延迟是指CPU发出请求到收到响应的时间间隔。
由于L3缓存的存在,大部分数据可以直接在缓存中获取,不需要等待内存的响应,这就大大减少了内存延迟,提高了系统的响应速度。
3. 平衡多核心之间的数据共享在多核处理器中,每个核心都有自己的L1和L2缓存,而L3缓存是所有核心共享的。
这意味着,当一个核心修改了某个数据后,其他核心可以通过L3缓存立即获取到这个更新后的数据,而不必通过内存,这大大提高了多核心之间的数据共享效率。
四、如何优化L3缓存使用虽然L3缓存有诸多优点,但是在实际应用中,如果不能合理地使用L3缓存,可能会导致其效果大打折扣。
CPU缓存用处意义解释

CPU缓存用处意义解释CPU缓存有什么用?Intel官方答案来了更详细来讲,在计算机系统中,CPU高速缓存在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。
其容量远小于内存,但速度却可以接近处理器的频率,比内存快得多。
缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存。
今年下半年,Intel将推出10nm+ Tiger Lake,还是针对轻薄本,CPU架构升级为WillowCove,IPC相比于Skylake提升25%,换算一下对比Sunny Cove只提升大约6%。
下一代桌面级的Rocket Lake据说也会是同样的架构,只不过工艺延续14nm。
再往后的新架构是Golden Cove,将应用于10nm++ Alder Lake,IPC相比于Skylake提升50%,相比于WillowCove则提升大约20%。
传闻称,Alder Lake将会采用大小核配置,8+8的规格可媲美AMD 16核心32线程的锐龙9 3950__,不过到那个时候,Zen4都快出来了。
Intel官方公布的架构路线图到此为止,而根据传闻,Golden Cove的继任者代号为“OceanCove”,IPC性能相比于Skylake提升幅度达80%,不过对比它之前的Golden Cove提升幅度还是20%。
CPU 缓存是什么?不同存储技术的访问时间差异很大,从计算机层次结构可知,通常情况下,从高层往底层走,存储设备变得更慢、更便宜同时体积也会更大,CPU和内存之间的速度存在着巨大的差异,此时就会想到计算机科学界中一句著名的话:计算机科学的任何一个问题,都可以通过增加一个中间层来解决。
二.引入缓存层为了解决速度不匹配问题,可以通过引入一个缓存中间层来解决问题,但是也会引入一些新的问题。
CPU缓存冷门知识讲解

CPU缓存冷门知识讲解由于CPU是核心硬件,相信我们在选择CPU的时候都会去关心CPU参数方面,而在CPU核心参数中,我们经常会看到缓存(Cache)这个参数,那么CPU缓存有什么用?下面就让小编带你去看看CPU缓存冷门知识讲解,希望能帮助到大家!计算机组成原理 - CPU 高速缓存按道理来说,循环1 花费的时间应该是循环2 的 16 倍左右。
但实际上,循环1 在我的电脑上运行需要50 毫秒,循环2 只需要46 毫秒。
相差在 15% 之内,1 倍都没有。
这就是 CPU Cache (高速缓存)带来的效果。
程序执行时,CPU 将对应的数据从内存中读取出来,加载到 CPU Cache 里。
这里注意,CPU 是一小块一小块来读取数据的,而不是按照单个数组元素来读取数据的。
这一小块一小块的数据,在CPU Cache 里面,我们把它叫作Cache Line(缓存块)。
日常用的 Intel 服务器或者 PC 中,Cache Line 的大小通常是 64 字节。
上面的循环2 里面,每隔 16 个整型数计算一次,16 个整型数正好是 64 个字节。
所以,循环1 和循环2,都需要把同样数量的 Cache Line 数据从内存中读取到CPU Cache 中,导致两个程序花费的时间就差别不大了。
CPU Cache 一般有三层,L1/L2 单核私有,L3 多核共享缓存(这里的L1-L3 指特定的由SRAM 组成的物理芯片,不是概念上的缓存)。
有了 CPU Cache,内存中的指令、数据,会被加载到 L1-L3 Cache 中,95% 的情况下,CPU 都只需要访问 L1-L3 Cache,而无需访问内存。
Cpu Cache 读取数据现代 CPU 进行数据读取的时候,无论数据是否已经存储在 Cache 中,CPU 始终会首先访问 Cache。
只有当 CPU 在 Cache 中找不到数据的时候,才会去访问内存,并将读取到的数据写入 Cache 之中。
CPU片上缓存技术解析

CPU片上缓存技术解析CPU片上高速缓存是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。
在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。
众所周知,随着CPU 内核的尺寸与带宽技术的进步,很快就会造成投资回报的递减。
因此,当核心的尺寸工艺收缩到一个小尺度上后,出于成本方面的考虑,芯片制造商通常的选择有如下三种:生产更小的芯片、增加大量缓存、增加更多内核。
选择更大的片上缓存则是其中性价比较高的一种选择,这也是为何从1990年代以来,从RISC处理器到x86处理器的制造商均不停地增加CPU片上缓存的原因。
缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给 CPU处理,同时把这个数据所在的数据块调入缓存,以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(现在大多数CPU可达90%以上),只有5%左右需要从内存读取。
这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。
总的来说,CPU读取数据的顺序是先缓存后内存。
在大多数情况下,x86架构的多核CPU的内核拥有独立的L1缓存,共享L2缓存、内存子系统、中断子系统和外设。
因此,系统设计师需要让每个内核独立访问某种资源,并确保资源不会被其他内核上的应用程序争抢。
在上世纪90年代,x86架构下的CPU大多只有4KB到32KB的一级片上缓存,128KB到256KB的二级缓存。
直到1998年奔腾2至强400的出现,才实现了x86架构上的512KB二级缓存(更晚才出现1MB的二级缓存)——作为对比,1997年HP推出的PA-8500的二级缓存则是1.5MB,且其他工艺和参数指标均远超Xeon。
计算机CPU缓存的工作原理

代码都是由CPU跑起来的,我们代码写的好与坏就决定了CPU的执行效率,特别是在编写计算密集型的程序,更要注重CPU的执行效率,否则将会大大影响系统性能。
CPU内部嵌入了CPU Cache(高速缓存),它的存储容量很小,但是离CPU 核心很近,所以缓存的读写速度是极快的,那么如果CPU运算时,直接从CPU Cache读取数据,而不是从内存的话,运算速度就会很快。
但是,大多数人不知道CPU Cache的运行机制,以至于不知道如何才能够写出能够配合CPU Cache工作机制的代码,一旦你掌握了它,你写代码的时候,就有新的优化思路了。
那么,接下来我们就来看看,CPU Cache到底是什么样的,是如何工作的呢,又该如何写出让CPU执行更快的代码呢?根据摩尔定律,CPU的访问速度每18个月就会翻倍,相当于每年增长60%左右,内存的速度当然也会不断增长,但是增长的速度远小于CPU,平均每年只增长7%左右。
于是,CPU与内存的访问性能的差距不断拉大。
到现在,一次内存访问所需时间是200~300多个时钟周期,这意味着CPU和内存的访问速度已经相差200~300多倍了。
为了弥补CPU与内存两者之间的性能差异,就在CPU 内部引入了CPU Cache,也称高速缓存。
CPU Cache通常分为大小不等的三级缓存,分别是L1 Cache、L2 Cache和L3 Cache。
由于CPU Cache所使用的材料是SRAM,价格比内存使用的DRAM 高出很多,在当今每生产1MB大小的CPU Cache需要7美金的成本,而内存只需要0.015美金的成本,成本方面相差了466倍,所以CPU Cache不像内存那样动辄以GB计算,它的大小是以KB或MB来计算的。
其中,L1 Cache通常会分为「数据缓存」和「指令缓存」,这意味着数据和指令在L1 Cache这一层是分开缓存的,L3 Cache比L1 Cache和L2 Cache大很多,这是因为L1 Cache和L2 Cache都是每个CPU核心独有的,而L3 Cache是多个CPU核心共享的。
了解一下CPU的缓存大小对性能的影响的方法

了解一下CPU的缓存大小对性能的影响的方法CPU是计算机中最重要的组件之一,它的性能直接影响着计算机的运行速度和应用程序的执行效率。
而CPU的缓存大小是一个关键的指标,它对CPU性能有着重要影响。
本文将介绍了解CPU缓存大小对性能影响的方法。
一、了解CPU缓存的概念在介绍CPU缓存大小对性能影响的方法之前,我们首先需要了解CPU缓存的概念。
CPU缓存是一种高速存储器,它用于暂时存储CPU频繁使用的数据和指令,以减少CPU访问主内存的次数,提高数据读取和指令执行的速度。
CPU缓存主要分为三级:一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。
这些缓存层级之间的容量逐级递增,速度逐级递减。
一级缓存距离CPU最近,速度最快,容量相对较小;二级缓存次之,容量较大,速度较快;三级缓存容量最大,速度相对较慢。
二、使用操作系统工具查看CPU缓存大小了解CPU缓存大小对性能影响的第一种方法是使用操作系统提供的工具来查看CPU缓存大小。
下面以Windows操作系统为例,介绍如何查看CPU缓存大小。
1. 打开任务管理器:可以通过按下“Ctrl+Shift+Esc”快捷键打开任务管理器。
2. 切换到“性能”选项卡:在任务管理器中,选择“性能”选项卡。
3. 查看CPU缓存大小:在“性能”选项卡中,可以看到左侧列出的各种性能指标。
找到“CPU”一栏,展开后可以看到各级缓存的大小信息。
三、使用CPU-Z等第三方工具查看CPU缓存大小除了使用操作系统提供的工具外,还可以使用第三方工具来查看CPU缓存大小。
其中,CPU-Z是一款常用的CPU信息查看工具。
下面以CPU-Z为例,介绍如何查看CPU缓存大小。
1. 下载并安装CPU-Z:可以在CPU-Z官方网站上下载到最新版本的CPU-Z,并按照提示进行安装。
2. 打开CPU-Z:安装完成后,打开CPU-Z程序。
3. 查看CPU缓存大小:在CPU-Z的主界面上,选择“Cache”选项卡,就可以看到各级缓存的大小信息。
什么是电脑的CPU缓存如何选择适合你的需求的缓存大小

什么是电脑的CPU缓存如何选择适合你的需求的缓存大小电脑的CPU缓存及如何选择适合需求的缓存大小CPU(中央处理器)是计算机的核心组件之一,它负责执行计算机指令并处理数据。
为了提高CPU的性能,缓存被引入到CPU中。
那么什么是CPU缓存?如何选择适合你的需求的缓存大小呢?本文将为你解答这些问题。
一、什么是CPU缓存CPU缓存是CPU内部用于加快数据读取和存储访问速度的高速存储器。
它由三个级别组成:一级缓存、二级缓存和三级缓存。
其中,一级缓存(L1缓存)位于CPU内部与核心紧密相连,二级缓存(L2缓存)也常常集成在CPU内部,而三级缓存(L3缓存)则位于CPU 核心之外,一般覆盖多个核心。
缓存的作用是通过预先加载数据,降低CPU与内存之间的数据交换次数,从而提高数据访问速度。
CPU缓存具有低延迟、高带宽和高吞吐量等特点,因此对于提高计算机整体性能至关重要。
二、如何选择适合你的需求的缓存大小1. 了解不同缓存级别的特点不同级别的缓存对于数据访问速度和容量有不同的要求。
一级缓存通常容量较小,但速度最快,用于存储正在执行的指令和数据;二级缓存容量较大,但速度稍慢,用于存储常用的指令和数据;三级缓存容量更大,但速度较一二级缓存要慢一些,用于存储大量的指令和数据。
2. 考虑应用场景和需求选择适合自己需求的缓存大小需要考虑应用场景和需求。
如果你主要进行简单的办公任务和上网浏览,对于缓存的容量要求不高,一级缓存的大小通常已足够。
然而,如果你从事专业的图形设计、视频编辑或大型数据库操作等工作,需要处理大量的数据和复杂的运算,更大容量的二级缓存或三级缓存更适合你。
3. 考虑预算和性价比除了性能需求外,缓存的选择还与预算和性价比相关。
一般来说,随着缓存容量的增加,成本也会相应增加。
因此,在选择缓存大小时,需要综合考虑自己的预算和所需性能。
对于一般用户来说,选择合适的二级缓存或三级缓存,可以在满足需求的同时避免过高的成本。
电脑CPU缓存解析LL和L

电脑CPU缓存解析LL和LCPU(中央处理器)作为计算机的核心组件,负责处理各种计算和运算任务。
而缓存作为CPU的一部分,起到了加速数据读写的作用。
在缓存中,LL(Level L)和L(Level L)是两个常见的概念,被广泛应用于各类电脑CPU中。
本文将对LL和L缓存进行解析和分析。
什么是LL和L缓存呢?在计算机中,缓存是指介于CPU和主存之间的临时存储器。
它的作用是存储CPU频繁访问的数据和指令,以提高CPU读写数据的速度。
而LL缓存是指多级缓存中的最低级别(level),它是离CPU最近的缓存。
通常情况下,现代计算机CPU的多级缓存结构包含L1、L2、L3甚至L4等多个级别的缓存,其中L1缓存是最接近CPU的,L4缓存是最接近主存的。
不同级别的缓存容量和访问速度都有所不同。
LL缓存的作用是高速缓存指令和数据,以提高CPU的运行效率。
它能够快速地响应CPU的访问请求,并通过存储最常用的数据和指令来减少对主存的访问次数。
相比之下,L缓存(Level L)泛指CPU的任何一个级别的缓存,包括LL缓存在内。
为什么需要LL和L缓存呢?随着计算机技术的发展,CPU的运算速度越来越快,但是访问主存的速度相对较慢。
为了缓解这一矛盾,人们提出了缓存的概念,并将缓存分为多级。
LL和L缓存的设计理念是将最常用的指令和数据存放在离CPU最近的地方,以提高CPU的运行效率。
通过缓存的技术手段,CPU能够更快地读取指令和数据,从而减少等待时间,提高计算机的整体性能。
LL和L缓存的区别是什么呢?LL缓存和L缓存主要有两个方面的区别:容量和速度。
首先,LL缓存的容量更小,通常在几十KB到几百KB之间。
这是因为LL缓存需要离CPU更近,为了提高访问速度,采用的是一些快速而昂贵的存储技术。
相比之下,L缓存的容量较大,通常在几百KB到几十MB之间。
其次,LL缓存的访问速度更快。
由于LL缓存离CPU最近,它能够更快地响应CPU的访问请求。
三级缓存原理

三级缓存原理三级缓存是计算机系统中的一种高速缓存,用于提高系统的数据访问速度和性能。
它通常由三个不同层次的缓存组成,分别是L1缓存、L2缓存和L3缓存。
每一级缓存的容量和速度逐级增加,以满足不同级别的数据存取需求。
L1缓存是最接近处理器的一级缓存,也是最小最快的缓存。
它通常由指令缓存和数据缓存组成,分别存储已经被处理器执行的指令和数据。
L1缓存与处理器之间的距离非常近,因此可以快速响应处理器的读写请求。
同时,由于缓存容量较小,L1缓存的命中率通常较高,可以提供低延迟和高带宽的数据访问。
L2缓存位于L1缓存之后,通常在处理器芯片上或者与处理器芯片连接在一起。
它的容量比L1缓存大,速度也稍微低一些。
L2缓存主要用于存储处理器访问频率较高的数据块,以提高命中率和效率。
由于L2缓存通常位于多个处理器核心之间,所以它可以共享和协作,提供更高的数据并行性和访问带宽。
L3缓存是位于处理器芯片外部的一级缓存,通常由多个处理器核心共享。
它的容量较大,速度相对较慢。
L3缓存主要用于存储多个处理器核心之间共享的数据,以减少数据的重复加载和传输。
L3缓存可以更好地利用多个核心之间的数据局部性,提高整体系统的并行性和吞吐量。
三级缓存的工作原理可以简单描述如下:1.当处理器需要读取或写入数据时,首先会在L1缓存中查找是否存在所需的数据。
如果L1缓存中存在该数据,即命中缓存,处理器可以快速获取或写入数据,并不会引起较大的延迟。
2.如果L1缓存未命中,处理器会继续在L2缓存中查找。
如果L2缓存中存在所需的数据,即命中缓存,处理器可以从L2缓存中获取或写入数据。
由于L2缓存容量较大,命中率也较高,所以访问L2缓存相对于主存来说速度更快。
3.如果L2缓存未命中,处理器将继续在L3缓存中查找。
如果L3缓存中存在所需的数据,即命中缓存,处理器可以从L3缓存中获取或写入数据。
由于L3缓存通常通过高速总线与多个处理器核心连接,可以提供更高的并行性和访问带宽,所以访问L3缓存相对于主存来说速度更快。
cpu缓存工作原理

cpu缓存工作原理
CPU缓存是一种高速存储器,位于CPU内部,用于暂时存储
从内存中读取的指令和数据。
其工作原理主要包括以下几个方面:
1. 局部性原理:缓存利用了程序执行的局部性原理,即程序倾向于访问最近使用的指令和数据。
它根据这种局部性原理,将最近使用的数据预先存储在缓存中,以提高指令和数据的访问速度。
2. 缓存层次结构:缓存一般分为多级结构,包括一级缓存
(L1 Cache)和二级缓存(L2 Cache)。
一级缓存更接近CPU,速度更快,容量较小;而二级缓存速度相对较慢,容量较大。
缓存层次的设置可以根据不同的需求进行灵活配置。
3. 缓存替换算法:当数据在缓存中没有找到时,需要从内存中读取,并将其存储到缓存中。
但是缓存容量有限,当缓存已满时,需要根据一定的替换策略来选择被替换的数据。
常见的缓存替换算法有随机替换算法、最近最少使用算法(LRU)等。
4. 缓存一致性:多核CPU中存在多个核心,每个核心都有自
己的缓存,因此需要保证缓存的一致性,即各个缓存之间的数据应该保持一致。
通过使用缓存一致性协议(如MESI协议),可以在不同核心之间进行数据的同步和交互,确保数据的一致性。
通过以上的工作原理,CPU缓存有效地提高了指令和数据的
访问速度,减少了对内存的访问次数,提高了计算机系统的整体性能。
论了解一下CPU的缓存大小对性能的影响

论了解一下CPU的缓存大小对性能的影响随着计算机技术的不断发展,CPU的性能也在不断提升。
而CPU的缓存大小作为CPU性能的重要指标之一,对计算机的运行速度和性能起着至关重要的作用。
本文将深入探讨CPU缓存大小对性能的影响。
一、CPU缓存的基本概念缓存是指计算机系统中用于暂时存储数据的部件。
CPU缓存又可分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。
一级缓存距离CPU最近,容量最小,速度最快;二级缓存速度次之;三级缓存容量最大,速度相对较慢。
缓存的作用是为了提高CPU对内存的访问速度,降低访问内存的次数,从而提高系统运行效率。
二、CPU缓存大小对性能的影响1.缓存大小与运行速度的关系CPU缓存大小的增加可以提高计算机的运行速度。
因为缓存中存放的是CPU频繁访问的数据和指令,当缓存空间足够大时,CPU能够更多地从缓存中获取数据,减少了对内存的访问次数,从而提高了计算机的运行速度。
2.缓存大小与程序性能的关系程序的运行性能直接受到CPU缓存大小的影响。
当程序所需的数据能够完全存放在缓存中时,CPU可以直接从缓存中获取数据,加快程序的执行速度。
而当程序的数据量大于缓存的容量时,CPU不得不频繁地从内存中读取数据,导致程序的执行速度变慢。
3.缓存大小与多任务处理的关系在进行多任务处理时,缓存的大小尤为重要。
如果缓存的容量较小,多个任务之间的数据可能会互相冲突,导致频繁的缓存失效。
而当缓存的容量较大时,可以更好地满足多任务处理的需求,减少任务之间的数据冲突,提高系统的并发性能。
4.缓存大小与热点数据的关系热点数据是指在程序执行过程中频繁被访问的数据。
当缓存大小足够时,热点数据能够被完全存放在缓存中,CPU能够快速访问,提高程序的执行效率。
而如果缓存大小不足,热点数据可能无法完全存放在缓存中,导致频繁的缓存失效,降低系统的性能。
三、如何选择合适的缓存大小1.根据应用需求进行选择不同的应用对缓存大小的需求是不一样的。
CPU基础知识:CPU缓存

L3 Cache(三级高速缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。三级缓存往往在高级甚至顶级CPU上才能看到。
L1 Cache(一级高速缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32—256KB。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,而前端总线的增加,要比缓存增加带来更有效的性能提升。
CPU基础知识:CPU缓存
缓存大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存往往比较小。
L2 Cache(二级高速缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量一般都在的是256KB以上,而服务器和工作站上用CPU的L2高速缓存更高达更高。而酷睿2双核处理器则采用共享二级缓存的方式,如E7200的共享二级缓存为3MB。
CPU的一二三级缓存有什么用处?

CPU的一二三级缓存有什么用处?首先我们要知道CPU缓存是什么,CPU缓存位于CPU与内存之间,起到临时存储器的作用。
它的主要作用在于CPU的运行速度要远高于内存速度,这会导致正常的运算过程中,CPU往往会等到内存将数据传输过来或者通过内存传输至其他硬件。
CPU缓存的出现就是为了应对这类情况的出现,通常而言,CPU缓存容量比内存小但交换速度比内存快,当CPU调用大量数据时,就可先在CPU缓存中调用,从而加快读取速度。
我们日常购买CPU的时候,会在参数表中看到有一级缓存、二级缓存、三级缓存指标,三种缓存的容量各不相同,他们之间的关系可以理解为每一级缓存中存储的全部数据为下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增。
CPU缓存一级缓存一级缓存就在CPU的内核边上,是与CPU连接最紧密的缓存,也是最早出现在CPU中缓解CPU与内存之间数据的缓存,二级缓存二级缓存是CPU的第二层高速缓存,L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家用CPU容量最大是4MB。
三级缓存三级缓存是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
CPU缓存作用作用之一就是我们之前提到的减少延迟,减少CPU与内存之间数据传输过程中的延迟时间。
作用之二则是提高命中率,CPU在Cache中找到有用的数据被称为命中。
未找到则访问内存,对于用户而言,当然更希望通过访问CPU缓存中的信息已得到速度上的优势。
而CPU缓存的作用就是为了最大限度提升这一目标。
作用三是降低装机成本。
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存,进而降低装机成本。
CPU缓存的作用其实就是提高命中率、降低延迟、降低内存开销,其作用是为了提升CPU的工作效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU实用缓存知识CPU缓存是什么?CPU缓存是CPU和内存之间的临时存储器,虽然缓存的容量不能与内存和硬盘相比,但是交换速度却比它们快得多了,CPU缓存就是为了更快的连接CPU与内存而存储在中间媒介。
简单来说,因为CPU 的速度快,而内存的速度较慢,这时CPU缓存来解决这个问题,减少了CPU的等待时间,变相的提高了CPU的性能。
举个例子,比如CPU需要做一个加法运算,需要-2个时钟周期,如果从内存中读取数据需要100-300个周期,而CPU是不可能等待那么长的时间,即使是高端CPU也变成龟速,因此通过高速缓存来减少了CPU等待时间。
在主流的CPU中,一般缓存分为一级缓存、二级缓存、三级缓存,而它们之间的速度呈递减,容量呈递增,读取一级缓存中的信息需要3个周期,与CPU处理运算的速度无限接近了,读取二级缓存的周期大约10-15个周期,而三级缓存所需时间为50个周期左右。
之所以CPU需要采用这种层级结构,主要就是是从成本、性能、容量还有面积上来平衡的,对于CPU缓存来说,下面几点是它们提升的目前,也就所谓的CPU缓存的作用。
1、缩短延迟访问缓存的时间应该尽可能缩短,可以通过多种的方式缩短这个时间,比如能够通过减小缓存的大小或关联性来降低缓存的延迟,还有方式预测、增加带宽等方法。
2、提升命中率所谓的命中率是在高速缓存中找到内存引用的速率,我们希望能够首先通过缓存中获得信息,以得到速度优势,所以缓存需要最大限度地实现这一目标。
对于单个高速缓存,大小、关联性和块大小决定命中率。
3、降低更低级别内存下的开销高速缓存是内存层次结构的一部分,其性能会影响其它性能,处理其它内存花费的时间越长,意味着系统性能越低,也就是说尽可能让处理在缓存中完成。
4、减少错失惩罚缓存中不能命中是无法避免的事情,但是我们可以减少处理未命中所需的时间以获得更好的处理器性能,通过提升命中率并通过应用不同的优化,能够降低错失惩罚。
高速缓存是CPU中十分重要的部分,占据了大量的资源开销和成本,如果您看过CPU架构图的话,您就会发现缓存占据了至少50%的面积,绝对至关重要。
总结:CPU缓存的作用说白了就是提高命中率、降低延迟、降低内存开销、减少错失惩罚等,对于一般用户你只需了解CPU缓存能够提升CPU 的工作效率即可,缓存在cpu参数中的作用举足轻重。
CPU缓存一致性协议CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU。
这就造成了高性能能的内存和硬盘价格及其昂贵。
然而CPU的高度运算需要高速的数据。
为了解决这个问题,CPU厂商在CPU中内置了少量的高速缓存以解决IO 速度和CPU运算速度之间的不匹配问题。
在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。
比如循环、递归、方法的反复调用等。
比如顺序执行的代码、连续创建的两个对象、数组等。
带有高速缓存的CPU执行计算的流程程序以及数据被加载到主内存指令和数据被加载到CPU的高速缓存CPU执行指令,把结果写到高速缓存高速缓存中的数据写回主内存目前流行的多级缓存结构由于CPU的运算速度超越了1级缓存的数据IO能力,CPU厂商又引入了多级的缓存结构。
多级缓存结构多核CPU多级缓存一致性协议MESI多核CPU的情况下有多个一级缓存,如何保证缓存内部数据的一致,不让系统数据混乱。
这里就引出了一个一致性的协议MESI。
MESI(Modified E__clusive Shared OrInvalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议。
MESI协议中的状态CPU中每个缓存行(caceh line)使用4种状态进行标记(使用额外的两位(bit)表示):M: 被修改(Modified)该缓存行只被缓存在该CPU的缓存中,并且是被修改过的(dirty),即与主存中的数据不一致,该缓存行中的内存需要在未来的某个时间点(允许其它CPU读取请主存中相应内存之前)写回(writeback)主存。
当被写回主存之后,该缓存行的状态会变成独享(e__clusive)状态。
E: 独享的(E__clusive)该缓存行只被缓存在该CPU的缓存中,它是未被修改过的(clean),与主存中数据一致。
该状态可以在任何时刻当有其它CPU读取该内存时变成共享状态(shared)。
同样地,当CPU修改该缓存行中内容时,该状态可以变成Modified 状态。
S: 共享的(Shared)该状态意味着该缓存行可能被多个CPU缓存,并且各个缓存中的数据与主存数据一致(clean),当有一个CPU修改该缓存行中,其它CPU 中该缓存行可以被作废(变成无效状态(Invalid))。
I: 无效的(Invalid)该缓存是无效的(可能有其它CPU修改了该缓存行)。
MESI状态转换图状态之间的相互转换关系也可以使用下表进行表示。
操作在一个典型系统中,可能会有几个缓存(在多核系统中,每个核心都会有自己的缓存)共享主存总线,每个相应的CPU会发出读写请求,而缓存的目的是为了减少CPU读写共享主存的次数。
一个缓存除在Invalid状态外都可以满足cpu的读请求,一个Invalid 的缓存行必须从主存中读取(变成S或者E状态)来满足该CPU的读请求。
一个写请求只有在该缓存行是M或者E状态时才能被执行,如果缓存行处于S状态,必须先将其它缓存中该缓存行变成Invalid状态(也既是不允许不同CPU同时修改同一缓存行,即使修改该缓存行中不同位置的数据也不允许)。
该操作经常作用广播的方式来完成,例如:RequestForOwnership (RFO)。
缓存可以随时将一个非M状态的缓存行作废,或者变成Invalid状态,而一个M状态的缓存行必须先被写回主存。
一个处于M状态的缓存行必须时刻监听所有试图读该缓存行相对就主存的操作,这种操作必须在缓存将该缓存行写回主存并将状态变成S状态之前被延迟执行。
一个处于S状态的缓存行也必须监听其它缓存使该缓存行无效或者独享该缓存行的请求,并将该缓存行变成无效(Invalid)。
一个处于E状态的缓存行也必须监听其它缓存读主存中该缓存行的操作,一旦有这种操作,该缓存行需要变成S状态。
对于M和E状态而言总是精确的,他们在和该缓存行的真正状态是一致的。
而S状态可能是非一致的,如果一个缓存将处于S状态的缓存行作废了,而另一个缓存实际上可能已经独享了该缓存行,但是该缓存却不会将该缓存行升迁为E状态,这是因为其它缓存不会广播他们作废掉该缓存行的通知,同样由于缓存并没有保存该缓存行的copy的数量,因此(即使有这种通知)也没有办法确定自己是否已经独享了该缓存行。
从上面的意义看来E状态是一种投机性的优化:如果一个CPU想修改一个处于S状态的缓存行,总线事务需要将所有该缓存行的copy 变成Invalid状态,而修改E状态的缓存不需要使用总线事务。
从CPU 缓存看缓存的套路一、前言不同存储技术的访问时间差异很大,从计算机层次结构可知,通常情况下,从高层往底层走,存储设备变得更慢、更便宜同时体积也会更大,CPU和内存之间的速度存在着巨大的差异,此时就会想到计算机科学界中一句著名的话:计算机科学的任何一个问题,都可以通过增加一个中间层来解决。
二、引入中间层——缓存层为了解决速度不匹配问题,可以通过引入一个缓存中间层来解决问题,但是也会引入一些新的问题。
现代计算机系统中,从硬件到操作系统、再到一些应用程序,绝大部分的设计都用到了著名的局部性原理,局部性通常有如下两种不同的形式:时间局部性:在一个具有良好的时间局部性的程序当中,被引用过一次的内存位置,在将来一个不久的时间内很可能会被再次引用到。
空间局部性:在一个具有良好的空间局部性的程序当中,一个内存位置被引用了一次,那么在不久的时间内很可能会引用附近的位置。
有上面这个局部性原理为理论指导,为了解决二者速度不匹配问题就可以在CPU 和内存之间加一个缓存层,于是就有了如下的结构:三、缓存更新问题在CPU 中引入缓存中间层后,虽然可以解决和内存速度不一致的问题,但是同时也面临着一个问题:当CPU更新了其缓存中的数据之后,要什么时候去写入到内存中呢?,比较容易想到的一个解决方案就是,CPU 更新了缓存的数据之后就立即更新到内存中,也就是说当CPU更新了缓存的数据之后就会从上到下更新,直到内存为止,英文称之为writethrough,这种方式的优点是比较简单,但是缺点也很明显,由于每次都需要访问内存,所以速度会比较慢。
还有一种方法就是,当CPU更新了缓存之后并不马上更新到内存中去,在适当的时候再执行写入内存的操作,因为有很多的缓存只是存储一些中间结果,没必要每次都更新到内存中去,英文称之为writeback,这种方式的优点是CPU 执行更新的效率比较高,缺点就是实现起来会比较复杂。
上面说的在适当的时候写入内存,如果是单核CPU 的话,可以在缓存要被新进入的数据取代时,才更新内存,但是在多核CPU 的情况下就比较复杂了,由于CPU 的运算速度超越了1 级缓存的数据I\O 能力,CPU 厂商又引入了多级的缓存结构,比如常见的L1、L2、L3 三级缓存结构,L1 和L2 为CPU 核心独有,L3 为CPU 共享缓存。
如果现在分别有两个线程运行在两个不同的核Core 1 和Core 2 上,内存中i 的值为1,这两个分别运行在两个不同核上的线程要对i进行加1 操作,如果不加一些限制,两个核心同时从内存中读取i 的值,然后进行加1操作后再分别写入内存中,可能会出现相互覆盖的情况,解决的方法相信大家都能想得到,第一种是只要有一个核心修改了缓存的数据之后,就立即把内存和其它核心更新。
第二种是当一个核心修改了缓存的数据之后,就把其它同样复制了该数据的CPU 核心失效掉这些数据,等到合适的时机再更新,通常是下一次读取该缓存的时候发现已经无效,才从内存中加载最新的值。
四、缓存一致性协议不难看出第一种需要频繁访问内存更新数据,执行效率比较低,而第二种会把更新数据推迟到最后一刻才会更新,读取内存,效率高(类似于懒加载)。
缓存一致性协议(MESI) 就是使用第二种方案,该协议主要是保证缓存内部数据的一致,不让系统数据混乱。
MESI 是指4种状态的首字母。
每个缓存存储数据单元(Cache line)有4 种不同的状态,用2 个bit 表示,状态和对应的描述如下:单核读取步骤:Core 0 发出一条从内存中读取a 的指令,从内存通过BUS 读取a 到Core 0 的缓存中,因为此时数据只在Core 0的缓存中,所以将Cache line 修改为E 状态(独享),该过程用示意图表示如下:双核读取步骤:首先Core 0 发出一条从内存中读取a 的指令,从内存通过BUS 读取a 到Core 0 的缓存中,然后将Cacheline 置为E状态,此时Core 1 发出一条指令,也是要从内存中读取a,当Core 1 试图从内存读取a 的时候,Core 0检测到了发生地址冲突(其它缓存读主存中该缓存行的操作),然后Core 0 对相关数据做出响应,a 存储于这两个核心Core 0 和Core 1的缓存行中,然后设置其状态为S 状态(共享),该过程示意图如下:假设此时Core 0 核心需要对a 进行修改了,首先Core 0 会将其缓存的a 设置为M(修改)状态,然后通知其它缓存了a 的其它核CPU(比如这里的Core 1)将内部缓存的a 的状态置为I(无效)状态,最后才对a 进行赋值操作。