首页> 中国专利> 基于单类型存储器的嵌入式系统的动态存储管理方法

基于单类型存储器的嵌入式系统的动态存储管理方法

摘要

本发明提供一种基于单类型存储器的嵌入式系统的动态存储管理方法,该嵌入式系统包括预存有内核及文件系统启动加载信息和引导程序的启动程序存储区及建置有内核及文件系统的系统RAM区,该方法是在引导程序启动后,基于启动信息加载内核与文件系统;然后在系统RAM区标记出已用内存区及可用内存区;最后系统接收到更新或搬移指令时,申请系统RAM区中是否有连续可用的内存块,若是,则写入内核或文件系统的更新或搬移数据,若否,则整理该可用内存区中的碎片并将各该碎片合并成连续可用的内存块,以将内核或文件系统的更新或搬移数据写入该内存块,本发明模糊了内存与外存的界限,统一了存储架构,把外存管理纳入了内存管理之中,解决了不便管理等问题。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-15

    授权

    授权

  • 2013-09-11

    实质审查的生效 IPC(主分类):G06F12/06 申请日:20120214

    实质审查的生效

  • 2013-08-14

    公开

    公开

说明书

技术领域

本发明涉及嵌入式系统的技术领域,特别是涉及一种基于单类型存储器的嵌入式系统的 动态存储管理方法。

背景技术

嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对 功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。随着嵌入式技术及半导体存 储器技术的飞速发展,消费者对嵌入式产品的启动速度、运行实时性、功耗等各方面提出来 更高的要求。因此,简化嵌入式操作系统的启动引导过程、缩短启动时间、降低系统功耗对 嵌入式产品的赢得市场地位具有十分重要的意义。

嵌入式设备的功能主要通过软件来实现和扩展,随着嵌入式设备功能的不断完善和应用 需求的不断增加,需要对原有系统中的软件进行不断升级。即将新的软件写入嵌入式设备的 非易失存储器,替代以前有缺陷或功能不完善的软件。对于一个含有嵌入式系统的产品而言, 设计良好、功能强大的升级方案能为该产品带来较强的竞争力。现有嵌入式系统的升级方案 通常将升级文件做成镜像文件,并将嵌入式系统中的非易失性存储器上原有的数据全部擦除 后,再将镜像文件写到非易失性存储器上,以达到升级的目的。

呈如图1所示,显示为现有技术中嵌入式系统的架构示意图,如图所示,所述嵌入式系 统启动时,由所述NAND Flash存储器到所述易失性DRAM内核映像的拷贝解压过程中耗费 了大量时间,以及内核(Kernel)加载文件系统(Rootfs)时对文件系统的根文件系统进行解 压、挂载,拷贝、解压也浪费了很长时间。同时,常规的嵌入式系统采用混合的多种类型的 存储器构建嵌入式存储系统,混合类型的存储器系统在使用时带来一定的局限性,同时在存 储系统的管理、控制方面也相对复杂。尤其需要指明的是,由于上述传统的嵌入式系统架构 是将引导程序(Bootloader)、内核(Kernel)、以及文件系统(Rootfs)建置于外存中,在 进行升级或者改写时,嵌入式系统中用来保存程序数据的非易失性存储器的刷新速度较慢, 刷新过程所需的时间相对较长,所以一旦发生意外断电等情况使系统中断的情况,将造成系 统无法启动,必须使用特殊的工具和方法再对嵌入式系统中的非易失性存储器重新进行刷新 操作才可以使系统再次可用,该方案即不安全又使系统升级失败后重新恢复系统的工作变得 费时费力,而且,在执行上述升级方案时,必须对易失性存储器的全部进行刷新升级,而不 能对易失性存储器中指定的某一个或几个部分的数据进行刷新升级操作,不便于管理。

再者,随着新型存储器,包括但不限于相变存储器(PCRAM,Phase Change Random Access  Memory)、阻变存储器R-RAM、磁存储器(MRAM,Magnetic Random Access Memory)、铁 电存储器(FeRAM)等非易失随机访问存储器的出现及应用于嵌入式系统,基于该新类型的 存储器的擦写次数限制了其相对使用寿命,尤其当对新型存储器局部使用频繁、不均匀时进 一步缩短了新型存储器的使用寿命。因此如何通过均衡策略延长新型存储器的使用寿命成为 另一个亟待解决的问题。

因而,如何提供一种可以实现更新或搬移过程的灵活管理及减小系统更新的工作量,又 可以保证即使在系统更新过程中发生意外中断也能再次启动系统的动态存储管理方法,实已 成为本领域从业者亟待解决的技术问题。

发明内容

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于单类型存储器的嵌入式 系统的动态存储管理方法,用于解决现有技术中嵌入式系统更新时速度慢、更新数据量大容 易造成嵌入式系统更新失败系统不可用,以及随着新型存储器应用于嵌入式系统但由于新型 存储器擦写次数有限、使用不均衡造成其使用寿命缩短而带来的嵌入式系统性能降低等问题。

为实现上述目的及其他相关目的,本发明提供一种基于单类型存储器的嵌入式系统的动 态存储管理方法,所述嵌入式系统包括预存有内核及文件系统的启动加载信息和引导程序的 启动程序存储区以及建置有内核及文件系统的系统RAM区,所述动态存储管理方法至少包 括以下步骤:

1)系统上电,所述引导程序启动;

2)所述引导程序基于所述启动程序存储区中预存的内核的启动信息加载所述内核,然后 基于所述启动程序存储区中预存的文件系统的启动信息加载所述文件系统;

3)将所述系统RAM区中已启动的内核及文件系统所用内存区标记为已用内存区,然后 将基于系统RAM区标记内核及文件系统所占内存以外的区域标记为可用内存区;以及

4)系统接收到更新或搬移所述内核或文件系统的指令时,申请并判断所述可用内存区中 是否有一块连续可用的内存块,若是,则基于该内存块写入所述内核或文件系统的更新数据 或者将所述内核或文件系统搬移至该可用的内存块中,若否,则整理所述可用内存区中的碎 片并将多个小的、不连续的内存碎片合并成连续可用的内存块,以将所述内核或文件系统的 更新数据写入该内存块或者将所述内核或文件系统搬移至该可用的内存块中。

在本发明的动态存储管理方法中,所述嵌入式系统为基于单一的非易失随机访问存储器 构建的存储器系统,该存储器系统将内核及文件系统所占用的存储区纳入到操作系统的内存 管理体系之中,该存储器为相变存储器、阻变存储器、磁存储器、或铁电存储器中的一种。

在本发明的动态存储管理方法的步骤4)中,至少包括以下步骤:

4-1)系统接收到更新或搬移所述内核或文件系统的指令;

4-2)判断所述可用内存区中是否有一块连续可用的内存块,若是,则转至步骤4-9), 若否,则进入下一步骤;

4-3)整理可用内存区中的碎片;

4-4)扫描所述系统RAM区中内存的使用情况;

4-5)标记所述系统RAM区中离散内存块;

4-6)修改各该离散内存块虚拟地址相对应的物理地址;

4-7)将各该离散内存块搬移、合并;

4-8)判断经合并的内存块容量是否满足申请需求的可用的内存块大小,若是,则进入下 一步骤,若否,则返回内存申请失败信息;

4-9)基于所述系统RAM区分配新内核或者新文件系统存储区;

4-10)写入所述内核或文件系统的更新或搬移的数据;

4-11)校验所述内核或文件系统的更新或搬移的数据是否正确;若是,则更新或搬移所 述内核或文件系统的启动加载信息,若否,则返回数据传输或搬移失败信息。

本发明的动态存储管理方法在一实施例中,于所述步骤4-1)中,系统接收到更新指令为 更新所述内核的指令时,则后续的步骤中:

4-9)基于所述系统RAM区分配新内核存储区;

4-10)写入所述内核的更新数据;

4-11)校验所述内核的更新数据是否正确;若是,则更新所述启动程序存储区中内核的 启动加载信息,若否,则返回数据传输失败信息。

本发明的动态存储管理方法在另一实施例中,于所述步骤4-1)中,系统接收到更新指令 为更新所述文件系统的指令时,则后续的步骤中:

4-9)基于所述系统RAM区分配新文件系统存储区;

4-10)写入所述文件系统的更新数据;

4-11)校验所述文件系统的更新数据是否正确;若是,则更新所述启动程序存储区中文 件系统的启动加载信息,若否,则返回数据传输失败信息。

其中,当内存申请失败或数据传输失败后,系统重新上电时,所述引导程序基于所述启 动程序存储区中未被更新的内核的启动信息加载所述内核,然后基于所述启动程序存储区中 未被更新的文件系统的启动信息加载所述文件系统。

本发明的动态存储管理方法在又一实施例中,于所述步骤4-1)中,系统接收到搬移指令 为搬移所述内核的指令时,则后续的步骤中:

4-9)基于所述系统RAM区分配新内核存储区;

4-10)写入所述内核的搬移数据;

4-11)校验所述内核的搬移数据是否正确;若是,则更新所述启动程序存储区中内核的 启动加载信息,若否,则返回数据搬移失败信息。

本发明的动态存储管理方法在再一实施例中,于所述步骤4-1)中,系统接收到搬移指令 为搬移所述文件系统的指令时,则后续的步骤中:

4-9)基于所述系统RAM区分配新文件系统存储区;

4-10)写入所述文件系统的搬移数据;

4-11)校验所述文件系统的搬移数据是否正确;若是,则更新所述启动程序存储区中文 件系统的启动加载信息,若否,则返回数据搬移失败信息。

其中,当内存申请失败或数据搬移失败后,系统重新上电时,所述引导程序基于所述启 动程序存储区中未被搬移的内核的启动信息加载所述内核,然后基于所述启动程序存储区中 未被更新的文件系统的启动信息加载所述文件系统。

如上所述,本发明的基于单类型存储器的嵌入式系统的动态存储管理方法,将内核及文 件系统所占用的存储区纳入到操作系统的内存管理体系,实现内核、文件系统及系统RAM 区存储空间共享,同时该动态存储管理方法还提供一个重要功能,即基于该动态存储管理方 法系统可向应用程序提供申请连续内存块的功能。本发明提出的动态内存管理方法应用于基 于单一的非易失随机访问存储器(包含但不限于相变存储器PCRAM、阻变存储器R-RAM、 磁存储器MRAM、铁电存储器FeRAM等非易失随机访问存储器)构建存储器系统,该存储 系统逻辑上划分为启动程序存储区与可动态调整的系统RAM区,并且可以根据功能需基于 系统RAM区在系统运行过程中通过应用程序实现系统的更新或搬移,既可以基于系统RAM 区存储实现内核及文件系统存储区的动态调整,达到操作系统内核与文件系统分开升级,实 现升级过程的灵活管理及大大降低了升级过程中的工作量,加速了升级过程以达到更新系统 功能的目的。

同时,基于新型非易失的存储器擦写次数有限制,而用于存放内核、文件系统的内存块 因内核、文件系统相对固定对该内存块操作相对不频繁,用于程序运行的内存块由于程序的 相互切换其擦写相对频繁,这种对新型存储器的不均匀操作大大缩短了其的使用寿命,基于 该动态存储管理方法可实现内核、文件系统的搬移,将内核、文件系统搬移到读、写相对频 繁的内存块中,将原存放内核、文件系统的使用相对不频繁的内存块释放后做应用程序运行 时的内存块使用,以达到存储器系统的擦写使用均衡延长其使用寿命。

附图说明

图1显示为现有技术中嵌入式系统的架构示意图。

图2显示为本发明的基于单类型存储器的嵌入式系统架构示意图。

图3显示为本发明的动态存储管理方法流程示意图。

图4显示为本发明动态存储管理方法中更新内核过程的流程示意图。

图5显示为本发明动态存储管理方法中更新文件系统过程的流程示意图。

图6显示为本发明动态存储管理方法中搬移内核过程的流程示意图。

图7显示为本发明动态存储管理方法中搬移文件系统过程的流程示意图。

元件标号说明

S1~S4                   步骤

S10~S413                步骤

S10’~S413’            步骤

S10”~S413”            步骤

S10”’~S413”’        步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露 的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加 以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精 神下进行各种修饰或改变。

请参阅图2至图7。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明 的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状 及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局 型态也可能更为复杂。

如图2所示,本发明提供一种基于单类型存储器的嵌入式系统的动态存储管理方法,所 述嵌入式系统包括启动程序存储区以及系统RAM区,其中,所述启动程序存储区预存有内 核(Kernel)及文件系统(Rootfs)的启动加载信息和引导程序(Bootloader),所述内核及 文件系统位于系统RAM区中。所述嵌入式系统为基于单一的非易失随机访问存储器构建的 存储器系统,该存储器包含但不限于包括但不限于相变存储器(PCRAM,Phase Change Random  Access Memory)、阻变存储器R-RAM、磁存储器(MRAM,Magnetic Random Access Memory)、 铁电存储器(FeRAM)等非易失随机访问存储器,所述嵌入式系统将内核及文件系统所占用 的存储区纳入到操作系统的内存管理体系,换言之,本发明的动态存储管理方法实现内核、 文件系统及系统RAM区存储空间共享,模糊了内存与外存的界限,统一了存储架构,把对 外存的管理纳入到内存管理之中。

所述基于单类型存储器的嵌入式系统是将内核及文件系统所占用的存储区纳入到操作系 统的内存管理体系,实现内核、文件系统及系统RAM区存储空间共享,即基于该管理方法 的嵌入式设备的存储系统逻辑划分为启动程序存储区与可动态调整的系统RAM区,并基于 系统RAM区动态分配内核及文件系统所占内存,内核及文件系统分配的内存起始地址及所 占内存块的大小等参数保存在启动程序存储区的固定存储块中。

本发明的动态存储管理方法主要应用于系统更新及系统搬移,所谓的系统更新是指根据 功能需求对系统RAM区中部分区域更新,实现操作系统内核与文件系统分开更新,达到更 新过程的灵活管理及更新系统功能,所谓的系统搬移即把系统RAM区中使用比较频繁区域 与使用相对不频繁的区域进行调整,实现系统RAM区存储中内核及文件系统存储位置的动 态调整,达到存储器系统擦写使用的均衡延长其使用寿命。

请参阅图3,所述动态存储管理方法至少包括以下步骤:

首先执行步骤S1,系统上电,所述引导程序启动,以初始化所述嵌入式设备的例如内存 等硬件,接着执行步骤S2。

在步骤S2中,系统基于所述启动程序存储区中预存的内核的启动信息加载所述内核,内 核启动成功之后,基于所述启动程序存储区中预存的文件系统的启动信息加载所述文件系统, 接着执行步骤S3。

在步骤S3中,将所述系统RAM区中已启动的内核及文件系统所用内存区标记为已用内 存区,将基于系统RAM区标记内核及文件系统所占内存以外的区域标记为可用内存区,换 言之,系统将已启动的内核及文件系统所用内存区标记为已用,系统RAM区的其他内存区 域标记为可用,系统启动后执行程序所用内存是基于系统RAM区中可用内存区分配的,接 着执行步骤S4。

在步骤S4中,系统接收到更新或搬移所述内核或文件系统的指令时,申请并判断所述可 用内存区中是否有一块连续可用的内存块,若是,则基于该内存块写入所述内核或文件系统 的更新数据或者将所述内核或文件系统搬移至该可用的内存块中,若否,则整理所述可用内 存区中的碎片并将多个小的、不连续的内存碎片合并成连续可用的内存块,以将所述内核或 文件系统的更新数据写入该内存块或者将所述内核或文件系统搬移至该可用的内存块中。

基于本发明提出的动态存储管理方法,进行系统更新或搬移是在系统运行过程中通过应 用程序实现的,应用程序向系统发送更新或搬移请求、通过系统运行状态下的各种通信方法 获得更新或搬移数据及调用本专利提出的动态内存管理方法获得内存、写入数据、校验数据、 修改启动信息完成更新过程。如果内核更新或搬移过程完成,内核启动信息相应更改,系统 再次启动时将基于新的内核启动信息加载更新或搬移后的系统内核,否则内核启动信息维持 不变,系统将加载更新或搬移前的内核;如果文件系统更新或搬移过程完成,文件系统启动 信息相应更改,内核启动完成加载文件系统时,将基于新的文件系统启动信息加载更新或搬 移后的文件系统,否则文件系统启动信息维持不变,加载更新或搬移前的文件系统,也就是 说,无论系统内核及文件系统更新或搬移过程完成与否系统始终都可以再次正常启动。

