基于块保留区替换的坏块管理系统及管理方法

文档序号:6638000阅读:244来源:国知局
基于块保留区替换的坏块管理系统及管理方法【专利摘要】基于块保留区替换的坏块管理系统及管理方法,属于固态存储【
技术领域
】。本发明解决了现有的现有的方法使用的是坏块跳过策略,只能适用于简单顺序存储操作的场合,对于有完整上层FTL管理算法的应用不具有普适性的问题。技术方案为:运用坏块保留区替换策略,将所有块分为用户数据块区和好块保留区,通过在FPGA片内RAM建立基于位索引的坏块标记表BBT(BadBlockTable)和块保留映射表RTT(Reservedtranslatetable)实现坏块识别标记和坏块映射替换,同时将两表构成坏块信息表保存在NANDFlash中。本发明可应用于固态存储器SSD。【专利说明】基于块保留区替换的坏块管理系统及管理方法【
技术领域
】[0001]本发明涉及固态存储领域中一种坏块管理系统及管理方法,特别涉及一种基于块保留区替换的坏块管理系统及管理方法,属于固态存储【
技术领域
】。【
背景技术
】[0002]NANDFlash存储器由于其具有访问速度快、低功耗、高密度、大容量、抗震性强等优点,在目前的消费电子、计算机存储系统、数据采集、服务器存储系统等领域得到了广泛的应用。为提高SSDs的存储容量和降低其单位存储成本,NANDFlash也逐渐从单层单元(SingleLevelCell,SLC)发展到多层单元(Multi-levelCell,MLC)。随着存储单元尺寸的降低,NANDFlash的可靠性也不断下降,在工厂生产和使用过程中会产生坏块,为了能够正常使用就必须对坏块进行管理BBM(BadBlockManagement)。[0003]NANDFlash由若干存储块构成,每个块由若干页构成。由于制造工艺和成本原因,生产厂家在NANDFlash成片出厂时均含有坏块,称为出厂坏块。在使用的过程中,由于NANDFlash擦写寿命有限(SLC10000-100000次,MLC3000-5000次),当使用到一定时限后就会产生坏块,称为使用坏块。[0004]1、出厂坏块的识别:出厂坏块信息在出厂时会标记在每个块的固定地址中。读该固定地址数据就可判断是不是坏块。[0005]2、使用坏块的识别:使用坏块分为两类:(1)擦除或者编程操作失败,产生使用坏块。(2)读某块内某页数据时,数据出错位数超出了ECC校验能力,产生使用坏块。[0006]目前国内在NANDFlash坏块管理方面也做了相当多的工作,中国科学技术大学光电技术研究所博士论文(孙科林。基于NANDFlash的嵌入式图像记录技术[D]:[博士学位论文],北京:中国科学院大学,2013,43-55)提出了一种利用存储于FRAM非易失存储器中的坏块标记位表和滑动窗口技术,实现只需要一个时钟就可以完成坏块查询、替换的技术和突发坏块产生时复制保持原有坏块有效数据的滞后回写技术。中科院长春光机所(张胜勇,高世杰,吴志勇,等.基于FPGA的NANDFlash坏块处理方法[J].计算机工程,2010,36(6):239-243.)提出了一种面向顺序读写数据记录装置的简单坏块管理策略,并做了实验验证。南开大学(李幼萌,李庆诚,宫晓利.FTL层的NAND-FLASH坏块管理算法石开究与实现[J]·InternationalConferenceonServicesScience,ManagementandEngineering.2010:254-257.)提出了一种利用FTL层进行软件坏块管理的方案,由于该方案与特定的FTL算法相结合,对于上层独立的FTL算法研究开发不利,同时与实际的NANDFlash层次化构架不相符合。[0007]但是,上述两种方案是面向于高速数据采集系统的存储器模块,使用的是坏块跳过策略,1、只能适用于简单顺序存储操作的场合,2、对于有完整上层FTL管理算法的应用不具有普适性。【
发明内容】[0008]本发明目的是为了解决现有的方法使用的是坏块跳过策略,只能适用于简单顺序存储操作的场合,对于有完整上层FTL管理算法的应用不具有普适性的问题。[0009]本发明的技术方案是:[0010]一种基于块保留区替换的坏块管理系统,其特征在于它包括:[0011]用于对坏块扫描并建立坏块信息表的坏块管理初始化模块;[0012]用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制模块;[0013]用于对坏块管理初始化模块和坏块管理控制模块产生的坏块信息进行保存的坏块信息表RAM;[0014]用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写模块;[0015]进行滞后回写模块后,进行检测NANDFlash运行过程中是否有坏块产生的模块;[0016]坏块管理初始化模块在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,坏块管理初始化模块发送信息给坏块管理控制模块,初始化完成;在系统运行中,坏块管理控制模块需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制模块在完成地址更新映射后,控制滞后回写模块实现旧块到新块的数据合并操作。[0017]一种基于块保留区替换的坏块管理方法,其特征在于它包括:[0018]用于对坏块扫描并建立坏块信息表的坏块管理初始化步骤;[0019]用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制步骤;[0020]用于对坏块管理初始化步骤和坏块管理控制步骤产生的坏块信息进行保存的坏块信息表RAM;[0021]用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写步骤;[0022]进行滞后回写步骤后,进行检测NANDFlash运行过程中是否有坏块产生的步骤;[0023]坏块管理初始化步骤在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,进行坏块管理初始化步骤,该步骤发送信息后进行坏块管理控制步骤,初始化完成;在系统运行中,坏块管理控制步骤需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制步骤在完成地址更新映射后,控制滞后回写步骤实现旧块到新块的数据合并操作。[0024]本发明的有益效果是:[0025]1、本发明运用坏块替换策略,通过将坏块位标记表BBT(BadBlockTable)和块保留映射表RTT(Reservedtranslatetable)相结合的方式实现完整的坏块管理功能。该方法具有流程简化、资源损耗小、性能可靠、可与上层FTL(FlashTranslationLayer)透明适配的优点;[0026]2、本发明全面考虑了坏块产生、坏块识别、坏块信息存储、坏块高速替换,能同时管理出厂坏块和突发产生的使用坏块,是坏块管理的完整解决方案;[0027]3、本发明将坏块管理信息非易失地存储在原NANDFlash当中,并备份存储,同时对突发产生的坏块数据进行可靠合并操作,使其具有极高的可靠性;[0028]4、本发明使用块保留区替换策略,不仅能对简单顺序访问实现坏块管理也能对复杂的随机访存情况实现坏块管理,使用BBT和RTT相结合的方式在对出厂坏块和使用坏块都能进行管理的同时,大大降低了坏块管理的资源损耗,简化了管理步骤,提高了管理效率;【专利附图】【附图说明】[0029]图1坏块管理系统功能模块结构图;[0030]图2坏块保留区替换方法示意图;[0031]图3坏块管理初始化模块流程图;[0032]图4坏块管理控制器模块地址转换流程图;[0033]图5坏块管理控制器模块使用坏块管理流程图;[0034]图6为本发明试验验证中,BBM初始化模块仿真图;[0035]图7为本发明试验验证中,BBM控制器地址转换仿真图;[0036]图8为本发明试验验证中,BBM顶层逻辑仿真图。【具体实施方式】[0037]结合附图进一步详细说明本发明的【具体实施方式】。【具体实施方式】[0038]一:下面结合图1、图2说明本实施方式,本实施方式所述的一种基于块保留区替换的坏块管理系统,它包括:[0039]用于对坏块扫描并建立坏块信息表的坏块管理初始化模块;[0040]用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制模块;[0041]用于对坏块管理初始化模块和坏块管理控制模块产生的坏块信息进行保存的坏块信息表RAM;[0042]用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写模块;[0043]所述数据合并操作是对原坏块到新好块的数据合并操作;[0044]进行滞后回写模块后,进行检测NANDFlash运行过程中是否有坏块产生的模块;[0045]坏块管理初始化模块在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,坏块管理初始化模块发送信息给坏块管理控制模块,初始化完成;在系统运行中,坏块管理控制模块需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制模块在完成地址更新映射后,控制滞后回写模块实现旧块到新块的数据合并操作。[0046]本发明方法,在策略上使用坏块保留区替换策略。在坏块存储方式上使用坏块标记表BBT和块保留映射表RTT相结合的方式在管理流程上使用出厂坏块初始化扫描和运行中使用坏块管理分开管理的方式。[0047]坏块保留区替换策略就是在NANDFlash芯片(图2所不)的连续块中,将最后的一部分块设置为保留好块区,前部分设置为用户寻址数据块区。当产生坏块时,将数据块区中的坏块物理地址映射到保留区的好块物理地址中,实现坏块管理。[0048]【具体实施方式】二:下面结合图3说明本实施方式,本实施方式与【具体实施方式】一不同的是:所述坏块管理初始化模块包括:用于判断NANDFlash是否为第一次启动的模块、坏块遍历扫描模块、判断NANDFlash第一块第一页和第二页数据是否相同的模块;[0049]执行用于判断NANDFlash是否为第一次启动的模块,若是,则进行坏块遍历扫描模块,否则,进行判断NANDFlash第一块第一页和第二页数据是否相同的模块,若是,则进行坏块信息表导入坏块信息表RAM,否则,进行将坏块映射信息量大的那一页数据作为坏块信息表写入坏块信息表RAM;[0050]所述坏块遍历扫描模块包括:用于根据扫描到的坏块信息建立坏块信息表并保存在坏块信息表RAM的模块、用于将所述坏块信息表分别存入NANDFlash第一块的第一页和第二页中保存的模块;[0051]所述坏块信息表包括基于位索引的坏块位标记表BBT(BadBlockTable)和从坏块地址到保留区好块地址的映射表RTT(ReservedTranslateTable)。【具体实施方式】[0052]三:下面结合图4、图5说明本实施方式,本实施方式与具体实施方式一或二不同的是:所述坏块管理控制模块包括:用于对地址映射管理的模块、用于对运行过程中产生坏块管理的模块;[0053]所述用于对地址映射管理的模块包括:判断当前块是否为坏块的查询坏块位标记表模块、查询地址映射表并将转换块地址输出的模块、直接输出当前NANDFlash操作地址模块;[0054]所述地址映射管理模块开启后,进行判断当前块是否为坏块的查询坏块位标记表模块,若是,则进行依次查询地址映射表并将转换块地址输出的模块,否则进行直接输出当前NANDFlash操作地址模块后回到地址映射管理模块开启阶段;[0055]所述用于对运行过程中产生坏块管理的模块包括:检测NANDFlash运行过程中是否有坏块产生模块、映射保留区的第一块好块地址到当前坏块地址的模块、更新坏块信息表(坏块位标记表和坏块地址映射表)模块、坏块信息表重新写入NANDFlash模块、;[0056]进行检测NANDFlash运行过程中是否有坏块产生模块,若是,则进行映射保留区的第一块好块地址到当前坏块地址的模块,然后进行更新坏块信息表模块,最后进行坏块信息表重新写入NANDFlash模块;否则返回循环进行检测NANDFlash运行过程中是否有坏块产生模块。【具体实施方式】[0057]四:下面结合图1、图2说明本实施方式,一种基于块保留区替换的坏块管理方法,它包括:[0058]用于对坏块扫描并建立坏块信息表的坏块管理初始化步骤;[0059]用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制步骤;[0060]用于对坏块管理初始化步骤和坏块管理控制步骤产生的坏块信息进行保存的坏块信息表RAM;[0061]用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写步骤;[0062]进行滞后回写步骤后,进行检测NANDFlash运行过程中是否有坏块产生的步骤;[0063]坏块管理初始化步骤在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,进行坏块管理初始化步骤,该步骤发送信息后进行坏块管理控制步骤,初始化完成;在系统运行中,坏块管理控制步骤需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制步骤在完成地址更新映射后,控制滞后回写步骤实现旧块到新块的数据合并操作。[0064]【具体实施方式】五:下面结合图3说明本实施方式,本实施方式与【具体实施方式】一至四之一不同的是:[0065]所述坏块管理初始化步骤包括:用于判断NANDFlash是否为第一次启动的步骤、坏块遍历扫描步骤、判断NANDFlash第一块第一页和第二页数据是否相同的步骤;[0066]执行用于判断NANDFlash是否为第一次启动的步骤,若是,则进行坏块遍历扫描步骤,否则,进行判断NANDFlash第一块第一页和第二页数据是否相同的步骤,若是,则进行坏块信息表导入坏块信息表RAM,否则,进行将坏块映射信息量大的那一页数据作为坏块信息表写入坏块信息表RAM;[0067]所述坏块遍历扫描步骤包括:用于根据扫描到的坏块信息建立坏块信息表并保存在坏块信息表RAM的步骤、用于将所述坏块信息表分别存入NANDFlash第一块的第一页和第二页中保存的步骤。【具体实施方式】[0068]六:下面结合图4、图5说明本实施方式,本实施方式与具体实施方式一至五之一不同的是:所述坏块管理控制步骤包括:用于对地址映射管理的步骤、用于对运行过程中产生坏块管理的步骤;[0069]所述用于对地址映射管理的步骤包括:判断当前块是否为坏块的查询坏块位标记表步骤、查询地址映射表并将转换块地址输出的步骤、直接输出当前NANDFlash操作地址步骤;[0070]所述地址映射管理步骤开启后,进行判断当前块是否为坏块的查询坏块位标记表步骤,若是,则进行依次查询地址映射表并将转换块地址输出的步骤,否则进行直接输出当前NANDFlash操作地址步骤后回到地址映射管理步骤;[0071]所述用于对运行过程中产生坏块管理的步骤包括:检测NANDFlash运行过程中是否有坏块产生步骤、映射保留区的第一块好块地址到当前坏块地址的步骤、更新坏块信息表(坏块位标记表和坏块地址映射表)步骤、坏块信息表重新写入NANDFlash步骤;[0072]进行检测NANDFlash运行过程中是否有坏块产生步骤,若是,则进行映射保留区的第一块好块地址到当前坏块地址的步骤,然后进行更新坏块信息表步骤,最后进行坏块信息表重新写入NANDFlash步骤;否则返回循环进行检测NANDFlash运行过程中是否有坏块产生步骤。[0073]本发明的实施例如下:[0074]坏块位标记表BBT用Ibit信息来标识某块是否为坏块(其通过RAM字节地址和字节内位偏移地址和坏块地址一一对应),大大压缩了坏块表的容量。例如2kB的BBT表可以存储16k个坏块标记信息。同时坏块映射表RTT只保存已标记坏块到好块的地址映射信息,例如上述一个物理块地址长度为2Byte,可以覆盖16K块地址范围,在2kB中可以存储512个坏块映射信息,完全可以满足在存储寿命内的坏块管理要求。通过这种BBT和RTT结合的坏块表,4KB的片内RAM也就是Flash-页大小就可以满足16GB信息的坏块管理存储要求,大大减轻了系统资源负担。[0075]在坏块替换时,普通好块的标记查询、地址输出只需要2个时钟;在遇到坏块时,标记查询、地址查询、地址输出为10到n*4+4+2个时钟,η为存储在坏块映射表中的第几个位置,主要由坏块数目和坏块位置决定;我们可以看到通过这种方法大大缩短了由于坏块管理引入所带来的时间损耗。[0076]表1坏块信息表[0077]【权利要求】1.一种基于块保留区替换的坏块管理系统,其特征在于它包括:用于对坏块扫描并建立坏块信息表的坏块管理初始化模块;用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制模块;用于对坏块管理初始化模块和坏块管理控制模块产生的坏块信息进行保存的坏块信息表RAM;用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写模块;进行滞后回写模块后,进行检测NANDFlash运行过程中是否有坏块产生的模块;坏块管理初始化模块在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,坏块管理初始化模块发送信息给坏块管理控制模块,初始化完成;在系统运行中,坏块管理控制模块需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制模块在完成地址更新映射后,控制滞后回写模块实现旧块到新块的数据合并操作。2.根据权利要求1所述的基于块保留区替换的坏块管理系统,其特征在于:所述坏块管理初始化模块包括:用于判断NANDFlash是否为第一次启动的模块、坏块遍历扫描模块、判断NANDFlash第一块第一页和第二页数据是否相同的模块;执行用于判断NANDFlash是否为第一次启动的模块,若是,则进行坏块遍历扫描模块,否则,进行判断NANDFlash第一块第一页和第二页数据是否相同的模块,若是,则进行坏块信息表导入坏块信息表RAM,否则,进行将坏块映射信息量大的那一页数据作为坏块信息表写入坏块信息表RAM;所述坏块遍历扫描模块包括:用于根据扫描到的坏块信息建立坏块信息表并保存在坏块信息表RAM的模块、用于将所述坏块信息表分别存入NANDFlash第一块的第一页和第二页中保存的模块;所述坏块信息表包括基于位索引的坏块位标记表BBT和从坏块地址到保留区好块地址的映射表RTT。3.根据权利要求1所述的基于块保留区替换的坏块管理系统,其特征在于:所述坏块管理控制模块包括:用于对地址映射管理的模块、用于对运行过程中产生坏块管理的模块;所述用于对地址映射管理的模块包括:判断当前块是否为坏块的查询坏块位标记表模块、查询地址映射表并将转换块地址输出的模块、直接输出当前NANDFlash操作地址模块;所述地址映射管理模块开启后,进行判断当前块是否为坏块的查询坏块位标记表模块,若是,则进行依次查询地址映射表并将转换块地址输出的模块,否则进行直接输出当前NANDFlash操作地址模块后回到地址映射管理模块开启阶段;所述用于对运行过程中产生坏块管理的模块包括:检测NANDFlash运行过程中是否有坏块产生模块、映射保留区的第一块好块地址到当前坏块地址的模块、更新坏块信息表模块、坏块信息表重新写入NANDFlash模块、;进行检测NANDFlash运行过程中是否有坏块产生模块,若是,则进行映射保留区的第一块好块地址到当前坏块地址的模块,然后进行更新坏块信息表模块,最后进行坏块信息表重新写入NANDFlash模块;否则返回循环进行检测NANDFlash运行过程中是否有坏块产生模块。4.一种基于块保留区替换的坏块管理方法,其特征在于它包括:用于对坏块扫描并建立坏块信息表的坏块管理初始化步骤;用于对坏块地址映射和运行过程中产生的使用坏块进行管理的坏块管理控制步骤;用于对坏块管理初始化步骤和坏块管理控制步骤产生的坏块信息进行保存的坏块信息表RAM;用于对运行过程中产生的使用坏块进行数据合并操作的滞后回写步骤;进行滞后回写步骤后,进行检测NANDFlash运行过程中是否有坏块产生的步骤;坏块管理初始化步骤在系统启动时提供坏块初始化信息并将信息保存到坏块信息表RAM中,在结束该操作时,进行坏块管理初始化步骤,该步骤发送信息后进行坏块管理控制步骤,初始化完成;在系统运行中,坏块管理控制步骤需要通过访存坏块信息表RAM执行坏块地址映射和使用中坏块管理功能,当使用中有坏块产生时,坏块管理控制步骤在完成地址更新映射后,控制滞后回写步骤实现旧块到新块的数据合并操作。5.根据权利要求4所述的基于块保留区替换的坏块管理方法,其特征在于:所述坏块管理初始化步骤包括:用于判断NANDFlash是否为第一次启动的步骤、坏块遍历扫描步骤、判断NANDFlash第一块第一页和第二页数据是否相同的步骤;执行用于判断NANDFlash是否为第一次启动的步骤,若是,则进行坏块遍历扫描步骤,否则,进行判断NANDFlash第一块第一页和第二页数据是否相同的步骤,若是,则进行坏块信息表导入坏块信息表RAM,否则,进行将坏块映射信息量大的那一页数据作为坏块信息表写入坏块信息表RAM;所述坏块遍历扫描步骤包括:用于根据扫描到的坏块信息建立坏块信息表并保存在坏块信息表RAM的步骤、用于将所述坏块信息表分别存入NANDFlash第一块的第一页和第二页中保存的步骤。6.根据权利要求5所述的基于块保留区替换的坏块管理方法,其特征在于:所述坏块管理控制步骤包括:用于对地址映射管理的步骤、用于对运行过程中产生坏块管理的步骤;所述用于对地址映射管理的步骤包括:判断当前块是否为坏块的查询坏块位标记表步骤、查询地址映射表并将转换块地址输出的步骤、直接输出当前NANDFlash操作地址步骤;所述地址映射管理步骤开启后,进行判断当前块是否为坏块的查询坏块位标记表步骤,若是,则进行依次查询地址映射表并将转换块地址输出的步骤,否则进行直接输出当前NANDFlash操作地址步骤后回到地址映射管理步骤;所述用于对运行过程中产生坏块管理的步骤包括:检测NANDFlash运行过程中是否有坏块产生步骤、映射保留区的第一块好块地址到当前坏块地址的步骤、更新坏块信息表步骤、坏块信息表重新写入NANDFlash步骤;进行检测NANDFlash运行过程中是否有坏块产生步骤,若是,则进行映射保留区的第一块好块地址到当前坏块地址的步骤,然后进行更新坏块信息表步骤,最后进行坏块信息表重新写入NANDFlash步骤;否则返回循环进行检测NANDFlash运行过程中是否有坏块产生步骤。【文档编号】G06F12/06GK104360958SQ201410752148【公开日】2015年2月18日申请日期:2014年12月9日优先权日:2014年12月9日【发明者】魏德宝,邓立宝,张鹏,乔立岩申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1