实现使用大容量高速缓存的内存管理方法及装置的制作方法

文档序号:6433000阅读:209来源:国知局
专利名称:实现使用大容量高速缓存的内存管理方法及装置的制作方法
技术领域
本发明涉及到计算机系统的内存管理方法,尤其涉及实现使用大容量高速缓存的内存管理方法及装置。
背景技术
高速缓存处于处理器访问的关键路径。随着处理器和主存储器之间速度差距的不断扩大,高速缓存尤其是容量较大的最低一级高速缓存,其失效产生的系统开销逐渐增大, 已成为制约计算机整体性能提高的主要瓶颈之一。主存储器在逻辑上划分为若干行,每行划分为若干个存储单元组,每组包含几个或几十个字(或字节),如图1所示;因此,处理器访问主存储器的逻辑地址划分为行号、列号和组内地址三个字段。高速缓存也相应地划分为行和列的存储单元组,可参见图3。二者的列数相同,组的大小也相同,但高速缓存的行数却比主存储器的行数少得多(u << m)。 当出现访问失效而高速缓存对应列中没有空的位置时,便淘汰该对应列中的某一组,以腾出位置存放新调入的组,这称为替换。确定替换的方法叫替换算法。常用的替换算法包括 最近最少使用法(LRU)、先进先出法(FIFO)和随机法(RAND)等。商业处理器普遍采用LRU 替换算法管理高速缓存。在现代处理器中,高速缓存容量不断地在扩大,其规模已经上升到若干兆比特。由于LRU替换算法并不区分访问高速缓存的不同应用进程,导致一个进程的高速缓存失效可能会替换另一进程的高速缓存块,从而导致出现高速缓存被不同应用进程抢占的问题。并发的多个进程对高速缓存的抢占,使得其性能比单个进程单独占有高速缓存时下降很多; 同时,还会导致并发进程中单个进程的执行时间受与其并发执行的其它进程的影响很大, 并难以预测。此外,该LRU算法不能区分对高速缓存不同的访问模式,无法根据程序局部性的变化进行调整。再有,在运行工作集较大、局部性较差的访存密集型程序时,该LRU算法会引发高速缓存污染,即指将未来需要使用的数据替换出高速缓存,而换入未来不会被使用的数据。高速缓存污染会导致高速失效率增高,访存延迟增大,系统性能降低。因此,针对目前使用大容量物理寻址高速缓存的内存管理所存在的一系列问题, 需要提供一种改进的内存管理方法,能够隔离同时运行的不同应用程序以及同一应用程序不同内存区域的高速缓存访问,从而实现对系统性能的优化。

发明内容
本发明所要解决的技术问题是提供一种实现使用大容量高速缓存的内存管理方法及装置,能够减少为并发应用进程分配不同内存页面映射到同一高速缓存区域所导致的冲突失效。为了解决上述技术问题,本发明提供了一种实现使用大容量高速缓存的内存管理方法,包括以内存的物理页框为单位划分使用的高速缓存,并确定划分的高速缓存区域的映射条件。进一步地,该内存管理方法还包括为并发应用进程分配符合高速缓存区域的映射条件的物理页框。进一步地,以内存的物理页框为单位划分使用的高速缓存,并确定划分的高速缓存区域的映射条件,具体包括将与高速缓存的组号所重合的物理页框的页号作为区域号对高速缓存组进行区域划分,并以划分的区域编号作为所述高速缓存区域的映射条件确定。进一步地,为并发应用进程分配符合高速缓存区域的映射条件的物理页框,具体包括当并发应用进程申请映射到高速缓存区域的物理页框时,根据申请的新物理页框经计算处理将与高速缓存的组号重合的所述物理页框的页号作为区域编号;判断经计算处理出的区域编号与分配该应用进程的目标区域编号是否一致,一致表示符合映射条件,则为该应用进程分配相应的物理页框;不一致表示不符合映射条件,则提醒该应用进程相应的物理页框分配失败。为了解决上述技术问题,本发明提供了一种使用大容量高速缓存的内存管理装置,包括相互连接的高速缓存划分模块和内存分配模块,其中高速缓存划分模块,用于以内存的物理页框为单位划分高速缓存,并将确定的划分高速缓存区域的映射条件输出给内存分配模块;内存分配模块,用于为并发应用进程分配符合高速缓存区域的映射条件的物理页框。进一步地,该高速缓存划分模块包括依次连接的高速缓存区域划分单元和划分区域映射单元,其中高速缓存区域划分单元,将与高速缓存组的组号重合的所述物理页框的页号作为区域编号对高速缓存组进行区域划分,并将区域编号输出给划分区域映射单元;划分区域映射单元,用于将区域号作为相应应用进程内存分配的映射条件保存, 并在内存分配模块提出映射条件请求时,将符合映射条件相应的区域号返回给内存分配模块。进一步地,该内存分配模块包括依次连接的映射条件判断单元和页框分配单元, 其中映射条件判断单元,用于根据并发应用进程提出的映射高速缓存区域的物理页框分配请求,向划分区域映射单元提出映射条件请求,根据该划分区域映射单元返回的区域编号判断请求分配的物理页框是否符合映射条件,向页框分配单元输出物理页框分配指令;页框分配单元,用于根据物理页框分配指令,为应用进程分配映射到相应高速缓存区域的物理页框,或提示该应用进程所述物理页框的分配失败。进一步地,映射条件判断单元判断请求分配的物理页框符合映射条件,则向页框分配单元输出分配成功的物理页框分配指令,否则向页框分配单元输出分配失败的物理页框分配指令;
页框分配单元根据该分配成功的物理页框分配指令,将相应的物理页框通过物理页框分配响应分配给应用进程;或者,根据该分配失败的物理页框分配指令,将分配失败信息通过物理页框分配响应提示给该应用进程。本发明利用大容量高速缓存计算机系统其高速缓存寻址的物理地址相应位会超过页内偏移位这一特征,通过调整计算机操作系统虚拟存储管理机制中的页面分配策略, 控制虚拟-物理地址转换的页表项的相应位,来划分高速缓存,以隔离并发运行的应用程序以及同一应用程序的不同内存区域对高速缓存的访问,从而减少不同内存页面映射到同一高速缓存区域所导致的冲突失效,达到对系统性能进行优化的目的。


