CN113311989A - 一种基于并行使用的双片nand flash坏块管理方法 - Google Patents

一种基于并行使用的双片nand flash坏块管理方法 Download PDF

Info

Publication number
CN113311989A
CN113311989A CN202010118410.1A CN202010118410A CN113311989A CN 113311989 A CN113311989 A CN 113311989A CN 202010118410 A CN202010118410 A CN 202010118410A CN 113311989 A CN113311989 A CN 113311989A
Authority
CN
China
Prior art keywords
block
nand flash
bad
bad block
blocks
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
CN202010118410.1A
Other languages
English (en)
Other versions
CN113311989B (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.)
Beijing Ingenic Semiconductor Co Ltd
Original Assignee
Beijing Ingenic Semiconductor 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 Beijing Ingenic Semiconductor Co Ltd filed Critical Beijing Ingenic Semiconductor Co Ltd
Priority to CN202010118410.1A priority Critical patent/CN113311989B/zh
Publication of CN113311989A publication Critical patent/CN113311989A/zh
Application granted granted Critical
Publication of CN113311989B publication Critical patent/CN113311989B/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/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]
    • 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

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

Abstract

本发明提供一种基于并行使用的双片NAND FLASH坏块管理方法,包括以下步骤:S1,在启动过程中,分别对两片NAND FLASH的所有物理擦除块进行扫描,对应构建两个链表,分别用表a和表b表示,每个链表对象至少包含“块序列号”信息,根据坏块信息创建BBT;S2,建立逻辑擦除块和物理擦除块之间的关联,创建逻辑块关联表,用表p表示,表中每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号;S3,如果在使用过程中产生坏块,BBT标记坏块完成后,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,然后去尾节点倒序遍历坏块所在的NAND FLASH中纯净的块将表p中对应的坏块替换。通过本发明使并行的双片NAND FLASH的存储空间利用率达最大化。

Description

一种基于并行使用的双片NAND FLASH坏块管理方法
技术领域
本发明涉及存储技术领域,特别涉及一种基于并行使用的双片NANDFLASH坏块管理方法。
背景技术
随着科技的不断发展,特别是NAND FLASH技术的发展。NAND FLASH具有每bit存储较高的性价比,使其广泛的应用在嵌入式***中,但是由于制作工艺问题,NAND FLASH出厂自带坏块,因此一定要配合合理的坏块管理机制才能稳定高效的使用。
Linux内核的nand逻辑驱动中提供了一套NAND FLASH的坏块管理方案,可以运用于独立的一个或多个NAND FLASH的坏块管理,并在内存创建一个或多个BBT或在每个NANDFLASH中创建一个BBT。
NAND FLASH双片并行使用,在应用层可以视为去操作一个大的NANDFLASH,相比较于使用单片NAND FLASH,可以使存储总空间扩大一倍,速度提升一倍;并且每片都有各自的硬件ECC,同时也保证了NAND FLASH中数据的可靠性。但是由于是并行使用,一个数据按比特拆分成两部分,分别存储于两片并行使用的NAND FLASH中,两片NAND FLASH的物理块之间存在依赖关系,因此坏块管理变得复杂。
当前针对并行双片NAND FLASH的坏块管理,只是在逻辑层被认为是一整片NANDFLASH,将两片NAND FLASH的物理擦除块序列号进行一对一的简单关联,使用linux内核提供的坏块管理机制,在内存或是在两片NAND FLASH的其中一片上建立一个BBT进行管理。两个物理擦除块中的任意一块被标记成坏块,逻辑层的一整个逻辑擦除块就被标记成坏块,在每次读写过程中,会跳过该逻辑擦除块。
现有技术中的缺陷在于:
当前针对并行双片NAND FLASH的坏块管理,只要两个关联物理擦除块中,有一个块被标记成坏块之后,逻辑层对应的一个逻辑擦除块就变得不可靠,因此两个物理块都不能使用,因此就会造成一个物理擦除块的浪费。
现有技术中的常用术语包括:
NAND FLASH:一种非易失性的存储介质。
ECC:(Error Correcting Code)错误检查和纠正。
BBT:(Bad Block Table)坏块表。
MTD:(memory technology device内存技术设备)是用于访问memory设备(ROM、FLASH)的Linux的子***。
NAND逻辑驱动:linux内核中提供的一套对NAND FLASH的逻辑操作代码。物理擦除块:NAND FLASH的最小擦除单位。
逻辑擦除块:根据物理擦除块映射出来的抽象存储空间,用户层访问的最小擦除单位。
纯净块:NAND FLASH擦除过,数据为全0xff的块。
发明内容
为了解决上述问题,本发明的目的在于:通过本发明的方法在逻辑层建立一个并行的双片NAND FLASH的坏块管理机制,以实现物理擦除块的动态关联和坏块的管理,使并行的双片NAND FLASH的存储空间利用率达最大化,如图2所示。
具体地,本发明提供一种基于并行使用的双片NAND FLASH坏块管理方法,包括以下步骤:
S1,在启动过程中,分别对两片NAND FLASH的所有物理擦除块进行扫描,对应构建两个链表,分别用表a和表b表示,每个链表对象至少包含“块序列号”信息,根据坏块信息创建BBT;
S2,建立逻辑擦除块和物理擦除块之间的关联,创建逻辑块关联表,用表p表示,表中每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号;
S3,如果在使用过程中产生坏块,BBT标记坏块完成后,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,然后去尾节点倒序遍历坏块所在的NANDFLASH中纯净的块将表p中对应的坏块替换。
由此,本申请的优势在于:通过本方法可以很容易地对并行使用的双片NANDFLASH坏块进行管理,避免物理擦除块的浪费,方法简单,成本低廉。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是现有技术并行双片NAND FLASH的坏块的示意图。
图2是本发明涉及的坏块管理机制的分层示意图。
图3是本发明方法的流程示意图。
图4是本发明方法的步骤S1中的示意图。
图5是本发明方法的步骤S2中的示意图。
图6是本发明方法的步骤S3中的示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
如图3所示,本发明涉及一种基于并行使用的双片NAND FLASH坏块管理方法,包括以下步骤:
S1,在启动过程中,分别对两片NAND FLASH的所有物理擦除块进行扫描,对应构建两个链表,分别用表a和表b表示,每个链表对象至少包含“块序列号”信息,根据坏块信息创建BBT;
S2,建立逻辑擦除块和物理擦除块之间的关联,创建逻辑块关联表,用表p表示,表中每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号;
S3,如果在使用过程中产生坏块,BBT标记坏块完成后,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,然后去尾节点倒序遍历坏块所在的NANDFLASH中纯净的块将表p中对应的坏块替换。
所述的步骤S1中,每个链表对象还包括“块是否有效、是否为纯净块”信息。
所述的步骤S1中,同时记录有效块的个数,分别表示为a_num和b_num,最大逻辑擦除块数。
所述的最大逻辑擦除块数是a_num和b_num中的最小的个数值。
所述的步骤S3中,同时更新a_num、b_num和最大逻辑擦除块数。
并行使用的双片NAND FLASH坏块管理方法在逻辑层建立。
所述步骤S2中,只有表p对MTD层是可见的,MTD层可以直接访问逻辑擦除块地址,通过表p找到对应的两片NAND FLASH的物理擦除块地址。
进一步地,本发明还可以进一步解释为:
如图4所示,第一部分,在启动过程中,需要分别对两片NAND FLASH的所有物理擦除块进行扫描,构建两个链表(表a和表b),每个链表对象包含“块序列号、块是否有效、是否为纯净块”等信息;根据坏块信息创建BBT,同时记录有效块的个数a_num和b_num。
如图5所示,第二部分,建立逻辑擦除块和物理擦除块之间的关联。此时逻辑擦除块总数就等于a_num和b_num中较小的值,创建逻辑块关联表(表p),每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号,只有表p对MTD层是可见的。MTD层可以直接访问逻辑擦除块地址,通过表p找到对应的两片NAND FLASH的物理擦除块地址。
如图6所示,第三部分,如果在使用过程中产生坏块,标记坏块完成后,根据逻辑擦除块的块序列号,更新表a或表b中的有效标志为无效,然后去尾节点倒序遍历坏块所在的NAND FLASH中是否还有纯净的块将表p中的坏块替换,同时更新a_num、b_num和最大逻辑擦除块数。具体地,FLASH(a)中扫描出坏块1,FLASH(b)中扫描出坏块m,从尾节点处倒序,FLASH(a)中尾节点m是好块,对应表a中尾节点是好块m,则FLASH(b)中,对应的好块1进一步改对应FLASH(a)中的好块n,表a和表b相应的替换。
本发明的技术方案就是一种并行双片NAND FLASH的坏块管理的方案,以实现物理擦除块的动态关联和坏块的管理。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,包括以下步骤:
S1,在启动过程中,分别对两片NAND FLASH的所有物理擦除块进行扫描,对应构建两个链表,分别用表a和表b表示,每个链表对象至少包含“块序列号”信息,根据坏块信息创建BBT;
S2,建立逻辑擦除块和物理擦除块之间的关联,创建逻辑块关联表,用表p表示,表中每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号;
S3,如果在使用过程中产生坏块,BBT标记坏块完成后,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,然后去尾节点倒序遍历坏块所在的NAND FLASH中纯净的块将表p中对应的坏块替换。
2.根据权利要求1所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,所述的步骤S1中,每个链表对象还包括“块是否有效、是否为纯净块”信息。
3.根据权利要求1所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,所述的步骤S1中,同时记录有效块的个数,分别表示为a_num和b_num,最大逻辑擦除块数。
4.根据权利要求3所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,所述的最大逻辑擦除块数是a_num和b_num中的最小的个数值。
5.根据权利要求1所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,所述的步骤S3中,同时更新a_num、b_num和最大逻辑擦除块数。
6.根据权利要求1所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,并行使用的双片NAND FLASH坏块管理方法在逻辑层建立。
7.根据权利要求1所述的一种基于并行使用的双片NAND FLASH坏块管理方法,其特征在于,所述步骤S2中,只有表p对MTD层是可见的,MTD层可以直接访问逻辑擦除块地址,通过表p找到对应的两片NAND FLASH的物理擦除块地址。
CN202010118410.1A 2020-02-26 2020-02-26 一种基于并行使用的双片nand flash坏块管理方法 Active CN113311989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010118410.1A CN113311989B (zh) 2020-02-26 2020-02-26 一种基于并行使用的双片nand flash坏块管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010118410.1A CN113311989B (zh) 2020-02-26 2020-02-26 一种基于并行使用的双片nand flash坏块管理方法

