CN101833514A - 基于微内存***在与非型闪存介质实现虚拟内存的方法 - Google Patents

基于微内存***在与非型闪存介质实现虚拟内存的方法 Download PDF

Info

Publication number
CN101833514A
CN101833514A CN200910037842A CN200910037842A CN101833514A CN 101833514 A CN101833514 A CN 101833514A CN 200910037842 A CN200910037842 A CN 200910037842A CN 200910037842 A CN200910037842 A CN 200910037842A CN 101833514 A CN101833514 A CN 101833514A
Authority
CN
China
Prior art keywords
memory
page
internal memory
virtual memory
virtual
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.)
Granted
Application number
CN200910037842A
Other languages
English (en)
Other versions
CN101833514B (zh
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.)
ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.
Original Assignee
ANKAI (GUANGZHOU) SOFTWARE TECHN Co Ltd
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 ANKAI (GUANGZHOU) SOFTWARE TECHN Co Ltd filed Critical ANKAI (GUANGZHOU) SOFTWARE TECHN Co Ltd
Priority to CN2009100378423A priority Critical patent/CN101833514B/zh
Publication of CN101833514A publication Critical patent/CN101833514A/zh
Application granted granted Critical
Publication of CN101833514B publication Critical patent/CN101833514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种基于微内存***在与非型闪存介质实现虚拟内存的方法,先在与非型闪存中虚拟一个存储空间作为虚拟内存;当物理内存无空间存储新的内存页时,将物理内存中的内存页写入虚拟内存上;然后对物理内存原有的内存页进行失效;最后将虚拟内存中需要运算的内存页写入物理内存中,实现物理内存与虚拟内存的内存页交换。本发明相对现有技术的优点在于:采用了按页映射和按数据块循环的方法提高写擦比,减少了读写内存的次数,延长了电子器件的寿命;利用足够备用块的方法以提高***可靠性,保证写擦时有足够的空间,减少数据丢失现象;利用脏标识和内存丢弃机制的方法减少数据回写,提高了内存缓冲的效率和延长了磁盘的寿命。

Description

