CN1317644C - 简化了缓存替换策略的实现的多线程缓存方法和装置 - Google Patents

简化了缓存替换策略的实现的多线程缓存方法和装置 Download PDF

Info

Publication number
CN1317644C
CN1317644C CNB038129329A CN03812932A CN1317644C CN 1317644 C CN1317644 C CN 1317644C CN B038129329 A CNB038129329 A CN B038129329A CN 03812932 A CN03812932 A CN 03812932A CN 1317644 C CN1317644 C CN 1317644C
Authority
CN
China
Prior art keywords
cache
subclauses
clauses
catalogue
label
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
Application number
CNB038129329A
Other languages
English (en)
Other versions
CN1659525A (zh
Inventor
俄代姆·霍克尼克
约翰·C·格罗斯尼尔
阿瑟·J·霍安
梅安·贸德基尔
王胜宏
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.)
Alamo acquiring company
Original Assignee
Sandbridge Technologies Inc
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 Sandbridge Technologies Inc filed Critical Sandbridge Technologies Inc
Publication of CN1659525A publication Critical patent/CN1659525A/zh
Application granted granted Critical
Publication of CN1317644C publication Critical patent/CN1317644C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

一种用于在多线程处理器中使用的高速缓冲存储器,包括多个组关联线程高速缓存,带有一个或多个线程高速缓存,每一个都实现基于访问请求地址的清除处理,其减少了所述高速缓冲存储器中所需的替换策略存储量。在示例性实施例中,至少一个特定线程高速缓存包括具有多个存储位置组的存储器阵列和用于存储标签的目录,每个标签与存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签,从而如果存储器阵列中有n组存储位置,则有n个标签与各目录条目相关联。目录被用于在访问请求和存储器阵列的存储位置之间实现组关联地址映射。根据与高速缓存未命中事件相关联的访问请求中的至少一部分地址的至少一部分,从与高速缓存未命中事件相关联的特定线程高速缓存中选出一个用于清除特定存储位置的条目。

Description

