一种混合缓存管理方法与流程

文档序号:17455478发布日期:2019-04-20 03:14阅读:140来源:国知局
一种混合缓存管理方法与流程
本发明涉及混合缓存应用领域,具体涉及一种混合缓存管理方法。
背景技术
:在一个大规模数据中心网络中,如果服务器资源利用率增高,对于搜索引擎,流媒体播放,实时在线翻译等延迟敏感型应用来说,少部分用户的RTT会比其他用户大很多倍,导致用户体验的下降,这一现象称之为“长尾现象”。为了降低RTT,提升用户体验,最常用的手段是为延迟敏感型应用预留大量资源,使其资源利用率一直维持在一定的比例之下。另一方面,为了提高数据中心中的资源利用率,一般会采取多个应用混合部署的策略,使多个应用对共享资源竞争使用。但多应用混部在提升资源利用率的同时可能会导致延迟敏感型应用得不到足够的资源完成运算,以致无法及时响应来自用户的请求。在这种情况下,一种解决问题的方法是提高高速缓存容量,并对不同类型的应用做一定的区分,来保证延迟敏感型应用的数据优先存入高速缓存,以提高延迟敏感型应用能及时获得的资源。一方面保证延迟敏感型应用在多应用竞争共享缓存时的性能不比多应用使用私有缓存时的性能差,另一方面又允许当延迟敏感型应用不需要的缓存空间可以让给离线应用使用,提高离线应用的运行性能。但是,在设计计算机体系结构时,所使用的LLC容量并不能随意改变。因为对于使用相同介质的LLC来说,容量的增大就代表着LLC的体积等比例的变大,而在计算机体系结构的设计中,LLC的体积不能轻易扩大,因此,就引入了混合高速缓存的设计。混合高速缓存由STT-RAM和SRAM组成,其中STT-RAM为12路,SRAM为4路。STT-RAM相较于SRAM有存储密度大,静态能耗低的特点,可以在不增加缓存体积的同时加大缓存存储容量。但是,由于STT-RAM的数据写入速度比SRAM慢十一倍左右,混合缓存的管理策略与传统缓存的管理策略截然不同。例如,Kasture,Harshad,andDanielSanchez.Ubik:efficientcachesharingwithstrictqosforlatency-criticalworkloads.Proceedingsofthe19thinternationalconferenceon,首先作者通过经验公式得到延迟敏感型应用在不同缓存容量的条件下其请求缺失的概率。根据请求缺失的概率,作者能够计算出当分配给延迟敏感型应用的缓存容量从一个状态变为另一个状态时,由于数据填充等原因而理应命中的请求数和实际命中请求数直接的差值以及状态转换所消耗的时间。为了保证与固定缓存容量的方法相同的性能,文献中的方法在提高延迟敏感型应用所拥有的缓存容量时,额外指派较固定缓存容量更多的缓存,以弥补差值。在缺失的请求数被弥补以后,指派的缓存容量降至与固定缓存容量方法相同的容量。当对延迟敏感型应用的访问请求数量处于低谷时,文献中的方法将不必要的缓存容量从延迟敏感型应用处收回,分配给其他离线应用,以提高离线应用的执行效率,缩短执行时间。但是,当对延迟敏感型应用的访问请求数量处于高峰时,需要及时将所分配的缓存容量升高,不影响用户体验。因此,缓存命中率的提高时间决定了延迟敏感型应用让出给离线应用的缓存容量。现有技术中,混合缓存的管理策略并不能抑制长尾现象,只能保证所产生的长尾不必缓存独占方式的长尾差。另外,由于使用的是基于SRAM的缓存,静态能耗较STT-SRAM要高,且存储密度低。由于其存储容量有限,会引发极其频繁的数据替换操作,这导致了这些现有策略并不能直接在数据中心这种关注延迟敏感的场景下使用技术实现要素:本发明提供一种混合缓存管理方法,其目的是利用混合缓存拥有更高的存储密度的特点,通过合理的缓存管理策略抑制长尾现象,提高执行多应用效率。本发明的目的是采用下述技术方案实现的:一种混合缓存管理方法,其改进之处在于,包括:在混合缓存的最后一级共享高速缓存LLC中的SRAM的高速缓存块上增加读写标记字段;根据所述混合缓存接收的访问请求在所述最后一级共享高速缓存LLC的STT-RAM和SRAM的命中情况及读写标记字段的标记规则对SRAM的高速缓存块上的读写标记字段进行标记。优选的,所述读写标记字段的标记规则包括:若被命中的访问请求为非延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第一字段;若被命中的访问请求为被写过的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第二字段;若被命中的访问请求为被读过1次的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第三字段;若被命中的访问请求为被读过多次的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第四字段。进一步的,所述混合缓存接收延迟敏感型应用的访问请求后,所述最后一级高速缓存LLC在目标缓存组的STT-RAM和SRAM介质上同步查找,并根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记所述高速缓存块的读写标记字段。进一步的,所述根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记所述高速缓存块的读写标记字段,包括:若所述延迟敏感型应用的访问请求为读请求并在SRAM上命中,则返回命中的数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求为读请求并在STT-RAM上命中,则返回命中的数据;若所述延迟敏感型应用的访问请求为写请求并在SRAM上命中,则写入命中的数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求为写请求并在STT-RAM上命中,则无效化在STT-RAM上命中的数据,在SRAM上写入该数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求未命中,则在SRAM上写入数据。进一步的,当接收非延迟敏感型应用的访问请求后,所述最后一级高速缓存LLC在目标缓存组的STT-RAM和SRAM介质上同步查找,并根据所述非延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段。进一步的,所述根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段,包括:若所述非延迟敏感型应用的访问请求为读请求并在SRAM或STT-RAM上命中,则返回命中的数据;若所述非延迟敏感型应用的访问请求为写请求并在SRAM上命中,则写入命中的数据;若所述非延迟敏感型应用的访问请求为写请求并在STT-RAM上命中,则无效化在STT-RAM上命中的数据,在SRAM上写入该数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段,若SRAM上无法写入该数据,则将该数据写回内存;若所述延迟敏感型应用的访问请求未命中,则在SRAM上写入数据,若SRAM上无法写入该数据,则内存上读数据或写数据。进一步的,若延迟敏感型应用的访问请求在SRAM上写入读访问数据时需要替换数据,则依次选择读写标记字段为第一字段、第四字段、第三字段或第二字段的高速缓存块存储的数据进行替换,若在SRAM上写入写访问数据时需要替换数据,则依次选择读写标记字段为第一字段或第四字段的高速缓存块存储的数据进行替换。进一步的,若非延迟敏感型应用的访问请求在SRAM上写入数据时需要替换数据,则选择读写标记字段为第一字段的高速缓存块存储的数据进行替换,若所述SRAM中不存在读写标记字段为第一字段的高速缓存块,则将数据写入STT-RAM或内存中。本发明的有益效果:(1)本发明提供的一种混合缓存管理方法,LLC能够主动识别不同应用类型,结合在SRAM中引入的读写标记的标签,保证了延迟敏感应用的服务质量,抑制了长尾现象。(2)本发明提供的技术方案中,混合高速缓存处理延迟敏感型应用时,优先将所需数据载入SRAM,避免了延迟敏感型应用经历STT-RAM的高写延迟而延长服务响应时间。(3)本发明提供的技术方案中,被换出SRAM的数据会先被转存入STT-RAM,使所有应用都能利用混合高速缓存比单一SRAM构成的高速缓存容量大的特点,提高了缓存命中率,加速了所有类型应用的执行。附图说明图1是本发明一种混合缓存管理方法的流程图;图2是本发明实施例中混合缓存结构示意图;图3是本发明实施例中高速缓存块的结构示意图。具体实施方式下面结合附图对本发明的具体实施方式作详细说明。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明提供的一种混合缓存管理方法,利用混合缓存拥有更高的存储密度的特点,通过合理的缓存管理策略抑制长尾现象,提高执行多应用效率,如图1所示,包括:101.在混合缓存的最后一级共享高速缓存LLC中的SRAM的高速缓存块上增加读写标记字段;其中,混合缓存的体系结构如图2所示,该处理器包含4个核,每个核具有私有的一级指令Cache和数据Cache,私有的二级Cache,并且所有处理器核共享最后一级高速缓存LLC,最后一级高速缓存由STT-RAM和SRAM混合构成,两种介质缓存容量的比例为3:1,即LLC由12路SRR-RAM和4路SRAM组成。其中,图2中缩略语和关键术语定义包括:Latencycriticalworkload:延迟敏感型负载,用户对于请求往返一次时间要求严格的应用,如网页搜索,流媒体播放,实时翻译等应用;SRAM:StaticRandomAccessMemory,静态随机存取存储器;STT-RAM:SpinTorqueTransfer-RAM,自旋转移力矩随机存取存储器;LLC:LastLevelCache,最后一级高速缓存;IC:InstructionCache,第一级缓存中的指令缓存,即指令Cache;DC:DataCache,数据Cache,即第一级缓存中的数据缓存;L2C:LeveltwoCache:二级Cache,即第二级缓存;Batchworkload:批处理负载;Core:处理器核。在混合缓存的最后一级共享高速缓存LLC中的SRAM的高速缓存块上增加读写标记字段,用于标记缓存块是否被写过,是否被读过,如图3所示,其中,图3中缩略语和关键术语定义为:Valid:有效,Tag:标记,CacheBlock:高速缓存块,Set:组,Read/WriteTag:读/写标记。102.根据所述混合缓存接收的访问请求在所述最后一级共享高速缓存LLC的STT-RAM和SRAM的命中情况及读写标记字段的标记规则对SRAM的高速缓存块上的读写标记字段进行标记。其中,所述读写标记字段的标记规则包括:若被命中的访问请求为非延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第一字段;若被命中的访问请求为被写过的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第二字段;若被命中的访问请求为被读过1次的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第三字段;若被命中的访问请求为被读过多次的延迟敏感数据,则标记SRAM的高速缓存块上的读写标记字段为第四字段。例如,按下表1对标记字段进行定义:表1标记字段的含义00非延迟敏感数据10被写过的延迟敏感数据01被读过1次的延迟敏感数据11被读过多次的延迟敏感数据进一步的,当所述混合缓存接收延迟敏感型应用的访问请求后,所述最后一级高速缓存LLC在目标缓存组的STT-RAM和SRAM介质上同步查找,并根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记所述高速缓存块的读写标记字段。所述根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记所述高速缓存块的读写标记字段,包括:若所述延迟敏感型应用的访问请求为读请求并在SRAM上命中,则返回命中的数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求为读请求并在STT-RAM上命中,则返回命中的数据;若所述延迟敏感型应用的访问请求为写请求并在SRAM上命中,则写入命中的数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求为写请求并在STT-RAM上命中,则无效化在STT-RAM上命中的数据,在SRAM上写入该数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段;若所述延迟敏感型应用的访问请求未命中,则在SRAM上写入数据。其中,若延迟敏感型应用的访问请求在SRAM上写入读访问数据时需要替换数据,则依次选择读写标记字段为第一字段、第四字段、第三字段或第二字段的高速缓存块存储的数据进行替换,若在SRAM上写入写访问数据时需要替换数据,则依次选择读写标记字段为第一字段或第四字段的高速缓存块存储的数据进行替换。例如:接收到延迟敏感型应用的访问请求后的操作步骤如下:S1.接到访问请求后,LLC会在目标缓存组的STT-RAM和SRAM介质上同步查找;S2.如果读请求在SRAM上命中,则返回数据,按照上表所示方式更改命中数据的读写标记S3.如果读请求在STT-RAM上命中,则只返回数据。S4.如果写请求在SRAM上命中,则写入数据,更改相应标记;S5.如果写请求在STT-RAM上命中,则无效化STT-RAM上的该命中数据,在SRAM上写入新数据,更改相应标记;S6.如果读/写请求未命中,则在SRAM上写入数据;另一方面,当所述处理器接收非延迟敏感型应用的访问请求后,所述最后一级高速缓存LLC在目标缓存组的STT-RAM和SRAM介质上同步查找,并根据所述非延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段。所述根据所述延迟敏感型应用的访问请求的命中情况及读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段,包括:若所述非延迟敏感型应用的访问请求为读请求并在SRAM或STT-RAM上命中,则返回命中的数据;若所述非延迟敏感型应用的访问请求为写请求并在SRAM上命中,则写入命中的数据;若所述非延迟敏感型应用的访问请求为写请求并在STT-RAM上命中,则无效化在STT-RAM上命中的数据,在SRAM上写入该数据,并根据所述读写标记字段的标记规则标记SRAM的高速缓存块的读写标记字段,若SRAM上无法写入该数据,则将该数据写回内存;若所述延迟敏感型应用的访问请求未命中,则在SRAM上写入数据,若SRAM上无法写入该数据,则内存上读数据或写数据。其中,若非延迟敏感型应用的访问请求在SRAM上写入数据时需要替换数据,则选择读写标记字段为第一字段的高速缓存块存储的数据进行替换,若所述SRAM中不存在读写标记字段为第一字段的高速缓存块,则将数据写入STT-RAM或内存中。例如,接收到非延迟敏感型应用的访问请求后的操作步骤如下:S1.接到访问请求后,LLC会在目标缓存组的STT-RAM和SRAM介质上同步查找;S2.如果读请求命中,则返回数据;S3.如果写请求在SRAM上命中,则写入数据;S4.如果写请求在STT-RAM上命中,则无效化STT-RAM上的原数据,在SRAM上写入新数据,更改相应标记,如果无法写入,则写回内存;S5.如果读/写请求未命中,则在SRAM上写入数据,如果无法写入,则直接从内存读数据或写数据。需要说明的,当STT-RAM不处理任何访问请求时,会定期检查SRAM中的数据,将认为未来将只服务于读请求的数据转存入STT-RAM内。另外,如果SRAM由于没有空闲空间而需要替换数据时,被换出的数据会先被写入STT-RAM,当数据被从STT-RAM换出时才写入内存。最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1