CN113391755B - 一种并行双片nand flash中物理擦除块动态关联的方法 - Google Patents
一种并行双片nand flash中物理擦除块动态关联的方法 Download PDFInfo
- 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
Links
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- 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/10—Address translation
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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)
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具有每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的物理擦除块地址。
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)
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)
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 |
-
2020
- 2020-02-26 CN CN202010118401.2A patent/CN113391755B/zh active Active
Patent Citations (6)
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 |