CN101587457B - 用于单芯片多处理器的自适应高速缓存组织 - Google Patents
用于单芯片多处理器的自适应高速缓存组织 Download PDFInfo
- Publication number
- CN101587457B CN101587457B CN200910149735XA CN200910149735A CN101587457B CN 101587457 B CN101587457 B CN 101587457B CN 200910149735X A CN200910149735X A CN 200910149735XA CN 200910149735 A CN200910149735 A CN 200910149735A CN 101587457 B CN101587457 B CN 101587457B
- Authority
- CN
- China
- Prior art keywords
- data block
- initial
- block copy
- local
- bank
- 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.)
- Active
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/27—Using a specific cache architecture
- G06F2212/271—Non-uniform cache access [NUCA] architecture
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种方法、单芯片多处理器片以及具有无定形高速缓存的单芯片多处理器。初始处理核心404可从数据存储装置中获取数据块。邻近所述初始处理核心404的初始无定形高速缓存存储体410可存储初始数据块拷贝422。本地存储体目录424可登记所述初始数据块拷贝422。
Description
技术领域
本发明通常涉及单芯片多处理器高速缓存领域。本发明尤其还涉及用于单芯片多处理器的无定形高速缓存(amorphous cache)。
背景技术
具有多个处理器核心的单芯片多处理器(CMP)系统可利用分片式架构(tiled architecture),其中,每一片(tile)都具有一个处理器核心、一个私有高速缓存(L1)、一个第二私有或共享高速缓存(L2)以及一个用来跟踪被缓存的私有拷贝的拷贝的目录。常规上,这些分片式架构可具有两种L2组织方式中的一种。
由于线程之间会共享结构化数据,所以,执行多线程工作的CMP系统可以利用共享L2高速缓存方式。与私有L2高速缓存相比,共享L2高速缓存方式由于没有数据重复,因此可将有效的L2高速缓存容量最大化,而且还提高了平均命中等待时间。这些设计可把L2高速缓存和目录视为一种结构。
执行标量的和对等待时间敏感的工作的CMP系统更愿意利用私有L2高速缓存组织来对等待时间优化,这是以由可能的数据重复所引起的有效高速缓存容量的可能减少为代价的。私有L2高速缓存可提供高速缓存隔离,但不允许高速缓存借用(cache borrowing)。在一些核心上的高速缓存密集型应用可能无法从不活动的核心或运行小数据占用空间应用的核心借用高速缓存。
某些普通的CMP系统可具有三级高速缓存。L1高速缓存和L2高速缓存可形成两个私有级别。第三L3高速缓存则可在所有核心之间共享。
附图说明
应当理解,这些附图仅描述了本发明的典型实施例,并且,不能因此认为其限制了本发明的范围,将通过使用附图、利用附加特征和细节来描述和解释本发明,其中:
图1在框图中示出了具有私有和共享高速缓存的单芯片多处理器的一个实施例;
图2在框图中示出了具有无定形高速缓存架构的单芯片多处理器的一个实施例;
图3在框图中示出了单芯片多处理器片的一个实施例;
图4在框图中示出了执行数据分配的单芯片多处理器的一个实施例,其中,该单芯片多处理器具有无定形高速缓存;
图5在流程图中示出了用于在具有无定形高速缓存的单芯片多处理器中对数据块拷贝进行分配的方法的一个实施例;
图6在框图中示出了执行数据迁移的单芯片多处理器的一个实施例,其中,该单芯片多处理器具有无定形高速缓存;
图7在流程图中示出了用于在具有无定形高速缓存的单芯片多处理器中进行数据复制的方法的一个实施例;
图8在框图中示出了执行复制牺牲的单芯片多处理器的一个实施例,其中,该单芯片多处理器具有无定形高速缓存;
图9在流程图中示出了用于在具有无定形高速缓存的单芯片多处理器中进行数据牺牲的方法的一个实施例;
图10在框图中示出了具有组合的无定形高速缓存存储体和目录结构的单芯片多处理器的一个实施例。
具体实施方式
将在以下说明书中阐述本发明的附加的特征和优势,通过参考说明书,一部分特征和优势将是显而易见的,或者可通过实践本发明来理解这些特征和优势。可通过在所附权利要求书中专门指出的手段和组合来实现和获得本发明的特征和优势。本发明的这些和其它特征将通过参考以下说明书和所附权利要求书而变得更加显而易见,或者可通过实践如这里所阐述的本发明来加以理解。
下面将详细论述本发明的各种实施例。尽管论述了特定的实现,但是应该理解这仅是为了说明的目的。相关领域的技术人员将认识到,可以使用其它组件和配置,而不会偏离本发明的精神和范畴。
本发明包括多种实施例,诸如方法、装置、计算机指令集合,以及涉及本发明基本概念的其它实施例。公开了一种方法、单芯片多处理器片(tile),以及具有无定形高速缓存的单芯片多处理器。初始处理核心可从数据存储装置中获取数据块。邻近初始处理核心的初始无定形高速缓存存储体(bank)可存储初始数据块拷贝。本地存储体目录(directory)可登记该初始数据块拷贝。
单芯片多处理器(CMP)在单一芯片上具有多个处理器,每个处理器都有一个或多个高速缓存。这些高速缓存可以是私有高速缓存或共享高速缓存,其中,私有高速缓存用于存储相关处理器的专用数据,共享高速缓存用于存储对所有处理器都可用的数据。图1在简化的框图中示出了具有私有和共享高速缓存100的CMP的一个实施例。CMP 100可具有位于单一芯片上的一个或多个处理器核心(PC)102。PC 102可以是处理器、协处理器、固定功能控制器、或其它类型的处理核心。每个PC 102都可具有附属的核心高速缓存(C$)104。
可将PC 102连接到私有高速缓存(P$)106。P$106可被限制为由局部PC 102访问,但可开放给由其它PC 102基于目录信息和协议动作来进行监听。可由局部PC 102来分配P$106中的行用于任何地址。在PC 102把将被转发给目录或其它存储源的请求移交给一致性协议引擎之前,该PC102可访问P$106。可在任意的P$存储体106中复制P$106中的行。
还可将PC 102连接到共享高速缓存108。共享高速缓存108对于所有PC 102来说都是可访问的。任何PC 102都可分配共享高速缓存108中的行用于地址子集。在通过了一致性协议引擎之后,PC 102可以访问共享高速缓存108,并且会涉及对其它存储源的遍历。共享高速缓存108可以具有针对每个PC 102的分离的共享高速缓存存储体(S$B)110。每个数据块可以在所有S$B 110中具有唯一的位置。每个S$B 110可以具有目录(DIR)112,该目录用于跟踪被存储在C$104、P$106、S$B 110或它们三者的某种组合中的高速缓存数据块。
在任何特定时间,单一高速缓存结构(在本文中被称为“无定形高速缓存”)都可担当私有高速缓存、共享高速缓存或两者。无定形高速缓存可被设计为同时提供私有高速缓存设计的等待时间优势和共享高速缓存设计的容量优势。此外,这种架构也虑及了用以添加私有或共享高速缓存偏好(bias)的运行时配置。单一高速缓存设计可以表现得像私有高速缓存、共享高速缓存、或具有在私有和共享部分之间的动态分配的混合高速缓存。所有PC102都可访问无定形高速缓存。本地PC 102可以分配无定形高速缓存中的行用于任何地址。其它PC 102可分配无定形高速缓存中的行用于地址子集。基于本地PC 102的请求,无定形高速缓存可允许在任意无定形高速缓存存储体中复制行。本地PC 102可在通过一致性协议引擎之前访问无定形高速缓存存储体。其它PC 102可通过一致性协议引擎来访问无定形高速缓存存储体。
图2在简化的框图中示出了具有无定形高速缓存架构200的CMP的一个实施例。可将一个或多个具有附属C$104的PC 102与无定形高速缓存202相连接。可针对每个PC 102将无定形高速缓存202划分为分离的无定形高速缓存存储体(A$B)204。每个A$B 204都可具有分离的目录(DIR)206以跟踪存储在A$B 204中的高速缓存数据块。
高速缓存组织可使用分片式架构、同构架构、异构架构或其它CMP架构。可通过一致性交换机、总线或其它连接来连接分片式架构中的各片。图3在框图中示出了CMP片300的一个实施例。CMP片300可具有一个或多个处理器核心102,其共享C$104。PC 102可经由高速缓存控制器302访问A$B 204,该A$B 204被动态地划分为私有和共享部分。CMP片300可具有DIR组件206,以跟踪片上所有私有高速缓存块。高速缓存控制器302可向局部A$B 204发送传入核心请求,其中,该局部A$B 204为该片300保存私有数据。经由片上互联模块306,高速缓存协议引擎304可向本地片发送局部A$B中的缺失(miss)。在本地片上的A$存储体(可经由片上互联模块306来访问该A$存储体)可满足数据缺失。如有必要,高速缓存协议引擎304可在本地片处查找DIR存储体206,以监听远程私有A$B。在解析了所有必要的监听之后,在本地片处的缺失会使得本地片发起off-socket请求。配置为纯粹用作私有高速缓存的A$B 204可跳过A$B 204本地片查找,但可以遵从目录流。配置为纯粹用作共享高速缓存的A$B 204可跳过局部A$B 204查找,并直接前往本地片。可通过缓存协议动作来实现A$B 204的动态划分,该缓存协议动作与块分配、迁移、牺牲(victimization)、复制、替换以及回写失效(back-invalidation)相关。
图4在框图中示出了执行数据分配的具有无定形高速缓存的CMP 400的一个实施例。在针对一数据块对本地CMP片404进行检查之后,初始CMP片402可以请求访问数据存储单元中的该数据块。初始CMP片402可具有初始处理核心(IPC)406、初始核心高速缓存(IC$)408、初始无定形高速缓存存储体(IA$B)410、以及初始目录(IDIR)412。本地CPM片404可具有本地处理核心(HPC)414、本地核心高速缓存(HC$)416、本地无定形高速缓存存储体(HA$B)418、以及本地目录(HDIR)420。初始CMP片402可在IA$B 410中存储初始数据块拷贝(IDBC)422或高速缓存块。本地CMP片404可在HDIR 420中登记本地数据块记录(HDBR)424,以跟踪在每个无定形高速缓存存储体中的该数据块的拷贝。在之前的共享高速缓存架构中,可能已在本地CMP片404中分配了该数据块,而不考虑初始CMP片402和本地CMP片406之间的邻近性。
图5在流程图中示出了用于在具有无定形高速缓存的CMP 200中分配数据块拷贝的方法500的一个实施例。初始CMP片402可以检查HDIR以寻找一个数据块(DB)(框502)。如果DB在HA$B中存在(框504),那么,初始CMP片402可从HA$B中获取DB(框506)。如果DB在HA$B中不存在(框506),那么,初始CMP片402可从数据存储装置中获取DB(框508)。初始CMP片402可在IA$B 410中存储IDBC 422(框510)。本地CMP片404可在HDIR420中登记HDBR 424(框512)。
图6在框图中示出了执行数据迁移的具有无定形高速缓存的CMP 600的一个实施例。后续CMP片602可搜寻被存储为IA$B 410中的IDBC 422的该数据块。该后续CMP片602可具有后续处理核心(SPC)604、后续核心高速缓存(SC$)606、后续无定形高速缓存存储体(SA$B)608、以及后续目录(SDIR)610。在访问数据存储装置以查找该数据块之前,后续CMP片602可检查HDIR 420,以确定该数据块的拷贝是否已存在于芯片上的高速缓存存储体中。如果该数据块的拷贝存在,那么本地CMP片404可把IDBC422作为本地数据块拷贝(HDBC)612而复制到HA$B 418中。后续CMP片602可根据HDBC 612在SA$B 608中创建后续数据块拷贝(SDBC)614。替代地,后续CMP片602可根据IDBC 422在SA$B 608中创建后续数据块拷贝(SDBC)614,而后HDBC 612才会被创建。以后的数据块拷贝可从HDBC 612获得。这种迁移方案可提供共享高速缓存的容量优势。对于通过远程私有高速缓存得到该数据块,未来的请求者将会看到缩短的等待时间。迁移可能发生在观察到第二个请求者时,不过迁移阈值也可依据个案的情况来做出调整。实际上,取决于复制策略,初始CMP片402和后续CMP片602都可在除无定形高速缓存之外的核心高速缓存中保持有数据块拷贝。
共享数据块拷贝可迁移到HA$B 418以提供容量优势。每个私有高速缓存都可缓存该共享数据块的副本,从而以容量来换取等待时间。无定形高速缓存可支持复制,但它并不要求复制。无定形高速缓存可择机进行复制,且与个体实例相比,它更倾向于复制而不是替换。
初始CMP片402可具有初始寄存器(IREG)616,以便监测IA$B 410中IDBC 422的牺牲。可以以最近最常使用(MRU)到最近最少使用(LRU)高速缓存块来组织寄存器IREG 616,其中LRU高速缓存块最先被驱逐(evicted)。一旦从数据存储装置或HA$B 418复制了IDBC 422,则IDBC 422可在IREG 616中被记为MRU,使IDBC 422倾向于被最后驱逐。本地CMP片404可具有本地寄存器(HREG)618,用以监测HA$B 418中HDBC 612的牺牲。一旦从IA$B 410向HA$B 418拷贝了IDBC 422以使其对后续CMP片602可用,则该HDBC 612可在HREG 618中被记为MRU,使HDBC 612倾向于被最后驱逐。此外,IDBC 422可被移动到IREG 616中更靠近LRU端的位置,使IDBC 422倾向于被较早驱逐。后续CMP片602可具有后续寄存器(SREG)620,用以监测SA$B 608中SDBC 614的牺牲。一旦从HA$B418拷贝了SDBC 614,则SDBC 614可被记入SREG 620中更靠近LRU端的位置,使SDBC 614倾向于被较早驱逐。
基于IDBC 422在IREG 616中的放置位置,IREG 616可被用来配置无定形高速缓存,以使其表现为私有高速缓存或共享高速缓存。对于共享高速缓存设置,IDBC 422可被放置在IREG 616中的LRU位置,或者保持未分配状态。此外,HDBC 612可被放置在HREG 620中的MRU位置。对于私有高速缓存设置,IDBC 422可被放置在MRU位置。此外,HDBC 612可被放置在HREG 620中的LRU位置,或者保持未分配状态。
图7在流程图中示出了用于在具有无定形高速缓存的CMP 200中进行数据复制的方法700的一个实施例。后续CMP片602可访问HDIR 420中的HDBR 424(框702)。本地CMP片404可从IA$B 410中获取IDBC 422(框704)。本地CMP片404可在HA$B 418中存储HDBC 612(框706)。后续CMP片602可在SA$B 608中存储SDBC 614(框708)。后续CMP片602可在HDIR 420中登记SDBC 614(框710)。初始CMP片402可使该IDBC422倾向于被较早驱逐(框712)。后续CMP片602可使该SDBC 614倾向于被较早驱逐(框714)。
图8在框图中示出了执行拷贝牺牲的具有无定形高速缓存的CMP 800的一个实施例。当从无定形高速缓存存储体中驱逐独有的干净或脏的数据块拷贝时,初始CMP片402可把脏或干净的IDBC 422作为驱逐本地数据块拷贝(EHDBC)802写到HA$B 418中。EHDBC 802可被记入HREG 620中更靠近LRU端的位置,使得EHDBC 802倾向于被较早驱逐。如果具有私有高速缓存结构或配置的CMP片请求EHDBC 802的拷贝,那么,EHDBC 802会保留在LRU位置中,并且新的请求者可把该请求者数据块拷贝放置在MRU位置中。如果之后的CMP片从本地CMP片404做出了请求,那么,EHDBC 802可被移动到MRU位置,且之后的请求者可把之后的数据块拷贝放置在LRU位置中。
在先前的架构中,私有高速缓存或共享高速缓存可丢弃干净牺牲者或未改变的高速缓存块,并且向存储器写回脏牺牲者或已改变的高速缓存块。在无定形高速缓存中,把IDBC 422写到HA$B 418会导致高速缓存借用。高速缓存借用允许数据密集型应用来使用来自其它片的高速缓存。
在先前的架构中,目录牺牲者需要把所有的私有高速缓存数据块拷贝宣布无效,这是因为私有高速缓存数据块拷贝变得难以跟踪。对这些数据块的后续访问将需要存储器访问。无定形高速缓存将通过把目录牺牲者移动到本地片来减轻无效的影响,其中,通过目录进行跟踪不是必须的。
图9在流程图中示出了用于在具有无定形高速缓存的CMP 200中进行数据复制的方法900的一个实施例。初始CMP片402可从IA$B 410中驱逐IDBC 422(框902)。初始CMP片402可把IDBC 422写到HA$B 418中(框904)。本地CMP片404可使EHDBC 802倾向于被较早驱逐(框906)。当本地CMP片404最终驱逐EHDBC 802时(框908),本地CMP片404可把EHDBC 802写到数据存储装置中(框910)。
无定形高速缓存存储体204和目录206可以是分离的结构。图10在方框图中示出了具有组合的无定形高速缓存存储体(A$B)1002和目录(DIR)1004结构的CMP 1000的一个实施例。A$B 1002可包含一组数据块拷贝(DBC)1006。DIR 1004可把本地存储体数据块记录(HBDBR)1008与DBC1006相关联。此外,DIR 1004可把一个或多个替代存储体数据块记录(ABDBR)1010与DBC 1006相关联,这导致了在DIR 1004中具有比A$B1002更多的数据块。
本发明至少部分地是在由电子设备(诸如通用计算机)执行的计算机可执行指令(诸如程序模块)的一般上下文中来进行描述的,但这并不是必需的。通常,程序模块包括用来执行特定任务或实现特定抽象数据类型的例程、对象、组件、数据结构等。此外,本领域的技术人员将认识到,本发明的其它实施例可在网络计算环境中实施,该网络计算环境具有多种类型的计算机系统配置,包括个人计算机、手持设备、多处理器系统、基于微处理器或可编程的消费者电子装置、网络个人计算机、小型机、大型计算机等等。
所述实施例还可在分布式计算环境中实现,其中,通过经由通信网络来进行链接(或者通过硬线链接、无线链接,或者通过它们的组合)的本地和远程处理设备来执行任务。
在本发明范围中的实施例还可包括计算机可读介质,其用于携带或具有其上所存储的计算机可执行指令或数据结构。这种计算机可读介质可以是可被通用或专用计算机所访问的任何可用的介质。作为例子而不是限制,这种计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储,磁盘存储或其它磁存储设备,或可被用于以计算机可执行指令或数据结构的形式来携带或存储期望程序代码的任何其它介质。当信息被通过网络或其它通信连接(或者是硬线的、无线的,或者是它们的组合)传递或提供给计算机时,计算机适当地将该连接视为计算机可读介质。因此,任何这种连接都可被适当地称为计算机可读介质。以上的组合也应被包括在计算机可读介质的范围内。
计算机可执行指令包括例如指令和数据,其使得通用计算机、专用计算机或专用处理设备执行特定功能或功能组。计算机可执行指令还包括程序模块,可用独立的或网络环境中的计算机来执行所述程序模块。通常,程序模块包括用来执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构等。计算机可执行指令、相关的数据结构以及程序模块代表了用于执行本文公开的方法的步骤的程序代码模块的例子。这种可执行指令或相关数据结构的特定序列代表了用于实现在这样的步骤中所描述的功能的相应动作的例子。
尽管上述说明书可包含特定细节,但它们不应被解释为以任何方式限制权利要求。本发明的所描述的实施例的其它配置是本发明的范围的一部分。例如,本发明的原则在于可被应用于每个单独用户,其中,每个用户可单独地部署这种系统。这使得每个用户都可利用本发明的优点,即使大量可能的应用中的任意一个并不需要本文描述的功能。换句话说,这里可以有电子设备的多个实例,每个以各种可能的方式来处理内容。一个系统不必被所有终端用户使用。因此,所附权利要求及其法律等同物应当仅定义本发明,而不是所给出的任何特定实施例。
Claims (20)
1.一种用于分配数据块拷贝的方法,包括:
利用初始处理核心从数据存储装置中获取数据块,其中所述初始处理核心邻近于用于登记数据块拷贝的初始存储体目录;
在邻近所述初始处理核心的初始无定形高速缓存存储体中存储初始数据块拷贝,其中初始无定形高速缓存存储体是具有在私有和共享部分之间的动态分配的混合高速缓存;以及
在邻近本地处理核心的本地存储体目录中登记所述初始数据块拷贝。
2.根据权利要求1所述的方法,还包括:
利用后续处理核心从所述初始无定形高速缓存存储体中获取所述初始数据块拷贝;以及
在邻近所述后续处理核心的后续无定形高速缓存存储体中存储后续数据块拷贝;
在所述本地存储体目录中登记所述后续数据块拷贝。
3.根据权利要求2所述的方法,还包括:
在本地无定形高速缓存存储体中存储本地数据块拷贝。
4.根据权利要求1所述的方法,还包括:
使所述初始数据块拷贝倾向于被从所述初始无定形高速缓存存储体中较早驱逐。
5.根据权利要求1所述的方法,还包括:
从所述初始无定形高速缓存存储体中驱逐所述初始数据块拷贝;以及
把所述初始数据块拷贝写到本地无定形高速缓存存储体中。
6.根据权利要求5所述的方法,还包括:
使所述初始数据块拷贝倾向于被从所述本地无定形高速缓存存储体中较早驱逐。
7.根据权利要求1所述的方法,其中,所述本地存储体目录是本地无定形高速缓存存储体的一部分,并且具有比所述本地无定形高速缓存存储体所具有的数据块更多的能够被列出的块。
8.一种初始单芯片多处理器片,包括:
初始处理核心,用于从数据存储装置中获取数据块;
初始存储体目录,其邻近所述初始处理核心,用于登记数据块拷贝;以及
初始无定形高速缓存存储体,其邻近所述初始处理核心,用于存储向邻近本地处理核心的本地存储体目录登记的初始数据块拷贝,其中初始无定形高速缓存存储体是具有在私有和共享部分之间的动态分配的混合高速缓存。
9.根据权利要求8所述的初始单芯片多处理器片,其中,后续处理核心从所述初始无定形高速缓存存储体中获取所述初始数据块拷贝,并且,邻近所述后续处理核心的后续无定形高速缓存存储体存储了在所述本地存储体目录中所登记的后续数据块拷贝。
10.根据权利要求9所述的初始单芯片多处理器片,其中,本地无定形高速缓存存储体存储了本地数据块拷贝。
11.根据权利要求8所述的初始单芯片多处理器片,其中,所述初始数据块拷贝倾向于被从所述初始无定形高速缓存存储体中较早驱逐。
12.根据权利要求8所述的初始单芯片多处理器片,其中,所述初始数据块拷贝被从所述初始无定形高速缓存存储体中驱逐,并且被写到本地无定形高速缓存存储体中。
13.根据权利要求12所述的初始单芯片多处理器片,其中,所述初始数据块拷贝倾向于被从所述本地无定形高速缓存存储体中较早驱逐。
14.一种单芯片多处理器,包括:
初始处理核心,用于从数据存储装置中获取数据块;
初始存储体目录,其邻近所述初始处理核心,用于登记数据块拷贝;
初始无定形高速缓存存储体,其邻近所述初始处理核心,用于存储初始数据块拷贝,其中初始无定形高速缓存存储体是具有在私有和共享部分之间的动态分配的混合高速缓存;以及
本地存储体目录,其邻近本地处理核心,用于登记所述初始数据块拷贝。
15.根据权利要求14所述的单芯片多处理器,还包括:
后续处理核心,用于从所述初始无定形高速缓存存储体中获取所述初始数据块拷贝;以及
后续无定形高速缓存存储体,其邻近所述后续处理核心,用于存储在所述本地存储体目录中所登记的后续数据块拷贝。
16.根据权利要求15所述的单芯片多处理器,还包括:
本地无定形高速缓存存储体,用于存储本地数据块拷贝。
17.根据权利要求14所述的单芯片多处理器,其中,所述初始数据块拷贝倾向于被从所述初始无定形高速缓存存储体中较早驱逐。
18.根据权利要求14所述的单芯片多处理器,其中,所述初始数据块拷贝被从所述初始无定形高速缓存存储体中驱逐,并且被写到本地无定形高速缓存存储体中。
19.根据权利要求18所述的单芯片多处理器,其中,所述初始数据块拷贝倾向于被从所述本地无定形高速缓存存储体中较早驱逐。
20.根据权利要求14所述的单芯片多处理器,其中,所述本地存储体目录是本地无定形高速缓存存储体的一部分,并且具有比所述本地无定形高速缓存存储体所具有的数据块更多的能够被列出的数据块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/061,027 | 2008-04-02 | ||
US12/061,027 US20090254712A1 (en) | 2008-04-02 | 2008-04-02 | Adaptive cache organization for chip multiprocessors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587457A CN101587457A (zh) | 2009-11-25 |
CN101587457B true CN101587457B (zh) | 2013-03-13 |
Family
ID=41134309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910149735XA Active CN101587457B (zh) | 2008-04-02 | 2009-04-02 | 用于单芯片多处理器的自适应高速缓存组织 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090254712A1 (zh) |
CN (1) | CN101587457B (zh) |
RU (1) | RU2484520C2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990506B2 (en) * | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
WO2014042649A1 (en) * | 2012-09-14 | 2014-03-20 | Empire Technology Development, Llc | Cache coherence directory in multi-processor architectures |
CN104995609B (zh) * | 2013-02-11 | 2017-12-19 | 英派尔科技开发有限公司 | 对发向目录的缓存回收通知的聚合 |
US9298620B2 (en) * | 2013-11-25 | 2016-03-29 | Apple Inc. | Selective victimization in a multi-level cache hierarchy |
US10621090B2 (en) * | 2017-01-12 | 2020-04-14 | International Business Machines Corporation | Facility for extending exclusive hold of a cache line in private cache |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338116B1 (en) * | 1999-11-09 | 2002-01-08 | International Business Machines Corporation | Method and apparatus for a data-less write operation within a cache memory hierarchy for a data processing system |
CN1573715A (zh) * | 2003-05-22 | 2005-02-02 | 国际商业机器公司 | 在非对称异构多处理器环境中提供原子更新原语的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6098152A (en) * | 1997-10-17 | 2000-08-01 | International Business Machines Corporation | Method and apparatus for miss sequence cache block replacement utilizing a most recently used state |
US6009488A (en) * | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6405290B1 (en) * | 1999-06-24 | 2002-06-11 | International Business Machines Corporation | Multiprocessor system bus protocol for O state memory-consistent data |
US6782463B2 (en) * | 2001-09-14 | 2004-08-24 | Intel Corporation | Shared memory array |
RU2238584C2 (ru) * | 2002-07-31 | 2004-10-20 | Муратшин Борис Фрилевич | Способ организации персистентной кэш памяти для многозадачных, в том числе симметричных многопроцессорных компьютерных систем и устройство для его осуществления |
US7089361B2 (en) * | 2003-08-07 | 2006-08-08 | International Business Machines Corporation | Dynamic allocation of shared cache directory for optimizing performance |
US7434008B2 (en) * | 2004-04-23 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | System and method for coherency filtering |
US7558920B2 (en) * | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
US20060282620A1 (en) * | 2005-06-14 | 2006-12-14 | Sujatha Kashyap | Weighted LRU for associative caches |
US20070143546A1 (en) * | 2005-12-21 | 2007-06-21 | Intel Corporation | Partitioned shared cache |
US7571285B2 (en) * | 2006-07-21 | 2009-08-04 | Intel Corporation | Data classification in shared cache of multiple-core processor |
US7899994B2 (en) * | 2006-08-14 | 2011-03-01 | Intel Corporation | Providing quality of service (QoS) for cache architectures using priority information |
US7949794B2 (en) * | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
US7710777B1 (en) * | 2006-12-20 | 2010-05-04 | Marvell International Ltd. | Semi-volatile NAND flash memory |
US7649764B2 (en) * | 2007-01-04 | 2010-01-19 | Freescale Semiconductor, Inc. | Memory with shared write bit line(s) |
US7472226B1 (en) * | 2008-03-20 | 2008-12-30 | International Business Machines Corporation | Methods involving memory caches |
-
2008
- 2008-04-02 US US12/061,027 patent/US20090254712A1/en not_active Abandoned
-
2009
- 2009-03-31 RU RU2010144798/08A patent/RU2484520C2/ru not_active IP Right Cessation
- 2009-04-02 CN CN200910149735XA patent/CN101587457B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338116B1 (en) * | 1999-11-09 | 2002-01-08 | International Business Machines Corporation | Method and apparatus for a data-less write operation within a cache memory hierarchy for a data processing system |
CN1573715A (zh) * | 2003-05-22 | 2005-02-02 | 国际商业机器公司 | 在非对称异构多处理器环境中提供原子更新原语的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101587457A (zh) | 2009-11-25 |
US20090254712A1 (en) | 2009-10-08 |
RU2484520C2 (ru) | 2013-06-10 |
RU2010144798A (ru) | 2012-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5201514B2 (ja) | チップマルチプロセッサおよび方法 | |
CN100495361C (zh) | 维护存储器一致性的方法和系统 | |
Zhang et al. | Victim replication: Maximizing capacity while hiding wire delay in tiled chip multiprocessors | |
Martin et al. | Using destination-set prediction to improve the latency/bandwidth tradeoff in shared-memory multiprocessors | |
Archibald et al. | Cache coherence protocols: Evaluation using a multiprocessor simulation model | |
CN100568206C (zh) | 使用流寄存器过滤监听请求的方法和装置 | |
Hossain et al. | POPS: Coherence protocol optimization for both private and shared data | |
CN103229152B (zh) | 高速缓存一致性控制方法、系统和程序 | |
US20040059875A1 (en) | Cache sharing for a chip multiprocessor or multiprocessing system | |
Ren et al. | Hmg: Extending cache coherence protocols across modern hierarchical multi-gpu systems | |
US20070220195A1 (en) | Multi-processor system, and method of distributing memory access load in multi-processor system | |
CN101587457B (zh) | 用于单芯片多处理器的自适应高速缓存组织 | |
Zhang et al. | Victim migration: Dynamically adapting between private and shared CMP caches | |
Herrero et al. | Distributed cooperative caching | |
Baruah et al. | Valkyrie: Leveraging inter-tlb locality to enhance gpu performance | |
CN100514311C (zh) | 用于实现组合式数据/相关性高速缓存的方法和装置 | |
Foglia et al. | Exploiting replication to improve performances of NUCA-based CMP systems | |
Shukla et al. | Tiny directory: Efficient shared memory in many-core systems with ultra-low-overhead coherence tracking | |
Das et al. | Victim retention for reducing cache misses in tiled chip multiprocessors | |
Sembrant et al. | A split cache hierarchy for enabling data-oriented optimizations | |
Ricci et al. | Leveraging bloom filters for smart search within NUCA caches | |
Kim et al. | Architecting and programming a hardware-incoherent multiprocessor cache hierarchy | |
Ros et al. | Extending magny-cours cache coherence | |
Chaturvedi et al. | An adaptive migration–replication scheme (AMR) for shared cache in chip multiprocessors | |
Kong et al. | Relaxing the inclusion property in cache only memory architecture |
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 |