CN108491334B - 一种嵌入式实时系统的物理内存管理方法及装置 - Google Patents
一种嵌入式实时系统的物理内存管理方法及装置 Download PDFInfo
- Publication number
- CN108491334B CN108491334B CN201810190693.3A CN201810190693A CN108491334B CN 108491334 B CN108491334 B CN 108491334B CN 201810190693 A CN201810190693 A CN 201810190693A CN 108491334 B CN108491334 B CN 108491334B
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- virtual address
- application
- physical
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
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表项和第二运行内存的虚拟地址,从而管理待运行应用在第二运行内存中运行。可见,在MIPS架构的核心态下,该方法通过对第二运行内存做地址映射关系的转换,以及对待运行应用的当前运行地址的地址更新,实现在核心态下管理较大的物理空间,克服了现有技术只能访问较小内存空间的问题。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种嵌入式实时系统的物理内存管理方法及装置。
背景技术
随着科技的发展,计算机、手机、平板电脑等电子设备应用范围越来越广泛,目前,电子设备中基于无互锁流水线级的微处理器(Million Instructions Per Second,MIPS)的CPU可以运行在用户态和核心态的两种优先级别上。以龙芯的32位CPU为例,程序地址空间划分为4个大区域:kuseg、kseg0、kseg1和kseg2,如图1所示。
kuseg:虚拟空间0x00000000-0x7FFFFFFF(低端2G)为用户态可用的地址。在电子设备存有内存管理单元(Memory Management Unit,MMU)时,该段地址需要被MMU作映射(或称转换),否则这2G地址是不可用的。
kseg0:虚拟空间0x80000000-0x9FFFFFFF(512M)用于通过把最高位清零的方法来映射到相应的物理地址,然后映射到物理地址低段512M(0x00000000-0x1FFFFFFF)。对这段地址的存取都会通过高速缓冲存储器(cache)来实现。因此在cache设置好之前,不能随便使用这段地址。通常一个没有MMU的系统会使用这段地址作为其绝大多数程序和数据的存放位置。
kseg1:虚拟空间0xA0000000-0xBFFFFFFF(512M)用于通过把最高3位清零的方法来映射到相应的物理地址上,与kseg0映射的物理地址一样。但与kseg0不一样的是kseg1是非cache存取的。
kseg2:虚拟空间为0xC0000000-0xFFFFFFFF(1G),这段地址空间只能在核心态下使用,并且要经过MMU的转换。在MMU设置好之前,不能存取这段区域。
可见,MIPS结构下的CPU中不经过MMU转换的区域只有kseg0和kseg1的512M的大小,而且这两个内存窗口映射到同一512M的物理地址空间。
然而,目前电子设备在核心态下运行的应用越来越大,尤其是在实时系统上运行图形应用,对内存的要求越来越高,现有技术支持的物理内存管理空间已经不能满足要求,使电子设备在使用过程中普遍都会出现内存不足的问题。
发明内容
本申请实施例提供一种嵌入式实时系统的物理内存管理方法及装置,通过地址转换和地址更换,在核心态下解决了现有技术能够访问的物理内存空间小的问题。
第一方面,提供了一种嵌入式实时系统的物理内存管理方法,该方法的执行主体为内存管理装置,该方法可以包括:
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,第二运行内存为虚拟地址需要被MMU做地址转换的内存,预设地址转换规则包括实际内存的实际物理地址和预设偏移地址;
基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新转换检测缓冲器TLB表项和第二运行内存的虚拟地址,新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
基于第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新TLB表项和第二运行内存的虚拟地址,包括:
将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项。
基于预设的地址更新函数和获取的第二运行内存的虚拟地址与物理地址的映射关系,将运行待运行应用的当前虚拟地址更新为第二运行内存的相应的虚拟地址;
基于更新后的第二运行内存的相应的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,在基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,该方法还包括:
将输入的待运行应用的运行信息存储在第二运行内存中,运行信息包括所述待运行应用的程序代码和数据;
基于更新后的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行,包括:
基于更新后的虚拟地址、新TLB表项中的虚拟地址与物理地址的映射关系和运行信息,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,预设地址映射规则为:将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;或者,将实际内存的实际物理地址与预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
在一个可选的实现中,在基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,该方法还包括:
清除所述待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到待运行应用对应的空TLB表项;
将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项,包括:
将获取的第二运行内存的虚拟地址与物理地址的映射关系填充空TLB表项,得到待运行应用对应的新TLB表项。
第二方面,提供了一种物理内存管理装置,该装置可以包括:
获取单元,用于当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,第二运行内存为虚拟地址需要被所述MMU做地址转换的内存,预设地址转换规则包括实际内存的实际物理地址和预设偏移地址;
基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新TLB表项和第二运行内存的虚拟地址,新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
管理单元,用于基于第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,该装置还包括更新单元;
更新单元,用于将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项。
更新单元,还用于基于预设的地址更新函数和获取的第二运行内存的虚拟地址与物理地址的映射关系,将运行待运行应用的当前虚拟地址更新为第二运行内存的相应的虚拟地址;
管理单元,具体用于基于更新后的第二运行内存的相应的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,该装置还可以包括存储单元;
存储单元,用于在获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,将输入的待运行应用的运行信息存储在第二运行内存中,运行信息包括待运行应用的程序代码和数据;
运行单元,具体用于基于更新后的虚拟地址、新TLB表项中的虚拟地址与物理地址的映射关系和运行信息,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,预设地址映射规则为:将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;
或者,将实际内存的实际物理地址与预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
在一个可选的实现中,该装置还可以包括清除单元;
清除单元,用于在获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,清除所述待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到待运行应用对应的空TLB表项;
更新单元,具体用于将获取的第二运行内存的虚拟地址与物理地址的映射关系填充空TLB表项,得到待运行应用对应的新TLB表项。
第三方面,提供了一种电子设备,该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实上述第一方面中任一项所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一所述的方法步骤。
该方法在获取到预将待运行应用在不需要被内存管理单元MMU做地址转换的第一运行内存中运行的指示待运行应用的物理内存不足的物理内存指示信息后,基于预设地址转换规则,获取需要被MMU做地址转换的第二运行内存的虚拟地址与物理地址的映射关系;基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新TLB表项和第二运行内存的虚拟地址;基于第二运行内存的相应的虚拟地址和新TLB表项管理待运行应用在第二运行内存中运行。可见,在MIPS架构的核心态下,该方法通过对第二运行内存做地址映射关系的转换,以及对待运行应用的当前运行地址的地址更新,实现了对物理内存空间的扩大管理。
附图说明
图1为本发明实施例提供的一种处理器的存储结构示意图;
图2为本发明实施例提供的一种嵌入式实时系统的物理内存管理方法的流程示意图;
图3为本发明实施例提供的另一种嵌入式实时系统的物理内存管理方法的流程示意图;
图4为本发明实施例提供的一种物理内存管理装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明实施例提供的嵌入式实时系统的物理内存管理方法可以应用在处理器(如龙芯处理器)中的物理内存管理装置上,该处理器可以在服务器中上,也可以在终端上。终端可以是用户设备(User Equipment,UE)、具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等。
针对MIPS架构的处理器在核心态下,本发明实施例提供的嵌入式实时系统的物理内存管理方法可以通过在获取待运行应用在第一运行内存中的运行配置信息后,检测物理内存指示信息,其中,物理内存指示信息为指示运行待运行应用所需的物理内存是否充足的信息(如是否需要管理大于512M内存)。当检测到物理内存指示信息指示运行待运行应用所需要的物理内存不足时,对第二运行内存做地址映射关系的转换,以及对待运行应用的当前运行地址的地址更新,使待运行应用运行在第二运行内存中,其中,第一运行内存为虚拟地址不需要被MMU做地址转换的内存,第二运行内存为虚拟地址需要被MMU做地址转换的内存,且第二运行内存的内存空间大于第一运行内存的内存空间,从而解决了现有技术中访问的物理内存空间小的问题。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图2为本发明实施例提供的一种嵌入式实时系统的物理内存管理方法的流程示意图。该方法的执行主体为内存管理装置,如图2所示,在MIPS架构的核心态下,该嵌入式实时系统的物理内存管理方法在获取待运行应用在第一运行内存中的物理内存指示信息后,该方法可以包括:
步骤210、当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系。
其中,待运行应用可以理解为是在整个操作系统中等待运行的操作系统。第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存区域,如kseg0。
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存充足时,基于当前TLB表项,在第一运行内存中运行待运行应用。
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足(如需要管理512M以上的内存)时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系。预设地址转换规则可以根据实际情况进行自定义,本发明实施例在此不做限定。
步骤220、基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新转换检测缓冲器TLB表项和第二运行内存的虚拟地址。
转换检测缓冲器(Translation Lookaside Buffer,TLB)表项是MMU中的一种硬件cache,TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息,预设访问信息为预置的允许指定对象访问的信息。
将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项。
步骤230、基于第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
基于预设的地址更新函数,将运行待运行应用的当前虚拟地址更新为第二运行内存的相应的虚拟地址;
基于更新后的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
可见,在MIPS架构的核心态下,该方法通过对第二运行内存做地址映射关系的转换,以及对待运行应用的当前运行地址的地址更新,解决了现有技术中访问的物理内存空间小的问题。
下面将对嵌入式实时系统的物理内存管理方法进行详细介绍。图3为本发明实施例提供的另一种嵌入式实时系统的物理内存管理方法的流程示意图。该方法的执行主体为内存管理装置,如图3所示,该方法可以包括:
步骤310、当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系。
在执行该步骤之前,处理器上电启动,处理器的基本输入输出系统(Basic InputOutput System,如BIOS)进行初始化,然后BIOS开始施行开机自我检测(Power-On SelfTest,POST),在该过程中检查电子设备各项组件及其状态,如CPU、键盘、鼠标等状态,以及执行内建在BIOS内部的显示卡程序。之后BIOS将电子设备的开机程序引入第一运行内存中。
处理器启动后,当检测到物理内存指示信息指示待运行应用的物理内存不足(如需要管理512M以上物理内存)时,基于预设地址转换规则,内存管理装置获取第二运行内存的虚拟地址与物理地址的映射关系,第二运行内存为虚拟地址需要被MMU做地址转换的内存。
第一运行内存为处理器中不需要被内存管理单元MMU做地址转换的内存,如图1中的kseg0或kseg1,其中,kseg0可以通过cache来实现对这段内存地址的存取,kseg1不可以通过cache实现对这段内存地址的存取。
适配人员将处理器的第一运行内存与待运行应用进行适配,得到运行配置信息,运行配置信息为预先配置的使待运行应用正常运行的信息,并将运行配置信息输入至内存管理装置,以使内存管理装置获取该运行配置信息。该运行配置信息包括物理内存指示信息。
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系。
可选地,预设地址转换规则包括实际内存的实际物理地址(如adrs)和预设偏移地址。
预设地址转换规则为:将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址,即“adrs=adrs”;
或者,将实际内存的实际物理地址与预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址,即“adrs=adrs|预设偏移地址”;
可见,基于预设地址转换规则和物理内存的实际物理地址可以得到第二内存的虚拟地址对应的映射的物理地址。以龙芯处理器为例,地址映射过程可以如表1所示。
表1
从表1可知,基于“adrs=adrs”的预设地址转换规则,物理内存在[0,0x0FFFFFFF]间的实际物理地址与第二内存的虚拟地址对应的需映射的物理地址相同,即第二运行内存的虚拟地址映射的物理地址为[0,0x0FFFFFFF];
当预设偏移地址为0x80000000时,基于“adrs=adrs|预设偏移地址”的预设地址转换规则,物理内存[0xD0000000,0xFFFFFFFF]间的实际物理地址与0x80000000的预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址为[0x90000000,0xBFFFFFFF]。其中,预设偏移地址可根据实际物理地址和第二运行内存为虚拟地址的映射关系确定,也可以由技术人员自定义取值。
可选地,在基于预设地址转换规则,内存管理装置获取第二运行内存的虚拟地址与物理地址的映射关系之前,清除待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到待运行应用对应的空TLB表项。
结合表1所示,TLB表项中的虚拟地址与物理地址的映射关系可以是表1中的虚拟地址与映射的物理地址的对应关系。
步骤320、将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项和第二运行内存的虚拟地址。
TLB表项是MMU中的一种硬件cache,用于缓存虚拟地址与物理地址的映射关系。
若TLB表项未清空,则将获取的第二运行内存的虚拟地址与物理地址的映射关系覆盖当前TLB表项,得到待运行应用对应的新TLB表项;
若TLB表项被清空,则将获取的第二运行内存的虚拟地址与物理地址的映射关系填充所述空TLB表项,得到待运行应用对应的新TLB表项。
步骤330、基于预设的地址更新函数,将第一运行内存的虚拟地址更新为第二运行内存的相应的虚拟地址。
基于预设的地址更新函数和第二运行内存的虚拟地址与物理地址的映射关系中的第二运行内存的虚拟地址,将第一运行内存的初始虚拟地址更新为第二运行内存的初始虚拟地址,将第一运行内存的初始虚拟地址的下一个虚拟地址更新为第二运行内存的初始虚拟地址的下一个虚拟地址,以此类推,直至将第一运行内存的虚拟地址全部更新为第二运行内存的虚拟地址。
可见,该方法通过对第一运行内存与第二运行内存做虚拟地址转换,以及对待运行应用的运行地址更新为第二运行内存的虚拟地址后,相比于现有技术扩大了待运行应用能访问的物理内存空间,即在核心态下解决了现有技术能够访问的物理内存空间小的问题。
可选地,在将第一运行内存的虚拟地址更新为第二运行内存的虚拟地址之后,可以通过弹出提示框的方式,向用户展示提示信息,该提示信息用于提示待运行应用运行在第二运行内存内。
步骤340、基于更新后的第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在执行该步骤之前,内存管理装置将输入的待运行应用的运行信息存储在第二运行内存中,该运行信息可以包括待运行应用的程序代码和数据。
内存管理装置基于更新后的虚拟地址、新TLB表项中的虚拟地址与物理地址的映射关系和存储在第二运行内存中的运行信息,管理待运行应用在第二运行内存中运行。
在一个例子中,以内存管理装置在龙芯处理器中为例,内存管理装置获取到预将待运行应用在kseg0中运行的指示物理内存不足的物理内存指示信息,之后内存管理装置将输入的待运行应用的运行信息存储在kseg2中。
结合表1所示的预设地址转换规则,获取kseg2的虚拟地址与物理地址的映射关系:虚拟地址[0xC0000000,0xCFFFFFFF]与映射的物理地址[0,0x0FFFFFFF]一一对应,共256M空间,虚拟地址[0xD0000000,0xFFFFFFFF]与映射的物理地址[0x90000000,0xBFFFFFFF]一一对应,共768M空间。
内存管理装置将获取的上述映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项,即新TLB表项中包括kseg2的虚拟地址与物理地址的映射关系。再基于预设的地址更新函数和第二运行内存的虚拟地址与物理地址的映射关系中的第二运行内存的虚拟地址,将kseg0的虚拟地址更新为kseg2的相应的虚拟地址。最后,内存管理装置基于更新后的所述虚拟地址、新TLB表项,管理待运行应用在kseg2中运行,即待运行应用在运行期间,内存管理装置此时可以管理1G的内存空间,与现有技术相比扩大了512M内存空间。
该方法在获取到预将待运行应用在不需要被内存管理单元MMU做地址转换的第一运行内存中运行的指示待运行应用的物理内存不足的物理内存指示信息后,基于预设地址转换规则,获取需要被MMU做地址转换的第二运行内存的虚拟地址与物理地址的映射关系;将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项;基于预设的地址更新函数,将第一运行内存的虚拟地址更新为第二运行内存的相应的虚拟地址,从而在第二运行内存中运行该待运行应用。可见,在MIPS架构的核心态下,该方法通过对第二运行内存做地址映射关系的转换,以及对待运行应用的当前运行地址的地址更新,实现在核心态下管理较大的物理空间,即实现了对物理内存空间的扩大管理。
与上述方法对应的,本发明实施例还提供一种内存管理装置,如图4所示,该内存管理装置可以包括:获取单元410和管理单元420。
获取单元410,用于当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,第二运行内存为虚拟地址需要被所述MMU做地址转换的内存;
基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新TLB表项和第二运行内存的虚拟地址,新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
管理单元420,用于基于第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
可选地,该装置还包括更新单元430;
更新单元430,用于将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项;
基于预设的地址更新函数和获取的第二运行内存的虚拟地址与物理地址的映射关系,将运行待运行应用的当前虚拟地址更新为第二运行内存的相应的虚拟地址;
管理单元420,具体用于基于更新后的第二运行内存的相应的虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
可选地,该装置还可以包括存储单元440;
存储单元440,用于在获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,将待运行应用的运行信息存储在第二运行内存中,运行信息包括待运行应用的程序代码和数据;
管理单元420,具体用于基于更新后的虚拟地址、新TLB表项中的虚拟地址与物理地址的映射关系和运行信息,管理待运行应用在第二运行内存中运行。
可选地,预设地址映射规则为:将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;
或者,将实际内存的实际物理地址与预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
可选地,该装置还可以包括清除单元450;
清除单元450,用于在获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,清除当前TLB表项中虚拟地址与物理地址的映射关系,得到待运行应用对应的空TLB表项;
更新单元430,具体用于将获取的第二运行内存的虚拟地址与物理地址的映射关系填充空TLB表项,得到待运行应用对应的新TLB表项。
可选地,管理单元420,还用于当物理内存指示信息指示待运行应用的物理内存充足时,基于当前TLB表项,在第一运行内存中运行所述待运行应用。
可选地,该装置还可以包括展示单元460;
展示单元460,用于在更新单元将第一运行内存的虚拟地址更新为第二运行内存的虚拟地址之后,向用户展示提示信息,提示信息用于提示待运行应用运行在第二运行内存内。
本发明上述实施例提供的内存管理装置的各功能单元的功能,可以通过上述各方法步骤来实现,因此,本发明实施例提供的内存管理装置中的各个单元的具体工作过程和有益效果,在此不复赘述。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。
存储器530,用于存放计算机程序;
处理器510,用于执行存储器530上所存储的程序时,实现如下步骤:
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,第二运行内存为虚拟地址需要被MMU做地址转换的内存,预设地址转换规则包括实际内存的实际物理地址和预设偏移地址;
基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新转换检测缓冲器TLB表项和第二运行内存的虚拟地址,新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
基于第二运行内存的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
可选地,基于获取的第二运行内存的虚拟地址与物理地址的映射关系,获取待运行应用对应的新TLB表项和第二运行内存的虚拟地址,包括:
将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项。
基于预设的地址更新函数和获取的第二运行内存的虚拟地址与物理地址的映射关系,将运行待运行应用的当前虚拟地址更新为第二运行内存的相应的虚拟地址;
基于更新后的第二运行内存的相应的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行。
在一个可选的实现中,在基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,该方法还包括:
将输入的待运行应用的运行信息存储在第二运行内存中,运行信息包括所述待运行应用的程序代码和数据;
基于更新后的虚拟地址和新TLB表项中的虚拟地址与物理地址的映射关系,管理待运行应用在第二运行内存中运行,包括:
基于更新后的虚拟地址、新TLB表项中的虚拟地址与物理地址的映射关系和运行信息,管理待运行应用在第二运行内存中运行。
可选地,预设地址映射规则为:将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;
或者,将实际内存的实际物理地址与预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
可选地,在基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,该方法还包括:
清除所述待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到待运行应用对应的空TLB表项;
将获取的第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到待运行应用对应的新TLB表项,包括:
将获取的第二运行内存的虚拟地址与物理地址的映射关系填充空TLB表项,得到待运行应用对应的新TLB表项。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由于上述实施例中的电子设备的各器件解决问题的实施方式以及有益效果可以参见图2或图3所示的实施例中的各步骤来实现,因此,本发明实施例提供的电子设备的具体工作过程和有益效果,在此不复赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的内存管理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的内存管理方法。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。
Claims (12)
1.一种嵌入式实时系统的物理内存管理方法,其特征在于,应用与处于核心态的MIPS架构的处理器中,所述方法包括:
当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,所述第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,所述第二运行内存为虚拟地址需要被所述MMU做地址转换的内存,预设地址转换规则包括实际内存的实际物理地址和预设偏移地址;
基于获取的所述第二运行内存的虚拟地址与物理地址的映射关系,获取所述待运行应用对应的新转换检测缓冲器TLB表项和第二运行内存的虚拟地址,所述新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
基于所述第二运行内存的虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理所述待运行应用在所述第二运行内存中运行。
2.如权利要求1所述的方法,其特征在于,所述基于获取的所述第二运行内存的虚拟地址与物理地址的映射关系,获取所述待运行应用对应的新TLB表项和第二运行内存的虚拟地址,包括:
将获取的所述第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到所述待运行应用对应的所述新TLB表项;
基于预设的地址更新函数和获取的所述第二运行内存的虚拟地址与物理地址的映射关系,将运行所述待运行应用的当前虚拟地址更新为所述第二运行内存的相应的虚拟地址;
基于更新后的所述第二运行内存的相应的虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理所述待运行应用在所述第二运行内存中运行。
3.如权利要求1所述的方法,其特征在于,在所述基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,所述方法还包括:
将输入的待运行应用的运行信息存储在第二运行内存中,所述运行信息包括所述待运行应用的程序代码和数据;
基于更新后的所述虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理所述待运行应用在所述第二运行内存中运行,包括:
基于更新后的所述虚拟地址、所述新TLB表项中的虚拟地址与物理地址的映射关系和所述运行信息,管理所述待运行应用在所述第二运行内存中运行。
4.如权利要求1所述的方法,其特征在于,所述预设地址转换规则为:
将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;
或者,将实际内存的实际物理地址与所述预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
5.如权利要求2所述的方法,其特征在于,在所述基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,所述方法还包括:
清除所述待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到所述待运行应用对应的空TLB表项;
所述将获取的所述第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到所述待运行应用对应的新TLB表项,包括:
将获取的所述第二运行内存的虚拟地址与物理地址的映射关系填充所述空TLB表项,得到所述待运行应用对应的新TLB表项。
6.一种物理内存管理装置,其特征在于,应用与处于核心态的MIPS架构的处理器中,所述装置包括:
获取单元,用于当物理内存指示信息指示待运行应用在第一运行内存运行所需的物理内存不足时,基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系,所述第一运行内存为虚拟地址不需要被内存管理单元MMU做地址转换的内存,所述第二运行内存为虚拟地址需要被所述MMU做地址转换的内存,预设地址转换规则包括实际内存的实际物理地址和预设偏移地址;
基于获取的所述第二运行内存的虚拟地址与物理地址的映射关系,获取所述待运行应用对应的新TLB表项和第二运行内存的虚拟地址,所述新TLB表项包括虚拟地址与物理地址的映射关系和预设访问信息;
管理单元,用于基于所述第二运行内存的虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理所述待运行应用在所述第二运行内存中运行。
7.如权利要求6所述的装置,其特征在于,所述装置还包括更新单元;
所述更新单元,用于将获取的所述第二运行内存的虚拟地址与物理地址的映射关系更新当前TLB表项,得到所述待运行应用对应的新TLB表项;
所述更新单元,还用于基于预设的地址更新函数和所述获取的所述第二运行内存的虚拟地址与物理地址的映射关系,将运行所述待运行应用的当前虚拟地址更新为所述第二运行内存的相应的虚拟地址;
所述管理单元,具体用于基于更新后的所述第二运行内存的相应的虚拟地址和所述新TLB表项中的虚拟地址与物理地址的映射关系,管理所述待运行应用在所述第二运行内存中运行。
8.如权利要求6所述的装置,其特征在于,所述装置还包括存储单元;
所述存储单元,用于在所述获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,将输入的待运行应用的运行信息存储在第二运行内存中,所述运行信息包括所述待运行应用的程序代码和数据;
所述管理单元,具体用于基于更新后的所述虚拟地址、所述新TLB表项中的虚拟地址与物理地址的映射关系和所述运行信息,管理所述待运行应用在所述第二运行内存中运行。
9.如权利要求6所述的装置,其特征在于,所述预设地址转换规则为:
将实际内存的实际物理地址作为第二运行内存的虚拟地址映射的物理地址;
或者,将实际内存的实际物理地址与所述预设偏移地址取或运算,得到第二运行内存的虚拟地址映射的物理地址。
10.如权利要求7所述的装置,其特征在于,所述装置还包括清除单元;
所述清除单元,用于在所述获取单元基于预设地址转换规则,获取第二运行内存的虚拟地址与物理地址的映射关系之前,清除所述待运行应用对应的当前TLB表项中虚拟地址与物理地址的映射关系,得到所述待运行应用对应的空TLB表项;
所述更新单元,具体用于将获取的所述第二运行内存的虚拟地址与物理地址的映射关系填充所述空TLB表项,得到所述待运行应用对应的新TLB表项。
11.一种电子设备,其特征在于,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存储的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810190693.3A CN108491334B (zh) | 2018-03-08 | 2018-03-08 | 一种嵌入式实时系统的物理内存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810190693.3A CN108491334B (zh) | 2018-03-08 | 2018-03-08 | 一种嵌入式实时系统的物理内存管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491334A CN108491334A (zh) | 2018-09-04 |
CN108491334B true CN108491334B (zh) | 2020-10-23 |
Family
ID=63338174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810190693.3A Active CN108491334B (zh) | 2018-03-08 | 2018-03-08 | 一种嵌入式实时系统的物理内存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491334B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110119132B (zh) * | 2019-04-09 | 2023-01-24 | 吴怡文 | 一种控制器实现功能设定多样化的方法和系统 |
CN110287131B (zh) * | 2019-07-01 | 2021-08-20 | 潍柴动力股份有限公司 | 一种内存管理方法及装置 |
CN111026554B (zh) * | 2019-12-17 | 2023-05-02 | 山东省计算中心(国家超级计算济南中心) | 一种XenServer系统物理内存分析方法及系统 |
CN115004158A (zh) * | 2020-01-30 | 2022-09-02 | 华为技术有限公司 | 在多核处理器上执行扩展集中的处理器指令的设备、方法和计算机程序 |
CN111274040B (zh) * | 2020-02-18 | 2023-04-07 | 北京和利时控制技术有限公司 | 一种内存管理方法和装置 |
CN114546897A (zh) * | 2020-11-26 | 2022-05-27 | 龙芯中科技术股份有限公司 | 内存访问方法、装置、电子设备及存储介质 |
CN112698715B (zh) * | 2020-12-17 | 2023-07-04 | 北京科银京成技术有限公司 | 一种执行控制方法、装置、嵌入式系统、设备及介质 |
CN113806251B (zh) * | 2021-11-19 | 2022-02-22 | 沐曦集成电路(上海)有限公司 | 一种共享内存管理单元的系统及搭建方法、内存访问方法 |
CN115640241B (zh) * | 2022-10-08 | 2023-06-09 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
CN116156258A (zh) * | 2022-12-07 | 2023-05-23 | 深圳创维-Rgb电子有限公司 | 应用运行方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866958A (zh) * | 2012-09-07 | 2013-01-09 | 北京君正集成电路股份有限公司 | 一种离散内存访问的方法及装置 |
WO2015161506A1 (zh) * | 2014-04-25 | 2015-10-29 | 华为技术有限公司 | 一种寻址方法及装置 |
CN106708752A (zh) * | 2016-11-22 | 2017-05-24 | 迈普通信技术股份有限公司 | 内存预留方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156309B2 (en) * | 2007-10-18 | 2012-04-10 | Cisco Technology, Inc. | Translation look-aside buffer with variable page sizes |
-
2018
- 2018-03-08 CN CN201810190693.3A patent/CN108491334B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866958A (zh) * | 2012-09-07 | 2013-01-09 | 北京君正集成电路股份有限公司 | 一种离散内存访问的方法及装置 |
WO2015161506A1 (zh) * | 2014-04-25 | 2015-10-29 | 华为技术有限公司 | 一种寻址方法及装置 |
CN106708752A (zh) * | 2016-11-22 | 2017-05-24 | 迈普通信技术股份有限公司 | 内存预留方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108491334A (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491334B (zh) | 一种嵌入式实时系统的物理内存管理方法及装置 | |
US11599270B2 (en) | Virtualized-in-hardware input output memory management | |
CN103221995B (zh) | 显示管中的流翻译 | |
US6968547B2 (en) | Dynamic trap table interposition for efficient collection of trap statistics | |
EP2993586A1 (en) | Cross-page prefetching method, device and system | |
US9734083B2 (en) | Separate memory address translations for instruction fetches and data accesses | |
US9495302B2 (en) | Virtualization of memory for programmable logic | |
US10114760B2 (en) | Method and system for implementing multi-stage translation of virtual addresses | |
EP3120239A1 (en) | Common boot sequence for control utility able to be initialized in multiple architectures | |
JP2013521570A (ja) | ガーベッジコレクションに対するcpuサポート | |
US20200257631A1 (en) | Caching streams of memory requests | |
US8650012B1 (en) | Caching information to map simulation addresses to host addresses in computer system simulations | |
CN104885063A (zh) | 针对转译后备缓冲器(tlb)的重叠检查 | |
CN104321750B (zh) | 在共享存储器编程中保持释放一致性的方法和系统 | |
US20180203618A1 (en) | Saving/restoring guarded storage controls in a virtualized environment | |
US8539209B2 (en) | Microprocessor that performs a two-pass breakpoint check for a cache line-crossing load/store operation | |
CN109416664B (zh) | 用于增强的地址空间布局随机化的系统、设备和方法 | |
EP2690558A1 (en) | Semiconductor device | |
US20230107660A1 (en) | Tracking memory block access frequency in processor-based devices | |
CN102054088A (zh) | 用于原型制作片上系统设计的虚拟平台 | |
US20140129794A1 (en) | Speculative tablewalk promotion | |
US7899965B2 (en) | Managing message signaled interrupts | |
US9852100B2 (en) | Guest-programmable location of advanced configuration and power interface (ACPI) tables in virtualized systems | |
US20190004883A1 (en) | Providing hardware-based translation lookaside buffer (tlb) conflict resolution in processor-based systems | |
US10754795B2 (en) | MMU assisted address sanitizer |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20180904 Assignee: Kedong (Guangzhou) Software Technology Co., Ltd Assignor: Beijing Dongtu Technology Co., Ltd.|Beijing keyin Jingcheng Technology Co., Ltd Contract record no.: X2020980000255 Denomination of invention: Physical memory management method and device for embedded real-time system License type: Exclusive License Record date: 20200218 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |