CN106326150B - 内存访问处理方法及装置 - Google Patents
内存访问处理方法及装置 Download PDFInfo
- Publication number
- CN106326150B CN106326150B CN201510366369.9A CN201510366369A CN106326150B CN 106326150 B CN106326150 B CN 106326150B CN 201510366369 A CN201510366369 A CN 201510366369A CN 106326150 B CN106326150 B CN 106326150B
- Authority
- CN
- China
- Prior art keywords
- memory
- interface function
- preset
- end area
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种内存访问处理方法,内存访问处理方法包括以下步骤:按照预置规则将内存区划分为低端区和高端区;在传输后备缓冲TLB表项中建立与低端区对应的固定TLB映射条目和与高端区对应的动态TLB映射条目;动态TLB映射条目用于根据预设的页表进行映射关系替换;接收到预设接口函数的访问内存请求时,根据固定TLB映射条目访问低端区的内存地址,根据动态TLB映射条目访问高端区的内存地址。本发明还公开了一种内存访问处理装置。本发明提高了系统的内存访问性能,减少了CPU的占用率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及内存访问处理方法及装置。
背景技术
众所周知,在64位计算机系统中,CPU支持的内存理论上最大可以达到2^64大小,然而作为实际页表缓存的TLB(Translation Lookaside Buffer,传输后备缓冲)映射条目却相对较少。因此内核在访问整个内存区的物理地址时,由于不同模块的对内存需求大小不同,造成地址访问会随机地分布在整个内存空间。这样在实际运行中,将不可避免的会发生大量的TLB miss异常,因此需要不断从页表中加载新的TLB表项完成虚实地址转换,从而导致内存访问的性能就会降低,且CPU的占用率较高。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种内存访问处理方法及装置,旨在提高系统的内存访问性能,减少CPU的占用率。
为实现上述目的,本发明提供的一种内存访问处理方法包括以下步骤:
按照预置规则将内存区划分为低端区和高端区;
在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
优选地,所述接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址,包括
接收到预设接口函数的访问内存请求时,根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否是低端区;
若是,则根据固定TLB映射条目访问所述低端区的内存地址;
若否,则根据所述动态TLB映射条目访问所述高端区的内存地址。
优选地,所述根据动态TLB映射条目访问所述高端区的内存地址之后还包括:
当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
优选地,所述按照预置规则将内存区划分为低端区和高端区包括:
在系统内存初始化时,将从所述内存区中预先设置的NORMAL区中划分一部分出来设定为所述高端区;将所述内存区中预先设置的DMA区和NORMAL区未划分出来的部分设定为所述低端区。
优选地,所述内存访问处理方法还包括:
预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
优选地,所述内存访问处理方法还包括:
预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应;所述第一接口函数的内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值。
此外,为实现上述目的,本发明还提供一种内存访问处理装置,所述内存访问处理装置包括:
区域划分模块,用于按照预置规则将内存区划分为低端区和高端区;
条目建立模块,用于在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
处理模块,用于接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
优选地,所述内存访问处理装置还包括:
加载模块,用于当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
所述处理模块,还用于根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
优选地,所述内存访问处理装置还包括:
第一预置模块,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
优选地,所述内存访问处理装置还包括:
第二预置模块,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应;所述第一接口函数的内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值。
本发明实施例通过将内存区划分为低端区和高端区,并且将TLB表项中设置固定TLB映射条目和动态TLB条目,在进行页表动态加载时仅替换TLB动态条目。因此在访问低端区时,可以直接根据固定TLB条目进行访问,从而减少TLB miss异常的发生概率,无需从不断页表中加载新的TLB表项,进而提高了系统的内存访问性能,减少了CPU的占用率。
附图说明
图1为本发明内存访问处理方法第一实施例的流程示意图;
图2为本发明内存访问处理方法一实施例中访问内存的细化流程示意图;
图3为本发明内存访问处理方法第二实施例的流程示意图;
图4为本发明内存访问处理方法第三实施例的流程示意图;
图5为本发明内存访问处理方法第四实施例的流程示意图;
图6为本发明内存访问处理装置第一实施例的功能模块示意图;
图7为图6中处理模块的细化功能结构示意图;
图8为本发明内存访问处理装置第二实施例的功能模块示意图;
图9为本发明内存访问处理装置第三实施例的功能模块示意图;
图10为本发明内存访问处理装置第四实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种内存访问处理方法,参照图1,在本发明内存访问处理方法第一实施例中,该内存访问处理方法包括以下步骤:
步骤S10,按照预置规则将内存区划分为低端区和高端区;
本发明实施例提供的内存访问处理方法主要应用于计算机系统中,用于对内存地址访问进行控制。具体地,上述内存划分的方式可以根据实际需要进行设置,在LINUX系统中,通常根据地址分为低端区(LOW区)和高端区(HIGH区)。例如,在系统内存初始化时,将从所述内存区中预先设置的NORMAL区中划分一部分出来设定为高端区;将所述内存区中预先设置的DMA区和NORMAL区未划分出来的部分设定为低端区。本实施例中上述预先设置的DMA区和NORMAL区为现有技术中内存区的划分结构,在现有技术中,通常将内存区划分为DMA区和NORMAL区。由于通过在原有NORMAL区中划分一部分出来的一访问区间作为高端区,因此可以兼顾32位DMA设备寻址需求。应当说明的是,高端区的起始地址可以根据系统中的实际内存和TLB映射条目确定。
步骤S20,在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
具体地,在本实施例中,TLB表项中存在多个TLB映射条目,用于在预设接口函数进行内存访问时,根据TLB映射条目访问内存区。该TLB映射条目包括固定TLB映射条目和动态TLB映射条目,其中固定TLB映射条目用于对高频度访问的低端内存区部分做线性固定映射不做替换;动态TLB映射条目用于低频度内存访问的动态替换加载,完成整个内存空间的映射。应当说明的是,上述预设的页表为内核页表swapper_pg_dir。动态TLB映射条目需要不断从页表中加载新的TLB表项(即TLB映射条目),以完成虚实地址转换。在本实施例中为了综合考虑CPU实际的动态位宽,相关地址的空间可以采用以下方式进行划分:
综合考虑CPU实际的动态位宽,相关地址空间安排如下:
低端区内存起始地址(物理地址):LOW_START=0x200000000
高端区内存起始地址(物理地址):HIGHMEM_START=0x300000000
内核线性起始地址(虚拟地址):MAP_BASE=0xc000000000000000
内核临时映射起始地址(虚拟地址):FIXADDR_START=0xc00000fffd7bc000,
内核永久映射映射起始地址(虚拟地址):PKMAP_BASE=0xc000008000000000。
步骤S30,接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
具体地,参照图2,本实施例中,上述步骤S30包括
步骤S31,接收到预设接口函数访问内存请求时,根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否低端区;若是,则执行步骤S32,若否,则执行步骤S33;
步骤S32,根据固定TLB映射条目访问所述低端区的内存地址;
步骤S33,根据所述动态TLB映射条目访问所述高端区的内存地址。
本实施例中,可以修改内核中对涉及内存访问的相关函数。把高频度访问接口固定在物理内存的低端区(NORMAL和DMA区)。内核中类似于kmalloc、kfree,get_free_page等相关一类的接口,内核使用频繁而且申请内存大小相对较少,直接限定在低端区操作。而对于内存访问频度较低但是内存需要大的接口需要通过高端区。例如文件映射和读写相关kmap kunmap kmap_atomic kunmap_atomic函数接口以及对系统保留内存访问接口。具体地,在接收到预设接口函数访问内存请求时,可以根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否为低端区。例如当上述预设访问地址区间属于低端区时,则可以直接根据固定TLB映射条目的映射关系访问低端区;当上述预设访问地址区间属于高端区时,则可以根据动态TLB映射条目的映射关系访问高端区。
本发明实施例通过将内存区划分为低端区和高端区,并且将TLB表项中设置固定TLB映射条目和动态TLB条目,在进行页表动态加载时仅替换TLB动态条目。因此在访问低端区时,可以直接根据固定TLB条目进行访问,从而减少TLB miss异常的发生概率,无需从不断页表中加载新的TLB表项,进而提高了系统的内存访问性能,减少了CPU的占用率。
进一步地,参照图3,基于本发明内存访问处理方法第一实施例,在本发明内存访问处理方法第二实施例中,步骤S33之后还包括:
步骤S40,当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
步骤S50,根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
具体地,在本实施例中,在接收到上述访问内存请求后,根据该内存访问请求访问高端区的内存地址时,若发现不存在该地址,将产生TLB miss异常,此时将根据该TLB miss异常重新加载所述预设的页表以替换所述动态TLB映射条目,以对动态TLB映射条目进行更新,保证可以根据上述访问内存请求访问到对应的内存地址。
可以理解的是,上述低端区和高端区对应的访问内存请求类型可以根据实际需要进行设置。优选地,可以将内存访问频度比较低的访问内存请求对应的接口函数的访问地址区间限定在高端区内,将内存访问频度比较高的访问内存请求对应的接口函数的访问地址区间限定在低端区内。
具体地,如图4所示,在本发明内存访问处理方法第三实施例中,上述内存访问处理方法还包括:
步骤S60,预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
进一步地,在内存充足的情况下还可以考虑访问内存请求对应的内存量,将缓存容量较小对应的接口函数的访问地址区间限定在低端区内。在本发明内存访问处理方法第四实施例中,与本发明内存访问处理方法第三实施例的区别在于上述步骤S60可以替换为步骤S70。具体地,如图5所示,在本发明内存访问处理方法第四实施例中,上述内存访问处理方法还包括:
步骤S70,预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应;所述第一接口函数的内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值。
在本实施例中,这样在处理最频繁访问内存空间接口函数时,由于不需要通过页表,访问速度很快。而一些使用频度比较低的函数访问内存区域时,会通过TLB miss异常,最终加载动态把页表内容加载到TLB中,完成虚实地址转换。由于这种低频度访问接口是根据内核运行情况统计后做的修改,实际使用密度低,对整体性能影响很小。
本发明还提供一种内存访问处理装置,参照图6,在本发明内存访问处理装置第一实施例中,该内存访问处理装置包括:
区域划分模块10,用于按照预置规则将内存区划分为低端区和高端区;
本发明实施例提供的内存访问处理装置主要应用于计算机系统中,用于对内存地址访问进行控制。具体地,上述内存划分的方式可以根据实际需要进行设置,在LINUX系统中,通常根据地址分为低端区(LOW区)和高端区(HIGH区)。例如,在系统内存初始化时,将从所述内存区中预先设置的NORMAL区中划分一部分出来设定为高端区;将所述内存区中预先设置的DMA区和NORMAL区未划分出来的部分设定为低端区。本实施例中上述预先设置的DMA区和NORMAL区为现有技术中内存区的划分结构,在现有技术中,通常将内存区划分为DMA区和NORMAL区。由于通过在原有NORMAL区中划分一部分出来的一访问区间作为高端区,因此可以兼顾32位DMA设备寻址需求。应当说明的是,高端区的起始地址可以根据系统中的实际内存和TLB映射条目确定。
条目建立模块20,用于在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
具体地,在本实施例中,TLB表项中存在多个TLB映射条目,用于在预设接口函数进行内存访问时,根据TLB映射条目访问内存区。该TLB映射条目包括固定TLB映射条目和动态TLB映射条目,其中固定TLB映射条目用于对高频度访问的低端内存区部分做线性固定映射不做替换;动态TLB映射条目用于低频度内存访问的动态替换加载,完成整个内存空间的映射。应当说明的是,上述预设的页表为内核页表swapper_pg_dir。动态TLB映射条目需要不断从页表中加载新的TLB表项(即TLB映射条目),以完成虚实地址转换。在本实施例中为了综合考虑CPU实际的动态位宽,相关地址的空间可以采用以下方式进行划分:
综合考虑CPU实际的动态位宽,相关地址空间安排如下:
低端区内存起始地址(物理地址):LOW_START=0x200000000
高端区内存起始地址(物理地址):HIGHMEM_START=0x300000000
内核线性起始地址(虚拟地址):MAP_BASE=0xc000000000000000
内核临时映射起始地址(虚拟地址):FIXADDR_START=0xc00000fffd7bc000,
内核永久映射映射起始地址(虚拟地址):PKMAP_BASE=0xc000008000000000。
处理模块30,用于接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
具体地,参照图7,上述处理模块30包括:
判断单元31,用于接收到预设接口函数的访问内存请求时,根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否是低端区;
处理单元32,用于当本次访问的内存区为低端区时,根据固定TLB映射条目访问所述低端区的内存地址;当本次访问的内存区为高端区时,根据所述动态TLB映射条目访问所述高端区的内存地址。
本实施例中,可以修改内核中对涉及内存访问的相关函数。把高频度访问接口固定在物理内存的低端区(NORMAL和DMA区)。内核中类似于kmalloc、kfree,get_free_page等相关一类的接口,内核使用频繁而且申请内存大小相对较少,直接限定在低端区操作。而对于内存访问频度较低但是内存需要大的接口需要通过高端区。例如文件映射和读写相关kmap kunmap kmap_atomic kunmap_atomic函数接口以及对系统保留内存访问接口。具体地,在接收到预设接口函数访问内存请求时,可以根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否为低端区。例如当上述预设访问地址区间属于低端区时,则可以直接根据固定TLB映射条目的映射关系访问低端区;当上述预设访问地址区间属于高端区时,则可以根据动态TLB映射条目的映射关系访问高端区。
本发明实施例通过将内存区划分为低端区和高端区,并且将TLB表项中设置固定TLB映射条目和动态TLB条目,在进行页表动态加载时仅替换TLB动态条目。因此在访问低端区时,可以直接根据固定TLB条目进行访问,从而减少TLB miss异常的发生概率,无需从不断页表中加载新的TLB表项,进而提高了系统的内存访问性能,减少CPU的占用率。
进一步地,参照图8,基于本发明内存访问处理装置第一实施例,在本发明内存访问处理装置第二实施例中,所述内存访问处理装置还包括:
加载模块40,用于当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
所述处理模块30,还用于根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
具体地,在本实施例中,在接收到上述访问内存请求后,根据该内存访问请求访问高端区的内存地址时,若发现不存在该地址,将产生TLB miss异常,此时将根据该TLB miss异常重新加载所述预设的页表以替换所述动态TLB映射条目,以对动态TLB映射条目进行更新,保证可以根据上述访问内存请求访问到对应的内存地址。
可以理解的是,上述低端区和高端区对应的访问内存请求类型可以根据实际需要进行设置。优选地,可以将内存访问频度比较低的访问内存请求对应的接口函数的访问地址区间限定在高端区内,将内存访问频度比较高的访问内存请求对应的接口函数的访问地址区间限定在低端区内。
具体地,如图9所示,在本发明内存访问处理装置第三实施例中,上述内存访问处理装置还包括:
第一预置模块50,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
进一步地,在内存充足的情况下还可以考虑访问内存请求对应的内存量,将缓存容量较小对应的接口函数的访问地址区间限定在低端区内。参照图10,在本发明内存访问处理装置第四实施例中,上述内存访问处理装置还包括:
第二预置模块60,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
在本实施例中,这样在处理最频繁访问内存空间接口函数时,由于不需要通过页表,访问速度很快。而一些使用频度比较低的函数访问内存区域时,会通过TLB miss异常,最终加载动态把页表内容加载到TLB中,完成虚实地址转换。由于这种低频度访问接口是根据内核运行情况统计后做的修改,实际使用密度低,对整体性能影响很小。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种内存访问处理方法,其特征在于,所述内存访问处理方法包括以下步骤:
按照预置规则将内存区划分为低端区和高端区;
在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
2.如权利要求1所述的内存访问处理方法,其特征在于,所述接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址,包括
接收到预设接口函数的访问内存请求时,根据所述访问内存请求的预设访问地址区间判断本次访问的内存区是否是低端区;
若是,则根据固定TLB映射条目访问所述低端区的内存地址;
若否,则根据所述动态TLB映射条目访问所述高端区的内存地址。
3.如权利要求2所述的内存访问处理方法,其特征在于,所述根据动态TLB映射条目访问所述高端区的内存地址之后还包括:
当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
4.如权利要求1所述的内存访问处理方法,其特征在于,所述按照预置规则将内存区划分为低端区和高端区包括:
在系统内存初始化时,将从所述内存区中预先设置的NORMAL区中划分一部分出来设定为所述高端区;将所述内存区中预先设置的DMA区和NORMAL区未划分出来的部分设定为所述低端区。
5.如权利要求1至4任一项所述的内存访问处理方法,其特征在于,所述内存访问处理方法还包括:
预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
6.如权利要求1至4任一项所述的内存访问处理方法,其特征在于,所述内存访问处理方法还包括:
预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应;所述第一接口函数的内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值。
7.一种内存访问处理装置,其特征在于,所述内存访问处理装置包括:
区域划分模块,用于按照预置规则将内存区划分为低端区和高端区;
条目建立模块,用于在传输后备缓冲TLB表项中建立与所述低端区对应的固定TLB映射条目和与所述高端区对应的动态TLB映射条目;所述动态TLB映射条目用于根据预设的页表进行映射关系替换;
处理模块,用于接收到预设接口函数的访问内存请求时,根据所述固定TLB映射条目访问所述低端区的内存地址,根据所述动态TLB映射条目访问所述高端区的内存地址。
8.如权利要求7所述的内存访问处理装置,其特征在于,所述内存访问处理装置还包括:
加载模块,用于当访问的内存地址不在所述TLB表项中时,重新加载所述预设的页表以替换所述动态TLB映射条目;
所述处理模块,还用于根据替换后的动态TLB映射条目重新访问所述高端区的内存地址。
9.如权利要求7至8任一项所述的内存访问处理装置,其特征在于,所述内存访问处理装置还包括:
第一预置模块,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中内存访问频度小于第一预设值的第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应。
10.如权利要求7至8任一项所述的内存访问处理装置,其特征在于,所述内存访问处理装置还包括:
第二预置模块,用于预置所述预设接口函数与访问地址区间的对应关系,以使所述预设接口函数中第一接口函数与属于高端区的访问地址区间对应,且所述预设接口函数中非第一接口函数的第二接口函数与属于低端区的访问地址区间对应;所述第一接口函数的内存访问频度小于第一预设值且访问内存请求对应的内存量大于第二预设值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510366369.9A CN106326150B (zh) | 2015-06-26 | 2015-06-26 | 内存访问处理方法及装置 |
PCT/CN2016/077238 WO2016206421A1 (zh) | 2015-06-26 | 2016-03-24 | 内存访问处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510366369.9A CN106326150B (zh) | 2015-06-26 | 2015-06-26 | 内存访问处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326150A CN106326150A (zh) | 2017-01-11 |
CN106326150B true CN106326150B (zh) | 2020-09-15 |
Family
ID=57586102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510366369.9A Active CN106326150B (zh) | 2015-06-26 | 2015-06-26 | 内存访问处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106326150B (zh) |
WO (1) | WO2016206421A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753241B (zh) * | 2018-12-05 | 2022-04-08 | 新华三技术有限公司合肥分公司 | 固态硬盘的数据写入方法及装置、计算机可读存储介质 |
CN115168247B (zh) * | 2022-09-02 | 2022-12-02 | 北京登临科技有限公司 | 用于并行处理器中动态共享存储空间的方法及相应处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512352A (zh) * | 2002-10-10 | 2004-07-14 | 国际商业机器公司 | 用于虚拟存储器的管理的方法和分析高速缓存 |
CN101292228A (zh) * | 2005-08-23 | 2008-10-22 | 高通股份有限公司 | 转换后备缓冲器的锁定指示符 |
EP2562713A1 (de) * | 2011-04-11 | 2013-02-27 | Bernd Burgmaier | Endgerät zur Aufnahme und Aufbereitung von Daten zur Bestimmung von steuerlichen Pflichten einer leistenden Person |
CN103282890A (zh) * | 2011-01-12 | 2013-09-04 | 松下电器产业株式会社 | 程序执行装置以及编译器系统 |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470667A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | Linux系统平台上指定地址范围分配物理内存的方法 |
US8639858B2 (en) * | 2010-06-23 | 2014-01-28 | International Business Machines Corporation | Resizing address spaces concurrent to accessing the address spaces |
US9684601B2 (en) * | 2012-05-10 | 2017-06-20 | Arm Limited | Data processing apparatus having cache and translation lookaside buffer |
EP2972896B1 (en) * | 2013-03-15 | 2018-05-02 | Intel Corporation | Mechanism for facilitating dynamic and efficient management of translation buffer prefetching in software programs at computing systems |
CN103793332B (zh) * | 2014-02-28 | 2017-03-01 | 中国科学院微电子研究所 | 基于内存的数据存储方法、装置、处理器和电子设备 |
-
2015
- 2015-06-26 CN CN201510366369.9A patent/CN106326150B/zh active Active
-
2016
- 2016-03-24 WO PCT/CN2016/077238 patent/WO2016206421A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512352A (zh) * | 2002-10-10 | 2004-07-14 | 国际商业机器公司 | 用于虚拟存储器的管理的方法和分析高速缓存 |
CN101292228A (zh) * | 2005-08-23 | 2008-10-22 | 高通股份有限公司 | 转换后备缓冲器的锁定指示符 |
CN103282890A (zh) * | 2011-01-12 | 2013-09-04 | 松下电器产业株式会社 | 程序执行装置以及编译器系统 |
EP2562713A1 (de) * | 2011-04-11 | 2013-02-27 | Bernd Burgmaier | Endgerät zur Aufnahme und Aufbereitung von Daten zur Bestimmung von steuerlichen Pflichten einer leistenden Person |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016206421A1 (zh) | 2016-12-29 |
CN106326150A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7149872B2 (en) | System and method for identifying TLB entries associated with a physical address of a specified range | |
US11853226B2 (en) | Address translation cache with use of page size information to select an invalidation lookup mode, or use of leaf-and-intermediate exclusive range-specifying invalidation request, or use of invalidation request specifying single address and page size information | |
US8453015B2 (en) | Memory allocation for crash dump | |
US6012132A (en) | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table | |
US20150339228A1 (en) | Memory controllers employing memory capacity compression, and related processor-based systems and methods | |
US20140040529A1 (en) | Translation table control | |
US7290114B2 (en) | Sharing data in a user virtual address range with a kernel virtual address range | |
US20170308297A1 (en) | Object tagged memory monitoring method and processing apparatus | |
EP2936322B1 (en) | Processing device with address translation probing and methods | |
US10241925B2 (en) | Selecting a default page size in a variable page size TLB | |
US6330654B1 (en) | Memory cache with sequential page indicators | |
EP3163451B1 (en) | Memory management method and device, and memory controller | |
CN107667355B (zh) | 一种用于提供分区的转换高速缓存器的方法及其设备 | |
US9875191B2 (en) | Electronic device having scratchpad memory and management method for scratchpad memory | |
US11232042B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
US7117337B2 (en) | Apparatus and method for providing pre-translated segments for page translations in segmented operating systems | |
CN106326150B (zh) | 内存访问处理方法及装置 | |
CN109983538B (zh) | 存储地址转换 | |
US10503658B2 (en) | Page migration with varying granularity | |
US7225313B2 (en) | Demotion of memory pages to largest possible sizes | |
US9483412B2 (en) | Method and apparatus for reformatting page table entries for cache storage | |
US7107431B2 (en) | Apparatus and method for lazy segment promotion for pre-translated segments | |
US5913228A (en) | Method and apparatus for caching discontiguous address spaces with short cache tags | |
US9892055B2 (en) | Embedded device and memory management method thereof | |
JP2024510127A (ja) | ページ再マッピングおよびローテーションによるアドレス空間配置のランダム化エントロピーの増大 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |