CN112612418A - 一种用于大容量NandFlash坏块管理的方法及系统 - Google Patents
一种用于大容量NandFlash坏块管理的方法及系统 Download PDFInfo
- Publication number
- CN112612418A CN112612418A CN202011559841.8A CN202011559841A CN112612418A CN 112612418 A CN112612418 A CN 112612418A CN 202011559841 A CN202011559841 A CN 202011559841A CN 112612418 A CN112612418 A CN 112612418A
- Authority
- CN
- China
- Prior art keywords
- block
- address
- physical
- physical block
- area
- 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 45
- 238000013507 mapping Methods 0.000 claims abstract description 275
- 238000007726 management method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明公开了一种用于大容量NandFlash坏块管理的方法及系统,共中方法包括:将NandFlash的存储空间进行逻辑地址‑物理地址的地址映射,建立地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;当NandFlash更新数据时,根据数据区中物理块的地址标识查找数据区中未映射状态的物理块,并且查找到的数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;当未映射状态的物理块为好块时,向查找到的数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
Description
技术领域
本发明涉及存储技术领域,更具体地,涉及一种用于大容量NandFlash坏块管理的方法及系统。
背景技术
NandFlash存储器是非易失性存储器的一种,由于具有容量较大,改写速度快、价格低廉等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、手机、录音笔等。
但由于NandFlash的工艺的限制,在初次使用时就可能存在坏块;并且NandFlash的擦写次数十分有限,通常以百万次做为行业标准,如果对同一个块反复进行擦写很容易造成块损坏,导致存储数据错误。因此要使用NandFlash就必须进行坏块管理,将数据保存到NandFlash的好块中。
现有技术存在着两种坏块管理方法:
第一种是采用预留块的方法,将NandFlash划分为固定的两个区域:活动区和备用区,建立活动区坏块和备用区好块的映射关系,并记录映射关系表。映射关系表一般存储在其它非易失性存储器,比如MCU的ROM,对于大容量NandFlash,映射关系表非常大,存储空间不足或者需要花费更大的硬件成本存储映射关系。而且这种方法需要固定活动区和备用区的位置,擦写操作没有均匀分布在各个块中,存在着空间浪费和磨损写坏的风险。
第二种是坏块跳过的方法,当遇到坏块,直接跳过坏块,将数据存储在下一个好块中,也就是将坏块后紧接着的一个好块作为该坏块的替换块。这种方法,每个坏块的替换都会影响后续其它所有存储块的映射,如果坏块后的好块存在数据,则需将数据依次往后搬移,操作复杂,耗费时间比较长,且在搬移的过程中还可能出现坏块,容易造成数据错误。
然而,现有技术的两种方法,都只能应用在小容量NandFlash的坏块管理,对于大容量NandFlash,一方面映射表非常大,原存储空间可能不足,另一方面映射表访问频率增大,存储映射表的介质出错概率增大。
申请(CN110287068A)一种NandFlash驱动方法,涉及NandFlash驱动领域,公开了一种NandFlash驱动方法,用以在RAM较小的MCU上实现NandFlash的坏块管理。本发明将NandFlash划分活动区和备用区,并在MCU的ROM中开辟两个空闲区域,空闲区域用于存储NandFlash的逻辑地址-物理地址映射表,其中,映射表的索引即对应NandFlash的物理块,其值为对应NandFlash物理块的状态,物理块的状态均含有:标记该块是否为坏块的坏块标记F1,该块对应的目标地址F2;在判断到NandFlash的该块损坏时,在备用区中使用一个好块替换掉对应的坏块,同时在逻辑地址-物理地址映射表中更新坏块标记F1和目标地址F2。本发明适用于NandFlash的坏块管理。然而,申请《一种NandFlash驱动方法》的技术方案可以在RAM较小的MCU上实现NandFlash的坏块管理,但同时也存在三个弊端:一是NandFlash划分为活动区和备份区,两个区域位置固定,如果没有坏块,备份区的空间得不到使用,Flash空间浪费严重。二是如果不断对同一Block块进行写操作,那么该块将会在短时间内磨损写坏,并且极易导致存储在该块上的数据丢失。三是此申请的技术方案只适合小容量的NandFlash坏块管理,如果是大容量NandFlash,需要大量空间存储映射表,MCU的ROM空间无法满足需求。
因此,需要一种技术,以实现对大容量NandFlash坏块管理。
发明内容
本发明技术方案提供一种用于大容量NandFlash坏块管理的方法及系统,以解决如何对大容量NandFlash坏块进行管理的问题。
为了解决上述问题,本发明提供了一种用于大容量NandFlash坏块管理的方法,所述方法包括:
将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;所述数据区用于存储数据;所述坏块区用于存储坏地址;所述映射区用于存储所述地址映射表;
当NandFlash更新数据时,根据数据区中物理块的地址标识查找所述数据区中未映射状态的物理块,并且查找到的所述数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
当未映射状态的物理块为好块时,向查找到的所述数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至所述地址映射表;
当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
优选地,还包括:建立位图表,所述位图表用于存储NandFlash中物理块的映射状态。
优选地,所述将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将所述地址映射表中物理块的坏块标识更新为坏块;更新位图表中所述物理块对应的映射状态为已映射状态。
优选地,所述将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新所述映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
优选地,还包括:当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至所述地址映射表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
基于本发明的另一方面,本发明提供一种用于大容量NandFlash坏块管理的系统,所述系统包括:
初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;所述数据区用于存储数据;所述坏块区用于存储坏地址;所述映射区用于存储所述地址映射表;
更新单元,用于当NandFlash更新数据时,根据数据区中物理块的地址标识查找所述数据区中未映射状态的物理块,并且查找到的所述数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
执行单元,用于当未映射状态的物理块为好块时,向查找到的所述数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至所述地址映射表;
当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
优选地,还包括建立单元,用于建立位图表,所述位图表用于存储NandFlash中物理块的映射状态。
优选地,所述初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将所述地址映射表中物理块的坏块标识更新为坏块;更新位图表中所述物理块对应的映射状态为已映射状态。
优选地,所述初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新所述映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
优选地,所述执行单元,还用于当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至所述地址映射表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
本发明技术方案将NandFlash整体映射为三个区域数据区、映射区和备用区,采用动态分配的方法,不断更新逻辑地址-物理地址映射表,这样保证了写入操作可以比较均匀分布在NandFlash的各个块中,实现硬件的磨损平衡。本发明技术方案通过上电后在RAM中还创建了物理块的位图表,用来表明物理块的当前状态,大大减少了对RAM资源的消耗,提高对NandFlash的访问速度,适合对大容量NandFlash的坏块管理。
本发明技术方案参考两种坏块管理方法,对坏块管理的实现方式做出了优化,采用动态映射的方法建立逻辑块地址和物理块地址之间的关系,避免了对同一个块反复进行擦写,本发明技术方案实现了NandFlash的磨损均衡,有效延长了NandFlash的使用寿命。同时将映射表信息保存到NandFlash的固定逻辑块,使用位图表缓存物理块的状态,减少了对RAM资源的使用,实现在RAM较小的MCU上完成大容量NandFlash的坏块管理。
附图说明
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:
图1为根据本发明优选实施方式的NandFlash数据区物理块和映射区物理块数据格式的示意图;
图2为根据本发明优选实施方式的逻辑地址映射示意图;
图3为根据本发明优选实施方式的创建物理地址——逻辑地址映射的流程示意图;
图4为根据本发明优选实施方式的系统上电的正常流程示意图;
图5为根据本发明优选实施方式的写入数据时的操作流程示意图;
图6为根据本发明优选实施方式的更新映射表的流程示意图;
图7为根据本发明优选实施方式的一种用于大容量NandFlash坏块管理的方法流程图;
图8为根据本发明优选实施方式的一种用于大容量NandFlash坏块管理的系统结构图。
具体实施方式
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
图7为根据本发明优选实施方式的一种用于大容量NandFlash坏块管理的方法流程图。为实现在RAM较小的MCU上完成大容量NandFlash的坏块管理,本发明采用动态映射表来实现坏块管理,在RAM较小的MCU上解决了大容量NandFlash的坏块管理,其解决方案如下。
如图7所示,本发明提供一种用于大容量NandFlash坏块管理的方法,方法包括:
步骤701,将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;数据区用于存储数据;坏块区用于存储坏地址;映射区用于存储地址映射表。
本发明将整个NandFlash存储空间进行逻辑块-物理块的地址映射,映射空间划分为三个区域:数据区、坏块区和映射区。三个区域包括了未映射和已映射两种状态。数据区都是好块,用来保存数据,有两种状态;坏块区都是已映射存储块,存放了固有坏块地址和使用坏块地址;映射区都是已映射存储块,用来存放地址映射表。
本发明在映射空间中,映射区大小固定,一般是1个存储块,使用最高的逻辑地址,其对应的物理块地址记为标识S1;数据区大小不固定,逻辑地址从0开始;坏块区大小也不固定,逻辑地址紧挨着映射区,坏块使用的下个逻辑地址记为标识T,标识T初始化为次高的逻辑地址,每发现一个坏块,T依次递减。
步骤702,当NandFlash更新数据时,根据数据区中物理块的地址标识查找数据区中未映射状态的物理块,并且查找到的数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
步骤703,当未映射状态的物理块为好块时,向查找到的数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至地址映射表;
步骤704,当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
本发明最大特点就是在更新数据时,先从物理块中找到未映射的物理块S2,然后写入数据,并更新逻辑地址-物理地址映射表。其中,标识S2在设备上电后会初始化为物理块首个块的块地址,使用了S2且更新映射表后,S2地址递增指向下一个未映射的物理好块,如果达到最大物理块地址,再从首个块开始查找未映射的好块。当MCU检测到坏块时,标记此块为坏块,将坏块的物理地址放到映射表的坏块区,添加坏块的逻辑-物理地址映射信息到映射表,更新T为下个坏块的逻辑地址,从而实现坏块的动态管理。
本发明通过NandFlash存储块的Spare区来保存物理块的状态,1字节标识当前块是好块或是坏块,1字节标识当前块的状态,4字节表示当前块的逻辑块地址。如果逻辑地址是最大值或其它特殊值,表示此物理块属于映射区。映射区的物理块除了上述信息,还会保存一个4字节的操作顺序号,每更新一次映射表,顺序号加1。
本发明映射区保存的是存储块的逻辑-物理地址映射表,表的索引即对应NandFlash的逻辑块地址,其值为对应NandFlash逻辑块的状态。具体的状态信息包括:
标记该逻辑块是否已映射的标记F1
标记该逻辑块是否为坏块的坏块标记F2;
该逻辑块对应的物理块地址F3;
优选地,还包括:建立位图表,位图表用于存储NandFlash中物理块的映射状态。
本发明为了快速找到未映射的物理块,本发明还在RAM中创建了位图表,用来缓存物理块的映射状态,位图表中的bit数大于等于NandFlash中物理块的数量。系统上电后,将位图表全部数据位初始化为未映射状态,读取映射表后,将已映射的物理块对应的数据位标记为已映射状态,映射表更新后,需要同步更新位图表的相应数据位。
优选地,将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将地址映射表中物理块的坏块标识更新为坏块;更新位图表中物理块对应的映射状态为已映射状态。
本发明中创建逻辑地址-物理地址映射表是在系统首次上电时完成的,其基本流程如下:
步骤1,检测NandFlash物理块的出厂坏块标志位是否置位,若是,则判定为坏块,执行步骤2;否则,物理块地址递增,继续执行步骤1直到所有物理块检测完成。
步骤2,选择标识S2(当前未映射的物理好块)为映射表存储块,根据标识T(下个坏块逻辑地址)确定存储偏移地址,读取映射表,在映射表中更新映射标记F1、坏块标记F2和坏块物理地址F3,保存到NandFlash。
步骤3,更新位图表,根据坏块物理地址确定位图表对应的数据位,修改数据位为已映射状态,同时更新标识S1、标识T和标识S2为下个有效数值;
步骤4,检测下个物理块,循环执行步骤1至步骤3。
步骤5,写入映射区信息,选择标识S2为映射区的物理块,最大逻辑块地址确定偏移地址,读取映射表,在映射表中更新映射标记F1、坏块标记F2和映射区物理地址F3,,保存到NandFlash。
步骤6,更新映射块的位图表,根据映射区物理块地址确定位图表对应的数据位,修改数据位为已映射状态,更新标识S1和标识S2。
优选地,将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
本发明在系统非首次上电时,没有写入操作,主要是通过读取映射表确定标识S1、标识S2和标识T的取值,其具体操作如下:
步骤1,遍历NandFlash,读取各物理块的Spare区数据,检查对应的逻辑地址是否为映射区预设值(如最大逻辑地址)。
步骤2,如果是映射区预设值,表示此物理块是映射区,更新映射区物理地址标识S1;如果不是,继续步骤1检查下个物理块,直到全部物理块检查完毕。
步骤3,读取映射区的物理块数据,得到已经映射的物理块的地址列表,包括坏块物理块地址和映射区物理块地址,根据列表更新位图表的对应比特位,修改数据位为已映射状态。
步骤4,根据坏块区的映射数据,更新当前未映射的物理好块S2和下个坏块逻辑地址标识T,其中S2等于未映射物理块的最小物理地址。
如果没有找到映射块,表示系统是首次上电,执行创建逻辑地址-物理地址映射表流程。
当读取数据时,MCU读取所涉及逻辑地址的Mapping信息,得到数据存储的物理地址,驱动程序读取物理块的数据,从而获取所需的数据。
优选地,还包括:当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至地址映射表,根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
更新逻辑地址-物理地址映射表是本发明实现坏块动态管理的主要环节,一般发生在数据写入的过程中。当遇到以下情况时,MCU调用更新映射表的流程:
(1)当发生数据写入或数据擦除时,如果逻辑块未映射,将数据直接写入标识S2记录的物理块中,修改此物理块为已映射状态,更新映射表、位图表和其它相关标识。
(2)当发生数据写入或数据擦除时,如果逻辑块已经映射,除了执行情况(1)的步骤外,同时擦除原物理块数据,以及更新原物理块的位图表标识。
(3)当写入或擦除失败,产生使用坏块,标记为坏块,清除映射表数据区中此坏块的映射信息,同时将坏块的物理块地址添加到映射表的坏块区,再执行情况(1)。
更新映射表时,需要读取原映射表信息,在RAM中更新映射表信息,映射区操作顺序号加1,将映射表写入当前未映射的物理好块S2,更新映射区物理地址标识S1等于标识S2,同时更新标识S2为下个未映射的物理块地址。
下面结合附图与实施例对本发明做进一步说明:
实施例1:
实施例1依据本发明的一种具体的首次上电初始化操作,如图3所示。NandFlash在出厂时,芯片厂家都会对固有坏块继续标记,系统首次上电,MCU获取坏块信息,创建逻辑地址-物理地址映射表。
步骤S101,因为第0块一定是好块,初始化未映射的物理块标记S2为第0块,映射区物理地址标记S1为第0块;初始化下个坏块逻辑地址标识为T为最大逻辑块地址;位图表初始化为未映射状态。
步骤S102,检测NandFlash物理块的Spare区,确定当前块是否是出厂坏块。如果坏块标志位是非FF,则此物理块是坏块,执行步骤S103;否则,物理块地址递增继续执行步骤S102,直到所有物理块检测完成,执行步骤S106。如图1所示。
步骤S103,如果是坏块,读取原映射表,标识S1和标识T确定存储位置,映射标记F1修改为已映射、坏块标记F2修改为坏块,物理地址F3等于当前坏块地址,添加坏块的映射信息,保存到标记S2记录的NandFlash物理块。
步骤S104,根据坏块物理地址确定位图表对应的数据位,修改位图表数据位为已映射状态,同时标识T数值减1,标识S1等于标识S2,更新标识S2为下个未映射物理块的地址。如图2所示。
步骤S105,物理块地址加1,循环执行步骤S102。
步骤S106,读取原映射表,标识S1和标识T确定存储位置,映射标记F1修改为已映射、坏块标记F2修改为好块,物理地址F3等于标识S1,添加映射区的Mapping信息,保存到标记S2记录的NandFlash物理块。
步骤S107,更新位图表,修改数据位为已映射状态,标识S1等于标识S2,更新标识S2为下个物理块的地址。
实施例2:
实施例2是本发明的一种具体的非首次上电初始化操作,目的是找出映射信息保存的物理块,并初始化标识S1、标识S2、标识T和位图表,具体流程如图4所示。
步骤S201,遍历NandFlash,读取各物理块的Spare区数据,检查对应的逻辑地址是否为映射区预设值(如最大逻辑地址)。
步骤S202,如果是预设值,表示此物理块是映射区,更新映射区物理地址标识S1;如果不是,物理块地址加1,继续步骤S201,直到全部物理块检查完毕。
步骤S203,如果遍历完毕后,没有找到映射块,表明系统是首次上电,执行实施例1创建逻辑地址-物理地址映射表流程。
步骤S204,如果遍历完毕后,找到两个映射区物理块,表示系统上次异常掉电,标识S1更新为顺序号大的物理块地址,擦除顺序号小的物理块数据。
步骤S205,读取映射区的物理块数据,得到已经映射的物理块的地址列表,包括坏块物理块地址和映射区物理块地址,根据列表更新位图表的对应比特位,修改数据位为已映射状态。
步骤S206,根据坏块区的映射数据,更新当前未映射的物理块标识S2和下个坏块逻辑地址标识T,其中S2等于未映射块的最小物理地址。
实施例3:
实施例3,是依据本发明的一种具体的更新映射表操作,主要发生在有数据写入的操作过程中,步骤流程如图5所示。
步骤S301,将数据写入当前物理块S2,同时在此物理块的Spare区标记此物理块的状态为已映射,记录此物理块的逻辑地址。如果写入失败,执行步骤S302,否则执行步骤S303。
步骤S302,写入物理块S2失败,产生使用坏块,标记此物理块块为坏块,在映射表添加坏块Mapping信息,在位图表同步此物理块为已映射状态,更新标识S2,S1,T,执行步骤S301。
步骤S303,写入物理块S2成功,更新标识S2为下个未映射的物理块,同时根据操作涉及的逻辑块地址,读取逻辑块在映射区的Mapping数据,检查此逻辑块的映射状态。
步骤S304,如果此逻辑块没有映射,在映射表添加此逻辑块的Mapping信息,即填充映射标记F1为已映射、坏块标记F2为好块,物理地址F3等于写入数据的物理块地址,同时同步位图表的状态信息。
步骤S305,如果此逻辑块已经映射,修改此逻辑块的Mapping信息,即将原物理块地址改为新物理块地址,同步位图表中新物理块为已映射状态,同时擦除原物理块数据,修改位图表中原物理块状态为未映射。
本发明更新映射表的过程和更新数据区的流程类似,先从旧的映射表中读取Mapping信息,按照逻辑地址索引修改Mapping信息后,映射区操作序号加1,将映射表保存到当前物理块S2,映射区的物理地址S1更新为当前物理块S2,更新标识S2位下个有效地未映射物理块,最后擦除原物理块的旧映射表,达到掉电保护的功能。如果遇到坏块,执行步骤S302记录坏块信息,更新当前物理块S2,然后重新更新映射表。如图6所示。
本发明中位图表反映了系统全部物理块的映射状态,其主要作用是在更新当前物理块S2时,可以快速定位下个未映射物理块的地址,为了达到磨损均衡,计算方法是从S2开始递增,依次检查物理块的映射状态,直到找到未映射的物理块。
本发明将NandFlash进行逻辑块-物理块的地址映射,映射空间划分为三个区域:数据区、坏块区和映射区。其中每个物理块都有两种状态:已映射和未映射,坏块和映射块属于已映射状态。本发明采用动态的坏块管理方式,将未映射的物理块作为共享资源,在数据写入和映射表更新时动态分配使用。映射区的逻辑地址未固定值,为最大逻辑块地址,数据区的逻辑地址从0开始递增,坏块区的逻辑地址从次高逻辑块地址递减。本发明通过在RAM创建了物理块的位图表,表明各个物理块的映射状态,可以快速找到未映射的物理块,同时节省了对RAM资源的占用。
本发明采用动态映射的方法建立逻辑块地址和物理块地址之间的关系,避免了对同一个块反复进行擦写,实现了NandFlash的磨损均衡,有效延长了NandFlash的使用寿命。同时将映射表信息保存到NandFlash的固定逻辑块,使用位图表缓存物理块的状态,可以快速找到未映射的物理块,同时减少了对RAM资源的使用,实现在RAM较小的MCU上完成大容量NandFlash的坏块管理。本发明的方法还充分考虑了掉电保护,使得映射表不易丢失,稳定性大大提高,降低因意外掉电等原因造成映射表错乱的风险。
图8为根据本发明优选实施方式的一种用于大容量NandFlash坏块管理的系统结构图。如图8所示,本发明提供一种用于大容量NandFlash坏块管理的系统,系统包括:
初始单元801,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;数据区用于存储数据;坏块区用于存储坏地址;映射区用于存储地址映射表;
更新单元802,用于当NandFlash更新数据时,根据数据区中物理块的地址标识查找数据区中未映射状态的物理块,并且查找到的数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
执行单元803,用于当未映射状态的物理块为好块时,向查找到的数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至地址映射表;
当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
优选地,系统还包括建立单元,用于建立位图表,位图表用于存储NandFlash中物理块的映射状态。
优选地,系统的初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将地址映射表中物理块的坏块标识更新为坏块;更新位图表中物理块对应的映射状态为已映射状态。
优选地,系统的初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
优选地,系统的执行单元,还用于当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至地址映射表,根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
本发明优选实施方式的一种用于大容量NandFlash坏块管理的系统800与本发明优选实施方式的一种用于大容量NandFlash坏块管理的方法700相对应,在此不再进行赘述。
已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
Claims (10)
1.一种用于大容量NandFlash坏块管理的方法,所述方法包括:
将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;所述数据区用于存储数据;所述坏块区用于存储坏地址;所述映射区用于存储所述地址映射表;
当NandFlash更新数据时,根据数据区中物理块的地址标识查找所述数据区中未映射状态的物理块,并且查找到的所述数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
当未映射状态的物理块为好块时,向查找到的所述数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至所述地址映射表;
当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
2.根据权利要求1所述的方法,还包括:建立位图表,所述位图表用于存储NandFlash中物理块的映射状态。
3.根据权利要求2所述的方法,所述将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将所述地址映射表中物理块的坏块标识更新为坏块;更新位图表中所述物理块对应的映射状态为已映射状态。
4.根据权利要求2所述的方法,所述将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新所述映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
5.根据权利要求2所述的方法,还包括:当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至所述地址映射表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
6.一种用于大容量NandFlash坏块管理的系统,所述系统包括:
初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表;将地址映射的映射空间划分为数据区、坏块区和映射区;所述数据区用于存储数据;所述坏块区用于存储坏地址;所述映射区用于存储所述地址映射表;
更新单元,用于当NandFlash更新数据时,根据数据区中物理块的地址标识查找所述数据区中未映射状态的物理块,并且查找到的所述数据区中未映射状态的物理块,并判断数据区中未映射状态的物理块是否为好块;
执行单元,用于当未映射状态的物理块为好块时,向查找到的所述数据区中未映射状态的物理块中写入数据;将数据区中物理块的地址标识指向下一个未映射的物理块;将已写入数据的物理块标记为已映射状态,并将写入数据的物理块的已映射状态更新至所述地址映射表;
当未映射状态的物理块为坏块时,将坏块的物理块的物理地址存储至坏块区,将坏块区中物理块的地址标识指向下一个坏块区的物理块。
7.根据权利要求6所述的系统,还包括建立单元,用于建立位图表,所述位图表用于存储NandFlash中物理块的映射状态。
8.根据权利要求7所述的系统,所述初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash首次上电时,依次检测NandFlash的物理块是否为出厂坏块;
当物理块为出厂坏块时,将坏块的物理块的物理地址存储至坏块区,将所述地址映射表中物理块的坏块标识更新为坏块;更新位图表中所述物理块对应的映射状态为已映射状态。
9.根据权利要求7所述的系统,所述初始单元,用于将NandFlash的存储空间进行逻辑地址-物理地址的地址映射,建立逻辑地址-物理地址的地址映射表,还包括:
当NandFlash非首次上电时,
遍历NandFlash,确认NandFlash中物理块的逻辑地址是否为映射区的预设值;
当NandFlash中物理块的逻辑地址为映射区的预设值时,更新所述映射区物理地址标识;
读取映射区的物理块的数据信息,获取已映射状态的物理块的地址列表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
根据坏块区的物理块的数据信息,更新当前未映射状态的数据区中物理块中好块的地址标识,将坏块区的物理块的地址标识指向坏块区的下一个物理块;其中数据区中物理块中好块的地址标识为数据区中未映射状态物理块的最小物理地址。
10.根据权利要求6所述的系统,所述执行单元,还用于当数据区的物理块进行数据信息写入或数据信息擦除时,如果没有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;修改物理块为已映射状态,并更新物理块的映射状态至所述地址映射表,根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当数据区的物理块进行数据信息写入或数据信息擦除时,如果已有逻辑地址映射到物理块的物理地址,将按地址标识进行物理块的数据信息写入或数据信息擦除;根据物理块的地址列表更新所述位图表中对应的比特位为已映射状态;
当物理块的数据信息写入或数据信息擦除失败时,则判断物理块为坏块,将物理块地址从原数据区删除,并将物理块地址添加到坏块区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559841.8A CN112612418B (zh) | 2020-12-25 | 2020-12-25 | 一种用于大容量NandFlash坏块管理的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559841.8A CN112612418B (zh) | 2020-12-25 | 2020-12-25 | 一种用于大容量NandFlash坏块管理的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612418A true CN112612418A (zh) | 2021-04-06 |
CN112612418B CN112612418B (zh) | 2024-03-08 |
Family
ID=75245002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011559841.8A Active CN112612418B (zh) | 2020-12-25 | 2020-12-25 | 一种用于大容量NandFlash坏块管理的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112612418B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253934A (zh) * | 2021-05-28 | 2021-08-13 | 深圳市汇春科技股份有限公司 | Flash坏块处理方法、装置、计算机设备和可读存储介质 |
CN115237351A (zh) * | 2022-08-02 | 2022-10-25 | 苏州启恒融智信息科技有限公司 | Nand块动态重映射、读写命令处理方法及存储设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085849A1 (en) * | 2002-04-11 | 2004-05-06 | Samsung Electronics Co., Ltd. | Flash memory, and flash memory access method and apparatus |
CN101178689A (zh) * | 2007-12-06 | 2008-05-14 | 浙江科技学院 | 一种NAND Flash存储器的动态管理方法 |
WO2008089643A1 (fr) * | 2007-01-17 | 2008-07-31 | Memoright Memoritech(Shenzhen) Co., Ltd. | Procédé de gestion d'un bloc mémoire flash |
CN101419844A (zh) * | 2008-11-18 | 2009-04-29 | 清华大学深圳研究生院 | 一种闪存器件仿真设备以及闪存主控模块评测方法 |
CN101441552A (zh) * | 2007-11-19 | 2009-05-27 | 深圳市朗科科技股份有限公司 | 闪存介质坏块处理方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN101710270A (zh) * | 2009-11-27 | 2010-05-19 | 西安奇维测控科技有限公司 | 一种基于闪存的高速大容量存储器及芯片数据管理方法 |
US20140281151A1 (en) * | 2013-03-15 | 2014-09-18 | Super Talent Technology, Corp. | Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance |
CN104657088A (zh) * | 2015-02-06 | 2015-05-27 | 深圳市锐明视讯技术有限公司 | 一种硬盘坏块信息的获取方法及装置 |
CN105700901A (zh) * | 2014-11-28 | 2016-06-22 | 华为技术有限公司 | 一种启动方法、装置和计算机系统 |
CN106648463A (zh) * | 2016-12-21 | 2017-05-10 | 广州周立功单片机科技有限公司 | Nand Flash块管理方法和系统 |
CN107894872A (zh) * | 2017-09-30 | 2018-04-10 | 南京扬贺扬微电子科技有限公司 | SPI Nand Flash的坏块管理方式 |
CN109783017A (zh) * | 2015-01-27 | 2019-05-21 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN111581121A (zh) * | 2019-02-19 | 2020-08-25 | 爱思开海力士有限公司 | 用于管理存储器系统中的映射数据的方法和设备 |
CN111949198A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种坏块管理方法、装置和存储设备 |
-
2020
- 2020-12-25 CN CN202011559841.8A patent/CN112612418B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040085849A1 (en) * | 2002-04-11 | 2004-05-06 | Samsung Electronics Co., Ltd. | Flash memory, and flash memory access method and apparatus |
WO2008089643A1 (fr) * | 2007-01-17 | 2008-07-31 | Memoright Memoritech(Shenzhen) Co., Ltd. | Procédé de gestion d'un bloc mémoire flash |
CN101441552A (zh) * | 2007-11-19 | 2009-05-27 | 深圳市朗科科技股份有限公司 | 闪存介质坏块处理方法 |
CN101178689A (zh) * | 2007-12-06 | 2008-05-14 | 浙江科技学院 | 一种NAND Flash存储器的动态管理方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN101419844A (zh) * | 2008-11-18 | 2009-04-29 | 清华大学深圳研究生院 | 一种闪存器件仿真设备以及闪存主控模块评测方法 |
CN101710270A (zh) * | 2009-11-27 | 2010-05-19 | 西安奇维测控科技有限公司 | 一种基于闪存的高速大容量存储器及芯片数据管理方法 |
US20140281151A1 (en) * | 2013-03-15 | 2014-09-18 | Super Talent Technology, Corp. | Green NAND Device (GND) Driver with DRAM Data Persistence For Enhanced Flash Endurance and Performance |
CN105700901A (zh) * | 2014-11-28 | 2016-06-22 | 华为技术有限公司 | 一种启动方法、装置和计算机系统 |
CN109783017A (zh) * | 2015-01-27 | 2019-05-21 | 华为技术有限公司 | 一种存储设备坏块的处理方法、装置及存储设备 |
CN104657088A (zh) * | 2015-02-06 | 2015-05-27 | 深圳市锐明视讯技术有限公司 | 一种硬盘坏块信息的获取方法及装置 |
CN106648463A (zh) * | 2016-12-21 | 2017-05-10 | 广州周立功单片机科技有限公司 | Nand Flash块管理方法和系统 |
CN107894872A (zh) * | 2017-09-30 | 2018-04-10 | 南京扬贺扬微电子科技有限公司 | SPI Nand Flash的坏块管理方式 |
CN111581121A (zh) * | 2019-02-19 | 2020-08-25 | 爱思开海力士有限公司 | 用于管理存储器系统中的映射数据的方法和设备 |
CN111949198A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种坏块管理方法、装置和存储设备 |
Non-Patent Citations (2)
Title |
---|
文D;谢凯年;: "超大容量NAND FLASH坏区管理方法的设计与实现", 现代电子技术, no. 16 * |
许娜;彭飞;谭彦亮;苗志富;曹梦丹;: "一种基于虚拟页地址映射的NAND Flash管理算法", 空间控制技术与应用, no. 03 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113253934A (zh) * | 2021-05-28 | 2021-08-13 | 深圳市汇春科技股份有限公司 | Flash坏块处理方法、装置、计算机设备和可读存储介质 |
CN115237351A (zh) * | 2022-08-02 | 2022-10-25 | 苏州启恒融智信息科技有限公司 | Nand块动态重映射、读写命令处理方法及存储设备 |
CN115237351B (zh) * | 2022-08-02 | 2023-08-15 | 苏州启恒融智信息科技有限公司 | Nand块动态重映射、读写命令处理方法及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112612418B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9355028B2 (en) | Data-storage device and flash memory control method | |
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
EP1891529B1 (en) | Flash memory with programmable endurance | |
US9329995B2 (en) | Memory device and operating method thereof | |
US8041884B2 (en) | Controller for non-volatile memories and methods of operating the memory controller | |
US8417882B2 (en) | Storage device and deduplication method | |
CN100492322C (zh) | 非易失性存储系统中的损耗平衡 | |
CA2574756C (en) | Systems, methods, computer readable medium and apparatus for memory management using nvram | |
CN110175001B (zh) | 一种nor-flash数据存储方法、计算机设备及存储介质 | |
US20020041517A1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
US20030229753A1 (en) | Flash memory file system | |
US20080313505A1 (en) | Flash memory wear-leveling | |
US7287117B2 (en) | Flash memory and mapping control apparatus and method for flash memory | |
US8438325B2 (en) | Method and apparatus for improving small write performance in a non-volatile memory | |
CN110287068B (zh) | 一种NandFlash驱动方法 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
CN112612418A (zh) | 一种用于大容量NandFlash坏块管理的方法及系统 | |
CN112596668A (zh) | 一种存储器的坏块处理方法及系统 | |
US20230244382A1 (en) | Deallocated Block Determination | |
JP2009205689A (ja) | フラッシュディスク装置 | |
US20100180072A1 (en) | Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program | |
CN101425334A (zh) | 一种实现nor flash坏块管理的方法及其控制电路 | |
CN111143238B (zh) | 基于eFlash存储芯片的数据擦写方法及系统 | |
JP2000285001A (ja) | 半導体フラッシュメモリ装置及びその制御方法 | |
CN110633056B (zh) | 在操作系统层面的Flash芯片的页面管理方法及存储设备 |
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 |