CN100538662C - 一种基于局部采样的存储器的磨损平衡方法 - Google Patents

一种基于局部采样的存储器的磨损平衡方法 Download PDF

Info

Publication number
CN100538662C
CN100538662C CNB2007101274530A CN200710127453A CN100538662C CN 100538662 C CN100538662 C CN 100538662C CN B2007101274530 A CNB2007101274530 A CN B2007101274530A CN 200710127453 A CN200710127453 A CN 200710127453A CN 100538662 C CN100538662 C CN 100538662C
Authority
CN
China
Prior art keywords
sample phase
storer
abrasion equilibration
zone
local sampling
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
CNB2007101274530A
Other languages
English (en)
Other versions
CN101067800A (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.)
Ju Li (Zhuhai) Microelectronics Co., Ltd
Original Assignee
Actions 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 Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CNB2007101274530A priority Critical patent/CN100538662C/zh
Publication of CN101067800A publication Critical patent/CN101067800A/zh
Priority to PCT/CN2008/070835 priority patent/WO2009006803A1/zh
Priority to US12/666,073 priority patent/US8296539B2/en
Priority to EP08734193.9A priority patent/EP2166456B1/en
Application granted granted Critical
Publication of CN100538662C publication Critical patent/CN100538662C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及了一种基于局部采样原理的存储器的磨损平衡实现方法,具体来讲是闪存的磨损平衡方法。本发明包括:建立闪存的生命周期模型;将整个生命周期按具体的使用规律分成一定个数的生命采样阶段;在某个采样阶段的终点,采集该采样阶段内的历史数据并进行分析,将任务最繁重的存储单元调配到最安静的区域,将最安静的区域对应的存储单元调配到任务最繁重的存储单元原先所在的区域。本发明可以达到磨损平衡,提高存储器的使用寿命,适用于所有易受损的存储器。

Description

