CN103514111A - 一种Cache的替换方法及装置 - Google Patents
一种Cache的替换方法及装置 Download PDFInfo
- Publication number
- CN103514111A CN103514111A CN201210207136.0A CN201210207136A CN103514111A CN 103514111 A CN103514111 A CN 103514111A CN 201210207136 A CN201210207136 A CN 201210207136A CN 103514111 A CN103514111 A CN 103514111A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- replacement period
- data replacement
- overlarge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000003044 adaptive effect Effects 0.000 claims description 7
- 230000009189 diving Effects 0.000 abstract description 30
- 230000003111 delayed effect Effects 0.000 abstract description 7
- 230000002045 lasting effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 10
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000004904 shortening Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种Cache的数据替换方法及装置,所述方法包括:获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;如果出现数据突发流量过大情况,则确定与所述数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。本发明实施例通过确定与当前发生的数据突发流量相适应的数据替换周期的方式,延缓Cache内已保存的数据被替换的时间,推迟了计算机发生性能跳水的时间,缩短了性能跳水持续的时长,并且还降低了性能跳水的程度。
Description
技术领域
本发明涉及数据处理技术,具体涉及一种高速缓冲存储器(Cache)的替换方法及装置。
背景技术
随着计算机技术的飞速发展,处理器与存储器访问速度之间的差距越来越大,导致内存墙问题也越来越严重,成为影响计算机系统性能最主要的瓶颈之一。所谓内存墙是指,内存性能严重限制CPU性能发挥的现象。
为了缓解CPU与内存之间的速度差距,现有的计算机体系结构广泛采用在CPU与内存之间设置高速缓冲存储器Cache的方式,将一些可能会被反复调用的程序数据或者报文数据存入Cache中。在CPU访问内存时,首先判断所要访问的内容是否在Cache中,如果在Cache中,则被称为“命中”,此时,CPU直接从Cache中调用所要访问的内容;如果不在Cache中,则被称为“缺失”,CPU需要去内存中调用所要访问的内容。因为Cache的存取速率非常快,使得CPU的利用率大大提高,进而也使整个计算机系统的性能得以提升。
数据被存入Cache中,在需要时被CPU调用进行解析和处理操作,一般情况下,数据输入Cache的速度远小于CPU处理数据的速度,因此CPU有足够的时间处理Cache内的数据,因此,在有新数据输入Cache需要进行数据替换时,Cache可以按照CPU的指示选择已处理过的数据作为被替换对象替换出Cache。而在出现数据突发流量过大的情况时,数据存入Cache的速度大于CPU的处理速度,考虑到Cache的容量问题,此时会将当前输入的数据视为最近需要访问的数据存入到Cache,而替换掉Cache中先前已保存的数据。在这种突发情况下,选择出的被替换对象可能还未被CPU处理,如果将这部分数据从本级Cache替换到下一级Cache(某些计算机可能配置有二级、三级缓存,每级缓存比前一级缓存容量大且速度慢,此处是指将先前已保存的数据从一级缓存中替换到二级、甚至三级缓存中)或者替换到DDR(Double Data Rate,双倍速率同步动态随机存储器)中,在CPU需要调用该部分数据时,只能去下一级Cache或者DDR中读取,这就降低了本级Cache的数据命中率,而数据命中率低就意味着CPU在进行数据处理时需要去其它地方读取数据,这势必会增加CPU读取数据的时间,降低CPU的处理速度,导致计算机性能跳水。
发明内容
本发明实施例提供一种Cache的数据替换方法及装置,在出现数据突发流量很大的情况时,通过合理替换Cache内已保存的数据,实现推迟计算机发生性能跳水的时间,缩短性能跳水的持续时长,降低性能跳水程度的目的。
为此,本发明实施例提供如下技术方案:
一种Cache的数据替换方法,所述方法包括:
获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;
如果出现数据突发流量过大情况,则确定与所述数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
一种Cache的数据替换装置,所述装置包括:
工作状态获取单元,用于获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;
数据替换周期确定单元,用于在出现数据突发流量过大情况时,确定与所述数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
本发明实施例一种Cache的数据替换方法及装置,通过获取Cache的工作状态判断当前是否出现数据突发流量过大情况,如果出现,则说明Cache当前采用的数据替换周期不能适应本次的数据突发流量,需要调整数据替换周期,使之与本次数据突发流量相适应。本发明实施例通过确定合适的数据替换周期的方式,延缓Cache内已保存的数据被替换的时间,推迟了计算机发生性能跳水的时间,缩短了性能跳水持续的时长,并且还降低了性能跳水的程度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例Cache的数据替换方法的流程图;
图2-a为输入Cache的数据出现突发流量过大情况的示意图;
图2-b为读写分配请求次数为1时性能跳水情况的曲线示意图;
图2-c为读写分配请求次数为无穷大时性能跳水情况的曲线示意图;
图2-d为读写分配请求次数为合适值时性能跳水情况的曲线示意图;
图3是本发明实施例Cache的数据替换装置的结构示意图;
图4是本发明实施例中工作状态获取单元的第一种实现方式的结构示意图;
图5是本发明实施例中工作状态获取单元的第二种实现方式的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
本发明实施例一种Cache的数据替换方法及装置,首先利用Cache的工作状态判断当前是否出现数据突发流量过大情况;其次在出现数据突发流量过大情况时,确定与该数据突发流量相适应的数据替换周期,使Cache按照确定的数据替换周期替换Cache内已保存的数据,以此实现降低现有技术中计算机性能跳水程度的目的。
如图1所示,是本发明实施例Cache的数据替换方法的流程图,包括:
步骤101,获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况。
在本发明实施例中,所述数据突发流量过大是指CPU未处理的数据量超过预定的阈值。
现有的计算机体系结构中,可以通过GMAC(Gigabit Media Access Control,千兆比特以太网络媒体存取控制器)将数据存放到Cache中,以使CPU直接对Cache中保存的数据进行读写操作,完成数据的解析和处理,以此实现提升计算机系统性能的目的。
本发明实施例为了避免在数据突发流量过大时,因为替换掉Cache中已保存但并未被CPU调用处理的数据,导致后续CPU在需要处理该部分被替换掉的未处理数据时,要去存取速度较慢的下级Cache甚至DDR中读取引起计算机性能跳水问题。首先要判断当前时刻是否出现了数据突发流量过大情况,如果出现,则按照本发明实施例的方案来降低计算机性能跳水的程度,即突发流量过大是触发本发明实施例替换方法的条件;如果未出现,则在需要替换Cache内保存的数据时即时采用现有的Cache替换算法选择被替换对象完成替换操作动作。现有的Cache替换算法可包括伪随机替换算法、最近最少使用算法、伪最近最少使用算法等。
本步骤即是获取Cache工作状态,实时判断是否发生数据突发流量过大情况的过程,本步骤就为后续确定与数据突发流量相适应的数据替换周期提供了一定的技术基础。
对本步骤中获取Cache的工作状态以及判断发生数据突发流量过大情况的具体方式此处暂不详述。
步骤102,如果出现数据突发流量过大情况,则确定与数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
现有技术中,不论GMAC是正常的向Cache存入数据(此处的正常向Cache存入数据包括:未出现突发流量的情况、出现突发流量但CPU未处理的数据量未超过预定阈值的情况)还是在突发流量过大情况时向Cache存入数据,Cache都以相同方式应对,即在需要替换数据时立即在已保存的数据中选择被替换对象,并将被替换对象替换到下级Cache或者DDR中,这就可能会将未被CPU处理的数据也替换出本级Cache,导致Cache出现连续的数据缺失,进而引发计算机性能跳水。
与现有技术相比,本发明实施例首先判断当前是否出现了数据突发流量过大情况,针对正常向Cache存入数据和在突发流量过大情况时向Cache存入数据两种情况进行区别处理。如果是正常向Cache存入数据,则在需要替换数据时即时进行替换;如果是突发情况时存入数据,则确定一个与本次突发情况相适应的数据替换周期,按照确定的数据替换周期在已保存的数据中选择被替换对象,进行数据替换,这样就能适当的延缓Cache内已保存数据被替换的时间,为CPU处理这部分数据预留出一定的时间,使CPU在这段时间内尽量多的处理这部分数据,以减少被替换出本级Cache的数据中未处理数据的数量。而尽量减少被替换出本级Cache的未处理数据的数量,就能降低CPU去下级Cache或者DDR中读取数据的可能性,避免出现连续的数据缺失,保证了本级Cache的数据命中率,因此也就降低了计算机性能跳水的程度。
需要说明的是,本发明实施例亦可利用伪随机替换算法、最近最少使用算法、伪最近最少使用算法等现有的Cache替换算法来选择被替换对象。
下面对步骤101中获取Cache的工作状态以及判断发生数据突发流量过大情况的具体方式进行解释说明。
在GMAC正常的向Cache存入数据时,CPU有足够的时间处理Cache内已保存的数据,不会出现数据还未被CPU处理就被替换出本级Cache的情况,因此,本发明实施例以Cache内未处理数据的实际情况为依据,当有数据需要存入Cache时,按照以下两种具体实现方式判断是否出现突发流量过大:
第一种方式是,直接利用Cache内未处理的数据数量进行突发流量过大判断。本方式中,获取Cache的工作状态即是获取Cache内已保存的数据中未处理的数据数量P的过程。相应地,判断是否出现突发流量过大情况即是判断未处理的数据数量P是否大于预设数值,如果大于,则判定出现数据突发流量过大情况;否则,判定未出现数据突发流量过大情况,CPU可以正常的处理这部分未处理数据,不会出现性能跳水。
以8个Way的Cache(即对Cache分组后,每组包含8个行)为例,如果预设数值为3,则在发现Cache内有2个Way填充着未读过的数据时(即P=2),就判定未出现数据突发流量过大情况,在发现Cache内有4个甚至8个Way填充着未读过的数据时,就判定出现了数据突发流量过大情况。
第二种方式是,利用向Cache输入数据的速度以及CPU的处理速度间接进行突发流量过大判断。本方式中,获取Cache的工作状态即是获取单位时间内输入Cache的数据数量N以及单位时间内CPU处理的数据数量M的过程。相应地,判断是否出现突发流量过大情况即是判断所述N是否大于所述M,如果大于,则说明CPU的处理速度比数据输入Cache的速度要慢,这样Cache内未处理的数据很可能就会被新输入的数据替换出本级Cache,因此判定出现了数据突发流量过大情况;如果N不大于M,则判定未出现数据突发流量过大情况。
例如,如果单位时间内向Cache输入的数据数量N=10,而单位时间内CPU处理的数据数量M=4,则判定出现了数据突发流量过大情况。
综上所述,本发明实施例从两个角度出发来定义数据突发流量过大的含义,一个角度是Cache内CPU未处理的总的数据数量,这是一种最直观的反映突发流量过大的方式;另一个角度是单位时间内进出Cache的动态数据数量,这是一种最准确的反映突发流量过大的方式。
针对上述两种实现步骤101获取Cache工作状态以及判断发生数据突发流量过大情况目的的具体方式,步骤102也分别对应有不同的设置所述数据替换周期的方式,具体为:
(1)如果步骤101中通过获取Cache内已保存的数据中未处理的数据数量P,并以判断P大于预设数值的方式确定当前出现了数据突发流量过大情况,则利用该获取到的P值设置与本次数据突发流量相适应的数据替换周期。具体公式为:
数据替换周期T=K1*P,其中,K1为正整数。也就是说数据替换周期T与P成正比关系,未处理的数据数量P越大,则数据替换周期T就越长;反之数据替换周期T就越短。
仍以8个Way的Cache为例,如果Cache内部有4个Way填充着未读过的数据,则可将数据替换周期设置为T=3ns,也就是说,对于新进入Cache的数据采用每3ns的间隔替换一次已在Way的数据。如果Cache内部有8个Way填充着未读过的数据,则可将数据替换周期设置为T=6ns,也就是说,对于新进入Cache的数据采用每6ns的间隔替换一次已在Way的数据。
(2)如果步骤101中通过获取单位时间内输入Cache的数据数量N以及CPU处理的数据数量M,并以判断N大于M的方式确定当前出现了数据突发流量过大情况,则利用N与M的比值设置与本次数据突发流量相适应的数据替换周期。具体公式为:
数据替换周期T=K2*N/M,其中,K2为正整数。也就是说数据替换周期T与N成正比关系,与M成反比关系,N/M的比值反映了本次数据突发流量对Cache的冲击强度,比值越大,说明冲击强度越大,则需要设置的数据替换周期T就越长。具体可体现为:在M值相同的情况下,如果单位时间内输入到Cache的数据数量N值越大,则数据替换周期T就越长;而在N值相同的情况下,如果单位时间内CPU处理的数据数量M越大,则数据替换周期T就越短。
例如,在N/M=2~4时,可将数据替换周期设置为T=6ns,也就是说按照每6ns的间隔替换一次Cache内的数据。在N/M=4~8时,可将数据替换周期设置为T=8ns,也就是说按照每8ns的间隔替换一次Cache内的数据。
需要说明的是,对于本发明实施例中的数据替换周期T来说,可以体现为以Cache的工作时钟为基准的固定替换时长,即数据替换周期T包含L个工作时钟,每隔L个工作时钟就对Cache内的数据进行一次替换,因为Cache的工作时钟是固定的,因此数据替换周期T也是固定时长的。另外,数据替换周期T也可以体现为以CPU的读写分配请求次数为基准的不固定时长,即数据替换周期T包含I次读写分配请求,每隔I次读写分配请求就对Cache内的数据进行一次替换,因为每两次读写分配请求的间隔可能不相同,这就导致数据替换周期T也不是固定时长。虽然采用不固定时长的方式替换数据可能使得每次替换数据的间隔都不相同,但是这种方式是针对CPU的实际读写操作处理动作进行的,因此对Cache内数据替换的准确性以及针对性都更强。
上述介绍数据替换周期设置方式所举示例中,均是以Cache的工作时钟为基准的固定替换时长。例如,如果Cache的工作时钟为1ns,则对于Cache内部有4个Way填充着未读过的数据,数据替换周期设置为T=3ns的示例而言,每个数据替换周期T内包含3个工作时钟,也就是说Cache每隔3个工作时钟就进行一次数据替换。对于N/M=2~4,数据替换周期设置为T=6ns的示例而言,说明每个数据替换周期T内包含6个工作时钟,也就是说Cache每隔6个工作时钟就进行一次数据替换。
另外,需要说明的是,本发明实施例的数据替换周期是一个动态的周期,不同的数据突发流量过大情况对应不同的周期,每个数据替换周期仅限于与其对应的数据突发情况。例如,某次数据突发情况对应的数据替换周期为T1=3个工作时钟,则在本次突发情况的数据都处理完毕之后,如果数据是正常的存入Cache,则数据替换周期T2=1个工作时钟,如果又出现另一次数据突发流量过大情况,则再为该突发情况设置替换周期,例如T3=5个工作时钟。
下面以数据替换周期T包含不同读写分配请求次数为例,对计算机性能跳水程度、性能跳水起止时刻以及持续时长进行简单介绍。
参见图2-a,表示GMAC在t1-t2时间段内向Cache输入的数据出现了突发流量过大情况,图2-b、2-c以及2-d分别示出了在出现图2-a所示的突发流量过大情况时,读写分配请求次数I取不同数值时相对应地计算机的性能跳水程度、性能跳水起止时刻以及性能跳水持续时长。
(1)如图2-b所示,为读写分配请求次数I1=1时性能跳水情况的示意图。表示每次读写分配请求都进行一次数据替换,这就是现有技术中在出现数据突发流量过大情况时进行数据替换的方法,性能跳水程度为d1,持续时长为t3-t4。
(2)如图2-c所示,为读写分配请求次数I2=无穷大时性能跳水情况的示意图。表示不替换Cache内已保存的数据,而是将GMAC输入的数据全部存入下级Cache或者DDR。从图中可以看出,性能跳水程度并未降低仍为d1,但是发生性能跳水的时间从t3时刻推迟到了t5时刻,而对于性能跳水结束的时刻t6来说,t6可能与t4相同,也可能滞后于t4,也就是说,I2=无穷大情况性能跳水持续的时长不小于I1=1情况性能跳水持续的时长,具体原因如下:
因为I2=无穷大情况会将外部输入的数据全部存入下级Cache或者DDR,此时计算机性能跳水持续的时长即是CPU处理下级Cache或者DDR中保存的全部输入数据所需的时间。而对于I1=1的情况来说,可能存在将外部输入数据替换至Cache时,Cache选择出的被替换对象为CPU已处理过的数据,那么此时存入下级Cache或者DDR的未处理数据的数量就少于外部输入的数据数量,因此相对于I2=无穷大情况来说,I1=1情况性能跳水现象就会提前结束,性能跳水持续的时长也略短一些。当然,也可能存在一种极致的情况,就是Cache每次选择的被替换对象都是CPU未处理过的数据,那么不论是I1=1情况还是I2=无穷大情况,CPU需要处理的数据数量相同,相应地性能跳水持续的时长也相同。
(3)如图2-d所示,为读写分配请求次数I3=合适值时性能跳水情况的示意图,例如,I3=3表示每3次读写分配请求才进行一次数据替换。从图中可以看出,在I3=合适值时性能跳水程度明显有所降低为d2,另外,发生性能跳水的时间也有所推迟,从t3时刻推迟到了t7时刻(需要说明的是t7≤t5,因为I2=无穷大的情况不替换Cache内已保存的数据,性能跳水是在CPU处理完Cache内已保存的数据之后发生的,而I3=合适值的情况是要根据数据替换周期替换Cache内已保存的数据,因此就会有部分数据被替换出本级Cache,致使CPU在处理这部分被替换出的数据时,需要去下级Cache或者DDR中读取,导致性能跳水提前发生),而性能跳水结束的时刻t8要小于t4,也就是说I3=合适值情况性能跳水持续的时长要小于I1=1情况性能跳水持续的时长,具体原因如下:
I1=1说明在每次读写分配请求时Cache都要进行一次数据替换,因为CPU处理数据的速度小于数据进入Cache的速度,因此在选择被替换对象时,必然会出现将大量的未处理数据作为被替换对象替换出本级Cache的情况,而I3=合适值情况会给CPU预留出一定的时间来处理Cache内已保存但未处理的数据,因此这就大大降低了未处理数据作为被替换对象的可能性,相对于I1=1情况而言,I3=合适值情况中CPU需要去下级Cache或者DDR中读取并处理的数据数量要少一些,因此,性能跳水持续的时长也就略短一些。
通过图2-b、2-c以及2-d可知,本发明实施例设置与数据突发流量相适应的数据替换周期,就能降低计算机性能跳水的程度,同时还能延缓发生性能跳水的时间以及缩短性能跳水持续的时长。
需要说明的是,本发明实施例中所述的数据可为程序数据或者报文数据。而一般情况下程序数据出现突发流量过大的情况较少,所以本发明实施例主要针对报文数据设计。在利用本发明实施例的方法调整数据替换周期之前,可以先判断一下输入Cache的数据类型,如果是程序数据,则按照现有技术在需要替换时即时替换Cache内已保存的数据(被替换的数据可为程序数据,也可为报文数据);如果是报文数据,则利用本发明实施例提供的方法设置与突发流量相适应的数据替换周期,按照设置的数据替换周期替换Cache内已保存的数据。当然,对程序报文也采用本发明实施例的方法设置数据替换周期对提高计算机性能来说更好。
相应地,本发明实施例还提供一种Cache的数据替换装置,如图3所示,是该装置的一种结构示意图。
在该实施例中,所述装置包括:
工作状态获取单元301,用于获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;
数据替换周期确定单元302,用于在出现数据突发流量过大情况时,确定与所述数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
本发明实施例首先利用Cache的工作状态判断当前是否出现了数据突发流量过大情况,以实现对正常向Cache存入数据和在突发流量过大情况时向Cache存入数据两种情况进行区别处理。其次,在出现数据突发流量过大情况时,确定一个与本次数据突发流量相适应的数据替换周期,使Cache按照确定的数据替换周期替换Cache内已保存的数据,延缓Cache内已保存数据被替换的时间,推迟了发生性能跳水的时间,缩短了性能跳水持续的时长,并且降低了性能跳水的程度。
如图4所示,为工作状态获取单元的第一种实现方式的结构示意图,包括:
第一获取子单元401,用于获取所述Cache已保存的数据中未处理的数据数量P;
第一判断子单元402,用于判断所述P是否大于预设数值,如果大于,则判定出现数据突发流量过大情况。
在工作状态获取单元以未处理的数据数量P大于预设数值的方式判断出现数据突发流量过大情况时,相应地,所述数据替换周期确定单元则利用所述P设置所述数据替换周期,具体公式为:数据替换周期T=K1*P,其中,K1为正整数。
以8个Way的Cache为例,如果预设数值为3,则在发现Cache内有4个Way填充着未读过的数据时(即P=4),就判定出现了数据突发流量过大情况,此时可将数据替换周期设置为T=3ns,以使Cache按照该设置的周期每3ns的间隔进行一次数据替换。
需要说明的是,数据替换周期的大小是由Cache内未处理数据的数量P决定的,未处理的数据数量P越大,则数据替换周期T就越长;反之数据替换周期T就越短。
如图5所示,为工作状态获取单元的第二种实现方式的结构示意图,包括:
第二获取子单元501,用于获取单位时间内输入Cache的数据数量N以及单位时间内CPU处理的数据数量M;
第二判断子单元502,用于判断所述N是否大于所述M,如果大于,则判定出现数据突发流量过大情况。
在工作状态获取单元以单位时间内输入Cache的数据数量N大于CPU处理的数据数量M的方式判断出现数据突发流量过大情况时,相应地,所述数据替换周期确定单元则利用所述N与M的比值设置所述数据替换周期,具体公式为:数据替换周期T=K2*N/M,其中,K2为正整数。
需要说明的是,数据替换周期T与N成正比关系,与M成反比关系,与A/B成正比。N/M的比值反映了本次数据突发流量对Cache的冲击强度,比值越大,说明冲击强度越大,则需要设置的数据替换周期T就越长。具体可体现为:在M值相同的情况下,如果单位时间内输入到Cache的数据数量N值越大,则数据替换周期T就越长;而在N值相同的情况下,如果单位时间内CPU处理的数据数量M越大,则数据替换周期T就越短。
例如,在N/M=2~4时,可将数据替换周期设置为T=6ns,也就是说按照每6ns的间隔替换一次Cache内的数据。在N/M=4~8时,可将数据替换周期设置为T=8ns,也就是说按照每8ns的间隔替换一次Cache内的数据。
数据替换周期可体现为以Cache的工作时钟为基准的固定替换时长,或者,也可体现为以CPU的读写分配请求次数为基准的不固定时长。对于不固定时长的方式而言,虽然每次替换数据的间隔都不相同,但是这种方式是针对CPU的实际读写操作处理动作进行的,因此对Cache内数据替换的准确性以及针对性都更强。
为了方便理解,在上述介绍数据替换周期确定单元时所列举的示例,均是针对Cache工作时钟为1ns的固定替换时长进行的举例说明。对于数据替换周期T=3ns的情况,Cache每隔3个工作时钟进行一次数据替换;对于数据替换周期T=6ns的情况,Cache每隔6个工作时钟进行一次数据替换,相对于T=3ns的情况来说,T=6ns的情况为CPU预留的时间要长一些。
利用本发明实施例Cache的数据替换装置提供的技术方案,根据数据突发流量的实际情况设置与之相互适应的数据替换周期,就能适当的延缓Cache内已保存数据被替换的时间,为CPU处理这部分数据预留出一定的时间,使CPU在这段时间内尽量多的处理这部分数据,以减少被替换出本级Cache的数据中未处理数据的数量。而尽量减少被替换出本级Cache的未处理数据的数量,就能降低CPU去下级Cache或者DDR中读取数据的可能性,避免出现连续的数据缺失,保证了本级Cache的数据命中率,因此也就降低了计算机性能跳水的程度,同时还可实现推迟性能跳水的发生时间,缩短性能跳水持续的时长等有益效果。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种Cache的数据替换方法,其特征在于,所述方法包括:
获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;
如果出现数据突发流量过大情况,则确定与数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
2.根据权利要求1所述的方法,其特征在于,所述获取Cache的工作状态包括:
获取所述Cache已保存的数据中未处理的数据数量P;
所述判断输入所述Cache的数据是否出现突发流量过大情况包括:
判断所述P是否大于预设数值,如果大于,则判定出现数据突发流量过大情况,
所述确定与所述数据突发流量相适应的数据替换周期包括:
利用所述P设置所述数据替换周期。
3.根据权利要求2所述的方法,其特征在于,所述利用所述P设置所述数据替换周期包括:
所述数据替换周期T=K1*P,其中,K1为正整数。
4.根据权利要求1所述的方法,其特征在于,所述获取Cache的工作状态包括:
获取单位时间内输入Cache的数据数量N以及单位时间内CPU处理的数据数量M;
所述判断输入所述Cache的数据是否出现突发流量过大情况包括:
判断所述N是否大于所述M,如果大于,则判定出现数据突发流量过大情况;
所述确定与所述数据突发流量相适应的数据替换周期包括:
利用所述N与M的比值设置所述数据替换周期。
5.根据权利要求4所述的方法,其特征在于,所述利用所述N与M的比值设置所述数据替换周期包括:
所述数据替换周期T=K2*N/M,其中,K2为正整数。
6.根据权利要求1至5任一项所述的方法,其特征在于,
所述数据替换周期为以Cache的工作时钟为基准的固定替换时长;或者,
所述数据替换周期为以CPU的读写分配请求次数为基准的不固定替换时长。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述数据为程序数据或者报文数据。
8.一种Cache的数据替换装置,其特征在于,所述装置包括:
工作状态获取单元,用于获取Cache的工作状态,判断输入所述Cache的数据是否出现突发流量过大情况;
数据替换周期确定单元,用于在出现数据突发流量过大情况时,确定与数据突发流量相适应的数据替换周期,以使所述Cache按照所述数据替换周期将已保存在所述Cache中的数据替换为输入的数据。
9.根据权利要求8所述的装置,其特征在于,所述工作状态获取单元包括:
第一获取子单元,用于获取所述Cache已保存的数据中未处理的数据数量P;
第一判断子单元,用于判断所述P是否大于预设数值,如果大于,则判定出现数据突发流量过大情况;
所述数据替换周期确定单元,具体用于在出现数据突发流量过大情况时,利用所述P设置所述数据替换周期。
10.根据权利要求9所述的装置,其特征在于,所述数据替换周期确定单元具体按照以下公式设置所述数据替换周期:
所述数据替换周期T=K1*P,其中,K1为正整数。
11.根据权利要求8所述的装置,其特征在于,所述工作状态获取单元包括:
第二获取子单元,用于获取单位时间内输入Cache的数据数量N以及单位时间内CPU处理的数据数量M;
第二判断子单元,用于判断所述N是否大于所述M,如果大于,则判定出现数据突发流量过大情况;
所述数据替换周期确定单元,具体用于在出现数据突发流量过大情况时,利用所述N与M的比值设置所述数据替换周期。
12.根据权利要求11所述的装置,其特征在于,所述数据替换周期确定单元具体按照以下公式设置所述数据替换周期:
所述数据替换周期T=K2*N/M,其中,K2为正整数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210207136.0A CN103514111A (zh) | 2012-06-21 | 2012-06-21 | 一种Cache的替换方法及装置 |
US13/923,867 US20130346701A1 (en) | 2012-06-21 | 2013-06-21 | Replacement method and apparatus for cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210207136.0A CN103514111A (zh) | 2012-06-21 | 2012-06-21 | 一种Cache的替换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103514111A true CN103514111A (zh) | 2014-01-15 |
Family
ID=49775435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210207136.0A Pending CN103514111A (zh) | 2012-06-21 | 2012-06-21 | 一种Cache的替换方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130346701A1 (zh) |
CN (1) | CN103514111A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN114138685A (zh) * | 2021-12-06 | 2022-03-04 | 海光信息技术股份有限公司 | 缓存的资源分配方法及装置、电子装置和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546270B (zh) * | 2022-02-15 | 2024-02-09 | 杭州隆埠科技有限公司 | 数据存储方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
US7194562B2 (en) * | 2003-11-20 | 2007-03-20 | International Business Machines Corporation | Method, system, and program for throttling data transfer |
US20090006719A1 (en) * | 2007-06-27 | 2009-01-01 | Shai Traister | Scheduling methods of phased garbage collection and house keeping operations in a flash memory system |
US20100199050A1 (en) * | 2009-01-30 | 2010-08-05 | International Business Machines Corporation | Proactive technique for reducing occurrence of long write service time for a storage device with a write cache |
US20110191534A1 (en) * | 2010-02-01 | 2011-08-04 | International Business Machines Corporation | Dynamic management of destage tasks in a storage controller |
CN102207830A (zh) * | 2011-05-27 | 2011-10-05 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289438B1 (en) * | 1998-07-29 | 2001-09-11 | Kabushiki Kaisha Toshiba | Microprocessor cache redundancy scheme using store buffer |
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6349365B1 (en) * | 1999-10-08 | 2002-02-19 | Advanced Micro Devices, Inc. | User-prioritized cache replacement |
US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
US9262321B2 (en) * | 2011-11-17 | 2016-02-16 | International Business Machines Corporation | Adjustment of destage rate based on read and write response time requirements |
-
2012
- 2012-06-21 CN CN201210207136.0A patent/CN103514111A/zh active Pending
-
2013
- 2013-06-21 US US13/923,867 patent/US20130346701A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7194562B2 (en) * | 2003-11-20 | 2007-03-20 | International Business Machines Corporation | Method, system, and program for throttling data transfer |
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
US20090006719A1 (en) * | 2007-06-27 | 2009-01-01 | Shai Traister | Scheduling methods of phased garbage collection and house keeping operations in a flash memory system |
US20100199050A1 (en) * | 2009-01-30 | 2010-08-05 | International Business Machines Corporation | Proactive technique for reducing occurrence of long write service time for a storage device with a write cache |
US20110191534A1 (en) * | 2010-02-01 | 2011-08-04 | International Business Machines Corporation | Dynamic management of destage tasks in a storage controller |
CN102207830A (zh) * | 2011-05-27 | 2011-10-05 | 杭州宏杉科技有限公司 | 一种缓存动态分配管理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579482A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN112579482B (zh) * | 2020-12-05 | 2022-10-21 | 西安翔腾微电子科技有限公司 | 一种非阻塞Cache替换信息表超前精确更新装置及方法 |
CN114138685A (zh) * | 2021-12-06 | 2022-03-04 | 海光信息技术股份有限公司 | 缓存的资源分配方法及装置、电子装置和存储介质 |
CN114138685B (zh) * | 2021-12-06 | 2023-03-10 | 海光信息技术股份有限公司 | 缓存的资源分配方法及装置、电子装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130346701A1 (en) | 2013-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102462507B1 (ko) | 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법 | |
CN101634970B (zh) | 预取长度调整方法、装置和存储系统 | |
CN104571954B (zh) | 一种数据存储方法及装置 | |
US10248350B2 (en) | Queue management method and apparatus | |
CN108874688B (zh) | 一种报文数据缓存方法及装置 | |
TW200402653A (en) | Shared memory controller for display processor | |
CN105095104B (zh) | 数据缓存处理方法及装置 | |
CN109359729B (zh) | 一种在fpga上实现缓存数据的系统及方法 | |
CN104156323A (zh) | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 | |
CN103514111A (zh) | 一种Cache的替换方法及装置 | |
US20080225858A1 (en) | Data transferring apparatus and information processing system | |
CN103218219A (zh) | 紧凑函数跟踪 | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
CN105094742B (zh) | 一种写数据的方法和设备 | |
CN115794446B (zh) | 一种消息处理方法、装置、电子设备和存储介质 | |
CN113590050B (zh) | 随机写性能调节的方法、装置、电子设备及存储介质 | |
CN111126584B (zh) | 数据回写系统 | |
CN109062513B (zh) | 一种控制处理写操作的方法及装置 | |
CN115437572A (zh) | 一种数据落盘方法、装置、设备及介质 | |
CN114153760A (zh) | 基于权重的健值存储缓存淘汰方法、系统及存储介质 | |
CN114328153A (zh) | 一种rdma性能测试系统、方法、装置及介质 | |
WO2011060570A1 (zh) | 一种高速计数器处理方法及计数器 | |
CN113961361B (zh) | 一种缓存资源的控制方法和系统 | |
CN105512090B (zh) | 一种基于fpga的网络节点内数据缓冲的组织方法 | |
CN108446241B (zh) | 内存访问方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140115 |