CN113391755B - 一种并行双片nand flash中物理擦除块动态关联的方法 - Google Patents

一种并行双片nand flash中物理擦除块动态关联的方法 Download PDF

Info

Publication number
CN113391755B
CN113391755B CN202010118401.2A CN202010118401A CN113391755B CN 113391755 B CN113391755 B CN 113391755B CN 202010118401 A CN202010118401 A CN 202010118401A CN 113391755 B CN113391755 B CN 113391755B
Authority
CN
China
Prior art keywords
block
blocks
bad
flash
nand flash
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
CN202010118401.2A
Other languages
English (en)
Other versions
CN113391755A (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 CN202010118401.2A priority Critical patent/CN113391755B/zh
Publication of CN113391755A publication Critical patent/CN113391755A/zh
Application granted granted Critical
Publication of CN113391755B publication Critical patent/CN113391755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • G06F12/0276Generational garbage collection
    • 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/10Address translation
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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)

Abstract

本发明提供一种并行双片NAND FLASH中物理擦除块动态关联的方法,包括以下步骤:S1在启动过程中,分别对所有物理擦除块进行扫描,对应构建两个链表用表a和表b表示,每个链表对象至少包含“块序列号”信息,根据坏块信息创建BBT;S2建立逻辑擦除块和物理擦除块之间的关联,创建逻辑块关联表p,表中每个节点用来描述逻辑擦除块分别对应的两个NAND FLASH的物理擦除块的块序列号;S3如果在使用过程中产生坏块,标记两片FLASH中的坏块,当两片FLASH均出现坏块,且坏块在表a和表b中非一一对应,则对应表a中的FLASH的坏块由对应表b中的FLASH坏块的表a中的好块去重新对应,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,将表p中对应的坏块替换。

Description

一种并行双片NAND FLASH中物理擦除块动态关联的方法
技术领域
本发明涉及存储技术领域,特别涉及一种并行双片NAND FLASH中物理擦除块动态关联的方法。
背景技术
随着科技的不断发展,特别是NAND FLASH技术的发展。现有技术中,NAND FLASH具有每bit存储较高的性价比,使其广泛的应用在嵌入式系统中,但是由于制作工艺问题,NAND FLASH出厂自带坏块,因此一定要配合合理的坏块管理机制才能稳定高效的使用。
Linux内核的nand逻辑驱动中提供了一套NAND FLASH的坏块管理方案,可以运用于独立的一个或多个NAND FLASH的坏块管理,并在内存创建一个或多个BBT或在每个NANDFLASH中创建一个BBT。
NAND FLASH双片并行使用,在应用层可以视为去操作一个大的NAND FLASH,相比较于使用单片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,如果在使用过程中产生坏块,标记两片FLASH中的坏块,当两片FLASH均出现坏块,且两片FLASH的坏块在表a和表b中非一一对应,则对应表a中的FLASH的坏块由对应表b中的FLASH坏块的表a中的好块去重新对应,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,将表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,如果在使用过程中产生坏块,标记两片FLASH中的坏块,当两片FLASH均出现坏块,且两片FLASH的坏块在表a和表b中非一一对应,则对应表a中的FLASH的坏块由对应表b中的FLASH坏块的表a中的好块去重新对应,根据逻辑擦除块的块序列号,更新表a或表b中对应的有效标志为无效,将表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所示,第三部分,如果在使用过程中产生坏块,标记两片FLASH中的坏块,当两片FLASH均出现坏块,且坏块在表a和表b中非一一对应,则对应表a中的FLASH的坏块由对应表b中的FLASH坏块的表a中的好块去重新对应,如图,FLASH(a)中新增坏块1,则对应表a中的坏块1,FLASH(b)中新增坏块n,则对应表b中的坏块n,而表b中坏块n对应表a中的是好块n,则将表a中的好块n对应表b中的好块1,根据逻辑擦除块的块序列号,更新表a或表b中的有效标志为无效,同时更新a_num、b_num和最大逻辑擦除块数。
本发明的技术方案就是一种并行双片NAND FLASH的坏块管理的方案,以实现物理擦除块的动态关联和坏块的管理。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010118401.2A CN113391755B (zh) 2020-02-26 2020-02-26 一种并行双片nand flash中物理擦除块动态关联的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010118401.2A CN113391755B (zh) 2020-02-26 2020-02-26 一种并行双片nand flash中物理擦除块动态关联的方法