一种基于局部采样的存储器的磨损平衡方法
技术领域
本发明涉及存储器的磨损平衡方法,具体来讲,是涉及一种基于局部采用的磨损平衡方法,尤其适用于闪存这样易受损的存储器的磨损平衡。
背景技术
嵌入式系统是指面向特定应用设计、执行专用功能并被内部计算机控制的设备或者系统。近年来,随着计算机科学技术和网络通信技术的迅猛发展,嵌入式系统的开发和应用得到飞速发展和普及。闪存(Flash Memory)存储介质是一种非易失性的存储器,具有掉电后内部信息仍可保留,以及可被反复擦除再编程等特点。目前,以闪存作为存储介质的嵌入式系统被广泛应用。
闪存具有如下的物理特性:当闪存处于干净的状态时(被擦除过,但还未发生写操作),它的每一个位(bit)都是1;闪存上的每一位可以被写操作置成0,但把0置成1却不能按写操作来进行,只能通过擦除操作进行,一般擦除操作只能以块(Block)为单位进行;闪存的使用寿命是有限的,闪存的使用寿命是由擦写块的最大可擦写次数来决定的,当擦写块超过了最大可擦写次数,这个擦写块就成为坏块,以后再无法使用。
闪存系统内的存储单元的磨损程度依据每个存储单元的被擦除编程的频率而变化。如果对一个存储单元进行一次编程写入数据然后实际上永不对其进行再编程,那么该存储单元的磨损一般较低;而如果反复地对一个存储单元进行擦除和编程,那么该存储单元的磨损一般较高。由于嵌入式系统自身的特点,主机可能需要对固定范围内的逻辑地址区域进行反复的写入数据操作,那么便可能对闪存内相同区域的存储单元进行反复地写入及擦除。当某些存储单元因擦写动作超过最大可擦写次数被磨坏而其它存储单元相对未被磨损时,磨坏单元的存在通常使闪存系统的总体性能受损。通常,当闪存系统中存在较多已经磨坏的存储单元,且所占的比例已经达到或超过闪存系统能正常使用所允许的极限,即使闪存系统中的许多其它存储单元相对仍未磨损坏,仍可认为所述闪存系统不可用。因此,为了避免某些存储单元被过度擦写,以致于它们先于其它的存储单元达到最大可擦写次数,我们应该在尽量不影响系统性能的前提下,使擦写操作尽量均匀地分布在每个存储单元上。这个过程叫磨损平衡。
目前常规的磨损平衡方法,是把每个存储单元的擦写次数等信息记录在每个存储单元内,根据各个存储单元的擦写次数,在擦写次数比较多和擦写次数比较少的存储单元之间作决策,通常是要涉及交换不同的逻辑地址所对应的物理单元,并交换这些物理单元对应的数据,以此来处理存储单元之间的擦写均匀度。常规方法虽然可以满足基本的磨损平衡要求,但也存在一些缺点和不足:
(1)一般将存储单元的擦写次数等信息存放在存储单元的特殊空间内,造成存储空间资源的浪费。
(2)在系统异常掉电的情况下,存储单元的擦写次数等信息容易丢失,造成磨损平衡不彻底。
(3)对擦除次数等信息在存储单元中的存放受新型存储器(如MLC闪存)的特性的制约,给存储设备软硬件对存储空间的管理造成不便。
因此,需要一种在存储系统内有效地执行磨损平衡的方法和装置。即,需要一种自动磨损平衡处理,在促进存储系统内相关存储单元更均匀磨损的同时,不会不利地影响存储系统的整体性能。
发明内容
本发明涉及了一种基于局部采样原理的存储器的磨损平衡实现方法,具体来讲是闪存的磨损平衡方法。本发明包括:建立闪存的生命周期模型;将整个生命周期按具体的使用规律分成一定个数的局部生命采样阶段;在某个采样阶段的终点,采集该采样阶段内的历史数据并进行分析;某个采样阶段内的历史数据能反映该采样阶段内对闪存所进行操作的规律,能找到存储空间内最安静的区域以及任务最繁重的存储单元;对历史数据进行分析后,进行磨损平衡的决策,将任务最繁重的存储单元调配到最安静的区域,将最安静的区域对应的存储单元调配到任务最繁重的存储单元原先所在的区域;在某个所述生命采样阶段的起点,闪存系统已经基本上处于磨损均匀状态,该状态是在前一个采样阶段的终点实施的;从整个生命周期来看,闪存均是处于磨损平衡状态。
与常规的存储器磨损平衡方法相比,本发明具有以下优点:
1、不需要将与磨损平衡算法相关的特殊信息存放在存储单元的特殊空间内,不占用存储器的空间资源;。
2、有良好的掉电保护功能,不受系统异常断电的影响;
3、不受新的存储器特性的制约,适用于所有易受损的存储器;
4、实现机制可靠简单。
本发明所述引导方法和装置可以应用于各种存储器的启动过程中,下面为了方便说明,仅采用闪存进行描述。然而,本领域技术人员可以理解,本发明可以应用于所有类型的存储介质。本发明的核心思想是:根据闪存的具体使用规律,建立闪存的生命周期模型;在生命周期模型中建立局部采样点,把整个生命周期分成一定个数的局部采样阶段;在局部采样阶段的起点,开始采集与存储单元磨损相关的历史数据,在局部采样阶段的终点,对该采样阶段内采集到的历史数据进行分析;在分析历史数据的基础上,进行进一步的决策措施。参照图1是所建立的闪存生命周期模型。将整个生命周期分为生命初期106、生命中期108和生命晚期109,在闪存出厂后进入生命前期,这期间大部分存储块的磨损程度较低,闪存系统的整体性能较好;在经过生命中期比较频繁的磨损后,进入生命晚期,这时大部分存储块的磨损程度都比较高,为了尽量延长闪存的使用寿命,磨损平衡的执行显得尤为重要。再将生命周期分成n个局部采样阶段,即在生命初期106所包含的采样阶段1(101)、采样阶段2(102)和采样阶段3(103),以及在生命晚期所包含的采样阶段n-1(104)、采用阶段n(105)等。在第i个采样阶段(107)内,当该阶段开始后,每隔一定的时间周期就采集历史数据,在该采样阶段的终点,对采集到的历史数据进行分析,作进一步的决策,是否要执行磨损平衡的措施。在第i个采样阶段已经完成,进入第i+1个采样阶段时,此时闪存系统已经基本上处于磨损均匀状态,即,某个采样阶段内的磨损平衡状态是在上个采样阶段的终点实施的。
参照图2,是本发明所述的闪存型嵌入式系统的系统结构图,它主要包括主机系统206和闪存207。闪存型嵌入式系统内部的主要功能部件及相关配合如图2所示。主机系统206,可以集成在IC芯片内部,也可以是分离的。图中双向箭头表示flash数据流向,包括命令字和flash中具体数据内容。
在应用系统206中,包括只读存储器ROM 201、随机读写存储器RAM 202、微控制器(MCU)203、Flash硬件接口205等。只读存储器ROM 201用于存放启动代码,可由微控制器203直接取指令执行,用于硬件初始化以及从Flash存储器207读出后续的代码。RAM 202用于存储临时数据和动态系统代码,可由微控制器203直接读取指令执行其中的动态系统代码。微控制器203用于直接从ROM 201或RAM 202中读取代码执行,还具有计算、控制等功能。在主机系统206中,还可以包括FLASH控制器,用于加快flash信号传输。当然,可以将FLASH控制器集成设置在微控制器203中,也可以将FLASH控制器和微控制器203设置为通过接口相连。在应用系统206中,还可以包括直接存储器存取控制器(DMA控制器)204,用于控制Flash存储器207与RAM202之间的数据或系统代码存取,当然,此功能还可以由本领域技术人员熟知的其他可行的存取控制方式实现。DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从设备到内存,从内存到设备或从一段内存到另一段内存。Flash接口(flash interface)205为Flash存储器207与主机系统206的硬件接口,其接口信号皆为Flash存储器的硬件接口的标准信号,可以在I/O数据线上传输Flash存储器的命令字、地址序列、数据等信息。
参照图3是Flash存储器207具体数据的空间分布图。Flash存储器在嵌入式系统中既作为程序存储器,又作为数据存储器。它由物理空间和逻辑空间两大部分组成。物理空间即301所示,它是在Flash存储器的地址最起始开始预留几个物理块,主要用于系统的启动和操作系统的初始化等。逻辑空间由系统代码区302和用户数据区303组成,系统代码区302用于存放操作系统和应用程序相关的代码和数据,用户看不到这部分空间;用户数据区303用于存放用户自己可以访问的数据。
由于Flash存储器的不稳定性,它有一定的使用寿命,以及为了磨损平衡的需要,在实际的闪存型嵌入式系统中,主机访问闪存时所传递的逻辑地址和闪存实际的物理地址并非一一对应,而是在逻辑地址和物理地址之间建立一张随机的映射表,并把相应的映射关系记录在物理单元的特殊空间。以一个表项表示一个物理块为例,当上层要访问第0个逻辑块的数据时,要根据映射表找到第0个表项的内容,即实际的物理块,再对该物理块进行操作。在图3所示的闪存空间分布中,所有对逻辑空间302和303的访问都要经过该映射表进行。参照图4为以物理块为表项的映射表建立的流程示意图,401会执行系统初始化的动作,设置一些系统参数;402对各个物理块逐个扫描,得到相关的信息;403和404会根据402的扫描结果,判断当前物理的使用状态,是否好块,是否系统预留块等,如果坏块,则将坏块剔除,如果是预留块,则跳过预留的物理块,继续对剩下的物理块逐个扫描;405判断当前物理块中是否已经有对应的逻辑表的映射信息,如果有,则在407中建立该物理单元和对应逻辑单元的映射关系。在扫描完闪存的所有物理单元后,一张逻辑映射表就建立了。
参照图5是一张逻辑块和物理块的映射表,假设闪存共有1024个物理块,那么这张映射表总共有1024个表项。假设映射给逻辑块的有1000个物理块,即501所示的这张表的前1000项,如果上层访问闪存的逻辑地址位于第0个逻辑块单元,那么根据索引可以在501中找到对应的物理单元是物理块1(504)。502表示的一些块是备用块,用于前1000个表项中对应的物理块损坏时的替换使用。另外还有一个临时备份块503,进行写操作时,要写入的数据和逻辑表中对应目标块的内容都写入备份逻辑块,并将备份逻辑块和目标块的位置交换。
所以进行写操作时,逻辑表的内容会发生变化。参照图6表示对连续对逻辑块0和逻辑块1进行写操作时逻辑表的具体变化情况。601表示对逻辑块0进行写之前逻辑表的内容,从604可以看出逻辑块0和逻辑块1分别对应的表项是物理块A和物理块B,从605可知此时的临时备份块是物理块Z。在对逻辑块0的写操作完成后,需要将临时备份块和逻辑表中对应目标块的位置交换。602表示对逻辑块0写操作完成后,在对逻辑块1写操作之前逻辑表的内容,此时逻辑块0对应逻辑表项已经变成物理块Z,而临时备份块是物理块A。在对逻辑块1进行写操作后,同样需要将临时备份块和逻辑表中对应目标块的位置交换。603表示对逻辑块1写操作完成后逻辑表的内容,此时逻辑块1对应逻辑表项已经变成物理块A,而临时备份块是物理块B。由示意图6也可以看出,逻辑块2对应的表项始终为物理块C,没有发生变化。所以,在一定的采样阶段内,如果没有对某一区域进行擦写操作,则该区域对应的逻辑表内容不会发生变化。
同时可以看出,一定采样时间段内,如果逻辑表内容的变化发生的越剧烈,说明该时间段内对Flash存储器的操作越频繁。因此,可以把存储空间对应的映射表作为本发明在各个局部采样阶段内所需要采集的数据,在各个采样阶段的终点对采集到的该阶段内的所有历史数据,即映射表进行分析,然后作进一步的决策。对数据进行分析时,根据映射表的动态活跃属性,找到异常活跃的区域和比较安静的区域,然后再在异常活跃的区域中找到操作比较频繁的物理块,将这些物理块与比较安静的区域对应的物理块进行位置调配,并互相交换数据。参照图7是对采集到的历史数据进行分析后得到的闪存区域磨损程度示意图。701表示比较吵闹的区域,702表示最安静的区域,703表示任务最轻松的物理单元,704表示任务最繁重的物理单元。如果在该局部采样阶段内,存储器没有受到磨损操作或受到的磨损操作分布比较均匀,相应地在对历史数据进行分析时,没有找到比较活跃的区域,所以区域都相对比较安静,则不需要采取进一步措施实现磨损平衡,直接进入下个采样阶段,在下个采样阶段的终点再做分析和决策。因此在每个采样阶段的起点,存储系统都是处于较好的磨损均匀状态,这一状态是在上一个采样阶段的终点实施的,以此来一个局部采样阶段内的磨损平衡。总体的来看,通过一个采样阶段内实现的磨损平衡,来保证整个生命周期内存储器的整体磨损平衡。
本发明的客观依据是:从一个事物的整个生命周期模型来看,在两个相邻的局部采样阶段内所采集到的数据,它们所表现的该事物的特征规律基本是相近的。以此类推,在局部采样阶段所体现的事物特征规律大体上可以反映整个生命周期内的事物特征规律。因此,在两个相邻的局部采样阶段内所找到的区域磨损程度特征是相近的,在整个生命周期内这些特征的变化是连续的,所以在连续的局部采样阶段内实施的磨损平衡算法,能保证存储器在整个生命周期内处于磨损平衡的状态。
本发明涉及了一种基于局部采样原理的存储器的磨损平衡实现方法,它可以避免对某些存储单元的过度擦写操作,以致于它先于其它存储单元到达最大可擦写次数,从而达到磨损平衡,提高存储器的使用寿命,提高系统的性能,且它的实现机制可靠简单。同时,本发明可以克服常规的存储器磨损平衡方法存在的缺点,不占用存储器的空间资源;有良好的掉电保护功能,不受系统异常断电的影响;不受新的存储器特性的制约,适用于所有易受损的存储器。
附图说明
图1是所建立的闪存生命周期模型的示意图;
图2是本发明所述的闪存型嵌入式系统的系统结构图,;
图3是Flash存储器存储数据的空间分布图;
图4是Flash存储器的逻辑映射表建立的流程示意图;
图5是Flash存储器的逻辑映射表的结构示意图;
图6是对Flash存储器进行写操作时逻辑表的变化示意图;
图7是对历史数据进行分析后得到的闪存区域磨损程度示意图;
图8是整个生命周期内的磨损平衡算法的运行流程图;
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和一个具体实施例对本发明作进一步详细的说明。但本领域技术人员通过阅读说明书可以理解,具体实施例不构成对本发明的具体限制。
为了清楚说明本发明的思想和实现步骤,现举例说明该磨损平衡算法的实现操作方法。假设当前闪存处于生命周期的第i个局部采样阶段的起点,它已经基本上处于各物理单元的磨损均匀状态,该状态是在第i-1个局部采样阶段的终点实施的。从该状态点开始,一直到该采样阶段的终点,按一定的采样率逐点采集各个采样时刻对应的当前历史数据,即闪存的逻辑映射表。为了便于说明,现在在第i个采样阶段内设点5个采样点。表1表示在第i个采样阶段起点采集到的历史数据,此时闪存已经处于比较好的磨损平衡状态。
 
0x3ff 0x3fe 0x3fd 0x3fc 0x3fb 0x3fa 0x3f9
0x3f8 0x3f7 0x3f6 0x3f5 0x3f4 0x3f3 0x3f2
0x3fl 0x3f0 0x3ef 0x3ee 0x3ed 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x2fc 0x2f9 0x2f0 0x278 0x25c 0x222 0x30c
0x21c 0x1fc 0x18c 0x17f 0x187 0x156 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x64 0x50 0x44 0x45 0x43 0x40 0x33
表1
表2是在第i个采样阶段的第2个数据采集点采到的历史数据,对比表1可以看出,闪存的某些区域发生了擦写操作。
 
0x16 0x3ff 0x3fe 0x3fd 0x3fc 0x3fb 0x3fa
0x3f9 0x3f8 0x3f7 0x3f6 0x3f5 0x3f4 0x3f3
0x3f1 0x3f0 0x3f2 0x3ee 0x3ef 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x3ed 0x2fc 0x2f9 0x278 0x25c 0x222 0x30c
0x21c 0x1fc 0x18c 0x17f 0x187 0x156 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x64 0x50 0x44 0x45 0x43 0x40 0x33
表2
表3是在第i个采样阶段的第3个数据采集点采到的历史数据,对比表2可以看出,闪存的某些区域发生了擦写操作。
 
0x2f0 0x16 0x3ff 0x3fe 0x3fd 0x3fc 0x3fb
0x3fa 0x3f9 0x3f8 0x3f7 0x3f6 0x3f5 0x3f4
0x3f1 0x3f0 0x3f3 0x3ee 0x3f2 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x3ed 0x2fc 0x2f9 0x3ef 0x278 0x25c 0x30c
0x21c 0x1fc 0x18c 0x17f 0x187 0x156 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x64 0x50 0x44 0x45 0x43 0x40 0x33
表3
表4是在第i个采样阶段的第4个数据采集点采到的历史数据,对比表3可以看出,闪存的某些区域发生了擦写操作。
 
0x222 0x2f0 0x16 0x3ff 0x3fe 0x3fd 0x3fc
0x3fb 0x3fa 0x3f9 0x3f8 0x3f7 0x3f6 0x3f5
0x3f1 0x3f0 0x3f4 0x3ee 0x3f3 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x3ed 0x2fc 0x2f9 0x3ef 0x278 0x25c 0x30c
0x3f2 0x21c 0x1fc 0x17f 0x187 0x156 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x64 0x50 0x44 0x45 0x43 0x40 0x33
表4
表5是在第i个采样阶段的第5个数据采集点采到的历史数据,对比表4可以看出,闪存的某些区域发生了擦写操作。
 
