CN114974387B - 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 - Google Patents
基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 Download PDFInfo
- Publication number
- CN114974387B CN114974387B CN202210902079.1A CN202210902079A CN114974387B CN 114974387 B CN114974387 B CN 114974387B CN 202210902079 A CN202210902079 A CN 202210902079A CN 114974387 B CN114974387 B CN 114974387B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- memory array
- block
- error rate
- bit error
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 177
- 239000007787 solid Substances 0.000 title claims abstract description 59
- 238000010998 test method Methods 0.000 title claims description 10
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012360 testing method Methods 0.000 claims abstract description 18
- 230000015556 catabolic process Effects 0.000 claims description 48
- 238000006731 degradation reaction Methods 0.000 claims description 48
- 238000012544 monitoring process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 17
- 238000004519 manufacturing process Methods 0.000 description 10
- 239000002245 particle Substances 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘,所述固态硬盘主控芯片包括快闪存储器阵列,所述方法包括:从快闪存储器阵列的目标块中读取数据;将读取的数据与预存到目标块的数据进行比较,得到错误信息,错误信息包括错误数据以及错误地址;根据错误信息确定目标块的比特错误率;根据比特错误率,确定出快闪存储器阵列中的坏块。该方法能通过闪存电路内部自动的写、读、回读比对流程,得到全片擦除后的快闪存储器阵列内的错误信息,进而确定出快闪存储器阵列中的坏块。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘。
背景技术
固态硬盘是传统机械式硬盘的替代品,一个典型的固态硬盘,其内部电路包括主控芯片、DDR内存颗粒、NAND Flash闪存芯片颗粒(也可简称为“闪存”)、SPI Flash颗粒等。NAND Flash闪存存储器芯片颗粒是固态硬盘内部用于承载存储数据的主体。NAND Flash中的数据在***掉电后不会丢失,重新上电后,其中的数据仍在,拥有这一特性的存储器,业内将之称作“非易失存储器”。
出于生产良率的考虑,NAND Flash内部总是会有少量的一些块,在出厂时,这些块内带有固有的、无法修复的缺陷、错误,无法正常进行读/写/擦操作。这些块被称作“出厂坏块”,用户不能使用这些块进行数据的存储。每颗NAND Flash的出厂坏块地址都是随机的,每1000个Block中,可能有十个以内的出厂坏块。NAND Flash厂家会把这些出厂坏块标记出来,以方便用户查询。
现有技术都有专门的出厂坏块扫描的步骤,要么是一个单独的扫描出厂坏块的步骤,要么是作为“开卡”工序的一个子步骤,待扫出坏块后,再写入进固态硬盘内部的存储空间。这些步骤需要消耗相应的生产时间或测试时间,从而降低了固态硬盘的生产效率/测试效率。且当NAND Flash进行过全片擦除后,可能导致出厂坏块标记会全部丢失,使得再也无法检测出出厂坏块,现有技术还未提出针对此类问题的解决手段。
发明内容
本申请实施例通过提供了一种基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘,能通过闪存电路内部自动的写、读、回读比对流程,得到全片擦除后的快闪存储器阵列内的错误信息,进而确定出快闪存储器阵列中的坏块,且该方法无需单独的工序进行监测,提高了生产效率。
第一方面,本发明通过本发明的一实施例提供如下技术方案:
一种基于固态硬盘主控芯片的闪存测试方法,所述固态硬盘主控芯片包括快闪存储器阵列,所述方法包括:从所述快闪存储器阵列的目标块中读取数据;将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;根据所述错误信息确定所述目标块的比特错误率;根据所述比特错误率,确定出所述快闪存储器阵列中的坏块。
优选地,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:若所述比特错误率大于预设错误阈值,则确定所述目标块为坏块。
优选地,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:监测所述快闪存储器阵列中目标块的工作电流;基于所述比特错误率以及所述工作电流,确定出所述快闪存储器阵列中的坏块。
优选地,所述基于所述比特错误率以及所述工作电流,确定出所述快闪存储器阵列中的坏块,包括:基于所述比特错误率、预设比特错误率加权因子、所述工作电流以及预设电流加权因子,确定所述目标块的退化分值,其中,所述退化分值表示所述目标块的退化程度得分;基于所述退化分值,确定所述目标块是否为坏块。
优选地,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:获取所述快闪存储器阵列中目标块进行写、擦时的用时时长;基于所述比特错误率以及所述用时时长,确定出所述快闪存储器阵列中的坏块。
优选地,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:获取写入到所述目标块的数据中零值的数量;基于所述比特错误率以及所述零值的数量,确定出所述快闪存储器阵列中的坏块。
优选地,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:监测所述快闪存储器阵列中目标块的工作电流;获取所述快闪存储器阵列中目标块进行写、擦时的用时时长;获取写入到所述目标块的数据中零值的数量;基于所述比特错误率、所述工作电流、所述用时时长以及所述零值的数量,确定出所述快闪存储器阵列中的坏块。
优选地,所述基于所述工作电流、所述比特错误率、所述用时时长以及所述零值的数量,确定出所述快闪存储器阵列中的坏块,包括:基于所述比特错误率、预设比特错误了加权因子、所述工作电流、预设电流加权因子、所述用时时长、预设时间因素加权因子、所述零值的数量以及预设零值因素加权因子,确定所述目标块的退化分值,其中,所述退化分值表示所述目标块的退化程度得分;判断所述退化分值是否大于预设退化阈值;若是,则确定所述目标块为坏块。
第二方面,本发明通过本发明的一实施例,提供如下技术方案:
一种基于固态硬盘主控芯片的闪存测试装置,包括:
读取模块,用于从快闪存储器阵列的目标块中读取数据;
比较模块,用于将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;
第一确定模块,用于根据所述错误信息确定所述目标块的比特错误率;
第二确定模块,用于根据所述比特错误率,确定出所述快闪存储器阵列中的坏块。
第三方面,本发明通过本发明的一实施例,提供如下技术方案:
一种固态硬盘,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述第一方面中任一项所述闪存测试方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例提供的基于固态硬盘主控芯片的闪存测试方法,通过读取快闪存储器阵列中的原始数据,将读出的原始数据与快闪存储器阵列中预存的数据进行比较,其中,预存的数据是提前写进快闪存储器阵列中的数据,若比较出两者不一致,即表示快闪存储器阵列中存在错误信息,根据错误信息确定目标块的错误比特数,以计算出比特错误率,最终根据比特错误率确定出快闪存储器阵列中的坏块。本申请提供的闪存电路能够在用户电路不操作固态硬盘时,对快闪存储器阵列中的未使用的块作“擦、写、读”操作,即能通过闪存电路内部自动的写、读、回读比对流程,得到全片擦除后的快闪存储器阵列内的错误数据,进而确定出快闪存储器阵列中的坏块,若该块内的比特错误率明显高于其他块,则可以认定该块为坏块。由此,本申请无需进行单独的扫描出厂坏块的步骤,也无需作为开卡工序的一个子步骤,避免消耗相应的生产时间或测试时间,从而提高了固态硬盘的生产效率以及测试效率。且通过该测试方法得到快闪存储器阵列中的坏块,使得固态硬盘具有高可靠性的特点。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于固态硬盘主控芯片的闪存测试方法的流程示意图;
图2为本发明实施例提供的基于固态硬盘主控芯片的闪存测试装置的结构示意图;
图3为本发明实施例提供的一种固态硬盘的结构示意图。
具体实施方式
典型的快闪存储器芯片NAND Flash,其内部的存储空间是按照下列方式进行组织的:LUN - Plane - Block - Page - Byte,即:1颗NAND Flash存储器封装体内,包含1个或多个LUN;1个LUN内,包含1个或多个Plane;1个Plane内,包含多个Block;1个Block内,包含有许多Page;1个Page内,包含有多个Byte。其中,较为常用的几个概念是:Block即“块”,Page即“页”,Byte即“字节”。NAND Flash的常用操作有3种:读、写(即编程)、擦(即擦除)。一般而言,读、写操作都以Page即页为单位,而擦除操作则以Block即块为单位。
下面简单的介绍一下NAND Flash的编程、擦除操作,NAND闪存内的存储单元可以保存0、1两种数值,相应地,有两种操作:
擦除(Erase)一般是按Block进行,一次Block Erase可以将一个Block内的所有数据,全部置为1值(16进制即为FF),擦除只能把0擦成1,不能把1擦成0值;
编程(Program)一般是按Page进行,一次Program可以对1个页内的数据中的0值进行写入,即编程只能把1写成0,无法把0写成1。
NAND Flash厂家所常用的出厂坏块标记方法包括:在spare area的第六个byte,写入特殊字符,作为坏块标记。用户希望查询出厂坏块时,需要依次读取每个物理块的第六个byte,看是否标记为出厂坏块。如果采用这种方法,则出厂坏块的标记其实是可以被用户擦掉的,如果进行过全片擦除,则所有出厂坏块的标记会全部丢失。
NAND Flash厂家在芯片生产过程中,是在严苛的环境条件下对芯片进行测试、以对出厂坏块进行识别确认;其所标记的“出厂坏块”,其实很多是处在“好”和“坏”之间的临界状态,如果芯片工作于较为舒适的环境条件下,很可能表现为好块。交付用户后,用户很难复现如此严苛的环境,因此,用户将出厂坏块标记擦除后,若对“出厂坏块”作读写擦访问,则这些地址很可能表现为正常的好块。因而,对于这种闪存颗粒,用户在拿到NANDFlash颗粒后,必须先读取出厂坏块、将之另行保存,再进行其他的读写擦操作,否则,一旦将出厂坏块标志擦除,就再无手段获取出厂坏块信息了。
另外,NAND Flash存储器芯片的寿命不是无限的,其有自己的使用寿命,寿命有2种:1、Endurance,即各个Block可以经受住多少次Program/Erase Cycle,即P/E寿命;2、Retention,即存入Flash的数据可以留存保持多少年。在NAND Flash存储器芯片使用过程中,随着读写擦操作次数的增加,各Block会逐渐接近其P/E寿命的上限。在此过程中,某些Block可能会产生较严重的退化,进而,导致无法编程(Program写失败)、无法擦除(Erase失败)、或者读取出错。当遇到这一情况时,相应的块也称之为“坏块”。为与芯片出厂时自带的“出厂坏块”相区分,这些在使用过程中出现的坏块,称为“新增坏块”或“使用坏块”。
一般而言,NAND颗粒厂商可以保证,在NAND Flash芯片的使用寿命范围内,新增坏块的数量不超过芯片总容量的一个比例,例如,最多不超过2%。在此前提下,配合以适当的坏块管理算法,NAND Flash芯片仍可正常使用。
随着固态硬盘(Solid State Drive,SSD)使用过程中对NAND Flash作读写擦操作,好块中所含的错误会越来越多,错误率也随之升高。如果某个Block的错误率在SSD的纠错检错码(ECC)的能力范围之内,则仍可执行正常的数据存储功能;若错误率超出ECC能力,则相应的Block无法使用,只能将其视作坏块、加入坏块列表。
SSD之所以能够存储大量用户数据,就是依靠电路板上的NAND Flash存储器颗粒阵列。因此,SSD的一个重要功能,就是坏块处理,包括:1、扫描NAND Flash,获得其出厂坏块列表;2、在固态硬盘的使用过程中,建立、维护、更新一个新增坏块列表。在实际的SSD设计方案中,“出厂坏块列表”和“新增坏块列表”,可能合并为同一个,也可能分别维护和管理。
有鉴于此,本申请实施例通过提供了一种基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘,能通过闪存电路内部自动的写、读、回读比对流程,得到全片擦除后的快闪存储器阵列内的错误信息,进而能确定出快闪存储器阵列中的坏块(包括出厂坏块和新增坏块),且该方法无需单独的工序进行监测,提高了生产效率。
本申请实施例的技术方案总体思路如下:
一种基于固态硬盘主控芯片的闪存测试方法,所述固态硬盘主控芯片包括快闪存储器阵列,所述方法包括:从所述快闪存储器阵列的目标块中读取数据;将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;根据所述错误信息确定所述目标块的比特错误率;根据所述比特错误率,确定出所述快闪存储器阵列中的坏块。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
第一方面,本发明实施例提供了一种基于固态硬盘主控芯片的闪存测试方法,所述固态硬盘主控芯片包括快闪存储器阵列,具体地,固态硬盘主控芯片与快闪存储器阵列(NAND Flash)连接,其中,NAND Flash可能有1片,也可能有多片或者多组。所述方法包括以下步骤S101-S104:
步骤S101:从所述快闪存储器阵列的目标块中读取数据;
步骤S102:将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;
步骤S103:根据所述错误信息确定所述目标块的比特错误率;
步骤S104:根据所述比特错误率,确定出所述快闪存储器阵列中的坏块。
其中,这里的目标块可以是表示:在用户不操作固态硬盘时,NAND Flash中未使用的块均可作为目标块。
具体地,预存到目标块的数据可以为正常写入操作时所写入到快闪存储器阵列中的数据,也可以为测试过程中写入到快闪存储器阵列中的预定义的数据pattern,具体而言,预定义的数据可以为:00(全0数据)、FF(全1数据)、AA(10101010交错数据)、55(01010101交错数据)等等。
以写入预定义的数据为例,在具体实施例中,固态硬盘主控芯片与快闪存储器阵列连接,用于向快闪存储器阵列的目标块中写入预定义的数据,并读取快闪存储器阵列的目标块中的原始数据。
其中,固态硬盘主控芯片可以包括数据处理器以及比对模块,数据处理器与比对模块连接,比对模块与快闪存储器阵列连接,数据处理器与快闪存储器阵列连接,数据处理器会将预定义的数据写入到快闪存储器阵列的同时,将预定义的数据传输给比对模块,对比模块用于对从快闪存储器阵列中回读出的数据与预定义的数据进行比较,得出错误信息(包括错误字节的地址和数据值),以供数据处理器读取。数据处理器用于根据错误信息确定目标块的比特错误率,根据比特错误率确定出快闪存储器阵列中的坏块。
具体地,若比对模块比较得出从NAND Flash读回的数据与预存的数据不一致,则可以确定出NAND Flash中存在错误数据,比对模块将错误数据本身及其地址(可以包括:LUN地址+Plane地址+Block地址+Page地址+Column地址)存储起来,供数据处理器读取。
其中,数据处理器根据错误信息确定目标块的比特错误率,包括:根据错误信息确定目标块内的错误比特数,根据错误比特数,计算出错误比特率。
具体地,根据比特错误率,确定出快闪存储器阵列中的坏块,可以包括:若比特错误率大于预设错误阈值,则确定目标块为坏块,以确定出快闪存储器阵列中的坏块。其中,预设错误阈值可以根据实际需要来确定,本申请不作限定。
或者是,比较该比特错误率与其他目标块的比特错误率,若该比特错误率最大,或远远大于其他目标块的比特错误率,则确定该目标块为坏块。
进一步地,为了更准确地监测到NAND Flash中的坏块,本申请将NAND Flash工作电流纳入考虑,以此来筛选出潜在的出厂坏块。在快闪存储器阵列的写、擦操作期间,对每一路闪存存储器阵列的供电电流作实时监控,若某个块的工作电流较大,则表明此块的特性较差,进而确定出它可能是出厂坏块或即将变为新增坏块。举例来说,对闪存存储器阵列内的所有块(可能有几百个、几千个)按其写、擦时的电流值做排序,将电流值大于预设电流阈值的块确定为坏块;
在具体实施例中,根据比特错误率,确定出快闪存储器阵列中的坏块,可以包括:监测快闪存储器阵列中目标块的工作电流;基于比特错误率以及工作电流,确定出快闪存储器阵列中的坏块。
具体地,快闪存储器阵列为多路,每一路快闪存储器阵列均连接有电流检测器,用于分别获取每一路快闪存储器阵列的供电电流。可选地,电流检测器可以为模数转换器。
所述基于比特错误率以及工作电流,确定出快闪存储器阵列中的坏块,具体可以包括:基于比特错误率、预设比特错误率加权因子、工作电流以及预设电流加权因子,确定目标块的退化分值,其中,所述退化分值表示所述目标块的退化程度得分;基于退化分值,确定目标块是否为坏块,以确定出快闪存储器阵列中的坏块。
具体地,基于比特错误率、预设比特错误率加权因子、工作电流以及预设电流加权因子,确定目标块的退化分值,包括:
其中,Qi是固态硬盘的NAND Flash阵列内的第i个Block的退化分值,分值越大,此Block的退化越严重、健康度越差;
W1是电流因素的加权因子,根据试验获得;
W4是bit错误率的加权因素,根据试验获得;
Ii是第i个Block的工作电流值,数值越大,说明Block退化越严重;
Ei是第i个Block的数据错误率,数值越大,说明Block性能越差。
由此,本申请能够基于监测到的每一路闪存存储器阵列的工作电流以及比特错误率,确定出快闪存储器阵列中的坏块。简单来说,在工作电流越大,且比特错误率越高的情况下,对应块的特性就较差,就更可能是坏块。
具体地,基于退化分值,确定目标块是否为坏块,包括:判断退化分值是否大于预设退化阈值;若是,则确定目标块为坏块,其中,预设退化阈值可以根据实际需要来确定,本申请不作限定。
作为另一种可选地实施例,考虑到块的运行时间,即块越健康,写、擦的用时越短,块越退化、性能越差,写、擦的用时越长。根据比特错误率,确定出快闪存储器阵列中的坏块,还可以包括:获取快闪存储器阵列中目标块进行写、擦时的用时时长;基于比特错误率以及用时时长,确定出快闪存储器阵列中的坏块。
其中,W3是时间因素的加权因子,根据试验获得;
Ti是第i个Block的写、擦的用时时间长度,数值越大,说明Block退化越严重。
作为另一种可选地实施例,考虑到写、擦的数据pattern,当编程时写入的数据pattern中的0值越多,说明编程的工作量越大、工况越恶劣;擦除时,块内的0值越多,表明需要把更多的0擦为1,进而擦除的工作量越大、工况越恶劣。
由此,根据比特错误率,确定出快闪存储器阵列中的坏块,还可以包括:获取预存到所述目标块的数据中零值的数量;基于比特错误率以及零值的数量,确定出快闪存储器阵列中的坏块。
其中,W2是Pattern因素的加权因子,根据试验获得;
Pi是基于第i个Block内的数据Pattern,所分配的一个分值,值越大,说明此Block退化越严重。
可选地,还可以将电流和数据pattern结合起来作为判定依据,若0值多,电流却小,表明此块正常;若0值少,电流却大,表明此块性能差。由此,根据比特错误率,确定出快闪存储器阵列中的坏块,还可以包括:监测快闪存储器阵列中目标块的工作电流;获取预存到目标块的数据中零值的数量;基于比特错误率、工作电流以及零值的数量,确定出快闪存储器阵列中的坏块。
进一步地,为了更准确地确定出坏块,本申请提供了一种对快闪存储器阵列中的坏块进行统计的算法,通过将电流检测器检测到的电流值、预定义的数据pattern、用时时长和数据比对结果等信息相结合,用来进行统计运算处理,再根据运算结果,确定芯片中的出厂坏块、新增坏块。
在具体实施例中,根据比特错误率,确定出快闪存储器阵列中的坏块,可以包括:监测快闪存储器阵列中目标块的工作电流;获取快闪存储器阵列中目标块进行写、擦时的用时时长;获取写入到目标块的数据中零值的数量;基于工作电流、比特错误率、用时时长以及零值的数量,确定出快闪存储器阵列中的坏块。
具体地,基于工作电流、比特错误率、用时时长以及零值的数量,确定出快闪存储器阵列中的坏块,包括:基于比特错误率、预设比特错误率加权因子、工作电流、预设电流加权因子、用时时长、预设时间因素加权因子、零值的数量以及预设零值因素加权因子,确定目标块的退化分值,其中,退化分值表示目标块的退化程度得分;判断退化分值是否大于预设退化阈值;若是,则确定目标块为坏块。
进一步地,为了更准确地确定出闪存存储器阵列中的出厂坏块、新增坏块,可以对上述公式1进一步细化,下述示出了对一个块计算其退化系数的算法:
式中各项的含义:
Q是此块的退化分值;
N是此块内的Page数量;
W1i是块内第i页的编程电流的加权值,IPi是块内第i页的编程电流值;
W2i是块内第i页的编程Pattern的加权值,PPi是块内第i页的编程Pattern的分值;
W3i是块内第i页的编程时间的加权值,TPi是块内第i页的编程消耗的时间长度;
W4i是块内第i页的数据错误率的加权值,Ei是块内第i页的数据比特错误率;
W5是此块的擦除电流的加权值,IE是此块的擦除电流值;
W6是此块的数据pattern加权值,PE是此块的做擦除时的数据pattern得分值;
W7是此块的擦除时间的加权值,TE是此块的擦除时间长度。
可选地,将固态硬盘内全部闪存的所有块的Q值作排序,分值最高的,视作坏块,或者是,判断全部闪存的所有块的Q值,将Q值超过预设阈值的对应块视作坏块,其中,预设阈值是可以根据实际需要来确定,本申请不作限定。
接着,将坏块加入坏块列表中,后续对固态硬盘进行写擦访问时,跳过坏块,就可改善固态硬盘的可靠性。
本申请提供的基于固态硬盘主控芯片的闪存测试方法的流程可以如下:
在用户电路对固态硬盘做读写访问期间,固态硬盘的状态为忙,此时固态硬盘主控芯片正常响应用户的需求,对闪存阵列进行读写擦操作;
在用户不操作用户硬盘时,此时固态硬盘处于空闲状态,此时利用空闲时间对快闪存储器阵列中的未使用的块作“读+写+擦”操作,并对读回的数据与写入值进行对比,抓取其中的错误信息,进而可以得到此块内的错误比特数,计算出比特错误率。
一般情况下,快闪存储器阵列中的块内都会或多或少都会有一些错误数据,这些错误比特数是随机的,数据量也很小,通过ECC纠错码,可以将之修正,这样的块视作正常的“好块”来对待。但如果某个块的比特错误率明显高于其他块、且操作时监测到的NANDFlash工作电流大于其他块,则可以有较高的概率认定,此块是新增坏块、或者是第1类出厂坏块,将之加入坏块列表即可。
需要说明的是,由于固态硬盘主控制器芯片内的资源有限、未必能容纳快闪存储器阵列某地址区间中的全部错误信息。当错误信息的数量超过存储器容量时,即认为发生了溢出,此时无法回传所有错误字节的全部详细信息,但仍可将此地址区间中的总错误比特数回传,以供分析判断。
本申请通过结合快闪存储器阵列的工作电流和自动的写+读+回读比对流程(在自动化回读比对时,抓取其错误比特数,算出各块的错误比特率)等信息,能快速有效地找出快闪存储器阵列中的新增坏块。
基于本申请提出的电路结构,即便NAND Flash闪存已经被全片擦除,仍能有较大地概率检测出被擦除掉的出厂坏块。该闪存电路至少包括以下优势:1、在开卡量产的工序中,可以省略掉坏块扫描的步骤,缩短时间、提高生产效率;2、能够扫描出被擦除掉的出厂坏块;3、能够改善固态硬盘的数据可靠性。
综上所述,通过本发明实施例提供的基于固态硬盘主控芯片的闪存测试方法,能通过闪存电路内部自动的写、读、回读比对流程,得到全片擦除后的快闪存储器阵列内的错误数据,进而确定出快闪存储器阵列中的坏块,且该方法无需单独的工序进行监测,提高了生产效率。
第二方面,基于同一发明构思,本实施例提供了一种基于固态硬盘主控芯片的闪存测试装置,包括:
读取模块401,用于从快闪存储器阵列的目标块中读取数据;
比较模块402,用于将读取的数据与预存到目标块的数据进行比较,得到错误信息,错误信息包括错误数据以及错误地址;
第一确定模块403,用于根据错误信息确定目标块的比特错误率;
第二确定模块404,用于根据比特错误率,确定出快闪存储器阵列中的坏块。
作为一种可选的实施例,所述第二确定模块404,用于:若比特错误率大于预设错误阈值,则确定目标块为坏块。
作为一种可选的实施例,所述第二确定模块404,包括:
第一监测子模块,用于监测快闪存储器阵列中目标块的工作电流;
第三确定子模块,用于基于比特错误率以及所述工作电流,确定出快闪存储器阵列中的坏块。
作为一种可选的实施例,所述第三确定子模块,用于:基于比特错误率、预设比特错误率加权因子、工作电流以及预设电流加权因子,确定目标块的退化分值,其中,退化分值表示目标块的退化程度得分;基于退化分值,确定目标块是否为坏块。
作为一种可选的实施例,所述第二确定模块404,用于:获取快闪存储器阵列中目标块进行写、擦时的用时时长;基于比特错误率以及用时时长,确定出快闪存储器阵列中的坏块。
作为一种可选的实施例,所述第二确定模块404,用于:获取写入到目标块的数据中零值的数量;基于比特错误率以及所述零值的数量,确定出快闪存储器阵列中的坏块。
作为一种可选的实施例,所述第二确定模块404,包括:
第二监测子模块,用于监测快闪存储器阵列中目标块的工作电流;
第一获取子模块,用于获取快闪存储器阵列中目标块进行写、擦时的用时时长;
第二获取子模块,用于获取写入到目标块的数据中零值的数量;
第四确定子模块,用于基于比特错误率、工作电流、用时时长以及零值的数量,确定出快闪存储器阵列中的坏块。
作为一种可选的实施例,所述第四确定子模块,用于:基于比特错误率、预设比特错误了加权因子、工作电流、预设电流加权因子、用时时长、预设时间因素加权因子、零值的数量以及预设零值因素加权因子,确定目标块的退化分值,其中,退化分值表示目标块的退化程度得分;判断退化分值是否大于预设退化阈值;若是,则确定目标块为坏块。
第三方面,基于同一发明构思,本实施例提供了一种固态硬盘500,包括:存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序503,所述处理器502执行所述程序时实现前述第一方面所述闪存测试方法的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于固态硬盘主控芯片的闪存测试方法,其特征在于,所述固态硬盘主控芯片包括快闪存储器阵列,所述方法包括:
从所述快闪存储器阵列的目标块中读取数据;
将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;
根据所述错误信息确定所述目标块的比特错误率;
根据所述比特错误率,确定出所述快闪存储器阵列中的坏块;
所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:
监测所述快闪存储器阵列中目标块的工作电流;
基于所述比特错误率以及所述工作电流,确定出所述快闪存储器阵列中的坏块。
2.如权利要求1所述的闪存测试方法,其特征在于,所述基于所述比特错误率以及所述工作电流,确定出所述快闪存储器阵列中的坏块,包括:
基于所述比特错误率、预设比特错误率加权因子、所述工作电流以及预设电流加权因子,确定所述目标块的退化分值,其中,所述退化分值表示所述目标块的退化程度得分;
基于所述退化分值,确定所述目标块是否为坏块。
3.如权利要求1所述的闪存测试方法,其特征在于,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:
获取所述快闪存储器阵列中目标块进行写、擦时的用时时长;
基于所述比特错误率以及所述用时时长,确定出所述快闪存储器阵列中的坏块。
4.如权利要求1所述的闪存测试方法,其特征在于,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:
获取写入到所述目标块的数据中零值的数量;
基于所述比特错误率以及所述零值的数量,确定出所述快闪存储器阵列中的坏块。
5.如权利要求1所述的闪存测试方法,其特征在于,所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:
监测所述快闪存储器阵列中目标块的工作电流;
获取所述快闪存储器阵列中目标块进行写、擦时的用时时长;
获取写入到所述目标块的数据中零值的数量;
基于所述比特错误率、所述工作电流、所述用时时长以及所述零值的数量,确定出所述快闪存储器阵列中的坏块。
6.如权利要求5所述的闪存测试方法,其特征在于,所述基于所述比特错误率、所述工作电流、所述用时时长以及所述零值的数量,确定出所述快闪存储器阵列中的坏块,包括:
基于所述比特错误率、预设比特错误了加权因子、所述工作电流、预设电流加权因子、所述用时时长、预设时间因素加权因子、所述零值的数量以及预设零值因素加权因子,确定所述目标块的退化分值,其中,所述退化分值表示所述目标块的退化程度得分;
判断所述退化分值是否大于预设退化阈值;
若是,则确定所述目标块为坏块。
7.一种基于固态硬盘主控芯片的闪存测试装置,其特征在于,包括:
读取模块,用于从快闪存储器阵列的目标块中读取数据;
比较模块,用于将读取的数据与预存到所述目标块的数据进行比较,得到错误信息,所述错误信息包括错误数据以及错误地址;
第一确定模块,用于根据所述错误信息确定所述目标块的比特错误率;
第二确定模块,用于根据所述比特错误率,确定出所述快闪存储器阵列中的坏块;
所述根据所述比特错误率,确定出所述快闪存储器阵列中的坏块,包括:
监测所述快闪存储器阵列中目标块的工作电流;基于所述比特错误率以及所述工作电流,确定出所述快闪存储器阵列中的坏块。
8.一种固态硬盘,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-6中任一项所述闪存测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210902079.1A CN114974387B (zh) | 2022-07-29 | 2022-07-29 | 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210902079.1A CN114974387B (zh) | 2022-07-29 | 2022-07-29 | 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114974387A CN114974387A (zh) | 2022-08-30 |
CN114974387B true CN114974387B (zh) | 2022-11-01 |
Family
ID=82969407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210902079.1A Active CN114974387B (zh) | 2022-07-29 | 2022-07-29 | 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114974387B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727980A (zh) * | 2008-10-20 | 2010-06-09 | 联发科技股份有限公司 | 多芯片模块 |
CN111916139A (zh) * | 2019-05-07 | 2020-11-10 | 美光科技公司 | 具有用户定义的加标记机制的存储器装置 |
CN113362879A (zh) * | 2021-04-19 | 2021-09-07 | 浙江大华存储科技有限公司 | 一种固态硬盘寿命的预测方法、装置和可读存储介质 |
CN114220470A (zh) * | 2021-11-04 | 2022-03-22 | 浙江大华存储科技有限公司 | 一种闪存颗粒筛选方法、终端及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI598733B (zh) * | 2016-01-12 | 2017-09-11 | 瑞昱半導體股份有限公司 | 權重式資料搬遷控制裝置與方法 |
-
2022
- 2022-07-29 CN CN202210902079.1A patent/CN114974387B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727980A (zh) * | 2008-10-20 | 2010-06-09 | 联发科技股份有限公司 | 多芯片模块 |
CN111916139A (zh) * | 2019-05-07 | 2020-11-10 | 美光科技公司 | 具有用户定义的加标记机制的存储器装置 |
CN113362879A (zh) * | 2021-04-19 | 2021-09-07 | 浙江大华存储科技有限公司 | 一种固态硬盘寿命的预测方法、装置和可读存储介质 |
CN114220470A (zh) * | 2021-11-04 | 2022-03-22 | 浙江大华存储科技有限公司 | 一种闪存颗粒筛选方法、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114974387A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8412879B2 (en) | Hybrid implementation for error correction codes within a non-volatile memory system | |
US10936391B2 (en) | Memory management method and storage controller | |
US11398291B2 (en) | Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device | |
US9141476B2 (en) | Method of storing system data, and memory controller and memory storage apparatus using the same | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
US9274943B2 (en) | Storage unit management method, memory controller and memory storage device using the same | |
US10126970B2 (en) | Paired metablocks in non-volatile storage device | |
US9535611B2 (en) | Cache memory for hybrid disk drives | |
US20120210075A1 (en) | Memory management method, memory controller and memory storage apparatus | |
CN112068772B (zh) | 数据存储方法、数据存储装置及存储装置 | |
CN102880554A (zh) | 提高闪存芯片存储效率的方法、闪存存储***及其控制器 | |
CN108564981B (zh) | 一种存储装置数据安全动态监控方法 | |
CN112347001B (zh) | 闪存垃圾回收的校验方法、装置及电子设备 | |
Liang et al. | Reliability characterization of solid state drives in a scalable production datacenter | |
CN114974387B (zh) | 基于固态硬盘主控芯片的闪存测试方法、装置及固态硬盘 | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
US10475522B2 (en) | Memory system including a delegate page and method of identifying a status of a memory system | |
CN110633056A (zh) | 在操作***层面的Flash芯片的页面管理方法及存储设备 | |
CN111949198A (zh) | 一种坏块管理方法、装置和存储设备 | |
CN217157722U (zh) | 一种固态硬盘主控芯片及固态硬盘 | |
US11520661B1 (en) | Scheduling of data refresh in a memory based on decoding latencies | |
US20240256444A1 (en) | Generating virtual blocks using partial good blocks | |
CN114327265B (zh) | 读取干扰检查方法、存储器存储装置及控制电路单元 | |
CN115309345B (zh) | nor flash的擦除方法、装置、设备及介质 | |
US12007838B2 (en) | Accessing data using error correction operation(s) to reduce latency at a memory sub-system |
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 |