基于微内存***在与非型闪存介质实现虚拟内存的方法
技术领域
本发明涉及一种虚拟内存的实现方法,尤其涉及一种基于微内存***在与非型闪存介质上实现虚拟内存的方法。
背景技术
近年来,随着微机操作***的发展,操作***具有的功能越来越丰富,大多数操作***具有虚拟内存技术。虚拟内存技术是计算机发展史上的一项重要的技术,它帮助应用程序摆脱了“体积”的限制。虚拟内存的管理方法使***既可以运行体积比物理内存还要大的应用程序,也可以实现“按需调页”策略,既满足了程序的运行速度,又节约了物理内存空间。
虚拟存储器的基本思想是:程序、数据、堆栈的大小可以超过内存的大小,操作***把程序当前使用的部分保留在内存,而把其它部分保存在磁盘上,并在需要时在内存和磁盘之间动态交换。当进程运行时,先将一部分程序装入内存,另一部分暂时留在外存,当要执行的指令或使用的数据不在内存时,由***自动完成将它们从外存调入内存的工作。在进程开始运行之前,不是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要,动态装入其它页面;当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面。当内存空间紧张时,***将内存中某些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域,这种技术是进程在内存与外存之间的动态调度。
现有技术中已有的与本发明最相近似的实现方案有两个:
PC操作***方面:Windows上和LINUX/UNIX上的虚拟内存技术是以硬盘来实现的,但是是基于文件***的,需要一定的物理内存来存放文件***的长驻数据。
嵌入式操作***方面:LINUX和WINDOWS CE的虚拟内存技术是以与非型闪存来实现的,但是还是基于文件***的,这就要有相当大的文件***数据要常驻内存。
无论是PC操作***还是嵌入式操作***,现有的虚拟内存技术均是在文件***上实现的,因为常驻在内存中的数据量比较大,对于微内存***来说,是不可取的。传统的虚拟内存是在文件***上实现的,那么这种方式常驻在内存中数据量就会很大,对于物理内存很小的***来说,当然是不可取的。
对电子行业来说,竞争越来越激烈,为了在行业的竞争中处于不败之地,质量和价格是特别重要的两方面。对于价格方面来讲,成本控制是基础。本***设计的是基于嵌入式环境下的微内存***虚拟内存技术。
发明内容
本发明的目的是为了减少常驻在内存中的数据量,提高***的速度和效率,不在文件***上实现虚拟内存,直接在与非型闪存上实现虚拟内存。
本发明的目的可以通过以下方案实现:基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,先在与非型闪存中虚拟一个存储空间作为虚拟内存;当物理内存无空间存储新的内存页时,将物理内存中的内存页写入虚拟内存上;然后对物理内存原有的内存页进行失效;最后将虚拟内存中需要运算的内存页写入物理内存中,实现物理内存与虚拟内存的内存页交换。
所述的内存页失效是以最久未访问失效策略进行筛选。
所述的虚拟内存与物理内存的内存页交换采用按页映射的过程,即擦一次数据块可以写多个页。
所述的物理内存的内存页写入虚拟内存过程中,有三个优选方法:
1)如果物理内存页的属性是只读,则在虚拟内存中已经存放该内存页,该物理内存页中的内容不用回写到虚拟内存中,并直接将该段物理内存内容清除;否则将该物理内存页写入虚拟内存。
2)利用写写脏标识减少数据回写:如果物理内存页中存放的内容是数据段,要区分数据段的内容是否被修改过;内容没有被修改过,写写脏标识被置为假,不用回写到虚拟内存中,直接将该段物理内存中的内容清除;如果数据段的内容被修改过,写脏标识为真,就将该数据段的内容回写到虚拟内存中,然后将该段物理内存中的内容清除。
3)对于已经空闲的内存,由于该内存已不可用,直接从物理内存中清除,同时也把虚拟内存中对应的一段内存做已丢弃标记。
所述的物理内存回写到虚拟内存的过程中,包括以下内容:
在物理内存和虚拟内存之间定义个映射表,所述的映射表记录所述物理内存的内容在与非型闪存上的存放位置。
内存页回写到虚拟内存采用按数据块循环的过程:当物理内存的内存页内容有改变时,为了提高***效率,不是擦掉虚拟内存上该内容对应的内存页,而是将物理内存的内存页内容写入虚拟内存中当前数据块的下一个空的内存页上。
所述的物理内存的内存页写入虚拟内存过程中,为了解决坏块问题,提高***可靠性,与非型闪存介质保留一定数量的备用块:保证回写完后在虚拟内存中始终保持M(M>=2)个空闲的数据块不变,否则会出现空闲数据块不够用的情况。
本发明相对现有技术的优点在于:采用了按页映射和按数据块循环的方法提高写擦比,减少了读写内存的次数,延长了电子器件的寿命;利用足够备用块的方法以提高***可靠性,保证写擦时有足够的空间,减少数据丢失现象;利用脏标识和内存丢弃机制的方法减少数据回写,提高了内存缓冲的效率和延长了磁盘的寿命。
附图说明
图1是本发明的内存结构示意图;
图2是本发明的内存页从物理内存写入虚拟内存流程示意图;
图3是本发明的内存页从虚拟内存写入物理内存流程示意图。
具体实施方式
如图1所示,为了节约成本,提高竞争力,***采用的物理内存只有192K,利用内存管理单元MMU(Memory Management Unit)把192K物理内存虚拟为2M的虚拟内存,虚拟内存是从与非型闪存介质上分出来的2M空间。物理内存和虚拟内存均以4K为一个内存页,将192K的物理内存分割为192K/4K=48个内存页,虚拟内存和物理内存之间的映射采用按页映射的方法,就是擦一次数据块,可以写很多个页,本***是擦一次数据块,可以写64个页。采用页映射的目的是提高写擦比。***运行过程中物理内存和与非型闪存之间进行数据交换。
其中,物理内存包括了三个部分:16k的底部、160k的中部和16k的顶部。其中16k的底部是固定映射到虚拟内存,结构包括了数据片、状态结构、驱动代码和中断代码。160k的中部不是固定映射到虚拟内存,映射与否取决于内存页是否有被修改,当内存页被修改才会映射到虚拟内存;结构包括了8k的用户堆栈、以符号开始的块、代码段和只读数据段。16k的顶部是固定映射到虚拟内存,结构包括了1k的异常堆栈、1k的中断堆栈、3k的动态数据区、8k的高频代码、2k的二级MMU映射表和1k的一级MMU映射表。
物理内存和与非型闪存之间进行数据交换有两种操作:页面换入和页面换出。换入就是将与非型闪存上相应的内存页加载到物理内存。换出就是将物理内存中内存页回写到与非型闪存上。
页面从物理内存写入虚拟内存过程:
当物理内存无空间存储新的内存页的时候,就需要将某些内存页从物理内存中移出,将物理内存中内存页回写到与非型闪存上,然后使该页的内容失效。采用的方法是利用最久未访问失效策略进行页失效。为了提高***效率和速度和提高与非型闪存的使用寿命(尽量减少与非型闪存的擦写),将物理内存中内存页回写到与非型闪存上有三种优化方法:
1)根据物理内存内存页中存放的内容的属性进行划分,如果内容的属性是只读,则与非型闪存中已有存放,该物理内存内存页中的内容,不用回写到与非型闪存中,直接将该段物理内存中的内容清除。
2)利用写脏标识减少数据回写,写脏标识是真的才需要回写到与非型闪存上。如果物理内存内存页中存放的内容是数据段,要区分数据段的内容是否被修改过。内容没有被修改过,写脏标识被置为假,不用回写到与非型闪存中,直接将该段物理内存中的内容清除;如果数据段段的内容被修改过,写脏标识为真,就将该数据段的内容回写到与非型闪存中,然后将该段物理内存中的内容清除。
3)采用内存丢弃机制:对于已经释放的内存,由于该内存已不可用,直接从物理内存中清除,同时也要把与非型闪存上对应的一段内存做以丢弃标记。
进行页失效要把物理内存数据段的内容回写到与非型闪存上,回写到与非型闪存的方法如下:
1)在物理内存和与非型闪存之间定义一个映射表,回写到与非型闪存时,会边写边修改映射表,映射表会纪录物理内存的内容在与非型闪存上的存放位置;
2)回写数据到与非型闪存,采用的是按数据块循坏的方法。如果物理内存内存页内容有改变,为了提高***效率,不是擦掉与非型闪存上该内容对应的内存页,而是将物理内存的内存页内容写到与非型闪存上当前数据块的下一个空的内存页上;
3)为了解决坏块问题,提高***可靠性,保留一定数量的备用块。保证回写完后在与非型闪存介质中始终保持M(M>=2)个空闲的数据块不变,否则会出现空闲数据块不够用的情况;
block n-1           block n             block n+M-1           block n+M
Figure B2009100378423D0000051
目前的状态是:
块n-1:已写满数据;
块n到块n+M-1:为M个空闲的数据块;
块n+M不为空,有可能存在有效的数据页,需要回收。
页面写入虚拟内存流程如图2所示:
a)检查块n-1是否写满;
b)如果步骤a返回的结果为是,则取下一个合法的块n并检测块n+M是否为空;如果步骤a返回的结果为否,则跳到步骤g;
c)如果步骤b返回的结果为否,则将合法的页从块n+M移到块n;并检查是否移动成功;
d)如果步骤c返回的结果为是,则跳到步骤f;如果步骤c返回的结果为否,则取下一个合法的块n,并使M自减1;
e)取代该块并标记为坏,返回步骤c;
f)如果步骤b返回的结果为是,则擦掉块n+M并检查是否成功擦掉;
g)如果步骤f返回的结果为否,则标记该块为坏块并返回步骤c;如果步骤f返回的结果为是,则将页面数据写入当前的块并检查是否写入成功;
h)如果步骤g返回的结果为是,则更新映射表;如果步骤d返回的结果为否,则取下一个合法的块n,并使M自减1;
i)取代该块并标记为坏,返回步骤g。
上述步骤中因为出现写失败而出现的“M自减1”会导致空闲块的个数M减少,也就是备用空闲的块不足,遇到这种情况,在完成写流程后需要再进行一个备用空闲的块的回收才能保证空闲的块数量保持不变。
页面从虚拟内存写入物理内存过程:
将与非型闪存上相应的内存页加载到物理内存的流程如图3所示,首先查询与非型闪存的记忆体上的映射表,取出与非型闪存页对应的id;然后从与非型闪存的记忆体读取内存页;最后更新MMU的映射表。
本发明解决了在微内存***上,直接在与非型闪存上实现虚拟内存的方法并提供了提高***性能和效率,提高与非型闪存使用寿命的方法和提供了处理与非型闪存坏块问题的方法。

