CN113823350A - 一种固态存储设备坏块表的生成与维护方法 - Google Patents

一种固态存储设备坏块表的生成与维护方法 Download PDF

Info

Publication number
CN113823350A
CN113823350A CN202111116602.XA CN202111116602A CN113823350A CN 113823350 A CN113823350 A CN 113823350A CN 202111116602 A CN202111116602 A CN 202111116602A CN 113823350 A CN113823350 A CN 113823350A
Authority
CN
China
Prior art keywords
bad block
bad
block table
format
generating
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
Application number
CN202111116602.XA
Other languages
English (en)
Other versions
CN113823350B (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.)
Shandong Sinochip Semiconductors Co Ltd
Original Assignee
Shandong Sinochip Semiconductors 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 Shandong Sinochip Semiconductors Co Ltd filed Critical Shandong Sinochip Semiconductors Co Ltd
Priority to CN202111116602.XA priority Critical patent/CN113823350B/zh
Publication of CN113823350A publication Critical patent/CN113823350A/zh
Application granted granted Critical
Publication of CN113823350B publication Critical patent/CN113823350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56004Pattern generation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56008Error analysis, representation of errors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开一种固态存储设备坏块表的生成与维护方法,本方法通过以文本形式记录坏块条目并配合脚本解析生成Bin文件的方式,可更容易地实现坏块表的离线维护,当SSD实际使用过程中发现不稳定、性能变弱的Flash存储块但固件未能将其识别为坏块时,如果经人工分析能确定其为坏块,可通过该方法直观、方便地手动新增坏块条目进行维护。此外,导出坏块表到上位机的过程中,通过对比直接输出的Bin文件和根据记录文本解析生成的Bin文件,可确保扫描结果的正确性和稳定性,避免缺失遗漏。

Description

一种固态存储设备坏块表的生成与维护方法
技术领域
本发明涉及存储器技术领域,具体是一种固态存储设备坏块表的生成与维护方法。
背景方法
固态存储设备(SSD)具有容量大、速度块、体积小、抗干扰能力强等优点,可以为服务器主机等提供廉价高效的大规模存储解决方案,因此受到广泛应用。其内部使用的存储介质——闪存(NAND Flash)颗粒是一种非易失性存储器。
一块SSD上的NAND Flash颗粒按照组织结构一般可划分为Channel、CE(Target)、LUN、Block、WordLine、Page、DataFrame等层次,其中Block(块)是擦除的最小单位,对已写入数据的块进行回收重复利用时,必须先擦除再写,而不能覆盖写。块写入/擦除操作(P/E)循环的次数会影响NAND Flash颗粒的寿命,随着P/E次数的增多,块的性能或稳定性会逐渐变差,成为坏块或弱块。如果SSD固件像访问普通块一样对坏块进行读写,存储数据的正确性就无法得到保障,因此需要建立坏块表对NAND Flash颗粒中的块进行鉴别。
SSD坏块分为原厂坏块和使用过程中新增的坏块,前者在NAND Flash颗粒出厂时就已被做了特殊标记,可通过特定手段直接识别出来。但对于后者,由于是逐渐磨损产生的,其与普通块之间并没有非常清晰的界限,因此无法保证SSD固件能准确识别出来,有时需要专业人员现场鉴定出错后才能确认。对于这种情况,维护坏块表是比较麻烦的,因为它一般是存放于SSD的内存中,直接修改不方便。
发明内容
针对现有技术的缺陷,本发明提供一种固态存储设备坏块表的生成与维护方法,可通过该方法直观、方便地手动新增坏块条目进行维护。
为了解决所述技术问题,本发明采用的技术方案是:一种固态存储设备坏块表的生成与维护方法,包括以下步骤:
S01)、执行SSD全盘坏块扫描命令,调用固件中的坏块扫描子程序,扫描出的坏块信息以链表形式记录在SSD内存指定区域建立的临时坏块表中,同时将扫描出的坏块信息输出到与之连接的上位机日志文件中;
S02)、将SSD内存中建立的临时坏块表根据存储组织结构转换成掩码位图格式文件,用内存转储命令导出到上位机;
此处“临时坏块表”即指步骤S01)中的坏块扫描程序创建的以链表形式保存的坏块信息,该方式不利于快速判定某给定块是否为坏块(需要遍历比对)且占用较多空间,因此需要对临时坏块表的格式进行转化。
“存储组织结构”即指SSD中Channel、CE、LUN的数量,后文中有提到。
此处的“掩码位图格式”即用1个Bit位0或1代表某个Block是否为坏块的格式,其克服了临时坏块表不方便检索和体积大的问题。
“内存转储命令”是将给定起始地址和范围的SSD内存原始数据通过Ymodem或其他通信协议导出到外部(上位机),并保存成文件的串口调试命令。上位机串口工具通常只支持以字符形式进行I/O交互,若要直接传输二进制数据(掩码位图格式的坏块表)需要用到内存转储命令。
S03)、利用脚本解析串口解析上位机日志文本中的坏块记录项,提取包括块物理地址、坏块总数在内的信息,以同样格式生成二进制掩码位图格式文件;
S04)、将以上两步生成的掩码位图格式文件进行对比,检验是否匹配,若不一致则重复步骤S01)至步骤S03),若匹配则将文本格式坏块表在上位机上保存;
S05)、当有新增坏块的需求时,修改以上位机日志文本格式保存的坏块表,将新增坏块条目以字符串形式添加到其中并更新坏块总数,再利用脚本解析文本文件,按照位映射规则重新生成图格式的Bin坏块表;
S06)、将更新后的Bin格式坏块表重新写入到SSD内存中。
进一步的,步骤S01中,扫描出的坏块信息通过串口以文本形式打印到上位机日志文本中。
进一步的,扫描过程中得到的坏块信息以Block编号为索引的有序链表形式保存在临时坏块表中,并通过调试串口将包括坏块物理地址的数据以文本的形式实时打印输出到上位机终端的日志文件中,每条记录保持统一格式,格式为:Index: A, Channel: B,CE:B, LUN: D, Block: E, xxx,含义为Block E下的LUN D下的CE B下的Channel A对应的坏块信息,xxx为具体的坏块信息,是一串二进制序列,0表示非坏块,1表示坏块。
进一步的,步骤S02中,转换后的掩码位图格式文件结合存储组织结构按照SuperBlock序号递增的方式依次排列,然后在掩码序列前插入文件头结构段用于区分坏块表类型。
文件头结构段应包括坏块表文件标识符、SSD存储组织结构、闪存颗粒类型及所含的SuperBlock总数。
进一步的,步骤S03中,解析上位机日志文本的基本过程为:读取扫描程序运行期间的串口日志,从中提取SSD存储组织结构、Block总数及坏块总数,根据以上信息新建与日志文本同名的Bin格式坏块表,写入头结构并初始化全部Block标记位为假,后用正则表达式逐条解析坏块记录条目文本,提取出坏块所属的Channel、CE、LUN及Block序号,然后根据存储组织结构计算出此坏块的标记位在掩码位图中的偏移位置,并利用OR位运算将偏移位置处的坏块标记位标为真;
脚本处理完所有坏块记录项后,判断已解析的条目数是否与日志中给出的坏块总数相等,以检验记录文本是否完整,若一致则保存Bin文件,否则报告错误并废弃解析结果。
进一步的,偏移可按以下公式求出:
字节偏移:Byte_Ofs = 16 × BLK + 8 × LUN + CE,位偏移:Bit_Ofs = CHAN,
其中,LUN、CE、CHAN取值范围分别为0~1、0~7、0~7,BLK则为Block的序号,LUN、CE分别为LUN、CE的序号, CHAN为Channel的序号。
进一步的,步骤S04中,通过检验两者哈希值是否匹配来判断步骤S02)和步骤S03)生成的掩码位图格式文件是否匹配。
本发明的有益效果:
通过以文本形式记录坏块条目并配合脚本解析生成Bin文件的方式,可更容易地实现坏块表的离线维护,当SSD实际使用过程中发现不稳定、性能变弱的Flash存储块但固件未能将其识别为坏块时,如果经人工分析能确定其为坏块,可通过该方法直观、方便地手动新增坏块条目进行维护。此外,导出坏块表到上位机的过程中,通过对比直接输出的Bin文件和根据记录文本解析生成的Bin文件,可确保扫描结果的正确性和稳定性,避免缺失遗漏。
附图说明
图1为本方法的流程图;
图2为SSD的存储组织结构为8Channel×8CE×2LUN时,用本方法生成的位图格式坏块表中坏块标志位排列示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种固态存储设备坏块表的生成与维护方法,如图1所示,包括以下步骤:
S01)、通过SSD板卡的调试串口向SSD发送坏块扫描命令,运行固件中的坏块扫描程序实例。根据挂载的NAND Flash颗粒的型号,确定扫描边界(颗粒含有的Block总数,及SSD的Channel、CE数),选择对应的坏块判别算法(尝试擦除、无数据写并检查颗粒响应状态或读取特定页上的坏块标记),申请并初始化一块内存用于存放坏块标记信息。
S02)、扫描过程中得到的坏块信息以Block编号为索引的有序链表形式保存在申请的临时内存空间中,并通过调试串口将坏块的块物理地址(PBA)等数据以文本的形式实时输出打印到上位机终端的日志文件中,每条记录保持统一格式,比如“Index: A,Channel: B, CE:B, LUN: D, Block: E, xxx”,含义为Block E下的LUN D下的CE B下的Channel A对应的坏块信息,xxx为具体的坏块信息,是一串二进制序列,0表示非坏块,1表示坏块,每行为一条记录。注意保证日志文件内容的完整性(抓取扫描程序运行开始到结束期间的全部串口输出)。
S03)、颗粒扫描完成后,SSD固件程序遍历内存中建立的坏块记录链表,将这种用于临时保存信息的数据结构转换成易于查询的掩码位图格式,每个比特位代表某一Block是否为坏块(假表示非坏块,真为坏块),并结合存储组织结构(Channel、CE、LUN的数量)按照SuperBlock(整个SSD中各LUN下序号相同的Block组成的集合)序号递增的方式依次排列(图2给出了SSD含有8个Channel,每Channel下有8个CE,每CE下有2个LUN时的坏块标志位排列示例)。然后在掩码序列前插入文件头结构段用于区分坏块表类型(文件头结构段应包括坏块表文件标识符(比如ASCII码"BBT")、SSD存储组织结构、闪存颗粒类型及所含的SuperBlock总数等信息)。
S04)、调用固件的内存转储命令,通过Ymodem方式将SSD内存中的上述格式坏块表传输到上位机,并保存成Bin文件到本地。
S05)、在上位机上运行坏块表文本解释脚本,读取扫描程序运行期间的串口日志,从中提取SSD存储组织结构、Block总数及坏块总数,根据以上信息新建与日志文本同名的Bin格式坏块表,写入头结构并初始化全部Block标记位为假(非坏块)。之后用正则表达式逐条解析坏块记录条目文本,提取出坏块所属的Channel、CE、LUN及Block序号,然后根据存储组织结构计算出此坏块的标记位在掩码位图中的偏移位置,并利用OR位运算将偏移位置处的坏块标记位标为真。以图2的格式为例,偏移可按以下公式求出:
字节偏移:Byte_Ofs = 16 × BLK + 8 × LUN + CE,位偏移:Bit_Ofs = CHAN
其中,LUN、CE、CHAN取值范围分别为0~1、0~7、0~7,BLK则为Block的序号。
脚本处理完所有坏块记录项后,判断已解析的条目数是否与日志中给出的坏块总数相等,以检验记录文本是否完整。若一致则保存Bin文件,否则报告错误并废弃解析结果。
S06)、使用文件对比工具比较Ymodem方式直接导出的和脚本解析生成的坏块表Bin文件,检验两者哈希值是否匹配,不一致需要重新扫描坏块后再次确认,若匹配则将文本格式坏块表在上位机上保存。
S07)、当SSD使用中发现新坏块或弱块但固件无法识别时,将新增坏块条目追加到文本格式保存的坏块表中并更新坏块总计数值,重做步骤S05)生成新的Bin格式坏块表,配合固件通过Ymodem方式重新写入到SSD内存对应地址中,并同步替换掉在Flash颗粒中存储的旧坏块表副本。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。

