CN105607961B - 一种扫描错误位的方法 - Google Patents
一种扫描错误位的方法 Download PDFInfo
- Publication number
- CN105607961B CN105607961B CN201510952181.2A CN201510952181A CN105607961B CN 105607961 B CN105607961 B CN 105607961B CN 201510952181 A CN201510952181 A CN 201510952181A CN 105607961 B CN105607961 B CN 105607961B
- Authority
- CN
- China
- Prior art keywords
- data subregion
- data
- error bit
- subregion
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种扫描错误位的方法,包括:S1、将存储单元的第一数据分区平均分成N个相等的第二数据分区,S2、由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数;S3、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S4,否则执行步骤S5;S4、对所述存储单元进行一次编程操作,返回执行步骤S3;S5、记录此时第三数据分区的实际错误位个数,进而可以通过修改设定条件来调整存储芯片的合格率,并且控制器可以根据最终统计结果来调整自己的ECC所对应的数据区域以及纠错能力,从而获得更好的写性能。
Description
技术领域
本发明实施例涉及存储技术领域,具体涉及一种扫描错误位的方法。
背景技术
非易失闪存介质(nor flash/nand flash)是一种很常见的存储芯片,兼有随机存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)的优点,数据掉电不会丢失,是一种可在系统进行电擦写的存储器,同时它的高集成度和低成本使它成为市场主流。Flash芯片是由内部成千上万个存储单元组成的,多个存储单元构成页,多个页组成块,正是由于该特殊的物理结构,在nor flash/nand flash中是以页为单位进行读写数据,以块为单位进行擦除数据的。
由于存储芯片的各种串扰的特性,在使用过程中会出现错误位,为了保证系统工作的稳定性,需要外加错误检查与纠正(Error Checking and Correcting,ECC)来保证存储单元中数据的正确性。然而,外加的ECC一般是以512byte或者1kbyte为单位进行错误检查与纠正的,而芯片内部是以页为单位进行编程,且每个页又分为使用区和额外分区,如图1、图2、图3和图4为现有技术中存储单元的页数据分区示意图,如图1所示,共分为8个用户数据区和额外分区1以及额外分区2,额外分区1为额外数据存放区,额外分区2为存放ECC校验位区;图2为另一种均匀分区图,以一个数据分区加两个额外分区组成,一个分区为用户数据区,额外分区1为额外数据存放区,额外分区2为分区1对应的ECC校验位存放区;图3和图4为两种不均匀分区图;可见区域划分并不一定是ECC纠错单位的整数倍,而在扫描存储单元的错误位时就需要考虑到ECC纠错单位问题,在芯片测试时还需要给出每个纠错单位所需要的纠错能力,即初始允许的错误位个数,所以必须以ECC纠错单位对存储单元的错误位进行扫描,称之为单位扫描。但是实际的控制器在使用ECC时会按照自己的需求排列内存数据和存放ECC,测试时无法根据存储单元中错误位的个数设置相应的测试条件,如果测试条件设置的过于宽松,给出的ECC纠错能力和存储单元的实际读周期就无法匹配,如果测试条件设置的过于紧,则会影响存储芯片的良品率。
因此,有必要开发一种能对存储单元中错误位的分布状况进行扫描统计的方法。
发明内容
本发明提供一种扫描错误位的方法,以对存储单元中的错误位个数进行扫描统计。
该方法包括:
S1、将存储单元的第一数据分区平均分成N个相等的第二数据分区,其中,N为正整数;
S2、由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数;
S3、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S4,否则执行步骤S5;
S4、对所述存储单元进行一次编程操作,返回执行步骤S3;
S5、记录此时第三数据分区的实际错误位个数。
示例性的,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,包括:
首先选中一个第一数据分区中的所有第二数据分区组成第三数据分区,对第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S3;
按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成第三数据分区,对所述第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S3。
本发明实施例提供的一种扫描错误位的方法,通过将存储单元的传统数据分区即第一数据分区平均分成N个相等的第二数据分区,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,并将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则对所述存储单元进行一次编程操作,直到满足设定条件,记录此时第三数据分区的实际错误位个数,从而可以保证各数据分区中的错误位个数比较平均,进而可以通过修改设定条件来调整存储芯片的合格率,并且控制器可以根据存储单元的各数据分区的实际错误位个数的最终统计结果来调整自己的ECC所对应的数据区域以及纠错能力,从而获得更好的写性能。
附图说明
图1是现有技术中一种存储单元的页数据分区示意图1;
图2是现有技术中一种存储单元的页数据分区示意图2;
图3是现有技术中一种存储单元的页数据分区示意图3;
图4是现有技术中一种存储单元的页数据分区示意图4;
图5是本发明实施例一中的一种扫描错误位的方法流程图;
图6是本发明实施例二中的一种扫描错误位的方法流程图;
图7是本发明实施例三中的一种扫描分区示意图;
图8是本发明实施例三中的一种局部放大扫描分区示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图5为本发明实施例一提供的一种扫描错误位的方法流程图,本实施例可适用于对存储单元的数据分区中的错误位个数进行统计的情况。参加图5,本实施例提供的扫描错误位的方法具体包括如下步骤:
S1、将存储单元的第一数据分区平均分成N个相等的第二数据分区,其中,N为正整数;
S2、由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数;
优选的,由所述第二数据分区组成第三数据分区具体为,每四个第二数据分区组成一个第三数据分区,当然还可以是每五个第二数据分区组成一个第三数据分区,此处不对其进行限定。
其中,允许错误位个数根据存储芯片的制作工艺进行设定。
S3、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S4,否则执行步骤S5;
S4、对所述存储单元进行一次编程操作,返回执行步骤S3;
上述操作中,需重复执行步骤S3,直至满足设定条件为止,设定条件可以为所述实际错误位个数小于或者等于所述允许错误位个数。
需要说明的是,对所述存储单元进行一次编程操作,存储单元的实际错误位个数就会发生改变。所述设定条件可以是所述第三数据分区的实际错误位个数小于或者等于所述允许错误位个数。
S5、记录此时第三数据分区的实际错误位个数。
记录此时第三数据分区的实际错误位个数的目的:一方面是在对存储芯片进行测试时,根据所述实际错误位个数的改变设定条件,来改变存储芯片的合格率,另一方面是为了让控制器根据所述第三数据分区的实际错误位个数来调整自己的ECC所对应的区域及纠错能力。
本发明实施例提供的一种扫描错误位的方法,通过将存储单元的传统数据分区即第一数据分区平均分成N个相等的第二数据分区,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,并将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则对所述存储单元进行一次编程操作,直到满足设定条件,记录此时第三数据分区的实际错误位个数,进而可以通过修改设定条件来调整存储芯片的合格率。
实施例二
图6为实施例二提供的一种扫描错误位的方法流程图,在上述实施例的基础上,本实施例中对步骤S2进行优化。这样优化的好处在于能够完成对所有第二数据分区的扫描。参见图6,本实施例提供的扫描错误位的方法具体可以包括如下:
S21、将存储单元的第一数据分区平均分成N个相等的第二数据分区,其中,N为正整数;
S221、首先选中一个第一数据分区中的所有第二数据分区组成第三数据分区,对第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S23;
S222、按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成第三数据分区,对所述第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S23;
S23、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S24,否则执行步骤S25;
S24、对所述存储单元进行一次编程操作,返回执行步骤S23;
S25、记录此时第三数据分区的实际错误位个数,返回步骤S222,直到将所有的第二数据分区扫描完成。
本发明实施例提供的一种扫描错误位的方法,通过将存储单元的传统数据分区即第一数据分区平均分成N个相等的第二数据分区,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,并将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则对所述存储单元进行一次编程操作,直到满足设定条件,记录此时第三数据分区的实际错误位个数,然后按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成新的第三数据分区,继续进行扫描,直到将所有的第三数据分区都扫描完成,从而可以保证各数据分区中的错误位个数比较平均,进而可以通过修改设定条件来调整存储芯片的合格率,并且控制器可以根据存储单元的各数据分区的实际错误位个数的最终统计结果来调整自己的ECC所对应的数据区域以及纠错能力,从而获得更好的写性能。
实施例三
图7为本发明实施例三提供的一种扫描分区示意图,在上述实施例的基础上,本实施例对如图1所示的现有技术中的一种存储单元的页数据分区进行扫描。参见图7,本实施例提供的扫描错误位的方法具体可以包括如下:
S31、将存储单元的第一数据分区平均分成N个相等的第二数据分区2,其中,N为正整数;
本实施例中的第一数据分区具体为图1所示的分区1、分区2、分区3、分区4、分区5、分区6、分区7、分区8、额外分区1、额外分区2;N取40。
S321、首先选中一个第一数据分区中的所有第二数据分区组成第三数据分区,对第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S33;
参见图7,首先,第一数据分区即分区1中的所有第二数据分区2组成了第三数据分区3。
S322、按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成第三数据分区,对所述第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S33;
参见图7,按第二数据分区2的排列顺序,向后移动一个第二数据分区2的位置,组成第三数据分区4、5、6。
参见图8所示的局部放大扫描分区示意图,因为对第三数据分区3和第三数据分区4进行扫描时,设置的允许错误位个数都相同,所以第二数据分区等份1和第二数据分区等份5出现的错误位个数相同。这样就保证了各数据分区中错误位个数出现的比较平均,进而可以通过修改设定条件来调整存储芯片的合格率,并且控制器可以根据存储单元的各数据分区的实际错误位个数的最终统计结果来调整自己的ECC所对应的数据区域以及纠错能力,从而获得更好的写性能。
S33、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S34,否则执行步骤S35;
S34、对所述存储单元进行一次编程操作,返回执行步骤S23;
S35、记录此时第三数据分区的实际错误位个数。
本发明实施例提供的一种扫描错误位的方法,通过将存储单元的传统数据分区即第一数据分区平均分成N个相等的第二数据分区,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,并将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则对所述存储单元进行一次编程操作,直到满足设定条件,记录此时第三数据分区的实际错误位个数,然后按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成新的第三数据分区,继续进行扫描,直到将所有的第三数据分区都扫描完成,从而可以保证各数据分区中的错误位个数比较平均,进而可以通过修改设定条件来调整存储芯片的合格率,并且控制器可以根据存储单元的各数据分区的实际错误位个数的最终统计结果来调整自己的ECC所对应的数据区域以及纠错能力,从而获得更好的写性能。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (1)
1.一种扫描错误位的方法,其特征在于,包括:
S1、将存储单元的第一数据分区平均分成N个相等的第二数据分区,其中,N为正整数;
S2、由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数;
S3、将所述第三数据分区的实际错误位个数与所述允许错误位个数进行比较,如果所述实际错误位个数大于所述允许错误位个数,则执行步骤S4,否则执行步骤S5;
S4、对所述存储单元进行一次编程操作,返回执行步骤S3;
S5、记录此时第三数据分区的实际错误位个数;
其中,由所述第二数据分区组成第三数据分区并对第三数据分区进行扫描,并设置允许错误位个数,包括:
首先选中一个第一数据分区中的所有第二数据分区组成第三数据分区,对第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S3;
按第二数据分区的排列顺序,向后移动一个第二数据分区的位置,组成第三数据分区,对所述第三数据分区进行扫描,并设置允许错误位个数,继续执行步骤S3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510952181.2A CN105607961B (zh) | 2015-12-17 | 2015-12-17 | 一种扫描错误位的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510952181.2A CN105607961B (zh) | 2015-12-17 | 2015-12-17 | 一种扫描错误位的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105607961A CN105607961A (zh) | 2016-05-25 |
CN105607961B true CN105607961B (zh) | 2019-03-08 |
Family
ID=55987914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510952181.2A Active CN105607961B (zh) | 2015-12-17 | 2015-12-17 | 一种扫描错误位的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105607961B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255633B (zh) * | 2016-12-28 | 2021-07-30 | 旺宏电子股份有限公司 | 存储控制方法、存储装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794622A (zh) * | 2010-02-10 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 存储设备的数据扫描方法和装置 |
CN101826368A (zh) * | 2009-04-08 | 2010-09-08 | 深圳市朗科科技股份有限公司 | 数据扫描方法和扫描装置 |
CN101937721A (zh) * | 2010-08-04 | 2011-01-05 | 武汉天喻信息产业股份有限公司 | 一种测试存储器件的方法 |
CN103295645A (zh) * | 2012-02-23 | 2013-09-11 | 安凯(广州)微电子技术有限公司 | 一种动态存储器的扫描检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013044005A1 (en) * | 2011-09-22 | 2013-03-28 | Violin Memory, Inc. | System and method for correcting errors in data using a compound code |
-
2015
- 2015-12-17 CN CN201510952181.2A patent/CN105607961B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826368A (zh) * | 2009-04-08 | 2010-09-08 | 深圳市朗科科技股份有限公司 | 数据扫描方法和扫描装置 |
CN101794622A (zh) * | 2010-02-10 | 2010-08-04 | 成都市华为赛门铁克科技有限公司 | 存储设备的数据扫描方法和装置 |
CN101937721A (zh) * | 2010-08-04 | 2011-01-05 | 武汉天喻信息产业股份有限公司 | 一种测试存储器件的方法 |
CN103295645A (zh) * | 2012-02-23 | 2013-09-11 | 安凯(广州)微电子技术有限公司 | 一种动态存储器的扫描检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105607961A (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106158033B (zh) | 存储器电路及其操作方法 | |
KR101069004B1 (ko) | 플래시 메모리 소자의 프로그램 방법 | |
TW201346908A (zh) | 用於類比記憶體單元之增強之程式化及抹除方案 | |
CN108694098A (zh) | 对于存储设备的不同存储器区域的比特顺序修改 | |
DE102017114078A1 (de) | Fehlerabschwächung für 3d-nand-flash-speicher | |
US10642747B1 (en) | Virtual flash system | |
US9437311B1 (en) | Flash memory apparatus and initialization method for programming operation thereof | |
CN110010183A (zh) | 执行擦除操作的设备及方法 | |
CN109716282A (zh) | 用于编程存储器系统的方法 | |
TWI474323B (zh) | 存取非揮發性記憶體之方法 | |
CN105607961B (zh) | 一种扫描错误位的方法 | |
CN111276176A (zh) | 一种三维堆叠闪存单元阈值电压分布模型构建方法 | |
US20200273529A1 (en) | Programming A Memory Device | |
KR101923811B1 (ko) | 메모리 장치 | |
CN107562640B (zh) | 一种信息处理方法、固态硬盘及电子设备 | |
CN103714861B (zh) | 存储器故障诊断装置、存储器故障诊断方法 | |
CN106971757A (zh) | 一种检验Nand Flash质量的方法及系统 | |
US20190332295A1 (en) | Method, data storage system, and computer-readable recording medium for disk array data distribution | |
TW201346909A (zh) | 用於類比記憶體單元之程式化與抹除方案 | |
US9715928B2 (en) | Page programming sequences and assignment schemes for a memory device | |
US20180336130A1 (en) | Method and system for implementing a non-volatile counter using non-volatile memory | |
US20130100752A1 (en) | Method of restoring reconstructed memory spaces | |
CN105405468B (zh) | 存储器测试方法 | |
Tabrizi et al. | Improving NAND flash read performance through learning | |
CN106328202A (zh) | 闪存装置及数据擦除方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Patentee after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Patentee before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
CP03 | Change of name, title or address |