CN113311989A - 一种基于并行使用的双片nand flash坏块管理方法 - Google Patents
一种基于并行使用的双片nand flash坏块管理方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
技术领域
本发明涉及存储技术领域,特别涉及一种基于并行使用的双片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的物理擦除块地址。
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)
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 |
-
2020
- 2020-02-26 CN CN202010118410.1A patent/CN113311989B/zh active Active
Patent Citations (11)
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 |