CN103365786B - 数据存储方法、装置和*** - Google Patents
数据存储方法、装置和*** Download PDFInfo
- Publication number
- CN103365786B CN103365786B CN201210096024.2A CN201210096024A CN103365786B CN 103365786 B CN103365786 B CN 103365786B CN 201210096024 A CN201210096024 A CN 201210096024A CN 103365786 B CN103365786 B CN 103365786B
- Authority
- CN
- China
- Prior art keywords
- page
- address
- dynamic
- memory
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种数据存储方法、装置和***。其中,数据存储方法用于将数据存储于指定逻辑地址,包括:获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元;将本次要存储的数据写入到所述动态存储单元中;修改地址映射关系,令所述指定逻辑地址对应所述动态存储单元的物理地址,将所述指定逻辑地址对应的存储单元作为新的动态存储单元。本发明的数据存储方法、装置和***,利用动态页实现了存储器页地址的动态映射,每次擦写动作会启动一次地址的重映射,频繁擦写的页会自动映射到其他页,因此均衡了各页的擦写次数,从而增加了存储器整体可擦写的次数,延长了存储器的寿命,增强了存储器的可靠性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据存储方法、装置和***。
背景技术
随着集成电路的快速发展,非易失性存储器的使用越来越广泛。一般来说,非易失性存储器由多个页存储单元(以下简称页)组成,页是非易失性存储器擦写的基本单元,每个页的擦写次数有限,而这个次数也决定了非易失性存储器的寿命。
实际应用中,一部分数据需要频繁改写,这些数据所在的页因此经常要进行擦写,这些页的擦写次数上限往往决定了非易失性存储器的寿命。
目前,有一种提高非易失性存储器寿命的方法是:在存储器中开辟一块空间,记录每个页的擦写次数,当某一页的擦写次数接近设定的阈值时,通知软件将该页的数据改写到其他页,其他页根据它们的擦写次数选取。该方案采用软件对页进行调度,对用户不透明,页数据搬移由软件完成,效率低。
发明内容
本发明所要解决的技术问题是提供一种数据存储方法、装置和***,延长存储器的寿命,增强存储器的可靠性。
为解决上述技术问题,本发明提出了一种数据存储方法,用于将数据存储于指定逻辑地址,包括:
获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元;
将本次要存储的数据写入到所述动态存储单元中;
修改地址映射关系,令所述指定逻辑地址对应所述动态存储单元的物理地址,将所述指定逻辑地址对应的存储单元作为新的动态存储单元。
进一步地,上述数据存储方法还可具有以下特点,所述存储单元是存储器中的物理页。
进一步地,上述数据存储方法还可具有以下特点,在所述获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元之前,还包括:
在存储器中设置动态页和存储页,所述动态页为所述动态存储单元;
为每个存储页设置对应的逻辑地址;
保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。
进一步地,上述数据存储方法还可具有以下特点,所述在存储器中设置动态页和存储页包括:
设置数个存储块,每个存储块包含设定数量的物理页;
为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页。
为解决上述技术问题,本发明还提出了一种数据存储装置,用于将数据存储于指定逻辑地址,包括:
获取模块,用于获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元;
存储模块,用于将本次要存储的数据写入到所述动态存储单元的物理地址中;
地址更新模块,用于修改地址映射关系,令所述指定逻辑地址对应所述动态存储单元的物理地址,将所述指定逻辑地址对应的存储单元作为新的动态存储单元。
进一步地,上述数据存储装置还可具有以下特点,所述存储单元是存储器中的物理页。
进一步地,上述数据存储装置还可具有以下特点,还包括:
第一设置模块,用于在存储器中设置动态页和存储页,所述动态页为所述动态存储单元;
第二设置模块,用于为每个存储页设置对应的逻辑地址;
地址映射模块,用于保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。
进一步地,上述数据存储装置还可具有以下特点,所述第一设置模块包括:
分块单元,用于设置数个存储块,每个存储块包含设定数量的物理页;
分配单元,用于为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页。
为解决上述技术问题,本发明还提出了一种数据存储***,包括存储器、地址映射模块和上述任一项所述的数据存储装置,所述存储器中包含动态页和存储页,其中:
所述存储器,用于存储数据;
所述地址映射模块,用于保存所述存储器中动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系;
所述数据存储装置,用于根据所述地址映射模块保存的地址映射关系和动态页的物理地址,控制对所述存储器的读写,以及将更新后的地址映射关系写入到所述地址映射模块。
进一步地,上述数据存储***还可具有以下特点,所述存储器为非易失性存储器。
本发明的数据存储方法、装置和***,利用动态页实现了存储器页地址的动态映射,每次擦写动作会启动一次地址的重映射,频繁擦写的页会自动映射到其他页,因此均衡了各页的擦写次数,从而增加了存储器整体可擦写的次数,延长了存储器的寿命,增强了存储器的可靠性。并且,本发明的数据存储方法,整个存储过程自动完成,效率高,而且对用户透明。
附图说明
图1为本发明实施例中数据存储方法的流程图;
图2为本发明中存储器的存储结构示意图;
图3为地址映射关系和动态页的示意图;
图4为擦写逻辑页地址为Nm的页前后的地址映射关系对比图;
图5为本发明实施例中数据存储装置的结构框图;
图6为本发明实施例中数据存储***的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
图1为本发明实施例中数据存储方法的流程图。如图1所示,本实施例中,数据存储方法的流程包括如下步骤:
步骤101,要擦写逻辑地址为Nm的页,即要将数据写入对应逻辑地址为Nm的物理页;
其中,存储器可以是非易失性存储器。存储器由存储单元构成,本实施例中,存储单元为存储器的物理页,每个物理页的大小可以根据需要确定。
图2为本发明中存储器的存储结构示意图。如图2所示,存储器包括页N0到页Np-1和动态页共Np+1个物理页,其中,页N0到页Np-1和这Np个物理页有对应的逻辑地址,动态页没有对应的逻辑地址。
因此,在执行步骤102之前,还需要做以下的准备工作:
(a)在存储器物理地址中设置动态页和存储页,其中,将动态页地址称为动态物理地址;
设置动态页和存储页的一种方式是:
设置数个存储块,每个存储块包含设定数量的物理页;
为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页。
例如,将一个存储器中的80个物理页设置为5个存储块,每个存储块包含16个物理页,为每个存储块增加一个物理页作为动态页。
(b)为每个存储页设置对应的逻辑地址;
(c)保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系,地址映射关系和动态页的示意图如图3所示。
图3为地址映射关系和动态页的示意图。如图3所示,逻辑地址N0对应的物理地址为a,......,逻辑地址Np-1对应的物理地址为z,物理地址x不与任何逻辑地址对应,x为动态页的初始物理地址。
步骤102,查询到逻辑地址Nm对应的物理地址为n;
各逻辑地址对应的物理地址可以根据地址映射关系找到,如图3所示。
步骤103,查到当前动态页的物理地址为x;
动态页的物理地址也可以根据地址映射关系找到,如图3所示。
步骤104,擦写物理地址为x的页,也即将待存储的数据写入当前的动态页x;
步骤105,修改逻辑地址Nm对应的物理地址为x;
步骤106,修改动态页的物理地址为n,也就是说,擦写完逻辑地址为Nm的页后,物理地址n成为了新的动态页。
图4为擦写逻辑地址为Nm的页前后的地址映射关系对比图。由图4可见,当擦写逻辑地址为Nm的页后,逻辑地址Nm对应的物理地址修改为x,而动态页的物理地址更新为n。
本发明的数据存储方法,利用动态页实现了存储器页地址的动态映射,每次擦写动作会启动一次地址的重映射,频繁擦写的页会自动映射到其他页,因此均衡了各页的擦写次数,从而增加了存储器整体可擦写的次数,延长了存储器的寿命,增强了存储器的可靠性。并且,本发明的数据存储方法,整个存储过程自动完成,效率高,而且对用户透明。
本发明还提出了一种数据存储装置,用以实施上述的数据存储方法,将数据存储到指定逻辑地址。
图5为本发明实施例中数据存储装置的结构框图。如图5所示,本实施例中,数据存储装置200包括获取模块210、存储模块220和地址更新模块230。其中,获取模块210用于获得动态存储单元的物理地址以及本次要存储的数据的逻辑地址(即前述的指定逻辑地址)对应的存储单元。存储模块220用于将本次要存储的数据写入到动态存储单元中。地址更新模块230用于修改地址映射关系,令指定逻辑地址对应动态存储单元,将指定逻辑地址对应的存储单元作为新的动态存储单元。其中,存储器可以是非易失性存储器。存储单元可以为存储器的物理页。
在本发明的其他实施例中,数据存储装置还可以包括第一设置模块、第二设置模块和地址映射模块。其中,第一设置模块用于在存储器中设置动态页和存储页,其中,动态页即为动态存储单元。第二设置模块用于为每个存储页设置对应的逻辑地址。地址映射模块用于保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。
其中,第一设置模块可以进一步包括分块单元和分配单元。分块单元用于设置数个存储块,每个存储块包含设定数量的物理页。分配单元用于为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页。例如,将一个存储器的80个物理页设置为5个存储块,每个存储块包含16个物理页,并为每个存储块增加一个物理页作为该存储块的动态页。
本发明的数据存储装置,利用动态页实现了存储器页地址的动态映射,每次擦写动作会启动一次地址的重映射,频繁擦写的页会自动映射到其他页,因此均衡了各页的擦写次数,从而增加了存储器整体可擦写的次数,延长了存储器的寿命,增强了存储器的可靠性。并且,本发明的数据存储装置所执行的数据存储方法,整个存储过程自动完成,效率高,而且对用户透明。
本发明还提出了一种数据存储***。
图6为本发明实施例中数据存储***的结构框图。如图6所示,本实施例中,数据存储***包括存储器100、地址映射模块300和数据存储装置200,存储器100中包含动态页和存储页。存储器100用于存储数据。地址映射模块300用于保存存储器100中动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。数据存储装置200用于根据地址映射模块300保存的地址映射关系和动态页的物理地址,控制对存储器100的读写,以及将更新后的地址映射关系写入到地址映射模块300。其中,存储器可以是非易失性存储器。
该数据存储***中,数据存储装置200采用本发明前述的数据存储方法,将待存储数据存储到存储器100中的指定逻辑地址。
数据存储装置200在前面已有描述,此处不再赘述。
本发明的数据存储***,利用动态页实现了存储器页地址的动态映射,每次擦写动作会启动一次地址的重映射,频繁擦写的页会自动映射到其他页,因此均衡了各页的擦写次数,从而增加了存储器整体可擦写的次数,延长了存储器的寿命,增强了存储器的可靠性。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据存储方法,用于将数据存储于指定逻辑地址,其特征在于,包括:
获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元;
将本次要存储的数据写入到所述动态存储单元中;
修改地址映射关系,令所述指定逻辑地址对应所述动态存储单元的物理地址,将所述指定逻辑地址对应的存储单元作为新的动态存储单元;
在所述获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元之前,还包括:在存储器中设置动态页和存储页,所述动态页为所述动态存储单元;
所述在存储器中设置动态页和存储页包括:
设置数个存储块,每个存储块包含设定数量的物理页;
为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页;
将所述指定逻辑地址对应的存储单元作为新的动态存储单元,具体包括如下步骤:
步骤101,要擦写逻辑地址为Nm的页,即要将数据写入对应逻辑地址为Nm的物理页;
步骤102,查询到逻辑地址Nm对应的物理地址为n;
步骤103,查到当前动态页的物理地址为x;
步骤104,擦写物理地址为x的页,也即将待存储的数据写入当前的动态页x;
步骤105,修改逻辑地址Nm对应的物理地址为x;
步骤106,修改动态页的物理地址为n,擦写完逻辑地址为Nm的页后, 物理地址n成为了新的动态页。
2.根据权利要求1所述的数据存储方法,其特征在于,所述存储单元是存储器中的物理页。
3.根据权利要求1所述的数据存储方法,其特征在于,在所述获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元之前,还包括:
为每个存储页设置对应的逻辑地址;
保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。
4.一种数据存储装置,用于将数据存储于指定逻辑地址,其特征在于,包括:
获取模块,用于获得动态存储单元的物理地址以及所述指定逻辑地址对应的存储单元;
存储模块,用于将本次要存储的数据写入到所述动态存储单元的物理地址中;
地址更新模块,用于修改地址映射关系,令所述指定逻辑地址对应所述动态存储单元的物理地址,将所述指定逻辑地址对应的存储单元作为新的动态存储单元;
第一设置模块,用于在存储器中设置动态页和存储页,所述动态页为所述动态存储单;所述第一设置模块包括:
分块单元,用于设置数个存储块,每个存储块包含设定数量的物理页;
分配单元,用于为每个存储块分配一个物理页作为动态页,将该存储块中的其它物理页设置为存储页;
所述地址更新模块中,要擦写逻辑地址为Nm的页,即要将数据写入对应逻辑地址为Nm的物理页;查询到逻辑地址Nm对应的物理地址为n;查到当前动态页的物理地址为x;擦写物理地址为x的页,也即将待存储的数据写入 当前的动态页x;修改逻辑地址Nm对应的物理地址为x;修改动态页的物理地址为n,擦写完逻辑地址为Nm的页后,物理地址n成为了新的动态页。
5.根据权利要求4所述的数据存储装置,其特征在于,所述存储单元是存储器中的物理页。
6.根据权利要求4所述的数据存储装置,其特征在于,还包括:
第二设置模块,用于为每个存储页设置对应的逻辑地址;
地址映射模块,用于保存动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系。
7.一种数据存储***,其特征在于,包括存储器、地址映射模块和权利要求4至6任一项所述的数据存储装置,所述存储器中包含动态页和存储页,其中:
所述存储器,用于存储数据;
所述地址映射模块,用于保存所述存储器中动态页的物理地址以及各存储页的物理地址与逻辑地址的地址映射关系;
所述数据存储装置,用于根据所述地址映射模块保存的地址映射关系和动态页的物理地址,控制对所述存储器的读写,以及将更新后的地址映射关系写入到所述地址映射模块。
8.根据权利要求7所述的数据存储***,其特征在于,所述存储器为非易失性存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210096024.2A CN103365786B (zh) | 2012-04-01 | 2012-04-01 | 数据存储方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210096024.2A CN103365786B (zh) | 2012-04-01 | 2012-04-01 | 数据存储方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103365786A CN103365786A (zh) | 2013-10-23 |
CN103365786B true CN103365786B (zh) | 2016-12-14 |
Family
ID=49367189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210096024.2A Active CN103365786B (zh) | 2012-04-01 | 2012-04-01 | 数据存储方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103365786B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104932833B (zh) * | 2014-03-21 | 2018-07-31 | 华为技术有限公司 | 磨损均衡方法、装置及存储设备 |
US9153290B1 (en) * | 2015-01-22 | 2015-10-06 | HGST Netherlands B.V. | Intra-zone wear leveling for heat-assisted magnetic recording—shingled magnetic recording (HAMR-SMR) type storage devices |
TWI601059B (zh) * | 2015-11-19 | 2017-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存方法 |
CN108536611B (zh) * | 2017-03-03 | 2022-05-13 | 西部数据技术公司 | 用于损耗均衡的***和方法 |
CN109634516B (zh) * | 2017-10-09 | 2024-05-24 | 北京握奇智能科技有限公司 | 一种芯片存储器的读、写数据方法及*** |
CN111897744B (zh) * | 2019-05-05 | 2024-06-14 | 兆易创新科技集团股份有限公司 | 一种数据写入方法、装置、电子设备及存储介质 |
CN112558878B (zh) * | 2020-12-16 | 2023-07-04 | 北京华弘集成电路设计有限责任公司 | 一种基于不同类型存储机制的空间调换方法 |
CN114936169A (zh) * | 2022-03-31 | 2022-08-23 | 上海阵量智能科技有限公司 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
CN115576504A (zh) * | 2022-12-09 | 2023-01-06 | 紫光同芯微电子有限公司 | 一种Flash存储器写入数据的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
CN102135942A (zh) * | 2010-12-31 | 2011-07-27 | 北京握奇数据***有限公司 | 一种存储设备中实现损耗均衡的方法及存储设备 |
-
2012
- 2012-04-01 CN CN201210096024.2A patent/CN103365786B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075211A (zh) * | 2007-06-08 | 2007-11-21 | 马彩艳 | 基于sector访问的flash存储器的存储管理 |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
CN102135942A (zh) * | 2010-12-31 | 2011-07-27 | 北京握奇数据***有限公司 | 一种存储设备中实现损耗均衡的方法及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103365786A (zh) | 2013-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103365786B (zh) | 数据存储方法、装置和*** | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US11249664B2 (en) | File system metadata decoding for optimizing flash translation layer operations | |
EP2940691B1 (en) | Storage controller, storage device, storage system and method of operating the storage controller | |
US8583860B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US7624239B2 (en) | Methods for the management of erase operations in non-volatile memories | |
US7783845B2 (en) | Structures for the management of erase operations in non-volatile memories | |
EP2605142B1 (en) | Lba bitmap usage | |
US10176113B2 (en) | Scalable indexing | |
CN109697026A (zh) | 包括主机设备和用于执行清除操作的存储设备的存储*** | |
KR101982251B1 (ko) | 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법 | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
CN101493794B (zh) | 一种闪存数据处理方法及装置 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
CN103646063B (zh) | 一种星载高速文件管理*** | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件*** | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN106484319A (zh) | 用于非易失性存储器的支持无效命令 | |
US20150186259A1 (en) | Method and apparatus for storing data in non-volatile memory | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN103106150B (zh) | 一种实现存储***自动精简配置和精简分配的方法 | |
CN106354658B (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN106528443B (zh) | 适用于星载数据管理的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 |