CN111913890A - 一种基于安全模组的非易失存储器随机化读写方法 - Google Patents
一种基于安全模组的非易失存储器随机化读写方法 Download PDFInfo
- Publication number
- CN111913890A CN111913890A CN202010812540.5A CN202010812540A CN111913890A CN 111913890 A CN111913890 A CN 111913890A CN 202010812540 A CN202010812540 A CN 202010812540A CN 111913890 A CN111913890 A CN 111913890A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping table
- address
- data block
- page
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013507 mapping Methods 0.000 claims abstract description 59
- 238000013519 translation Methods 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 abstract 1
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种基于安全模组的非易失存储器随机化读写方法,涉及数据读写技术领域;该方法首先将Flash以页为大小自动分成N块,建立一个存储区映射表,该表将要写的目标地址转换为随机要写的实际地址,在每次触发写Flash操作时会通过传入的目的地址转换为对应的块地址,然后再在存储区映射表随机查找空闲的块,然后通过映射表关系将上次写入的数据读出,并判断是否需要更新,如果数据需要更新,会在随机查找空闲的数据块,将数据写入,然后更新映射表。上述方法可以使得这样某些高频率擦写区域会被分散使用,提高了Flash寿命,且该方法不需要开辟一块区域用于备份重映射数据,提高存储器使用寿命的同时并减小了Flash存储空间开销。
Description
技术领域
本发明涉及数据读写技术领域,尤其涉及一种基于安全模组的非易失存储器随机化读写方法。
背景技术
安全模组产品中的非易失存储器(以下简称Flash)用于存储永久性数据,如文件、秘钥、证书等永久性数据。但由于Flash频繁擦写的应用场景越来越多,而传统Flash的相同位置擦写次数大多为10万次左右,如果Flash读写出现错误,会导致文件数据、秘钥等信息被破坏,对用户造成极大的不良影响。
现有技术中读取Flash的方法主要是将Flash的存储空间分割成多个大小相同的存储子空间,再将每个存储子空间被分割成多个大小相同的存储块,每个存储块对应一个逻辑地址和一个物理地址。由于逻辑地址和物理地址具有唯一映射的关系,因此在进行读写时,记录所述每个存储子空间的累积读写操作次数;当所述多个存储子空间中的任意一个存储子空间的累积写操作次数达到预定的重映率时,将所述存储子空间的逻辑地址映射到重映射物理地址。这个方法在存储内容读取上会使得特定的存储模块不断读写,导致局部数据过热,会减少存储模块的寿命和可靠性。
现有的非易失存储器寿命增强方案大多都是采用固定映射方式进行坏块数据备份或者映射到一个新的存储块,因需要进行数据备份,所以需要提前占用一部分区域用于数据备份,这样使用起来需要增加较大存储单元开销,缩小了产品的实际Flash存储空间大小。
因此,亟待找到一种可以提升Flash使用寿命的方法。
发明内容
本发明的目的在于提供一种基于安全模组的非易失存储器随机化读写方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种基于安全模组的非易失存储器随机化读写方法,包括以下步骤:
S1,将非易失存储器的存储空间自动分成N块相同大小的数据块,同时建立存储区映射表;
S2,读写非易失存储器时,将待写入数据的目标地址转换为对应的数据块地址;
S3,通过存储区映射表随机寻找空闲的数据块;
S4,通过存储区映射表上的对应关系判断该空闲数据块是否需要更新上次写入数据的实际映射地址;若确定需要更新,则重复步骤S3重新寻找空闲数据块;若不需要更新,则直接向该空闲数据块写入数据,并将实际映射地址存入目标数据块中,更新映射表映射关系。
优选地,步骤S1中数据块的大小是以页为大小,N=空间总大小/页大小,通常来说,每页大小为512字节。
优选地,所述存储区映射表中具有N个表格,依次为0页,1页,…,N-1页,N页;
使用该映射表结构进行地址转换过程具体为:
首先确定将要写的目标映射块号:映射表块号Y=目标地址/页大小;目标块号=Y;
生成随机数X,即实际页地址为X页,转换成随机要写的实际地址:X*页大小,该实际地址写入目标块号Y中。
优选地,步骤S3中判断该数据块是否空闲的方法为:
每个数据块对应的映射表块号中的初始值全为0,以映射表块号中的所有比特位的最高字节标识判断对应的数据块是否空闲,当最高字节标识为1时,说明该映射表块号对应的数据块存在有效数据;若最高字节标识为0时,说明该映射表块号对应的数据块空闲。
本发明的有益效果是:
本发明提出一种基于安全模组的非易失存储器随机化读写方法,该方法可随机化映射并写入到安全模组产品中非易失存储器的方法,该方法自动将写入存储器的数据按页为单元写入随机化映射后的目标地址,然后更新映射表,用于下次的数据读写,这样某些高频率擦写区域会被分散使用,提高了Flash寿命,且该方法不需要开辟一块区域用于备份重映射数据,提高存储器使用寿命的同时并减小了Flash存储空间开销。
附图说明
图1是实施例1中记载的一种基于安全模组的非易失存储器随机化读写方法流程图;
图2是实施例1中采用的存储区映射表结构。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例中提供了一种基于安全模组的非易失存储器随机化读写方法,如图1所示,包括以下步骤:
S1,将非易失存储器的存储空间自动分成N块相同大小的数据块,同时建立存储区映射表;
S2,读写非易失存储器时,将待写入数据的目标地址转换为对应的数据块地址;
S3,通过存储区映射表随机寻找空闲的数据块;
S4,通过存储区映射表上的对应关系判断该空闲数据块是否需要更新上次写入数据的实际映射地址;若确定需要更新,则重复步骤S3重新寻找空闲数据块;若不需要更新,则直接向该空闲数据块写入数据,并将实际映射地址存入目标数据块中,更新映射表映射关系。
本实施例中的步骤S1中数据块的大小是以页为大小,N=空间总大小/页大小,通常来说,每页大小为512字节。
本实施例中的存储区映射表中具有N个表格,依次为0页,1页,…,N-1页,N页,如图2所示,每个表格是一个数据块。图2中每个数据块的初始值为全0,每一个方格为2字节,16比特位,在进行判断数据块是否空闲时,以映射表数据块号中的所有比特位的最高字节标识判断对应的数据块是否空闲,当最高字节标识为1时,说明该映射表块号对应的数据块存在有效数据;若最高字节标识为0时,说明该映射表块号对应的数据块空闲,后面比特位标识数据则标识实际映射地址。
需要注意到的是,本实施例中将目标地址转换为随机要写入的实际块地址关系为:映射表块号=目标地址/页大小,映射表块号中的值即为转换后实际要写的块地址。例如第3页数据地址为48640,表示目标地址2048映射到实际地址15872。形成过程如下:当Flash总空间为512K,页大小为512字节,那么N=1024,要向目标地址2048写入5个字节,那么映射表块号为2048/512=4,即第3页。根据生成的随机数为31,那么实际数据存储地址为第31页,即31*512(页大小)=15872地址,将该实际映射地址保存在第4个数据块格子(第3页)中。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明提出一种基于安全模组的非易失存储器随机化读写方法,该方法可随机化映射并写入到安全模组产品中非易失存储器的方法,该方法自动将写入存储器的数据按页为单元写入随机化映射后的目标地址,然后更新映射表,用于下次的数据读写,这样某些高频率擦写区域会被分散使用,提高了Flash寿命,且该方法不需要开辟一块区域用于备份重映射数据,提高存储器使用寿命的同时并减小了Flash存储空间开销。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (4)
1.一种基于安全模组的非易失存储器随机化读写方法,其特征在于,包括以下步骤:
S1,将非易失存储器的存储空间自动分成N块相同大小的数据块,同时建立存储区映射表;
S2,读写非易失存储器时,将待写入数据的目标地址转换为对应的数据块地址;
S3,通过存储区映射表随机寻找空闲的数据块;
S4,通过存储区映射表上的对应关系判断该空闲数据块是否需要更新上次写入数据的实际映射地址;若确定需要更新,则重复步骤S3重新寻找空闲数据块;若不需要更新,则直接向该空闲数据块写入数据,并将实际映射地址存入目标数据块中,更新映射表映射关系。
2.根据权利要求1所述的随机化读写Flash的方法,其特征在于,步骤S1中数据块的大小是以页为大小,N=空间总大小/页大小。
3.根据权利要求1所述的随机化读写Flash的方法,其特征在于,所述存储区映射表中具有N个表格,依次为0页,1页,…,N-1页,N页;
使用该映射表结构进行地址转换过程具体为:
首先确定将要写的目标映射块号:映射表块号Y=目标地址/页大小;目标块号=Y;
生成随机数X,即实际页地址为X页,转换成随机要写的实际地址:X*页大小。
4.根据权利要求1所述的随机化读写Flash的方法,其特征在于,步骤S3中判断该数据块是否空闲的方法为:
每个数据块对应的映射表块号中的初始值全为0,以映射表块号中的所有比特位的最高字节标识判断对应的数据块是否空闲,当最高字节标识为1时,说明该映射表块号对应的数据块存在有效数据;若最高字节标识为0时,说明该映射表块号对应的数据块空闲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010812540.5A CN111913890B (zh) | 2020-08-13 | 2020-08-13 | 一种基于安全模组的非易失存储器随机化读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010812540.5A CN111913890B (zh) | 2020-08-13 | 2020-08-13 | 一种基于安全模组的非易失存储器随机化读写方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913890A true CN111913890A (zh) | 2020-11-10 |
CN111913890B CN111913890B (zh) | 2024-06-11 |
Family
ID=73284500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010812540.5A Active CN111913890B (zh) | 2020-08-13 | 2020-08-13 | 一种基于安全模组的非易失存储器随机化读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913890B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127377A (zh) * | 2021-04-08 | 2021-07-16 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
CN113450863A (zh) * | 2021-07-09 | 2021-09-28 | 上海交通大学 | 一种对抗阻变对称存储器硬失效错误的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN103729303A (zh) * | 2014-01-20 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
US20180246818A1 (en) * | 2017-02-27 | 2018-08-30 | Red Hat, Inc. | Physical address randomization for secure encrypted memory |
CN109040334A (zh) * | 2018-07-12 | 2018-12-18 | 山东师范大学 | 静态的内网映射方法、外网服务器、内网通信设备及系统 |
CN110515552A (zh) * | 2019-08-22 | 2019-11-29 | 深圳市得一微电子有限责任公司 | 一种存储设备数据快速写入的方法及系统 |
-
2020
- 2020-08-13 CN CN202010812540.5A patent/CN111913890B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103456360A (zh) * | 2013-09-13 | 2013-12-18 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN103729303A (zh) * | 2014-01-20 | 2014-04-16 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
US20180246818A1 (en) * | 2017-02-27 | 2018-08-30 | Red Hat, Inc. | Physical address randomization for secure encrypted memory |
CN109040334A (zh) * | 2018-07-12 | 2018-12-18 | 山东师范大学 | 静态的内网映射方法、外网服务器、内网通信设备及系统 |
CN110515552A (zh) * | 2019-08-22 | 2019-11-29 | 深圳市得一微电子有限责任公司 | 一种存储设备数据快速写入的方法及系统 |
Non-Patent Citations (2)
Title |
---|
KAIXIN HUANG 等: "Quail: Using NVM write monitor to enable transparent wear-leveling", JOURNAL OF SYSTEMS ARCHITECTURE, vol. 102 * |
杜雨阳 等: "一种基于代数映射的相变内存矩阵磨损均衡方法", 计算机研究与发展, vol. 49, no. 12, pages 2713 - 2720 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127377A (zh) * | 2021-04-08 | 2021-07-16 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
CN113127377B (zh) * | 2021-04-08 | 2022-11-25 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
CN113450863A (zh) * | 2021-07-09 | 2021-09-28 | 上海交通大学 | 一种对抗阻变对称存储器硬失效错误的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111913890B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7702844B2 (en) | Address mapping method and mapping information managing method for flash memory, and flash memory using the same | |
JP4832521B2 (ja) | フラッシュメモリメディアにおけるデータ管理方法 | |
US7594062B2 (en) | Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area | |
US8706989B2 (en) | Data storage device with power-off recovery system and method thereof | |
US20130219247A1 (en) | Method for Accessing Flash Memory and Associated Flash Memory Controller | |
KR100608602B1 (ko) | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 | |
TW200926182A (en) | Memory apparatus and method for accessing a flash memory, and method of evenly using blocks of the flash memory | |
US20130054878A1 (en) | Solid state drive and wear-leveling control method thereof | |
US7836242B2 (en) | Method for page random write and read in blocks of flash memory | |
CN111913890B (zh) | 一种基于安全模组的非易失存储器随机化读写方法 | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
US11176033B2 (en) | Data storage devices and data processing methods | |
CN112596668A (zh) | 一种存储器的坏块处理方法及系统 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
KR100533683B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
KR100977709B1 (ko) | 플래시메모리 저장장치 및 그에 따른 관리 방법 | |
US7206893B2 (en) | Linking method under mother and child block architecture for building check area and logic page of the child block | |
US20090055574A1 (en) | NAND Flash Memory Device And Related Method Thereof | |
US20090204776A1 (en) | System for securing an access to flash memory device and method for the same | |
US6845061B2 (en) | Method for quickly detecting the state of a nonvolatile storage medium | |
CN106484630A (zh) | 快闪存储器的存取方法及相关的存储器控制器与电子装置 | |
CN110825658A (zh) | 闪存控制器及方法 | |
KR100688463B1 (ko) | 물리 메모리의 데이터 기록 및 삭제 방법 | |
KR101394356B1 (ko) | 쓰기 데이터 패턴 인식에 의한 플래시 메모리 관리 장치 및 방법 | |
US20200387318A1 (en) | Repetitive data processing method for solid state drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |