CN116072206B - 闪存错误数的测试方法、装置、电子设备和存储介质 - Google Patents

闪存错误数的测试方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116072206B
CN116072206B CN202310351728.8A CN202310351728A CN116072206B CN 116072206 B CN116072206 B CN 116072206B CN 202310351728 A CN202310351728 A CN 202310351728A CN 116072206 B CN116072206 B CN 116072206B
Authority
CN
China
Prior art keywords
page
target
mask
flash memory
data
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
CN202310351728.8A
Other languages
English (en)
Other versions
CN116072206A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310351728.8A priority Critical patent/CN116072206B/zh
Publication of CN116072206A publication Critical patent/CN116072206A/zh
Application granted granted Critical
Publication of CN116072206B publication Critical patent/CN116072206B/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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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

Landscapes

  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请实施例提供了一种闪存错误数的测试方法、装置、电子设备和存储介质,涉及闪存测试领域,写入数据包括同一字线的多个页面分别对应的写入页面数据,对多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据,将读取页面数据与多个页面中除目标页面之外的其他页面存储的写入页面数据结合,生成读出数据,将写入数据对应的第一掩码数组与读出数据对应的第二掩码数组,进行交叉对比,得到目标页面中各判决电压引入的闪存错误数,使得闪存错误数确定的准确度更高,更容易分析和判定出错误数增加的原因,进而确定最好的读电压。

Description

闪存错误数的测试方法、装置、电子设备和存储介质
技术领域
本申请涉及闪存测试技术领域,特别是涉及一种闪存错误数的测试方法、一种闪存错误数的测试装置、一种电子设备和一种存储介质。
背景技术
NAND (是与非)等闪存相比传统存储媒介具备读写速度快,能耗低等众多优点,在移动电子消费产品、台式机和笔记本电脑中已经有广泛的使用,更大容量的 NAND 闪存已被使用在高性能服务器中,为当前的大数据计算和物联网时代提供高效,稳定的存储技术支持。随着多值存储技术的发展,使每一存储态的存储窗口持续减小,长时间的数据保留使得各个存储窗口的交叉现象严重,BER(Bit Error Rate,比特错误率)增加,但是现有的测试仅能获取到一个页面中所有判决电压引出的错误数,无法获得每个判决电压各自引入的错误数,导致确定的错误数准确性较低。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种闪存错误数的测试方法、一种闪存错误数的测试装置、一种电子设备和一种存储介质。
在本申请的第一个方面,本申请实施例公开了一种闪存错误数的测试方法,包括:
获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组。
本申请的一些实施例中,所述第一掩码数组二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组。
本申请的一些实施例中,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,所述预设第一掩码为1,所述预设第二掩码为0。
本申请的一些实施例中,所述将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据的步骤包括:
按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
本申请的一些实施例中,所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤包括:
将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述异或数组包括目标异或值;所述依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数的步骤包括:
确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;
根据所述编码值从所述异或数组确定出两个目标异或值序列;
依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数的步骤包括:
统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
本申请的一些实施例中,所述方法还包括:
将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
依据所述闪存错误数计算比特错误率。
本申请的一些实施例中,所述依据所述闪存错误数计算比特错误率的步骤包括:
计算所述闪存错误数与预设字节数的比值;
确定所述比值为所述比特错误率。
本申请的一些实施例中,所述对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据的步骤包括:
基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
本申请的一些实施例中,所述闪存为至少两层单元的闪存。
本申请的一些实施例中,当所述闪存为三层单元闪存时,所述同一字线的多个页面包括低页面、中页面和高页面。
本申请的第二个方面,本申请实施例公开了一种闪存错误数的测试装置,包括:
第一获取模块,用于获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
读取模块,用于对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
结合模块,用于将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
交叉对比模块,用于将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
在本申请的第三个方面,本申请实施例还公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的闪存错误数的测试方法的步骤。
在本申请的第四个方面,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的闪存错误数的测试方法的步骤。
本申请实施例包括以下优点:
本申请实施例中,写入数据包括同一字线的多个页面分别对应的写入页面数据,对多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据,将读取页面数据与多个页面中除目标页面之外的其他页面存储的写入页面数据结合,生成读出数据,将写入数据对应的第一掩码数组与读出数据对应的第二掩码数组,进行交叉对比,得到目标页面中各判决电压引入的闪存错误数。通过写入数据获得更详细完整的状态,进而确定更精确的读电压,可以知道其中页面对应各判决电压引入的错误数,使得错误数确定的准确度更高,同时更容易分析和判定出错误数增加的原因,进而确定最好的读电压。
附图说明
图1是一种单层单元闪存数据存储示意图;
图2是一种三层单元闪存数据存储示意图;
图3是本申请的一种闪存错误数的测试方法实施例的步骤流程图;
图4是本申请的一种闪存错误数的测试方法示例的步骤流程图;
图5是本申请的一种闪存错误数的测试装置实施例的结构框图;
图6是本申请实施例提供的一种电子设备的结构框图;
图7是本申请实施例提供的一种存储介质的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在本申请实施例中,闪存具体为NAND闪存。
为提高NAND的存储密度,多值存储技术广泛应用于NAND存储中, “值”表示每个单元(cell)存储的比特位数。当一个单元只存储 1位时,记为1bit/cell,称为SLC(Single-Level cell)。而多级存储单元设备可以让每个单元存储 k-bits/cell(k≥2)的数据。一般的2 bits/cell称为MLC(Multi-Level Cell,二层单元),3bits/cell称为TLC(Triple-Level Cell,三层单元),4bits/cell称为QLC(Qual-Level Cell,四层单元)。
多值存储技术时,假设一个单元存储n个bit(n bits/cell),每个字线(wordline)有n个页面(page),有
Figure SMS_1
个峰(peak),有/>
Figure SMS_2
;当n>1时(即除SLC外),/>
Figure SMS_3
,读取不同页面(page)时,一般需要多于一次的参考电压。
对于单值存储,即SLC,一个单元存储1个bit,共有2个peak,仅需1个参考电压,如图1所示。读一个page的数据,仅需要一个参考电压Va。所有的FBC(Failed Bit Count,错误数)都是由参考电压Va引起的。
Figure SMS_4
对于多值存储技术,如图2所示,以TLC为例,n=3。一个单元存储的3个bit(3 bits/cell),有3个page,记为upper page,midlle page,upper page;共有8个peak,记为P0~P7;共有7个参考电压,分别记为Va~Vg,具体参照下述表1。
假设编码方式如上表1,各页(page)需要比较的参考电压分别为:upper page 2个(Vc,Vg),middle page 3个(Vb,Vd,Vf)和lower page 2个(Va,Ve)。例如,当读取lowerpage时,NAND内部会将每个cell的电压
Figure SMS_5
分别与设置的参考电压Va和Ve比较,
Figure SMS_6
这两次参考电压比较为NAND内部电路进行的,用户得到最终lower page的数据并计算Va和Ve共同引入的FBC。
通常的NAND测试,无法分辨一次lower page读取Va和Ve各自引入的FBC,所以也无法对Va和Ve的电压偏移进行针对性的优化。Middle page和upper page同理。导致确定错误的准确度较低。
参照图3,示出了本申请的一种闪存错误数的测试方法实施例的步骤流程图,所述闪存错误数的测试方法具体可以包括如下步骤:
步骤301,获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据。
其中,本申请实施例中的方法可以是应用在多值存储的闪存测试时,对读取闪存中存储的数据时各判决电压引入的闪存错误数进行测试。
NAND闪存为多值存储的闪存,多值存储的闪存为至少两层单元的闪存,例如二层单元闪存、三层单元闪存、四层单元闪存、五层单元闪存等等。当闪存具体为NAND闪存时,即可以为二层单元NAND闪存、三层单元NAND闪存、四层单元NAND闪存。
闪存中同一字线连接若干储存单元(cell),每个存储单元包括多个页面。例如TLC(Triple-Level Cell)中,每个存储单元可以存储三个电荷状态,分别对应Upper page(高页面)、Middle page(中页面)和Lower page(低页面),因此,同一字线同时连接若干储存单元对应的Upper page(高页面)、Middle page(中页面)和Lower page(低页面)。
在本申请实施例中,需要先获取预先需要写入闪存中的写入数据,该写入数据中包括同一字线的多个页面分别对应的写入页面数据。以TLC为例,多个页面为Upper page(高页面)、Middle page(中页面)和Lower page(低页面),写入数据包括高页面对应的写入页面数据,中页面对应的写入页面数据和低页面对应的写入页面数据,那么获取闪存中储存的写入数据为获取到同一字线连接的每个存储单元中高页面对应的写入页面数据,中页面对应的写入页面数据和低页面对应的写入页面数据。
需要说的是,NAND测试中,写入的数据是已知的随机数,所以同一字线的多个页面分别对应的写入页面数据都是已知的。
步骤302,对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据。
其中,目标页面并非指的是一个页面,而是指的是多种页面中的一种页面。以TLC为例,多个页面为高页面、中页面和低页面,目标页面则指的是高页面、中页面和低页面中的其中一种。
具体地,对多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据。以TLC中低页面为目标页面为例,读取目标页面中的写入页面数据时,闪存内部会将每个存储单元的电压分别与设置的判决电压Va和Ve比较,这两次判决电压比较为闪存内部电路进行的,经过比较后可以得到低页面的读取页面数据,即得到同一字线中每个储存单元的低页面的读取页面数据,而闪存错误数也在这个读取过程中产生。
步骤303,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
具体地,在读取到目标页面的读取页面数据后,将读取页面数据与多个页面中除目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。以TCL中低页面为目标页面为例,获取到低页面的读取页面数据之后, 将低页面的读取数据与中页面和高页面分别对应的写入页面数据进行结合,生成读出数据。
步骤304,将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
具体地,在得到写入数据和读出数据后,由于写入数据和读出数据在目标页面对应的数据部分不同,因此可以将写入数据对应的第一掩码数组和读出数据对应的第二掩码数组进行交叉对比,基于判决电压确定异常的地方,基于异常的地方得到目标页面中各判决电压引出的闪存错误数。其中,第一掩码数组和第二掩码数组为区分写入数据和读出数据对应的掩码数组而定义,两者实质都为掩码数组,第一掩码数组则为写入数据对应掩码数组;第二掩码数组则为读出数据对应掩码数组。
本申请实施例获取闪存中存储的写入数据,写入数据包括同一字线的多个页面分别对应的写入页面数据,对多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据,将读取页面数据与多个页面中除目标页面之外的其他页面存储的写入页面数据结合,生成读出数据,将写入数据对应的第一掩码数组与读出数据对应的第二掩码数组,进行交叉对比,得到目标页面中各判决电压引入的闪存错误数。通过写入数据获得更详细完整的状态,进而确定更精确的读电压,可以知道其中页面对应各判决电压引入的错误数,使得错误数确定的准确度更高,同时更容易分析和判定出错误数增加的原因,进而确定最好的读电压。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在本申请的一些实施例中,所述对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据的步骤包括:基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
具体地,目标页面中写入页面数据的读取是通过目标页面对应的判决电压实现的,通过目标页面对应的储存单元的电压与判决电压进行比较,进而可以得到目标页面的读取页面数据,需要说明的是,通过判决电压对目标页面中的数据进行读取为本领域的常规技术手段,所以在此处不加以赘述。
在本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组。
以TLC为例,写入数据对应的第一掩码数组如下表2:
Figure SMS_7
第一掩码数组由8个二进制位序列组成,分别是Mask_000、Mask_001、Mask_010、Mask_011、Mask_100、Mask_101、Mask_110、Mask_111。n为同一字线连接的储存单元的数量,也是二进制位序列中的序列号。其中,写入数据包括n个存储单元(cell)的写入数据,即比特值,第1个储存单元、第2个储存单元、...、第n个存储单元的写入数据分别是000、010、...、101。
具体地,确定第一掩码数组中写入数据的比特值对应的目标二进制位序列,在目标二进制位序列上比特值对应的序列位置标记预设第一掩码,在第一掩码数组中除目标二进制位序列之外的其他二进制位序列上比特值对应的序列位置标记预设第二掩码。
以上述表2中的第1个储存单元为例,写入数据的比特值为000,对应的二进制位序列为Mask_000,因此将Mask_000作为目标二进制位序列,而第1个储存单元的序列位置为0,因此在Mask_000中序列位置为0处标记预设第一掩码1,在第一掩码组中除Mask_000的其他二进制位序列中序列位置为0处标记预设第二掩码0,从而完成第1个储存单元对应的第一掩码组中二进制位的标定,采用上述相同方式可对第一掩码组中所有的二进制位序列进行标记,此处不再赘述,以得到标记完成的第一掩码数组,便于后续通过标记完成的第一掩码数组和第二掩码数组进行交叉对比。
在本申请的一些实施例中,所述第一掩码数组二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
具体地,第一掩码数组二进制位序列分别与闪存中的峰对应,以TLC为例,再次参照图2,峰(peak)P0的编码值为111、P1的编码值为110、P2的编码值为100、P3的编码值为000、P4的编码值为010、P5的编码值为011、P6的编码值为001、P7的编码值为101,那么P0、P1、P2、P3、P4、P5、P6和P7分别对应的二进制位序列是Mask_111、Mask_110、Mask_100、Mask_000、Mask_010、Mask_011、Mask_001和Mask_101。
因此,目标二进制位为编码值等于比特值的峰对应的二进制位,如比特值为000时,与P3的编码值相同,所以写入数据的比特值000对应的目标二进制位序列为Mask_000。
在本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的第二掩码数组。
具体地,以TLC为例,第二掩码数组也是由8个二进制位序列组成,分别是READ_000、READ_001、READ_010、READ_011、READ_100、READ_101、READ_110、READ_111,与第一掩码数组对应。
当第1个储存单元的读出数据的比特值为001时,对应的二进制位序列为READ_001,因此将READ_001作为目标二进制位序列,而第1个储存单元的序列位置为0,因此在READ_001中序列位置为0处标记预设第一掩码1,在第一掩码组中除READ_001的其他二进制位序列中序列位置为0处标记预设第二掩码0,从而完成第1个储存单元对应的第二掩码组中二进制位的标定,采用上述相同方式可对第二掩码组中所有的二进制位序列进行标记,此处不再赘述,以得到标记完成的第二掩码数组,便于后续通过标记完成的第一掩码数组和第二掩码数组进行交叉对比。
在本申请的一些实施例中,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
具体地,第二掩码数组二进制位序列分别与闪存中的峰对应,以TLC为例,再次参照图2,峰(peak)P0的编码值为111、P1的编码值为110、P2的编码值为100、P3的编码值为000、P4的编码值为010、P5的编码值为011、P6的编码值为001、P7的编码值为101,那么P0、P1、P2、P3、P4、P5、P6和P7分别对应的二进制位序列是READ_111、READ_110、READ_100、READ_000、READ_010、READ_011、READ_001和READ_101。
因此,目标二进制位为编码值等于比特值的峰对应的二进制位,如读出数据的比特值为000时,与P3的编码值相同,所以比特值000对应的目标二进制位序列为READ_000。
需要说明的是,预设第一掩码为1,预设第二掩码为0,除此之外,预设第一掩码和预设第二掩码也可以其他值或符号,具体可以根据实际需要进行设置,本申请对此不做限制。
在本申请的一些实施例中,所述将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据的步骤包括:按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
具体地,将读取页面数据与多个页面中除目标页面之外的其他页面存储的写入页面数据,按照原本页面的顺序进行结合生成读出数据。以TLC中低页面为目标页面为例,将低页面的读出页面数据,与中页面的写入页面数据和高页面的写入页面数据,按照低页面、中页面和高页面的顺序进行结合,生成读出数据。
在本申请的一些实施例中,所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤包括:将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
具体地,在得到写入数据和读取数据后,可以针对写入数据对应的第一掩码数组和读出数据对应的第二掩码数组进行交叉异或操作,第一掩码数组中的每一个二进制位序列,分别与第二掩码组中的每一个二进制位序列进行异或操作,得到异或值序列,并将异或值序列组成异或数组。
以TLC为例,第一掩码数组包括8个二进制位序列为Mask_000、Mask_001、Mask_010、Mask_011、Mask_100、Mask_101、Mask_110、Mask_111,第二掩码数组包括8个二进制位序列为READ_000、READ_001、READ_010、READ_011、READ_100、READ_101、READ_110、READ_111。
那么第一掩码数组和第二掩码数组进行交叉异或操作,得到
MASK[0]^READ[0], MASK[0]^READ[1],…,MASK[0]^READ[7]
MASK[1]^READ[0], MASK[1]^READ[1],…,MASK[1]^READ[7]
MASK[7]^READ[0], MASK[7]^READ[1],…,MASK[7]^READ[7],
其中,MASK[0]、MASK[1]、...、MASK[7]分别为Mask_000、Mask_001、...、Mask_111,READ[0]、READ[1]、...、READ[7]分别为READ_000、READ_001、...、READ_111。假如MASK[0]为00101001001,而READ[0]为00111000001,那么异或值序列CNT[0][0]=MASK[0]^READ[0]=00010001000,即得到64个异或值序列组成的异或数组CNT[A][B],A=0,1,2,…,7, B=0,1,2,…,7。
并进一步可以依据异或数组确定目标页面中各判决电压引入的闪存错误数。
在本申请中的一些实施例中,所述异或数组包括目标异或值;所述依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数的步骤包括:确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;根据所述编码值从所述异或数组确定出两个目标异或值序列;依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
具体地,以TLC为例,请再次参照图2,判决电压Va位于P0峰和P1峰之间,也就是说,通过Va读取低页面中的写入页面数据时,仅存在将P0峰读取成P1峰,或将P1峰读取成P0峰这样的闪存错误发生,因此确定判决电压Va引出的闪存错误数时,只需要确定P0峰和P1峰对应的二进制位序列是否发生错误就行,所以根据峰的编码值从异或数组确定出两个目标异或值序列,如P1峰的编码值为111为7,P0峰的编码值为110为6,那么确定的两个目标异或值序列分别为CNT[6][7]和CNT[7][6],依据两个目标异或值序列中的目标异或值确定判决电压Va引入的闪存错误数。
在本申请的一些实施例中,所述依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数的步骤包括:统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
具体地,通过两个目标异或值序列中目标异或值的个数,作为判决电压引入的闪存错误数,目标异或值为1,例如两个目标异或值序列中1的个数均为50个,那么判决电压中引入的闪存错误数为100。
上述实施例,通过确定判决电压相邻的两个峰,两个峰分别具有对应的编码值,根据编码值从异或数组确定出两个目标异或值序列,统计两个目标异或值序列中目标异或值的个数,作为判决电压中引入的闪存错误数,从而实现确定每一个判决电压引入的闪存错误数。
在本申请中的一些实施例中,所述方法还包括:将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
具体地,在得到目标页面中每一个判决电压引入的闪存错误数之后,可以将目标页面中每一个判决电压引入的闪存错误数进行相加即得到读取目标页面储存的写入页面数据时出现的闪存错误数。
在本申请中的一些实施例中,所述方法还包括:执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
具体地,在确定出读取目标页面储存的写入页面数据时出现的闪存错误数之后,还可以对多个页面中除目标页面之外的其他页面储存的写入页面数据进行读取,如第一次针对lower page进行读取,第二次时可以针对middle page读取,第三次时可以针对upperpage进行读取,从而将整个多值存储的每一个页面对应的数据进行读取,从而可以确定对应的每一个判决电压下,对应写入数据的存储情况,以对不同页面的存储进行测试。
在本申请中的一些实施例中,所述方法还包括:依据所述闪存错误数计算比特错误率。
具体地,在得到闪存错误数后,可以根据闪存错误数计算出比特错误率,以表示写入错误的情况。
在本申请的一可选实施例中,所述依据所述闪存错误数计算比特错误率的步骤包括:确定所述比值为所述比特错误率;计算所述闪存错误数与预设字节数的比值。
具体地,由于写入测试数据是已知的,即可以获知到写入数组整体的字节数,即为预设字节数。计算闪存错误数与预设字节数的比值,计算出比值后,确定该比值即为比特错误率。
本申请实施例通过写入测试数据获得更详细完整的状态,进而确定更精确的读电压,知道每个判决电压引入的错误数,使得错误数确定的准确度更高,同时更容易分析和判定出错误数增加的原因,进而确定最好的读电压。且一次测试可以测试多个不同页面的数据,节省测试时间,提高闪存测试效率;且减少了读的次数和时间,提高测试精度。
为了使本领域技术人员能够更好地理解本申请实施例,下面通过一个例子对本申请实施例加以说明:
参照图4,示出了本申请的一种闪存错误数的测试方法示例的步骤流程图。
1、根据写入同一个WL3个page的数据,生成各peak的mask数组,一个bit表示一个cell,对TLC共生成8个mask。各peak的mask在写入数据cell为该peak的bit标1,其他bit标0。大小与一个block上的cell数相同。
peak_000的mask,在cell写入为000的bit对应位置标1,其他7个peak对应位置标0;
peak_001的mask,在cell写入为001的bit对应位置标1,其他7个peak对应位置标0;
共生成peak_000, peak_001, peak_010, peak_011, peak_100, peak_101,peak_110, peak_111共8组mask二进制序列(二进制位序列)WRITE[M],每组序列长度为N。M为peak的个数,TLC的M分布为8,N为一个wl对应的cell数,与nand型号相关。
mask的大小为 18336 bytes=146688 bits,对应的8个mask如下表3:
Figure SMS_8
2、读出该WL的一个page的数据后,使用读出page数据替换相应page和该WL另外2个page的写入数据,生成8组读出数据序列READ[M],每个序列长度为N。本示例为,读lowerpage,则使用lower page的读出数据,和middle和upper page写入数据。
3、将MASK和READ数据序列进行异或操作(XOR),生成64组XOR数据序列(异或值序列):
MASK[0]^READ[0], MASK[0]^READ[1],…,MASK[0]^READ[7]
MASK[1]^READ[0], MASK[1]^READ[1],…,MASK[1]^READ[7]
MASK[7]^READ[0], MASK[7]^READ[1],…,MASK[7]^READ[7]
4、统计以上64个XOR数据序列中1的个数,即为该mask对应peak在本次读中对应的FBC个数,CNT[A][B],A=0,1,2,…,7, B=0,1,2,…,7,参照下表4:
Figure SMS_9
对于CNT[i][j]。当i=j时,代表写入数据和读出数据相同。
i ≠ j,为写入数据和读出数据不同。
5、根据编码方式,设定读出和写入数据最多只相差一个peak,每个判决电压引入的错误数为:
FBC_A = CNT[7][6]+CNT[6][7];
FBC_B = CNT[6][4]+CNT[4][6];
FBC_C = CNT[4][0]+CNT[0][4];
FBC_D = CNT[0][2]+CNT[2][0];
FBC_E = CNT[2][3]+CNT[3][2];
FBC_F = CNT[3][1]+CNT[1][3];
FBC_G = CNT[1][5]+CNT[5][1]。
6、通过上面的公式计算,那么获得不同page的错误数为:
FBC_lower = FBC_A+FBC_E;
FBC_middle = FBC_B+FBC_D+FBC_F;
FBC_upper = FBC_C+FBC_G。
上述实施例中,仅以TLC举例,但同样推广到MLC、QLC或PLC。
增加了测试维度,提高了获取读电压的准确度。NAND测试获得更详细完整的nand状态,确定更精确的读电压。由于lower page、upper page read有2个判决电压,middlepage有3个判决电压,所以有些问题较难定位是哪个read出错。增加mask方案之后,由于知道是每个判决电压引入的错误数,更容易分析和判定出错误数增加的原因,进而确定最好的读电压。
节省测试时间,提高NAND测试效率。比如lower page有2个判决电压,如果每个判决电压测试10个不同的读电压,常规测试需要10*10共100个page read,而采用mask方案,只需要10个page read即可完成。从而减少测试时间。
减少读干扰的影响,提高了测试精度。由于每次page read都会增加读干扰,增加数据保持时间,本测试可以减少读的次数和时间,提高测试精度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图5,示出了本申请的一种闪存错误数的测试装置实施例的结构框图,所述闪存错误数的测试装置具体可以包括如下模块:
第一获取模块501,用于获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
读取模块502,用于对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
结合模块503,用于将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
交叉对比模块504,用于将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,还包括:
序列确定模块,用于确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;
掩码标记模块,用于在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组。
本申请的一些实施例中,所述第一掩码数组二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,还包括:
序列确定模块,用于确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
掩码填充模块,用于在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组。
本申请的一些实施例中,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,所述预设第一掩码为1,所述预设第二掩码为0。
本申请的一些实施例中,所述结合模块包括:
结合子模块,用于按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
本申请的一些实施例中,所述交叉对比模块包括:
交叉异或操作子模块,用于将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
闪存错误数确定模块,用于依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述闪存错误数确定模块包括:
峰确定子模块,用于确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;
异或值序列确定子模块,用于根据所述编码值从所述异或数组确定出两个目标异或值序列;
闪存错误数确定子模块,用于依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述闪存错误数确定子模块包括:
闪存错误数统计单元,用于统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
本申请的一些实施例中,还包括:
闪存错误数相加模块,用于将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,还包括:
循环执行模块,用于执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,还包括:
比特错误率计算模块,用于依据所述闪存错误数计算比特错误率。
本申请的一些实施例中,所述比特错误率计算模块包括:
比值计算子模块,用于计算所述闪存错误数与预设字节数的比值;
比特错误率确定子模块,用于确定所述比值为所述比特错误率。
本申请的一些实施例中,所述读取模块包括:
读取子模块,用于基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
本申请的一些实施例中,所述闪存为至少二层单元的闪存。
本申请的一些实施例中,当所述闪存为三层单元闪存时,所述同一字线的多个页面包括低页面、中页面和高页面。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
参照图6,本申请实施例还提供了一种电子设备,包括:
处理器601和存储介质602,所述存储介质602存储有所述处理器601可执行的计算机程序,当电子设备运行时,所述处理器601执行所述计算机程序,以执行如本申请实施例任一项所述的闪存错误数的测试方法。所述闪存错误数的测试方法,包括:
获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组。
本申请的一些实施例中,所述第一掩码数组二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组。
本申请的一些实施例中,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,所述预设第一掩码为1,所述预设第二掩码为0。
本申请的一些实施例中,所述将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据的步骤包括:
按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
本申请的一些实施例中,所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤包括:
将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述异或数组包括目标异或值;所述依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数的步骤包括:
确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;
根据所述编码值从所述异或数组确定出两个目标异或值序列;
依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数的步骤包括:
统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
本申请的一些实施例中,所述方法还包括:
将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
依据所述闪存错误数计算比特错误率。
本申请的一些实施例中,所述依据所述闪存错误数计算比特错误率的步骤包括:
计算所述闪存错误数与预设字节数的比值;
确定所述比值为所述比特错误率。
本申请的一些实施例中,所述对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据的步骤包括:
基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
本申请的一些实施例中,所述闪存为至少二层单元的闪存。
本申请的一些实施例中,当所述闪存为三层单元闪存时,所述同一字线的多个页面包括低页面、中页面和高页面。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
参照图7,本申请实施例还提供了一种计算机可读存储介质701,所述存储介质701上存储有计算机程序,所述计算机程序被处理器运行时执行如本申请实施例任一项所述的闪存错误数的测试方法。所述闪存错误数的测试方法,包括:
获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组。
本申请的一些实施例中,所述第一掩码数组二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,在所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤之前,所述方法还包括:
确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组。
本申请的一些实施例中,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
本申请的一些实施例中,所述预设第一掩码为1,所述预设第二掩码为0。
本申请的一些实施例中,所述将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据的步骤包括:
按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
本申请的一些实施例中,所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数的步骤包括:
将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述异或数组包括目标异或值;所述依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数的步骤包括:
确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;
根据所述编码值从所述异或数组确定出两个目标异或值序列;
依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
本申请的一些实施例中,所述依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数的步骤包括:
统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
本申请的一些实施例中,所述方法还包括:
将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
本申请的一些实施例中,所述方法还包括:
依据所述闪存错误数计算比特错误率。
本申请的一些实施例中,所述依据所述闪存错误数计算比特错误率的步骤包括:
计算所述闪存错误数与预设字节数的比值;
确定所述比值为所述比特错误率。
本申请的一些实施例中,所述对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据的步骤包括:
基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
本申请的一些实施例中,所述闪存为至少二层单元的闪存。
本申请的一些实施例中,当所述闪存为三层单元闪存时,所述同一字线的多个页面包括低页面、中页面和高页面。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的闪存错误数的测试方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (17)

1.一种闪存错误数的测试方法,其特征在于,包括:
获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数;
其中,所述方法还包括:
确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组;
确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组;
其中,所述将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数,包括:
将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
2.根据权利要求1所述的方法,其特征在于,所述第一掩码数组中的二进制位序列分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
3.根据权利要求1所述的方法,其特征在于,所述第二掩码数组中的二进制位分别与所述闪存中的峰对应,所述峰具有对应的编码值,所述目标二进制位为编码值等于比特值的所述峰对应的二进制位。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述预设第一掩码为1,所述预设第二掩码为0。
5.根据权利要求1所述的方法,其特征在于,所述将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据的步骤包括:
按照预设的页面顺序,将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据。
6.根据权利要求1所述的方法,其特征在于,所述异或数组包括目标异或值;所述依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数的步骤包括:
确定判决电压相邻的两个峰,所述两个峰分别具有对应的编码值;
根据所述编码值从所述异或数组确定出两个目标异或值序列;
依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数,以得到所述目标页面中各判决电压引入的闪存错误数。
7.根据权利要求6所述的方法,其特征在于,所述依据所述两个目标异或值序列中的目标异或值确定所述判决电压引入的闪存错误数的步骤包括:
统计所述两个目标异或值序列中目标异或值的个数,并作为所述判决电压引入的闪存错误数。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标页面中各所述判决电压引入的闪存错误数进行相加,得到读取所述目标页面储存的写入页面数据时出现的闪存错误数。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
执行对所述多个页面中除所述目标页面之外的其他页面储存的写入页面数据进行读取的步骤,以得到读取所述其他页面储存的写入页面数据时出现的闪存错误数。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
依据所述闪存错误数计算比特错误率。
11.根据权利要求10所述的方法,其特征在于,所述依据所述闪存错误数计算比特错误率的步骤包括:
计算所述闪存错误数与预设字节数的比值;
确定所述比值为所述比特错误率。
12.根据权利要求1所述的方法,其特征在于,所述对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据的步骤包括:
基于所述目标页面的判决电压对所述目标页面储存的写入页面数据进行读取,得到读取页面数据。
13.根据权利要求1所述的方法,其特征在于,所述闪存为至少两层单元的闪存。
14.根据权利要求13所述的方法,其特征在于,当所述闪存为三层单元闪存时,所述同一字线的多个页面包括低页面、中页面和高页面。
15.一种闪存错误数的测试装置,其特征在于,包括:
第一获取模块,用于获取闪存中存储的写入数据,所述写入数据包括同一字线的多个页面分别对应的写入页面数据;
读取模块,用于对所述多个页面中目标页面储存的写入页面数据进行读取,得到读取页面数据;
结合模块,用于将所述读取页面数据与所述多个页面中除所述目标页面之外的其他页面存储的写入页面数据结合,生成读出数据;
交叉对比模块,用于将所述写入数据对应的第一掩码数组与所述读出数据对应的第二掩码数组,进行交叉对比,得到所述目标页面中各判决电压引入的闪存错误数;
其中本装置还包括:
序列确定模块,用于确定所述第一掩码数组中所述写入数据的比特值对应的目标二进制位序列,以及确定所述第二掩码数组中所述写入数据的比特值对应的目标二进制位序列;
掩码标记模块,用于在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第一掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第一掩码数组;
掩码填充模块,用于在所述目标二进制位序列上所述比特值对应的序列位置标记预设第一掩码,在所述第二掩码数组中除所述目标二进制位序列之外的其他二进制位序列上所述比特值对应的序列位置标记预设第二掩码,以得到标记完成的所述第二掩码数组;
其中,所述交叉对比模块包括:
交叉异或操作子模块,用于将所述写入数据对应的第一掩码数组中的二进制位序列,与所述读出数据对应的第二掩码数组中的二进制位序列进行交叉异或操作,得到异或值序列组成的异或数组;
闪存错误数确定模块,用于依据所述异或数组确定所述目标页面中各判决电压引入的闪存错误数。
16.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至14中任一项所述的闪存错误数的测试方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至14中任一项所述的闪存错误数的测试方法的步骤。
CN202310351728.8A 2023-04-04 2023-04-04 闪存错误数的测试方法、装置、电子设备和存储介质 Active CN116072206B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310351728.8A CN116072206B (zh) 2023-04-04 2023-04-04 闪存错误数的测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310351728.8A CN116072206B (zh) 2023-04-04 2023-04-04 闪存错误数的测试方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN116072206A CN116072206A (zh) 2023-05-05
CN116072206B true CN116072206B (zh) 2023-07-14

Family

ID=86170092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310351728.8A Active CN116072206B (zh) 2023-04-04 2023-04-04 闪存错误数的测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116072206B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473146B (zh) * 2012-06-06 2017-04-19 慧荣科技股份有限公司 存储器控制方法、存储器控制器以及电子装置
CN106445725A (zh) * 2016-09-20 2017-02-22 华中科技大学 一种闪存错误模式的测试方法和系统
CN114220470A (zh) * 2021-11-04 2022-03-22 浙江大华存储科技有限公司 一种闪存颗粒筛选方法、终端及计算机可读存储介质

Also Published As

Publication number Publication date
CN116072206A (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
US11334413B2 (en) Estimating an error rate associated with memory
KR101981355B1 (ko) 메모리 시스템들을 위한 소프트 정보 생성
KR101138120B1 (ko) 치엔 검색 장치 및 치엔 검색 방법
US9064594B2 (en) Methods and apparatus for soft data generation for memory devices based on performance factor adjustment
CN103843067B (zh) 用于非易失性存储器的片上动态读取
US9552888B2 (en) Methods, devices, and systems for data sensing
TWI596616B (zh) 胞元間干擾的消除
US20130013870A1 (en) Differential vector storage for non-volatile memory
US20190035485A1 (en) Syndrome Weight Based Evaluation of Memory Cells Performance Using Multiple Sense Operations
US9251900B2 (en) Data scrambling based on transition characteristic of the data
US8699269B1 (en) Systems and methods for improving error distributions in multi-level cell memory systems
US10741212B2 (en) Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders
US20160092284A1 (en) Estimating flash quality using selective error emphasis
CN111078462B (zh) 数据校验方法及电路
CN111538621B (zh) 针对位线故障的软芯片猎杀恢复
US20210067178A1 (en) Method for selectively inverting words to be written to a memory and device for implementing same
CN116072206B (zh) 闪存错误数的测试方法、装置、电子设备和存储介质
CN113419688B (zh) 一种mlc芯片的错误率分析方法、系统及装置
CN110111829A (zh) 一种闪存信道校正的方法、装置和介质
CN117497018A (zh) 非易失性存储设备中读取参考电压的调整方法和存储系统控制器
US9202580B2 (en) Level-estimation in multi-level cell memory
CN116665745A (zh) 一种闪存读取方法及装置
CN116524977A (zh) 存储器系统和存储器阵列的操作方法
LOKANATH et al. Low-Complexity Reliability Based Fault Detection and Correction Circuits
Kotaki et al. A Class of q-Ary Unidirectional Error Correcting Codes for MLC Flash Memories

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