CN1829979A - 数据缓存方法 - Google Patents
数据缓存方法 Download PDFInfo
- Publication number
- CN1829979A CN1829979A CNA2004800218171A CN200480021817A CN1829979A CN 1829979 A CN1829979 A CN 1829979A CN A2004800218171 A CNA2004800218171 A CN A2004800218171A CN 200480021817 A CN200480021817 A CN 200480021817A CN 1829979 A CN1829979 A CN 1829979A
- Authority
- CN
- China
- Prior art keywords
- fifo queue
- data
- buffer memory
- largest amount
- predefine
- 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
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/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/465—Structured object, e.g. database record
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)
- Image Input (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
本发明涉及既使用FIFO缓存替换算法也使用LRU缓存替换算法的数据缓存方法。此外,将辅助FIFO队列用于缓存管理。结果,缓存命中率增加了,这对整体***性能有正面影响。
Description
技术领域
本发明涉及数据处理领域,并特别涉及数据缓存。
背景技术
在计算技术中,缓存存储器用来储存主存储器的可能很快就会被用到一部分存储器内容。如这里所使用的,术语“缓存(cache)”也将用来指缓存存储器(cache memory)。缓存通常比主存储器更小且更快,并被用来掩蔽(mask)从主存储器取回存储器操作数时所涉及的延迟(latency)。在现代计算机***中,缓存存取时间通常比主存储器存取时间快大约500%到3000%。
缓存的单元(entry)在技术上称为缓存线(cache line),通常缓存线将储存小的连续范围主存储器内容,例如32或64个字节。虽然缓存存储器不限于CPU,但是缓存存储器的基本应用却是储存一个或更多个中央处理单元(CPU)所需的存储器操作数。另一种常见的缓存使用是在数据库***中。数据库***缓存在计算机存储器(计算机存储器起到来自磁盘的数据页面的缓存的作用)中缓存来自基于磁盘的储存装置(类似于主存储器)的同等大小的数据页面或数据块(类似于缓存线)。
注意,提供多级缓存在技术上是公知的。例如,可以在CPU所处同一集成电路上给CPU提供第一级(L1)缓存,并在CPU所处同一模块中提供较大且较慢的第二级(L2)缓存。在接下来的讨论中,将假设从主存储器中把存储器操作数加载到缓存中。但是,熟练技术人员将认识到,如果在更高级缓存中存在操作数,也可以从更高级缓存加载这样的操作数。
由于缓存存储器通常比它们耦合到的主存储器小,所以需要用于确定要把主存储器的哪些内容储存在缓存中的策略。这种策略通常包括两个组成部分:缓存结构和缓存替换算法。替换算法确定当缓存(或如下面所描述的关联缓存集)变满时应该替换哪一个缓存线。
最简单的缓存结构之一是直接映射(direct-mapped)缓存结构。在直接映射缓存中,主存储器地址的一部分被用作索引,并且,主存储器地址的剩余部分(不包括代表缓存线内的字节的主存储器地址的任何位)被用作标签。用于索引的位数与缓存的大小对应。例如,具有64个缓存线的直接映射缓存将具有包含6位的索引。当发生读操作并且存储器操作数不在缓存中时(即标签不匹配),存储器操作数被从主存储器取出并储存在对应于所述索引的缓存线中,并且,标签被储存在和缓存线相关联的标签字段中。
假设下一次发生读操作时存储器操作数仍在缓存中(即标签匹配),则将从缓存中取回(retrieve)该存储器操作数。顺便说明,在技术上使用术语“缓存命中”(cache hit)来指所需存储器操作数已经在缓存中的存储器访问,而在技术上使用术语“缓存错失”(cache miss)来指存储器操作数不在缓存中并且必须从主存储器或更高级缓存加载的存储器访问。
与直接映射缓存一起使用的替换算法是简单的。对于主存储器中的任何给定字节,只有一个其中可以储存该字节的缓存线。因此,如果缓存线正在使用,则缓存线的旧内容被新内容简单地覆盖。在缓存线已经被从存储器加载之后更改缓存线内容的操作在技术上称为“弄脏”(dirtying)该缓存线。在新内容可以被储存在“弄脏的”(dirty)缓存线中之前,该“弄脏的”缓存线必须被写回主存储器。如果缓存线中的旧内容与主存储器中的内容相同,则可以覆盖旧内容而不必将旧内容回写到主存储器。
与直接映射缓存存储器相关联的一个问题是:两个经常使用的存储器操作数可能需要被储存在同一缓存线中。由于这两个存储器操作数将竞争同一缓存线,所以当这两个操作数持续地彼此替换时,将丧失缓存所提供的很多优点。
另一种缓存结构是关联缓存(associative cache)结构。完全关联缓存(fullassociative cache)就是具有缓存线池(cache line pool),并且存储器操作数可以储存在任何缓存线中。当存储器操作数储存在关联缓存中时,该存储器操作数的地址(不包括代表储存在该缓存线中的字节的任何位)被储存在与缓存线相关联的标签字段中。无论何时只要发生存储器操作,则搜索与每一个缓存线相关联的标签字段,以察看该存储器操作数是否储存在缓存中。关联缓存的一个缺点是所有缓存线的所有标签字段都必须被搜索,并且,随着缓存线的数量增加,搜索所有的标签字段(和/或搜索逻辑的复杂性)所需的时间也增加。
集关联缓存(set associative)缓存结构是直接映射存储器结构和关联存储器结构的混合。在集关联缓存中,存储器地址的索引部分标识了缓存线的子集。像上面一样,标签字段与每一个缓存线相关联。但是,只有被索引标识的缓存线子集的标签需要被关联搜索。例如,考虑具有256个单元的缓存,所述256个单元被组织成64个子集,每一个子集具有四个缓存线。这样的存储器将具有包含6位的索引。
当发生存储器操作时,索引标识64个子集其中的一个,并且,和该子集中的四个缓存线相关联的标签字段被搜索,以察看存储器操作数是否在缓存中。集关联缓存结构允许缓存具有很多个缓存线,同时限制了必须搜索的标签字段的数量。此外,存储器操作数无需像在直接映射缓存中那样竞争同一缓存线。
如这里所使用的,术语“关联集”将用来指纯关联缓存的所有缓存线,并且指集关联缓存的一个集。当关联集已满并且新的缓存线必须被储存在该关联集中时,需要一种算法来确定哪一个缓存线可以被替换。在技术上公知几种这样的算法。“随机”算法简单地随机选取缓存线。虽然该实现方案简单,但是随机算法提供了相对较差的结果,因为在为替换所选择的缓存线内容和很快就需要该所选择的内容的可能性之间不存在对应。
一种更好的算法是先进先出(FIFO)算法。这种算法将关联集作为循环队列对待,其中,已经在关联集中最久的缓存线内容被替换。这种算法提供了比随机算法更好的结果,因为该算法观察了缓存错失,以便在为替换所选择的缓存线和将很快需要该缓存线的可能性之间建立对应。
当CPU所需的所有存储器内容被加载到缓存中,并且其他的缓存错失不引起所需的存储器内容被替换时,该算法工作良好。但是,该算法未认识到如果缓存线被CPU重复地访问,则它不应该被替换。所考虑的唯一因素是存储器内容已经在缓存中的时间长度。该算法比随机算法实施起来略为复杂。通常,使用与关联集相关联的单个计数器来提供指示按顺序哪一个缓存线是下一个要替换的索引,并且每次有缓存错失并从主存储器加载操作数时,递增计数器。
最好的现有技术缓存替换算法之一是最近最少使用(least recently used,LRU)算法。顾名思义,这种算法丢弃最近最少使用的缓存线内容。这种算法往往非常有效,因为该算法既观察缓存命中,也观察缓存错失,以便在为替换所选择的缓存线和很快就将需要该缓存线的可能性之间建立对应。但是,该算法实施起来相对复杂,因为计数器值通常与每一个缓存线相关联。
为了说明LRU算法如何工作,考虑具有8个缓存线的完全关联集(fullassociative set)。3位的LRU计数器值与每一个缓存线相关联,并且每一个计数器值是唯一的,“000”的计数器值代表最近最少使用的缓存线,而“111”的计数器值代表最近使用最多的缓存线。当发生缓存错失时,存储器操作数被加载到具有“000”的计数器值的缓存线中,该缓存线的计数器值被设置为“111”,并且所有其他的计数器值被递减。
当发生缓存命中时,具有大于包含所需的存储器操作数的缓存线的计数器值的计数器值的所有缓存线的计数器值被递减,并且,包含所需操作数的缓存线的计数器值被设置为“111”。很清楚,实施LRU算法的逻辑比实施FIFO算法所需的逻辑更为复杂。在现有技术上公知有接近LRU算法但是实施起来不那么复杂的其它算法。对于CPU访问模式,LRU算法(以及在较轻程度上FIFO算法)工作良好,因为由于循环和数据操纵,CPU往往使用同样的数据和代码数次。
但是,当访问大块的数据(所述数据不能装入缓存)仅一次时,LRU算法退化。在这种情况下,整个数据缓存将被来自将不再需要的所述大块的数据覆盖。例如,当针对大数组计算聚合函数(aggregate function)时,可能相当经常地发生这种情况。在这种情况下,***的性能降低。
No.6,490,654号美国专利示出了一种缓存存储器,所述缓存存储器包括多个被关联访问的缓存线,与每一个缓存线相关联的计数单元储存定义替换级别(class)的计数值。当缓存线被访问时,通常给所述计数单元加载计数值,所述计数值指示将很快需要所述缓存线的内容的可能性。
换句话说,给可能很快就需要的数据分配了较高的替换级别,而给不确定的并且较不可能很快就需要的数据分配较低的替换级别。当缓存存储器变满时,替换算法为替换选择具有最低的替换级别的那些缓存线。因此,为替换所选择的缓存线包含缓存中最不确定的、最不可能很快就需要的数据。
No.6,601,143号美国专利示出了一种用于确定有效的缓存线替换算法的自适应缓存管理方法,所述缓存线替换算法用于选择要从缓存中去除(evict)哪些对象(或线)。对象被根据针对每一个对象动态地确定的权重区分优先级。在一个时间间隔期间,观察缓存存储器的命中率,同时将控制参数设置为某个值。
调整所述控制参数,并且在连续的时间间隔期间观察命中率。然后,将控制参数调整一个增量,所述增量具有根据所述命中率是提高了还是降低了所确定的大小和方向。根据所观察的命中率,可以持续地并自动地调整控制参数,并且,所述算法可以包括与其他的对象属性相关联的额外控制参数,以类似的方式来调整所述额外的控制参数。
发明内容
本发明提供了一种数据缓存方法,所述方法既使用FIFO缓存替换算法,也使用LRU缓存替换算法。在缓存存储器中,缓存线的子集建立FIFO队列,并且,所述缓存线的分离子集建立LRU队列。此外,为已经被从FIFO队列交换输出(swapped-out)的缓存线地址建立辅助FIFO队列。
在对于给定的数据请求存在缓存错失的情况下,确定在辅助FIFO队列中是否存在命中。如果情况如此,则对应的数据被从主存储器交换输入(swapped-in)并加入LRU队列。
根据本发明的优选实施例,FIFO队列和LRU队列都具有预定义的最大大小。例如,FIFO队列的最大大小在缓存大小的5%到25%之间,最好是10%。LRU队列的最大大小在缓存大小的75%到95%之间,最好是90%。
根据本发明的又一个优选实施例,需要从缓存存储器交换输出的FIFO队列元素的地址被交换输入到辅助FIFO队列中。以这种方法可以显著地提高缓存命中率,因为仅被访问一次的元素仅仅通过相对较小的辅助FIFO队列就能“就位”(make it),并且不引起LRU队列中经常使用的元素的替换,这对数据处理***的整体性能有正面影响。
根据本发明的又一个优选实施例,某些数据被分类为FIFO类型数据,而其它数据被分类为LRU数据。当这种预先分类的数据被交换输入到缓存存储器中时,数据被直接加入其相应的队列,即,被分类为FIFO类型的数据被加入FIFO队列,被分类为LRU类型的数据被加入LRU队列。
换句话说,当预先分类的FIFO类型数据被交换输出到存储器中且其地址被输入辅助FIFO队列,并且稍后它被再次交换输入到缓存存储器中时,它仍被加入FIFO队列而非LRU队列。
要注意,本发明不限于缓存主存储器的行。另一种应用是缓存数据库***。在这种情况下,来自基于磁盘的储存装置(类似于主存储器)的同等大小的数据页面或数据块(类似于缓存线)被缓存在计算机的存储器中,计算机的存储器起到来自磁盘的数据页面的缓存的作用。
附图说明
下面将通过参考附图来更为详细地描述本发明的优选实施例,其中:
图1是数据处理***的框图,
图2示出了执行数据缓存的流程图。
具体实施方式
图1示出了数据处理***100,数据处理***100具有至少一个处理器102,用于运行应用程序104。数据处理***100还具有缓存模块106,用于将处理器102耦合到主存储器108。
缓存模块106具有用于储存多个缓存线的缓存存储器110。储存在缓存存储器110中的每一个缓存线均具有相关联的标签:“地址”、“FIFO”、“LRU”以及“指针”。
标签“地址”指示储存在对应的缓存线中的数据的地址或者页号。标签“FIFO”指示缓存线是否属于FIFO队列。标签“LRU”指示对应的缓存线是否属于LRU队列。
“指针”指向相应队列中的下一个元素和前一个元素。如果缓存线属于FIFO队列,则“指针”具有一个指向FIFO队列的下一个缓存线的指针和一个指向FIFO队列的前一个缓存线的指针;同样地,如果缓存线属于“LRU队列”,“指针”具有指向LRU队列的下一个和前一个元素的两个指针。以这种方法,为FIFO和LRU队列创建了双向链表。双向链表具有在LRU情况下快速地解除链接的优点。
缓存模块106还具有辅助存储器112,用于储存缓存线地址的辅助FIFO队列。辅助FIFO队列的每一项均以和储存在缓存存储器110中的缓存线相同的方式包含地址和/或页号信息。在下面,辅助FIFO队列112将被称为热FIFO队列(hot FIFO queue)。要注意,存储器112只储存热FIFO队列元素的地址,而不储存缓存线自身,缓存线自身储存在主存储器108中。
缓存存储器110和辅助存储器112可以由同一物理存储器器件实现或由分离的存储器部件实现。例如,辅助存储器112可以被实现为专用FIFO储存部件。
缓存模块106还具有用于控制数据缓存的逻辑电路114。逻辑电路114可以是硬连接的逻辑,或者,它可以运行用于控制数据缓存的程序,或者,它可以是两者的组合。
在工作中,数据从主存储器108交换输入到缓存存储器110中。储存在缓存存储器110中的缓存线的第一子集建立FIFO队列,而储存在缓存存储器110中的缓存线的分离第二子集建立LRU队列。
在工作中可能发生下列情况。缓存模块106从应用程序104接收到数据请求116。作为响应,逻辑电路114检查缓存存储器110中是否存在缓存命中。如果情况并非如此,则检查缓存存储器112,即热FIFO,以查找命中。如果缓存存储器112中存在命中,则对应的缓存线被从主存储器108交换输入到缓存存储器110,并被加入LRU队列。当缓存线从主存储器108交换输入到缓存存储器110中时,对应的标签也被储存,即“地址”标签、“LRU”标签以及从被交换输入的缓存线到LRU队列的下一个和前一个元素的“指针”。
如果在辅助存储器112中未找到被请求的数据地址,则数据请求116被转发到主存储器108,并且数据118被从主存储器108交换输入。按定义,数据118被作为FIFO队列的新元素储存在缓存存储器110中。如果FIFO队列满了,则这要求将FIFO队列的的最后一个元素交换输出到主存储器108中,并且将其地址输入辅助FIFO队列112。
FIFO队列的最大大小最好被设置成缓存存储器110的储存容量的5%到25%之间的水平。
图2示出了对应的流程图。在步骤200,缓存模块接收到数据请求。在步骤202,确定对于该数据请求是否存在缓存命中。如果如此,则在步骤204中,对应的数据被返回到请求者,即请求应用程序。在步骤206中,相应队列被更新:如果发生缓存命中的被请求缓存线是FIFO队列的元素,则不必做任何事情;如果发生缓存命中的缓存线是LRU队列的元素,则在步骤206中,根据LRU算法对LRU队列进行更新。
如果在步骤202中确定发生了缓存错失,则控制去往步骤208。在步骤208中,确定被请求的数据地址是否储存在热FIFO中(比较图2的缓存存储器112)。如果存在热FIFO命中,则在步骤210中,被请求的数据被从主存储器交换输入到缓存,并被输入LRU队列;接着,在步骤212中,数据被返回到请求者。
如果在步骤210中LRU队列满了,则LRU队列的最后一个元素需要被交换输出到主存储器,以便为新的被请求数据释放空间。
如果在步骤208中存在热FIFO错失,则控制去往步骤216,以便从主存储器交换输入被请求数据。在步骤218中,确定缓存存储器的FIFO队列是否已经达到其最大大小。如果情况并非如此,则在步骤220中,在步骤216中交换输入的数据被根据FIFO算法加入缓存存储器的FIFO队列。
如果情况相反,则控制去往步骤222。在步骤222,FIFO队列的第一个元素被交换输出到主存储器中,并且其地址被输入热FIFO。在热FIFO队列是满的的情况下,这可能导致丢弃热FIFO的第一个元素。接下来在步骤224中,在步骤216中交换输入的数据被根据FIFO算法加入缓存存储器的FIFO队列。
作为图2方法的结果,经常使用的数据可能属于LRU队列,而较少使用的数据则可能属于FIFO队列。结果,总的命中率增加了,这对数据处理***的性能有正面影响。
附图标记列表
100数据处理***
102处理器
104应用程序
106缓存模块
108主存储器
110缓存存储器
112缓存存储器
114逻辑电路
116数据请求
118数据
Claims (13)
1.一种数据缓存方法,包含步骤:
a)建立FIFO队列和LRU队列,
b)为已经被交换输出到外部存储器的缓存线的地址建立辅助FIFO队列,
c)在对于数据请求存在缓存错失的情况下:确定所述辅助FIFO队列中是否存在命中,并且,如果如此,则将数据交换输入到所述LRU队列中,否则将数据交换输入到所述FIFO队列中。
2.如权利要求1所述的方法,其中,所述FIFO队列具有第一预定义最大大小,并且所述LRU队列具有第二预定义最大大小,其中所述第一预定义最大大小在所述第二预定义最大大小以下。
3.如权利要求1或2所述的方法,其中,在所述辅助FIFO队列中存在错失的情况下,执行下列步骤:
-从外部存储器交换输入数据,
-将所述交换输入的数据加入所述FIFO队列,
-如果所述FIFO队列已经达到预定义的最大大小:将元素从所述FIFO队列交换输出到所述辅助FIFO队列中。
4.如权利要求1、2或3所述的方法,其中,所述第一预定义最大大小在所述缓存存储器的大小的5%和25%之间,最好为大约10%。
5.如权利要求1到4中的任何一个所述的方法,其中,所述LRU队列的所述第二预定义最大大小在所述缓存存储器大小的75%和95%之间,最好是90%。
6.一种缓存存储器,包含:
-用于建立FIFO队列和LRU队列的装置(110、114),
-用于为已经被交换输出的缓存线的地址建立辅助FIFO队列的装置(112、114),
-用于确定所述辅助FIFO队列中是否存在命中,并且在命中的情况下将对应数据从外部存储器交换输入到所述LRU队列中的装置(114)。
7.如权利要求6所述的缓存存储器,其中,所述FIFO队列具有第一预定义最大大小,并且所述LRU队列具有第二预定义最大大小,其中所述第一预定义最大大小在所述第二预定义最大大小以下。
8.如权利要求6或7所述的缓存存储器,还包含装置(114),用于执行下列步骤:
-在所述辅助FIFO队列中存在错失的情况下,从外部存储器(108)交换输入数据,
-将所述交换输入的数据加入所述FIFO队列,
-如果所述FIFO队列已经达到预定义的最大大小:将元素从所述FIFO队列交换输出到外部存储器,并将其地址放入辅助FIFO队列。
9.如权利要求6、7或8所述的缓存存储器,其中,所述第一预定义最大大小在所述缓存存储器的大小的5%和25%之间,最好为大约10%。
10.如权利要求6到9中的任何一个所述的缓存存储器,其中,所述LRU队列的所述第二预定义最大大小在所述缓存存储器大小的75%和95%之间,最好是90%。
11.一种数据处理***,包含:
-至少一个处理器(102),用于运行应用程序(104),
-外部存储器(108),
-耦合在所述处理器和所述外部存储器之间的缓存模块(106),所述缓存存储器具有:
a)用于建立FIFO队列和LRU队列的装置(110、114),
b)用于为已经被交换输出到外部存储器的缓存线地址建立辅助FIFO队列的装置(112、114),
c)用于确定所述辅助FIFO队列中是否存在命中,并且在命中的情况下将对应数据从所述外部存储器交换输入到所述LRU队列中的装置(114)。
12.如权利要求11所述的数据处理***,所述外部存储器是主存储器或基于磁盘的储存设备。
13.如权利要求11或12所述的数据处理***,所述缓存线是来自数据库的同等大小的数据页面或数据块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03017835A EP1505506A1 (en) | 2003-08-05 | 2003-08-05 | A method of data caching |
EP03017835.4 | 2003-08-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1829979A true CN1829979A (zh) | 2006-09-06 |
CN100437525C CN100437525C (zh) | 2008-11-26 |
Family
ID=33547635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800218171A Expired - Lifetime CN100437525C (zh) | 2003-08-05 | 2004-07-05 | 数据缓存方法、缓存存储器及数据处理*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US7284096B2 (zh) |
EP (2) | EP1505506A1 (zh) |
CN (1) | CN100437525C (zh) |
AT (1) | ATE532137T1 (zh) |
WO (1) | WO2005015408A1 (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059958B (zh) * | 2007-03-15 | 2010-12-15 | 上海交通大学 | 利用缓存来加快量化数据取得的编码和解码方法 |
CN102455978A (zh) * | 2010-11-05 | 2012-05-16 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
CN101459627B (zh) * | 2008-04-07 | 2012-09-05 | 中兴通讯股份有限公司 | 消息管理方法 |
WO2012159394A1 (zh) * | 2011-05-23 | 2012-11-29 | 中兴通讯股份有限公司 | 一种移动设备内存管理方法及装置 |
CN102999443A (zh) * | 2012-11-16 | 2013-03-27 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN103019973A (zh) * | 2012-11-23 | 2013-04-03 | 华为技术有限公司 | 交互数据的***和方法 |
CN103150269A (zh) * | 2011-12-06 | 2013-06-12 | 广东新岸线计算机***芯片有限公司 | 一种数据缓存控制方法和*** |
CN103917962A (zh) * | 2011-11-18 | 2014-07-09 | 国际商业机器公司 | 读取存储在存储***上的文件 |
CN103999058A (zh) * | 2011-12-16 | 2014-08-20 | 国际商业机器公司 | 带驱动器***服务器 |
CN104731722A (zh) * | 2015-04-17 | 2015-06-24 | 吉林大学 | 一种针对缓存页面的页面管理方法及装置 |
CN105005537A (zh) * | 2015-08-13 | 2015-10-28 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN105068942A (zh) * | 2015-08-13 | 2015-11-18 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN105095114A (zh) * | 2015-08-13 | 2015-11-25 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN109408411A (zh) * | 2018-09-25 | 2019-03-01 | 浙江工商大学 | 基于数据访问次数的GPGPU的L1 Cache管理方法 |
CN110019361A (zh) * | 2017-10-30 | 2019-07-16 | 北京国双科技有限公司 | 一种数据的缓存方法及装置 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103772B2 (en) | 2003-12-24 | 2012-01-24 | Sap Aktiengesellschaft | Cluster extension in distributed systems using tree method |
US8499078B2 (en) | 2003-12-24 | 2013-07-30 | Sap Aktiengesellschaft | Address generation in distributed systems using tree method |
US7653070B2 (en) * | 2005-06-07 | 2010-01-26 | Broadcom Corporation | Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags |
US7395373B2 (en) * | 2005-09-20 | 2008-07-01 | International Business Machines Corporation | Set-associative cache using cache line decay counts and set overflow |
US7822915B2 (en) * | 2007-06-30 | 2010-10-26 | Alcatel-Lucent Usa Inc. | Memory controller for packet applications |
US8621154B1 (en) * | 2008-04-18 | 2013-12-31 | Netapp, Inc. | Flow based reply cache |
KR20100069240A (ko) * | 2008-12-16 | 2010-06-24 | 삼성전자주식회사 | 캐시 컨트롤을 위한 장치 및 방법 |
US8171227B1 (en) | 2009-03-11 | 2012-05-01 | Netapp, Inc. | System and method for managing a flow based reply cache |
CN102609235B (zh) * | 2011-01-25 | 2014-08-20 | 中兴通讯股份有限公司 | 双端口ram读取数据后更新数据的方法及*** |
WO2013090433A1 (en) * | 2011-12-12 | 2013-06-20 | Black Point Technologies Llc | Systems and methods for trading using an embedded spreadsheet engine and user interface |
CN103179050B (zh) * | 2011-12-20 | 2017-10-13 | 中兴通讯股份有限公司 | 数据包入队和出队管理方法及数据包处理装置 |
US20130219116A1 (en) * | 2012-02-16 | 2013-08-22 | Wenguang Wang | Data migration for composite non-volatile storage device |
US9424194B2 (en) | 2012-05-01 | 2016-08-23 | International Business Machines Corporation | Probabilistic associative cache |
CN103257935B (zh) * | 2013-04-19 | 2016-07-13 | 华中科技大学 | 一种缓存管理方法及其应用 |
US9197716B2 (en) | 2013-05-30 | 2015-11-24 | Sap Se | Pre-fetching resources by predicting user actions |
US9720847B2 (en) * | 2013-07-17 | 2017-08-01 | Nxp Usa, Inc. | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed |
US10558571B2 (en) | 2014-03-20 | 2020-02-11 | Sybase, Inc. | Second level database file cache for row instantiation |
US10067981B2 (en) | 2014-11-21 | 2018-09-04 | Sap Se | Intelligent memory block replacement |
US9558216B2 (en) | 2014-11-21 | 2017-01-31 | Sap Se | Moving tables across nodes in an in-memory database instance |
CN105208017B (zh) * | 2015-09-07 | 2019-01-04 | 四川神琥科技有限公司 | 一种存储器信息获取方法 |
US10387329B2 (en) * | 2016-02-10 | 2019-08-20 | Google Llc | Profiling cache replacement |
EP3206348B1 (en) * | 2016-02-15 | 2019-07-31 | Tata Consultancy Services Limited | Method and system for co-operative on-path and off-path caching policy for information centric networks |
US9826932B2 (en) | 2016-04-19 | 2017-11-28 | Google Llc | Automated abdominojugular reflux testing |
US10789220B2 (en) | 2017-03-28 | 2020-09-29 | Sap Se | Management of database API schema |
US11232126B2 (en) | 2018-11-21 | 2022-01-25 | Sap Se | Zero downtime upgrade of systems with database-side replication |
US10853693B2 (en) | 2018-12-04 | 2020-12-01 | Sap Se | Software logistic for learning applications |
US10891217B2 (en) | 2018-12-10 | 2021-01-12 | Sap Se | Optimizing test coverage based on actual use |
US10700949B1 (en) | 2018-12-13 | 2020-06-30 | Sap Se | Stacking of tentant-aware services |
US11121943B2 (en) | 2018-12-13 | 2021-09-14 | Sap Se | Amplifying scaling elasticity of microservice meshes |
US10642609B1 (en) | 2018-12-13 | 2020-05-05 | Sap Se | Integrating preview systems for early validation and maintenance in development-to-production landscapes provisioned by continuous delivery |
US11782838B2 (en) * | 2020-08-14 | 2023-10-10 | Advanced Micro Devices, Inc. | Command processor prefetch techniques |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794229A (en) * | 1993-04-16 | 1998-08-11 | Sybase, Inc. | Database system with methodology for storing a database table by vertically partitioning all columns of the table |
EP0624844A2 (en) * | 1993-05-11 | 1994-11-17 | International Business Machines Corporation | Fully integrated cache architecture |
US5701426A (en) * | 1995-03-31 | 1997-12-23 | Bull Information Systems Inc. | Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio |
JPH08339331A (ja) * | 1995-06-12 | 1996-12-24 | Alps Lsi Technol Kk | キャッシュメモリー |
US6490654B2 (en) | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
US6397296B1 (en) * | 1999-02-19 | 2002-05-28 | Hitachi Ltd. | Two-level instruction cache for embedded processors |
US6601143B1 (en) | 1999-09-25 | 2003-07-29 | International Business Machines Corporation | Self-adapting cache management method and system |
US6557053B1 (en) * | 2000-01-04 | 2003-04-29 | International Business Machines Corporation | Queue manager for a buffer |
US7076614B2 (en) * | 2001-06-29 | 2006-07-11 | Intel Corporation | System and method for optimizing bus bandwidth utilization by grouping cache write-backs |
-
2003
- 2003-08-05 EP EP03017835A patent/EP1505506A1/en not_active Withdrawn
-
2004
- 2004-07-05 EP EP04740650A patent/EP1654660B1/en not_active Expired - Lifetime
- 2004-07-05 AT AT04740650T patent/ATE532137T1/de active
- 2004-07-05 WO PCT/EP2004/007315 patent/WO2005015408A1/en active Application Filing
- 2004-07-05 CN CNB2004800218171A patent/CN100437525C/zh not_active Expired - Lifetime
- 2004-08-05 US US10/911,716 patent/US7284096B2/en active Active
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059958B (zh) * | 2007-03-15 | 2010-12-15 | 上海交通大学 | 利用缓存来加快量化数据取得的编码和解码方法 |
CN101459627B (zh) * | 2008-04-07 | 2012-09-05 | 中兴通讯股份有限公司 | 消息管理方法 |
CN102455978A (zh) * | 2010-11-05 | 2012-05-16 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
CN102455978B (zh) * | 2010-11-05 | 2015-08-26 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
WO2012159394A1 (zh) * | 2011-05-23 | 2012-11-29 | 中兴通讯股份有限公司 | 一种移动设备内存管理方法及装置 |
CN103917962A (zh) * | 2011-11-18 | 2014-07-09 | 国际商业机器公司 | 读取存储在存储***上的文件 |
CN103150269A (zh) * | 2011-12-06 | 2013-06-12 | 广东新岸线计算机***芯片有限公司 | 一种数据缓存控制方法和*** |
CN103150269B (zh) * | 2011-12-06 | 2017-07-14 | 广东新岸线计算机***芯片有限公司 | 一种数据缓存控制方法和*** |
CN103999058A (zh) * | 2011-12-16 | 2014-08-20 | 国际商业机器公司 | 带驱动器***服务器 |
US9990395B2 (en) | 2011-12-16 | 2018-06-05 | International Business Machines Corporation | Tape drive system server |
CN102999443B (zh) * | 2012-11-16 | 2015-09-09 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN102999443A (zh) * | 2012-11-16 | 2013-03-27 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN103019973A (zh) * | 2012-11-23 | 2013-04-03 | 华为技术有限公司 | 交互数据的***和方法 |
CN103019973B (zh) * | 2012-11-23 | 2015-08-26 | 华为技术有限公司 | 交互数据的***和方法 |
CN104731722A (zh) * | 2015-04-17 | 2015-06-24 | 吉林大学 | 一种针对缓存页面的页面管理方法及装置 |
CN104731722B (zh) * | 2015-04-17 | 2018-08-07 | 吉林大学 | 一种针对缓存页面的页面管理方法及装置 |
CN105005537A (zh) * | 2015-08-13 | 2015-10-28 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN105068942A (zh) * | 2015-08-13 | 2015-11-18 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN105095114A (zh) * | 2015-08-13 | 2015-11-25 | 广州优倍达信息科技有限公司 | 一种计算机缓存***的管理方法 |
CN110019361A (zh) * | 2017-10-30 | 2019-07-16 | 北京国双科技有限公司 | 一种数据的缓存方法及装置 |
CN109408411A (zh) * | 2018-09-25 | 2019-03-01 | 浙江工商大学 | 基于数据访问次数的GPGPU的L1 Cache管理方法 |
Also Published As
Publication number | Publication date |
---|---|
ATE532137T1 (de) | 2011-11-15 |
EP1654660A1 (en) | 2006-05-10 |
WO2005015408A1 (en) | 2005-02-17 |
CN100437525C (zh) | 2008-11-26 |
US7284096B2 (en) | 2007-10-16 |
US20050055511A1 (en) | 2005-03-10 |
EP1505506A1 (en) | 2005-02-09 |
EP1654660B1 (en) | 2011-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100437525C (zh) | 数据缓存方法、缓存存储器及数据处理*** | |
CN1317644C (zh) | 简化了缓存替换策略的实现的多线程缓存方法和装置 | |
CN1317645C (zh) | 具有基于线程标识符的缓存清除的多线程缓存方法和装置 | |
US5778434A (en) | System and method for processing multiple requests and out of order returns | |
US11507516B2 (en) | Adaptive cache partitioning | |
CN1154049C (zh) | 双端口管道两级高速缓冲存储器*** | |
CN106909515B (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
US5630097A (en) | Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses | |
US5687368A (en) | CPU-controlled garbage-collecting memory module | |
US11126555B2 (en) | Multi-line data prefetching using dynamic prefetch depth | |
US20070094450A1 (en) | Multi-level cache architecture having a selective victim cache | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
CN1652092A (zh) | 不同高速缓存级上具有关联集重叠同余组的多级高速缓存 | |
CN1722110A (zh) | 低等待时间存储器***访问 | |
JP2735781B2 (ja) | キャッシュ・メモリ制御システム及び方法 | |
CN1287311A (zh) | 一种用组预测来降低在组相关高速缓存器中的执行时间的方法及设备 | |
JPH07253926A (ja) | キャッシュ・ミスによる時間ペナルティ減少方法 | |
US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
US6549983B1 (en) | Cache memory system and method for managing the same | |
CN1302393C (zh) | 高速缓冲存储器***和控制高速缓冲存储器***的方法 | |
CN101063957A (zh) | 管理锁定的高速缓冲存储器中的组替换的***和方法 | |
CN1726477A (zh) | 用于预取和存储器管理的页描述符 | |
WO2024045586A1 (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
US6959363B2 (en) | Cache memory operation |
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 |