CN1622059A - 高速缓存代换算法 - Google Patents
高速缓存代换算法 Download PDFInfo
- Publication number
- CN1622059A CN1622059A CNA2003101122582A CN200310112258A CN1622059A CN 1622059 A CN1622059 A CN 1622059A CN A2003101122582 A CNA2003101122582 A CN A2003101122582A CN 200310112258 A CN200310112258 A CN 200310112258A CN 1622059 A CN1622059 A CN 1622059A
- Authority
- CN
- China
- Prior art keywords
- soon
- value
- access
- district
- speed cache
- 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.)
- Granted
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种高速缓存代换算法,应用一时间计数器来维持一与时间相关之值,且当每次存取高速缓存之快取区时,将时间计数器之值,加总于对应欲存取之快取区的加权计数器中。因此,参考加权计数器之值,来决定是否代换此一快取区,将可同时兼顾存取时间与存取次数等因素,以提升高速缓存资料存取之快取区符合率,增进资料存取效能。
Description
技术领域
本发明是关于一种高速缓存(cache),且特别是有关于一种高速缓存之代换算法(cache replacement algorithm)。
背景技术
高速缓存是一种使用于储存媒体,以增进其存取速率之小型快速内存。由于其存取速率较储存媒体所使用之主存储器为快,因此当处理器欲由储存媒体中存取如地址、指令及资料等时,如可由高速缓存中存取,其速率将较由主存储器中直接存取为快而有效率,故高速缓存通常可视为主存储器之缓冲存储器。
然而,由于成本考量,高速缓存之容量并不可能无限量扩充,以4兆字节(4T Bytes)之便宜磁盘冗余数组(Redundancy Array of Inexpensive Disk,简称RAID)为例,其使用之高速缓存通常不过是512M Bytes,甚至更低。显见其可储存之资料,相较于主存储器而言极为有限,因此当处理器欲存取资料时,便可能会有快取区符合(cache hit)或快取区不符合(cache miss)之情形发生。所谓快取区符合,意即处理器欲存取之资料储存于高速缓存中,故可直接由高速缓存中存取数据。反之,则为快取区不符合,必须依据高速缓存之代换算法,将储存于主存储器中之资料移入高速缓存中,以供处理器存取。因此,其代换算法之良宥,便成为影响储存媒体存取效能之重要因素。
传统高速缓存代换算法通常分为时域(Temporal locality)及场域(Spatial locality)的代换算法。时域的代换算法是以存取快取区之时间因素,作为选择代换快取区之考量,而场域的代换算法则以存取快取区之空间因素,作为选择代换快取区之考量。常用之时域代换算法有最近未使用(LeastRecently Used,简称LRU)算法及最不常使用(Least Frequently Used,简称LFU)算法。LRU考虑最近长时间未存取之快取区,也是最不可能再一次存取之快取区,因而选择最近长时间未存取之快取区予以代换。LFU则考虑存取次数最少之快取区,也是最不可能再一次存取之快取区,因而选择存取次数最少之快取区予以代换。故知,无论使用LRU或LFU算法作为高速缓存代换算法,均不能同时兼顾其存取时间与存取次数之因素,导致无法将资料存取之快取区符合率(hit rate)再予提升。
有鉴于此,本发明提供一种高速缓存代换算法,其可于快取区不符合时,同时考虑存取时间与存取次数之因素,以提升高速缓存资料存取之快取区符合率,增进资料存取效能。
为达上述及其它目的,本发明提供一种高速缓存代换算法,适用于具有多个快取线(cache line)之高速缓存,每一快取线具有多个快取区(way’scache),高速缓存之杂凑表则包括对应于每一快取区之多个加权计数器及一时间计数器,此高速缓存代换算法包括下列步骤:首先随着时间来递增时间计数器;当快取区符合时,将时间计数器之值,加总于对应快取区符合之快取区的加权计数器之中;以及当快取区不符合时,选择代换欲存取之快取线中具有最小之加权计数器值的快取区,并重置该加权计数器之值。
其中递增时间计数器之方法可为每隔一固定时间递增一固定值,或当每次存取高速缓存时递增一固定值。而当快取区不符合时,可选择将快取区之加权计数器值重置为当时之时间计数器之值。
此外,当时间计数器之值将溢位时,可将时间计数器及所有加权计数器右移一固定位数,以有效维持时间计数器及所有加权计数器间之存取时间与存取次数的相关代表性。其中右移之固定位数可为时间计数器及加权计数器之位数的一半。而当某一加权计数器之值将溢位时,可将此一加权计数器所属之快取线的所有加权计数器右移一固定位数,以有效维持加权计数器间之存取时间与存取次数的相关代表性。其中右移之固定位数可为加权计数器之位数的一半。
发明内容
本发明另提供一种高速缓存代换算法,适用于具有多个快取线之高速缓存,每一快取线具有多个快取区,高速缓存之杂凑表则包括对应于每一快取线之多个时间计数器及对应于每一快取区之多个加权计数器,此高速缓存代换算法包括下列步骤:首先在每一次存取快取线时,递增对应于被存取之快取线的时间计数器;当快取区符合时,将对应于快取区符合之快取线的时间计数器之值,加总于对应快取区符合之快取区的加权计数器之中;以及当快取区不符合时,选择代换欲存取之快取线中具有最小之加权计数器值的快取区,并重置该加权计数器之值。
其中当快取区不符合时,可选择将加权计数器之值重置为快取区所属之快取线的时间计数器之值。而当某一时间计数器之值将溢位时,可将此一时间计数器及其所属之快取线的所有加权计数器右移一固定位数,以有效维持时间计数器及加权计数器间之存取时间与存取次数的相关代表性。其中右移之固定位数为时间计数器及其所属之快取线的加权计数器之位数的一半。
此外,当某一加权计数器之值将溢位时,可将加权计数器所属之快取线的所有加权计数器右移一固定位数,以有效维持加权计数器间之存取时间与存取次数的相关代表性。其中右移之固定位数为加权计数器之位数的一半。
由上述之说明中可知,应用本发明之高速缓存代换算法于高速缓存中,则当发生快取区不符合之情形时,可同时考虑存取时间与存取次数之因素,来代换最不可能再次存取之快取区,故可有效提升高速缓存数据存取之快取区符合率,增进资料存取效能。
附图说明
为让本发明之上述和其它目的、特征、和优点能更明显易懂,下文特以较佳实施例,并配合附图,作详细说明如下:
图1显示根据本发明较佳实施例之RAID结构示意图;以及
图2显示根据本发明较佳实施例之一种高速缓存代换算法流程图;
图3列出同一快取线的时间计数器与7个存取路径之加权计数器之值。
具体实施方式
以下将以使用于便宜磁盘冗余数组(Redundancy Array of InexpensiveDisk,简称RAID)之高速缓存为例,来详细说明本发明之高速缓存代换算法。当然,如熟习此技术者应知,实施例中之代表内存容量或字段宽之数字等,只是为了说明时容易了解,而非必须如此限定。实际之应用当视系统之需求而定,且本发明亦并不限定仅可使用于RAID系统中。
请参考图1所示,其为根据本发明较佳实施例之RAID结构示意图。图中显示,此RAID 100由101~116等共16个独立之硬式磁盘驱动器所组成,每一个硬式磁盘驱动器101~116共分为64K页(page),每一页再区分为4K条快取线(cache line),每条快取线包含8个区块(block),每区块之容量为2K字节,因此,硬式磁盘驱动器101~116中每页之容量为64M字节。
此外,此RAID 100中之高速缓存120共有121~127等7个存取路径(way),每一存取路径121~127之容量与硬式磁盘驱动器101~116中每页之容量相同,亦即容量为64M字节。且每一存取路径121~127具有4K个快取区(way’scache),以储存硬式磁盘驱动器101~116中每页之对应快取线的8个区块数据,亦即,高速缓存120之每一快取线包含7个存取路径121~127之7个快取区,而此7个快取区则可以用来储存硬式磁盘驱动器101~116中共1M页之任一页的同一快取线资料。
因此,当处理器(未绘示)欲存取之数据为已储存于高速缓存120之对应快取线的7个快取区中之一时,为可直接由快取区存取资料之快取区符合(cachehit)情况。反之,当处理器(未绘示)欲存取之数据并未储存于高速缓存120之对应快取线的7个快取区中之一时,则为快取区不符合(cache miss)之情况,此时即需应用高速缓存代换算法,来选择将最不可能再次存取之快取区的资料,代换为欲存取之资料,以供快速存取。
上述判断快取区符合或快取区不符合之方法,经由查询杂凑表(hashtable)130之记录而得。杂凑表130具有与高速缓存120之快取线一对一对应之4K个记录(entry),而每一记录则包含W1~W7字段及一32位之时间计数器TimeCounter。W1~W7字段对应记录高速缓存120之快取线的7个快取区所储存之资料,来自101~116中哪一个硬式磁盘驱动器的哪一页,其包含记录101~116之硬式磁盘驱动器号码的LUN字段、记录页码之PAGE字段及一32位之加权计数器WeightCounter。
其中之时间计数器之值会随着时间而递增,以维持一大小与时间相关之值,其递增方法可为每隔一固定时间递增一固定值,或当每次存取高速缓存之对应快取线时递增一固定值。而加权计数器之值的大小,则与对应快取区之存取时间和存取次数相关连。
请合并参考图2所示,其为根据本发明较佳实施例之一种高速缓存代换算法流程图。当处理器(未绘示)欲存取硬式磁盘驱动器101~116中之资料时,将在S205步骤中,依据其所拥有之硬式磁盘驱动器号码、页码及快取线号码来查询杂凑表130,并在S210步骤中,将欲存取之快取线的时间计数器值加1,然后在S215步骤中,搜寻欲存取之快取线中各存取路径的LUN与PAGE字段是否与其所拥有之硬式磁盘驱动器号码和页码相符,以判断是否为快取区符合之情形,如为快取区符合,则在S220步骤中,求取欲存取之快取线的时间计数器之值与对应快取区符合之快取区的加权计数器值之和,成为此一加权计数器之更新值。反之,如为快取区不符合时,则进入S225之步骤,以选择代换与存取之快取线中具有最小之加权计数器r值的快取区,并重置加权计数器之值。
请参考图3及其说明,以进一步了解本实施例之实际运作情形。此表以每次均存取图1中之同一快取线为例,故仅列出同一快取线的时间计数器与7个存取路径之加权计数器之值。如图3所示,在启始时,所有计数器之值均为0。
在第1次存取时,时间计数器之值递增为1,且因所有存取路径之快取区均未储存资料,故必然为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径1的快取区来代换,并将路径1之加权计数器值0重置为时间计数器之值1。
在第2次存取时,时间计数器之值递增为2,假设欲存取之资料为存取路径1之快取区所储存之资料,则为储存区符合之情形,于是将路径1之加权计数器值1加上时间计数器之值2而成为新值3。
在第3次存取时,时间计数器之值递增为3,假设欲存取之资料亦为存取路径1之快取区所储存之资料,则同样为储存区符合之情形,于是将路径1之加权计数器值3加上时间计数器之值3而成为新值6。
在第4次存取时,时间计数器之值递增为4,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径2的快取区来代换,并将路径2之加权计数器值0重置为时间计数器之值4。
在第5次存取时,时间计数器之值递增为5,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径3的快取区来代换,并将路径3之加权计数器值0重置为时间计数器之值5。
在第6次存取时,时间计数器之值递增为6,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径4的快取区来代换,并将路径4之加权计数器值0重置为时间计数器之值6。
在第7次存取时,时间计数器之值递增为7,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径5的快取区来代换,并将路径5之加权计数器值0重置为时间计数器之值7。
在第8次存取时,时间计数器之值递增为8,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径6的快取区来代换,并将路径6之加权计数器值0重置为时间计数器之值8。
在第9次存取时,时间计数器之值递增为9,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值0之路径7的快取区来代换,并将路径7之加权计数器值0重置为时间计数器之值9。
在第10次存取时,时间计数器之值递增为10,假设欲存取之资料并未储存于各存取路径之快取区中,则为储存区不符合之情形,于是选择具有最小之加权计数器值4之路径2的快取区来代换,并将路径2之加权计数器值4重置为时间计数器之值10。
在第11次存取时,时间计数器之值递增为11,假设欲存取之资料为存取路径3之快取区所储存之资料,则为储存区符合之情形,于是将路径3之加权计数器值5加上时间计数器之值11而成为新值16。
依此方式类推,则可同时考量存取时间与存取次数之因素,来代换较不可能再次存取之快取区,以有效提升高速缓存数据存取之快取区符合率,增进资料存取效能。
其中如考虑时间计数器之位宽虽高达32位,但亦可能会有溢位之情形发生,而当此情形发生时,将丧失时间计数器之值所代表的时间持续性。故为了有效维持时间计数器及加权计数器间之存取时间与存取次数的相关代表性,乃在时间计数器即将溢位前,将此一时间计数器及其所属之快取线的所有加权计数器右移一固定位数(假设左侧为MSB位)。其中右移之固定位数较佳地为时间计数器及其所属之快取线的加权计数器之位数的一半,亦即16位。
此外,虽然加权计数器之位宽亦高达32位,但同样也有溢位之可能。故当某一加权计数器之值将溢位时,乃将加权计数器所属之快取线的所有加权计数器右移一固定位数(假设左侧为MSB位),以有效维持加权计数器间之存取时间与存取次数的相关代表性。其中右移之固定位数较佳地为加权计数器之位数的一半,亦即16位。
以上关于使用于RAID之高速缓存的说明,虽然使用对应于每一快取线之多个时间计数器来作说明,且每一时间计数器是于存取对应之快取线时递增其值。然熟习此技术者应知,高速缓存之所有快取线共享一时间计数器,且当存取此高速缓存之任一快取线时递增其值,亦为可行之另一方案。此外,时间计数器亦不必须于有存取时才递增,而可以每隔一段固定时间即递增,以维持其与时间之比例关系。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉此技术者,在不脱离本发明之精神和范围内,当可作各种之更动与润饰,因此本发明之权利保护范围当视后附之权利要求书所界定者为准。
Claims (8)
1.一种高速缓存代换算法,适用于具有多个快取线之一高速缓存,每一该些快取线具有多个快取区,该高速缓存之杂凑表包括对应于该些快取区之多个加权计数器及一时间计数器,其特征在于该高速缓存代换算法包括下列步骤:
随着时间递增该时间计数器;
当快取区符合时,将该时间计数器之值,加总于对应快取区符合之该快取区的该加权计数器之中;以及
当快取区不符合时,选择代换欲存取之快取线中具有最小之该加权计数器值的该快取区,并重置该加权计数器之值。
2.如权利要求1所述之高速缓存代换算法,其特征在于:递增该时间计数器之方法为每隔一固定时间递增一固定值。
3.如权利要求1所述之高速缓存代换算法,其特征在于:递增该时间计数器之方法为每次存取该高速缓存时递增一固定值。
4.如权利要求1所述之高速缓存代换算法,其特征在于:当快取区不符合时,将该快取区之该加权计数器值重置为该时间计数器之值。
5.如权利要求1所述之高速缓存代换算法,其特征在于:还包括当该时间计数器之值将溢位时,将该时间计数器及该些加权计数器右移一固定位数之步骤。
6.如权利要求5所述之高速缓存代换算法,其特征在于:该固定位数为该时间计数器及该些加权计数器之位数的一半。
7.如权利要求1所述之高速缓存代换算法,其特征在于:还包括当某一该些加权计数器之值将溢位时,将该加权计数器所属之该快取线的该些加权计数器右移一固定位数之步骤。
8.如权利要求7所述之高速缓存代换算法,其特征在于:该固定位数为该些加权计数器之位数的一半。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101122582A CN1322430C (zh) | 2003-11-24 | 2003-11-24 | 高速缓存代换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101122582A CN1322430C (zh) | 2003-11-24 | 2003-11-24 | 高速缓存代换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1622059A true CN1622059A (zh) | 2005-06-01 |
CN1322430C CN1322430C (zh) | 2007-06-20 |
Family
ID=34759669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101122582A Expired - Fee Related CN1322430C (zh) | 2003-11-24 | 2003-11-24 | 高速缓存代换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1322430C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341471B (zh) * | 2005-12-23 | 2011-03-30 | Nxp股份有限公司 | 动态高速缓存管理的设备和方法 |
CN103548005A (zh) * | 2011-12-13 | 2014-01-29 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN107819804A (zh) * | 2016-09-14 | 2018-03-20 | 先智云端数据股份有限公司 | 云端储存设备系统及决定其架构的高速缓存中数据的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381539A (en) * | 1992-06-04 | 1995-01-10 | Emc Corporation | System and method for dynamically controlling cache management |
JP2000200221A (ja) * | 1998-10-30 | 2000-07-18 | Nec Corp | キャッシュメモリ装置及びその制御方法 |
US6421766B1 (en) * | 1998-12-16 | 2002-07-16 | Intel Corporation | Method and apparatus for approximated least-recently-used algorithm memory replacement |
US6553463B1 (en) * | 1999-11-09 | 2003-04-22 | International Business Machines Corporation | Method and system for high speed access to a banked cache memory |
US6546473B2 (en) * | 2001-05-29 | 2003-04-08 | Hewlett-Packard Company | Method for cache replacement of web documents |
-
2003
- 2003-11-24 CN CNB2003101122582A patent/CN1322430C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341471B (zh) * | 2005-12-23 | 2011-03-30 | Nxp股份有限公司 | 动态高速缓存管理的设备和方法 |
CN103548005A (zh) * | 2011-12-13 | 2014-01-29 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN103548005B (zh) * | 2011-12-13 | 2016-03-30 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN107819804A (zh) * | 2016-09-14 | 2018-03-20 | 先智云端数据股份有限公司 | 云端储存设备系统及决定其架构的高速缓存中数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1322430C (zh) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1317644C (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
CN1317645C (zh) | 具有基于线程标识符的缓存清除的多线程缓存方法和装置 | |
JP4101907B2 (ja) | コンピュータ・システム中でキャッシュされるべきデータを選択する方法,コンピュータ・システム,及びコンピュータ・システム用キャッシュ化装置 | |
EP0780769B1 (en) | Hybrid numa coma caching system and methods for selecting between the caching modes | |
CN1135477C (zh) | 实现动态显示存储器的方法和装置 | |
CN1287297C (zh) | 可重构高速缓存控制器的方法和系统 | |
CN1303535C (zh) | 用于虚拟存储器的管理的方法和分析高速缓存 | |
CN1677369A (zh) | 用于分级高速缓存行替换的方法、系统及装置 | |
US5761501A (en) | Stacked skip list data structures | |
US7734875B1 (en) | Cache management using historical access information | |
CN1192009A (zh) | 预加载不同缺省地址转换属性的方法和装置 | |
EP0780770A1 (en) | Hybrid numa coma caching system and methods for selecting between the caching modes | |
US7380047B2 (en) | Apparatus and method for filtering unused sub-blocks in cache memories | |
CN104102591A (zh) | 计算机子系统及在其中实现闪存转换层的方法 | |
US7020748B2 (en) | Cache replacement policy to mitigate pollution in multicore processors | |
WO2017139037A1 (en) | Profiling cache replacement | |
JPH02281350A (ja) | キヤツシユ・メモリ管理 | |
US20050144396A1 (en) | Coalescing disk write back requests | |
CN1518700A (zh) | 高速和准确的高速缓存通路选择 | |
KR20080021623A (ko) | 메모리 페이지 관리 | |
CN1429366A (zh) | 控制包含直接映射高速缓冲存储器和完全联系缓冲器的高速缓冲存储器系统的方法 | |
US20170344300A1 (en) | Memory system and memory management method thereof | |
CN1294498C (zh) | 利用再参考指示符进行页面替换的方法和装置 | |
US6609177B1 (en) | Method and apparatus for extending cache history | |
CN1286006C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070620 Termination date: 20151124 |
|
CF01 | Termination of patent right due to non-payment of annual fee |