简化了缓存替换策略的实现 的多线程缓存方法和装置
本发明与美国专利申请代理人案卷No.1007-2所描述的发明有关,该发明与本发明同时提交,标题为“Method and Apparatus forMultithreaded Cache with Cache Eviction Based on ThreadIdentifier”,其在此合并作为参考。
技术领域
本发明一般涉及计算机体系结构的领域,尤其涉及用于在多线程处理器中使用的高速缓冲存储器。
背景技术
如所公知的,处理器通常与包括一个级别的不同存储器元件的存储器系统一起使用。例如,如M.J.Flynn“Computer Architecture:Pipelined and Parallel Processor Design”,Jones and BartlettPublishers Boston,MA,1995中所描述的,这种内存系统可包括后备存储器、主存储器以及高速缓冲存储器,该文在此合并作为参考。
后备存储器代表分级存储器系统中的最高级存储器,在访问时间方面与处理器相差很远,并通常需要大量的循环来访问。代表性的示例是硬盘驱动器。后备存储器具有吉比特级(GB)的容量,访问时间大约为10-3秒。
主存储器或1级存储器在访问时间方面还算接近处理器。代表性的示例是动态随机访问存储器(DRAM)。其典型的容量为兆比特(MB)级,但访问速度比后备存储器快得多,通常量级为10-8秒。
高速缓冲存储器,也被称为0级存储器或简称为“高速缓存”,其为最频繁使用的数据提供有效而高速的访问,在访问时间方面最接近于处理器。代表性的示例是静态随机访问存储器(SRAM)。其通常很小,容量为千字节(KB)级,而访问速度非常快,量级为10-9秒。
高速缓存依据局域性(locality)原理工作。局域性包括空间、时间或顺序局域性。空间局域性涉及这样的可能性:处理器执行的程序在执行期间将访问相同或邻近的存储位置。时间局域性涉及这样的性质:如果程序包括对多个不同位置的一系列访问,则非常可能该系列之后的访问也访问与该序列相联系的位置。顺序局域性涉及这样的性质:如果已经访问了特定的位置S,那么随后可能访问位置S+1。处理器数据访问在本文被称为“引用(reference)”。
由高速缓存控制器实现的地址映射控制功能确定如何在高速缓存中存储数据,以及如何将数据从1级或更高级存储器中移到高速缓存中。如果高速缓存满足了特定的处理器数据访问,则该访问被称为“高速缓存命中(cache hit)”,否则被称为“高速缓存未命中(cachemiss)”。高速缓存通常从更高级的存储器中取出多个存储器行(line)。该行的大小通常被设计为与被执行的程序的预期空间局域性相一致。
可以组织高速缓存以按需取数据或预取数据。大多数处理器使用按需取的方法,从而当出现高速缓存未命中时,高速缓存控制器将清除当前行并用处理器所引用的行替换它。在预取方法中,高速缓存控制器试图预测将需求哪些行,并随后在处理器引用它们之前将这些行移到高速缓存中。
在常规高速缓冲存储器中使用的寻址映射控制的三种基本类型是全关联映射(fully associative mapping)、直接映射(direct mapping)和组关联映射(set-associative mapping)。全关联映射和直接映射方法分别在图1和2中示出。在这些附图中,为了使说明简化和清楚,省略了高速缓存控制器及至少一部分与其相应的映射逻辑电路。
图1示出了使用全关联地址映射的高速缓冲存储器100。该高速缓冲存储器100包括存储器阵列102和目录104。该图示出了高速缓存处理访问请求106的方式。访问请求106包括标签110、偏移112和字节/字(B/W)选择字段114。示例性地,访问请求106的部分110、112和114的长度可以分别是18比特、3比特和3比特。标签110与目录104中的条目(entry)比较。如果在目录104的特定条目104-k的标签120与访问请求106的标签110相匹配,则为高速缓存命中。在这种情况下,同样存储在目录104的条目104-k中的相应地址122被与访问请求106的偏移112相结合使用,以识别存储器阵列102中的特定行102-j。随后将所请求的行发送给处理器。如果标签110与目录104中存储的任何标签都不匹配,则为高速缓存未命中。所示的存储器阵列102包括4KB数据,每行8字节地排列在512行中。如图所示,存储器阵列102中的512行中的特定行被唯一的9比特地址识别,该9比特地址包括来自目录104的6比特地址122加上3比特偏移112。
图2示出了使用直接映射的高速缓冲存储器200。高速缓冲存储器200包括存储器阵列202和目录204。图中示出了高速缓存处理访问请求206的方式。访问请求206包括标签210、索引211、偏移212和B/W字段214。示例性地,访问请求206的部分210、211、212和214的长度可以分别是10比特、8比特、3比特和3比特。依据直接映射的方法,索引211被用于识别目录204中的特定条目204-k。该特定条目204-k包括一标签220。由于只有索引211被用于识别目录204中的特定条目,因而对不同地址的访问请求将被映射到目录204中相同的位置。因此在比较器222中比较所得的标签220与访问请求206中的标签210,如果两个标签匹配,则其匹配输出被置为逻辑高电平,否则被置为逻辑低电平。匹配输出被用作门224的启动信号,门224判断根据索引211和偏移212所确定的存储器阵列202的特定条目202-j是否将提供给处理器。如果存储在目录204的条目204-k中的标签220与访问请求206中的标签210相匹配,则为高速缓存命中,否则为高速缓存未命中。所示的存储器阵列202包括16KB的数据,每行8字节地排列在2048行中。因此,存储器阵列202中的2048行中的特定行由唯一的11比特地址识别,该11比特地址包括8比特索引211加上3比特的偏移212。
组关联高速缓存的操作方式与上述的直接映射高速缓存200类似,只是可能出现对访问请求地址的多次选择机会。组关联高速缓存的存储器阵列被分为不同的部分或组,并且该目录在其各条目中包括多个标签,各标签与这些组中的一组相对应。各访问请求地址的标签部分与由访问请求的索引部分所标识的所述目录的特定条目中的各标签相比较。如果发现了匹配,则该比较结果还被用于从存储器阵列的一个组中选出一行,传送给处理器。
如果上述高速缓冲存储器之一发生了高速缓存未命中,则通常从高速缓存中清除(evict)相应的数据,取出正确的数据并存储在高速缓存中。可用来确定哪个数据应被清除的替换策略很多。例如,最近最少使用(LRU)替换策略试图通过总是去除与缓存中没有被访问的最老位置相关联的数据利用时间局域性。为了维持状态信息来实现n个资源的LRU替换策略(其中n例如指明了在组关联高速缓冲存储器中的组数),一种已知的方法要求n2比特的状态信息。如G.A.Blaauw等人的“Computer Architecture:concept and Evolution,”Addison-Wesley,Reading,MA,1997中所描述的,已经发展了进一步的改进,将对状态信息的要求降低到n(n-1)/2比特,该文在此合并作为参考。在高速缓冲存储器中使用的替换策略的其他示例包括随机替换和先入先出(FIFO)替换。
图1和图2中的示例存储器高速缓存是在处理器从存储位置读取数据的上下文中描述的。对于处理器向存储位置写入数据来说,场景是类似的。主要差别在于数据被处理器写入高速缓存的存储器阵列中的适当位置,随后高速缓存必须决定何时将该数据写回主存储器。直写(write-through)高速缓存立即存储到主存储器和高速缓冲存储器阵列。如果一行中的任何位置发生了写入,则回写(copy-back)高速缓存将该给定行标记为“脏”,只有在该行被清除并标记为脏时,才更新主存储器。
与上述类型的常规高速缓冲存储器相联系的重要问题是在与多线程处理器(也就是说,支持同时执行多个独立的指令序列或“线程”的处理器)一起使用时,它们通常不是最优的。因而存在着提高多线程处理器实现缓冲存储器的技术的需求。
发明内容
本发明提供了一种改进的多线程高速缓冲存储器,在示例性实施例中,其在发生高速缓存未命中时,通过使用访问请求中的地址的至少一部分来控制决定从高速缓存中清除一行或多行或其他条目,提供了高速缓存替换策略的简化实现。
本发明提供了一种用于多线程处理器的高速缓冲存储器,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:包括多组存储位置的存储器阵列;和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
本发明还提供了一种用于多线程处理器的高速缓冲存储器,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:包括多组存储位置的存储器阵列;和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除;其中,所述多组存储位置包括n组存储位置,并且每个目录条目存储n个标签;以及其中,所述给定线程高速缓存中所需的替换策略状态信息比特的总数为n(n-2)/8。
本发明还提供了一种用于多线程处理器的高速缓冲存储器,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:包括多组存储位置的存储器阵列;和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除;所述高速缓冲存储器还包括至少与所述给定线程高速缓存相关联的清除判定电路,并且包括:第一选择电路,用于基于所述访问请求地址的一个或多个比特,选出所述目录的给定条目中的标签总数的子集;和第二选择电路,用于基于与所述给定线程高速缓存相关联的一个或多个替换策略比特,选择所述标签总数的子集中的一个特定标签从所述目录中清除;其中,所述第一选择电路包括第一多路复用器,所述第一多路复用器具有多个输入端和一选择信号,每个输入端与所述标签之一相对应,而所述选择信号与所述访问请求地址的一个或多个比特相对应。
本发明还提供了一种多线程处理器,包括:高速缓冲存储器,用于存储将由所述处理器执行的指令;数据存储器,用于存储将依据所述指令被处理的数据;指令解码器,用于解码从所述高速缓冲存储器中取出的指令;以及一个或多个算术逻辑单元,用于依据所述解码的指令对所述数据执行运算;其中,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:包括多组存储位置的存储器阵列;和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
本发明还提供了一种用于控制多线程处理器中的高速缓冲存储器的方法,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括具有多组存储位置的存储器阵列和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签,所述方法包括下列步骤:确定在所述给定线程高速缓存中发生了高速缓存未命中事件;以及结合所述高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
依据本发明的一个方面,用于在多线程处理器中使用的高速缓冲存储器包括多个组关联线程高速缓存(thread cache),组关联线程高速缓存具有一个或多个线程高速缓存,每个线程高速缓存实现基于地址的清除处理,减少高速缓冲存储器中所要求的替换策略存储量。
在示例性实施例中,一个或多个线程高速缓存中的每一个包括具有多组存储位置的存储器阵列和用于存储标签的目录,每个标签与其中一个存储位置的特定地址的至少一部分相对应。该目录具有多个条目,每个条目存储多个标签,从而如果存储器阵列中有n组存储位置,则有n个标签与各目录条目相关联。目录被用于在访问请求和存储器阵列的存储位置之间实现组关联地址映射。至少部分地基于与高速缓存未命中事件相关联的访问请求中的至少一部分地址,从与高速缓存未命中事件相关联的特定线程高速缓存中选出一个特定存储位置的条目用于清除。
作为更具体的示例,该目录可以被分为第一部分和第二部分,每个部分在该目录的给定条目中具有两个或多个标签,访问请求地址的标签部分的最低位被用于选择目录的一部分,从该部分中,标签被选出用于从线程高速缓存中清除。在使用访问请求地址的标签部分的最低位选择出目录的特定部分之后,可使用一个或多个替换策略比特来确定来自被选出部分的特定标签。随后将该特定标签及其相应存储位置条目从高速缓存中清除。
本发明有利地减少了高速缓冲存储器中的替换策略状态复杂度,允许用比其他情况所需的较少电路实现替换策略,从而比上述常规方法节省电路面积和功率。
附图说明
图1示出了利用全关联映射的常规高速缓冲存储器;
图2示出了利用直接映射的常规高速缓冲存储器;
图3A是其中实现了本发明的示例性处理系统的方框图;
图3B是图3A的处理系统中的多线程处理器的更详细的方框图,示出了其中实现了本发明的多线程高速缓存;
图4示出了利用可与本发明一起使用的组关联映射的高速缓冲存储器;
图5示出了依据本发明的示例性实施例的高速缓冲存储器。
具体实施方式
本发明在此示意为在多线程处理器的多线程高速缓冲存储器中实现。然而,应该明白,本发明并不是必须使用示例性实施例中的特定多线程高速缓存以及处理器配置,本发明更一般地适用于任何涉及线程处理的组关联高速缓冲存储器应用,并用于降低所需的替换策略复杂度。
将结合图3A、图3B、图4和图5描述实现了依据本发明的多线程高速缓冲存储器的示例性处理系统300。图3A示出了处理器300,该处理器300包括与主存储器304相连接的多线程处理器302。图3B示出了多线程处理器302的一可能实现的更详细的视图。在该实施例中,多线程处理器302包括多线程高速缓存310、数据存储器312、高速缓存控制器314、指令解码器316、寄存器文件318和一组算数逻辑单元(ALU)320。多线程高速缓存310在本文中也被称为高速缓冲存储器。应该强调的是,图3A和图3B所示的特定结构是为了清楚地说明而被简化了的,可以包括图中未明确示出的另选或附加的部件,这对本领域的技术人员是显而易见的。
多线程高速缓存310包括多个线程高速缓存310-1、310-2、...、310-N,其中N泛指被多线程处理器支持的线程的数目。因而每个线程在多线程高速缓存310中具有与其关联的相应线程高速缓存。类似地,数据存储器312包括N个独立的数据存储器实例,由所示的数据存储器312-1、312-2、...、312-N指示。
多线程高速缓存310通过高速缓存控制器314与主存储器304相接。高速缓存控制器314可确保来自主存储器304的适当指令被载入多线程高速缓存310。在该示例性实施例中,高速缓存控制器314与各线程高速缓存310-1、310-2、...、310-N相关联的逻辑电路或其他处理部件协同操作,实现组关联地址映射和最近最少使用(LRU)替换策略的至少一部分。下面结合图4和图5更详细地描述组关联地址映射和LRU替换策略。然而示例性实施例的特定映射方法和LRU替换策略不应被解释为对本发明的限制。其他的组关联映射实现和另选的替换策略诸如随机替换或FIFO替换也可与本发明结合使用。
通常,多线程高速缓存310被用于存储将被多线程处理器302执行的存储指令,而数据存储器312存储被该指令操作的数据。由指令解码器316从多线程高速缓存310中取出指令,指令解码器316与寄存器文件318和ALU320协同操作,以常规方式控制指令的执行。多线程处理器部件诸如316、318、320的操作在本领域内是公知的,因此本文没有深入详细地描述。
图4示出了可以在多线程高速缓存310的一个特定线程高速缓存中实现的组关联地址映射。如图4所示,组关联地址映射不包括本发明的改进的基于地址的高速缓存清除技术。图5示出了被配置并入了依据本发明的基于地址的高速缓存清除的图4的线程高速缓存。
先参照图4,图4示出了利用组关联地址映射的线程高速缓存400。线程高速缓存400被假定为与图3B所示的多线程高速缓存310中的一个特定线程高速缓存相对应。多线程310中的其他线程高速缓存的子集或全部可以以类似的方式实现。所示的线程高速缓存400包括存储器阵列402和目录404。存储器阵列402包括许多不同的存储位置组。在该实施例中,不同的存储位置组的数目为4,该四个组由组1、组2、组3、组4指明,但其他的实施例使用的组也可多于或少于4个。目录404包括多个条目,每个条目存储4个标签。在目录404的给定条目中的每个标签对应于存储器阵列402中的一对应组中的特定存储位置的地址。更具体地,目录404中的给定条目404-k包括4个所示的不同标签。每个标签控制到存储器阵列402的组组1、组2、组3、组4之一中的相应存储位置的映射。通常,在这种类型的组关联高速缓存中,如果存储器阵列402包括n组存储位置,则目录404的每个条目中存储n个标签。因此目录404可被视为被分成了所示的4个部分。这些部分由图中的1、2、3、4指明,每个部分只与目录404中的各条目中的单个标签相关联。
在图4的组相关线程高速缓存400中,示例性访问请求406被包括标签410、索引411、偏移412和B/W字段214的高速缓存处理。访问请求可能来自于与多线程处理器302的指令获取操作相协同的指令解码器316。如图所示,访问请求406的部分410、411、412和414的长度可以分别是12比特、6比特、3比特和3比特。这些字段的长度和特定访问请求结构仅仅是示例的方式而已,无论如何也不能解释为对本发明的范围的限制。依据组相关映射方法,索引411被用于识别目录404中的特定条目404-k,该特定条目404-k与本实施例中各其他目录条目一样,包括所示的4个标签,每个标签与存储器阵列402的组组1、组2、组3或组4中的一个相关联。假定每个标签的长度不限于与标签410的长度(也就是说,本实施例中的12比特)相同。被识别出的条目404-k的这些标签中的每一个在4个比较器416的与其相应的一个比较器中与标签410相比较。更具体地,来自目录条目404-k的部分1的第一标签在比较器416-1中与标签410相比较,来自部分2的第二标签在比较器416-2中与标签410相比较,来自部分3的第三标签在比较器416-3中与标签410相比较,来自部分4的第四标签在比较器416-4中与标签410相比较。这些比较器416的输出形成一组选择信号,用于选择组组1、组2、组3或组4中与该信号对应的组。
如果在标签410和来自目录条目404-k的一个标签发生匹配,则对应的选择信号被启用,例如被驱动到逻辑高电平。否则,即为高速缓存未命中,而没有选择信号被启用。在给定的时间只启用选择信号中的一个。该选择信号被施加到多路复用器418的选择信号输入端,多路复用器418根据被启用的一个特定选择信号,从存储器阵列402的被选出的组中的对应存储位置选择该行,传送到处理器。更具体地,在本实施例中,所需的行将被传送到指令解码器316用于解码并在多线程处理器302中执行。
所示的存储器阵列402包括16KB的数据,每行8字节的排列在2048行中。各组组1、组2、组3和组4中的每一个包括512行。因此由唯一的9比特地址来标识存储器阵列402的四个不同组中的给定组中的特定一行,在本实施例中,该9比特地址包括6比特索引411加上3比特偏移412。
可以将图4实施例中的标签410、索引411和偏移412整体地视为与访问请求406相关联的地址。在本文使用的术语“地址”应被理解为包括含有相关地址信息的访问请求的任意一个和多个部分,应理解本发明不要求任何特定的访问请求地址格式。另外,访问请求406的特定格式只是示例而已,不是本发明必须的。依据本发明的给定的访问请求可以以其他的格式包括比图4所示的访问请求更多的或更少的地址信息,并可包括本领域技术人员所公知的附加或另选的信息。
依据本发明的一个方面,在发生高速缓存未命中事件时,至少部分基于访问请求地址,选出并清除存储器阵列402中的给定组中的一个特定存储位置中的一行或其他条目。如前面所指示的,将结合图5更详细地描述基于地址的清除处理。
现在参照图5,其示出了线程高速缓存400′。线程高速缓存400′对应于图3B的多线程高速缓存310中的一个特定线程高速缓存。可以以类似的方式配置多线程高速缓存310中的其他线程高速缓存的全部或子集。线程高速缓存400′包括存储器阵列402、目录404、比较器416和多路复用器418,在处理访问请求(例如访问请求406时),每一个的操作基本与前面结合图4的描述相同。在示例性实施例中的基于地址的清除过程使用访问请求406的标签部分410的低位或最低有效位(LSB)502。线程高速缓存400′还包括清除条目判定多路复用器506和508以及替换策略存储器元件,在本实施例中,该替换策略存储器元件为LRU状态寄存器510的形式。在所示的实施例中,LRU状态寄存器510包括一比特寄存器,其存储单比特512的状态信息。
虽然在图5中将清除条目判定多路复用器506和508以及LRU状态寄存器510示为线程高速缓存400′的部件,但每个都可以部分或全部地在线程高速缓存之外实现。例如,在给定线程高速缓存中的地址映射和替换策略实现所相关的这些和其他元件可以部分或全部地在高速缓存控制器314或多线程处理器302的另一部分中实现。
清除条目判定多路复用器506和508共同地确定将从目录404中清除的特定标签,从而从存储器阵列402的对应存储位置中清除一个条目。
如图5所示,目录404被分成所示的左部分和右部分。更具体地,目录的左部分404包括最左侧的部分1和2,目录404的右部分包括最右侧的部分3和4。因而左部分和右部分整体地包括了整个目录404。而左部分和右部分中的每一个包括用于目录404的每个条目的两个标签。访问请求406的标签部分410的LSB 502作为选择信号被施加到多路复用器506,以从4个输入中选择两个用于传播到多路复用器508的输入端。多路复用器506的四个输入由所示的t0L、t1L,t0R、t1R指明,并分别对应于来自目录左部分的标签0、目录左部分的标签1、目录右部分的标签0、目录右部分的标签1。LSB502用于选择传播到多路复用器508的输入端的左目录标签或右目录标签。
多路复用器508的输入因而是左目录标签t0L、t1L或右目录标签t0R、t1R。将作为选择信号的LRU比特512提供给多路复用器508,并从而用于选择所施加的左或右目录标签中的一个,用于从线程高速缓存400′中清除。一旦选出了用于清除的给定标签,则可以以常规方式从线程高速缓存中清除该标签及其相应的存储位置,例如可以用本领域熟知的用新条目信息进行覆盖的方式。
虽然图5的实施例中的高速缓存清除过程使用访问请求地址的标签部分410的LSB502,但这只是示例而已。在其他实施例中,可以使用访问请求地址的其他部分,例如标签部分的多个低级比特、访问请求地址的其他部分的一个或多个比特等等。在给定实施例中使用的特定部分通常依赖于应用特定系数,诸如访问请求格式、地址格式、高速缓冲存储器配置等。
上述基于地址的高速缓存清除技术相对于常规技术产生了显著的进步。例如该技术显著减少了必须被存储以实现LRU替换策略的状态信息的量。更具体地,在上述基于组关联高速缓存的示例性实施例中,具有4个组,也就是n=4,只需要单个的一比特寄存器来存储用于LRU替换策略的状态信息。前述常规技术需要n2或n(n-1)/2比特的替换策略状态信息,而上述假定只使用一比特访问请求地址的示例性实施例中的基于地址的清除技术需要n(n-2)/8比特状态信息。该示例性实施例相对常规技术的改进在下表中作为n的示例值的函数示出。
 组数(n)   n2   n(n-1)/2   n(n-2)/8
 2   4   1   0
 4   16   6   1
 8   64   28   6
 16   256   120   28
 32   1024   496   120
 64   4096   2016   496
另外,通过减少实现替换策略所必须存储的状态信息的数量,本发明还减少了多线程高速缓冲存储器所需的电路面积和功率。
如上所述,前述表格假定只使用访问请求地址中的一比特来实现本发明的高速缓存清除技术。然而,可以使用多于一比特的访问请求地址。例如,n=8的实施例可以将其目录分成4个部分,每个部分在每个目录条目中具有两个标签,访问请求地址的标签部分的两个最低比特用于选择四个部分中的一个特定部分,根据替换策略状态信息,从该特定部分中选出一个标签用于清除。在该示例中,与图5的示例性实施例一样,只需要一个比特的替换策略信息。
虽然本发明是结合对高速缓冲存储器的存储器阵列中的存储位置的读访问进行描述的,但本发明还可用于对这种位置的写访问。另外,可以根据本文的公开,以直截了当的方式修改常规的写技术以实现本发明的用于写访问的技术。
如前面所指出的,本发明可以在能够配置用于实现组关联映射的任何多线程处理器中使用。这种处理器更具体的示例在2001年12月20日提交的美国专利申请No.60/341,289中详细描述,其全文在此合并作为参考。
本发明的上述实施例仅仅是示意性的,在所附权利要求范围内的大量可选实施例对本领域技术人员是显而易见的。例如,在图5中,给定的线程高速缓存目录可以分为比只分成左部分和右部分更多的部分,也就是说,可以被分成三个或更多的独立部分,并适当地增加用于选择从目录条目中清除的特定标签的访问请求地址和替换策略比特。在该示例性实施例中用于实现清除条目判定的特定电路结构可以被可选的结构所替换。如上面所指明的,可以改变组的数目n。另外,可以使用其他的替换策略,诸如随机替换或FIFO替换,来代替示例性实施例的LRU替换策略。作为关于随机替换的更具体的示例,一个或更多比特的访问请求地址可以被用于确定在给定的目录内,在什么地方发生特定的随机替换。

