高速缓存刷新的方法及系统技术方案

技术编号:14455617 阅读:110 留言:0更新日期:2017-01-19 04:19
本发明专利技术提供了一种高速缓存刷新的方法及系统。该方法包括:经由第一处理器接收信号,用以向系统存储器刷新高速缓存的至少一部分,其中高速缓存耦接至计算系统中包括第一处理器的多个激活处理器;基于信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从多个激活处理器中确定用于执行目标刷新机制的一个或多个激活处理器,运行环境包括激活处理器的数量;以及根据目标刷新机制将高速缓存刷新至系统存储器。本发明专利技术实施例可以高速缓存刷新的性能。

【技术实现步骤摘要】
相关申请的交叉引用本申请要求美国临时申请号为62/188,887,申请日为2015年7月6日的优先权。
本专利技术实施例涉及计算系统中的存储器管理,以及更具体地,涉及一种高速缓存刷新的方法及系统
技术介绍
在多核计算系统中,每个处理器具有自己的高速缓存,用以存储数据的副本,该数据还存储在系统存储器中(即,主存储器)。高速缓存是比系统存储器更小更快的存储器,以及其一般位于与处理器相同的芯片上。通过减少存取芯片外的存储器,高速缓存可增强系统系能。大多处理器具有不同的独立高速缓存用以存储指令及数据。一般将数据高速缓存组织为多级层次结构,用更大更慢的高速缓存备份(backup)更小更快的高速缓存。一般地,存取多级高速缓存时先检查最快的层1(L1)高速缓存;如果未命中L1高速缓存,那么在检查外部的系统存储器之前,检查次快的层2(L2)高速缓存,诸如此类。其中一种常用的高速缓存写入策略称为“回写(write-back)”策略。使用回写策略时,处理器仅向自己的本地高速缓存写入数据项。延迟向系统存储器的写入操作直至包含该数据项的高速缓存块(cacheline)将要被另一高速缓存块更换时。在回写操作之前,高速缓存的内容可以为更新的以及与系统存储器的内容不一致的内容,其中系统存储器中保存有旧数据。为了确保系统存储器中存储最新的数据,可将高速缓存的内容刷新(即,回写)至系统存储器。直接存储器存取(DirectMemoryAccess,DMA)请求用于请求数据块时,会发生高速缓存刷新,例如当运行在视频处理器上的多媒体应用需要从系统存储器读取最新的数据时。然而,需要存储器数据的应用可能被阻止直至完成高速缓存刷新的操作。因而,高速缓存刷新的延迟危及用户体验。因此,需要提升高速缓存刷新的性能。
技术实现思路
为了解决上述问题,本专利技术提出了一种高速缓存刷新的方法及系统,用于将高速缓存刷新至计算系统中的系统存储器。在一个实施例中,提供一种高速缓存刷新的方法,包括经由第一处理器接收信号,用以向系统存储器刷新高速缓存的至少一部分,其中高速缓存耦接至计算系统中包括第一处理器的多个激活处理器;基于信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从多个激活处理器中确定用于执行目标刷新机制的一个或多个激活处理器,运行环境包括激活处理器的数量;以及根据目标刷新机制将高速缓存刷新至系统存储器。在一个实施例中,提供一种高速缓存刷新的系统,包括:多个处理器,多个处理器包括多个激活处理器;多个高速缓存,耦接至多个激活处理器;以及系统存储器,耦接至多个高速缓存,其中,多个激活处理器中的每个激活处理器用于:接收信号,用以向系统存储器刷新高速缓存的至少一部分;基于信号中指示的刷新长度及运行环境,从多个候选刷新机制中确定目标刷新机制以及确定用于执行目标刷新机制的一个或多个激活处理器,运行环境包括激活处理器的数量;以及指示一个或多个激活处理器根据目标刷新机制,向系统存储器刷新高速缓存。基于以上技术方案,在本专利技术实施例中,基于刷新长度及运行环境确定目标刷新机制,可以提升高速缓存刷新的性能。附图说明本专利技术的例子是示意的目的而非限制,在附图中相同的序号表示相同的组件。另外,当结合实施例描述特定的特征、结构或特性时,这主张本领域技术人员结合其它实施例(无论是否明确描述)实施这些功能、结构或者特性是在其知识范围内的。图1是根据一个实施例的多处理器计算系统的示意方块图。图2是根据一个实施例的图1的多处理器计算系统中的群集的示意方块图。图3是根据一个实施例的用于选择高速缓存刷新机制的方法的示意流程图。图4是根据一个实施例的特定地址范围的刷新方法的示意流程图。图5是根据一个实施例的特定地址范围的并行刷新方法的示意流程图。图6是根据一个实施例的高速缓存刷新的方法的示意流程图。具体实施方式在下面的说明书中,阐述了许多特定的细节。然而应理解,可不用这些特定的细节实现本专利技术实施例。在其它例子中,为了不模糊对本说明书的理解,未详细示出公知的电路、结构及技术。然而本领域技术人员应理解,可不用这些特定的细节实施本专利技术。根据本文的描述,本领域的普通技术人员将能够实现适当的功能而无需过多的实验。应注意,本文中使用的术语“多处理器计算系统”等价于“多核处理器系统”。在一个实施例中,本文中描述的每个处理器等价于中央处理单元(CentralProcessingUnit,CPU),其可包含一个或多个核。在一个可替换的实施例中,本文中描述的每个处理器可等价于一个核。群集可实现为一组处理器,其包括一个或多个处理器。本专利技术实施例提供一种方法及系统,用以高效地将数据高速缓存刷新至系统存储器(例如,诸如动态随机存取存储器(DynamicRandomAccessMemory,DRAM)的主存储器)。在一个实施例中,在多处理器计算系统中提供高速缓存控制器。响应于高速缓存刷新请求,高速缓存控制器基于计算系统的运行环境以及该请求中指示的刷新长度(extentofflushing),在多个候选刷新机制中选择高速缓存刷新机制(即目标刷新机制)。高速缓存控制器还可选择激活处理器的数量或特定的一个或多个激活处理器,用以执行高速缓存刷新操作。该请求可指示待刷新的高速缓存的地址范围,或指示所有高速缓存将被完全刷新。运行环境的一个例子是计算系统中可用于执行高速缓存刷新的激活处理器的数量。例如,其中一个候选刷新机制为完全刷新,还称为集合/路径刷新(set/wayflushing),其要求所有处理器完全刷新它们的高速缓存。刷新操作是被逐层执行的:先刷新更小更快的高速缓存(例如,L1高速缓存),接着刷新更大更慢的高速缓存(例如,L2高速缓存)。刷新所有层级的高速缓存后才能完成刷新操作。另一候选刷新机制称为特定地址范围的刷新,还称为通过地址刷新,在其中单个处理器用于刷新高速缓存的虚拟地址的特定范围。又一候选刷新机制称为特定地址范围的并行刷新,还称为并行刷新,在其中分配多个处理器并行执行高速缓存刷新以减小延迟。每个处理器刷新虚拟地址的部分范围,例如如果四个处理器刷新的虚拟地址范围为4兆字节,将分配每个处理器刷新该虚拟地址范围的四分之一。图1是根据一个实施例的多处理器计算系统100的示例结构示意图。计算系统100包括一个或多个群集110,以及每个群集110进一步包括一个或多个处理器112。每个群集110可经由高速缓存一致性接口(cachecoherenceinterconnect)140及存储器控制器150存取系统存储器130(例如,DRAM或其它易失性或非易失性随机存取存储器)。应理解,计算系统100可包括任意数量的群集110,该群集110可具有任意数量的处理器112。在一个实施例中,计算系统110可以为移动计算设备和/或通信设备(例如,智能手机、平板电脑或笔记本电脑等)的一部分。在一个实施例中,计算系统100可以为云计算系统的一部分。图1还示出了每个处理器112具有其专属的层1(L1)高速缓存115,以及每个群集110包括由相同群集中的处理器112共享的层2(L2)高速缓存116。高速缓存115及116中的一些或所有的高速缓存可以为N-集合/关联路径高速缓存(N-set/way-ass本文档来自技高网
...

【技术保护点】
一种高速缓存刷新的方法,用于将高速缓存刷新至计算系统中的系统存储器,其特征在于,包含:经由第一处理器接收信号,用以向所述系统存储器刷新所述高速缓存的至少一部分,其中所述高速缓存耦接至所述计算系统中包括所述第一处理器的多个激活处理器;基于所述信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从所述多个激活处理器中确定用于执行所述目标刷新机制的一个或多个激活处理器,所述运行环境包括所述激活处理器的数量;以及根据所述目标刷新机制将所述高速缓存刷新至所述系统存储器。

【技术特征摘要】
2015.07.06 US 62/188,887;2015.11.09 US 14/935,4771.一种高速缓存刷新的方法,用于将高速缓存刷新至计算系统中的系统存储器,其特征在于,包含:经由第一处理器接收信号,用以向所述系统存储器刷新所述高速缓存的至少一部分,其中所述高速缓存耦接至所述计算系统中包括所述第一处理器的多个激活处理器;基于所述信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从所述多个激活处理器中确定用于执行所述目标刷新机制的一个或多个激活处理器,所述运行环境包括所述激活处理器的数量;以及根据所述目标刷新机制将所述高速缓存刷新至所述系统存储器。2.如权利要求1所述的方法,其特征在于,所述候选刷新机制至少包括:完全刷新所述高速缓存中的所有内容、经由所述多个激活处理器中的一个激活处理器刷新特定地址范围以及经由所述多个激活处理器中的两个以上的激活处理器并行刷新特定地址范围。3.如权利要求1所述的方法,其特征在于,所述经由第一处理器接收所述信号还包含:接收不包括地址范围的所述信号,所述信号指示刷新所述高速缓存中的所有内容;以及所述基于所述信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从所述多个激活处理器中确定用于执行所述目标刷新机制的一个或多个激活处理器,还包含:所述第一处理器通知所述多个激活处理器中的所有激活处理器完全刷新所述高速缓存。4.如权利要求1所述的方法,其特征在于,所述经由第一处理器接收所述信号还包含:接收包括待刷新的虚拟地址范围的所述信号;以及所述基于所述信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从所述多个激活处理器中确定用于执行所述目标刷新机制的一个或多个激活处理器,还包含:基于所述虚拟地址范围以及所述激活处理器的数量,确定所述目标刷新机
\t制以及所述多个激活处理器中的用于执行所述目标刷新机制的一个或多个激活处理器。5.如权利要求1所述的方法,其特征在于,所述经由第一处理器接收所述信号还包含:接收包括待刷新的虚拟地址范围的所述信号;以及所述基于所述信号中指示的刷新长度及运行环境,在多个候选刷新机制中确定目标刷新机制,以及从所述多个激活处理器中确定用于执行所述目标刷新机制的一个或多个激活处理器,还包含:响应于所述虚拟地址范围除以所述激活处理器的数量之商大于第一预定阈值,所述第一处理器通知所述多个激活处理器中的所有激活处理器完全刷新所述高速缓存。6.如权利要求5所述的方法,其特征在于,还包含:响应于所述虚拟地址范围除以所述激活处理器的数量之商大于第二预定阈值以及不大于所述第一预定阈值,分配所述多个激活处理器中的每个激活处理器刷新所述虚拟地址范围的不同子集。7.如权利要求6所述的方法,其特征在于,还包含:响应于确定所述虚拟地址范围除以所述激活处理器的数量之商大于第二预定阈值,所述第一处理器刷新所述虚拟地址范围。8.如权利要求1至7中任一项所述的方法,其特征在于,所述高速缓存至少包括层1高速缓存及层2高速缓存。9.如权利要求1至7中任一项所述的方法,其特征在于,还包含:在刷新所述高速缓存之前,禁止所述多个激活处理器的热插拔及抢占;以及完成所述刷新之后,使能所述多个激活处理器的热插拔及抢占。10.如权利要求1或2所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:许嘉豪廖凡磊游舜志
申请(专利权)人:联发科技股份有限公司
类型:发明
国别省市:中国台湾;71

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1