Publications (2)

Publication Number Publication Date
CN113391755A CN113391755A (zh) 2021-09-14
CN113391755B true CN113391755B (zh) 2023-09-22

Family

ID=77615268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010118401.2A Active CN113391755B (zh) 2020-02-26 2020-02-26 一种并行双片nand flash中物理擦除块动态关联的方法

Country Status (1)

Country Link
CN (1) CN113391755B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101178689A (zh) * 2007-12-06 2008-05-14 浙江科技学院 一种NAND Flash存储器的动态管理方法
CN101425041A (zh) * 2007-10-30 2009-05-06 安凯(广州)软件技术有限公司 在nand flash存储器上建立fat文件系统的优化方法
CN102568583A (zh) * 2011-12-19 2012-07-11 聂章龙 Freescale HCS12系列MCU的Flash存储器在线编程方法
CN104199619A (zh) * 2014-08-18 2014-12-10 北京君正集成电路股份有限公司 一种在nand中处理数据的方法及装置
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
CN110795044A (zh) * 2019-10-31 2020-02-14 深圳市友华通信技术有限公司 NAND Flash存储器的坏块管理方法和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059296A1 (en) * 2004-09-16 2006-03-16 M-Systems Flash Disk Pioneers, Ltd. Emulating small block size of flash memory
JP4535117B2 (ja) * 2007-11-06 2010-09-01 ソニー株式会社 メモリ装置、メモリ管理方法、およびプログラム
US8046530B2 (en) * 2008-10-02 2011-10-25 Infineon Technologies Ag Process and method for erase strategy in solid state disks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425041A (zh) * 2007-10-30 2009-05-06 安凯(广州)软件技术有限公司 在nand flash存储器上建立fat文件系统的优化方法
CN101178689A (zh) * 2007-12-06 2008-05-14 浙江科技学院 一种NAND Flash存储器的动态管理方法
CN102568583A (zh) * 2011-12-19 2012-07-11 聂章龙 Freescale HCS12系列MCU的Flash存储器在线编程方法
CN104199619A (zh) * 2014-08-18 2014-12-10 北京君正集成电路股份有限公司 一种在nand中处理数据的方法及装置
CN104778127A (zh) * 2015-03-25 2015-07-15 合肥格易集成电路有限公司 一种nand flash写数据的方法和装置
CN110795044A (zh) * 2019-10-31 2020-02-14 深圳市友华通信技术有限公司 NAND Flash存储器的坏块管理方法和系统

Also Published As

Publication number Publication date
CN113391755A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US9520992B2 (en) Logical-to-physical address translation for a removable data storage device
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US8037232B2 (en) Data protection method for power failure and controller using the same
US8453021B2 (en) Wear leveling in solid-state device
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
CN102549554B (zh) 基于条带的存储器操作
JP5089385B2 (ja) フラッシュファイル・システム内での仮想アドレスから物理アドレスへの変換
US20100131697A1 (en) Methods for tag-grouping of blocks in storage devices
US7287117B2 (en) Flash memory and mapping control apparatus and method for flash memory
US20100306447A1 (en) Data updating and recovering methods for a non-volatile memory array
TW200926182A (en) Memory apparatus and method for accessing a flash memory, and method of evenly using blocks of the flash memory
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN113391755B (zh) 一种并行双片nand flash中物理擦除块动态关联的方法
CN113311989B (zh) 一种基于并行使用的双片nand flash坏块管理方法
CN101566969B (zh) 提升非易失性存储器存储装置的管理效能的方法及控制器
TWI238937B (en) Method and system for remapping locations in memory
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR20230075334A (ko) 키-값 데이터 저장 디바이스를 위한 ecc 패리티 바이어싱
JP3670151B2 (ja) フラッシュメモリのアクセス方法、フラッシュメモリへアクセスするドライバを備えるシステム、および、フラッシュメモリ
JP3769395B2 (ja) 不揮発性メモリを使用した外部記憶装置
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
CN113311988A (zh) 一种确保nand flash中序列号和mac地址存储正确的方法

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