为了进一步阐述本发明的原理及功效,下面将分别描述所述步骤S4中内核及文件系统更 新或搬移过程,请参阅图4、图5、图6及图7,图4显示为本发明动态存储管理方法中更新 内核过程的流程示意图,图5显示为本发明动态存储管理方法中更新文件系统过程的流程示 意图,图6显示为本发明动态存储管理方法中搬移内核过程的流程示意图,图7显示为本发 明动态存储管理方法中搬移文件系统过程的流程示意图。

如图4所示的内核更新过程,执行步骤S40,系统接收到更新所述内核的指令,当应用 程序向系统发送更新请求后,系统首先通过使用处于启动状态下的网络、串口、USB等各种 工具获取需要更新的数据。接着执行步骤S41。

在步骤S41中,判断上述步骤S3中标记的可用内存区中是否有一块连续可用的内存块, 若是,则转至步骤S49,若否,则执行步骤S42。

在步骤S42中,整理可用内存区中的碎片,接着执行步骤S43。

在步骤S43中,扫描所述系统RAM区中内存的使用情况,接着执行步骤S44。

在步骤S44中,标记所述系统RAM区中离散内存块,接着执行步骤S45。

在步骤S45中,修改各该离散内存块虚拟地址相对应的物理地址,接着执行步骤S46。

在步骤S46中,将各该离散内存块搬移、合并,以获得连续大片的内存块,也就是说, 系统通过整理内存碎片的方式将多个小的、不连续的内存块合并成连续满足申请需求的可用 的内存块,接着执行步骤S47。

在步骤S47中,判断经合并的内存块容量是否满足申请需求的可用的内存块大小,若是, 则转至步骤49,若否,则执行步骤S48。

在步骤S48中,返回内存申请失败信息,结束。需要说明的是,当内存申请失败后,系 统重新上电时,在启动内核时,基于启动程序存储区中未被更新的内核启动信息加载所述内 核。

在步骤S49中,基于所述系统RAM区分配新内核存储区,接着执行步骤S410。

在步骤S410中,写入所述内核的更新数据,接着执行步骤S411。

在步骤S411中,校验所述内核的更新数据是否正确,若是,则转至步骤412,若否,则 执行步骤S413。

在步骤S412中,更新所述内核的启动加载信息,结束。即系统更新所述启动程序存储区 的内核启动加载信息,以使得系统在重启时,在启动内核时,基于启动程序存储区中更新后 的内核启动信息加载所述内核。

在步骤S413中,返回数据传输失败信息,结束。需要说明的是,当数据传输失败后,系 统重新上电时,在启动内核时,基于启动程序存储区中未被更新的内核启动信息加载所述内 核。

由上可知,基于系统RAM区更新内核时,系统首先基于系统RAM区申请一块连续可用 的内存块,并将需要更新内核的相关数据写入申请的内存块,校验更新后的内核数据,基于 更新后的内核存储区的起始地址及大小更新启动程序存储区中保存的加载内核启动的相关信 息。

如图5所示的文件系统更新过程,执行步骤S40’,系统接收到更新所述文件系统的指 令,当应用程序向系统发送更新请求后,系统首先通过使用处于启动状态下的网络、串口、 USB等各种工具获取需要更新的数据。接着执行步骤S41’。

在步骤S41’中,判断上述步骤S3中标记的可用内存区中是否有一块连续可用的内存块, 若是,则转至步骤S49’,若否,则执行步骤S42’。

在步骤S42’中,整理可用内存区中的碎片,接着执行步骤S43’。

在步骤S43’中,扫描所述系统RAM区中内存的使用情况,接着执行步骤S44’。

在步骤S44’中,标记所述系统RAM区中离散内存块,接着执行步骤S45’。

在步骤S45’中,修改各该离散内存块虚拟地址相对应的物理地址,接着执行步骤S46’。

在步骤S46’中,将各该离散内存块搬移、合并,以获得连续大片的内存块,也就是说, 系统通过整理内存碎片的方式将多个小的、不连续的内存块合并成连续满足申请需求的可用 的内存块,接着执行步骤S47’。

