CN1322430C - 高速缓存代换方法 - Google Patents
高速缓存代换方法 Download PDFInfo
- Publication number
- CN1322430C CN1322430C CNB2003101122582A CN200310112258A CN1322430C CN 1322430 C CN1322430 C CN 1322430C CN B2003101122582 A CNB2003101122582 A CN B2003101122582A CN 200310112258 A CN200310112258 A CN 200310112258A CN 1322430 C CN1322430 C CN 1322430C
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种高速缓存代换方法,应用一时间计数器来维持一与时间相关的值,且当每次存取高速缓存的快取区时,将时间计数器的值,加总于对应欲存取的快取区的加权计数器中。因此,参考加权计数器的值,来决定是否代换此一快取区,将可同时兼顾存取时间与存取次数等因素,以提升高速缓存资料存取的快取区符合率,增进资料存取效能。
Description
技术领域
本发明是关于一种高速缓存(cache),且特别是有关于一种高速缓存的代换方法(cache replacement algorithm)。
背景技术
高速缓存是一种使用于储存媒体,以增进其存取速率的小型快速内存。由于其存取速率较储存媒体所使用的主存储器为快,因此当处理器欲由储存媒体中存取如地址、指令及资料等时,如可由高速缓存中存取,其速率将较由主存储器中直接存取为快而有效率,故高速缓存通常可视为主存储器的缓冲存储器。
然而,由于成本考量,高速缓存的容量并不可能无限量扩充,以4兆字节(4TBytes)的便宜磁盘冗余数组(Redundancy Array of Inexpensive Disk,简称RAID)为例,其使用的高速缓存通常不过是512M Bytes,甚至更低。显见其可储存的资料,相较于主存储器而言极为有限,因此当处理器欲存取资料时,便可能会有快取区符合(cache hit)或快取区不符合(cache miss)的情形发生。所谓快取区符合,意即处理器欲存取的资料储存于高速缓存中,故可直接由高速缓存中存取数据。反之,则为快取区不符合,必须依据高速缓存的代换方法,将储存于主存储器中的资料移入高速缓存中,以供处理器存取。因此,其代换方法的良宥,便成为影响储存媒体存取效能的重要因素。
传统高速缓存代换方法通常分为时域(Temporal locality)及场域(Spatiallocality)的代换方法。时域的代换方法是以存取快取区的时间因素,作为选择代换快取区的考量,而场域的代换方法则以存取快取区的空间因素,作为选择代换快取区的考量。常用的时域代换方法有最近未使用(Least Recently Used,简称LRU)方法及最不常使用(Least Frequently Used,简称LFU)方法。LRU考虑最近长时间未存取的快取区,也是最不可能再一次存取的快取区,因而选择最近长时间未存取的快取区予以代换。LFU则考虑存取次数最少的快取区,也是最不可能再一次存取的快取区,因而选择存取次数最少的快取区予以代换。故知,无论使用LRU或LFU方法作为高速缓存代换方法,均不能同时兼顾其存取时间与存取次数的因素,导致无法将资料存取的快取区符合率(hit rate)再予提升。
有鉴于此,本发明提供一种高速缓存代换方法,其可于快取区不符合时,同时考虑存取时间与存取次数的因素,以提升高速缓存资料存取的快取区符合率,增进资料存取效能。
为达上述及其它目的,本发明提供一种高速缓存代换方法,适用于具有多个快取线(cache line)的高速缓存,每一快取线具有多个快取区(way’s cache),高速缓存的杂凑表则包括对应于每一快取区的多个加权计数器及一时间计数器,此高速缓存代换方法包括下列步骤:首先随着时间来递增时间计数器;当快取区符合时,将时间计数器的值,加总于对应快取区符合的快取区的加权计数器的中;以及当快取区不符合时,选择代换欲存取的快取线中具有最小的加权计数器值的快取区,并重置该加权计数器的值。
其中递增时间计数器的方法可为每隔一固定时间递增一固定值,或当每次存取高速缓存时递增一固定值。而当快取区不符合时,可选择将快取区的加权计数器值重置为当时的时间计数器的值。
此外,当时间计数器的值将溢位时,可将时间计数器及所有加权计数器右移一固定位数,以有效维持时间计数器及所有加权计数器间的存取时间与存取次数的相关代表性。其中右移的固定位数可为时间计数器及加权计数器的位数的一半。而当某一加权计数器的值将溢位时,可将此一加权计数器所属的快取线的所有加权计数器右移一固定位数,以有效维持加权计数器间的存取时间与存取次数的相关代表性。其中右移的固定位数可为加权计数器的位数的一半。
发明内容
本发明另提供一种高速缓存代换方法,适用于具有多个快取线的高速缓存,每一快取线具有多个快取区,高速缓存的杂凑表则包括对应于每一快取线的多个时间计数器及对应于每一快取区的多个加权计数器,此高速缓存代换方法包括下列步骤:首先在每一次存取快取线时,递增对应于被存取的快取线的时间计数器;当快取区符合时,将对应于快取区符合的快取线的时间计数器的值,加总于对应快取区符合的快取区的加权计数器之中;以及当快取区不符合时,选择代换欲存取的快取线中具有最小的加权计数器值的快取区,并重置该加权计数器的值。
其中当快取区不符合时,可选择将加权计数器的值重置为快取区所属的快取线的时间计数器的值。而当某一时间计数器的值将溢位时,可将此一时间计数器及其所属的快取线的所有加权计数器右移一固定位数,以有效维持时间计数器及加权计数器间的存取时间与存取次数的相关代表性。其中右移的固定位数为时间计数器及其所属的快取线的加权计数器的位数的一半。
此外,当某一加权计数器的值将溢位时,可将加权计数器所属的快取线的所有加权计数器右移一固定位数,以有效维持加权计数器间的存取时间与存取次数的相关代表性。其中右移的固定位数为加权计数器的位数的一半。
由上述的说明中可知,应用本发明的高速缓存代换方法于高速缓存中,则当发生快取区不符合的情形时,可同时考虑存取时间与存取次数的因素,来代换最不可能再次存取的快取区,故可有效提升高速缓存数据存取的快取区符合率,增进资料存取效能。
附图说明
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特以较佳实施例,并配合附图,作详细说明如下:
图1显示根据本发明较佳实施例的RAID结构示意图;以及
图2显示根据本发明较佳实施例的一种高速缓存代换方法流程图;
图3列出同一快取线的时间计数器与7个存取路径的加权计数器的值。
具体实施方式
以下将以使用于便宜磁盘冗余数组(Redundancy Array of Inexpensive Disk,简称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’s cache),以储存硬式磁盘驱动器101~116中每页的对应快取线的8个区块数据,亦即,高速缓存120的每一快取线包含7个存取路径121~127的7个快取区,而此7个快取区则可以用来储存硬式磁盘驱动器101~116中共1M页的任一页的同一快取线资料。
因此,当处理器(未绘示)欲存取的数据为已储存于高速缓存120的对应快取线的7个快取区中之一时,为可直接由快取区存取资料的快取区符合(cache hit)情况。反之,当处理器(未绘示)欲存取的数据并未储存于高速缓存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位的加权计数器Weight Counter。
其中的时间计数器的值会随着时间而递增,以维持一大小与时间相关的值,其递增方法可为每隔一固定时间递增一固定值,或当每次存取高速缓存的对应快取线时递增一固定值。而加权计数器的值的大小,则与对应快取区的存取时间和存取次数相关连。
请合并参考图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 CN1622059A (zh) | 2005-06-01 |
CN1322430C true 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) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200745847A (en) * | 2005-12-23 | 2007-12-16 | Koninkl Philips Electronics Nv | Apparatus and method for dynamic cache management |
WO2013086689A1 (zh) * | 2011-12-13 | 2013-06-20 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN107819804B (zh) * | 2016-09-14 | 2021-03-16 | 先智云端数据股份有限公司 | 云端储存设备系统及决定其架构的高速缓存中数据的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049850A (en) * | 1992-06-04 | 2000-04-11 | Emc Corporation | Method and apparatus for controlling the contents of a cache memory |
CN1255675A (zh) * | 1998-10-30 | 2000-06-07 | 日本电气株式会社 | 具有冻结功能的高速缓存器 |
US6421766B1 (en) * | 1998-12-16 | 2002-07-16 | Intel Corporation | Method and apparatus for approximated least-recently-used algorithm memory replacement |
US6546473B2 (en) * | 2001-05-29 | 2003-04-08 | Hewlett-Packard Company | Method for cache replacement of web documents |
US6553463B1 (en) * | 1999-11-09 | 2003-04-22 | International Business Machines Corporation | Method and system for high speed access to a banked cache memory |
-
2003
- 2003-11-24 CN CNB2003101122582A patent/CN1322430C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049850A (en) * | 1992-06-04 | 2000-04-11 | Emc Corporation | Method and apparatus for controlling the contents of a cache memory |
CN1255675A (zh) * | 1998-10-30 | 2000-06-07 | 日本电气株式会社 | 具有冻结功能的高速缓存器 |
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 |
Also Published As
Publication number | Publication date |
---|---|
CN1622059A (zh) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387329B2 (en) | Profiling cache replacement | |
US7143240B2 (en) | System and method for providing a cost-adaptive cache | |
CN1317644C (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
US5761501A (en) | Stacked skip list data structures | |
EP0780769B1 (en) | Hybrid numa coma caching system and methods for selecting between the caching modes | |
KR100514677B1 (ko) | 컴퓨터 시스템 및 캐시 라인 대체 방법 | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
JP4044067B2 (ja) | シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ | |
US5893150A (en) | Efficient allocation of cache memory space in a computer system | |
US5751990A (en) | Abridged virtual address cache directory | |
US5684976A (en) | Method and system for reduced address tags storage within a directory having a tree-like data structure | |
US7065613B1 (en) | Method for reducing access to main memory using a stack cache | |
US5802571A (en) | Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory | |
KR960011712A (ko) | 데이타처리장치 | |
US20050144396A1 (en) | Coalescing disk write back requests | |
JPH02281350A (ja) | キヤツシユ・メモリ管理 | |
CN1659526A (zh) | 具有基于线程标识符的缓存清除的多线程缓存方法和装置 | |
US6625694B2 (en) | System and method for allocating a directory entry for use in multiprocessor-node data processing systems | |
US6609177B1 (en) | Method and apparatus for extending cache history | |
JP2000066952A (ja) | キャッシュメモリシステム及びその運用方法 | |
CN115168248A (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
US6598124B1 (en) | System and method for identifying streaming-data | |
CN1322430C (zh) | 高速缓存代换方法 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
JP2004503010A (ja) | キャッシュメモリを有するデータ処理装置およびこのような装置の使用方法 |
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 |