Claims (9)

1.基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,先在与非型闪存中虚拟一个存储空间作为虚拟内存;当物理内存无空间存储新的内存页时,将物理内存中的内存页写入虚拟内存上;然后对物理内存原有的内存页进行失效;最后将虚拟内存中需要运算的内存页写入物理内存中,实现物理内存与虚拟内存的内存页交换。
2.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的内存页失效是以最久未访问失效策略进行筛选。
3.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的虚拟内存与物理内存的内存页交换采用按页映射的过程,即刷新一次数据块可以写多个页。
4.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的物理内存的内存页写入虚拟内存过程中,当物理内存页的属性是只读,则表示在虚拟内存中已经存放该内存页,对应的物理内存页中的内容不用回写到虚拟内存中,并直接将该段物理内存内容清除;否则将该物理内存页写入虚拟内存。
5.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的物理内存的内存页写入虚拟内存过程中,利用脏标识减少数据回写:当物理内存页中存放的内容是数据段,要区分数据段的内容是否被修改过;内容没有被修改过,脏标识被置为假,不用回写到虚拟内存中,直接将该段物理内存中的内容清除;当数据段的内容被修改过,脏标识为真,就将该数据段的内容回写到虚拟内存中,然后将该段物理内存中的内容清除。
6.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的物理内存的内存页写入虚拟内存过程中,对于已经释放并空闲的内存,由于该内存已不可用,直接将该内存从物理内存中清除,同时也把虚拟内存中对应的一段内存做已丢弃标记。
7.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,在所述的物理内存和虚拟内存之间构建个映射表,所述的映射表记录所述物理内存的内容在与非型闪存上的存放位置。
8.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的内存页回写到虚拟内存的过程采用按数据块循环的过程:当物理内存的内存页内容有改变时,将物理内存的内存页内容写入虚拟内存中当前数据块的下一个空的内存页上;当前块被写满,则写入到相邻的一个空闲有效块上去。
9.根据权利要求1所述的基于微内存***在与非型闪存介质实现虚拟内存的方法,其特征在于,所述的物理内存的内存页写入虚拟内存过程中,与非型闪存介质至少保留2个以上的备用空闲数据块。
CN2009100378423A 2009-03-12 2009-03-12 基于微内存***在与非型闪存介质实现虚拟内存的方法 Active CN101833514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100378423A CN101833514B (zh) 2009-03-12 2009-03-12 基于微内存***在与非型闪存介质实现虚拟内存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100378423A CN101833514B (zh) 2009-03-12 2009-03-12 基于微内存***在与非型闪存介质实现虚拟内存的方法