在步骤S47’中,判断经合并的内存块容量是否连续可用,若是,则转至步骤49’,若 否,则执行步骤S48’。

在步骤S48’中,返回内存申请失败信息,结束。需要说明的是,当内存申请失败后, 系统重新上电时,在启动文件系统时,基于启动程序存储区中未被更新的文件系统启动信息 加载所述文件系统。

在步骤S49’中,基于所述系统RAM区分配新文件系统存储区,接着执行步骤S410’。

在步骤S410’中,写入所述文件系统的更新数据,接着执行步骤S411’。

在步骤S411’中,校验所述文件系统更新数据是否正确,若是,则转至步骤412’,若 否,则执行步骤S413’。

在步骤S412’中,更新所述文件系统的启动加载信息,结束。即系统更新所述启动程序 存储区的文件系统启动加载信息,以使得系统在重启时,在启动文件系统时,基于启动程序 存储区中更新后的文件系统启动信息加载所述文件系统。

在步骤S413’中,返回数据传输失败信息,结束。需要说明的是,当数据传输失败后, 系统重新上电时,在启动文件系统时,所述引导程序基于所述启动程序存储区中未被更新的 文件系统的启动信息加载所述文件系统。

由上可知,基于系统RAM区更新文件系统时,系统首先基于系统RAM区申请一块连续 可用的内存块,并将需要更新文件系统的相关数据写入申请的内存块,校验更新后的文件系 统数据,基于更新后的文件系统存储区的起始地址及大小更新启动程序存储区中保存的加载 文件系统启动的相关信息。

如图6所示的内核搬移过程,执行步骤S40”,系统接收到搬移所述内核的指令,当 应用程序向系统发送搬移请求后,接着执行步骤S41”。

在步骤S41”中,判断上述步骤S3中标记的可用内存区中是否有一块连续可用的内存 块,若是,则转至步骤S49”,若否,则执行步骤S42”。

在步骤S42”中,整理可用内存区中的碎片,接着执行步骤S43”。

在步骤S43”中,扫描所述系统RAM区中内存的使用情况,接着执行步骤S44”。

在步骤S44”中,标记所述系统RAM区中离散内存块,接着执行步骤S45”。

在步骤S45”中,修改各该离散内存块虚拟地址相对应的物理地址,接着执行步骤 S46”。

在步骤S46”中,将各该离散内存块搬移、合并,以获得连续大片的内存块,也就是 说,系统通过整理内存碎片的方式将多个小的、不连续的内存块合并成连续满足申请需求的 可用的内存块,接着执行步骤S47”。

在步骤S47”中,判断经合并的内存块容量是否满足申请需求的可用的内存块大小, 若是,则转至步骤49”,若否,则执行步骤S48”。

在步骤S48”中,返回内存申请失败信息,结束。需要说明的是,当内存申请失败后, 系统重新上电时,在启动内核时,基于启动程序存储区中未被搬移的内核启动信息加载所述 内核。

在步骤S49”中,基于所述系统RAM区分配新内核存储区,接着执行步骤S410”。

在步骤S410”中,写入所述内核的搬移数据,即复制所述内核的数据到新分配的内核 存储区,接着执行步骤S411”。

在步骤S411”中,校验所述内核的搬移数据是否正确,若是,则转至步骤412”, 若否,则执行步骤S413”。

在步骤S412”中,更新所述内核的启动加载信息,结束。即系统更新所述启动程序存 储区的内核启动加载信息,以使得系统在重启时,在启动内核时,基于启动程序存储区中更 新后的内核启动信息加载所述内核。

在步骤S413”中,返回数据传输失败信息,结束。需要说明的是,当数据传输失败后, 系统重新上电时,在启动内核时,基于启动程序存储区中未被更新的内核启动信息加载所述 内核。

由上可知,基于系统RAM区搬移内核时,系统首先基于系统RAM区申请一块连续可用 的内存块,并将需要搬移内核的相关数据写入申请的内存块,校验搬移后的内核数据,基于 搬移后的内核存储区的起始地址及大小搬移启动程序存储区中保存的加载内核启动的相关信 息。

如图7所示的文件系统搬移过程,执行步骤S40”’,系统接收到搬移所述文件系统 的指令,当应用程序向系统发送搬移请求后,接着执行步骤S41”’。