Claims (15)

1.一种用于多线程处理器的高速缓冲存储器,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:
包括多组存储位置的存储器阵列;和
用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;
其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
2.根据权利要求1所述的高速缓冲存储器,其中,所述多组存储位置包括n组存储位置,并且每个目录条目存储n个标签。
3.根据权利要求1所述的高速缓冲存储器,其中,所述给定线程高速缓存作为组关联高速缓存操作。
4.根据权利要求1所述的高速缓冲存储器,其中,所述地址的一部分包括所述地址的标签部分的一个或多个比特。
5.根据权利要求1所述的高速缓冲存储器,其中,所述给定线程高速缓存还包括寄存器,用于存储一个或多个替换策略比特,至少部分地基于所述访问请求地址和一个或多个存储的替换策略比特,选出被选择从所述给定线程高速缓存中用于清除的所述存储位置条目。
6.根据权利要求5所述的高速缓冲存储器,其中,所述访问请求地址的一个或多个比特用于确定所述目录的一个特定部分,将从该特定部分中选出一个标签,用于确定将从所述给定线程高速缓存中清除的条目,所述特定部分在所述特定部分的给定条目中具有与所述给定条目相关联的多个标签,并且所述一个或多个存储的替换策略比特从与基于所述访问请求地址的一个或多个比特所确定的特定部分相关联的多个标签中确定所选出的标签。
7.根据权利要求1所述的高速缓冲存储器,其中,所述给定线程高速缓存使用最近最少使用替换策略来选择将从所述线程高速缓存中清除的特定条目。
8.根据权利要求1所述的高速缓冲存储器,其中,所述访问请求地址的标签部分的一个或多个最低有效位被用于确定所述目录的一个特定部分,从该特定部分中选出一个与将要被清除的存储位置条目相对应的标签。
9.根据权利要求1所述的高速缓冲存储器,其中,所述目录被组织为第一部分和第二部分,所述目录的每个条目在所述目录的第一部分中具有一个或多个相关标签,并且在所述目录的第二部分中具有一个或多个相关标签,而且所述访问请求地址的标签部分的最低有效位被用于确定是从所述目录的第一部分还是从所述目录的第二部分中选出与将要被清除的条目相对应的标签。
10.根据权利要求1所述的高速缓冲存储器,还包括至少与所述给定线程高速缓存相关联的清除判定电路,并且包括:
第一选择电路,用于基于所述访问请求地址的一个或多个比特,选出所述目录的给定条目中的标签总数的子集;以及
第二选择电路,用于基于与所述给定线程高速缓存相关联的一个或多个替换策略比特,选择所述标签总数的子集中的一个特定标签从所述目录中清除。
11.根据权利要求2所述的高速缓冲存储器,其中,所述给定线程高速缓存中所需的替换策略状态信息比特的总数为n(n-2)/8。
12.根据权利要求10所述的高速缓冲存储器,其中,所述第一选择电路包括第一多路复用器,所述第一多路复用器具有多个输入端和一选择信号,每个输入端与所述标签之一相对应,而所述选择信号与所述访问请求地址的一个或多个比特相对应。
13.根据权利要求12所述的高速缓冲存储器,其中,所述第二选择电路包括第二多路复用器,所述第二多路复用器包括多个输入端和与一个或多个替换策略比特相对应的一选择信号,每个输入端与所述第一多路复用器的一个输出端相对应。
14.一种多线程处理器,包括:
高速缓冲存储器,用于存储将由所述处理器执行的指令;
数据存储器,用于存储将依据所述指令被处理的数据;
指令解码器,用于解码从所述高速缓冲存储器中取出的指令;以及
一个或多个算术逻辑单元,用于依据所述解码的指令对所述数据执行运算;
其中,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括:
包括多组存储位置的存储器阵列;和
用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签;
其中,结合高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
15.一种用于控制多线程处理器中的高速缓冲存储器的方法,所述高速缓冲存储器包括多个线程高速缓存,所述线程高速缓存中的至少一个给定线程高速缓存包括具有多组存储位置的存储器阵列和用于存储标签的目录,每个标签与所述存储位置之一的特定地址的至少一部分相对应,所述目录具有多个条目,每个条目存储多个标签,所述方法包括下列步骤:
确定在所述给定线程高速缓存中发生了高速缓存未命中事件;以及
结合所述高速缓存未命中事件,至少部分地基于与所述高速缓存未命中事件相关联的访问请求中的地址的至少一部分,通过利用所述访问请求中的地址的一个或多个比特来识别所述目录的给定条目中的标签总数的子集,选出一个特定存储位置中的条目从所述给定线程高速缓存中清除,被选择清除的条目被选择为与识别出的所述目录的给定条目中的标签总数的子集中的标签相对应的条目。
CNB038129329A 2002-06-04 2003-06-03 简化了缓存替换策略的实现的多线程缓存方法和装置 Expired - Fee Related CN1317644C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/161,874 2002-06-04
US10/161,874 US6912623B2 (en) 2002-06-04 2002-06-04 Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy

Publications (2)

Publication Number Publication Date
CN1659525A CN1659525A (zh) 2005-08-24
CN1317644C true CN1317644C (zh) 2007-05-23

Family

ID=29583502

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038129329A Expired - Fee Related CN1317644C (zh) 2002-06-04 2003-06-03 简化了缓存替换策略的实现的多线程缓存方法和装置

Country Status (7)

Country Link
US (1) US6912623B2 (zh)
EP (1) EP1532531A4 (zh)
JP (1) JP2005528695A (zh)
KR (1) KR100962057B1 (zh)
CN (1) CN1317644C (zh)
AU (1) AU2003245384A1 (zh)
WO (1) WO2003102781A1 (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934814B2 (en) * 2002-11-05 2005-08-23 Newisys, Inc. Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering
US6920532B2 (en) * 2002-11-05 2005-07-19 Newisys, Inc. Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems
US6925536B2 (en) * 2002-11-05 2005-08-02 Newisys, Inc. Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems
US8074051B2 (en) * 2004-04-07 2011-12-06 Aspen Acquisition Corporation Multithreaded processor with multiple concurrent pipelines per thread
WO2005116837A1 (en) * 2004-05-26 2005-12-08 Intel Corporation Automatic caching generation in network applications
TW200625097A (en) * 2004-11-17 2006-07-16 Sandbridge Technologies Inc Data file storing multiple date types with controlled data access
US20070223599A1 (en) * 2005-07-25 2007-09-27 Sysair, Inc., A Delaware Corporation Cellular PC modem architecture and method of operation
US7908236B2 (en) * 2006-07-20 2011-03-15 International Business Machines Corporation Using multiple data structures to manage data in cache
US8035650B2 (en) * 2006-07-25 2011-10-11 Qualcomm Incorporated Tiled cache for multiple software programs
KR20090078790A (ko) * 2006-09-26 2009-07-20 샌드브리지 테크놀로지스, 인코포레이티드 무선 통신 시스템에서 매트릭스 변환 소프트웨어 구현을 위한 장치 및 방법
WO2008060948A2 (en) * 2006-11-10 2008-05-22 Sandbridge Technologies, Inc. Method and system for parallelization of pipelined computations
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
WO2008155827A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置及び制御方法
EP2602710A1 (en) * 2007-11-05 2013-06-12 Aspen Acquisition Corporation Method of encoding register instruction fields
WO2009097444A1 (en) * 2008-01-30 2009-08-06 Sandbridge Technologies, Inc. Method for enabling multi-processor synchronization
US8762641B2 (en) * 2008-03-13 2014-06-24 Qualcomm Incorporated Method for achieving power savings by disabling a valid array
WO2010017263A1 (en) 2008-08-06 2010-02-11 Sandbridge Technologies, Inc. Haltable and restartable dma engine
CN101751537B (zh) * 2008-12-01 2012-05-09 中兴通讯股份有限公司 一种射频识别应用系统中标签事件的处理方法及装置
GB2469299B (en) * 2009-04-07 2011-02-16 Imagination Tech Ltd Ensuring consistency between a data cache and a main memory
US8392658B2 (en) 2009-07-10 2013-03-05 Apple Inc. Cache implementing multiple replacement policies
CN102063407B (zh) * 2010-12-24 2012-12-26 清华大学 用于多核处理器的网络牺牲Cache及基于该Cache的数据请求方法
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US20130339620A1 (en) * 2012-06-15 2013-12-19 Futurewei Technololgies, Inc. Providing Cache Replacement Notice Using a Cache Miss Request
US9043554B2 (en) 2012-12-21 2015-05-26 Apple Inc. Cache policies for uncacheable memory requests
CN103455434B (zh) * 2013-08-26 2016-12-28 华为技术有限公司 一种建立缓存目录的方法及系统
KR101904421B1 (ko) 2013-09-27 2018-11-30 삼성전자주식회사 캐시 메모리를 제어하는 방법 및 장치.
CN104636268B (zh) * 2013-11-08 2019-07-26 上海芯豪微电子有限公司 一种可重构缓存产品与方法
KR102354990B1 (ko) 2014-09-17 2022-01-24 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법
EP3066571B1 (en) 2014-12-14 2018-06-13 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by ways on memory access type
WO2016097812A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US9811468B2 (en) * 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
EP3055775B1 (en) * 2014-12-14 2019-08-21 VIA Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
WO2016097806A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type
US9582430B2 (en) * 2015-03-27 2017-02-28 Intel Corporation Asymmetric set combined cache
CN105095354A (zh) * 2015-06-19 2015-11-25 北京奇虎科技有限公司 数据更新的方法及装置
JP2017033446A (ja) * 2015-08-05 2017-02-09 株式会社リコー 情報処理システム、情報処理システムの制御方法、及びプログラム
US9952982B2 (en) * 2016-06-06 2018-04-24 International Business Machines Corporation Invoking demote threads on processors to demote tracks indicated in demote ready lists from a cache when a number of free cache segments in the cache is below a free cache segment threshold
US10922230B2 (en) * 2016-07-15 2021-02-16 Advanced Micro Devices, Inc. System and method for identifying pendency of a memory access request at a cache entry
US10565121B2 (en) * 2016-12-16 2020-02-18 Alibaba Group Holding Limited Method and apparatus for reducing read/write contention to a cache
US10394719B2 (en) * 2017-01-25 2019-08-27 Samsung Electronics Co., Ltd. Refresh aware replacement policy for volatile memory cache
US10353817B2 (en) * 2017-03-07 2019-07-16 International Business Machines Corporation Cache miss thread balancing
US10789175B2 (en) * 2017-06-01 2020-09-29 Mellanox Technologies Ltd. Caching policy in a multicore system on a chip (SOC)
CN109240948A (zh) * 2018-08-21 2019-01-18 北京京东尚科信息技术有限公司 一种缓存数据存储和清理方法和装置
US11086777B2 (en) * 2019-04-01 2021-08-10 Arm Limited Replacement of cache entries in a set-associative cache
JP2023507222A (ja) 2019-12-23 2023-02-21 マイクロン テクノロジー,インク. ラインキャッシュミスの効果的な回避
US11188465B1 (en) * 2020-09-02 2021-11-30 Shenzhen GOODIX Technology Co., Ltd. Cache memory replacement policy
CN113722244B (zh) * 2021-11-02 2022-02-22 北京微核芯科技有限公司 一种高速缓存结构、访问方法和电子设备
KR102571234B1 (ko) 2023-02-21 2023-08-25 메티스엑스 주식회사 매니코어 시스템의 스레드 관리 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535361A (en) * 1992-05-22 1996-07-09 Matsushita Electric Industrial Co., Ltd. Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
CN1267024A (zh) * 1999-03-10 2000-09-20 国际商业机器公司 用于多线程处理机的指令高速缓存器
US20010014931A1 (en) * 1998-05-27 2001-08-16 Robert Aglietti Cache management for a multi-threaded processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US5875464A (en) 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
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
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6282617B1 (en) * 1999-10-01 2001-08-28 Sun Microsystems, Inc. Multiple variable cache replacement policy
US6405287B1 (en) * 1999-11-17 2002-06-11 Hewlett-Packard Company Cache line replacement using cache status to bias way selection
US6965982B2 (en) * 2001-06-29 2005-11-15 International Business Machines Corporation Multithreaded processor efficiency by pre-fetching instructions for a scheduled thread
US7127561B2 (en) * 2001-12-31 2006-10-24 Intel Corporation Coherency techniques for suspending execution of a thread until a specified memory access occurs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535361A (en) * 1992-05-22 1996-07-09 Matsushita Electric Industrial Co., Ltd. Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US20010014931A1 (en) * 1998-05-27 2001-08-16 Robert Aglietti Cache management for a multi-threaded processor
CN1267024A (zh) * 1999-03-10 2000-09-20 国际商业机器公司 用于多线程处理机的指令高速缓存器

Also Published As

Publication number Publication date
EP1532531A1 (en) 2005-05-25
AU2003245384A1 (en) 2003-12-19
CN1659525A (zh) 2005-08-24
JP2005528695A (ja) 2005-09-22
KR100962057B1 (ko) 2010-06-08
US6912623B2 (en) 2005-06-28
KR20050069934A (ko) 2005-07-05
EP1532531A4 (en) 2008-05-28
WO2003102781A1 (en) 2003-12-11
US20030225976A1 (en) 2003-12-04

Similar Documents

Publication Publication Date Title
CN1317644C (zh) 简化了缓存替换策略的实现的多线程缓存方法和装置
CN1317645C (zh) 具有基于线程标识符的缓存清除的多线程缓存方法和装置
US5778434A (en) System and method for processing multiple requests and out of order returns
EP1370946B1 (en) Cache way prediction based on instruction base register
JP2839060B2 (ja) データ処理システムおよびデータ処理方法
US6640283B2 (en) Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US5584013A (en) Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
US5651136A (en) System and method for increasing cache efficiency through optimized data allocation
US6578111B1 (en) Cache memory system and method for managing streaming-data
US20040260880A1 (en) Method, system, and apparatus for an hierarchical cache line replacement
US20030061450A1 (en) List based method and apparatus for selective and rapid cache flushes
CN1940892A (zh) 逐出高速缓存的行的电路布置、数据处理系统和方法
US20150012719A1 (en) Data store and method of allocating data to the data store
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control
US6598124B1 (en) System and method for identifying streaming-data
CN113392043A (zh) 缓存数据替换方法、装置、设备和存储介质
US20140013054A1 (en) Storing data structures in cache
WO2002027498A2 (en) System and method for identifying and managing streaming-data
US20040015669A1 (en) Method, system, and apparatus for an efficient cache to support multiple configurations
US7143239B2 (en) Cache structure and methodology
Lee et al. Dirty-block tracking in a direct-mapped DRAM cache with self-balancing dispatch
US20210064527A1 (en) Computer architecture with unified cache and main memory and associated methods

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: BAIYANG ACQUISITION CO., LTD.

Free format text: FORMER OWNER: SANDBRIDGE TECHNOLOGIES INC.

Effective date: 20101221

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: NEW YORK, USA TO: CALIFORNIA, USA

TR01 Transfer of patent right

Effective date of registration: 20101221

Address after: American California

Patentee after: Alamo acquiring company

Address before: American New York

Patentee before: Sandbridge Technologies Inc.

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

Granted publication date: 20070523

Termination date: 20110603