Publications (2)

Publication Number Publication Date
CN113311989A true CN113311989A (zh) 2021-08-27
CN113311989B CN113311989B (zh) 2023-09-22

Family

ID=77369851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010118410.1A Active CN113311989B (zh) 2020-02-26 2020-02-26 一种基于并行使用的双片nand flash坏块管理方法

Country Status (1)

Country Link
CN (1) CN113311989B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041210A1 (en) * 2001-08-24 2003-02-27 Micron Technology, Inc. Erase block management
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
US20070245064A1 (en) * 2006-04-15 2007-10-18 Yi-Chun Liu Method Of Flash Memory Management
JP2008123314A (ja) * 2006-11-14 2008-05-29 Nec Electronics Corp 半導体記憶装置への情報記録方法及び情報記録システム
US20090119450A1 (en) * 2007-11-06 2009-05-07 Saeki Shusuke Memory device, memory management method, and program
CN101571831A (zh) * 2008-04-30 2009-11-04 国际商业机器公司 存储器子***及管理方法、包含该子***的计算机***
CN101710237A (zh) * 2008-12-30 2010-05-19 深圳市江波龙电子有限公司 以闪存为存储介质的设备生产流程
US20130346671A1 (en) * 2012-06-22 2013-12-26 Winbond Electronics Corporation On-Chip Bad Block Management for NAND Flash Memory
CN104199619A (zh) * 2014-08-18 2014-12-10 北京君正集成电路股份有限公司 一种在nand中处理数据的方法及装置
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041210A1 (en) * 2001-08-24 2003-02-27 Micron Technology, Inc. Erase block management
US20070245064A1 (en) * 2006-04-15 2007-10-18 Yi-Chun Liu Method Of Flash Memory Management
CN1932778A (zh) * 2006-07-23 2007-03-21 海信集团有限公司 一种对nand flash存储器进行虚拟空间管理的方法
JP2008123314A (ja) * 2006-11-14 2008-05-29 Nec Electronics Corp 半導体記憶装置への情報記録方法及び情報記録システム
US20090119450A1 (en) * 2007-11-06 2009-05-07 Saeki Shusuke Memory device, memory management method, and program
CN101571831A (zh) * 2008-04-30 2009-11-04 国际商业机器公司 存储器子***及管理方法、包含该子***的计算机***
CN101710237A (zh) * 2008-12-30 2010-05-19 深圳市江波龙电子有限公司 以闪存为存储介质的设备生产流程
US20130346671A1 (en) * 2012-06-22 2013-12-26 Winbond Electronics Corporation On-Chip Bad Block Management for NAND Flash Memory
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
CN104199619A (zh) * 2014-08-18 2014-12-10 北京君正集成电路股份有限公司 一种在nand中处理数据的方法及装置
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置

Also Published As

Publication number Publication date
CN113311989B (zh) 2023-09-22

Similar Documents

Publication Publication Date Title
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
JP4688584B2 (ja) ストレージ装置
US8028120B2 (en) System with flash memory device and data recovery method thereof
JP4954974B2 (ja) 少なくとも一つの共通データi/oバスに接続された複数の不揮発性メモリ中における論理データ・ブロックをフラッシュ・ブロックに記憶する方法およびシステム
US8341336B2 (en) Region-based management method of non-volatile memory
US8356136B2 (en) Block management method of a non-volatile memory
US8214578B2 (en) Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
US20110289266A1 (en) Garbage collection in storage devices based on flash memories
US20100191897A1 (en) System and method for wear leveling in a data storage device
US8631310B2 (en) Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
CN103270500A (zh) 事务日志恢复
TW200951961A (en) Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US9037814B2 (en) Flash memory management method and flash memory controller and storage system using the same
CN102782654A (zh) 用于执行回拷操作的方法和控制器
KR20030011230A (ko) 비휘발성 기억 장치 및 그의 재기입 제어 방법
CN101625897B (zh) 用于快闪存储器的数据写入方法、储存***与控制器
CN104220991A (zh) 用于允许数据在nand闪存上的有效存储的架构
US11809328B2 (en) Control method of flash memory controller and associated flash memory controller and storage device
US8074128B2 (en) Block management and replacement method, flash memory storage system and controller using the same
WO2020028812A1 (en) Power loss protection and recovery
CN101308702B (zh) 适用于闪存的数据结构及其数据写入方法和数据读取方法
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
CN109739681B (zh) 具有共享缓冲器架构的存储器***及其操作方法
CN101566969B (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