在步骤S41”’中,判断上述步骤S3中标记的可用内存区中是否有一块连续可用的内 存块,若是,则转至步骤S49”’,若否,则执行步骤S42”’。

在步骤S42”’中,整理可用内存区中的碎片,接着执行步骤S43”’。

在步骤S43”’中,扫描所述系统RAM区中内存的使用情况,接着执行步骤 S44”’。

在步骤S44”’中,标记所述系统RAM区中离散内存块,接着执行步骤S45”’。

在步骤S45”’中,修改各该离散内存块虚拟地址相对应的物理地址,接着执行步骤 S46”’。

在步骤S46”’中,将各该离散内存块搬移、合并,以获得连续大片的内存块,也就 是说,系统通过整理内存碎片的方式将多个小的、不连续的内存块合并成连续满足申请需求 的可用的内存块,接着执行步骤S47”’。

在步骤S47”’中,判断经合并的内存块容量是否连续可用,若是,则转至步骤 49”’,若否,则执行步骤S48”’。

在步骤S48”’中,返回内存申请失败信息,结束。需要说明的是,当内存申请失败 后,系统重新上电时,在启动文件系统时,基于启动程序存储区中未被搬移的文件系统启动 信息加载所述文件系统。

在步骤S49”’中,基于所述系统RAM区分配新文件系统存储区,接着执行步骤 S410”’。

在步骤S410”’中,写入所述文件系统的搬移数据,即复制所述文件系统的数据到新 分配的文件系统存储区,接着执行步骤S411”’。

在步骤S411”’中,校验所述文件系统搬移数据是否正确,若是,则转至步骤 412”’,若否,则执行步骤S413”’。

在步骤S412”’中,更新所述文件系统的启动加载信息,结束。即系统更新所述启动 程序存储区的文件系统启动加载信息,以使得系统在重启时,在启动文件系统时,基于启动 程序存储区中更新后的文件系统启动信息加载所述文件系统。

在步骤S413”’中,返回数据传输失败信息,结束。需要说明的是,当数据传输失败 后,系统重新上电时,在启动文件系统时,所述引导程序基于所述启动程序存储区中未被更 新的文件系统的启动信息加载所述文件系统。

由上可知,基于系统RAM区搬移文件系统时,系统首先基于系统RAM区申请一块连续 可用的内存块,并将需要搬移文件系统的相关数据写入申请的内存块,校验搬移后的文件系 统数据,基于搬移后的文件系统存储区的起始地址及大小搬移启动程序存储区中保存的加载 文件系统启动的相关信息。

在本发明的动态存储管理方法中,系统更新是指根据功能需求对系统RAM区中部分区 域更新,实现操作系统内核与文件系统分开更新,达到更新过程的灵活管理及更新系统功能; 系统搬移即把系统RAM区中使用比较频繁区域与使用相对不频繁的区域进行调整,实现系 统RAM区存储中内核及文件系统存储位置的动态调整,达到存储器系统擦写使用的均衡延 长其使用寿命。

综上所述,本发明的基于单类型存储器的嵌入式系统的动态存储管理方法,将内核及文 件系统所占用的存储区纳入到操作系统的内存管理体系,统一了存储架构,模糊了内存与外 存的界线,实现内核、文件系统及系统RAM区存储空间共享,同时该动态存储管理方法还 提供一个重要功能,即基于该动态存储管理方法系统可向应用程序提供申请连续内存块的功 能。本发明提出的动态内存管理方法应用于基于单一的非易失随机访问存储器构建存储器系 统,该存储系统逻辑上划分为启动程序存储区与可动态调整的系统RAM区,并且可以根据 功能需基于系统RAM区在系统运行过程中通过应用程序实现系统的更新,既可以基于系统 RAM区存储实现内核及文件系统存储区的动态调整,达到存储器系统的擦写使用均衡延长其 使用寿命,又可以实现操作系统内核与文件系统分开升级,实现升级过程的灵活管理及大大 降低了升级过程中的工作量,并加速了升级过程以达到更新系统功能的目的。所以,本发明 有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技 术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡 所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等 效修饰或改变,仍应由本发明的权利要求所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号