CN102662867A - 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法 - Google Patents

嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法 Download PDF

Info

Publication number
CN102662867A
CN102662867A CN2012101115412A CN201210111541A CN102662867A CN 102662867 A CN102662867 A CN 102662867A CN 2012101115412 A CN2012101115412 A CN 2012101115412A CN 201210111541 A CN201210111541 A CN 201210111541A CN 102662867 A CN102662867 A CN 102662867A
Authority
CN
China
Prior art keywords
memory
flash memory
unloading piece
embedded system
virtual memory
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.)
Pending
Application number
CN2012101115412A
Other languages
English (en)
Inventor
徐正伟
周荣安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DAYA SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Original Assignee
DAYA SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by DAYA SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI filed Critical DAYA SCIENCE AND TECHNOLOGY Co Ltd SHANGHAI
Priority to CN2012101115412A priority Critical patent/CN102662867A/zh
Publication of CN102662867A publication Critical patent/CN102662867A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明涉及一种在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其将应用设备的闪存划分出一个包括多个转存块的虚拟内存区,在嵌入式系统运行后,当内存占用率超过预设上限时,处理器将需要断电保护的用户设定数据存入一个转存块,然后将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存。利用本发明的方法实现内存与闪存间的数据转换,利用闪存作为虚拟内存,限制了系统对内存空间容量的要求,大幅降低应用设备的整体成本,同时当应用设备重启时,保存在闪存中数据又能够恢复到内存中,不至于丢失,且本发明的方法的应用方式简单,实现成本低廉,应用范围也极为广泛。

Description

嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法
技术领域
本发明涉及嵌入式系统应用技术领域,特别涉及嵌入式系统的虚拟内存技术领域,具体是指一种在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法。
背景技术
在嵌入式系统启动时,需要将flash里的数据全部读取到内存中,以便系统运行时使用。
但是,随着嵌入式系统的不断发展,其容量日益增加,嵌入式系统应用设备的资源通常较为紧张,内存容量有限,由于系统运行时的各种数据都要保存在内存中,所以当需要保存的数据超过内存容量时,就不得不考虑加大内存的容量,这就造成嵌入式系统应用设备的整体成本上升。
另一方面,嵌入式设备中的flash通常具有较多的空间,其价格也要比内存低。因此,现有技术中亟需一种能够有效利用flash实现虚拟内存的方法来控制嵌入式系统应用设备的整体成本。
发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种能够在嵌入式系统运行过程中实现内存与闪存间的数据转换,利用闪存作为虚拟内存,从而有效限制嵌入式系统对内存空间容量的要求,大幅降低嵌入式系统应用设备的整体成本,且应用方式简单,实现成本低廉,应用范围极为广泛的嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法。
嵌入式系统包括处理器、内存和闪存,所述的内存通过所述的处理器连接所述的闪存,所述的闪存存储有嵌入式系统的系统文件。
为了实现上述的目的,本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法中,应用设备的闪存包括一虚拟内存区,该虚拟内存区包括多个转存块,所述的方法包括以下步骤:
(1)所述的嵌入式系统应用设备启动,所述的内存运行所述的嵌入式系统;
(2)当所述的内存占用率超过预设上限时,所述的处理器将部分内存数据存入所述的闪存上的虚拟内存区的一个转存块;
(3)所述的处理器将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存,然后返回步骤(2)。
该在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法中,所述的虚拟内存区存储有当前转存块标记,所述的步骤(2)具体包括以下步骤:
(21)当所述的内存占用率超过预设上限时,所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(22)所述的处理器将部分内存数据存入所述的当前转存块中。
该在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法中,所述的步骤(3)具体包括以下步骤:
(31)所述的处理器将下一转存块设定为新的当前转存块,并将该转存块的标记存储至所述的虚拟内存区的当前转存块标记;
(32)所述的处理器将当前转存块中的数据读取至所述的内存,并返回步骤(2)。
该在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法中,所述的步骤(1)具体包括以下步骤:
(11)所述的嵌入式系统应用设备启动,所述的处理器将闪存中的系统文件读取至所述的内存;
(12)所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(13)所述的处理器将所述的当前转存块中的数据读取至所述的内存;
(14)所述的内存运行所述的嵌入式系统。
该在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法中,所述的处理器将部分内存数据存入所述的闪存上的虚拟内存区的一个转存块,具体为:所述的处理器将需要断电保护的用户设定数据存入所述的闪存上的虚拟内存区的一个转存块。
采用了该发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其将应用设备的闪存划分出一个虚拟内存区,并将该虚拟内存区划分出多个转存块,在应用设备启动,内存运行嵌入式系统后,当内存占用率超过预设上限时,处理器将需要断电保护的用户设定数据存入所述的一个转存块,然后将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存。如此循环即可实现内存与闪存间的数据转换,利用闪存作为虚拟内存,从而有效限制嵌入式系统对内存空间容量的要求,大幅降低嵌入式系统应用设备的整体成本,同时当应用设备重启时,保存在闪存中的用户设定数据又能够恢复到内存中,不至于丢失,本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其应用方式简单,实现成本低廉,应用范围也极为广泛。
附图说明
图1为本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法的步骤流程图。
图2为本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法在实际应用中的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
请参阅图1所示,为本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法的步骤流程图。
嵌入式系统包括处理器、内存和闪存,所述的内存通过所述的处理器连接所述的闪存,所述的闪存存储有嵌入式系统的系统文件。
在一种实施方式中,所述的闪存包括一虚拟内存区,该虚拟内存区包括多个转存块,所述的方法包括以下步骤:
(1)所述的嵌入式系统应用设备启动,所述的内存运行所述的嵌入式系统;
(2)当所述的内存占用率超过预设上限时,所述的处理器将部分内存数据存入所述的闪存上的虚拟内存区的一个转存块,所述的部分数据为需要断电保护的用户设定数据;
(3)所述的处理器将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存,然后返回步骤(2)。
在一种较优选的实施方式中,所述的虚拟内存区存储有当前转存块标记,所述的步骤(2)具体包括以下步骤:
(21)当所述的内存占用率超过预设上限时,所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(22)所述的处理器将部分内存数据存入所述的当前转存块中。
且所述的步骤(3)具体包括以下步骤:
(31)所述的处理器将下一转存块设定为新的当前转存块,并将该转存块的标记存储至所述的虚拟内存区的当前转存块标记;
(32)所述的处理器将当前转存块中的数据读取至所述的内存,并返回步骤(2)。
在一种更优选的实施方式中,所述的步骤(1)具体包括以下步骤:
(11)所述的嵌入式系统应用设备启动,所述的处理器将闪存中的系统文件读取至所述的内存;
(12)所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(13)所述的处理器将所述的当前转存块中的数据读取至所述的内存;
(14)所述的内存运行所述的嵌入式系统。
在本发明的应用中,本发明的实现步骤,如图2所述,主要包括以下步骤:
1、首先预定一个大的flash区域作为保存内存数据的区域(是一个块的整数倍);
2、从flash区域读取标记值,决定读哪一个块的flash,并将该块的数据读到内存中来,恢复关键数据的值;
3、随着内存中存取的数据的增加,当达到一定大小时,存储到指定的flash中,并将flash下一个块的数据读到内存中来;
4、如此循环使用,便可实现内存与flash数据交换。
该方法的具有实现程序如下所述:
恢复内存:
Figure BDA0000153715980000041
Figure BDA0000153715980000051
把内存保存进flash,并把新块读到内存:
Figure BDA0000153715980000061
通过这样的处理方法,使内存可以和flash数据交换,以便充分利用内存和flash。以光纤电表为例,如果不使用本发明的方法,需要使用内存48KB左右,而在使用本发明的方法利用flash保存某部分数据后,仅需8KB左右的内存,从而大大降低了系统对内存的需求。
利用本发明的嵌入式系统应用设备具有以下的优点:
1、节省了内存,在内存紧缺的嵌入式系统中,保存数据的内存需要量从48KB减到了8KB。
2、需要断电保存的数据每隔一段时间就保存时flash,避免数据的丢失,嵌入式系统重启后,需要使用到重启前关键数据块的值,本发明可以恢复原来内存的值。
采用了该发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其将应用设备的闪存划分出一个虚拟内存区,并将该虚拟内存区划分出多个转存块,在应用设备启动,内存运行嵌入式系统后,当内存占用率超过预设上限时,处理器将需要断电保护的用户设定数据存入所述的一个转存块,然后将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存。如此循环即可实现内存与闪存间的数据转换,利用闪存作为虚拟内存,从而有效限制嵌入式系统对内存空间容量的要求,大幅降低嵌入式系统应用设备的整体成本,同时当应用设备重启时,保存在闪存中的用户设定数据又能够恢复到内存中,不至于丢失,本发明的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其应用方式简单,实现成本低廉,应用范围也极为广泛。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (5)

1.一种在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,所述的嵌入式系统包括处理器、内存和闪存,所述的内存通过所述的处理器连接所述的闪存,所述的闪存存储有嵌入式系统的系统文件,其特征在于,所述的闪存包括一虚拟内存区,该虚拟内存区包括多个转存块,所述的方法包括以下步骤:
(1)所述的嵌入式系统应用设备启动,所述的内存运行所述的嵌入式系统;
(2)当所述的内存占用率超过预设上限时,所述的处理器将部分内存数据存入所述的闪存上的虚拟内存区的一个转存块;
(3)所述的处理器将下一个转存块设定为当前转存块,并将当前转存块中的数据读取至所述的内存,然后返回步骤(2)。
2.根据权利要求1所述的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其特征在于,所述的虚拟内存区存储有当前转存块标记,所述的步骤(2)具体包括以下步骤:
(21)当所述的内存占用率超过预设上限时,所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(22)所述的处理器将部分内存数据存入所述的当前转存块中。
3.根据权利要求2所述的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其特征在于,所述的步骤(3)具体包括以下步骤:
(31)所述的处理器将下一转存块设定为新的当前转存块,并将该转存块的标记存储至所述的虚拟内存区的当前转存块标记;
(32)所述的处理器将当前转存块中的数据读取至所述的内存,并返回步骤(2)。
4.根据权利要求2所述的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其特征在于,所述的步骤(1)具体包括以下步骤:
(11)所述的嵌入式系统应用设备启动,所述的处理器将闪存中的系统文件读取至所述的内存;
(12)所述的处理器读取所述的闪存上的虚拟内存区中的当前转存块标记,确定当前转存块;
(13)所述的处理器将所述的当前转存块中的数据读取至所述的内存;
(14)所述的内存运行所述的嵌入式系统。
5.根据权利要求1至4中任一项所述的在具有嵌入式系统的应用设备闪存中实现虚拟内存转存控制的方法,其特征在于,所述的处理器将部分内存数据存入所述的闪存上的虚拟内存区的一个转存块,具体为:
所述的处理器将需要断电保护的用户设定数据存入所述的闪存上的虚拟内存区的一个转存块。
CN2012101115412A 2012-04-16 2012-04-16 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法 Pending CN102662867A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101115412A CN102662867A (zh) 2012-04-16 2012-04-16 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101115412A CN102662867A (zh) 2012-04-16 2012-04-16 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法

Publications (1)

Publication Number Publication Date
CN102662867A true CN102662867A (zh) 2012-09-12

Family

ID=46772363

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101115412A Pending CN102662867A (zh) 2012-04-16 2012-04-16 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法

Country Status (1)

Country Link
CN (1) CN102662867A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965708A (zh) * 2015-06-30 2015-10-07 北京奇艺世纪科技有限公司 一种应用程序运行过程的内存管理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216772A (zh) * 2008-01-15 2008-07-09 中兴通讯股份有限公司 一种嵌入式设备的启动方法及软件升级方法
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices
CN101833514A (zh) * 2009-03-12 2010-09-15 安凯(广州)软件技术有限公司 基于微内存系统在与非型闪存介质实现虚拟内存的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320214A1 (en) * 2003-12-02 2008-12-25 Super Talent Electronics Inc. Multi-Level Controller with Smart Storage Transfer Manager for Interleaving Multiple Single-Chip Flash Memory Devices
CN101216772A (zh) * 2008-01-15 2008-07-09 中兴通讯股份有限公司 一种嵌入式设备的启动方法及软件升级方法
CN101833514A (zh) * 2009-03-12 2010-09-15 安凯(广州)软件技术有限公司 基于微内存系统在与非型闪存介质实现虚拟内存的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965708A (zh) * 2015-06-30 2015-10-07 北京奇艺世纪科技有限公司 一种应用程序运行过程的内存管理方法及装置
CN104965708B (zh) * 2015-06-30 2018-09-28 北京奇艺世纪科技有限公司 一种应用程序运行过程的内存管理方法及装置

Similar Documents

Publication Publication Date Title
CN105677742B (zh) 一种存储文件的方法及装置
CN103902465B (zh) 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器
CN102411628B (zh) 基于android系统的文件扫描方法及装置
CN106067321A (zh) 适于存储器编程暂停-恢复的控制器
CN109614377A (zh) 分布式文件系统的文件删除方法、装置、设备及存储介质
CN102843396A (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
CN103268202B (zh) 一种扩容方法和设备
CN106294026A (zh) 一种固态盘异常掉电后的映射表恢复方法及其系统
CN102521260B (zh) 数据预热方法及装置
CN103593226A (zh) 一种提高虚拟机磁盘io性能的方法
CN108829510B (zh) 线程绑定处理方法和装置
CN102821164A (zh) 一种高效并行分布式数据处理系统
CN105187564A (zh) 一种手机端文件断点续传的方法
CN103617260A (zh) 重复数据删除的索引生成方法及装置
RU2015151012A (ru) Запоминающие системы и память с привязками
CN103544270B (zh) 面向数据中心的通用化网络编码容错存储平台及工作方法
CN103176920A (zh) Nor flash掉电保护方法及装置
CN103677893B (zh) 开机的映像文件的大小缩减方法及运算装置
CN102662867A (zh) 嵌入式系统应用设备闪存中实现虚拟内存转存控制的方法
CN104102498A (zh) 一种移动终端及其开机方法
CN102929676B (zh) 基于安卓操作系统终端设备的快速适配方法
EP2577472A1 (en) Asynchronous bad block management in nand flash memory
CN103963472A (zh) 一种芯片复位方法及其复位装置
CN109101843A (zh) 一种归档数据安全存储方法和装置
CN103399716A (zh) 写数据和读数据的方法、及写数据和读数据处理器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120912