This application discloses a cache address mapping method and related devices, which includes: acquiring binary files, binary files including the first hot code segment; acquiring alignment information of the second hot code segment; the second hot code segment is the hot code segment loaded into the cache; alignment information includes the second hot code segment loaded into the cache, and the second hot spot after the second hot code segment is loaded into the cache. The group number of the last cache group occupied by the point code segment; according to alignment information, the first hotspot code segment is offset so that the first hotspot code segment maps to the group number continuous cache group in the cache, and the group number continuous cache group is adjacent to the last cache group. The embodiment of the present invention can solve the problem of cache collision failure in the N-way group interconnected structure without increasing the physical hardware overhead and improve the cache hit rate.
【技术实现步骤摘要】
高速缓存cache地址映射方法以及相关设备
本申请涉及高速缓存
,尤其涉及高速缓存cache地址映射方法以及相关设备。
技术介绍
高速缓存(cache)是用于计算机处理器(CentralProcessingUnit,CPU)和主存储器(mainmemory)之间高速数据交换的存储器,容量比较小但读写速度比主存储器高得多,接近于CPU的处理速度。Cache是按照缓存行(cacheline)形式组织的,Cache的功能是用来存放那些近期需要在CPU运行的指令或数据。当CPU要访问主存储器(简称主存)的时候,如果所需的数据或者指令位于cacheline中,称之为缓存命中(cachehit),这种情况下,CPU直接获取所需的数据或者指令,而不需要访问主存储器,从而提高了访问速度;如果所需的数据或者指令没有位于cacheline中,称之缓存失效(cachemiss),这种情况下,CPU需要再去从外部的主存储器加载数据或指令到cache中来,且如果此时cacheline已被占据,还要对cacheline中的数据或指令进行替换,这会导致明显的性能下降。通常高速缓存失效的原因通常有三种:强制性失效(compulsorymiss),容量实效(capacitymiss)和冲突失效(conflictmiss)。其中,冲突失效是由于多个地址映射到相同的cache单元中而引起的访问冲突。目前主流的cache硬件架构都采用N路组相联(N-waySetAssociative)结构,N路组相联cache被分为若干个缓存组(cacheset),每个缓存组包含N个cacheline,也 ...
【技术保护点】
1.一种高速缓存cache地址映射方法,其特征在于,所述cache包括多个cache组,所述方法包括:获取二进制文件,所述二进制文件包括第一热点代码段;其中,所述第一热点代码段包括一个热点函数,或者,所述第一热点代码段包括多个归并的热点函数;获取第二热点代码段的对齐信息;其中,所述第二热点代码段为已加载到所述cache的热点代码段;所述对齐信息包括所述第二热点代码段加载到所述cache后,所述第二热点代码段所占用的最后一个cache组的组号;根据所述对齐信息,对所述第一热点代码段进行偏移操作,使得所述第一热点代码段映射到所述cache中组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻。
【技术特征摘要】
1.一种高速缓存cache地址映射方法,其特征在于,所述cache包括多个cache组,所述方法包括:获取二进制文件,所述二进制文件包括第一热点代码段;其中,所述第一热点代码段包括一个热点函数,或者,所述第一热点代码段包括多个归并的热点函数;获取第二热点代码段的对齐信息;其中,所述第二热点代码段为已加载到所述cache的热点代码段;所述对齐信息包括所述第二热点代码段加载到所述cache后,所述第二热点代码段所占用的最后一个cache组的组号;根据所述对齐信息,对所述第一热点代码段进行偏移操作,使得所述第一热点代码段映射到所述cache中组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻。2.根据权利要求1所述的方法,其特征在于,所述根据所述对齐信息,对所述第一热点代码段进行偏移操作,包括:根据所述对齐信息,对所述第一热点代码段的存储地址进行偏移操作,使得所述第一热点代码段的所述存储地址映射到所述cache中组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻;其中,所述存储地址包括虚拟地址或物理地址。3.根据权利要求2所述的方法,其特征在于,所述cache的映射方式包括将所述虚拟地址映射至所述cache的cache组;所述根据所述对齐信息,对所述第一热点代码段进行偏移操作包括:根据所述对齐信息,对所述第一热点代码段的虚拟地址进行偏移操作,使得所述第一热点代码段的虚拟地址映射到组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻。4.根据权利要求3所述的方法,其特征在于,根据所述对齐信息,对所述第一热点代码段的虚拟地址进行偏移操作,包括:获取所述第一热点代码段的虚拟地址;根据所述对齐信息确定所述最后一个cache组相邻的cache组;根据所述相邻的cache组和所述第一热点代码段的虚拟地址得到所述偏移操作的偏移量;根据所述偏移操作的偏移量对所述第一热点代码段的虚拟地址进行偏移操作。5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一热点代码段包括多个归并的热点函数;所述多个归并的热点函数在所述第一热点代码段中地址连续,每个热点函数均具有相同的标识,所述标识用于实现将所述多个热点函数归并为所述第一热点代码段。6.根据权利要求2所述的方法,其特征在于,所述cache的映射方式包括将所述物理地址映射至所述cache的cache组;所述根据所述对齐信息,对所述第一热点代码段进行偏移操作包括:根据所述对齐信息,对所述第一热点代码段的虚拟地址的第一页内偏移pageoffset进行偏移操作以及对所述第一热点代码段所在的物理页进行物理页分配操作,以得到所分配的物理页和所述第一热点代码段的物理地址;将存在于所述物理页中的所述第一热点代码段的所述物理地址映射到组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻。7.根据权利要求6所述的方法,其特征在于,根据所述对齐信息,对所述第一热点代码段的虚拟地址的第一页内偏移pageoffset进行偏移操作,以及对所述第一热点代码段所在的物理页进行物理页分配操作,得到所分配的物理页和所述第一热点代码段的物理地址,包括:根据所述最后一个cache组相邻的cache组和所述第一热点代码段的虚拟地址的第一pageoffset,得到所述偏移操作的偏移量;根据所述偏移量对所述第一热点代码段的虚拟地址的第一pageoffset进行偏移操作,得到所述第一热点代码段的虚拟地址的第二pageoffset;根据所述最后一个cache组相邻的cache组,获得所述第一热点代码段所涉及页面的着色位colorindex;根据所述colorindex获得所分配的物理页;根据所述所分配的物理页对应的物理页号PFN和所述第二pageoffset,得到所述第一热点代码段的物理地址。8.根据权利要求7所述的方法,其特征在于,根据所述colorindex获得所分配的物理页,包括:根据所述colorindex,从物理页分配器随机获取特定数量的连续物理页;从所述特定数量的连续物理页中选取符合所述colorindex的物理页,作为所述所分配的物理页。9.根据权利要求8所述的方法,其特征在于,所述特定数量等于所述所分配的物理页的页数与页面颜色数量之和减1;其中,所述页面颜色数量由所述colorindex的位数确定。10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:根据第二热点代码段的虚拟地址范围确定所述第二热点代码段占用的cache组的个数;根据所述第二热点代码段占用的cache组的个数,和第三热点代码段加载到所述cache后所占用的最后一个cache组,确定所述第二热点代码段加载到所述cache后所占用的最后一个cache组,将该最后一个cache组的组号更新到所述对齐信息;其中,所述第三热点代码段为在加载所述第二热点代码段之前已加载到所述cache的热点代码段。11.一种设备,其特征在于,包括:获取模块,用于获取二进制文件,所述二进制文件包括第一热点代码段;其中,所述第一热点代码段包括一个热点函数,或者,所述第一热点代码段包括多个归并的热点函数;加载器模块,用于获取第二热点代码段的对齐信息;其中,所述第二热点代码段为已加载到所述cache的热点代码段;所述对齐信息包括所述第二热点代码段加载到所述cache后,所述第二热点代码段所占用的最后一个cache组的组号;所述cache包括多个cache组;偏移模块,用于根据所述对齐信息,对所述第一热点代码段进行偏移操作,使得所述第一热点代码段映射到所述cache中组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻。12.根据权利要求11所述的设备,其特征在于,所述偏移模块用于根据所述对齐信息,对所述第一热点代码段进行偏移操作,包括:所述偏移模块用于根据所述对齐信息,对所述第一热点代码段的存储地址进行偏移操作,使得所述第一热点代码段的所述存储地址映射到所述cache中组号连续的cache组,并且所述组号连续的cache组与所述最后一个cache组相邻;其中,所述存储地址包括虚拟地址或物理地址。13.根据权利要求12所述的设备,其特征在于,所述cache的映射方式包括将所述虚拟地址映射至所述cache的cache组;所述偏移模块用于根据所述对齐信息,对所述第一热点代码段进行偏移操作,...
【专利技术属性】
技术研发人员:吕研冬,曾建江,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。