Publications (2)

Publication Number Publication Date
CN101833514A true CN101833514A (zh) 2010-09-15
CN101833514B CN101833514B (zh) 2012-02-15

Family

ID=42717590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100378423A Active CN101833514B (zh) 2009-03-12 2009-03-12 基于微内存***在与非型闪存介质实现虚拟内存的方法

Country Status (1)

Country Link
CN (1) CN101833514B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184145A (zh) * 2011-05-13 2011-09-14 杭州华三通信技术有限公司 重启数据不丢失方法及逻辑存储资源管理单元
CN102253893A (zh) * 2011-04-02 2011-11-23 赵悦 一种内存扩展方法
CN102662799A (zh) * 2012-04-13 2012-09-12 华为技术有限公司 数据备份的方法、服务器及热备份***
CN102662867A (zh) * 2012-04-16 2012-09-12 上海大亚科技有限公司 嵌入式***应用设备闪存中实现虚拟内存转存控制的方法
CN106528454A (zh) * 2016-11-04 2017-03-22 中国人民解放军国防科学技术大学 一种基于闪存的内存***缓存机制
CN109408405A (zh) * 2018-10-15 2019-03-01 Oppo广东移动通信有限公司 内存页交换方法、装置、终端及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332172B1 (en) * 1998-05-29 2001-12-18 Cisco Technology, Inc. Method and system for virtual memory compression in an embedded system
CN100527098C (zh) * 2007-11-27 2009-08-12 北京大学 一种虚拟机管理器的动态内存映射方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253893A (zh) * 2011-04-02 2011-11-23 赵悦 一种内存扩展方法
CN102184145A (zh) * 2011-05-13 2011-09-14 杭州华三通信技术有限公司 重启数据不丢失方法及逻辑存储资源管理单元
CN102184145B (zh) * 2011-05-13 2013-04-17 杭州华三通信技术有限公司 重启数据不丢失方法及装置
US8819372B2 (en) 2011-05-13 2014-08-26 Hangzhou H3C Technologies Co., Ltd. Preventing data loss during reboot and logical storage resource management device
CN102662799A (zh) * 2012-04-13 2012-09-12 华为技术有限公司 数据备份的方法、服务器及热备份***
CN102662799B (zh) * 2012-04-13 2015-01-21 华为技术有限公司 数据备份的方法、服务器及热备份***
CN102662867A (zh) * 2012-04-16 2012-09-12 上海大亚科技有限公司 嵌入式***应用设备闪存中实现虚拟内存转存控制的方法
CN106528454A (zh) * 2016-11-04 2017-03-22 中国人民解放军国防科学技术大学 一种基于闪存的内存***缓存机制
CN106528454B (zh) * 2016-11-04 2019-03-29 中国人民解放军国防科学技术大学 一种基于闪存的内存***缓存方法
CN109408405A (zh) * 2018-10-15 2019-03-01 Oppo广东移动通信有限公司 内存页交换方法、装置、终端及存储介质
CN109408405B (zh) * 2018-10-15 2021-03-09 Oppo广东移动通信有限公司 内存页交换方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN101833514B (zh) 2012-02-15

