CN113377296B - 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆 - Google Patents

车载终端NAND Flash的存储管理方法和系统、车载终端、车辆 Download PDF

Info

Publication number
CN113377296B
CN113377296B CN202110934194.2A CN202110934194A CN113377296B CN 113377296 B CN113377296 B CN 113377296B CN 202110934194 A CN202110934194 A CN 202110934194A CN 113377296 B CN113377296 B CN 113377296B
Authority
CN
China
Prior art keywords
data
area
mapping
storing
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.)
Active
Application number
CN202110934194.2A
Other languages
English (en)
Other versions
CN113377296A (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.)
Shenzhen Yuwei Information & Technology Development Co ltd
Original Assignee
Shenzhen Yuwei Information & Technology Development 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 Shenzhen Yuwei Information & Technology Development Co ltd filed Critical Shenzhen Yuwei Information & Technology Development Co ltd
Priority to CN202110934194.2A priority Critical patent/CN113377296B/zh
Publication of CN113377296A publication Critical patent/CN113377296A/zh
Application granted granted Critical
Publication of CN113377296B publication Critical patent/CN113377296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请提出一种车载终端NAND Flash的存储管理方法和系统、车载终端、车辆,存储管理方法包括将车载终端NAND Flash存储系统划分为用户区、坏块映射区和保存区,其中用户区用于存放用户数据,坏块映射区用于映射用户区的坏块以代替坏块存储数据,保存区用于保存映射表,映射表记录所述坏块映射区的好块与用户区的坏块的映射关系。根据本申请的一些实施例,提高了NAND Flash的存储空间利用率,降低了车载终端的成本,更便于系统维护。

Description

车载终端NAND Flash的存储管理方法和系统、车载终端、车辆
技术领域
本申请涉及商用车技术领域,具体而言,涉及一种车载终端NAND Flash的存储管理方法和存储管理系统、车载终端和车辆。
背景技术
NAND Flash是一种非易失性存储器,因其具有高密度、大容量、低功耗、成本低等特点,使其在终端设备中得到了广泛的应用。NAND Flash擦除的最小单位是块,读写的最小单位是页,一个块包含多个页。NAND Flash擦除后,每一页只能写一次。如果想再次写入,只能重新擦除该页所在的块。目前在商用车中车载终端的NAND Flash使用中,会频繁保存不足一页的小块数据,传统方法会将这些碎片数据分别写到多个完整的页中,导致空间利用率不高。为了降低成本,企业往往会选择容量小的flash。因此,提高NAND Flash的空间利用率很有必要。
由于制造工艺的问题,NAND Flash不但在出厂时就会存在坏块,而且在日常使用过程同样会产生新的坏块。于是,在应用NAND Flash时必须对其存在的坏块进行规避与管理。目前NAND Flash坏块管理可大致分为如下两种方案:基于FTL芯片的坏块管理和基于系统映射的坏块管理。前者使用额外的FTL(Flash Translation Layer 闪存转换层)芯片对外部屏蔽了坏块信息,使用者无需再进行坏块处理工作。但由于FTL芯片的引入会显著增加设备成本,故此方案通常不会用于商用车车载终端领域中。基于系统映射的坏块管理方案虽然在软件实现上稍微复杂,但是由于其较第一种方案在成本上具有明显优势,所以在实际生产环境中被广泛应用。
因此,设计一种NAND Flash存储管理系统,一方面在出现坏块时能进行坏块管理,不需要用户关心操作的是否是坏块,另一方面使用碎片化操作管理提高NAND Flash空间利用率。
发明内容
本申请提出一种车载终端NAND Flash的存储管理方法和系统、车载终端,提高了NAND Flash空间利用率,在出现坏块时能进行坏块管理。
根据本申请的一方面,提出一种车载终端NAND Flash的存储管理方法,包括将所述车载终端NAND Flash存储系统划分为用户区、坏块映射区和保存区,其中:所述用户区用于存放用户数据,所述坏块映射区用于映射用户区的坏块以代替所述坏块存储数据,所述保存区用于保存映射表,所述映射表记录所述坏块映射区的好块与所述用户区的坏块的映射关系。
根据一些实施例,前述存储管理方法,还包括在内存中配置页缓存,所述页缓存的数据容量等于NAND Flash的页容量。
根据一些实施例,所述用户区包括数据区和日志区,所述用户区用户保存用户数据,所述日志区用于存储碎片数据。
根据一些实施例,前述存储管理方法还包括如果需要存储的数据小于一页,将所述数据存入所述页缓存;如果需要存储的数据大于等于一页,将所述数据的整数倍页容量直接存入所述数据区,所述数据的剩余部分存入所述页缓存。
根据一些实施例,所述将所述数据存入所述页缓存或所述数据的剩余部分存入所述页缓存之后,还包括将页缓存中的数据存入所述日志区;和/或将页缓存中的数据存入所述数据区。
根据一些实施例,所述将页缓存中的数据存入所述日志区,包括当页缓存写满时,将页缓存中的数据存入所述日志区;或定时将页缓存中的数据存入所述日志区;或利用存档指令,将页缓存中的数据存入所述日志区。
根据一些实施例,在所述将页缓存中的数据存入所述日志区之后,还包括定时将日志区中存储的数据存储到所述数据区;或利用存档指令,将日志中的数据存入所述数据区。
根据一些实施例,前述存储管理方法还包括当日志区存储满时,日志区执行擦除操作,并重新从日志区开始位置存储数据。
根据一些实施例,所述日志区的大小为页缓存大小的整数倍。
根据一些实施例,所述将页缓存数据存入所述数据区,包括当页缓存写满时,将页缓存中的数据存入所述数据区;或定时将页缓存中的数据存入所述数据区;或利用存档指令,将页缓存中的数据存入所述数据区。
根据一些实施例,在所述保存区设置多个映射表,每个所述映射表具有计数ID,所述存储管理方法,还包括:当NAND Flash出现坏块时,更新多个所述映射表及其所述计数ID。
根据一些实施例,所述更新多个所述映射表及其所述计数ID包括获取多个所述映射表的最大计数ID;将所述映射表的所述计数ID置为初始值,所述初始值包括0;更新所述映射表;如果所述映射表更新成功,所述映射表的所述计数ID以所述最大计数ID为基础递增;如果所述映射表更新失败,终止更新所述映射表。
根据一些实施例,所述存储管理方法,还包括当用户数据区出现坏块时,从所述保存区取出所述计数ID最大的其中一个映射表,根据映射表找到所述坏块映射区中对应所述坏块的好块。
根据一些实施例,所述用户区包括第一数据区和第二数据区,其中,所述第一数据区存储碎片数据,所述第二数据区存储大于一页的数据。
根据本申请的一方面,提出一种车载终端NAND Flash的存储管理系统,所述存储管理系统包括NAND Flash存储系统。所述NAND Flash存储系统包括用户区、坏块映射区和保存区,其中所述用户区用于存放用户数据,所述坏块映射区用于映射用户区的坏块以代替所述坏块的存储数据,所述保存区用于保存映射表,所述映射表记录所述坏块映射区的好块与所述用户区的坏块的映射关系。
根据一些实施例,前述存储管理系统的内存中包括页缓存,所述页缓存的数据容量等于NAND Flash一页的数据容量。
根据一些实施例,前述存储管理系统的所述用户区包括数据区和日志区,所述用户区用于保存用户数据,所述日志区用于存储碎片数据。
根据本申请的一方面,提出一种车载终端,其特征在于,包括一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得一个或多个处理器实现如前所述的方法。
根据本申请的一方面,提出一种车辆,所述车辆包括如前所述的车载终端。
根据本申请的一些实施例,在NAND Flash中设置坏块映射区和保存区,利用保存区的映射表查找坏块映射区中用于代替数据区的坏块存储数据的好块,使得用户在存储数据时不用关心操作的是否是坏块,为用户操作提供了方便。
根据本申请的一些实施例,通过在内存中设置页缓存机制,用于保存整理碎片数据,并将整理后的数据利用日志区保存到NAND Flash中,提高了NAND Flash的空间利用率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据本申请示例实施例的一种车载终端NAND Flash的存储管理方法。
图2示出根据本申请示例实施例的一种车载终端NAND Flash的碎片管理方法流程图。
图3示出根据本申请示例实施例的一种车载终端NAND Flash的存储管理系统图。
图4示出根据本申请示例性实施例的一种车载终端的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有这些特定细节中的一个或更多,或者可以采用其它的方式、组元、材料、装置或操作等。在这些情况下,将不详细示出或描述公知结构、方法、装置、实现、材料或者操作。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
车载终端一般包括北斗位置监控、视频监控、驾驶员行为监控和车辆调度等功能,多被应用于渣土车、货运运输车等被监管车辆中。车载终端在日常使用时,常需要频繁地保存碎片数据。
NAND Flash是一种非易失性存储器,因其具有高密度、大容量、低功耗、成本低等特点,使其在车载终端设备中得到了广泛的应用。NAND Flash包括多个块,每个块包括多个页。每次写入时,是以页为单位的。每次擦除时,是以块为单位的。NAND Flash在写之前必须擦除,且每页只能写一次。因此,当保护的碎片数据不足一页时,尤其是当需要保存多个碎片数据时,则需要写多次,用多个页来保存这些碎片数据,导致NAND Flash的空间利用率不高。对于运输周期较长的货运运输车来说,不便于维护。另外,NAND Flash在生产或使用过程中,在执行写入和擦除操作时,都可能会产生坏块,需要用户自行处理,不便于使用。
为此,本申请提出一种车载终端NAND Flash的存储管理方法,解决了用多页保存碎片数据造成的NAND Flash存储空间浪费问题,提高了NAND Flash的空间利用率。同时,对坏块进行映射管理,使得用户在擦除和写入NAND Flash时无需关心坏块信息,为用户操作提供了方便。
下面将参照附图,对根据本申请的具体实施例进行详细说明。
图1示出根据本申请示例实施例的一种车载终端NAND Flash的存储管理方法。下面参照图1,对根据本申请示例实施例的一种车载终端NAND Flash的存储管理方法进行详细说明。
参见图1,将车载终端NAND Flash存储系统划分为用户区、坏块映射区和保存区。
根据本申请的一些实施例,用户区用于存放用户数据。如图1所示,块0~块961为用户区。根据一些实施例,用户区分为数据区和日志区。如图1所示,块0~块950为数据区,块951~块961为数据区。
根据本申请的一些实施例,在内存中设计了页缓存机制。根据一些实施例,利用定时器、存档指令或存档函数,将页缓存中的数据存储到日志区,以防系统异常断电时出现长时间的数据丢失。根据一些实施例,定时器可以选择1ms,每次一到定时时间,便自动调用存档指令或存档函数,将页缓存数据存入日志区中。根据一些实施例,当数据存入页缓存后,也可以主动调用存档指令或存档函数,将页缓存数据存入日志区中。
根据一些实施例,页缓存的数据容量等于NAND Flash一页的数据容量,如果需要存储的数据小于一页,将前述数据直接存入页缓存中;如果需要存储的数据等于一页,将所述数据直接存入数据区;如果需要存储的数据大于一页,将页容量的整数倍数据直接存入数据区,剩余的数据部分存入页缓存中。
根据一些实施例,页缓存当前存储到日志区的块为活动块,其他数据块非活动块。当活动块存储满时,当前活动块标记为非活动块,当前活动块的下一个地址块作为新的活动块。根据一些实施例,当日志区存储满时,日志区需要执行擦除操作,并重新从日志区开始位置存储数据,一直到存储满为止,实现日志区的循环利用。根据一些实施例,日志区的大小为页缓存大小的整数倍。
根据一些实施例,利用定时器、存档指令或存档函数,将日志区活动块的碎片数据进行整理,并将整理后的碎片数据存储到数据区。根据一些实施例,可以利用定时器定时整理碎片数据并将整理后的碎片数据自动存入数据区。根据一些实施例,无论日志区是否存满,都可以调用存档指令或存档函数,整理碎片数据并主动将整理后的数据存入数据区中。
根据一些实施例,利用定时器、存档指令或存档函数,将页缓存中碎片数据整理后存储于数据区。根据一些实施例,对于不足一页的碎片数据,经由页缓存转存到日志区后,待日志区整理后存入数据区,提高了数据区的存储空间利用率。根据一些实施例,对于大于一页的大块数据,可以不经页缓存,直接存入数据区,既提高了数据区的存储空间利用率,又提高了存储效率。
根据一些实施例,当页缓存写满时,系统将页缓存中的数据自动存入所述数据区。根据一些实施例,日志区只是用来备份页缓存数据,不足一页的碎片数据经由页缓存整理后直接存入数据区中,提高了存储效率。根据一些实施例,利用定时器、存档指令或存档函数,将页缓存中的数据存入数据区。根据一些实施例,可以利用定时器,将页缓存中碎片数据整理后自动存入数据区,也可以主动调用存档指令或存档函数,手动将页缓存中碎片数据整理后存入数据区。
根据一些实施例,用户区划分为第一数据区和第二数据区,其中,第一数据区用于存储碎片数据,第二数据区用于存储大于一页的数据,以便于将碎片数据和大块数据分开存储。根据一些实施例,第一数据区包括数据区和日志区,数据区用于保存用户数据,日志区用于存储碎片数据,用以保障页缓存区内数据安全。
根据本申请的一些实施例,坏块映射区用于映射用户区的坏块以代替前述坏块存储数据,使得用户在操作NAND Flash时,尽管擦除或写入的区域中含有坏块,但是由于坏块映射区的好块替换了坏块,可以认为操作的区域是连续的,不需要关心操作的是否坏块。如图1所示,块962~块1014为坏块映射区,其中块962为块2的映射。
根据本申请的一些实施例,保存区用于保存映射表。如图1所示,块1015~块1023为保存区。映射表记录坏块映射区的好块与用户区的坏块的映射关系。根据一些实施例,保存区有多个块,每个块都保存有一份映射表,避免某个块坏掉的时候,映射表丢失。
根据一些实施例,在保存区设置多个映射表,每个映射表具有计数ID。根据一些实施例,当NAND Flash出现坏块时,会更新多个映射表及其计数ID,保证计数ID值最大的映射表存储的是最新的映射关系。该机制可以避免更新映射表的过程中出现断电、欠压等异常情况时,只更新了部分映射表。
根据一些实施例,存取数据时,如果用户数据区有坏块,首先从保存区取出计数ID最大的映射表,根据映射表找到坏块映射区中对应用户数据区坏块的好块。如图1所示,映射表1的计数ID为4,映射表1的计数ID为3。存取数据时,会去读取计数ID为4的映射表1查找坏块映射区的好块和数据区的坏块的映射表关系。
根据本申请的一些实施例,通过在内存中设置页缓存机制,用于保存整理碎片数据,并将整理后的数据利用日志区保存到NAND Flash中,节约了NAND Flash的空间利用率。另外,在NAND Flash中配置坏块映射区和保存区,利用保存区的映射表查找坏块映射区中用于代替数据区的坏块存储数据的好块,使得用户在存储数据不用关心操作的是否是坏块,为用户操作提供了方便。
图2示出根据本申请示例实施例的一种车载终端NAND Flash的碎片管理方法流程图。下面参照图2,对根据本申请示例实施例的一种车载终端NAND Flash的碎片管理方法进行详细说明。
如图2所示,将NAND Flash划分为用户区、坏块映射区和保存区,并同时在内存中设计有页缓存机制。其中用户区包括数据区和日志区,数据区用于存储用户数据,日志区用于备份页缓存数据。坏块映射区用于代替数据区的坏块存储用户数据。保存区保存坏块映射区的好块与数据区的坏块的映射关系。如图2所示,数据块0~数据块950为数据区。日志区包括一个(碎片)活动块和多个(碎片)非活动块, 当(碎片)活动块存储满时,当前的(碎片)活动块状态修改为(碎片)非活动块,同时,激活下一个日志块为(碎片)活动块。坏块映射区其中一个块用于映射数据块2(坏块)的数据。映射表1~映射表8为保存区。
用户写到页缓存中的碎片数据,在经过特定时间后,利用定时器,或被用户主动刷新的情况,通过调用存档指令或存档函数,将碎片数据写入日志区。例如,参见图2,将大小为32bytes的碎片数据写入日志区(碎片)活动块中。
用户写到页缓存中的碎片数据,在经过特定时间后,利用定时器,或被用户主动刷新的情况,通过调用存档指令或存档函数,将碎片数据写入日志区。例如,参见图2,将大小为96bytes的碎片数据写入日志区。
调用存档指令或存档函数,整理日志区(碎片)活动块中写入的碎片数据。根据一些实施例,如果日志区中(碎片)活动块写满时,会主动调用存档指令或存档函数。根据一些实施例,如果当前活动块已写满,切换活动块,将日志区的下一个块作为活动块,其他块为非活动块。
将(碎片)活动块整理后的数据写入到数据块中。例如,参见图2,将(碎片)活动块整理后共128bytes写入到数据区的数据块0的数据页1中。
对于用户写入的大于等于一页的大小的数据,可直接写入数据区中,不需要经过页缓存,例如,如2所示,直接将长度为2048bytes的数据直接写入数据区的数据块0的数据页0中。如果写入的数据大小不是页的整数倍,会将整页的数据直接存储到数据区,剩余数据写入到页缓存。
日志区可以循环利用。根据一些实施例,假设日志区包含2个数据块,每个数据块包含16页大小,备份间隔为1ms。则当t=1ms时,页缓存备份到日志区的第一个数据块的第1页中。此时,第一个数据块为活动块,第二个数据块为非活动块;当t=2ms时,页缓存备份到日志区的第2页中......当t=16ms时,页缓存备份到日志区的第16页中;当t=17ms时,第一数据块已存满,设置为非活动块,将第二个数据块标识为活动块,依次从第1页开始存储。当第2个数据块也存储满时,擦除第一个数据块和第二个数据块,根据一些实施例,也可以在每个数据块开始存储时,执行擦除操作,实现日志块的循环使用,页缓存将备份到日志区的第一个活动块的第1页中。
根据一些实施例,每个活动块都有一个日志块头部和日志块尾部标识,用以标记日志块的开始位置和结束位置。根据一些实施例,页缓存将数据存储到日志区时,所存储数据包含相应的操作数据指令信息,方便在出现断电等异常情况时,保存数据操作信息。
根据本申请的一些实施例,在NAND Flash中设置坏块映射区和保存区,利用保存区的映射表查找坏块映射区中用于代替数据区的坏块存储数据的好块,使得用户在存储数据时不用关心操作的是否是坏块,为用户操作提供了方便。
下面以一个具体实施例对根据本申请示例实施例的一种车载终端NAND Flash的坏块管理方法进行详细说明。
将NAND Flash划分为用户区、坏块映射区和保存区,并同时在内存中设计有页缓存机制。其中用户区包括数据区和日志区,数据区用于存储用户数据,日志区用于备份页缓存数据。坏块映射区用于代替数据区的坏块存储用户数据。保存区保存坏块映射区的好块与数据区的坏块的映射关系。保存区保存有多个版本的映射表,每个映射表都有一个计数ID。根据一些是实施例,每个映射表的初始化计数ID值相同。
当数据区出现坏块时,会更新映射表。根据一些实施例,当NAND Flash出现坏块时,更新每个映射表及其计数ID。根据一些实施例,在更新映射表时,获取多个映射表的最大计数ID。如果映射表更新成功,则将计数ID在最大计数ID基础上递增。例如,将计数ID更新为最大计数ID加1。如果映射表更新失败,则将计数ID置为初始值,例如,取初始值0,终止更新其他映射表。
下面以表1为例,详细描述下映射表更新过程。
假设有三份映射表,初始时映射表计数ID都为0。
假设第一次更新映射表时没有异常情况出现,则更新操作完成后,三份映射表的计数ID都为1。
假设第二次更新映射表时没有异常情况出现,则更新操作完成后,三份映射表的计数ID都为2。
假设第三次更新,第一映射表更新成功,第二映射表出现异常,则中止更新映射表。此时第一映射表的计数ID是3,第二映射表的计数ID是0,第三映射表的计数ID是2。
假设异常恢复,第四次更新映射表没有异常情况出现,则更新操作完成后,所以映射表的计数ID与第一映射表相同。此时第一映射表的计数ID是4,第二映射表的计数ID是4,第三映射表的计数ID是4。
表1
Figure 137600DEST_PATH_IMAGE001
根据本申请的一些示例实施例,由于计数ID最大的映射表中保存了数据区的坏块和坏块映射区的好块最新的映射关系,当用户访问用户区的坏块时,首先去保存区中查找计数ID值最大的映射表。
根据一些实施例,在查找到最新的映射表后,会利用映射表记录的映射关系,在坏块映射区找到对应的块,执行数据操作。
根据本申请的一些实施例,在NAND Flash中设置坏块映射区和保存区,利用保存区的映射表查找坏块映射区中用于代替数据区的坏块存储数据的好块,使得用户在存储数据时不用关心操作的是否是坏块,为用户操作提供了方便。
图3示出根据本申请示例实施例的一种车载终端NAND Flash的存储管理系统图。
如图3所示一种车载终端NAND Flash的存储管理系统包括NAND Flash存储系统。NAND Flash存储系统包括用户区301、坏块映射区303和保存区305,其中用户区用于存放用户数据,坏块映射区用于映射用户区的坏块以代替坏块的存储数据,保存区用于保存映射表,映射表记录坏块映射区的好块与用户区的坏块的映射关系。
根据本申请的一些实施例,用户区包括数据区和日志区,用户区用于保存用户数据,日志区用于存储碎片数据。
根据本申请的一些实施例,NAND Flash的存储管理系统的内存中包括页缓存。页缓存的数据容量等于NAND Flash一页的数据容量。
下面参照图4来描述根据本申请的这种实施方式的车载终端200。图4显示的车载终端200仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,车载终端200以通用计算设备的形式表现。车载终端200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,存储单元存储有程序代码,程序代码可以被处理单元210执行,使得处理单元210执行本说明书描述的根据本申请各种示例性实施方式的方法。例如,处理单元210可以执行如图1中所示的方法。
存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
车载终端200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或多个通信设备进行通信,例如,手机终端、路由器和调制解调器等。这种通信可以通过输入/输出(I/O)接口250进行。并且,车载终端200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与车载终端200的其它模块通信。应当明白,尽管图中未示出,可以结合车载终端200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现前述功能。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
根据本申请示例实施例,一种车辆装载有图4所示的车载终端,能够实现如图1所示的算法,实现对NAND Flash的碎片管理和坏块管理。
根据本申请的一些实施例,通过在内存中设置页缓存机制,用于保存整理碎片数据,并将整理后的数据利用日志区保存到NAND Flash中,节约了NAND Flash的空间利用率。
根据本申请的一些实施例,在NAND Flash中设置坏块映射区和保存区,利用保存区的映射表查找坏块映射区中用于代替数据区的坏块存储数据的好块,使得用户在存储数据时不用关心操作的是否是坏块,为用户操作提供了方便。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本申请的方法及其核心思想。同时,本领域技术人员依据本申请的思想,基于本申请的具体实施方式及应用范围上做出的改变或变形之处,都属于本申请保护的范围。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (15)

1.一种车载终端NAND Flash的存储管理方法,其特征在于,包括:
将所述车载终端NAND Flash存储系统划分为用户区、坏块映射区和保存区,并在内存中设置页缓存,其中:
所述用户区包括数据区和日志区,如果需要存储的数据小于一页,将所述数据存入所述页缓存,如果需要存储的数据大于等于一页,将所述数据的整数倍页容量数据直接存入所述数据区,所述数据的剩余部分存入所述页缓存;
所述坏块映射区用于映射用户区的坏块以代替所述坏块存储数据,
所述保存区用于保存多个映射表,所述映射表记录所述坏块映射区的好块与所述用户区的坏块的映射关系,每个所述映射表具有计数ID,所述计数ID的初始值包括0,当NANDFlash出现坏块时,
获取多个所述映射表的最大计数ID,
更新所述映射表,
如果所述映射表更新成功,所述映射表的所述计数ID以所述最大计数ID为基础递增,
如果所述映射表更新失败,将所述映射表的计数ID置为初始值,终止更新其他映射表。
2.根据权利要求1所述的存储管理方法,其特征在于,还包括:
所述页缓存的数据容量等于NAND Flash的页容量。
3.根据权利要求2所述的存储管理方法,其特征在于,将所述数据存入所述页缓存或所述数据的剩余部分存入所述页缓存之后,还包括:
将页缓存中的数据存入所述日志区;和/或将页缓存中的数据存入所述数据区。
4.根据权利要求3所述的存储管理方法,其特征在于,所述将页缓存中的数据存入所述日志区,包括:
当页缓存写满时,将页缓存中的数据存入所述日志区;或
定时将页缓存中的数据存入所述日志区;或
利用存档指令,将页缓存中的数据存入所述日志区。
5.根据权利要求4所述的存储管理方法,其特征在于,在所述将页缓存中的数据存入所述日志区之后,还包括:
定时将日志区中存储的数据存储到所述数据区;或
利用存档指令,将日志中的数据存入所述数据区。
6.根据权利要求3所述的存储管理方法,其特征在于,还包括:
当日志区存储满时,日志区执行擦除操作,并重新从日志区开始位置存储数据。
7.根据权利要求3所述的存储管理方法,其特征在于:
所述日志区的大小为页缓存大小的整数倍。
8.根据权利要求3所述的存储管理方法,其特征在于,所述将页缓存数据存入所述数据区,包括:
当页缓存写满时,将页缓存中的数据存入所述数据区;或
定时将页缓存中的数据存入所述数据区;或
利用存档指令,将页缓存中的数据存入所述数据区。
9.根据权利要求1所述的存储管理方法,其特征在于,所述存储管理方法,还包括:
当用户数据区出现坏块时,从所述保存区取出计数ID最大的其中一个映射表,根据映射表找到所述坏块映射区中对应所述坏块的好块。
10.根据权利要求1所述的存储管理方法,其特征在于:
所述用户区包括第一数据区和第二数据区,其中,所述第一数据区存储碎片数据,所述第二数据区存储大于一页的数据。
11.一种车载终端NAND Flash的存储管理系统,所述存储管理系统包括NAND Flash存储系统,其特征在于,包括:
所述NAND Flash存储系统包括用户区、坏块映射区和保存区,并在内存中设置页缓存,其中:
所述用户区包括数据区和日志区,如果需要存储的数据小于一页,将所述数据存入所述页缓存,如果需要存储的数据大于等于一页,将所述数据的整数倍页容量直接存入所述数据区,所述数据的剩余部分存入所述页缓存;所述坏块映射区用于映射用户区的坏块以代替所述坏块的存储数据,
所述保存区用于保存多个映射表,所述映射表记录所述坏块映射区的好块与所述用户区的坏块的映射关系,每个所述映射表具有计数ID,所述计数ID的初始值包括0,当NANDFlash出现坏块时,
获取多个所述映射表的最大计数ID,
更新所述映射表,
如果所述映射表更新成功,所述映射表的所述计数ID以所述最大计数ID为基础递增,
如果所述映射表更新失败,将所述映射表的计数ID置为初始值,终止更新其他映射表。
12.根据权利要求11所述的存储管理系统,其特征在于:
所述页缓存的数据容量等于NAND Flash一页的数据容量。
13.根据权利要求12所述的存储管理系统,其特征在于:
所述用户区包括数据区和日志区,所述用户区用于保存用户数据,所述日志区用于存储碎片数据。
14.一种车载终端,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得一个或多个处理器实现如权利要求1-10中任一所述的方法。
15.一种车辆,其特征在于:
所述车辆包括如权利要求14所述的车载终端。
CN202110934194.2A 2021-08-16 2021-08-16 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆 Active CN113377296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110934194.2A CN113377296B (zh) 2021-08-16 2021-08-16 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110934194.2A CN113377296B (zh) 2021-08-16 2021-08-16 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆

Publications (2)

Publication Number Publication Date
CN113377296A CN113377296A (zh) 2021-09-10
CN113377296B true CN113377296B (zh) 2021-11-16

Family

ID=77577177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110934194.2A Active CN113377296B (zh) 2021-08-16 2021-08-16 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆

Country Status (1)

Country Link
CN (1) CN113377296B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546292B (zh) * 2022-02-28 2023-12-15 深圳市风云实业有限公司 一种nand flash坏块管理方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
CN103425602B (zh) * 2013-08-15 2017-09-08 深圳市江波龙电子有限公司 一种闪存存储设备数据读写的方法、装置及主机系统
CN103823766B (zh) * 2014-03-03 2017-03-22 山西科泰航天防务技术股份有限公司 Flash存储器的高效率存储方法
CN104317733A (zh) * 2014-10-28 2015-01-28 陕西千山航空电子有限责任公司 一种nand flash坏块管理方法
CN105740163A (zh) * 2016-01-29 2016-07-06 山东鲁能智能技术有限公司 一种Nand Flash坏块管理方法
CN110989931A (zh) * 2019-11-28 2020-04-10 北京握奇智能科技有限公司 存储设备坏块处理方法、装置、设备及存储介质
CN111143313B (zh) * 2019-12-25 2023-07-25 成都三零嘉微电子有限公司 一种提高混合映射算法的日志块读写性能的方法

