CN106527997B - 基于扩序列的NAND Flash坏块重复利用的方法及装置 - Google Patents

基于扩序列的NAND Flash坏块重复利用的方法及装置 Download PDF

Info

Publication number
CN106527997B
CN106527997B CN201611060525.XA CN201611060525A CN106527997B CN 106527997 B CN106527997 B CN 106527997B CN 201611060525 A CN201611060525 A CN 201611060525A CN 106527997 B CN106527997 B CN 106527997B
Authority
CN
China
Prior art keywords
data
bad block
sequence
module
nand flash
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
CN201611060525.XA
Other languages
English (en)
Other versions
CN106527997A (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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN201611060525.XA priority Critical patent/CN106527997B/zh
Publication of CN106527997A publication Critical patent/CN106527997A/zh
Application granted granted Critical
Publication of CN106527997B publication Critical patent/CN106527997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/064Management of blocks
    • 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]

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提出了一种基于扩序列的NAND闪存坏块重复利用方法及装置,用于解决现有坏块处理方法中存在的坏块利用率低和适应性差的技术问题。处理方法为:获取原始测试数据;设置初始扩序列码长度L和判决门限P;对原始测试数据做扩序列;将扩序列后的数据写入坏块;从坏块中读出数据;对读出数据进行解扩;对解扩后数据进行恢复;检测恢复数据和原始测试数据是否一致;若一致则实现了坏块重复利用;若不一致则将与L和P对应的n改为n+1,重复上述步骤;处理装置包括:数据获取模块、扩序列模块、数据写入模块、数据读出模块、解扩模块、数据恢复模块和数据检测模块。本发明的坏块利用率高,闪存的写入数据量大,使用寿命长。

Description

