CN1734431A - 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 - Google Patents

用于软件可控动态可锁高速缓冲存储器线替换系统的方法 Download PDF

Info

Publication number
CN1734431A
CN1734431A CN200510080753.9A CN200510080753A CN1734431A CN 1734431 A CN1734431 A CN 1734431A CN 200510080753 A CN200510080753 A CN 200510080753A CN 1734431 A CN1734431 A CN 1734431A
Authority
CN
China
Prior art keywords
line
road
data
cache
cache memory
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
Application number
CN200510080753.9A
Other languages
English (en)
Other versions
CN100440177C (zh
Inventor
詹姆斯·N·迪芬德费尔
理查德·W·多英格
布赖恩·E·弗兰克尔
凯尼奇·楚奇亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1734431A publication Critical patent/CN1734431A/zh
Application granted granted Critical
Publication of CN100440177C publication Critical patent/CN100440177C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • G06F12/125Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage

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

本发明公开了一种用于记录对联合高速缓冲存储器的线的访问的LRU阵列和方法。在表中确定最近最多访问过的高速缓冲存储器的线,并能够将高速缓冲存储器线锁定,以免于被替换。LRU阵列包含具有代表联合高速缓冲存储器的每个线的数据行的数据阵列,其中每个线具有公共的地址部分。高速缓冲存储器线的第一数据集合确定每路的高速缓冲存储器线相对于每个其他路的相对时间。第二数据集合确定路的一个的线是否不被替换。对于高速缓冲存储器线的替换,高速缓冲存储器控制器考虑第一数据集合的值,也考虑指示了路是否被锁定的第二数据集合的值,利用LRU阵列中的内容选择最近最少访问的线。每次线的预读取或读取后,或替换了高速缓冲存储器中另一线时,都会刷新LRU。

Description

用于软件可控动态可锁 高速缓冲存储器线替换系统的方法
技术领域
本发明涉及计算机处理器存储器高速缓存,例如集合联合(setassociative)高速缓冲存储器。更具体的说,提供了一种高速缓冲存储器以及一种控制此高速缓冲存储器的方法,使得可以选择性地控制线替换。
背景技术
计算机处理器使用高速缓冲存储器来减少对指令以及其他数据的访问时间。由于从大容量存储器中重新获得必要的指令需要时间,所以具有包含所有执行应用程序所必须的指令的主存储器的计算机系统要忍受执行的延迟。因此,提供了高速缓冲存储器,它允许处理器在预读取过程中将指令从主存储器转移到高速缓冲存储器中,可以在稍后需要的时候在高速缓冲存储器中访问这些指令。
即使高速缓冲存储器加快了取回指令所需的访问时间,在计算机处理器工作频率和访问存储在高速缓冲存储器中的数据所需的时间之间仍然存在不一致。已经开发了高速缓冲存储器设计,如已知的二级(L2)高速缓冲存储器以及和地址解码(sum address decode)一级(L1)高速缓冲存储器,其允许同时访问转换缓冲器(TLB)以及指令或数据高速缓冲存储器,用来减小处理器执行中由于线读取的等待时间所造成的空闲或停顿时间。
高速缓冲存储器的设计必须考虑处理器的高时钟速率,其趋向于加大指令等待时间和指令执行时间之间的不同,存储器物理尺寸也限制了高速缓冲存储器的设计。作为一种用于在增加时钟频率的同时最优化高速缓冲存储器性能的方法,四路集合联合高速缓冲存储器对于某些应用来说可能是最适宜的。四路或八路集合联合高速缓冲存储器已经展现出重大的性能好处,它没有复杂的输出多路复用电路,没有用来识别高速缓冲存储器中哪些线可以被替换的复杂阵列。通过集合联合,本领域的熟练技术人员能够理解,通过公共地址部分同时寻址多个存储器。多个存储器全部映射到单一高速缓冲存储器线,通过多路复用器使用伴随有地址的标签信息来从集合联合存储器中选择高速缓冲存储器线中的一个。集合联合高速缓冲存储器仅存储主存储器中的一部分指令,而主存储器中包含处理器执行所需的全部指令。在预读取操作(或任意读取操作)期间,处理器必须选择某些线用于替换,以便在随后的执行周期中在高速缓冲存储器里有新的指令可用。现已实现了各种各样的算法来选择对哪些线进行替换。一种普遍使用的替换算法选择最近最少使用(LRU)的线用于替换。在大多数情况下,替换控制器记录高速缓冲存储器线的使用,通过选择最近最少使用的高速缓冲存储器线用于替换来开始替换。
然而,即使当采用这种线替换算法时,会存在诸如处理器指令这样的高速缓冲存储器线,可能在将来会频繁的使用和需要它们,即使它们可能满足LRU算法的替换要求。因此,一旦识别了这样的指令,希望不要将它们替换掉,而是保存在高速缓冲存储器中。系统程序器锁定某些高速缓冲存储器线,使其免于被替换的能力可以避免已知稍后所需的指令在高速缓冲存储器中失效。由于不同的应用可能要求锁定不同的高速缓冲存储器线以使其免于被替换,因此线的选择过程必须是可编程的和软件可控制的。
发明内容
本发明提供了一种方法,用于记录对联合高速缓冲存储器的高速缓冲存储器线的访问,以及用于锁定某些高速缓中存储器线使之免于被替换。包含数据阵列的LRU阵列记录每个高速缓冲存储器线的使用,所述数据阵列具有数据行,代表联合高速缓冲存储器的每路中的每个线。第一行数据集合识别每个联合高速缓冲存储器集合的高速缓冲存储器线相对于每个其他路的相对时间。通过检查第一数据集合,可以确定集合联合高速缓冲存储器中的多个路中,哪个路包含最近最少使用的高速缓冲存储器线,或,可供选择地,最近最多使用的高速缓冲存储器线。与第一数据集合关联的第二数据集合识别是否要锁定高速缓冲存储器线中的一个或多个,防止被新的高速缓冲存储器线替换。
根据本发明的优选实施方式,在具有W0、W1、W2和W3四路的集合联合高速缓冲存储器中,在高速缓冲存储器控制器对高速缓冲存储器线的每次访问后,LRU阵列内容被刷新。第一数据集合包含六个识别高速缓冲存储器线相对时间的比较比特,基于相对于在每个其他路中具有公共地址的高速缓冲存储器线的它们的最近最多访问。通过检查W0W1、W0W2、W0W3、W1W2、W1W3和W2W3这六个数据比特,可以确定哪个路包含最近最多和最近最少访问的数据。第二数据集合标识是否不替换该路的一个的特定高速缓冲存储器线。当第二数据集合的数据比特设置为1时,不被替换的该特定高速缓冲存储器线的标示被识别到该高速缓冲存储器控制器。
附图说明
图1是结构图,举例说明了高速缓冲存储器系统,该系统采用根据本发明的LRU阵列方法访问高速缓冲存储器线。
图2举例说明了根据本发明的优选实施方式的LRU阵列,使得允许高速缓冲存储器控制单元确定寻址的多个路的最近最少使用的线,以及锁定路的线,从而使其免于被替换。
图3是流程图,它举例说明了图1中的高速缓冲存储器控制单元如何控制4路集合联合高速缓冲存储器14中的高速缓冲存储器线的替换。
图4举例说明了锁定和解锁高速缓冲存储器线的过程。
具体实施方式
现在参看图1,其中示出了在高速缓冲存储器控制器10控制下的四路集合联合高速缓冲存储器14。该集合联合高速缓冲存储器包括路W0、W1、W2和W3,每个集合存储数据线,例如由处理器执行的指令。每路可以包含256个数据线,从集合联合高速缓冲存储器14中产生的每个高速缓冲存储器线都有公共的地址元素,所以一次对四个高速缓冲存储器线寻址,以从每个路W0、W1、W2和W3产生高速缓冲存储器数据线。通过多路复用器15,根据从标记存储器阵列12的输出,选择这些数据线中的一个。
由处理器所提供的地址的低位部分寻址高速缓冲存储器的路以及标记存储器12中四个标记阵列的每一个。地址的高位部分呈现给比较器13,当标记阵列的输出与地址高位部分相一致时,为多路复用器15产生高速缓冲存储器选择信号。因此,只选择4路集合联合高速缓冲存储器14所产生的4个高速缓冲存储器线中的一个。
如图2所示的是LRU阵列11,它跟踪集合联合高速缓冲存储器14中被访问的线。由于集合联合高速缓冲存储器14只能包含少量执行程序可能需要的指令或数据线,所以需要刷新高速缓冲存储器14以便能得到执行所需要的新的数据线。LRU阵列11包含最近的信息,该信息指示出集合联合高速缓冲存储器14的哪一路含有最近最多使用的高速缓冲存储器线,以及优选用于替换的最近最少使用的高速缓冲存储器线。每次发生对高速缓冲存储器14中的高速缓冲存储器线的访问时都在LRU阵列11写入数据,所以高速缓冲存储器控制器10能够识别哪些线最近使用过,哪些最近没有使用过。
对于集合联合高速缓冲存储器14包含的256个集合中的每一个,在LRU阵列11中存在六个比较比特W0W1、W0W2、W0W3、W1W2、W1W3和W2W3。第一数据组包含识别每一路对各自高速缓冲存储器线的相对时间的比较比特。第一组,W0W1,是这样的比较比特,当其设置为1时,表示高速缓冲存储器线W0比路W1更近地被访问过。当这一比特设置为0时,表示W1比W0更近地被访问过。相应地,剩余路对具有比较比特W0W2、W0W3、W1W2等,其表示第二标识的路相对于第一标识的路的相对时间。这组比较比特表示第一数据组,为多个路识别准确的从LRU到MRU的排序,并且识别包含最近最少使用的高速缓冲存储器线以及最近最多使用的高速缓冲存储器线的路。
第二数据组包含四个数据比特,识别一个路的哪些高速缓冲存储器线是被锁定的。如果第二数据组中的一个比特或多个比特被设置,把锁定路的高速缓冲存储器线识别为排除在替换之外,并不被替换。然后比较要替换的剩余路的比较比特的第一数据组,替换包含最近最少使用的高速缓冲存储器线的路。
在高速缓冲存储器控制器访问高速缓冲存储器14中的每个线时,不断地更新图2中的LRU阵列11。因此,在任何给定的时间,LRU阵列11都包含最新的比较比特和锁定比特,以向高速缓冲存储器控制器识别在高速缓冲存储器14中哪些线可以被替换,以避免读取后续的指令时造成高速缓冲存储器命中失误。在高速缓冲存储器14没有在预读取周期预先装载适当的指令的情况下,系统将从主存储器中取回指令,这将给指令执行增加相当多的延迟。
所示表1举例说明了用于每个高速缓冲存储器线的为每个路对存储的比较比特的相对值,产生的每个高速缓冲存储器线都有公共地址,如第一数据组所示。LRU阵列11中的6个比特通过下列方程来识别最近最少使用(LRU)的路(当没有锁定比特设置时):
lru_Way0=(~W0W1)&(~W0W2)&(~W0W3)
lru_Way1=(W0W1)&(~W1W2)&(~WIW3)
lru_Way2=(W0W2)&(W1W2)&(~W2W3)
lru_Way3=(W0W3)&(W1W3)&(W2W3)
                                 表1
  W0W1   W0W2   W0W3   W1W2   W1W3   W2W3   LRU路
  0   0   0   -   -   -   路0
1 - - 0 0 - 路1
  -   1   -   1   -   0   路2
  -   -   1   -   1   1   路3
因此,当最近最少使用的高速缓冲存储器线在路0时,表1的W0W1、W0W2、W0W3位置的比较比特分别为0、0、0。与上面规则相一致。当路W1、W2或W3包含最近最少使用的高速缓冲存储器线时,数据的形式如表1中所示。
从上述可以看出,每次对高速缓冲存储器14的数据线的访问,可以通过只改变比较比特中的三个更新LRU的数据比特。其余的比特则保留不变。每次高速缓冲存储器命中,也就是高速缓冲存储器产生与由处理器所提供地址相匹配的正确数据时,只需要向LRU中写入三个比特,来识别包含被访问的线的路作为最近最多使用的路。
本发明还提供了用于锁定高速缓冲存储器线,使得它们不会变成最近最少使用的,从而因此被替换。处理将锁定的线视为相对于其他高速缓冲存储器路上的其他高速缓冲存储器线是最新的(最近最多使用的)。这样,不会将锁定的路考虑用于线替换。
为了提供用于锁定所选定的路,修改了方程以便当锁定比特设置时不会考虑该路用于线替换。对上述方程的修改如下所示:
lru_Way0=(~mW0W1)&(~mW0W2)&(~mW0W3)
Iru_Way1=(mW0W1)&(~mW1W2)&(~mW1W3)
Iru_Way2=(mW0W2)&(mW1W2)&(~mW2W3)
Iru_Way3=(mW0W3)&(mW1W3)&(mW2W3)
mW0W1=(W0LK|W0W1)&~W1LK;
mW0W2=(W0LK|W0W2)&~W2LK;
mW0W3=(W0LK|W0W3)&~W3LK;
mW1W2=(W1LK|W1W2)&~W2LK;
mW1W3=(W1LK|W1W3)&~W3LK;
mW2W3=(W2LK|W2W3)&~W3LK;
其中:mW0W1=路0/路1的修正的时间
WnLK=路n被锁定;其中n=0,1,2,3
图3中详细地给出了用于跟踪高速缓冲存储器线的使用,以及识别由于很少使用,并且没被锁定,用于替换的线的流程。每当高速缓冲存储器控制器在步骤30寻址高速缓冲存储器14中的线时,流程开始。用于从高速缓冲存储器14中读出数据或向高速缓冲存储器14中写入的地址也被处理器使用,以在步骤31中更新LRU11中的每个比较比特。如表2所示那样写入LRU比较比特,以识别产生最近最多访问的高速缓冲存储器线的特定路。如果处理器已经执行了预读取指令,其中识别了用于执行应用程序所需的指令,则选择高速缓冲存储器中由处理器所指定地址处的线用于替换。当高速缓冲存储器控制器收到替换高速缓冲存储器线的请求时,由于在判决框32处确定了高速缓冲存储器命中失误,在步骤33中读取并分析存储在所选地址处的比较比特。根据表1中的数据,当没有设置锁定比特时,在步骤41中这些数据识别最近最少使用的高速缓冲存储器线。然后在步骤42中高速缓冲存储器控制器10可以替换该线,并且在步骤43中刷新该LRU数据,并将其识别为最近最多使用的线。当替换或重新使用高速缓冲存储器线时,表2识别如何设置LRU数据。例如,如果路2的高速缓冲存储器线是最近最多更新或使用的,如所示写入路2的比较比特以表明其为最近最多使用的。
                                    表2
  使MRU的路 W0W1 W0W2 W0W3 W1W2 W1W3 W2W3
  路0   1   1   1   -   -   -
  路1   0   -   -   1   1   -
  路2   -   0   -   0   -   1
  路3   -   -   0   -   0   0
(“-”表示未涉及比特)
如果在所检查的LRU阵列集合中,在程序器的控制下,通过软件执行的命令,已经开启了用于一个或多个线的锁定比特时,如步骤35中所确定的,则通过修改过的方程来识别用于替换的高速缓冲存储器线。
通过检查表1中除了被识别为锁定的特定路之外所有比较比特,在步骤40中确定最近最少使用的线。在步骤40中从剩余路中选择最近最少使用的线,并在步骤42中将其替换。在步骤43中刷新该LRU数据,以将该线状态从最近最少使用改为最近最多使用。在没有设置为1的锁定比特的情况下,将通过参考表1中比较比特的内容,来从全部路中确定哪个是最近最少使用的线。
表3举例说明了如何利用锁定比特来识别哪些路被锁定,并强制使锁定的路表现为具有最近最多使用的线。
                                     表3
W0W1 W0W2 W0W3 W1W2 W1W3 W2W3 W0LK W1LK W2LK W3LK   LRU路
  -   -   -   0   0   -   1   0   0   0   路1
  -   -   -   1   -   0   1   0   0   0   路2
  -   -   -   -   1   1   1   0   0   0   路3
  -4   0   0   -   -   -   0   1   0   0   路0
  -   1   -   -   -   0   0   1   0   0   路2
  -   -   1   -   -   1   0   1   0   0   路3
由于出现了锁定比特,前三线表明路0被锁定。由于路0在LRU地址被锁定,不可替换该高速缓冲存储器线,所以上面的方程会使之呈现为最近最多使用的。这仅仅是没有锁定比特设置的其余三路的相互关系,是使用它们确定将被替换的高速缓冲存储器线。表3的其余三线举例说明了当路1被锁定时的替换确定。使用CPU指令来锁定和解锁线。
图4中给出了锁定高速缓冲存储器线的执行步骤。发生ICBT(指令缓存阻塞触发:instruction cache block touch)事件之前,如在高速缓冲存储器中替换线以及写预读取,执行到SPR指令58的转移,并在高速缓冲存储器控制寄存器57中设置全局锁定比特。高速缓冲存储器控制寄存器57的设置意味着将锁定高速缓冲存储器中的一个或多个高速缓冲存储器线。软件中所包含的ICBT指令中识别了锁定线的地址。因此,当由ICBT指令52寻址高速缓冲存储器时,在步骤56中通过在LRU阵列11适当的位置上给锁定比特写入1,来锁定LRU中的线。在正常的指令读取期间,在步骤53从高速缓冲存储器中读取指令,如步骤54中所示,在高速缓冲存储器中将该线设为最近最多使用的线,并不被锁定。
通过执行使整个指令高速缓冲存储器锁定比特失效,并关闭全部锁定比特的指令,可以立即解锁锁定的线。或者,可以执行ICBI(指令缓存阻塞失效:instruction cache block invalidate)指令来仅仅解锁由ICBI指令寻址的线,并识别为无效。因此该无效的线为LRU,并要被替换。
虽然通过本发明的优选实施方式详细展现和描述了本发明,但本领域的熟悉技术人员应当理解,可以在其中进行形式上和细节上的各种改变而不脱离本发明的精神和范围。

Claims (15)

1.一种LRU阵列,用于跟踪对联合高速缓冲存储器的数据线的访问,以便识别最近最多使用的线,以及用于使所述高速缓冲存储器数据线的某些免于被替换,包括:
数据阵列,具有代表所述联合高速缓冲存储器的每一线的数据行,所述联合高速缓冲存储器具有公共的地址位置,所述数据的第一部分识别所述联合高速缓冲存储器的每一路的高速缓冲存储器线相对于每个其他路的相对访问时间,以及所述数据的第二部分识别是否不替换所述路的一个的所述高速缓冲存储器线。
2.根据权利要求1的用于跟踪对所述联合高速缓冲存储器的线的访问的LRU阵列,其中所述数据的第一部分包括用于每个路对的单一比较比特,用来识别所述路对的每一个的高速缓冲存储器线的相对访问时间。
3.根据权利要求1的用于跟踪对所述联合高速缓冲存储器的线的访问的LRU阵列,其中所述数据的第二部分包括用于识别是否锁定了一路,从而使得不论所述路的所述高速缓冲存储器线的访问时间,都不将其替换的单一比特。
4.根据权利要求3的用于跟踪对所述联合高速缓冲存储器的线的访问的LRU阵列,其中所述数据的第一部分包括包含单一比较比特的多个字段,所述单一比较比特表示一路对的高速缓冲存储器线的相对访问时间。
5.一种用于跟踪对联合高速缓冲存储器的线的访问的方法,包括:
为高速缓冲存储器的每一线存储第一数据组,所述第一数据组对应于LRU阵列内的具有公共地址部分的所述线的每一个,所述数据组包括多个字段,所述字段的每一个包含识别路对中的高速缓冲存储器线的相对时间的比特,因此所述数据集合识别路对中哪一路具有最近最少访问的高速缓冲存储器线;以及
存储与所述第一数据集合相关联的第二数据集合组,识别包含不被新数据替换的高速缓冲存储器线的一路。
6.根据权利要求5的用于跟踪对联合高速缓冲存储器的线的访问的方法,进一步包括:
当发生对高速缓冲存储器线的访问时,更新所述第一数据组,以便该数据识别该最近最多访问的路。
7.根据权利要求6的用于跟踪对联合高速缓冲存储器的线的访问的方法,其中所述第二数据组修改所述第一组或数据,以便不将被锁定以防止高速缓冲存储器线替换的路确定为最近最少访问的路。
8.根据权利要求5的方法,其中通过由识别具有被锁定而免于被替换的高速缓冲存储器线的路的处理器执行的指令写入所述第二数据组。
9.根据权利要求5的方法,其中通过识别只有单一锁定高速缓冲存储器线的指令来清除所述第二数据组。
10.根据权利要求5的方法,其中对所述路W0、W1、WN的每一个,其中N是路的总数,所述第一数据组包括为每个路对指示该对中的高速缓冲存储器线的相对访问时间的数据比特。
11.根据权利要求10的方法,其中有4路W0、W1、W2、W3,以及六个代表每个路对W0W1、W0W2、W0W3、W1W2、W1W3和W2W3相对时间的数据比特,从这些比特中可以识别最近最少使用的路。
12.根据权利要求5的方法,进一步包括:
从没有与之相关的锁定比特的路中选择一路用于替换高速缓冲存储器线。
13.根据权利要求12的方法,其中所述选出的路是所述未被锁定的所述路中最近最少使用的。
14.一种LRU表,用于跟踪对具有四路W0、W1、W2和W3的联合高速缓冲存储器的线的访问,以便识别具有最近最少使用的高速缓冲存储器线的路,以及用于使所述高速缓冲存储器线的某些免于被替换,而不管它们的相对使用,包括:
数据阵列,具有代表所述联合高速缓冲存储器的每个线的数据行;所述数据的第一组,具有用于识别每个路对W0W1、W0W2、W0W3、W1W2、W1W3和W2W3的高速缓冲存储器线的相对访问时间的比较比特,从而可以确定最少使用的高速缓冲存储器线,以及所述数据的第二组,识别所述路的一个的所述线是否不被替换。
15.根据权利要求14的LRU,其中所述第二数据集合包括识别所述路的哪个具有不被替换的线的比特位置W0LK、W1LK、W2LK和W3LK。
CNB2005100807539A 2004-08-11 2005-06-30 用于软件可控动态可锁高速缓冲存储器线替换系统的方法 Expired - Fee Related CN100440177C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/915982 2004-08-11
US10/915,982 US7321954B2 (en) 2004-08-11 2004-08-11 Method for software controllable dynamically lockable cache line replacement system

Publications (2)

Publication Number Publication Date
CN1734431A true CN1734431A (zh) 2006-02-15
CN100440177C CN100440177C (zh) 2008-12-03

Family

ID=35801348

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100807539A Expired - Fee Related CN100440177C (zh) 2004-08-11 2005-06-30 用于软件可控动态可锁高速缓冲存储器线替换系统的方法

Country Status (2)

Country Link
US (1) US7321954B2 (zh)
CN (1) CN100440177C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156677A (zh) * 2011-04-19 2011-08-17 威盛电子股份有限公司 快取存储器存取方法及系统
CN103688259A (zh) * 2011-05-19 2014-03-26 甲骨文国际公司 用于通过压缩和纵列存储进行自动数据放置的技术
CN110162490A (zh) * 2018-02-12 2019-08-23 世意法(北京)半导体研发有限责任公司 高速缓冲管理设备、系统和方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7616210B2 (en) * 2005-08-23 2009-11-10 Canon Kabushiki Kaisha Memory apparatus and memory control method
US8533395B2 (en) 2006-02-24 2013-09-10 Micron Technology, Inc. Moveable locked lines in a multi-level cache
US7676632B2 (en) * 2006-07-18 2010-03-09 Via Technologies, Inc. Partial cache way locking
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
WO2008033963A2 (en) * 2006-09-12 2008-03-20 Boa Technology, Inc. Closure system for braces, protective wear and similar articles
US7793049B2 (en) * 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies
US8108609B2 (en) * 2007-12-04 2012-01-31 International Business Machines Corporation Structure for implementing dynamic refresh protocols for DRAM based cache
US7882302B2 (en) * 2007-12-04 2011-02-01 International Business Machines Corporation Method and system for implementing prioritized refresh of DRAM based cache
US20090144504A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation STRUCTURE FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US20090144507A1 (en) * 2007-12-04 2009-06-04 International Business Machines Corporation APPARATUS AND METHOD FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
US7962695B2 (en) * 2007-12-04 2011-06-14 International Business Machines Corporation Method and system for integrating SRAM and DRAM architecture in set associative cache
US8024513B2 (en) * 2007-12-04 2011-09-20 International Business Machines Corporation Method and system for implementing dynamic refresh protocols for DRAM based cache
US8429349B2 (en) * 2008-09-18 2013-04-23 International Business Machines Corporation Techniques for cache injection in a processor system with replacement policy position modification
US9256540B2 (en) * 2008-09-18 2016-02-09 International Business Machines Corporation Techniques for cache injection in a processor system using a cache injection instruction
US9110885B2 (en) * 2008-09-18 2015-08-18 International Business Machines Corporation Techniques for cache injection in a processor system
US8443146B2 (en) * 2008-09-18 2013-05-14 International Business Machines Corporation Techniques for cache injection in a processor system responsive to a specific instruction sequence
US9336145B2 (en) * 2009-04-09 2016-05-10 International Business Machines Corporation Techniques for cache injection in a processor system based on a shared state
US9268703B2 (en) * 2009-04-15 2016-02-23 International Business Machines Corporation Techniques for cache injection in a processor system from a remote node
TW201308079A (zh) * 2011-08-09 2013-02-16 Realtek Semiconductor Corp 快取記憶體裝置與快取記憶體資料存取方法
US8918587B2 (en) * 2012-06-13 2014-12-23 International Business Machines Corporation Multilevel cache hierarchy for finding a cache line on a remote node
CN103577480B (zh) * 2012-08-07 2017-05-31 中国银联股份有限公司 一种参数划分系统及其方法、一种业务处理系统及其方法
US10465349B2 (en) 2017-12-12 2019-11-05 Care Barrier Limited Illuminated barrier apparatus
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
WO2022226770A1 (zh) * 2021-04-27 2022-11-03 深圳市大疆创新科技有限公司 访问缓存行的方法和装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US5353425A (en) * 1992-04-29 1994-10-04 Sun Microsystems, Inc. Methods and apparatus for implementing a pseudo-LRU cache memory replacement scheme with a locking feature
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6047358A (en) * 1997-10-31 2000-04-04 Philips Electronics North America Corporation Computer system, cache memory and process for cache entry replacement with selective locking of elements in different ways and groups
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6105115A (en) * 1997-12-31 2000-08-15 Intel Corporation Method and apparatus for managing a memory array
US6202129B1 (en) * 1998-03-31 2001-03-13 Intel Corporation Shared cache structure for temporal and non-temporal information using indicative bits
JP2000200221A (ja) * 1998-10-30 2000-07-18 Nec Corp キャッシュメモリ装置及びその制御方法
US6393525B1 (en) * 1999-05-18 2002-05-21 Intel Corporation Least recently used replacement method with protection
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US6546462B1 (en) * 1999-12-30 2003-04-08 Intel Corporation CLFLUSH micro-architectural implementation method and system
US6446171B1 (en) * 2000-03-02 2002-09-03 Mips Technologies, Inc. Method and apparatus for tracking and update of LRU algorithm using vectors
US6745291B1 (en) * 2000-08-08 2004-06-01 Unisys Corporation High speed LRU line replacement system for cache memories
US20020152361A1 (en) * 2001-02-05 2002-10-17 International Business Machines Corporation Directed least recently used cache replacement method
US6594742B1 (en) * 2001-05-07 2003-07-15 Emc Corporation Cache management via statistically adjusted slot aging
JP3997404B2 (ja) * 2002-07-12 2007-10-24 Necエレクトロニクス株式会社 キャッシュメモリ及びその制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156677A (zh) * 2011-04-19 2011-08-17 威盛电子股份有限公司 快取存储器存取方法及系统
CN102156677B (zh) * 2011-04-19 2014-04-02 威盛电子股份有限公司 快取存储器存取方法及系统
US8994740B2 (en) 2011-04-19 2015-03-31 Via Technologies, Inc. Cache line allocation method and system
CN103688259A (zh) * 2011-05-19 2014-03-26 甲骨文国际公司 用于通过压缩和纵列存储进行自动数据放置的技术
CN110162490A (zh) * 2018-02-12 2019-08-23 世意法(北京)半导体研发有限责任公司 高速缓冲管理设备、系统和方法

Also Published As

Publication number Publication date
US20060036811A1 (en) 2006-02-16
US7321954B2 (en) 2008-01-22
CN100440177C (zh) 2008-12-03

Similar Documents

Publication Publication Date Title
CN1734431A (zh) 用于软件可控动态可锁高速缓冲存储器线替换系统的方法
CN1110752C (zh) 实现高速缓存一致性机制的方法和系统
US5073851A (en) Apparatus and method for improved caching in a computer system
US5778436A (en) Predictive caching system and method based on memory access which previously followed a cache miss
US6578111B1 (en) Cache memory system and method for managing streaming-data
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
EP0729102B1 (en) Cachability attributes for virtual addresses in virtually and physically indexed caches
US5423016A (en) Block buffer for instruction/operand caches
US20050108496A1 (en) Hardware support for superpage coalescing
US8499123B1 (en) Multi-stage pipeline for cache access
US6516389B1 (en) Disk control device
CN1347526A (zh) 改进虚拟存储器系统中存储器访问的技术
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6668307B1 (en) System and method for a software controlled cache
US20030200408A1 (en) Method and apparatus for reducing latency in a memory system by interleaving SRAM and DRAM accesses
US20100088457A1 (en) Cache memory architecture having reduced tag memory size and method of operation thereof
CN100517273C (zh) 高速缓冲存储器及其控制方法
US6587920B2 (en) Method and apparatus for reducing latency in a memory system
US7743215B2 (en) Cache-memory control apparatus, cache-memory control method and computer product
US6598124B1 (en) System and method for identifying streaming-data
US7949833B1 (en) Transparent level 2 cache controller
CN101065735A (zh) 本地存储器数据的一致性高速缓存
US6256710B1 (en) Cache management during cache inhibited transactions for increasing cache efficiency
WO2002027498A2 (en) System and method for identifying and managing streaming-data
EP1502191B1 (en) Methods and apparatus for controlling a cache memory

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
ASS Succession or assignment of patent right

Owner name: GOOGLE INC.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORP.

Effective date: 20120427

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120427

Address after: American California

Patentee after: Google Inc.

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081203

Termination date: 20160630

CF01 Termination of patent right due to non-payment of annual fee