内存管理方法、装置及嵌入式系统的制作方法

xiaoxiao2020-7-22  1

内存管理方法、装置及嵌入式系统的制作方法
【专利摘要】本发明实施例公开了内存管理方法、装置及嵌入式系统。上述方法包括响应于系统级芯片SOC片内内存当前的内存剩余资源大于或等于K,同时,SOC片内内存中不存在空间大小大于或等于K的空闲物理内存块,使用SOC片内内存中的N个空闲物理内存块构建虚拟地址连续、空间大小为K的虚拟内存块并分配;K表示待申请的内存空间的空间大小;N个空闲物理内存块的总空间大小等于K,N为大于等于2的整数;物理内存块中的物理地址是连续的;在初始时SOC片内内存为一整块空闲内存块。这样,将离散的空闲物理内存块组成了地址连续的虚拟内存块,从而实现了连续地址空间的分配。
【专利说明】内存管理方法、装置及嵌入式系统
【技术领域】
[0001]本发明涉及计算机【技术领域】,更具体地说,涉及内存管理方法、装置及嵌入式系统。
【背景技术】
[0002]嵌入式系统可应用于多种场景中,在多种场景中涉及到对嵌入式系统中的系统级芯片(System On Chip, S0C)片内内存的管理。
[0003]现有方式中可使用动态方式管理SOC片内内存。但在系统运行一段时间后,经常会存在离散的物理地址段。在某些场景下,尽管当前的内存剩余资源大于或等于申请的内存空间大小,但由于物理地址段在空间上分散,无法实现连续地址空间的分配,从而导致内存申请失败。
[0004]举例来讲,假定一个物理地址的大小为b,当前物理地址段POOl?P100,以及P200?P400都是空闲可用的,也即,当前的内存剩余资源为300b。待申请的内存空间大小(也可称为字节数)可表示为K,假定K = 240b小于300b,但由于POOl?PlOO与P200?P400的地址是不连续(也即空间上分散),从而无法进行分配,这样就会导致内存申请失败。

【发明内容】