基于扩序列的NAND Flash坏块重复利用的方法及装置
技术领域
本发明属于通讯技术领域,涉及一种NAND Flash坏块重复利用的方法及装置,特别涉及一种基于扩序列的NAND Flash坏块重复利用的方法及装置,可用于U盘和固态硬盘等存储设备。
背景技术
闪存(Flash)是一种非挥发性的半导体存储芯片,具有体积小、功耗低、不易受物理破坏的优点,是移动数码产品的理想存储介质。
Flash存储器按照内部架构和具体实现技术可以分为AND、NAND、NOR和DiNOR等几种,目前以NAND Flash为主流存储器。NAND Flash具有容量大、体积小、功耗低、随机读写性能好、性价比高等优点,从而得到了广泛应用。NAND Flash从架构上来说又分为三种:SLC(Single Level Cell)、MLC(Multi Level Cell)以及 TLC(Triple Level Cell),由于MLC架构的NAND Flash在速度、寿命以及价格等方面的综合优势,得到了业界的普遍采用。NANDFlash技术中的基本存储单元为“页”,若干页组成一个块,块容量等于页容量与块内页数的乘积,不同闪存的块内页数不尽相同,通常为16页~512页。闪存的编程以页为单位,在写之前必须先擦除;闪存的擦除则以块为单位,NAND Flash是由多个块串行排列组成。NANDFlash是一种顺序读取的设备,它仅用8或16比特的I/O端口就可以存取按页为单位的数据。NAND Flash在读和擦写连续大容量文件时,速度优势明显,但随机存取时速度比较慢,因为它不能按字节写。NAND Flash容易产生坏块,坏块损坏的物理机制一般是页中某些比特位不能被编程,通常是1不能被编程为0,它发生比特错误是离散独立的。如果一页中的不能被编程比特数超过了该芯片设定的ECC最大校验能力时,就会被称为“坏块”而被抛弃。比如镁光公司的MT29F512G08芯片,它的ECC校验能力为1100字节纠错40比特,即当每1100字节中的错误比特数超过40时,这个块就会被认定为坏块而不被使用,造成了大量的浪费。
目前对坏块的处理方法主要分为两种,分别是替换法和重复利用法。
替换法是指在设计时,用一个控制器管理坏块,当向坏块存取数据时,控制器即将数据转移到预定备用替换区域,以保证数据安全完整。例如中国专利申请,授权公告号为CN103593301B,公开了一种坏块管理方法及***,包括操作***执行从目标地址的读取数据,监控到从该目标地址读取的数据并与原始写入的数据相对比后不一致;将该目标地址指向的存储区域设置为坏块区域,并建立与该坏块区域对应的替换区域;将要存储的数据写入到所述替换区域中。此方法虽然可以保证数据的正确存储,但是在实现过程中完全抛弃了仍旧拥有大多数正常存储单元的坏块,造成存储空间的浪费。
重复利用法是指通过相关算法或工具对坏块进行利用。例如中国专利申请,授权公告号为CN101859604B,公开了一种闪存坏块的利用方法,该方法首先借助量产工具软件扫描闪存,发现其中的坏块并记录在闪存控制器内;再对量产工具软件扫描发现的闪存坏块根据事先设定的“可供利用”之筛选条件再次扫描,符合筛选条件的所述坏块被标记并记录在闪存控制器内,等待使用;不符合筛选条件的坏块则标记为真正的坏块被记录在闪存控制器内,不再使用;重复所述扫描和标记过程直到所有闪存坏块都被标记和记录;最后将闪存中符合“可供利用”之筛选条件的坏块放在替换区等待使用。该发明可以利用那些只是对某些数据敏感的坏块,也就是坏块中特殊的很小一部分,而对剩下占大多数的普通坏块还只能是弃之不用。这在闪存容量不断增加的情况下,浪费的闪存空间就会越来越大。可见,现有技术利用闪存坏块的适应性很差,并不能适应于所有坏块,找到一种可以无限制的对闪存坏块进行利用的方法显得尤为重要。
发明内容
本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于扩序列的NANDFlash坏块重复利用的方法及装置,旨在提高坏块的利用率,改善坏块重复利用的适应性差的问题,延长NAND Flash的使用寿命。
为了实现上述目的,本发明采取的技术方案为:
基于扩序列的NAND Flash坏块重复利用的方法,包括以下步骤:
(1)数据获取模块获得外部存储设备中将要写入坏块的数据,得到原始测试数据;
(2)设置扩序列码的初始长度L为3,判决门限P为2,其中L=2n-1,P=L-n+1,n为扩序列码的阶数,且n≥2;
(3)扩序列模块利用扩序列码,对原始测试数据进行扩序列,得到扩序列后数据;
(4)数据写入模块将扩序列后数据写入NAND Flash的坏块中;
(5)数据读出模块读出NAND Flash坏块中的数据,得到待解扩数据;
(6)解扩模块利用扩序列码对待解扩数据进行解扩处理,得到解扩后数据;
(7)数据恢复模块依据判决门限P对每L比特数据依次进行判决,得到恢复数据;
(8)数据检测模块将恢复数据和原始测试数据进行比对,并判断该两种数据是否一致,若是,则实现了坏块重复利用,结束;若否,则将n改为n+1,执行步骤3。
上述基于扩序列的NAND Flash坏块重复利用的方法,步骤1中所述的获得外部存储设备中将要写入坏块的数据,是由直接内存访问方式获得的。
上述基于扩序列的NAND Flash坏块重复利用的方法,步骤3中所述的扩序列后数据,是通过原始测试数据与扩序列码进行按位异或处理得到的,步骤6中所述的解扩后数据,是通过待解扩数据与扩序列码进行按位异或处理得到的。
上述基于扩序列的NAND Flash坏块重复利用的方法,所述坏块,是指超出闪存控制器ECC纠错范围的闪存块。
上述基于扩序列的NAND Flash坏块重复利用的方法,步骤1~步骤8,均是基于FPGA实现的。
上述基于扩序列的NAND Flash坏块重复利用的方法,步骤7中所述的对每L比特数据依次进行判决,其判决方法为,每L比特数据中若有P个或大于P个的1,则恢复数据为1,若有P个或大于P个的0,则恢复数据为0。
上述基于扩序列的NAND Flash坏块重复利用的方法,步骤8中所述的将恢复数据和原始测试数据进行比对,是指将恢复数据和原始测试数据进行按位异或处理,并对处理结果进行分析实现的。
一种实现基于扩序列的NAND Flash坏块重复利用方法的装置,其特征在于,包括数据获取模块、扩序列模块、数据写入模块、数据读出模块、解扩模块、数据恢复模块和数据检测模块,其中,
数据获取模块,用于获取外部存储设备中的原始测试数据;
扩序列模块,用于通过长度为L的扩序列码对将要写入坏块的数据进行扩序列,其中扩序列码的初始长为L,判决门限为P,L=2n-1,P=L-n+1,n为扩序列码阶数,且n≥2;
数据写入模块,用于将扩序列后数据写入到相应NAND Flash坏块中;
数据读出模块,用于读出坏块中的扩序列后数据;
解扩模块,用于对从坏块中读出的数据通过同样长度为L的扩序列码进行解扩处理;
数据恢复模块,用于将解扩后的数据进行数据恢复;
数据检测模块,用于检测恢复数据和原始测试数据是否一致,若是,则实现了坏块的重复利用;否则,令n=n+1,并返回至扩序列模块。
本发明与现有技术相比,具有如下优点。
本发明由于在NAND Flash中存在坏块不能被利用的情况下,通过将写入NANDFlash坏块的数据进行扩序列后再写入,经过后续的解扩处理和数据恢复,理论上可以实现对所有超过闪存控制器ECC校验能力的NAND Flash坏块重复利用,扩展了NAND Flash的可用存储容量,增大了NAND Flash的写入数据量,与现有技术相比,提高了闪存坏块的利用率,改善了坏块重复利用的适应性差的问题,从而减少了NAND Flash擦除的次数,进而延长了NAND Flash的使用寿命。
附图说明
图1为本发明基于扩序列的NAND Flash坏块重复利用的方法的实现流程框图;
图2为本发明基于扩序列的NAND Flash坏块重复利用的装置的结构示意图;
图3为图2实施例中n=2时的扩序列模块及数据写入模块的工作示意图;
图4为图2实施例中n=2时的解扩模块和数据恢复模块工作示意图;
图5为图2实施例中数据检测模块工作原理示意图。
具体实施方式
以下结合附图和实施例,对本发明作进一步详细说明;
参照图1,一种基于扩序列的NAND Flash坏块重复利用的方法,包括以下步骤:
步骤S10,获得原始测试数据;
本实施例中NAND Flash芯片采用镁光公司的MT29F512G08,该芯片每页为16K+1216字节,每个块由512页组成,大小为8192K+608K字节,芯片总容量为512Gb。
本实施例中,获得原始测试数据是指,获取外部存储设备中将要写入坏块的数据,截取一段,作为原始测试数据;由于本实施例中用的闪存每页大小为16K,所以选择截取字节的数据作为原始测试数据,这样当扩序列码长度为L时,经过扩序列处理后,要写入数据变成16K,正好一页,方便数据写入。
本实施例中,外部存储设备为具有存储空间的电子设备如台式机。具体地,可通过PCI-e接口通过直接内存访问的方式将台式机中存储的数据传输至FPGA的缓存中;直接内存访问是指外部设备不通过CPU而直接与***内存交换数据,数据读取速度快,效率高;
步骤S11,设置初始扩序列码长度L和判决门限P;
本实施例中,将初始扩序列码长度L设置为3,判决门限P设置为2,其中扩序列码长度L=2n-1,判决门限P=L-n+1,n≥2;长度为3的扩序列码采用110序列,此扩序列码为2阶伪随机码,长度为5的扩序列码采用10011序列,此码为3阶伪随机码的截短码;将初始扩序列码长度L设置为3判决门限P设置为2,是因为这样既可以解决坏块中离散单比特错误也可以最大效率的增加写入数据量;当扩序列码长度为3时,坏块的有效写入数据量变为原始坏块大小的三分之一,同理当扩序列码长度为L时,坏块的有效写入数据量变为原始坏块大小的L分之一;扩序列码采用伪随机序列是因为伪随机序列有良好的随机性和平衡性;
步骤S12,对原始测试数据用长度为L的扩序列码进行扩序列处理;
本实施例中,扩序列处理为原始测试数据与扩序列码进行按位异或运算;
本实施例中,扩序列处理的具体工作模式参考图3上半部分;
步骤S13,将扩序列后的数据写入NAND Flash的坏块中;
本实施例中所述坏块是指超出ECC校验能力的NAND Flash坏块,至于坏块是不是对哪些数据敏感本发明没有限制;ECC(Error Correcting Code)是一种数据检错纠错算法,通过增加冗余数据的方式对存储数据进行编译码,用来解决NAND Flash中存在少量比特翻转的问题;超过ECC校验能力是指,每个闪存控制器的ECC校验都有最大纠错能力,如本实施例中的ECC纠错能力就是每1100字节纠错40比特,即当1100字节中的错误比特数超过40时,这个块就被认定为坏块;
本实施例中数据写入是通过FPGA实现NAND Flash接口写入时序,将扩序列后的数据写入NAND Flash的坏块中。需要注意的是,在数据写入之前应当对该坏块进行擦除,保持坏块中的正常比特为全1状态,如图3第四行所示;本实施例中块擦除操作需要3个地址周期,首先由FPGA发送块擦除第一个命令字60H,然后发送3个周期的需要擦除的块地址,最后发送块擦除的第二个命令字D0H;数据写入操作需要5个地址周期,首先由FPGA发送数据写入第一个命令字80H,然后发送5个周期的块内地址,接着发送16K待写入数据,最后发送数据写入的第二个命令字10H;
本实施例中,数据写入的具体工作模式参考图3下半部分;
步骤S14,将数据从该坏块读出,得到待解扩数据;
本实施例中数据读出是通过FPGA实现NAND Flash接口读出时序,将数据从NANDFlash的坏块中读出;本实施例中数据读出操作需要5个地址周期,首先由FPGA发送数据读出的第一个命令字00H,然后发送5个地址周期的块内地址,最后发送数据读出的第二个命令字30H;
步骤S15,将待解扩数据用扩序列码进行解扩处理;
本实施例中,解扩处理是将待解扩的数据与原扩序列码进行按位异或处理;
本实施例中,解扩处理的具体工作模式参考图4上半部分;
步骤S16,将解扩后的数据进行数据恢复;
本实施例中,扩序列码长度L为3,判决门限P为2,数据恢复的具体工作模式参考图4下半部分;
步骤S17,检测恢复数据和原始测试数据是否一致;
本实施例中,数据检测是通过将原数据和恢复数据进行按位异或运算,结果中若有1出现则说明恢复数据和原始测试数据不完全相同,说明此扩序列方法的容错能力还不能用来对坏块重复利用,需要换一个容错能力更大的扩序列方法;若没有1出现,则说明数据读写正确,此扩序列方案的容错能力可以对坏块进行重复利用;
本实施例中,数据检测的具体工作模式参考图5;
本实施例中,数据检测采用的是将原始测试数据与恢复数据进行按位异或处理,通过分析处理结果得到检测结果;应当知道通过原始测试数据与恢复数据相减也可以达到同样功能,为了达到数据检测采用其他类似操作也在本发明的保护范围内;
步骤S18,将与扩序列码长度L和判决门限P对应的n改为n+1;
本实施例中,当步骤S17存在问题时,说明NAND Flash坏块中有连续2比特错误,初始情况下的扩序列方法不能规避连续2比特错误,应将扩序列长度增大,并更改相应的判决门限值,使其容错能力更强。当n为2时,此NAND Flash坏块重复利用方法的容错能力为1比特,容错能力具体表现为L-P,随着n的增加,容错能力也在增加;
参照图2,一种基于扩序列的NAND Flash坏块重复利用的装置,包括数据获取模块B100、扩序列模块B101、数据写入模块B102、数据读出模块B103、解扩模块B104、数据恢复模块B105和数据检测模块B106;其中各个模块是有序连接在一起,相互连接顺序不能颠倒和替换;
数据获取模块B100,用于获取外部存储设备中将要写入坏块的数据;
本实施例中,FPGA通过PCI-e接口用直接内存访问的方式将台式机中存储的数据传输至FPGA的数据寄存器中;
扩序列模块B101,对从外部存储设备中获取的数据用长度为L的扩序列码进行扩序列处理;
扩序列是指通过利用序列通过相应运算将原始数据扩长的操作,本实施例中,扩序列处理为源数据与扩序列码进行按位异或运算;
数据写入模块B102,用于将扩序列后的数据写入NAND Flash中的坏块中;
数据写入模块是指通过某种工具按照芯片的相应时序要求,将数据写入到存储单元中;本实施例中数据写入是通过FPGA实现NAND Flash接口写入时序,将扩序列后的数据写入NAND Flash的坏块中。需要注意的是,在数据写入之前应当对该坏块进行擦除,保持坏块中的正常存储单元为全1状态;
数据读出模块B103,将写入的数据从该坏块中读出;
数据读出模块是指通过某种工具按照芯片的相应时序要求,将数据从存储单元中读出;本实施例中数据读出是通过FPGA实现NAND Flash接口读出时序,将数据从NANDFlash的坏块中读出。
解扩模块B104,用于将待解扩数据用同样长度为L的扩序列码进行解扩处理;
数据解扩操作和数据扩序列操作用的算法相同,用的扩序列也相同;本实施例中,解扩处理是将待解扩的数据与原扩序列码进行按位异或处理;
数据恢复模块B105,用于将解扩后的数据进行数据恢复;
数据恢复是指通过某种恢复标准对原数据进行判决,得到恢复数据;本实施例中,当扩序列码长度L为3,判决门限P为2时,数据恢复即依次对每3比特数据进行判决,若有2个或2个以上1出现,则恢复原始数据为1;若有2个或2个以上0出现,则恢复原始数据为0;
数据检测模块B106,检测恢复数据和原始测试数据是否一致;
数据检测是指通过相关运算,分析运算结果得出判断结果;本实施例中,数据比对是通过将原数据和恢复出来的数据进行按位异或处理,结果中若有1出现则说明恢复数据和原始数据不完全相同,说明此扩序列方案的容错能力还不能用来处理这个坏块,需要换一个容错能力更大的扩序列方案;若没有1出现,则说明数据读写正确;
本实施例中,当B106检测出问题时,说明NAND Flash中有连续2比特错误,初始情况下的扩序列模式不能规避连续2比特错误,应将扩序列码长度增大,并更改相应的判决门限值,使其容错能力增强;
参照图3,为图2实施例中n=2时的扩序列模块及数据写入模块的工作示意图,其中;
第一行代表原始测试数据,本实施例中,将外部存储设备中获得的数据截取16/3K大小的一段作为原始测试数据;
第二行代表扩序列码长度L为3的扩序列码,本实施例中选用110序列作为初始扩序列码;
第三行为原始测试数据与扩序列码进行按位异或处理后得到的扩序列后的数据,其中原始测试数据为16/3K大小,扩序列码长度L为3,所以得到的扩序列后数据大小为16K,正好是本实施例中闪存一页的大小;
第四行模拟了NAND Flash中的存储单元,其中每个方框代表一个存储单元,粗体方框表示不能被编程的错误比特;
第五行是扩序列后数据写入坏块中的状态,可见除了错误比特其他正常存储单元的数据因为数据写入而改变;
参照图4,为图2实施例中n=2时的解扩模块和数据恢复模块工作示意图,其中;
第一行表示从坏块中读出的待解扩数据;
第二行表示数据扩序列操作时用的初始扩序列码;
第三行表示待解扩数据与扩序列码进行按位异或操作后得到的解扩后数据;
第四行表示数据恢复后的恢复数据,对第三行中的解扩后数据,每3比特数据进行判决,如果有2个或2个以上为1,则恢复数据为1。如果有2个或2个以上数据为0,则恢复数据为0,得到的恢复数据的大小为解扩后数据的三分之一;
参照图5,为图2实施例中数据检测模块工作原理示意图,其中;
第一行表示原始测试数据;
第二行表示经过数据恢复得到的恢复数据;
第三行表示原始测试数据和恢复数据进行按位异或后得到的检测结果,显示全0则表示原始测试数据与恢复数据完全相同,证明对坏块的读写完全正确,若检测结果中有1出现,则表示数据读写出现问题;
以上仅为本发明的优选实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所做的等效结构和等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的保护范围内。