Claims (8)

1.一种固态存储设备坏块表的生成与维护方法,其特征在于:包括以下步骤:
S01)、执行SSD全盘坏块扫描命令,调用固件中的坏块扫描子程序,扫描出的坏块信息以链表形式记录在SSD内存指定区域建立的临时坏块表中,同时将扫描出的坏块信息输出到与之连接的上位机日志文件中;
S02)、将SSD内存中建立的临时坏块表根据存储组织结构转换成掩码位图格式文件,用内存转储命令导出到上位机;
S03)、利用脚本解析串口解析上位机日志文本中的坏块记录项,提取包括块物理地址、坏块总数在内的信息,以同样格式生成二进制掩码位图格式文件;
S04)、将以上两步生成的掩码位图格式文件进行对比,检验是否匹配,若不一致则重复步骤S01)至步骤S03),若匹配则将文本格式坏块表在上位机上保存;
S05)、当有新增坏块的需求时,修改以上位机日志文本格式保存的坏块表,将新增坏块条目以字符串形式添加到其中并更新坏块总数,再利用脚本解析文本文件,按照位映射规则重新生成图格式的Bin坏块表;
S06)、将更新后的Bin格式坏块表重新写入到SSD内存中。
2.根据权利要求1所述的固态存储设备坏块表的生成与维护方法,其特征在于:步骤S01中,扫描出的坏块信息通过串口以文本形式打印到上位机日志文本中。
3.根据权利要求1所述的固态存储设备坏块表的生成与维护方法,其特征在于:扫描过程中得到的坏块信息以Block编号为索引的有序链表形式保存在临时坏块表中,并通过调试串口将包括坏块物理地址的数据以文本的形式实时打印输出到上位机终端的日志文件中,每条记录保持统一格式,格式为:Index: A, Channel: B, CE:B, LUN: D, Block: E,xxx,含义为Block E下的LUN D下的CE B下的Channel A对应的坏块信息,xxx为具体的坏块信息,是一串二进制序列,0表示非坏块,1表示坏块。
4.根据权利要求1所述的固态存储设备坏块表的生成与维护方法,其特征在于:步骤S02中,转换后的掩码位图格式文件结合存储组织结构按照SuperBlock序号递增的方式依次排列,然后在掩码序列前插入文件头结构段用于区分坏块表类型。
5.根据权利要求4所述的固态存储设备坏块表的生成与维护方法,其特征在于:文件头结构段应包括坏块表文件标识符、SSD存储组织结构、闪存颗粒类型及所含的SuperBlock总数。
6.根据权利要求1所述的固态存储设备坏块表的生成与维护方法,其特征在于:步骤S03中,解析上位机日志文本的基本过程为:读取扫描程序运行期间的串口日志,从中提取SSD存储组织结构、Block总数及坏块总数,根据以上信息新建与日志文本同名的Bin格式坏块表,写入头结构并初始化全部Block标记位为假,后用正则表达式逐条解析坏块记录条目文本,提取出坏块所属的Channel、CE、LUN及Block序号,然后根据存储组织结构计算出此坏块的标记位在掩码位图中的偏移位置,并利用OR位运算将偏移位置处的坏块标记位标为真;
脚本处理完所有坏块记录项后,判断已解析的条目数是否与日志中给出的坏块总数相等,以检验记录文本是否完整,若一致则保存Bin文件,否则报告错误并废弃解析结果。
7.根据权利要求6所述的固态存储设备坏块表的生成与维护方法,其特征在于:偏移可按以下公式求出:
字节偏移:Byte_Ofs = 16 × BLK + 8 × LUN + CE,位偏移:Bit_Ofs = CHAN,
其中,LUN、CE、CHAN取值范围分别为0~1、0~7、0~7,BLK则为Block的序号,LUN、CE分别为LUN、CE的序号,CHAN表示Channel的序号。
8.根据权利要求1所述的固态存储设备坏块表的生成与维护方法,其特征在于:步骤S04中,通过检验两者哈希值是否匹配来判断步骤S02)和步骤S03)生成的掩码位图格式文件是否匹配。
CN202111116602.XA 2021-09-23 2021-09-23 一种固态存储设备坏块表的生成与维护方法 Active CN113823350B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111116602.XA CN113823350B (zh) 2021-09-23 2021-09-23 一种固态存储设备坏块表的生成与维护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111116602.XA CN113823350B (zh) 2021-09-23 2021-09-23 一种固态存储设备坏块表的生成与维护方法

Publications (2)

Publication Number Publication Date
CN113823350A true CN113823350A (zh) 2021-12-21
CN113823350B CN113823350B (zh) 2024-03-12

Family

ID=78920923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111116602.XA Active CN113823350B (zh) 2021-09-23 2021-09-23 一种固态存储设备坏块表的生成与维护方法

Country Status (1)

Country Link
CN (1) CN113823350B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471141A (zh) * 2007-12-28 2009-07-01 海力士半导体有限公司 执行故障测试、块管理、擦除以及编程的方法
CN104360958A (zh) * 2014-12-09 2015-02-18 哈尔滨工业大学 基于块保留区替换的坏块管理系统及管理方法
CN109918022A (zh) * 2019-02-22 2019-06-21 山东华芯半导体有限公司 一种ssd开卡坏块表继承方法
CN111045603A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种固态硬盘的坏块替换方法和装置
CN112216338A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种固态硬盘老化产生坏块的解析方法、装置
CN112579382A (zh) * 2021-01-22 2021-03-30 苏州浪潮智能科技有限公司 一种NVMe固态硬盘坏块解析方法、装置、终端及存储介质
KR20210113905A (ko) * 2020-03-09 2021-09-17 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101471141A (zh) * 2007-12-28 2009-07-01 海力士半导体有限公司 执行故障测试、块管理、擦除以及编程的方法
CN104360958A (zh) * 2014-12-09 2015-02-18 哈尔滨工业大学 基于块保留区替换的坏块管理系统及管理方法
CN109918022A (zh) * 2019-02-22 2019-06-21 山东华芯半导体有限公司 一种ssd开卡坏块表继承方法
CN111045603A (zh) * 2019-11-29 2020-04-21 苏州浪潮智能科技有限公司 一种固态硬盘的坏块替换方法和装置
KR20210113905A (ko) * 2020-03-09 2021-09-17 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN112216338A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种固态硬盘老化产生坏块的解析方法、装置
CN112579382A (zh) * 2021-01-22 2021-03-30 苏州浪潮智能科技有限公司 一种NVMe固态硬盘坏块解析方法、装置、终端及存储介质

Also Published As

Publication number Publication date
CN113823350B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN105975399B (zh) 用来管理一记忆装置的方法以及其相关的记忆装置
US20100125767A1 (en) Method for testing reliability of solid-state storage medium
WO2015096698A1 (zh) 一种Flash的数据写入和读取方法
US11816015B2 (en) Management of event log information of a memory sub-system
CN108228479B (zh) 一种嵌入式flash数据存储方法及系统
CN110134645B (zh) 文件系统存储管理方法、读取方法、管理装置和读取装置
CN101452422A (zh) 一种芯片的数据读写方法、相应装置和系统
CN113823350B (zh) 一种固态存储设备坏块表的生成与维护方法
CN111913890A (zh) 一种基于安全模组的非易失存储器随机化读写方法
CN105225695A (zh) 快闪存储器的擦除方法及快闪存储器
CN112416811B (zh) 基于数据关联度的垃圾回收方法、闪存及装置
CN107481764B (zh) 一种3D Nand Flash扫描检测方法和系统
US11500721B2 (en) Solid-state disk and reading and writing method thereof
US11436105B2 (en) Data processing method and memory controller utilizing the same
CN106408790B (zh) 金融设备循环机芯日志信息写入方法及读取方法
CN114968104A (zh) 一种数据存储设备的数据写入方法与系统及数据存储设备
CN109144423A (zh) 存储器坏块管理方法、装置及闪速存储器
WO2019007315A1 (zh) 闪存设备中数据写入的方法及设备
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
US20200057570A1 (en) Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
CN117389484B (zh) 数据存储处理方法、装置、设备及存储介质
CN114297000B (zh) 一种数据备份方法、装置、设备及存储介质
CN112711378B (zh) 数据储存方法及读写设备
CN114090522B (zh) 一种电子文件的标识符定义方法、装置、设备
CN112540882A (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