[0005]有鉴于此,本发明实施例的目的在于提供内存管理方法、装置及嵌入式系统,以解决尽管当前的内存剩余资源大于或等于申请的内存空间大小,但由于物理内存空间在空间上分散,无法实现连续内存空间的分配,从而导致内存申请失败的问题。
[0006]为实现上述目的,本发明实施例提供如下技术方案:
[0007]根据本发明实施例的第一方面,一种内存管理方法,包括:
[0008]响应于系统级芯片SOC片内内存当前的内存剩余资源大于或等于K,同时,所述SOC片内内存中不存在空间大小大于或等于K的空闲物理内存块,使用所述SOC片内内存中的N个空闲物理内存块构建虚拟地址连续、空间大小为K的虚拟内存块,并分配所述虚拟内存块作为待申请的内存空间;
[0009]所述K表示待申请的内存空间的空间大小;所述N个空闲物理内存块的总空间大小等于所述K,所述N为大于等于2的整数;所述物理内存块中的物理地址是连续的;在初始时所述SOC片内内存为一整块空闲内存块。
[0010]结合第一方面,在第一种能的实现方式中,还包括:响应于所述SOC片内内存中存在空间大小大于K的空闲物理内存块,将所述空间大小大于K的空闲物理内存块分割成m个空闲物理内存块,所述m个空闲物理内存块中存在空间大小等于K的空闲物理内存块;所述m大于等于2 ;分配所述空间大小等于K的空闲物理内存块作为所述待申请的内存空间。
[0011]结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,还包括:响应于内存块释放命令,确定所述内存块释放命令指定的内存块是否为物理内存块;若指定的内存块是物理内存块,直接释放所述指定的内存块;若指定的内存块不是物理内存块,释放所述指定的内存块中包含的各物理内存块。
[0012]结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,在直接释放所述指定的内存块或释放所述指定的内存块中包含的各物理内存块之后,还包括:确定与所释放的物理内存块相邻的物理内存块是否空闲,若空闲,则将所释放的物理内存块与相邻的物理内存块合并,将合并后的物理内存块设置为空闲;否则,直接将释放的物理内存块设置为空闲。
[0013]结合第一方面至第一方面第三种可能的实现方式中的任一项,在第四种可能的实现方式中,所述SOC片内内存中的N个空闲物理内存块通过如下方式获得:在M个空闲物理内存块的总空间大小大于所述K,但所述M个空闲物理内存块中任意M — I个空闲物理内存块的总空间大小小于所述K时,将所述M个空闲物理内存块中的一个空闲物理内存块分割成m个空闲物理内存块,得到M+m-1个空闲物理内存块,其中,所述M+m-1个空闲物理内存块中的N个空闲物理内存块的总空间大小等于所述K ;m大于等于2,M = N。
[0014]结合第一方面至第一方面第四种可能的实现方式中的任一项,在第五种可能的实现方式中,所述构建包括:建立所述N个空闲物理内存块中的物理地址与所述虚拟内存块中的虚拟地址之间的映射关系;将所述映射关系保存至地址映射表。
[0015]结合第一方面第五种可能的实现方式,在第六种可能的实现方式中,在释放所述指定的内存块中包含的各物理内存块之后,还包括:更新所述地址映射表。
[0016]根据本发明实施例的第二方面,提供一种内存管理装置,包括:
[0017]第一内存管理单元,用于响应于系统级芯片SOC片内内存当前的内存剩余资源大于或等于K,同时,所述SOC片内内存中不存在空间大小大于或等于K的空闲物理内存块,使用所述SOC片内内存中的N个空闲物理内存块构建虚拟地址连续的虚拟内存块,并分配所述虚拟内存块作为待申请的内存空间;在初始时所述SOC片内内存为一整块空闲内存块;
[0018]所述K表示待申请的内存空间的空间大小;所述N个空闲物理内存块的总空间大小等于所述K,所述N为大于等于2的整数;所述物理内存块中的物理地址是连续的。
[0019]结合第二方面,在第一种可能的实现方式中,还包括第二内存管理单元,用于:响应于所述SOC片内内存中存在空间大小大于K的空闲物理内存块,将所述空间大小大于K的空闲物理内存块分割成m个空闲物理内存块,所述m个空闲物理内存块中存在空间大小等于K的空闲物理内存块;所述m大于等于2 ;分配所述空间大小等于K的空闲物理内存块作为所述待申请的内存空间。
[0020]结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,还包括内存释放管理单元,用于:响应于内存块释放命令,确定所述内存块释放命令指定的内存块是否为物理内存块;若指定的内存块是物理内存块,直接释放所述指定的内存块;若指定的内存块不是物理内存块,释放所述指定的内存块中包含的各物理内存块。
[0021]结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,还包括:空闲物理块设置单元,用于在所述内存释放管理单元在直接释放所述指定的内存块或释放所述指定的内存块中包含的各物理内存块之后,确定与所释放的物理内存块相邻的物理内存块是否空闲,若空闲,则将所释放的物理内存块与相邻的物理内存块合并,将合并后的物理内存块设置为空闲;否则,直接将释放的物理内存块设置为空闲。[0022]根据本发明实施例的第三方面,提供一种嵌入式系统,包括SOC片内内存、处理器以及如第三方面至第三方面第三种可能的实现方式中任一项所述的内存管理装置。
[0023]可见,在本发明实施例中,在当前的内存剩余资源大于或等于申请的内存空间大小,但物理内存空间在空间上分散的情况下(也即,物理内存当前的内存剩余资源大于或等于待申请的内存空间的大小,同时,不存在大于或等于待申请的内存空间的大小的空闲物理内存块),将空闲物理内存块构建虚拟地址连续、大小为K的虚拟内存块。这样,就将离散的空闲物理内存块组成了地址连续的虚拟内存块,从而实现了连续地址空间的分配。解决了由于物理内存空间在空间上分散,无法实现连续地址空间的分配,从而导致内存申请失败的问题。
【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本发明实施例提供的内存管理应用场景不意图;
[0026]图2为本发明实施例提供的内存管理方法流程图;
[0027]图3为本发明实施例提供的逻辑内存结构示意图;
[0028]图4a为本发明实施例提供的内存管理方法另一流程图;
[0029]图4b为本发明实施例提供的段页式内存管理方式示意图;
[0030]图5为本发明实施例提供的内存管理方法又一流程图;
[0031]图6为本发明实施例提供的内存管理方法又一流程图;
[0032]图7为本发明实施例提供的内存管理装置结构示意图;
[0033]图8为本发明实施例提供的内存管理装置另一结构示意图;
[0034]图9为本发明实施例提供的嵌入式系统结构示意图。
【具体实施方式】
[0035]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]嵌入式系统可应用于多种场景中,在多种场景中涉及到对嵌入式系统中的系统级芯片(System On Chip, S0C)片内内存的管理。
[0037]以基站基带处理为例,发明人发现,目前在基带中对内存管理大部分是静态手工管理,也就是在系统设计阶段即把所有程序或业务需要使用的内存块大小按最大值分配出来,做成内存分配表格,实际中,按照预告分配的内存块进行分配使用。而在基带处理系统中,每个帧内处理的用户数和数据量是不一样的,导致即使针对同一程序或业务,不同情况下真正需要的内存块的大小波动比较大,因此,静态手工管理方式会浪费内存。
[0038]为解决静态手工管理方式的缺点,发明人还发现,也有使用动态方式管理内存的。但使用动态方式管理内存则存在如下问题:
[0039]但在系统运行一段时间后,经常会存在离散的物理地址段。在某些场景下,尽管当前的内存剩余资源大于或等于申请的内存空间大小,但由于物理地址段在空间上分散,无法实现连续地址空间的分配,从而导致内存申请失败。
[0040]举例来讲,假定一个物理地址的大小为b,当前物理地址段POOl?P100,以及P200?P400都是空闲可用的,也即,当前的内存剩余资源为300b。待申请的内存空间大小可表示为K,假定K = 240b小于300b,但由于POOl?PlOO与P200?P400的地址是不连续(也即空间上分散),从而无法进行分配,这样就会导致内存申请失败。这种离散的物理地址段可被称之为内存碎片。
[0041]发明人发现,可采用如下方式解决内存碎片:
[0042]如果发现内存碎片分布比较散,碎片率比较严重,则在核负载低或空闲的情况下临时中断程序的运行,重新回收并初始化所有内存。
[0043]发明人同时发现,在基站基带的实际场景中,每个子帧内都会有运行的线程和业务,这种方式会导致业务暂时中断。而从实际的仿真效果看,每隔几分钟就得清一下内存,这意味着每隔几分钟,个别用户就被闪断一定时间,这将影响通信质量。
[0044]本发明实施例提供一种内存管理方法,以解决动态内存管理方式的内存碎片问题。
[0045]上述内存管理方法可由独立于SOC的硬件(例如内存管理装置)执行,也可由软件实现。
[0046]请参见图1,为本发明实施例设定的一种内存管理应用场景,包括SOC片内内存1、处理器2 (或称为核)和内存管理装置3。SOC片内内存I和处理器2可组成嵌入式系统(或片上系统),或者说,SOC片内内存I和处理器2可封装在一个芯片中。此外,SOC片内内存1、处理器2和内存管理装置3亦可组成嵌入式系统(或片上系统),或者说,SOC片内内存1、处理器2和内存管理装置3可封装在一个芯片中。
[0047]SOC片内内存1、处理器2和内存管理装置3彼此之间可通过总线或其他方式通信,来实现信息互通以及对SOC片内内存I的内存管理。
[0048]SOC片内内存I可用于存储处理器2运算期间产生的中间数据、存储操作系统、应用程序等等。处理器2在不同的应用场景中有不同的功能或作用。以基带处理为例,处理器2最基本的功能是完成基带处理中的一个或多个处理操作。
[0049]需要说明的是,图1中虽然示出了一个SOC片内内存1、一个处理器2和一个内存管理装置3,但实际上,一个嵌入系统可能包含多个处理器2和多个SOC片内内存I。可采用一个内存管理装置3管理多个SOC片内内存1,亦可采用多个内存管理装置3管理多个SOC片内内存I。本发明不作具体限定。
[0050]请参见图2,上述方法可包括如下步骤:
[0051]S1、响应于SOC片内内存当前的内存剩余资源大于或等于K(K表示待申请的内存空间的空间大小),同时,上述SOC片内内存中不存在大于或等于K的空闲物理内存块,使用上述SOC片内内存中的N个空闲物理内存块(N为大于等于2的整数)构建虚拟地址连续、空间大小为K的虚拟内存块,并分配上述虚拟内存块作为上述待申请的内存空间。
[0052]上述N个空闲物理内存块的总空间大小等于K。并且,上述物理内存块中的物理地址是连续的。
[0053]在初始时,整个SOC片内内存为一个大的空闲物理内存块。或者说,在初始时,SOC片内内存为一整块空闲物理内存块。
[0054]可见,在本发明实施例中,在当前的内存剩余资源大于或等于申请的内存空间大小,但物理内存空间在空间上分散的情况下(也即,物理内存当前的内存剩余资源大于或等于待申请的内存空间的大小,同时,不存在大于或等于待申请的内存空间的大小的空闲物理内存块),将空闲物理内存块构建虚拟地址连续、大小为K的虚拟内存块。这样,就将离散的空闲物理内存块组成了地址连续的虚拟内存块,从而实现了连续地址空间的分配。解决了由于物理内存空间在空间上分散,无法实现连续地址空间的分配,从而导致内存申请失败的问题。
[0055]更具体的,内存管理装置向外界(例如用户)显示的是逻辑内存,向外界提供的是逻辑地址。
[0056]请参见图3,该逻辑内存包含物理地址空间和扩展的虚拟地址空间。物理地址空间中的逻辑地址实际为物理地址,而虚拟地址空间中的逻辑地址实际为虚拟地址。
[0057]假定一个物理地址的大小为b字节,实际上,SOC片内内存以b字节划分一个存储单元,每一存储单元对应物理地址空间中的一个物理地址。
[0058]换句话说,物理地址空间与SOC片内内存相映射,SOC片内内存的空间大小与物理地址空间的空间大小是相等的。
[0059]而虚拟地址空间的空间大小是物理地址空间的一倍或一倍以上。
[0060]举例来讲,假定SOC内内存的空间大小为1G,相应的,物理地址空间的空间大小也为1G。在此基础上,扩展一倍或一倍以上的虚拟地址空间。假定,物理地址空间中包含A0001-A1000个逻辑地址(物理地址)。则虚拟地址空间的大小至少为1G,其可至少包含A1001-A2000个逻辑地址(也即虚拟地址)。
[0061]当然,对于外界而言(例如对于用户而言),逻辑内存可访问空间大小为2G,其包含A0001-A2000个逻辑地址。而对于内存管理装置2而言,实际的内存空间大小为1G。
[0062]基于物理地址空间和虚拟地址空间,现针对步骤SI举个简单的例子,以方便理解本发明上述实施例如何实现内存管理:
[0063]假定一个物理地址的大小为b,并假定当前SOC片内内存中有2个空闲物理内存块,其中一个空闲物理内存块在物理地址空间对应的物理地址范围为A0001?A0100,另一个空闲物理内存块在物理地址空间对应的物理地址范围为A0201?A0400。也即,当前的内存剩余资源为300b。或者说,上述2个空闲物理内存块的总空间大小为300b。
[0064]假定,待申请的内存空间的空间大小恰好也为300b,也即K等于当前的内存剩余资源,则可用上述2个空闲物理内存块构建一个虚拟地址连续、大小为K的虚拟内存块。
[0065]但在实际应用中,还存在“不恰好”的情况:
[0066]假定,当前存在3个空闲物理内存块,这3个空闲物理内存块的空间大小分别为100b、200b、200b。也即,当前的内存剩余资源为500b。
[0067]而待申请的内存大小为450b。
[0068]也即,上述3个空闲物理内存块的总空间大小大于K,但其中任2个空闲物理内存块的总空间大小又小于K。[0069]在此种情况下,可进行如下操作来得到总空间大小等于K的N个空闲物理内存块:
[0070]将M个空闲物理内存块中的其中一个空闲物理内存块分割成m个空闲物理内存块(m不小于2),得到M+m-1个空闲物理内存块,其中,这M+m-1个空闲物理内存块中的N个空闲物理内存块的总空间大小等于上述K。
[0071]仍沿用前例,可对上述空闲物理内存块1_3(也即M = 3)中的一个空闲物理内存块进行分割。
[0072]以对空闲物理内存块3进行分割为例,可将其分割为两个(m个)空闲物理内存块,为区别起见,可将分割得到的这两个空闲物理内存块称为空闲物理内存块4和空闲物理内存块5,其中,空闲物理内存块4大小为150b,空闲物理内存块5大小为50b。
[0073]在分割时,可采用现有的分割方式,比如广泛使用的TLSF(Two LevelSegregatedFit)算法,来对空闲物理内存块进行分割。
[0074]这样,3 (M)个空闲物理内存块就变成了 4 (M+m-1)个空闲物理内存块,并且,空闲物理内存块1、2、4的总空间大小等于K(450b)。
[0075]则空闲物理内存块1、2、4即为上述的总空间大小等于所述K的N个空闲物理内存块。后续可用空闲物理内存块1、2、4构建虚拟地址(逻辑地址)连续、大小为450b的虚拟内存块。
[0076]更具体的,可选择最少的空闲物理内存块个数来构建虚拟内存块。
[0077]例如,共有5个空闲物理内存块,其中2个空闲物理内存块的总空闲大小大于K,而另外3个空闲物理内存块的总空闲大小大于K,则选择上述2个空闲物理内存块来构建虚拟内存块。
[0078]需要说明的是,对外界例如用户而言,其所“看见”的是,为自己分配了地址连续、大小为K的内存块,用户并不能区分虚拟内存块和物理内存块,也不能区分虚拟地址和物理地址。对于用户而言,虚拟地址和物理地址均是逻辑地址。
[0079]物理内存块或虚拟内存块之间的关系可用链表表示。
[0080]为了节省时间,提高查找效率,物理地址空间和虚拟地址空间可采用独立的链表。
[0081]在本发明其他实施例中,上述所有实施例步骤SI中的构建可包括如下步骤:
[0082]建立上述N个空闲物理内存块中的物理地址与上述虚拟内存块中的逻辑地址之间的映射关系;
[0083]将上述映射关系保存至地址映射表。
[0084]更具体的,可建立上述虚拟内存块中的每一逻辑地址与上述N个空闲物理内存块中的物理地址之间的映射关系。
[0085]或者,也可建立N个空闲物理内存块中起始物理地址以及结束物理地址与虚拟内存块中的逻辑地址的关系。
[0086]举例来讲,假定SOC片内内存的大小为1G,共对应A0001-A1000个物理地址。虚拟内存空间包含A1001-A2000个虚拟地址。当前SOC片内内存中有2个空闲物理内存块,其中一个空闲物理内存块在物理地址空间对应的物理地址范围为A0001?A0100,另一个空闲物理内存块在物理地址空间对应的物理地址范围为A0201?A0400。而待申请的内存的大小为300b。[0087]假定,分配给用户的虚拟内存块的起始逻辑地址为A1001,结束逻辑地址为A1300。
[0088]则可将其中一个空闲物理内存块的起始物理地址A0001与虚拟内存块中的逻辑地址A1001建立映射关系,将其结束物理地址A0100与虚拟内存块中的逻辑地址AllOO建立映射关系,而将另一空闲物理内存块的起始物理地址A0201与虚拟内存块中的逻辑地址AllOl建立映射关系,将其结束物理地址A0400与虚拟内存块中的逻辑地址A1300建立映射关系。
[0089]反之亦可,也可将上述虚拟内存块中的逻辑地址A1001和A1200分别与物理地址A0201和物理地址A0400建立映射关系,而将虚拟内存块中的逻辑地址A1201和A1300分别与物理地址A0001和A0100建立映射关系。
[0090]在本发明其他实施例中,上述所有实施例中的地址映射表的格式可如下表1所示:
[0091]
【权利要求】
1.一种内存管理方法,其特征在于,包括: 响应于系统级芯片SOC片内内存当前的内存剩余资源大于或等于K,同时,所述SOC片内内存中不存在空间大小大于或等于K的空闲物理内存块,使用所述SOC片内内存中的N个空闲物理内存块构建虚拟地址连续、空间大小为K的虚拟内存块,并分配所述虚拟内存块作为待申请的内存空间; 所述K表示待申请的内存空间的空间大小;所述N个空闲物理内存块的总空间大小等于所述K,所述N为大于等于2的整数;所述物理内存块中的物理地址是连续的;在初始时所述SOC片内内存为一整块空闲内存块。
2.如权利要求1所述的方法,其特征在于,还包括: 响应于所述SOC片内内存中存在空间大小大于K的空闲物理内存块,将所述空间大小大于K的空闲物理内存块分割成m个空闲物理内存块,所述m个空闲物理内存块中存在空间大小等于K的空闲物理内存块;所述m大于等于2 ; 分配所述空间大小等于K的空闲物理内存块作为所述待申请的内存空间。
3.如权利要求1或2所述的方法,其特征在于,还包括: 响应于内存块释放命令,确定所述内存块释放命令指定的内存块是否为物理内存块; 若指定的内存块是物理内存块,直接释放所述指定的内存块; 若指定的内存块不是物理内存块,释放所述指定的内存块中包含的各物理内存块。
4.如权利要求3的方法,其特征在于,在直接释放所述指定的内存块或释放所述指定的内存块中包含的各物理内存块之后,还包括: 确定与所释放的物理内存块相邻的物理内存块是否空闲,若空闲,则将所释放的物理内存块与相邻的物理内存块合并,将合并后的物理内存块设置为空闲;否则,直接将释放的物理内存块设置为空闲。
5.如权利要求1-4任一项所述的方法,其特征在于,所述SOC片内内存中的N个空闲物理内存块通过如下方式获得: 在M个空闲物理内存块的总空间大小大于所述K,但所述M个空闲物理内存块中任意M -1个空闲物理内存块的总空间大小小于所述K时,将所述M个空闲物理内存块中的一个空闲物理内存块分割成m个空闲物理内存块,得到M+m-1个空闲物理内存块,其中,所述M+m-1个空闲物理内存块中的N个空闲物理内存块的总空间大小等于所述K ;m大于等于2,M = N。
6.如权利要求1-5任一项所述的方法,其特征在于,所述构建包括: 建立所述N个空闲物理内存块中的物理地址与所述虚拟内存块中的虚拟地址之间的映射关系; 将所述映射关系保存至地址映射表。
7.如权利要求6所述的方法,其特征在于,在释放所述指定的内存块中包含的各物理内存块之后,还包括: 更新所述地址映射表。
8.—种内存管理装置,其特征在于,包括: 第一内存管理单元,用于响应于系统级芯片SOC片内内存当前的内存剩余资源大于或等于K,同时,所述SOC片内内存中不存在空间大小大于或等于K的空闲物理内存块,使用所述SOC片内内存中的N个空闲物理内存块构建虚拟地址连续的虚拟内存块,并分配所述虚拟内存块作为待申请的内存空间;在初始时所述SOC片内内存为一整块空闲内存块; 所述K表示待申请的内存空间的空间大小;所述N个空闲物理内存块的总空间大小等于所述K,所述N为大于等于2的整数;所述物理内存块中的物理地址是连续的。
9.如权利要求8所述的装置,其特征在于,还包括第二内存管理单元,用于: 响应于所述SOC片内内存中存在空间大小大于K的空闲物理内存块,将所述空间大小大于K的空闲物理内存块分割成m个空闲物理内存块,所述m个空闲物理内存块中存在空间大小等于K的空闲物理内存块;所述m大于等于2 ; 分配所述空间大小等于K的空闲物理内存块作为所述待申请的内存空间。
10.如权利要求8或9所述的装置,其特征在于,还包括内存释放管理单元,用于: 响应于内存块释放命令,确定所述内存块释放命令指定的内存块是否为物理内存块;若指定的内存块是物理内存块,直接释放所述指定的内存块;若指定的内存块不是物理内存块,释放所述指定的内存块中包含的各物理内存块。
11.如权利要求10的装置,其特征在于,还包括: 空闲物理块设置单元,用于在所述内存释放管理单元在直接释放所述指定的内存块或释放所述指定的内存块中包含的各物理内存块之后,确定与所释放的物理内存块相邻的物理内存块是否空闲, 若空闲,则将所释放的物理内存块与相邻的物理内存块合并,将合并后的物理内存块设置为空闲;否则,直接将释放的物理内存块设置为空闲。
12.—种嵌入式系统,其特征在于,包括SOC片内内存、处理器以及如权利要求8-11任一项所述的内存管理装置。
【文档编号】G06F3/06GK103970680SQ201410174756
【公开日】2014年8月6日 申请日期:2014年4月28日 优先权日:2014年4月28日
【发明者】宁科, 谢传波 申请人:上海华为技术有限公司

最新回复(0)