图1为主存储器的逻辑上划分及其逻辑地址示意图;图2是本发明的实现使用大容量高速缓存的内存管理方法实施例的流程图;图3为本发明对高速缓存的划分区域及其与主存储器物理地址的映射关系示意图;图4是对图3所示的方法实施例的具体实施流程图;图5是本发明的使用大容量高速缓存的内存管理装置实施例的结构示意图。
具体实施例方式下面结合附图和优选实施方式对本发明的技术方案进行详细地描述。应该理解, 以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。本发明利用大容量物理寻址高速缓存的结构特点,以主存储器物理页框为单位, 将高速缓存划分为若干不同区域。映射到不同高速缓存区域中的主存储器物理页框,在系统运行过程中不会抢占彼此的高速缓存空间,因此减少了高速缓存冲突。本发明提供的使用大容量高速缓存的内存管理方法实施例,其流程如图2所示, 包括如下步骤110:以主存储器物理页框为单位划分高速缓存,并确定划分的高速缓存区域的映射条件;在访问大容量物理寻址的高速缓存过程中,需要使用主存储器物理地址相应的部分位来查找高速缓存组,该部分位标记为高速缓存组号。当高速缓存容量较大时,在高速缓存中将会存在大量的高速缓存组,每个组由若干个高速缓存行组成,如图3所示。同时,现在计算机系统普遍采用虚拟存储系统和分页管理机制,当用于标记高速缓存组号的物理地址位超过页内偏移地址位(使用大容量物理寻址高速缓存的主存均有此特征)时,就可以通过与组号重合的主存页号作为高速缓存的区域号对高速缓存组进行区域划分。对于主存不同的两个物理页框来说,当其超过页内偏移的物理地址位不一致时,表明两个物理页框中的地址内容一定会被存储到高速缓存的不同组中,因此不会产生高速缓存访问冲突。例如,一个容量为512KB、具8路组相连(如图3中η = 8)且每行占32字节的高速缓存(Cache),可供并发执行的两个应用进程使用。在寻址时,主存物理地址的0到5位构成高速缓存的行内偏移,用于高速缓存的行内寻址;6到15位构成高速缓存的组号,用于进行高速缓存组寻址;同时,高于11位以上(bit 11 31)的部分表示主存的物理页号,该页号与高速缓存组号双方重合的部分譬如为bit 12 bit 15,共4位,可用于本发明作为区域号将Cache划分为16个不同的区域(如图2中V为16)。当然,本发明用区域号将Cache划分为多个不同的区域,具体划分的区域数目是根据高速缓存的总容量及并发的多个应用进程的使用情况来确定的。120 为并发应用进程分配符合高速缓存区域的映射条件的物理页框。本发明在虚拟存储系统的基础上,改进对物理内存的管理方法,用于分配映射特定高速缓存区域的物理页框。现代计算机系统通过操作系统普遍采用虚拟存储系统来管理计算机内存,亦即在管理及分配内存空间的过程中,采用分页机制来划分和管理物理内存;同时通过对内存空间进行虚拟地址和物理地址之间的互换(即虚实地址转换),来实现对物理内存空间的充分利用。因此,在应用程序运行过程中,需要将虚拟页的页号转换为物理页的页框号(页在物理内存中成为页框),从而为应用程序请求分配的各个内存区域分配所需要的物理页框。本发明在对高速缓存进行上述划分的基础上,对主内存的物理页框管理方法提出创新,即在进行虚实地址转换过程中,当需要分配映射特定高速缓存区域的物理页框时,通过对物理页框号进行分析和判断,对只有满足映射条件的物理页框才会被分配,从而达到在分配物理地址时划分高速缓存的目的。譬如,在上述例举的容量为512KB的高速缓存中,可为两个应用进程中的每一个分配8个区域,其中为第一应用进程分配满足区域号0 7页的高速缓存,为第二应用进程分配满足区域号8 15页的高速缓存。譬如当为第一应用进程分配主内存,在进行虚实地址转换过程中,当需要为其分配映射特定高速缓存区域的物理页框时,通过对转换出的物理页框号进行判断,只有满足区域号为0 7页映射条件的物理页框才会分配给第一应用进程,而不满足该映射条件,譬如通过对物理页框号进行判断,其区域号为8 15页中的某页,则不能将相应的物理页框分配给第一应用进程。如图4所示,表示了对图2所示的方法实施例各步骤中的具体实施步骤,包括210:将与高速缓存组号重合的主存物理页框的页号作为区域号对高速缓存组进行区域划分,并以区域号作为映射条件;本发明通过调整计算机操作系统虚拟存储管理机制中的页面分配策略,控制虚拟-物理地址转换的页表项的相应位,来达到划分大容量物理寻址高速缓存、减少不同页面映射到同一高速缓存区域而导致的冲突失效的目的。220 并发应用进程申请映射高速缓存区域的物理页框;230 根据申请的新物理页框计算映射的高速缓存区域号;亦即通过计算处理,将与高速缓存组号重合的主存物理页框的页号作为区域号。M0:判断计算的区域编号与目标区域编号是否一致,是则执行下一步骤,否则返回步骤220执行;亦即判断计算出的区域编号是否与分配该应用进程的目标区域编号是否一致,一致则表示符合映射条件而可以为其分配相应的物理页框,不一致则表示不符合映射条件而不能为其分配相应的物理页框,需要提醒应用进程分配失败而重新申请。250 为应用进程分配该物理页框。本发明通过隔离并发执行的不同应用程序的高速缓存访问空间,达到减少同时执行的不同应用程序产生的高速缓存冲突和影响,提高高速缓存访问命中率和系统整体性能。此外,采用该发明不需要添加额外的硬件部件,且不需修改处理器设计,实现简单。本发明根据上述方法实施例,相应地还提供了一种使用大容量高速缓存的内存管理装置实施例,其结构如图5所示,包括相互连接的高速缓存划分模块和内存分配模块,其中高速缓存划分模块,用于以主存储器物理页框为单位划分高速缓存,并将确定的划分高速缓存区域的映射条件输出给内存分配模块;内存分配模块,用于为并发应用进程分配符合高速缓存区域的映射条件的物理页框。在上述装置实施例中,高速缓存划分模块包括依次连接的高速缓存区域划分单元和划分区域映射单元,内存分配模块包括依次连接的映射条件判断单元和页框分配单元; 其中高速缓存区域划分单元,将与高速缓存组号重合的主存页号作为区域号对高速缓存组进行区域划分,并将区域号输出给划分区域映射单元;划分区域映射单元,用于将区域号作为相应应用进程内存分配的映射条件保存, 并在映射条件判断单元提出映射条件请求时,将符合映射条件相应的区域号返回给映射条件判断单元;映射条件判断单元,用于根据并发应用进程提出的映射高速缓存区域的物理页框分配请求,向划分区域映射单元提出映射条件请求,根据划分区域映射单元返回的区域号判断请求分配的物理页框是否符合映射条件,向页框分配单元输出物理页框分配指令;页框分配单元,用于根据物理页框分配指令,分配映射到相应高速缓存区域的页框物理页,或提示分配失败。映射条件判断单元判断请求分配的物理页框符合映射条件,则向页框分配单元输出分配成功的物理页框分配指令,否则向页框分配单元输出分配失败的物理页框分配指令;页框分配单元根据分配成功的物理页框分配指令,将相应的物理页框通过物理页框分配响应分配给应用进程;或者,根据分配失败的物理页框分配指令,将分配失败的信息通过物理页框分配响应提示给应用进程。对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种实现使用大容量高速缓存的内存管理方法,其特征在于,包括以所述内存的物理页框为单位划分使用的高速缓存,并确定划分的高速缓存区域的映射条件。
2.按照权利要求1所述的内存管理方法,其特征在于,还包括为并发应用进程分配符合所述高速缓存区域的映射条件的物理页框。
3.按照权利要求1或2所述的内存管理方法,其特征在于,以所述内存的物理页框为单位划分使用的高速缓存,并确定划分的高速缓存区域的映射条件,具体包括将与所述高速缓存的组号所重合的所述物理页框的页号作为区域号对高速缓存组进行区域划分,并以所述划分的区域编号作为所述高速缓存区域的映射条件确定。
4.按照权利要求3所述的内存管理方法,其特征在于,为并发应用进程分配符合所述高速缓存区域的映射条件的物理页框,具体包括当所述并发应用进程申请映射到高速缓存区域的物理页框时,根据申请的新物理页框经计算处理将与所述高速缓存的组号重合的所述物理页框的页号作为区域编号;判断经计算处理出的区域编号与分配该应用进程的目标区域编号是否一致,一致表示符合所述映射条件,则为所述应用进程分配相应的物理页框;不一致表示不符合所述映射条件,则提醒所述应用进程相应的物理页框分配失败。
5.一种使用大容量高速缓存的内存管理装置,其特征在于,包括相互连接的高速缓存划分模块和内存分配模块,其中高速缓存划分模块,用于以所述内存的物理页框为单位划分所述高速缓存,并将确定的划分高速缓存区域的映射条件输出给内存分配模块;内存分配模块,用于为并发应用进程分配符合所述高速缓存区域的映射条件的物理页框。
6.按照权利要求5所述的内存管理装置,其特征在于,所述高速缓存划分模块包括依次连接的高速缓存区域划分单元和划分区域映射单元,其中高速缓存区域划分单元,将与高速缓存组的组号重合的所述物理页框的页号作为区域编号对所述高速缓存组进行区域划分,并将所述区域编号输出给划分区域映射单元;划分区域映射单元,用于将区域号作为相应应用进程内存分配的映射条件保存,并在所述内存分配模块提出映射条件请求时,将符合映射条件相应的区域号返回给所述内存分配模块。
7.按照权利要求6所述的内存管理装置,其特征在于,所述内存分配模块包括依次连接的映射条件判断单元和页框分配单元,其中映射条件判断单元,用于根据并发应用进程提出的映射高速缓存区域的物理页框分配请求,向所述划分区域映射单元提出所述映射条件请求,根据所述划分区域映射单元返回的所述区域编号判断请求分配的物理页框是否符合所述映射条件,向页框分配单元输出物理页框分配指令;页框分配单元,用于根据所述物理页框分配指令,为所述应用进程分配映射到相应高速缓存区域的物理页框,或提示所述应用进程所述物理页框的分配失败。
8.按照权利要求7所述的内存管理装置,其特征在于,所述映射条件判断单元判断请求分配的物理页框符合所述映射条件,则向所述页框分配单元输出分配成功的物理页框分配指令,否则向所述页框分配单元输出分配失败的物理页框分配指令;所述页框分配单元根据所述分配成功的物理页框分配指令,将相应的物理页框通过物理页框分配响应分配给所述应用进程;或者,根据所述分配失败的物理页框分配指令,将分配失败信息通过物理页框分配响应提示给所述应用进程。
全文摘要
本发明提供了实现使用大容量高速缓存的内存管理方法及装置,其中方法包括以内存的物理页框为单位划分使用的高速缓存,并确定划分的高速缓存区域的映射条件。为并发应用进程分配符合高速缓存区域的映射条件的物理页框。本发明通过调整计算机操作系统虚拟存储管理机制中的页面分配策略,控制虚拟-物理地址转换的页表项的相应位,来划分高速缓存,以隔离并发运行的应用程序以及同一应用程序的不同内存区域对高速缓存的访问,从而减少不同内存页面映射到同一高速缓存区域所导致的冲突失效,达到对系统性能进行优化的目的。
文档编号G06F12/08GK102323909SQ20111026900
公开日2012年1月18日 申请日期2011年9月13日 优先权日2011年9月13日
发明者程旭, 管雪涛, 黄涛 申请人:北京北大众志微系统科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1