Similar Documents

Publication Publication Date Title
US11899575B1 (en) Flash memory system with address-based subdivision selection by host and metadata management in storage drive
CN106547703B (zh) 一种基于块组结构的ftl优化方法
CN102135942B (zh) 一种存储设备中实现损耗均衡的方法及存储设备
CN102163175B (zh) 一种基于局部性分析的混合地址映射方法
CN101634967B (zh) 用于闪存的区块管理方法、储存***与控制器
CN101833514B (zh) 基于微内存***在与非型闪存介质实现虚拟内存的方法
US9032244B2 (en) Memory segment remapping to address fragmentation
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
US8214578B2 (en) Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same
CN101740110B (zh) 一种Nand Flash擦除均衡的方法及装置
CN102508787B (zh) 混合结构内存的内存分配***及方法
CN103049397A (zh) 一种基于新型存储器的固态硬盘内部缓存管理方法及***
CN103092766A (zh) 一种用于nand flash的均衡损耗实现方法
CN101169760B (zh) 电子硬盘的存储空间的管理方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
CN102521160A (zh) 写缓冲检测器、写入数据的寻址方法、并行通道写入方法
CN101556555B (zh) 用于闪存的区块管理方法、其控制器与储存***
CN102999441B (zh) 一种细粒度内存访问的方法
CN102768645A (zh) 混合缓存的固态硬盘预取方法和固态硬盘ssd
CN101645043A (zh) 写数据的方法、读数据的方法及存储设备
CN101571832A (zh) 数据写入方法及使用该方法的快闪存储***与其控制器
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存***与控制器
CN101714065A (zh) 一种闪存控制器的映射信息管理方法
CN101866320B (zh) 数据管理方法及使用此方法的闪存储存***与控制器
CN102306124A (zh) Nand Flash芯片硬件驱动层的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200603

Address after: 321200 building a, Kaiyu Microelectronics Industrial Park, Wuyi science and Technology City, No.316, Wujiang Avenue, Wuyi County, Jinhua City, Zhejiang Province

Patentee after: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 301-303 401-402, zone C1, No. 182, science Avenue, Science City, Guangzhou high tech Industrial Development Zone

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 321200 building a, inspection workshop building, Kaiyu Microelectronics Industrial Park, science and Technology City, Wuyi County, Jinhua City, Zhejiang Province (self declaration)

Patentee after: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 321200 building a, Kaiyu Microelectronics Industrial Park, Wuyi science and Technology City, 316 Wujiang Avenue, Wuyi County, Jinhua City, Zhejiang Province

Patentee before: ZHEJIANG JINHUA KAIYU ELECTRONIC TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder