CN112540720A - 闪存设备及闪存控制方法 - Google Patents

闪存设备及闪存控制方法 Download PDF

Info

Publication number
CN112540720A
CN112540720A CN201910900323.9A CN201910900323A CN112540720A CN 112540720 A CN112540720 A CN 112540720A CN 201910900323 A CN201910900323 A CN 201910900323A CN 112540720 A CN112540720 A CN 112540720A
Authority
CN
China
Prior art keywords
block
flash memory
controller
columns
bad
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
CN201910900323.9A
Other languages
English (en)
Other versions
CN112540720B (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.)
Hosin Global Electronics Co Ltd
Original Assignee
Hosin Global Electronics 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 Hosin Global Electronics Co Ltd filed Critical Hosin Global Electronics Co Ltd
Priority to CN201910900323.9A priority Critical patent/CN112540720B/zh
Publication of CN112540720A publication Critical patent/CN112540720A/zh
Application granted granted Critical
Publication of CN112540720B publication Critical patent/CN112540720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种闪存设备及闪存控制方法。闪存设备包括:控制器;以及存储单元模块,耦合到控制器,存储单元模块包括多个区块。控制器在闪存设备开卡时选取多个区块的第一区块。控制器使用多个测试数据对第一区块进行坏列判断操作,并建立对应第一区块的坏列参考表,坏列参考表包括第一区块的多个列中的部分坏列的信息。闪存设备在开卡完毕后,当控制器接收对应第一区块的写入命令时,控制器只将对应写入命令的有效数据写入部分坏列以外的多个列。如此可增加闪存存储数据的稳定性。

Description

闪存设备及闪存控制方法
技术领域
本发明涉及一种闪存设备及闪存控制方法,尤其涉及一种提高闪存读写稳定性的闪存设备及闪存控制方法。
背景技术
闪存在生产、运送或者封装过程中有可能产生一些不稳定的列。这些不稳定的列在主控存取数据到闪存时就会增加纠错码(ECC)不可纠错的风险,而降低了闪存读写稳定性。因此,如何提高闪存读写稳定性是本领域技术人员应致力的目标。
发明内容
本发明提供一种闪存设备及闪存控制方法,提高闪存读写稳定性。
本发明提出一种闪存设备,包括:控制器;以及存储单元模块,耦合到控制器,存储单元模块包括多个区块。控制器在闪存设备开卡时选取多个区块的第一区块。控制器使用多个测试数据对第一区块进行坏列判断操作,并建立对应第一区块的坏列参考表,坏列参考表包括第一区块的多个列中的部分坏列的信息。闪存设备在开卡完毕后,当控制器接收对应第一区块的写入命令时,控制器只将对应写入命令的有效数据写入部分坏列以外的多个列。
本发明提出一种闪存控制方法,适用于闪存设备。闪存设备包括控制器及存储单元模块耦合到控制器。存储单元模块包括多个区块。闪存控制方法包括:控制器在闪存设备开卡时选取多个区块的第一区块;控制器使用多个测试数据对第一区块进行坏列判断操作,并建立对应第一区块的坏列参考表,坏列参考表包括第一区块的多个列中的部分坏列的信息;以及闪存设备在开卡完毕后,当控制器接收对应第一区块的写入命令时,控制器只将对应写入命令的有效数据写入部分坏列以外的多个列。
基于上述,本发明实施例所提出的闪存设备及闪存控制方法会在闪存设备开卡时使用多个数据对闪存设备的区块进行坏列判断操作并建立坏列参考表。当闪存设备控制器在开卡完毕后接收写入命令时,控制器只将对应写入命令的有效数据写入部分坏列以外的多个列。通过坏列参考表把出错率高的列跳掉不做有效数据存储,可以提高闪存的读写稳定性。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所示附图作详细说明如下。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1为根据本发明一实施例的闪存设备的方块图;
图2为根据本发明一实施例的闪存控制方法的示意图;
图3为根据本发明一实施例的闪存控制方法的流程图。
附图标号说明:
100:闪存设备;
110:控制器;
120:存储单元模块;
210:客户数据;
220:坏列参考表;
S301~S308:闪存控制方法的步骤。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同组件符号在附图和描述中用来表示相同或相似部分。
图1为根据本发明一实施例的闪存设备的方块图。图2为根据本发明一实施例的闪存控制方法的示意图。
请同时参照图1及图2,本发明一实施例的闪存设备100包括控制器110及存储单元模块120。存储单元模块120耦合到控制器110。存储单元模块120包括多个区块且每个区块包括多个页面。每个区块包括多个列,且每个列可定义为区块的一或多个页面。每个区块中的每个列包括的页面数量相同。当控制器110接收客户数据210的写入操作时,控制器110会先查询坏列参考表220来滤除写入区块的坏列,让写入区块的坏列不写有效数据。坏列参考表220的建立方式将在下文中详细说明。
在一实施例中,控制器110在闪存设备100开卡时选取多个区块的第一区块。控制器110使用多个测试数据(或称为测试图案、测试模式)对第一区块进行坏列判断操作,并建立对应第一区块的坏列参考表220,坏列参考表220包括第一区块的多个列中的部分坏列的信息,多个测试数据各自不同。闪存设备110在开卡完毕后,当控制器110接收对应第一区块的写入命令时,控制器110只将对应写入命令的有效数据写入部分坏列以外的多个列。在一实施例中,控制器110可以对存储单元模块120至少部分区块或所有区块建立坏列参考表220,并且根据每个区块对应的坏列参考表220建立坏列参考总表。
在一实施例中,坏列判断操作包括依序使用多个测试数据对第一区块进行以下操作:对第一区块进行擦除操作;无效控制器110的纠错(Error Correction)机制,再用多个测试数据的其中一个写满第一区块;以及读取第一区块以获得读取数据,并累计多个测试数据的其中一个与读取数据不同的列的坏列计数。坏列判断操作还包括挑选第一区块中坏列计数大于门坎值的部分坏列,来建立坏列参考表。无效控制器110的纠错机制代表在写入数据时不会对数据进行纠错编码操作也不会产生纠错码(Error Correction Code,ECC),因此会将测试数据写满第一区块。在另一实施例中,坏列判断操作也可以挑选第一区块中坏列计数最大值的部分坏列,来建立坏列参考表。
值得注意的是,在控制器110对第一区块进行擦除操作之后,控制器110可先读取擦除后的第一区块的纠错码(ECC)状况和原始数据状况,再用多个测试数据的其中一个写满第一区块。
图3为根据本发明一实施例的闪存控制方法的流程图。
请同时参照图3及图1-2,在步骤S301中,选取区块。举例来说,控制器110在闪存设备100开卡时选取多个区块的第一区块。
步骤S302中,擦除区块。举例来说,控制器110对第一区块进行擦除操作。
步骤S303中,写入测试数据。举例来说,控制器110无效纠错机制,再用多个测试数据的其中一个写满第一区块。
步骤S304中,读取数据。举例来说,控制器110读取第一区块以获得读取数据。
步骤S305中,对比写入测试数据与读取数据。举例来说,控制器110累计多个测试数据的其中一个与读取数据不同的列的坏列计数。
步骤S306中,重复步骤S302到S305。举例来说,在多个测试数据还没依序测试完毕之前,控制器110重复步骤S302到S305。
步骤S307中,排序计算。举例来说,控制器110将区块中所有列的累计坏列计数进行排序,并且挑选坏列计数大于门坎值的部分坏列或直接挑选坏列计数最大的坏列。
步骤S308中,建立坏列参考表。举例来说,控制器110用挑选出的坏列计数大于门坎值的部分坏列或坏列计数最大的坏列来建立对应第一区块的坏列参考表220。
基于上述,本发明实施例所提出的闪存设备及闪存控制方法会在闪存设备开卡时使用多个数据对闪存设备的区块进行坏列判断操作并建立坏列参考表。当闪存设备控制器在开卡完毕后接收写入命令时,控制器只将对应写入命令的有效数据写入部分坏列以外的多个列。通过坏列参考表把出错率高的列跳掉不做有效数据存储,可以提高闪存的读写稳定性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种闪存设备,其特征在于,包括:
控制器;以及
存储单元模块,耦合到所述控制器,所述存储单元模块包括多个区块,其中
所述控制器在所述闪存设备开卡时选取所述多个区块的第一区块;
所述控制器使用多个测试数据对所述第一区块进行坏列判断操作,并建立对应所述第一区块的坏列参考表,所述坏列参考表包括所述第一区块的多个列中的部分坏列的信息;以及
所述闪存设备在开卡完毕后,当所述控制器接收对应所述第一区块的写入命令时,所述控制器只将对应所述写入命令的有效数据写入所述部分坏列以外的所述多个列。
2.根据权利要求1所述的闪存设备,其特征在于,所述坏列判断操作包括:
依序使用所述多个测试数据对所述第一区块进行以下操作:
对所述第一区块进行擦除操作;
无效所述控制器的纠错机制,再用其中一个所述多个测试数据写满所述第一区块;以及
读取所述第一区块以获得读取数据,并累计所述其中一个所述多个测试数据与所述读取数据不同的列的坏列计数;以及
挑选所述第一区块中所述坏列计数大于门坎值的所述部分坏列,来建立所述坏列参考表。
3.根据权利要求1所述的闪存设备,其特征在于,所述多个测试数据各自不同。
4.根据权利要求1所述的闪存设备,其特征在于,所述控制器根据每个所述区块对应的所述坏列参考表建立坏列参考总表。
5.根据权利要求1所述的闪存设备,其特征在于,所述第一区块的多个列的每一个列包括所述第一区块的一或多个页面。
6.一种闪存控制方法,适用于闪存设备,所述闪存设备包括控制器及存储单元模块耦合到所述控制器,所述存储单元模块包括多个区块,其特征在于,所述闪存控制方法包括:
所述控制器在所述闪存设备开卡时选取所述多个区块的第一区块;
所述控制器使用多个测试数据对所述第一区块进行坏列判断操作,并建立对应所述第一区块的坏列参考表,所述坏列参考表包括所述第一区块的多个列中的部分坏列的信息;以及
所述闪存设备在开卡完毕后,当所述控制器接收对应所述第一区块的写入命令时,所述控制器只将对应所述写入命令的有效数据写入所述部分坏列以外的所述多个列。
7.根据权利要求6所述的闪存控制方法,其特征在于,所述坏列判断操作包括:
依序使用所述多个测试数据对所述第一区块进行以下操作:
对所述第一区块进行擦除操作;
无效所述控制器的纠错机制,再用其中一个所述多个测试数据写满所述第一区块;以及
读取所述第一区块以获得读取数据,并累计所述其中一个所述多个测试数据与所述读取数据不同的列的坏列计数;以及
挑选所述第一区块中所述坏列计数大于门坎值的所述部分坏列,来建立所述坏列参考表。
8.根据权利要求6所述的闪存控制方法,其特征在于,所述多个测试数据各自不同。
9.根据权利要求6所述的闪存控制方法,其特征在于,所述控制器根据每个所述区块对应的所述坏列参考表建立坏列参考总表。
10.根据权利要求6所述的闪存控制方法,其特征在于,所述第一区块的多个列的每一个列包括所述第一区块的一或多个页面。
CN201910900323.9A 2019-09-23 2019-09-23 闪存设备及闪存控制方法 Active CN112540720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910900323.9A CN112540720B (zh) 2019-09-23 2019-09-23 闪存设备及闪存控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910900323.9A CN112540720B (zh) 2019-09-23 2019-09-23 闪存设备及闪存控制方法

Publications (2)

Publication Number Publication Date
CN112540720A true CN112540720A (zh) 2021-03-23
CN112540720B CN112540720B (zh) 2023-11-10

Family

ID=75012889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910900323.9A Active CN112540720B (zh) 2019-09-23 2019-09-23 闪存设备及闪存控制方法

Country Status (1)

Country Link
CN (1) CN112540720B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810068A (zh) * 2011-05-30 2012-12-05 三星电子株式会社 存储装置、存储系统和使存储装置虚拟化的方法
CN103092717A (zh) * 2013-01-18 2013-05-08 深圳市硅格半导体有限公司 闪存的数据处理方法及装置
CN103778968A (zh) * 2012-10-17 2014-05-07 太和科技股份有限公司 结合多张快闪记忆卡的固态硬盘的检测装置及其方法
US20150143188A1 (en) * 2013-11-15 2015-05-21 Silicon Motion, Inc. Methods for accessing a storage unit of a flash memory and apparatuses using the same
CN105679373A (zh) * 2015-12-31 2016-06-15 北京兆易创新科技股份有限公司 一种与非型闪存中坏列的处理方法、装置及与非型闪存
CN108665941A (zh) * 2017-04-01 2018-10-16 北京兆易创新科技股份有限公司 基于nand闪存的列修复方法、装置和nand存储设备
CN109783411A (zh) * 2018-12-20 2019-05-21 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810068A (zh) * 2011-05-30 2012-12-05 三星电子株式会社 存储装置、存储系统和使存储装置虚拟化的方法
CN103778968A (zh) * 2012-10-17 2014-05-07 太和科技股份有限公司 结合多张快闪记忆卡的固态硬盘的检测装置及其方法
CN103092717A (zh) * 2013-01-18 2013-05-08 深圳市硅格半导体有限公司 闪存的数据处理方法及装置
US20150143188A1 (en) * 2013-11-15 2015-05-21 Silicon Motion, Inc. Methods for accessing a storage unit of a flash memory and apparatuses using the same
CN105679373A (zh) * 2015-12-31 2016-06-15 北京兆易创新科技股份有限公司 一种与非型闪存中坏列的处理方法、装置及与非型闪存
CN108665941A (zh) * 2017-04-01 2018-10-16 北京兆易创新科技股份有限公司 基于nand闪存的列修复方法、装置和nand存储设备
CN109783411A (zh) * 2018-12-20 2019-05-21 成都旋极历通信息技术有限公司 一种基于fpga的flash阵列控制方法及控制器

Also Published As

Publication number Publication date
CN112540720B (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
US10656875B2 (en) Method for re-reading page data
CN110335635B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
CN110874187B (zh) 数据储存装置与数据处理方法
US7979737B2 (en) Method for accessing a Flash memory, and associated memory device and controller thereof
US20190227926A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
CN107179880B (zh) 储存装置、其控制单元、及可用于储存装置的数据搬移方法
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US20120166706A1 (en) Data management method, memory controller and embedded memory storage apparatus using the same
CN116880782B (zh) 一种内嵌式存储器及其测试方法
US20110093649A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
TW202027085A (zh) 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
US10340025B2 (en) Data-storage device and block-releasing method
US9928137B2 (en) Data storage device and error correction method
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN110007861A (zh) 一种数据读取方法和装置
CN116994631B (zh) 基于ecc的闪存颗粒多次筛选方法、控制器及介质
TWI442406B (zh) 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器
CN112540720B (zh) 闪存设备及闪存控制方法
CN107481764B (zh) 一种3D Nand Flash扫描检测方法和系统
US11106531B2 (en) Flash memory controller, storage device and reading method thereof
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
CN112486849B (zh) 闪存开卡程序的方法、闪存装置的闪存控制器及电子装置
CN110580130A (zh) 一种防止电源中断影响的将数据写入闪存模块的方法
CN117420965B (zh) 一种存储器及其控制方法
TWI718889B (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