CN114372008A - 数据存储方法和系统 - Google Patents
数据存储方法和系统 Download PDFInfo
- Publication number
- CN114372008A CN114372008A CN202210003175.2A CN202210003175A CN114372008A CN 114372008 A CN114372008 A CN 114372008A CN 202210003175 A CN202210003175 A CN 202210003175A CN 114372008 A CN114372008 A CN 114372008A
- Authority
- CN
- China
- Prior art keywords
- sector
- nvds
- backup
- data
- new
- 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
Links
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
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提出了一种数据存储方法和系统,其中,所述方法包括:标识非易失性数据存储NVDS扇区和备份BACKUP扇区;对所述NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中,其中所述新页是在其中没有有效数据的页。
Description
技术领域
本公开涉及数据存储领域,更具体地,涉及到一种用于非易失性存储器的数据存储方法和系统。
背景技术
目前,在片上系统(SoC)中常见的存储方式为非易失性数据存储(NVDS,non-volatile data storage)模块,例如闪存(flash)。一般来说,flash从大到小可分为多个级别的结构,其中,最小擦除单位是扇区(sector),而sector包括作为最大编程(写入)单位的页(page)。
在通常的设计方案中,为了节省空间,每条数据在存储到flash中时,存储的地址是在上条数据之后。如果地址在某个页page的中间而非起点,则代表该页page至少被写入两次。当数据存满一个扇区后,会提取其中有效数据转移到另一个扇区中,以达到充分利用存储空间的目的。
发明内容
技术问题
如上所述,在flash中,每条新数据物理上是存储在上条数据之后。这也就代表着,每个flash的页page可能会被多次写入,然而如果在写入的时候发生flash供电不稳的情况,出于与flash内部架构有关的原因,部分flash会出现当前写入的这个页page中所有数据全部丢失的情况。这就可能会造成用户原先存储的一些重要数据丢失,进而有可能引起程序出现一系列异常情况。
问题的解决方案
根据本公开的一方面,提供了一种数据存储方法,包括:标识非易失性数据存储NVDS扇区和备份BACKUP扇区;对所述NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中,其中所述新页是在其中没有有效数据的页。
根据本公开的一方面,提供了一种数据存储方法,其中,标识NVDS扇区和BACKUP扇区包括:通过将所述NVDS扇区和所述BACKUP扇区中的第一页Page0标记为NVDS或BACKUP来标识NVDS扇区和BACKUP扇区。
根据本公开的一方面,提供了一种数据存储方法,还包括:确定所述NVDS扇区是否已存满数据,并且响应于NVDS扇区已存满数据,整合所述NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页,并且擦除所述NVDS扇区。
根据本公开的一方面,提供了一种数据存储方法,其中,确定所述NVDS扇区是否已存满数据通过在NVDS扇区中确定是否存在新页来判断。
根据本公开的一方面,提供了一种数据存储方法,还包括:确定所述BACKUP扇区是否即将存满,以及响应于确定BACKUP扇区即将存满,将NVDS扇区的数据整合到BACKUP扇区中。
根据本公开的一方面,提供了一种数据存储方法,其中,确定所述BACKUP扇区是否即将存满包括:1)判断BACKUP扇区的空白页的数量是否小于预设的第一阈值,2)判断BACKUP扇区的空白页占BACKUP扇区的容量的比例是否小于第二阈值,或者3)判断BACKUP扇区的空白页的大小是否小于要写入的新数据的大小。
根据本公开的一方面,提供了一种数据存储方法,其中,将NVDS扇区的数据整合到BACKUP扇区中包括:整合NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页。
根据本公开的一方面,提供了一种数据存储方法,还包括:擦除所述NVDS扇区,之后将该NVDS扇区的角色变更为新BACKUP扇区;整合原BACKUP扇区的有效数据,将其一次性写入新BACKUP扇区;以及擦除原BACKUP扇区,并且将原BACKUP扇区的角色变更为新NVDS扇区。
根据本公开的一方面,提供了一种数据存储方法,还包括:通过在RAM中存储的与各条有效数据相对应的闪存Flash地址,来实现对数据的读取。
根据本公开的一方面,提供了一种数据存储系统,包括:存储器,包括非易失性数据存储NVDS扇区和备份BACKUP扇区;处理器,其被配置为控制所述存储器,以:标识NVDS扇区和BACKUP扇区;对所述NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中,其中所述新页是在其中没有有效数据的页。
根据本公开的一方面,提供了一种数据存储系统,其中,所述系统还包括随机存储器RAM,其中,通过在RAM中存储的与各条有效数据相对应的闪存Flash地址,来实现对数据的读取。
公开的有益效果
本公开提出一种数据存储方法和系统,能够完全规避对flash中的扇区sector的页page的二次写入操作,从而改善因flash供电不稳而造成的数据大量丢失问题;此外,能够在不额外增加存储空间的前提下,根据需要来切换扇区sector的功能(NVDS和BACKUP),最大限度的利用存储空间存储数据并确保各个扇区sector间的擦除基本均衡。
附图说明
从以下结合附图的描述中,本公开的特定实施例的上述和其他方面、特征和优点将变得更加明显,其中:
图1是示出了根据本发明实施例的数据存储方法的,根据扇区类型来以新页为单位进行数据写入的操作的示意图;以及
图2是示出了根据本发明实施例的数据存储方法的,当BACKUP扇区存满时的操作的示意图。
具体实施方式
在进行下面的详细描述之前,阐述贯穿本专利文件使用的某些单词和短语的定义可能是有利的。术语“包括”和“包含”及其派生词是指包括但不限于。术语“或”是包含性的,意思是和/或。短语“与……相关联”及其派生词是指包括、包括在……内、互连、包含、包含在……内、连接或与……连接、耦接或与……耦接、与……通信、配合、交织、并列、接近、绑定或与……绑定、具有、具有属性、具有关系或与……有关系等。术语“控制器”是指控制至少一个操作的任何设备、系统或其一部分。这种控制器可以用硬件、或者硬件和软件和/或固件的组合来实施。与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地的还是远程的。短语“至少一个”,当与项目列表一起使用时,意指可以使用所列项目中的一个或多个的不同组合,并且可能只需要列表中的一个项目。例如,“A、B、C中的至少一个”包括以下组合中的任意一个:A、B、C、A和B、A和C、B和C、A和B和C。
贯穿本专利文件提供了其他特定单词和短语的定义。本领域普通技术人员应该理解,在许多情况下,即使不是大多数情况下,这种定义也适用于这样定义的单词和短语的先前和将来使用。
在本专利文件中,变换块的应用组合以及子变换块的划分层级仅用于说明,在不脱离本公开的范围内,变换块的应用组合以及子变换块的划分层级可以具有不同的方式。
根据本发明的实施例,提供了一种数据存储方法,所述方法包括以下步骤:
步骤101:使用2个扇区,分别为NVDS和BACKUP;
步骤102:在每次写入时,将新数据写入到NVDS扇区中的新页中;
步骤103:当NVDS扇区存满数据时,整合NVDS中所有有效数据,然后一次性写入到BACKUP扇区中一个新页里;
步骤104:擦除NVDS扇区,之后将新数据重新写入到NVDS扇区中,参考步骤102;
步骤105:当BACKUP扇区即将存满的时候,先将NVDS中的数据整合到BACKUP扇区中,参考步骤103;
步骤106:擦除NVDS扇区,之后该NVDS扇区的角色变更为BACKUP,作为新BACKUP扇区;
步骤107:整理原BACKUP扇区中的有效数据,一次性写入到新BACKUP扇区中;
步骤108:原BACKUP扇区会被擦除,之后该原BACKUP扇区的角色变更为NVDS,作为新NVDS扇区;
步骤109:在后续写入操作中,将新数据写入到新NVDS扇区中,参考步骤102;
步骤110:如果需要读取数据,可通过在RAM中存储的与各条有效数据相对应的Flash地址,来实现直接读取。
上面依次描述了数据存储方法的步骤,但是本公开不限于此。在其他实施方式中,可以在不脱离本公开的范围的情况下,调整各个步骤的顺序,并且同时执行其中一些顺序。下面,将结合附图更详细地描述上述步骤的各种实施例。
以下讨论的图1和图2以及用于描述本专利文档中的本公开的原理的各种实施例仅作为说明,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解,本公开的原理可以在任何适当布置的系统或设备中实施。
如图1所示,本公开提出了一种数据存储方法。参考图1,首先确定NVDS扇区和BACKUP扇区(步骤101)。根据本发明实施例,例如,NVDS扇区和BACKUP扇区可以通过各自将第一页Page0标记为“NVDS”或“BACKUP”来进行标识,而剩余的页则用于存储数据。
在标识NVDS扇区和BACKUP扇区之后,对NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中(步骤102)。根据本发明实施例,在扇区中除了标示页之外剩余的页中,如果某个页已经包括有效数据,则该页称为“已使用页”,不再对其进行二次写入,以避免在二次写入时由于故障(例如,供电不稳)而导致现有的有效数据丢失;否则,如果该页没有有效数据,则该页称为“新页”或“空白页”。
然后,确定NVDS扇区是否已存满数据,并且响应于NVDS扇区已存满数据,整合NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页(步骤103)。
根据本发明实施例,确定NVDS扇区是否已存满数据可以通过在NVDS扇区中确定是否存在新页(空白页)来判断。
当确定NVDS扇区中不存在新页(存满数据)时,整合NVDS扇区的所有有效数据。对于存储设备而言,在页(page)中存取数据时,在页中可能会存在空余的未写入存储空间。通过整合数据,可以多条有效数据整合成一个数据,而一次性写入BACKUP扇区的空白页中,这样可以实现充分利用存储空间的效果。
然后,擦除NVDS扇区,之后新的数据被重新写入到NVDS扇区中(步骤104)。在擦除NVDS扇区之后,NVDS扇区变为除了第一页Page0被标识为NVDS之外,所有后续页都变为空白页的扇区,从而能够在对新的数据进行写入时,提供存储空间(参考步骤102)。
图1示出了根据本发明实施例的,根据扇区类型来以新页为单位进行数据写入的操作。
图2是示出了根据本发明实施例的数据存储方法中,当BACKUP扇区存满时的操作的示意图。本领域技术人员应该理解,图2所示的步骤与图1所示的步骤不存在特定的顺序关系,可以根据具体的实施方式,以各种顺序方式或并行执行。
具体地,参考图2,首先确定BACKUP扇区是否即将存满,响应于确定BACKUP扇区即将存满,将NVDS扇区的数据整合到BACKUP扇区中(步骤105)。
根据本发明的实施例,判断BACKUP扇区是否即将存满可以包括:1)判断BACKUP扇区的空白页的数量是否小于预设的第一阈值,或者判断BACKUP扇区的空白页占BACKUP扇区的容量的比例是否小于第二阈值;2)判断BACKUP扇区的空白页的大小是否大于要写入的新数据的大小。然而,本领域技术人员应该理解,上述判断方法仅仅用于示例,在不脱离本发明范围的情况下,可以对于上述的判断方法进行各种修改。
此外,根据本发明实施例,响应于确定BACKUP扇区即将存满,将NVDS扇区的数据整合到BACKUP扇区中可以包括:整合NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页(参考步骤103)。根据本发明实施例,NVDS扇区中的有效数据的长度和BACKUP扇区中的剩余空间是动态更新的。在每次将新的数据写入到NVDS扇区之前,会先检查BACKUP扇区中的剩余空间是否充裕;如果不充裕,则会先将NVDS扇区的有效数据(不包括当前待写入的新数据)整合到BACKUP扇区中。然后,根据下文描述的步骤,执行两个扇区之间的角色切换和数据迁移,最终再将新数据写入到新的NVDS扇区中。然而,本领域技术人员应该理解,上述整合方法仅仅用于示例,在不脱离本发明范围的情况下,可以对于上述的整合方法进行各种修改。
随后,擦除NVDS扇区,之后将该NVDS扇区的角色变更为BACKUP扇区(步骤106)。根据本发明的实施例,可以通过将NVDS扇区中的第一页Page0标记为BACKUP1,来使得NVDS扇区作为新的BACKUP扇区。然而,本公开的标记操作不限于此,可以根据存储设备的类型而采用其他标记NVDS和BACKUP的方式。
然后,整合原BACKUP扇区的有效数据,将其一次性写入新的BACKUP扇区中(步骤107)。随后,擦除原BACKUP扇区,并且将原BACKUP扇区的角色变更为NVDS扇区(步骤108)。根据本发明的实施例,可以通过将原BACKUP扇区中的第一页Page0标记为NVDS1,来使得原BACKUP扇区作为新的NVDS扇区。然而,本公开的标记操作不限于此,可以根据存储设备的类型而采用其他标记NVDS和BACKUP的方式。如此,完成了NVDS扇区和BACKUP扇区的角色互换,从而实现了擦除均衡的效果。
在后续写入操作中,将新数据写入到新NVDS扇区中(步骤109)。所述操作与步骤102中所述类似,在此不再赘述。
此外,如果需要读取数据,可通过在RAM中存储的与各条有效数据相对应的Flash地址,来实现直接读取。
在日常的单次写入中,NVDS扇区每次写入需要使用新空白页,并且由于写入特性而容易写满,这会导致NVDS扇区频繁地进行擦除和写入。因此,根据本发明实施例,当BACKUP扇区存满数据时,将BACKUP扇区的数据转移到NVDS扇区,将BACKUP扇区作为新NVDS扇区进行写入,从而平衡各个扇区的寿命。
根据本发明实施例,因为完整的数据需要被拆分为有效数据以在多个页中进行存储,所以有效数据在存储设备中的位置(即,地址)被存储在RAM(随机存取存储器)中。由此,如果需要读取数据,可通过在RAM中存储的与各条有效数据相对应的Flash地址,来实现直接读取(步骤110)。
本公开还提供了一种数据存储系统,包括:存储器,包括NVDS扇区和BACKUP扇区;处理器,其被配置为控制所述存储器来执行上述的存储方法。
根据本发明实施例,数据存储系统还包括RAM,其中,NVDS扇区和BACKUP扇区的有效数据在存储器中的地址被存储在RAM中。
文本和附图仅作为示例提供,以帮助理解本公开。它们不应被解释为以任何方式限制本公开的范围。尽管已经提供了某些实施例和示例,但是基于本文所公开的内容,对于本领域技术人员而言显而易见的是,在不脱离本公开的范围的情况下,可以对所示的实施例和示例进行改变。
根据本公开的实施例,提供了一种数据存储方法和系统,能完全规避对flash中的扇区(sector)的页(page)的二次写入操作,从而改善因flash供电不稳而造成的数据大量丢失问题。同时,能够在不额外增加存储空间的前提下,根据需要来切换扇区的功能(NVDS和BACKUP),最大限度的利用存储空间存储数据并确保各个扇区间的擦除基本均衡。
尽管已经用示例性实施例描述了本公开,但是可以向本领域技术人员建议各种改变和修改。本公开旨在涵盖落入所附权利要求范围内的这种改变和修改。
本发明中的任何描述都不应被理解为暗示任何特定的元件、步骤或功能是必须包括在权利要求范围内的必要元件。专利主题的范围仅由权利要求限定。
Claims (11)
1.一种数据存储方法,包括:
标识非易失性数据存储NVDS扇区和备份BACKUP扇区;
对所述NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中,其中
所述新页是在其中没有有效数据的页。
2.根据权利要求1所述的方法,其中,标识NVDS扇区和BACKUP扇区包括:通过将所述NVDS扇区和所述BACKUP扇区中的第一页Page0标记为NVDS或BACKUP来标识NVDS扇区和BACKUP扇区。
3.根据权利要求1所述的方法,还包括:确定所述NVDS扇区是否已存满数据,并且响应于NVDS扇区已存满数据,整合所述NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页,并且擦除所述NVDS扇区。
4.根据权利要求3所述的方法,其中,确定所述NVDS扇区是否已存满数据通过在NVDS扇区中确定是否存在新页来判断。
5.根据权利要求1所述的方法,还包括:确定所述BACKUP扇区是否即将存满,以及响应于确定BACKUP扇区即将存满,将NVDS扇区的数据整合到BACKUP扇区中。
6.根据权利要求5所述的方法,其中,确定所述BACKUP扇区是否即将存满包括:
1)判断BACKUP扇区的空白页的数量是否小于预设的第一阈值,
2)判断BACKUP扇区的空白页占BACKUP扇区的容量的比例是否小于第二阈值,或者
3)判断BACKUP扇区的空白页的大小是否小于要写入的新数据的大小。
7.根据权利要求5所述的方法,其中,将NVDS扇区的数据整合到BACKUP扇区中包括:整合NVDS扇区的所有有效数据,一次性写入BACKUP扇区中的新页。
8.根据权利要求5所述的方法,还包括:
擦除所述NVDS扇区,之后将该NVDS扇区的角色变更为新BACKUP扇区;
整合原BACKUP扇区的有效数据,将其一次性写入新BACKUP扇区;以及
擦除原BACKUP扇区,并且将原BACKUP扇区的角色变更为新NVDS扇区。
9.根据权利要求1所述的方法,还包括:通过在RAM中存储的与各条有效数据相对应的闪存Flash地址,来实现对数据的读取。
10.一种数据存储系统,包括:
存储器,包括非易失性数据存储NVDS扇区和备份BACKUP扇区;
处理器,其被配置为控制所述存储器,以:
标识NVDS扇区和BACKUP扇区;
对所述NVDS扇区进行写入操作,每次写入数据时,将数据写入NVDS扇区的新页中,其中
所述新页是在其中没有有效数据的页。
11.根据权利要求10所述的系统,其中,所述系统还包括随机存储器RAM,其中,通过在RAM中存储的与各条有效数据相对应的闪存Flash地址,来实现对数据的读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003175.2A CN114372008A (zh) | 2022-01-04 | 2022-01-04 | 数据存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003175.2A CN114372008A (zh) | 2022-01-04 | 2022-01-04 | 数据存储方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114372008A true CN114372008A (zh) | 2022-04-19 |
Family
ID=81141238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210003175.2A Pending CN114372008A (zh) | 2022-01-04 | 2022-01-04 | 数据存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114372008A (zh) |
-
2022
- 2022-01-04 CN CN202210003175.2A patent/CN114372008A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5002201B2 (ja) | メモリシステム | |
JP4948793B2 (ja) | バッドブロック管理部を含むフラッシュメモリシステム | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US7554855B2 (en) | Hybrid solid-state memory system having volatile and non-volatile memory | |
EP1782176B1 (en) | Systems, methods, computer readable medium and apparatus for memory management using nvram | |
US20050015557A1 (en) | Nonvolatile memory unit with specific cache | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US10740013B2 (en) | Non-volatile data-storage device with spare block pools using a block clearing method | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
US20080250188A1 (en) | Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method | |
CN103106143B (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
US9569354B2 (en) | System and method to emulate an electrically erasable programmable read-only memory | |
US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US20130346674A1 (en) | Data writing method, memory controller and memory storage device | |
CN102214143A (zh) | 一种多层单元闪存的管理方法、装置及存储设备 | |
CN112035294B (zh) | 安全日志文件系统及其实现方法和介质 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103365786A (zh) | 数据存储方法、装置和系统 | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US20170285953A1 (en) | Data Storage Device and Data Maintenance Method thereof | |
US9501397B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
CN102521146A (zh) | 一种flash存储器块细分的数据寻址存储方法 | |
CN110262980B (zh) | 基于有限寿命存储介质的高速存储系统 |
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 |