CACHE的一些名词术语
- 格式:pdf
- 大小:263.09 KB
- 文档页数:6
cache工作原理Cache(缓存)是计算机系统中常用的一种存储技术,用于提高数据访问速度。
它位于CPU和主内存之间,作为一个高速的存储器,存储了最常用的数据和指令。
当CPU需要访问数据时,首先会在Cache中查找,如果找到了就直接返回,这样可以大大减少访问主内存的时间。
Cache工作原理可以分为三个基本过程:命中、不命中和替换。
1. 命中(Cache Hit):当CPU需要访问数据时,首先会在Cache中查找。
如果所需数据在Cache中已经存在,即命中,CPU可以直接从Cache中读取数据,而不需要访问主内存。
这样的访问速度非常快,因为Cache的存取速度比主内存快得多。
2. 不命中(Cache Miss):如果所需数据不在Cache中,即不命中,CPU就需要从主内存中读取数据。
这个过程称为缺失处理。
缺失处理分为两个步骤:首先是从主内存中读取所需数据,然后将数据存放到Cache中。
这个过程需要额外的时间,所以访问速度相对较慢。
3. 替换:当Cache已满时,如果需要将新的数据存放到Cache中,就需要替换掉一部分已有的数据。
替换算法决定了哪些数据被替换。
常见的替换算法有最近最少使用(LRU)算法、先进先出(FIFO)算法和随机替换算法。
Cache的设计原则是以空间换时间,通过增加Cache的容量来提高访问速度。
Cache通常分为多级,从L1到L3,每一级的容量逐渐增大,但速度逐渐降低。
L1 Cache位于CPU核心内部,速度最快但容量最小;L2 Cache位于CPU芯片上,速度较快但容量较大;L3 Cache则位于CPU芯片外部,速度较慢但容量最大。
Cache的设计还需要考虑缓存一致性的问题。
当多个CPU同时访问同一个内存地址时,可能会导致数据不一致。
为了解决这个问题,Cache采用了缓存一致性协议,例如MESI(修改、独占、共享、无效)协议。
这个协议通过在Cache之间进行通信,保证了数据的一致性。
cache介绍前⾯已多次提到了Cache,这可是⼀个讨⼈喜欢的东西,您有必要详细了解它的作⽤与原理。
Cache是介于CPU与主内存之间、或者主内存与磁盘之间的⾼速缓冲器,其作⽤是解决系统中数据读写速度不匹配的问题。
其中介于CPU与主内存之间的缓冲器⼜称为RAM Cache,⽽介于主内存与磁盘驱动器之间的缓冲器则称之为Disk Cache,这⾥要讨论的是前者,也就通常简称的Cache。
那么,Cache是怎样⼯作的呢?您⼀定明⽩CPU的运算速度⽐主内存的读写速度要快得多,这就使得CPU在访问内存时要花很长的等待时间,从⽽造成系统整体性能的下降。
为了解决这种速度不匹配的问题,需要在CPU与主内存之间加⼊⽐主内存更快的SRAM(Static Ram,静态存储器)。
SRAM储存了主内存中的数据(专业术语称为“映象”),使CPU可以直接通过访问SRAM来读写数据。
由于SRAM的速度与CPU的速度相当,因⽽⼤⼤缩短了数据读写的等待时间,系统的整体速度也就得到了提⾼。
既然SRAM那么快,为什么不⽤来作为主内存呢?这是因为SRAM采⽤了与CPU相类似的半导体制造⼯艺,成本极⾼,只有在那些只关⼼性能不考虑价格的场合才会这样做。
这也就使得Cache粉墨登场了,它能将CPU⽤过的数据,以及结果保存起来,让CPU下次处理时先来访问Cache,如果没有可⽤的数据再去别处找,以此来提⾼运⾏速度。
Cache由标记存储器和数据存储器两个基本部分组成。
标记存储器是⽤来储存Cache的控制位与块地址标签,控制位⽤于管理Cache的读写操作,⽽块地址标签则记录着Cache中各块的地址。
这个地址包含了与主内存映射的块地址,并且都与Cache中的⼀块“数据”相对应。
⽽这块“数据”正是贮存于Cache的数据存储器中。
当CPU读取数据时,先通过地址总线把物理地址送到Cache中,与Cache中的块地址标签进⾏对⽐。
若相符合,则表⽰此数据已经存在于Cache中(此情况被戏称为“命中”),这时只需把Cache中的对应数据经由数据总线直接传送给CPU即可。
Cache学习(UC, WC)分类:cpu性能监测和性能调优 2014-01-16 15:59 1636人阅读评论(0) 收藏举报------------------------------------------转载请注明出处:/------------------------------------------这是我学习IA的cache时的笔记,绝大部分是阅读intel manual system programming卷一的总结,或者说是自己理解以后的翻译。
几个术语的解释:Cache line fill:当processor读一块memory并且发现这块memory是cachable的(通过MTRR来决定改块memory是否 cachable),那么processor 会把整个cache line读取到L1,L2或L3的cache中Cache hit:当处理器要读取一块memory的内容时,发现这块内容已经存在cache 中了,那么这就称为cache hitWrite hit:当处理器要写内容到一块memory时,发现cache中已经有这块memory对应的cache了,那么就叫write hit。
它会先写到cache,再根据当前系统的写策略决定是否要同时写到memory。
Cache类型:IA中,Cache类型一共有6种,l Strong Uncacheable (UC)这种cache类型的memory,任何读写操作都不经过cache。
一般是memory-map 的IO地址可以使用这种类型。
一般的ram强烈推荐不使用这种cache,否则效率会非常低。
l Uncacheable (UC-)特性与UC(Strong uncacheable)相同,唯一不同的是,这种类型的memory,可以通过修改MTRR来把它改变成WCl Write Combining (WC)这种类型的cache,特性与UC相似,不同的地方是它可以被 speculative read (什么叫speculative read?)每次write都可能被delay,write的内容会buffer到一个叫“write combining buffer”的地方。
cache的基本结构摘要:一、引言二、Cache的基本概念1.缓存的作用2.Cache的分类三、Cache基本结构1.组成要素2.工作原理四、Cache的优化策略1.缓存过期策略2.缓存替换策略3.缓存更新策略五、案例分析1.常见Cache应用场景2.Cache在实际项目中的应用六、结论正文:一、引言随着互联网技术的不断发展,网站性能优化成为越来越重要的课题。
在此背景下,缓存技术(Cache)应运而生,成为提高系统性能的有效手段。
本文将从Cache的基本概念、基本结构、优化策略等方面进行详细阐述,以期帮助读者更好地理解和应用Cache技术。
二、Cache的基本概念1.缓存的作用缓存的主要作用是减轻服务器负担,提高数据访问速度。
通过在客户端或服务器端存储热点数据,可以在访问数据时避免重复计算或查询,从而提高系统性能。
2.Cache的分类根据缓存的位置和作用,可以分为以下几类:- 客户端缓存:位于客户端(如浏览器)的缓存,用于存储访问过的网页、图片等资源。
- 服务器端缓存:位于服务器上的缓存,用于存储热点数据,如数据库查询结果、动态生成的内容等。
- 分布式缓存:通过多个服务器协同工作,实现大容量、高性能的缓存系统。
三、Cache基本结构1.组成要素一个典型的Cache结构包括以下几个要素:- 缓存空间:用于存储数据的空间,通常有限。
- 缓存策略:决定如何存储、更新和替换数据的规则。
- 缓存命中率:访问的数据在缓存中命中的比例,用以评估缓存效果。
2.工作原理Cache的工作原理简单来说就是“存、取、更新”:- 存:当客户端请求数据时,服务器将数据存储到缓存中。
- 取:当客户端再次请求相同数据时,优先从缓存中取出数据。
- 更新:当数据发生变化时,更新缓存中的数据,以确保客户端获取到最新数据。
四、Cache的优化策略1.缓存过期策略缓存数据具有一定的过期时间,超过过期时间后,数据会被自动删除。
常见的过期策略有:- 固定过期时间:设置一个固定的时间,如10分钟、30分钟等。
cache工作原理【引言】Cache是计算机系统中常用的一种高速缓存技术,它能够提高计算机系统的性能和响应速度。
本文将详细介绍Cache的工作原理,包括Cache的基本概念、工作流程和优化策略。
【正文】1. Cache的基本概念Cache是一种位于CPU和主存之间的高速缓存,用于暂时存储频繁使用的数据和指令。
它的作用是减少CPU对主存的访问次数,从而提高系统的运行速度。
Cache采用了一种快速访问的存储结构,通常由SRAM(静态随机存储器)构成。
2. Cache的工作流程(1)Cache分为多级,通常有L1、L2、L3等多级Cache。
L1 Cache距离CPU 最近,速度最快,容量最小,L2 Cache次之,L3 Cache再次之。
当CPU需要读取数据时,首先在L1 Cache中查找,如果找到则直接返回数据;如果没有找到,则继续在L2 Cache、L3 Cache和主存中查找,直到找到数据或者未找到。
(2)当CPU需要写入数据时,也会先在Cache中查找,如果找到则直接更新数据;如果没有找到,则需要从主存中读取相应的数据块到Cache中,然后再进行更新。
这样可以减少对主存的写入次数,提高写入效率。
3. Cache的优化策略(1)Cache的容量和速度是一对矛盾体,容量越大,速度越慢;容量越小,速度越快。
因此,设计Cache时需要权衡容量和速度的关系,根据不同的应用场景选择合适的Cache容量。
(2)Cache的替换策略是指当Cache已满时,如何选择替换哪些数据块。
常用的替换策略有随机替换、最近至少使用替换(LRU)等。
LRU替换策略是指替换最长期未被访问的数据块,以保证Cache中存储的是最常用的数据。
(3)Cache的预取策略是指在Cache中预先加载可能被使用到的数据块。
常用的预取策略有预取一致性(PC)和预取非一致性(NPC)。
PC策略是在访问一个数据块时,将其相邻的数据块一并加载到Cache中;NPC策略是根据程序的访问模式,预先加载可能被使用到的数据块。
什么是CacheCache”是什么Cache(即高速缓冲存储器(Cache Memory),是我们最常听到的一个词了。
在老鸟们眼中,这个词或许已没有再谈的必要,因为他们对Cache从设计的必要性到工作原理、工作过程等等都已了如指掌了;而对菜鸟朋友们而言,这些未必就很清楚。
那么,它们到底是指的什么呢?不用急,下面就请随笔者一起来全面认识Cache。
为什么要设计Cache我们知道,电脑的内存是以系统总线的时钟频率工作的,这个频率通常也就是CPU的外频(对于雷鸟、毒龙系列的处理器,由于在设计采用了DDR技术,CPU 工作的外频为系统总线频率的两倍)。
但是,CPU的工作频率(主频)是外频与倍频因子的乘积。
这样一来,内存的工作频率就远低于CPU的工作频率了。
这样造成的直接结果是:CPU在执行完一条指令后,常常需要“等待”一些时间才能再次访问内存,极大降了CPU工作效率。
在这样一种情况下,Cache就应运而生了!Cache是什么Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。
Cache 存储部件一般采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。
而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址变换部件及替换控制部件等。
至于它们各自又是怎样工作的、有何作用等等,我想我们就没有必要做进一步的研究,知道一般Cache分为L1 Cache(其中又分为数据Cache、代码Cache)、L2 Cache就行了。
Cache是怎样工作的我们知道,CPU运行程序是一条指令一条指令地执行的,而且指令地址往往是连续的,意思就是说CPU在访问内存时,在较短的一段时间内往往集中于某个局部,这时候可能会碰到一些需要反复调用的子程序。
电脑在工作时,把这些活跃的子程序存入比内存快得多的Cache 中。
CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中”,此时CPU直接从Cache中调用该内容;否则,就称为“不命中”,CPU只好去内存中调用所需的子程序或指令了。
高速缓冲存储器Cache简介○王军评估计算机的主要性能指标之一是运行速度。
计算机的程序是在C PU中执行的,而平时程序和数据则存放在存储器中。
存储器分为外部存储器(如软盘、硬盘、磁带等)和内部存储器。
外部存储器容量大,速度慢,内部存储器容量小,速度快。
内存的使用在一定程度上解决了高速C PU和慢速存储设备之间速度上的矛盾。
但C PU和内存之间仍然存在速度上不匹配的矛盾。
为充分利用C PU的运行速度。
在C PU和内存之间又引入了高速缓冲存储器(C ac he)。
一、Cache的基本概念高速缓冲存储器Ca che是位于C PU和主存储器之间容量小而速度快的存储器,通常由SR AM(静态R A M)组成。
随着微电子技术和计算机技术的发展,CPU的工作频率越来越高,DR AM(动态R A M)可以用最低的价格和最小的体积提供更大的存储器空间,但是DR AM的速度难以满足C PU 的要求,因而访问系统存储器时都要插入等待周期,这对高速C PU来说是一种极大的浪费。
采用C ache技术是一种现实的解决问题的方法。
S R AM可以提供最高的总线性能。
由S R AM组成的C ac he即是把主存储器看作是高速存储器而设置的小容量局部存储器,这种高速存储器是面向C PU工作的存储器,存储C PU常用的数据和代码,Ca che的有效性是利用了程序对存储器的访问在时间和空间上具有局部区域性的特性,即对大多数程序来说,在某个时间片内会集中重复地访问某一个特定的区域。
C ac he通常由相联存储器实现。
相联存储器的每一个存储块都具有额外的存储信息,称为标签(T a g)。
当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签FRA M E E t h er n et—I IFRA M E E t h er n et—SNA PN e t W ar e DO S Requ es t erFI R ST N E TW O RK D RI V E=FN ET W A R E PR O TO CO L=N D S BI N D此时假设使用N E2000网卡,中断号为5,端口地址为300。
Cache的原理、设计及实现前言虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。
若CPU工作速度较高,但内存存取速度相对较低,则造成CPU等待,降低处理速度,浪费CPU的能力。
如500MHz的PⅢ,一次指令执行时间为2ns,与其相配的内存(SDRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来?如何减少CPU与内存之间的速度差异?有4种办法:一种是在基本总线周期中插入等待,但这样会浪费CPU的能力。
另一种方法是采用存取时间较快的SRAM作存储器,这样虽然解决了CPU与存储器间速度不匹配的问题,但却大幅提升了系统成本。
第3种方法是在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache法。
还有一种方法,采用新型存储器。
目前,一般采用第3种方法。
它是PC系统在不大增加成本的前提下,使性能提升的一个非常有效的技术。
本文简介了Cache的概念、原理、结构设计以及在PC及CPU中的实现。
Cache的工作原理Cache的工作原理是基于程序访问的局部性。
对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。
指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。
因此,对这些地址的访问就自然地具有时间上集中分布的倾向。
数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。
这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。
根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。
CACHE的一些名词术语Allocation在CACHE中发现一个位置,并把新的cache数据存到这个位置的过程。
这个处理过程可能包括evicting(驱逐)cache中已存在的数据,从而为新的数据腾出空间。
Associativity指每个Set(集)里包含的line frames(行帧)数。
也就是cache的way(路)数。
Capacity miss容量失效因为cache的容量限制,导致不能包括一个程序的整个working set(工作集),从而造成cache失效。
这是三个cache失效原因(容量、强制、冲突)之一。
Clean干净一个有效的cache行,它的内容没有被更高层内存或CPU修改写过,我们称这个cache行是“干净”的,显然相反状态是dirty(“脏”)Coherence一致性如果读内存任意地址的数据返回的总是这个地址的数据最近的更新,我们说内存系统是一致的。
存取指CPU和EDMA等的存取。
Compulsory miss强制失效有时称为首次引用失效。
强制失效是一种肯定发生的一种失效,因为数据事先从没有使用过也就没有机会被cache。
但有些情况也被称为强制失效,尽管它们不是第一被引用的数据,比如对非写定位的cache进行同一位置的重复写,以及对一个不被cache内存区域的存取。
这是三个cache失效原因(容量、强制、冲突)之一。
Conflict miss 冲突失效由于Associativity的限制导致的而非容量限制造成的cache失效。
Direct-mapped cache直接映射cache直接映射cache映射低层内存的每个地址到cache的一个单一位置。
这样低层内存的多个地址可能被映射到cache中的同一位置上。
它相当于1-wayset-associative cache。
Dirty脏对writeback回写cache,写到达多级存储结构的某一层,并更新这一层内容,但并不更新更低层的内存,这样,当一个cache行有效并包含更新后的数据,但却不更新下一更低层的内存,我们说这个cache是“脏”的,显然一个有效行的相反状态是“干净”。
DMA直接内存存取直接内存存取,通常一个DMA操作copy一个内存块从一个区域到另一个区域,或在外设和内存之间传输数据。
对C64x DSP,DMA传输使用EDAM,这些DMA传输与程序执行是并行的。
从cache一致性角度,EDMA的存取可以看成是另外一个并行处理器。
Eviction驱逐从cache移出一个line从而为新的数据腾出空间的过程我们成为Eviction。
Eviction可以由用户发出的writeback-invalidate产生,被驱逐的line我们称为victim line。
当victim line是dirty(“脏”)的时候,数据必须回写道下一级存储器中以维持内存的一致性。
Execute packet执行包在一个周期里并行执行的一个指令块,一个执行包可以包含1-8个指令。
Fetch packet取指包1个周期里存取的包含8条指令的指令块。
显然一个取指包可以包含多个执行包,这样可能消耗多个周期。
First-reference miss首次引用失效是强制失效的一种形式。
见强制失效。
Fully-associative cache全关联cache任何内存地址都可以被存储在cache的任何位置。
这样的cache非常灵活,但通常硬件上不可实现。
这种cache同直接映射cache和集关联cache形成鲜明对比,这两种cache在定位策略方面都有更多的限制,全关联cache只具有概念上的意义,当分析直接映射cache和集相关cache性能时对区分冲突失效和容量失效是有用的,全关联cache等价于这样一个集关联cache:它有line frame个way,仅有一个set。
Higher-level memory高层内存在多级内存系统中,距离CPU较近的内存称为高层内存。
在C64x系统中,最高层内存通常是L1层CACHE,这一层的内存直接同CPU相连。
较高层内存通常充当较低层内存的CACHE。
Hit命中当请求的内存地址的数据在cache中,我们说cache命中。
命中的反义词是miss(失效)。
Cache的命中使cpu的阻塞时间最短,因为才cache中去数据要比从原始位置取更快。
在某一层内存的“失效”可能在较低层“命中”。
Invalidate无效将一个有效的行标记为无效行的过程。
这相当于废弃了这一行的内容,但并不回写任何更新的数据。
当与writeback组合时,会先将dirty数据更新到保存有这个地址的下一层内存。
这通常用于维持内存的一致性。
Least Recently Used(LRU)allocation对于set-associative和fully-associative cache,最近最少使用原则被用来一个set里选择一个line frame作为被驱逐的line,用来保存新的cache数据。
Line行是cache处理的最小单位块。
显然一个cache行的尺寸要比CPU或高层内存存取的数据尺寸要大。
例如尽管CPU可以进行单字节的存取,但如果发生一次读失效,则cache会将整个cache行的数据读入。
Line frame行帧Cache的一个位置,包含被cache的数据(一行)、一个关联的tag地址,这个行的状态信息。
状态信息包括这一行是否valid(有效)、dirty(脏)、LRU 状态Line size行尺寸一个行的尺寸,单位字节。
Load through当CPU请求在第一级和第二级cache中都失效时,数据从外部内存获得,同时会存储在第一级和第二级内存中,如果一个cache,它保存数据并同时把数据送到高一层cache中,这种cache我们称之为load-through cache。
相对于那种首先存储数据到低层然后第二步再把数据送到高层的cache,这种cache可以减少阻塞时间。
Long-distance access长距离存取CPU对不被cache内存区域数据的存取。
显然,由于这种存取,不会影响cache 的状态,但速度会比较慢。
Lower-level memory 低层内存在多级内存系统中,距离CPU较远的内存称为低层内存。
在C64x系统中,最低层内存包括L2以下的外部系统内存和内存映射的外设。
LRU表示cache line的最近最少使用的状态信息。
Memory ordering内存访问排序定义在内存里以什么样的顺序看内存操作的结果,有时称为consistency(连贯性)。
在分级结构的特定层的强内存访问排序表示在这一层上不可能以不同与程序序的顺序来观察内存存取的结果。
松散内存访问排序允许内存分级体系结构以不同的顺序看内存操作的结果,注意强排序并不要求系统内存以程序序顺序操作,而仅仅是使操作的结果在其它请求者看来是与程序序一致的。
Miss失效当请求的内存地址的数据不在cache中,就是说发生了cache失效。
一个cache 失效,会引起阻塞请求者直到line frame被定位,数据从低层内存中获得为止。
在某些情况下,比如CPU对L1D出现写失效,阻塞CPU是不必要的。
Cache失效通常分为三种类型:强制失效、冲突失效和容量失效。
Miss pipelining服务单一的cache失效的过程需要多个流水周期。
如果对连续的失效处理进行流水线操作,显然就增加对失效处理的效率,降低了阻塞周期。
Read allocate读失效cache是仅在发生读失效时才在cache中定位空间并把数据读入。
写失效发生时不会产生数据读入到cache中,而是直接把写数据送到下一层cache 中。
Set集Line frames的一个集合。
直接映射的cache一个set包含一个line frame,N-way set-associative cache每个set包含N个line frame。
Full-associative cache 仅有一个set,这个唯一的set包含所有的line frames。
Set-associative cache集相关cache一个set-associative cache包含多个line frames用于cache低层内存。
当为一个新的line数据定位一个空间时,选择哪个line frame是基于cache的定位策略的。
C64x是基于LRU策略的。
Snoop侦测是lower-level memory(低层内存)查询higher-level memory(高层内存)以确定高层内存是否包含给定地址的数据的一种方法。
Snoop的主要目的是通过允许低层内存请求高层内存进行数据更新来维持内存的一致性,snoop操作可以触发writeback(回写),或更普通的writeback-invalidate(回写并无效),触发writeback-invalidate(回写并无效)操作的snoop有时又称为snoop-invalidates。
Tag标签地址高位作为一个Tag存储在line中,在决定cache是否命中的时候,cache 控制器会查询Tag。
Thrash当存取操作引起cache性能遭受严重损坏,我们说thrash cache了。
Thrash 的原因可以有很多:一个可能是算法在短时间存取太多的数据而很少或根本不重复使用。
也就是说working set太大。
这样的算法将引起非常严重的容量失效。
另一种情况是算法重复存取一小组不同地址的数据,这些数据映射到cache的相同set,这样就人为造成严的冲突失效。
Touch对一个给定地址的存储器操作,我们称之为touch那个地址。
Touch也可以指读数组元素或存储器地址的其它范围,定位它们在一个特定层cache的唯一目的。
一个CPU中心环用作touch一个范围的内存是为了定位它到cache经常被引用作为一个touch环。
Touching一个数组是软件控制预取数据的一种形式。
Valid有效当一个cache line保存从下一级内存取的数据,那么这个line frame就是有效的。
无效状态发生在line frame不保存任何数据,或者说还没有被cache的数据,或先前cache的数据由于某种原因(内存一直性要求、程序要求等)被无效。
有效的状态并不表示数据是否已经被修改(其实这有另外的状态来表示,即dirty 或clean)。
Victim从cache移出一个line从而为新的数据腾出空间的过程我们成为Eviction。
Eviction可以由用户发出的writeback-invalidate产生,被驱逐的line我们称为victim。
当victim line是dirty(“脏”)的时候,数据必须回写到下一级存储器中以维持内存的一致性。