高速缓冲存储器Cache地址的映射处理方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及数据存储技术,尤其涉及一种高速缓冲存储器Cache地址的映射处理方法和装置。
【背景技术】
[0002]随着数据集的增大和处理器核数的增多,页表缓冲(Translat1n LookasideBuffer ;简称TLB)和高速缓冲存储器(Cache)面临着更严峻的挑战。TLB竞争问题:在多数体系结构中,每次访存都需要先查询页表,把虚拟地址转换为物理地址,然后用物理地址索引Cache。页表通常很大,分级存储在内存中。TLB作为页表的缓冲,缓存少量经常使用的页表项,存储在离CPU核很近的位置,这样如果要查询的虚实映射关系存储在TLB中,SPTLB访问命中(Hit),可以大大加速虚实地址转换过程。但是如果TLB经常访问缺失(Miss),仍然需要到内存中分多级查找页表得到对应的页表项,需要经历很长的访问延迟。随着大数据时代数据集的不断增大,这种TLB的竞争只会越来越激烈,从而导致更大比例的TLBmiss,严重影响性能。Cache竞争问题:在大多数的多核体系结构中,最后一级Cache (LastLevel Cache ;简称LLC)为多核所共享,这样核与核之间就会对LLC产生竞争,导致进程之间相互替换cache,使cache利用率下降。特别是,有些程序的局部性比较差,但是访问频繁、工作集很大,这样就会占用较多的LLC容量,从而严重影响其他进程的性能。随着核数的增多,LLC的竞争问题会越来越严重。
[0003]现有技术中一般通过大页面(Huge Page)和页着色划分Cache (Page-Coloringbased Cache Partit1n)技术进行性能优化。其中,进程需要的页表项数为工作集大小/页面大小,进程的工作集随着应用需求会不断增大,这时候增大页面大小,可以显著的减少进程所需要的页表项数。比如,普通页面为4KB,使用2MB的大页面,可以把进程需要的页表项数降低512倍,大大减轻TLB的竞争压力,减少TLB Miss,从而提高性能。
[0004]一种减少LLC竞争的方法是,静态或动态的把LLC划分给不同的核(进程),使之相互隔离,不产生竞争,这种技术称为划分cache(Cache Partit1n)。页着色(page-coloring)是一种软件实现划分cache的方法,具有易于使用、不需要修改硬件的优点。图1为现有技术页着色划分Cache的原理示意图,如图1所示,图1显示了页着色划分Cache的原理。从操作系统的角度,物理地址PA可以分为两部分:物理页面号(PhysicalPage Number ;PPN)和页偏移(Page Offset);从 Cache 的角度,物理地址(PhysicalAddress ;简称PA)可以分为三部分:高速缓冲存储器标签(Cache Tag)、高速缓冲存储器集合索引(Cache Set Index)和高速缓冲存储器块偏移(Cache Block Offset)。其中操作系统可以控制PPN,但是不能控制Page Offset JiSPage Offset的位数为N,则2N即为页面大小。PPN和Cache Set Index的交集称为着色位(color bits)。操作系统通过控制PPN(即控制着色位),可以使地址映射到指定的Cache Set中。这样,给不同的进程分配不同的着色位,即可以使其映射到不同的Cache Set中,从而实现相互隔离。
[0005]图2为现有技术中大页面与页着色划分Cache的矛盾示意图,如图2所示,大页面的Page Offset域的位数变多(因为页面更大,需要更多位表示页内偏移),而PPN域的位数变少,并不再与Cache set index相交。没有着色位的存在,使得操作系统不能再通过控制PPN的方式,控制Cache Set Index。因此在现有的硬件体系结构下,大页面技术和页着色划分Cache技术存在矛盾,导致两者无法同时使用。
【发明内容】
[0006]本发明各实施例针对现有技术中大页面技术和页着色划分Cache技术无法同时使用的缺陷,提供一种高速缓冲存储器Cache地址的映射处理方法和装置。
[0007]本发明实施例一方面提供一种高速缓冲存储器Cache地址的映射处理方法,包括:
[0008]获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移;
[0009]将所述物理地址映射成Cache地址,所述Cache地址依次包括第一高速缓冲存储器集合索引Cache Set Indexl、高速缓冲存储器标签Cache Tag、第二高速缓冲存储器集合索引Cache Set Index2,以及高速缓冲存储器块偏移Cache Block Offset ;其中,位于高位的所述Cache Set Indexl和位于低位的所述Cache Set Index2共同组成高速缓冲存储器集合索引Cache Set Index,且所述Cache Set Indexl位于所述PPN的覆盖范围内。
[0010]本发明实施例另一方面还提供另一种高速缓冲存储器Cache地址的映射处理方法,包括:
[0011]获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同;
[0012]通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分;
[0013]将所述真实物理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移Cache Block Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。
[0014]本发明实施例另一方面提供一种高速缓冲存储器Cache地址的映射处理装置,包括:
[0015]第一获取模块,用于获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移;
[0016]第一映射模块,用于将所述物理地址映射成Cache地址,所述Cache地址依次包括第一高速缓冲存储器集合索引Cache Set Indexl、高速缓冲存储器标签Cache Tag、第二高速缓冲存储器集合索引Cache Set Index2,以及高速缓冲存储器块偏移Cache BlockOffset ;其中,位于高位的所述Cache Set Indexl和位于低位的所述Cache Set Index2共同组成高速缓冲存储器集合索引CacheSet Index,且所述Cache Set Indexl位于所述PPN的覆盖范围内。
[0017]本发明实施例另一方面还提供另一种高速缓冲存储器Cache地址的映射处理装置,包括:
[0018]第二获取模块,获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同;
[0019]第二映射模块,用于通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分;
[0020]第三映射模块,用于将所述真实物