0x18c 0x222 0x2f0 0x16 0x3ff 0x3fe 0x3fd
0x3fc 0x3fb 0x3fa 0x3f9 0x3f8 0x3f7 0x3f6
0x3f1 0x3f0 0x3f5 0x3ee 0x3f4 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x3ed 0x2fc 0x2f9 0x3ef 0x278 0x25c 0x30c
0x3f2 0x21c 0x1fc 0x3f3 0x17f 0x187 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x64 0x50 0x44 0x45 0x43 0x40 0x33
表5
根据表1-5所示的数据,我们对历史数据进行具体的分析,分析第i个采样阶段内闪存各个区域的磨损情况,再决定进一步的磨损平衡措施。针对表1-5所示的历史数据,为了找到过去一个采样阶段内闪存各区域的磨损程度,分别主要进行两个方面的数据统计,一方面对各个位置上的表项内容的变化情况进行统计,从而找到过去一个时间段内闪存中最安静和最吵闹的区域;另一方面对具体每个表项的位置跳跃情况进行统计,从而找到过去一个时间段内闪存中任务最繁重和最轻松的物理单元。
首先,对各个位置的表项内容的变化情况进行统计。遍历整个逻辑映射表的各个位置,比较它们在各个历史数据采样点所采集到的表项内容,计算出过去一个历史采样阶段该位置上对应的表项变化的次数。变化次数越少,则所在的区域越安静;变化此时越多,则所在的区域越吵闹。由表1-表5可以得知,逻辑地址最前面的十几个逻辑块所作区域相对比较吵闹,而逻辑地址靠后的几十个逻辑块所在区域相对比较安静。
接着,对具体每个表项的位置跳跃情况进行统计。按物理地址从小到大遍历整个闪存的物理块,根据逻辑映射表反向查找该物理块对应的区域位置,比较它在各个历史数据采样点所采集到的映射位置,计算出过去一个历史采样阶段内该物理块在逻辑映射表内的位置跳跃次数。跳跃次数越多,则该物理单元任务越繁重;跳跃次数越少,则该物理单元任务越轻松。
根据以上两个方面的统计结果,可以找到过去一个历史采样阶段内最安静的区域和任务最繁重的物理块集合。然后,进行具体的磨损平衡的实施措施,将任务最繁重的物理块由逻辑映射表当前的区域调到最安静的区域,再将最安静的区域原先对应的表项调到任务最繁重的物理块原先所在的区域,然后再进行区域之间的数据交换。在实施完前面所述的磨损平衡措施后,此时的逻辑映射表如表6所示。因为在两个相邻的局部采样阶段内所找到的区域磨损程度特征是相近的,在第i个采样阶段的终点实施的磨损平衡算法,能保证存储器在经过第i+1个采样阶段的磨损,在第i+1个采样阶段终点实施磨损平衡措施后,仍能保持存储器磨损均匀的状态,从而保证在整个存储器的生命周期内都能保持磨损平衡的状态。
 
0x18c 0x120 0xfc 0xf6 0xf0 0xee 0xe4
0xdc 0xcc 0xa0 0x89 0x88 0x85 0x66
0x3f1 0x3f0 0x44 0x3ee 0x43 0x3ec 0x3eb
........ ........ ........ ........ ........ ........ ........
0x3ed 0x2fc 0x2f9 0x3ef 0x278 0x25c 0x30c
0x3f2 0x21c 0x1fc 0x3f3 0x17f 0x187 0x16d
........ ........ ........ ........ ........ ........ ........
0x100 0x222 0x2f0 0x16 0x3ff 0x3fe 0x3fd
0x3fc 0x3fb 0x3fa 0x3f9 0x3f8 0x3f7 0x3f6
0x64 0x50 0x3f5 0x45 0x3f4 0x40 0x33
表6
参照图8是整个生命周期内的磨损平衡算法的运行流程图。从采样阶段的起点801开始,802就会按一定的采样频率在各个采样点实时采集历史数据,一直到采样阶段的终点803;采集完历史数据后,804会对历史数据进行具体分析,根据804的分析结果,再作进一步的决策和措施;805和806会判断过去一个局部采样阶段内是否存在磨损操作或存在不均匀的磨损操作,如果不存在磨损操作或不存在不均匀的磨损操作,则不进行磨损平衡的实施措施,进入下个采样阶段;否则将会实施807的磨损平衡措施。

Claims (8)

1、一种基于局部采样原理的存储器的磨损平衡实现方法,其特征在于,包括:
(1)、建立存储器的生命周期模型;
(2)、在生命周期的某个局部采样阶段内,从采样阶段起点开始一直到采样阶段终点,采集当前局部采样阶段内的所有历史数据,所述历史数据为存储空间对应的映射表;
(3)、在当前采样阶段的终点,分析采集到的所有历史数据;
(4)、根据分析结果判断是否实施磨损平衡算法,所述磨损平衡算法为根据映射表的动态活动属性,找到异常活跃的区域和比较安静的区域,然后再在异常活跃的区域中找到操作比较频繁的物理块,将这些物理块与比较安静的区域对应的物理块进行位置调配,并互相交换数据;
如果分析结果显示所有区域都相对比较安静,则不需要采取进一步措施实施磨损平衡算法;否则在当前采样阶段的终点实施磨损平衡算法,此后存储器就进入磨损均匀状态,下个采样阶段在当前采样阶段实施的磨损平衡算法的基础上,继续进行同样的磨损平衡算法,由此在各个局部采样阶段内实施磨损平衡算法,保证了在整个生命周期内存储器处于磨损均匀状态。
2、根据权利要求1所述的方法,其特征在于,根据一定的采样频率,从采样阶段起点开始一直到采样阶段终点,采集当前局部采样阶段内的所有历史数据。
3、根据权利要求1所述的方法,其特征在于,所采集的历史数据反映该采样阶段内对存储器所进行操作的规律。
4、根据权利要求3所述的方法,其特征在于,采集的历史数据可以看到磨损操作所在的区域,当对存储器的某一物理单元进行磨损操作时,历史数据中该物理单元所对应的部分会发生变动,这种变动越频繁,说明磨损操作的程度越高。
5、根据权利要求1所述的方法,其特征在于,通过对采集的历史数据进行具体分析,找到过去一个采样阶段内存储器的各个区域的磨损操作程度的分布曲线,再根据该分布曲线进行磨损平衡的决策和实施措施。
6、根据权利要求5所述的方法,其特征在于,在局部采样阶段的终点,根据反映磨损操作程度的所述分布曲线,找到该采样阶段内任务最繁重的单元和最安静区域,将最安静的区域对应的存储单元调配到任务最繁重的存储单元原先所在的区域,并进行存储单元间的数据交换;
7、根据权利要求1所述的方法,其特征在于,两个相邻的局部采样阶段内所采集到的数据,它们所表现的各自采样阶段内的存储器磨损的特征上基本上是相近的,在连续的局部采样阶段内实施的磨损平衡算法,能保证存储器在整个生命周期内处于磨损平衡的状态。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述存储器为闪存存储器。
CNB2007101274530A 2007-07-05 2007-07-05 一种基于局部采样的存储器的磨损平衡方法 Active CN100538662C (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CNB2007101274530A CN100538662C (zh) 2007-07-05 2007-07-05 一种基于局部采样的存储器的磨损平衡方法
PCT/CN2008/070835 WO2009006803A1 (fr) 2007-07-05 2008-04-28 Procédé et appareil pour effectuer un nivellement d'usure en mémoire
US12/666,073 US8296539B2 (en) 2007-07-05 2008-04-28 Method and apparatus for performing wear leveling in memory
EP08734193.9A EP2166456B1 (en) 2007-07-05 2008-04-28 Method and apparatus for performing wear leveling in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101274530A CN100538662C (zh) 2007-07-05 2007-07-05 一种基于局部采样的存储器的磨损平衡方法

Publications (2)

Publication Number Publication Date
CN101067800A CN101067800A (zh) 2007-11-07
CN100538662C true CN100538662C (zh) 2009-09-09

Family

ID=38880362

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101274530A Active CN100538662C (zh) 2007-07-05 2007-07-05 一种基于局部采样的存储器的磨损平衡方法

Country Status (4)

Country Link
US (1) US8296539B2 (zh)
EP (1) EP2166456B1 (zh)
CN (1) CN100538662C (zh)
WO (1) WO2009006803A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100538662C (zh) * 2007-07-05 2009-09-09 炬力集成电路设计有限公司 一种基于局部采样的存储器的磨损平衡方法
CN101571833B (zh) * 2008-04-29 2012-03-21 深圳市朗科科技股份有限公司 存储介质的保护方法及装置
TWI375887B (en) * 2008-10-31 2012-11-01 A Data Technology Co Ltd Flash memory device with wear-leveling mechanism and controlling method thereof
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4844639B2 (ja) * 2009-02-19 2011-12-28 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8065469B2 (en) 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
CN102073595A (zh) * 2011-01-24 2011-05-25 华亚微电子(上海)有限公司 防断电的损耗平衡存储方法
US9135160B1 (en) 2011-03-28 2015-09-15 Rambus Inc. Devices, systems, and methods for wear leveling memory
US20130097403A1 (en) 2011-10-18 2013-04-18 Rambus Inc. Address Mapping in Memory Systems
CN102819468B (zh) * 2011-11-30 2014-09-24 凯迈(洛阳)环测有限公司 一种基于flash的小型数据备份及查询方法
CN102722455B (zh) * 2012-05-22 2015-01-28 深圳市江波龙电子有限公司 一种闪存设备中数据存储的方法及装置
US9032137B2 (en) 2012-11-21 2015-05-12 Intel Corporation Flexible wear management for non-volatile memory
CN103049388B (zh) * 2012-12-06 2015-12-23 深圳市江波龙电子有限公司 一种分页存储器件的压缩管理方法及装置
CN103645991B (zh) * 2013-11-22 2017-02-15 华为技术有限公司 数据处理方法及装置
KR102504368B1 (ko) * 2017-12-22 2023-02-24 에스케이하이닉스 주식회사 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치
EP3502890A1 (en) * 2017-12-22 2019-06-26 Bull SAS Method for managing resources of a computer cluster by means of historical data
KR102507646B1 (ko) * 2018-02-01 2023-03-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US10713155B2 (en) * 2018-07-19 2020-07-14 Micron Technology, Inc. Biased sampling methodology for wear leveling
US11537307B2 (en) 2018-08-23 2022-12-27 Micron Technology, Inc. Hybrid wear leveling for in-place data replacement media
US10761739B2 (en) 2018-08-23 2020-09-01 Micron Technology, Inc. Multi-level wear leveling for non-volatile memory
US11188461B2 (en) * 2019-06-19 2021-11-30 Micron Technology, Inc. Garbage collection adapted to memory device life expectancy
CN115437580B (zh) * 2022-11-08 2023-03-24 合肥康芯威存储技术有限公司 一种数据存储设备的管理方法、系统及数据存储设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
ATE372578T1 (de) * 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
EP1713085A1 (en) * 2002-10-28 2006-10-18 SanDisk Corporation Automated wear leveling in non-volatile storage systems
CN1536489A (zh) * 2003-04-11 2004-10-13 英华达(上海)电子有限公司 非挥发性存储器的损耗平衡方法
US7139863B1 (en) 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
JP2007133683A (ja) * 2005-11-10 2007-05-31 Sony Corp メモリシステム
CN100538662C (zh) * 2007-07-05 2009-09-09 炬力集成电路设计有限公司 一种基于局部采样的存储器的磨损平衡方法

Also Published As

Publication number Publication date
EP2166456B1 (en) 2013-05-22
EP2166456A1 (en) 2010-03-24
US8296539B2 (en) 2012-10-23
US20100185805A1 (en) 2010-07-22
EP2166456A4 (en) 2010-08-25
CN101067800A (zh) 2007-11-07
WO2009006803A1 (fr) 2009-01-15

Similar Documents

Publication Publication Date Title
CN100538662C (zh) 一种基于局部采样的存储器的磨损平衡方法
CN111176564B (zh) 确定ssd内数据摆放策略的方法及装置
CN103425588B (zh) 数据储存装置和快闪存储器的区块管理方法
CN1658171B (zh) 通过控制频繁受访问扇区对非易失性存储器的更快写操作
CN100501868C (zh) 基于NAND Flash存储器文件系统的实现方法
CN104335175A (zh) 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统
CN101968755B (zh) 一种自适应应用负载变化的快照生成方法
TW201109920A (en) Methods, memory controllers and devices for wear leveling a memory
CN103019971A (zh) 快速响应trim命令的方法、SSD控制器及系统
CN105224474B (zh) 固态硬盘闪存转换层的实现系统和闪存转换层的实现装置
CN109582593A (zh) 一种基于计算的ftl地址映射方法及数据读、写方法
CN102819496A (zh) 闪存ftl的地址转换方法
CN103049393B (zh) 内存空间管理方法和装置
CN104699415A (zh) 固态硬盘写入控制方法和装置
CN101794253B (zh) 内存储存装置及其控制方法、热门数据控管模块
CN109669889A (zh) 一种轻量型Nor Flash闪存控制方法和装置
CN110389712A (zh) 数据写入方法及其装置、固态硬盘和计算机可读存储介质
CN115114180A (zh) 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统
CN103019956B (zh) 一种对缓存数据的操作方法和装置
CN109597580A (zh) 适用于智能电表负荷曲线存储的flash操作方法
CN106598504A (zh) 数据存储方法及装置
CN105988719B (zh) 存储装置及其处理数据的方法
CN109840218A (zh) 有效数据管理方法以及存储控制器
CN106951193B (zh) 改善Nand Flash存储性能的方法及其系统
CN102880553A (zh) 一种基于mcu的片外flash文件系统的读写方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee after: Juli Integrated Circuit Design Co., Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Juli Integrated Circuit Design Co., Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160818

Address after: 519085 Guangdong city of Zhuhai province Hengqin Baohua Road No. 6, room 105 -1023

Patentee after: Torch (Zhuhai) Microelectronics Co., Ltd.

Address before: 519085 hi tech Zone, Guangdong, Zhuhai science and Technology Innovation Coast Road, No. four, No. 1

Patentee before: Juli Integrated Circuit Design Co., Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 105-1023, No.6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee after: Ju Li (Zhuhai) Microelectronics Co., Ltd

Address before: 519085 Guangdong city of Zhuhai province Hengqin Baohua Road No. 6, room 105 -1023

Patentee before: JUXIN (ZHUHAI) MICROELECTRONICS Co.,Ltd.