Also Published As

Publication number Publication date
CN113377296A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
US9489388B2 (en) Computing system, host system and method for managing data
EP1782176B1 (en) Systems, methods, computer readable medium and apparatus for memory management using nvram
US6571326B2 (en) Space allocation for data in a nonvolatile memory
CA2673434C (en) Memory device performance enhancement through pre-erase mechanism
US11126561B2 (en) Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
AU2003286967B2 (en) Dual journaling store method and storage medium thereof
US9201787B2 (en) Storage device file system and block allocation
US7526600B2 (en) Data management device and method for flash memory
CN108132890B (zh) 存储芯片的垃圾回收方法、装置、设备及存储介质
US7802072B2 (en) Data storage device, memory management method and program for updating data recorded in each of a plurality of physically partitioned memory areas
CN109558335B (zh) 一种基于Nor Flash存储器的嵌入式系统的文件存储格式
KR101835604B1 (ko) 메모리를 위한 스케줄러
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及系统
CN113377296B (zh) 车载终端NAND Flash的存储管理方法和系统、车载终端、车辆
CN103389942A (zh) 控制装置、存储装置及存储控制方法
CN111858393B (zh) 内存页面管理方法、内存页面管理装置、介质与电子设备
CN111506255B (zh) 基于nvm的固态硬盘元数据管理方法及系统
JP6215631B2 (ja) コンピュータシステム及びそのデータ管理方法
CN114327292B (zh) 文件管理方法、系统、电子设备和存储介质
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
CN103389943A (zh) 控制装置、存储装置及存储控制方法
CN112181311B (zh) 一种循环录制方法、设备和存储介质
CN108664578B (zh) 一种文件循环存储方法及系统
CN112527197A (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
GR01 Patent grant
GR01 Patent grant