高速缓冲存储器Cache地址的映射处理方法和装置的制造方法

xiaoxiao2020-10-23  19

高速缓冲存储器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]第三映射模块,用于将所述真实物 理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移Cache Block Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。
[0021]本发明实施例提供的高速缓冲存储器Cache地址的映射处理方法和装置,通过将大页面PPN的某些位映射到Cache的Set Index中,因此可以被操作系统用来着色,满足同时使用大页面技术和页着色划分Cache技术的需求,并获得大页面和页着色划分Cache的性能提升。
【附图说明】
[0022]图1为现有技术页着色划分Cache的原理示意图;
[0023]图2为现有技术中大页面与页着色划分Cache的矛盾示意图;
[0024]图3为本发明高速缓冲存储器Cache地址的映射处理方法一实施例流程图;
[0025]图4为本发明方法实施例一应用场景示意图;
[0026]图5为本发明方法实施例另一应用场景示意图;
[0027]图6为本发明高速缓冲存储器Cache地址的映射处理方法另一实施例流程图;
[0028]图7为本发明方法实施例再一应用场景示意图;
[0029]图8为本发明方法实施例伪物理地址到真实物理地址的映射方法示意图;
[0030]图9为本发明高速缓冲存储器Cache地址的映射处理装置一实施例示意图;
[0031]图10为本发明高速缓冲存储器Cache地址的映射处理装置另一实施例示意图。
【具体实施方式】
[0032]由于现有技术中,大页面的PPN和Cache Set Index没有重叠,导致无法通过控制大页面的PPN来实现页着色划分Cache,出现这种矛盾的根本原因是,操作系统操作的物理地址和索引cache的物理地址是同一个地址,因此使用大页面时,必然不能满足页着色的需求。本发明各实施例提供一种解决方案,满足同时使用大页面技术和页着色划分Cache技术的需求。
[0033]图3为本发明高速缓冲存储器Cache地址的映射处理方法一实施例流程图,如图3所示,该方法包括:
[0034]步骤301,获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移;
[0035]步骤302,将所述物理地址映射成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的覆盖范围内。
[0036]以下结合具体硬件的应用场景来对该方法实施例进行详细的介绍,图4为本发明方法实施例一应用场景示意图,本发明方法实施例的应用场景为多核处理器,多核处理器包含:多核、TLB、多级私有Cache、共享的LLC、内存(Memory)等,如图4所示:
[0037]处理核(例如CoreO)发出的访存地址为虚拟地址VA,由虚拟物理页面号VPN和虚拟页偏移Page Offset组成,通过查询TLB得到物理地址PA,由物理页面号PPN和页偏移Page Offset组成。物理地址PA通过映射(map)得到索引各级Cache的地址,其中一些位作为Set Index,找到对应Set中的所有Cache Line,然后PA的一些位作为Tag与这些CacheLine中的tag进行并行比较,确定是否Cache命中。如果Cache不命中,物理地址PA被传递给更下一级Cache,直至传递给内存。
[0038]本方法实施例对物理地址索引Cache的方式进行了改进,即改变物理地址到Cache地址的映射关系,将Set Index改为由两部分构成:一部分与现有方式相同,由紧挨Block Offset的一些地址位构成,这样可以使连续的Cache line具有不同的Cache Set,避免连续访问时造成Cache冲突;另一部分由物理地址高位的一些地址位构成,为大页面PPN的一部分。如图4所示的,物理地址PA映射成的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的覆盖范围内,CacheSet Indexl作为着色位,操作系统可以控制VPN到PPN的映射关系,控制着色位,使页面映射到指定的一组set中,从而实现大页面的页着色划分cache。
[0039]在上述方法实施例中,Cache Set Indexl和Cache Set Index2的大小可以相同,也可以不同。
[0040]图5为本发明方法实施例另一应用场景不意图,与图4的区别仅在于,物理地址PA映射成的Cache地址不同,作为另一种实现方式,映射后的Cache地址中的Cache Tag也可以分成两部分,具体地如图5所示,Cache Tag包括位于高位的第一高速缓冲存储器标签Cache Tagl和位于低位的第二高速缓冲存储器标签Cache Tag2 ;且所述Cache Set Indexl位于所述Cache Tagl和所述Cache Tag2之间。进一步地,Cache Tagl和Cache Tag2的大小可以相等,也可以不等。
[0041]上述方法实施例中,将物理地址映射成Cache地址具体可以发生在某一级Cache或所有Cache的映射关系上,并且可以通过可编程寄存器控制完成。
[0042]图6为本发明高速缓冲存储器Cache地址的映射处理方法另一实施例流程图,如图6所示,该方法包括:
[0043]步骤601,获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同;
[0044]步骤602,通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分;
[0045]步骤603,将所述真实物理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移Cache Block Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。
[0046]以下结合具体硬件的应用场景来对该方法实施例进行详细的介绍,图7为本发明方法实施例再一应用场景示意图,本发明方法实施例的应用场景为多核处理器,多核处理器包含:多核、TLB、多级私有Cache、共享的LLC、内存(Memory)等,如图7所示:
[0047]处理核(例如CoreO)发出的访存地址为虚拟地址VA,由虚拟物理页面号VPN和虚拟页偏移Page Offset组成,通过查询TLB得到伪物 理地址pseudo-PA,由伪物理页面号PPN和伪页偏移Page Offset组成。其中,在伪物理页面号中包括预定大小的第一地址部分,在伪页偏移包括第二地址部分,且第一地址部分与第二地址部分大小相同。本发明实施例在Cache之前增加一层伪物理地址空间pseudo-PA,操作系统管理伪物理地址空间,对其进行大页面管理和页着色管理。在索引Cache之前,先对伪物理地址pseudo-PA进行映射真正的物理地址PA,物理地址PA通过映射(map)得到索引各级Cache的地址,其中一些位作为Set Index,找到对应Set中的所有Cache Line,然后PA的一些位作为Tag与这些CacheLine中的tag进行并行比较,确定是否Cache命中。如果Cache不命中,物理地址PA被传递给更下一级Cache,直至传递给内存。
[0048]图8为本发明方法实施例伪物理地址到真实物理地址的映射方法示意图,如图8所示,从伪物理地址页面号pseudo-PPN中选出一些位作为着色位即第一地址部分,再从Page Offset中选出同样多的位(位于Cache Set Index内)即第二地址部分,把两者进行位置换,在得到的真实物理地址PA中,着色位位于Page Offset中,并最终通过物理地址PA到Cache地址的映射关系,映射到Cache Set Index中。
[0049]本发明方法实施例在索引Cache之前,映射部件先将伪物理地址pseudo-PA转换为真实物理地址PA,用于索引Cache和内存。映射关系将操作系统的着色位(例如位于PPN的低位)映射到Cache Set Index所在的位置。
[0050]在图7中,操作系统管理的是伪物理地址空间pseudo-PA,TLB中填充的是虚拟地址VA到伪物理地址pseudo-PA的映射关系。特殊的,图7中的LlCache仍然使用伪物理地址pseudo-PA访问,只有当访存到达最后一级cache(LLC)时,才将伪物理地址pseudo-PA转换为真实物理地址PA。当然,伪物理地址pseudo-PA到真实物理地址PA转换的位置不局限于图7所示的LLC前,也可以位于LlCache前,或L2前。图7中伪物理地址pseudo-PA到真实物理地址PA的映射关系实现如下效果:使伪物理地址空间的大页面的着色位(pseudo-PPN的一部分),经过映射后,映射到真实物理地址的低位,并最终映射到Cache地址的Set Index中。
[0051]上述方法实施例中,将伪物理地址映射成真实的物理地址具体可以发生在某一级Cache或所有Cache的映射关系上,并且可以通过可编程寄存器控制完成。
[0052]本发明实施例提供的高速缓冲存储器Cache地址的映射处理方法,通过将大页面PPN的某些位映射到Cache的Set Index中,因此可以被操作系统用来着色,满足同时使用大页面技术和页着色划分Cache技术的需求,并获得大页面和页着色划分Cache的性能提升;而且所有的改动都只是地址映射关系的改变,不增加额外的电路;地址映射的改动能保证一一映射,不需要操作系统管理。
[0053]图9为本发明高速缓冲存储器Cache地址的映射处理装置一实施例示意图,如图9所不,该装置包括第一获取模块901和第一映射模块902,其中,第一获取模块901用于获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移;第一映射模块902用于将所述物理地址映射成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的覆盖范围内。
[0054]在装置实施例中,Cache Set Indexl和Cache Set Index2的大小可以相等,或不等。第一映射模块902还用于,将所述Cache Tag分成位于高位的第一高速缓冲存储器标签Cache Tagl和位于低位的第二高速缓冲存储器标签Cache Tag2 ;且所述Cache Set Indexl位于所述Cache Tagl和所述Cache Tag2之间。其中,所述Cache Tagl和所述Cache Tag2的大小可以相等,或不等。
[0055]本发明装置实施例具体可以执行上述如图3、4和5所示的方法,具体功能此处不再赘述。
[0056]图10为本发明高速缓冲存储器Cache地址的映射处理装置另一实施例示意图,如图10所示,该装置包括第二获取模块101、第二映射模块102和第三映射模块103,其中,第二获取模块101获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同;第二映射模块102用于通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分;第三映射模块103用于将所述真实物理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移Cache Block Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。
[0057]本发明装置实施例具体可以执行上述如图6、7和8所示的方法,具体功能此处不再赘述。
[0058]本发明实施例提供的高速缓冲存储器Cache地址的映射处理装置,通过将大页面PPN的某些位映射到Cache的Set Index中,因此可以被操作系统用来着色,满足同时使用大页面技术和页着色划分Cache技术的需求,并获得大页面和页着色划分Cache的性能提升;而且所有的改动都只是地址映射关系的改变,不增加额外的电路;地址映射的改动能保证一一映射,不需要操作系统管理。
[0059]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0060]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0061]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0062]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理 器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0063]本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0064]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种高速缓冲存储器Cache地址的映射处理方法,其特征在于,包括: 获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移; 将所述物理地址映射成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的覆盖范围内。2.根据权利要求1所述的方法,其特征在于,所述CacheSet Indexl和所述Cache SetIndex2的大小相等。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述Cache Tag包括位于高位的第一高速缓冲存储器标签Cache Tagl和位于低位的第二高速缓冲存储器标签Cache Tag2 ;且所述Cache Set Indexl位于所述Cache Tagl和所述Cache Tag2之间。4.根据权利要求3所述的方法,其特征在于,所述CacheTagl和所述Cache Tag2的大小相等。5.根据权利要求1所述的方法,其特征在于,所述将所述物理地址映射成Cache地址具体通过可编程寄存器控制完成。6.根据权利要求1或5所述的方法,其特征在于,所述将所述物理地址映射成Cache地址在任--级Cache前进行。7.一种高速缓冲存储器Cache地址的映射处理方法,其特征在于,包括: 获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同; 通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分; 将所述真实物理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移CacheBlock Offset ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。8.根据权利要求7所述的方法,其特征在于,所述将所述伪物理地址映射成真实物理地址具体通过可编程寄存器控制完成。9.根据权利要求7或8所述的方法,其特征在于,所述将所述伪物理地址映射成真实物理地址在任一一级Cache前进行。10.高速缓冲存储器Cache地址的映射处理装置,其特征在于,包括: 第一获取模块,用于获取处理核发送的访问地址所对应的物理地址,所述物理地址包括物理页面号PPN和页偏移; 第一映射模块,用于将所述物理地址映射成Cache地址,所述Cache地址依次包括第一高速缓冲存储器集合索引Cache Set Indexl、高速缓冲存储器标签Cache Tag、第二高速缓冲存储器集合索引Cache Set Index2,以及高速缓冲存储器块偏移Cache Block Offset ;其中,位于高位的所述Cache Set Indexl和位于低位的所述Cache Set Index2共同组成高速缓冲存储器集合索引CacheSet Index,且所述Cache Set Indexl位于所述PPN的覆盖范围内。11.根据权利要求10所述的装置,其特征在于,所述CacheSet Indexl和所述CacheSet Index2的大小相等。12.根据权利要求10或11所述的装置,其特征在于,所述第一映射模块还用于,将所述Cache Tag分成位于高位的第一高速缓冲存储器标签Cache Tagl和位于低位的第二高速缓冲存储器标签Cache Tag2 ;且所述Cache Set Indexl位于所述Cache Tagl和所述CacheTag2之间。13.根据权利要求12所述的装置,其特征在于,所述CacheTagl和所述Cache Tag2的大小相等。14.一种高速缓冲存储器Cache地址的映射处理装置,其特征在于,包括: 第二获取模块,获取处理核发送的访问地址所对应的伪物理地址,所述伪物理地址包括伪物理页面号和伪页偏移;其中,所述伪物理页面号中包括第一地址部分,所述伪页偏移包括第二地址部分,所述第一地址部分与所述第二地址部分大小相同; 第二映射模块,用于通过将所述第一地址部分与所述第二地址部分互换位置以完成将所述伪物理地址映射成真实物理地址,所述真实物理地址包括真实物理页面号PPN和页偏移;其中,所述PPN包括所述第二地址部分,所述页偏移包括所述第一地址部分; 第三映射模块,用于将所述真实物理地址映射成Cache地址,所述Cache地址包括高速缓冲存储器标签Cache Tag、高速缓冲存储器集合索引Cache Set Index,以及高速缓冲存储器块偏移Cache Block Off set ;其中,所述第一地址部分位于所述Cache Set Index的覆盖范围内。
【专利摘要】本发明实施例提供一种高速缓冲存储器Cache地址的映射处理方法和装置。该方法实施例包括获取处理核发送的访问地址所对应的物理地址,物理地址包括物理页面号PPN和页偏移;将物理地址映射成Cache地址,Cache地址依次包括Cache Set Index1、Cache Tag、Cache Set Index2,以及CacheBlock Offset;其中,位于高位的Cache Set Index1和位于低位的Cache SetIndex2共同组成Cache Set Index,且Cache Set Index1位于PPN的覆盖范围内。本发明各实施例通过将大页面PPN的某些位映射到Cache的Set Index中,因此可以被操作系统用来着色,满足同时使用大页面技术和页着色划分Cache技术的需求,并获得大页面和页着色划分Cache的性能提升。
【IPC分类】G06F12/08
【公开号】CN104899159
【申请号】CN201410080762
【发明人】崔泽汉, 陈荔城, 陈明宇
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年9月9日
【申请日】2014年3月6日
【公告号】WO2015131853A1

最新回复(0)