Claims (8)

1.一种基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,包括以下步骤:
(1)数据获取模块获得外部存储设备中将要写入坏块的数据,得到原始测试数据;
(2)设置扩序列码的初始长度L为3,判决门限P为2,其中L=2n-1,P=L-n+1,n为扩序列码的阶数,且n≥2;
(3)扩序列模块利用扩序列码,对原始测试数据进行扩序列,得到扩序列后数据;
(4)数据写入模块将扩序列后数据写入NAND Flash的坏块中;
(5)数据读出模块读出NAND Flash坏块中的数据,得到待解扩数据;
(6)解扩模块利用扩序列码对待解扩数据进行解扩处理,得到解扩后数据;
(7)数据恢复模块依据判决门限P对每L比特数据依次进行判决,得到恢复数据;
(8)数据检测模块将恢复数据和原始测试数据进行比对,并判断该两种数据是否一致,若是,则实现了坏块重复利用,结束;若否,则将n改为n+1,执行步骤3。
2.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,步骤1中所述的获得外部存储设备中将要写入坏块的数据,是由直接内存访问方式获得的。
3.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,步骤3中所述的扩序列后数据,是通过原始测试数据与扩序列码进行按位异或处理得到的,步骤6中所述的解扩后数据,是通过待解扩数据与扩序列码进行按位异或处理得到的。
4.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,所述坏块,是指超出闪存控制器ECC纠错范围的闪存块。
5.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,步骤1~步骤8,均是基于FPGA实现的。
6.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,步骤7中所述的对每L比特数据依次进行判决,其判决方法为,每L比特数据中若有P个或大于P个的1,则恢复数据为1,若有P个或大于P个的0,则恢复数据为0。
7.根据权利要求1所述的基于扩序列的NAND Flash坏块重复利用的方法,其特征在于,步骤8中所述的将恢复数据和原始测试数据进行比对,是指将恢复数据和原始测试数据进行按位异或处理,并对处理结果进行分析实现的。
8.一种实现基于扩序列的NAND Flash坏块重复利用方法的装置,其特征在于,包括数据获取模块、扩序列模块、数据写入模块、数据读出模块、解扩模块、数据恢复模块和数据检测模块,其中,
数据获取模块,用于获取外部存储设备中的原始测试数据;
扩序列模块,用于通过长度为L的扩序列码对将要写入坏块的数据进行扩序列,其中扩序列码的初始长为L,判决门限为P,L=2n-1,P=L-n+1,n为扩序列码阶数,且n≥2;
数据写入模块,用于将扩序列后数据写入到相应NAND Flash坏块中;
数据读出模块,用于读出坏块中的扩序列后数据;
解扩模块,用于对从坏块中读出的数据通过同样长度为L的扩序列码进行解扩处理;
数据恢复模块,用于将解扩后的数据进行数据恢复;
数据检测模块,用于检测恢复数据和原始测试数据是否一致,若是,则实现了坏块的重复利用;否则,令n=n+1,并返回至扩序列模块。
CN201611060525.XA 2016-11-25 2016-11-25 基于扩序列的NAND Flash坏块重复利用的方法及装置 Active CN106527997B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611060525.XA CN106527997B (zh) 2016-11-25 2016-11-25 基于扩序列的NAND Flash坏块重复利用的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611060525.XA CN106527997B (zh) 2016-11-25 2016-11-25 基于扩序列的NAND Flash坏块重复利用的方法及装置

Publications (2)

Publication Number Publication Date
CN106527997A CN106527997A (zh) 2017-03-22
CN106527997B true CN106527997B (zh) 2019-07-16

Family

ID=58357401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611060525.XA Active CN106527997B (zh) 2016-11-25 2016-11-25 基于扩序列的NAND Flash坏块重复利用的方法及装置

Country Status (1)

Country Link
CN (1) CN106527997B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829358B (zh) * 2018-06-29 2021-06-29 郑州云海信息技术有限公司 固态硬盘的坏块管理方法以及固态硬盘
CN110570898A (zh) * 2019-08-13 2019-12-13 深圳市金泰克半导体有限公司 检测存储器数据处理速度的方法及装置
CN112216333B (zh) * 2020-09-30 2024-02-06 深圳市宏旺微电子有限公司 芯片测试方法及装置
CN112347007B (zh) * 2020-10-14 2022-12-09 歌尔科技有限公司 闪存数据保护方法、装置、电子设备及存储介质
CN118155692A (zh) * 2024-05-09 2024-06-07 成都佰维存储科技有限公司 Ufs寿命测试方法、装置、电子设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3135714B2 (ja) * 1992-10-29 2001-02-19 株式会社東芝 チェックポイントリスタート方式
US8650343B1 (en) * 2007-08-30 2014-02-11 Virident Systems, Inc. Methods for upgrading, diagnosing, and maintaining replaceable non-volatile memory
CN101593157B (zh) * 2008-05-27 2011-03-16 中兴通讯股份有限公司 非线性闪存的坏块管理方法及装置
CN101859604B (zh) * 2009-04-10 2012-10-24 国民技术股份有限公司 闪存坏块的利用方法
CN103218177A (zh) * 2013-04-19 2013-07-24 杭州电子科技大学 具有数据均衡处理功能的NAND Flash存储***
CN103593301B (zh) * 2013-11-20 2016-07-27 北京旋极信息技术股份有限公司 坏块管理方法及***
CN103645965A (zh) * 2013-11-28 2014-03-19 陕西千山航空电子有限责任公司 基于ecc纠错码的nand-flash坏块恢复方法
CN105843749B (zh) * 2016-03-24 2019-01-25 浙江大学 一种基于FPGA的NAND Flash容错方法

Also Published As

Publication number Publication date
CN106527997A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
CN106527997B (zh) 基于扩序列的NAND Flash坏块重复利用的方法及装置
KR101623119B1 (ko) 솔리드 스테이트 드라이브의 에러 제어 방법
EP2684134B1 (en) Programmable data storage management
US8132045B2 (en) Program failure handling in nonvolatile memory
CN103699344B (zh) 非易失性存储器装置及其操作方法
US8041883B2 (en) Restoring storage devices based on flash memories and related circuit, system, and method
TW201918893A (zh) 資料儲存裝置與記憶體裝置之資料處理方法
CN103106143B (zh) 固态储存装置及其逻辑至实体对应表建立方法
TWI451249B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US8559225B2 (en) Nonvolatile memory device and related method of operation
US20130013853A1 (en) Command executing method, memory controller and memory storage apparatus
KR100823170B1 (ko) 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
KR20100099960A (ko) 불휘발성 메모리 장치의 동작 방법
CN101800071A (zh) 固态盘设备及其编程失败处理方法
US9965362B2 (en) Systems and methods for performing data recovery in a memory system
TWI540428B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US20180330793A1 (en) Responding to power loss
TWI614605B (zh) 資料儲存裝置及其資料維護方法
US20130326114A1 (en) Write mitigation through fast reject processing
US9183081B2 (en) Systems and methods for performing defect detection and data recovery in a memory system
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
Lee et al. Adaptive paired page prebackup scheme for mlc nand flash memory
CN104794075A (zh) 存储装置、电子装置以及刻录内存的方法
US20210374294A1 (en) Data storage device and data processing method

Legal Events

Date Code Title Description
C06 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