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

文档序号:8922527阅读:来源:国知局
理地址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]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1