CN107291405B - 一种NorFlash的数据管理方法与装置 - Google Patents
一种NorFlash的数据管理方法与装置 Download PDFInfo
- Publication number
- CN107291405B CN107291405B CN201710707609.6A CN201710707609A CN107291405B CN 107291405 B CN107291405 B CN 107291405B CN 201710707609 A CN201710707609 A CN 201710707609A CN 107291405 B CN107291405 B CN 107291405B
- Authority
- CN
- China
- Prior art keywords
- page
- data
- physical
- mapping
- group
- 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
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- 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]
Abstract
本发明公开了一种非易失性存储器的数据存储管理方法与装置,方法包括:将物理数据存储器等分为n份,将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi。将逻辑数据存储器等分为n份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai。Ai与Bi通过Bi内存储的映射管理控制信息进行一一映射。读Bi的第1~n页数据时,依据映射关系从Ai的第1~n页中的某一页中读取。写Bi的第1~n页数据时,若Ai中的指定映射物理页的擦写次数未满足要求,直接写入该物理页;若擦写次数满足要求,将进行Ai和Bi映射关系的重新建立,然后将数据写入到新映射关系指定的Ai中的物理页中。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种存储设备中实现存储器擦写均衡的数据管理方法及存储设备。
背景技术
NorFlash技术是目前常用的一种非易失性存储器技术,采用这种技术的存储器支持擦写和再编程。对NorFlash的写入操作只能在已擦除的单元内进行,通常这个单元的单位是页(Page),操作顺序必须是先擦再写。NorFlash的可擦写次数,也称为使用寿命,是有限的。一般将擦一页、写满一页计为一次编程或称为擦写一次。通常NorFlash每页可支持十万次擦写,当超过寿命时,再写入数据,会因为物理老化、电荷保持不住而丢失数据。在智能卡领域中使用NorFlash技术时,对于存储介质的使用寿命要求比较高,例如,智能卡中的某些数据需要修改几十万次左右,远远超过了NorFlash的最大物理可擦除次数。不过同时,智能卡数据区不是所有数据页都需要擦写几十万次。若需要提高智能卡的使用寿命,需要平衡使用NorFlash中各数据页,而不让某一页过度使用。
目前,在NorFlash中应用数据管理技术时主要的实现方式的核心思想在于:从整个存储空间中划分出部分存储单元作为管理存储单元,用于记录物理存储单元与逻辑存储单元的对应关系。对于擦写次数较多的存储单元,将其数据写入某空闲存储单元,并修改物理存储单元与逻辑存储单元的对应关系,以实现各个存储单元的均衡使用。其中,物理存储单元和逻辑存储单元的关系如下:每个存储单元都有其对应的物理地址和逻辑地址,且每个存储单元对应的物理地址是固定不变的,用于唯一的标识一个存储单元,而存储单元对应的逻辑地址则是可以改变的,物理地址所对应的存储单元称为物理存储单元,逻辑地址所对应的存储单元称为逻辑存储单元。具体实现时,在NorFlash上开辟一段空间作为统计区,统计区和存储单元是分离的,用于记录最近一段时间操作的存储单元对应的擦除次数,由于统计区的空间有限,只能记录一小部分存储单元的擦写次数,因此,在内存中还要开辟同样大小的一段空间作为统计数据的临时记录,用于辅助记录擦写次数。但是采用这种方式,并不能准确判断哪个存储单元的擦除次数频繁。每次擦写都会启动存储单元的擦写和统计区的擦写,造成擦写性能低下;而且,在统计擦写次数时,统计区由于擦写频繁很容易被写坏,导致Flash存储设备的使用寿命比较有限。
通常存储器的均衡使用各数据页的数据管理方法中,由于管理大容量的数据检索空间很大,使得效率较低,因此常常选取折中的方法,即选择存储容量的一小部分空间——例如十分之一的空间——能够支持数据页的均衡擦写。这一小部分空间的空间地址基本都会固定下来,例如固定在最高地址段。但是由于芯片存储器有很多不同的客户,不同的客户对这种能支持数页均衡擦写的特殊存储器空间,可能有不同的地址空间需求。例如有的客户希望在最高地址段,有的客户希望不在最高地址段。原有的方法并不能解决这种矛盾。
以上以NorFlash为例说明,但并不对存储设备构成限制,除了NorFlash之外,其他的很多存储设备也会遇到类似的问题。
发明内容
为解决现有存在的技术问题,本发明实施例期望提供一种NorFlash器的数据管理方法及存储装置。
为实现上述发明目的,本发明采用以下方式来实现:
检索出物理页组内当前页X步骤,用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X。
阈值判断步骤,用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理。如果物理页X的阈值大于指定阈值,则从“检索出物理组内最小擦写次数页Y”步骤开始处理;如果物理页X的擦写次数小于等于指定阈值,则从“新数据写入当前页X”步骤开始处理。
新数据写入当前页X步骤,用于将待写的数据写入到页X内。
当前页X擦写次数更新步骤,用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息。
检索出物理组内最小擦写次数页Y步骤,用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y。
将页Y的数据写入中转页K步骤,用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据。原子性指的是保证启动页擦写的过程要么完整的执行,要么完全不执行。
新数据写入页Y步骤,用于将待写的数据写入到页Y内,更新K页中的原子性保护数据。
将页K的数据写入页X步骤,用于将中转页K中的数据转移至页X中。
页X、Y擦写次数更新步骤,用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中。
页X、Y映射关系更新步骤,用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。
上述方案中,所述方法还包括:
对“检索出物理组内当前页X”步骤采用以下规则:将物理数据存储器等分为n份,0<n≤1000。将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi。提及的页X、Y属于物理页组Bi。将逻辑数据存储器同样等分为n份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai。Ai与Bi通过Bi内存储的映射管理控制信息进行一一映射。
上述方案中,所述方法还包括:
对“检索出物理组内当前页X”步骤采用以下规则:每一物理页都有映射管理控制信息,位于该物理页内的有效数据段之外的辅助空间内。映射管理控制信息包含页擦写次数、映射关系标记。
上述方案中,所述方法还包括:
对“阈值判断”步骤采用以下规则:每次的“指定阈值”是从一个阈值范围内随机产生的值。该值是根据阈值基础值从一个阈值范围内随机产生的值。阈值基础值根据组内最大擦写次数计算得出,方法是将最大擦写次数除以定值P,结果向上取整,再乘以P,2≤P≤100000。
上述方案中,所述方法还包括:
对“将页Y的数据写入中转页K”步骤采用以下规则:原子性保护数据包括页X、Y的地址,并记录“将页Y的数据写入中转页K步骤”至“页X、Y映射关系更新步骤”的执行情况。以便该步骤及后续步骤中出现断电,可以恢复数据。
上述方案中,所述方法还包括:
对“将页Y的数据写入中转页K”步骤采用以下规则:中转页K属于中转页区,该区包含n个页,和逻辑数据区等分的个数相同。当物理组内发生换页并最小擦写次数是第j页时,中转区第j个中转页将被当成中转页K。
为实现本发明的发明目的,本发明的装置有如下构成:
检索出物理页组内当前页X单元,用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X。
阈值判断单元,用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理。如果物理页X的阈值大于指定阈值,则从“检索出物理组内最小擦写次数页Y”单元开始处理;如果物理页X的擦写次数小于等于指定阈值,则从“新数据写入当前页X”单元开始处理。
新数据写入当前页X单元,用于将待写的数据写入到页X内。
当前页X擦写次数更新单元,用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息。
检索出物理组内最小擦写次数页Y单元,用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y。
将页Y的数据写入中转页K单元,用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据。原子性指的是保证启动页擦写的过程要么完整的执行,要么完全不执行。
新数据写入页Y单元,用于将待写的数据写入到页Y内,更新K页中的原子性保护数据。
将页K的数据写入页X单元,用于将中转页K中的数据转移至页X中。
页X、Y擦写次数更新单元,用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中。
页X、Y映射关系更新单元,用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。
上述装置中,所述单元特征还包括:
对“检索出物理组内当前页X”单元采用以下规则:将物理数据存储器等分为n份,0<n≤1000。将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi。提及的页X、Y属于物理页组Bi。将逻辑数据存储器同样等分为n份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai。Ai与Bi通过Bi内存储的映射管理控制信息进行一一映射。
上述装置中,所述单元特征还包括:
对“检索出物理组内当前页X”单元采用以下规则:每一物理页都有映射管理控制信息,位于该物理页内的有效数据段之外的辅助空间内。映射管理控制信息包含页擦写次数、映射关系标记。
上述装置中,所述单元特征还包括:
对“阈值判断”单元采用以下规则:每次的“指定阈值”是从一个阈值范围内随机产生的值。该值是根据阈值基础值从一个阈值范围内随机产生的值。阈值基础值根据组内最大擦写次数计算得出,方法是将最大擦写次数除以定值P,结果向上取整,再乘以P,2≤P≤100000。
上述装置中,所述单元特征还包括:
对“将页Y的数据写入中转页K”单元采用以下规则:原子性保护数据包括页X、Y的地址,并记录“将页Y的数据写入中转页K单元”至“页X、Y映射关系更新单元”的执行情况。以便该步骤及后续步骤中出现断电,可以恢复数据。
上述装置中,所述单元特征还包括:
对“将页Y的数据写入中转页K”单元采用以下规则:中转页K属于中转页区,该区包含n个页,和逻辑数据区等分的个数相同。当物理组内发生换页并最小擦写次数是第j页时,中转区第j个中转页将被当成中转页K。
附图说明
图1为本发明实施例的一种NorFlash存储器的数据管理方法的流程图;
图2为本发明实施例的一种NorFlash存储器的数据管理装置的组成结构示意图;
图3为本发明实施例的任意一段连续的逻辑空间可当做高寿命区的示意图。
具体实施方式
当前有的芯片Flash IP核(Intellectual Property core)有这样的形式物理页:实际一页的存储空间为逻辑页大小加上几字节(例如4字节)的额外空间spare bytes,例如宣称Flash特性是256字节一页,实际物理页是260字节。这种Flash在擦除一页时,可将260字节同时擦除,并可以单独写这一页中的任意字节。本实施例是基于这种NorFlash来描述的,将256字节作为数据段,与逻辑页的256字节对应,将SpareBytes作为映射管理控制信息。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明实施例提供一种非易失性存储器的数据管理方法与装置,用以解决现有技术中负责管理的存储单元是寿命瓶颈,以及不能支持数页均衡擦写的特殊存储器空间可能有不同的地址空间需求的问题。
为方便描述,本文基于如下Flash特征来进行说明——每页大小为260字节、包括4字节SpareBytes,300KB逻辑空间(共计1200页),对应1200页物理空间(300KB数据空间和4*1200字节SpareBytes,为方便称谓,也称为300KB物理空间),单一物理页擦写寿命为10万次。
本发明实施例提供一种非易失性存储器的数据管理方法,如图1所示,该方法主要包括:
将物理数据存储器300KB(1200页)等分为3份,将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi,i的范围1~400。将逻辑数据存储器300KB等分为3份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai。Ai与Bi通过Bi内存储的映射管理控制信息SpareBytes进行一一映射。读Bi的第1~3页数据时,依据映射关系从Ai的第1~3页中的某一页中读取。写Bi的第1~3页数据时,若Ai中的指定映射物理页的擦写次数未满足要求,直接写入该物理页;若擦写次数满足要求,将进行Ai和Bi映射关系的重新建立,然后将数据写入到新映射关系指定的Ai中的物理页中。擦写方法步骤为:
步骤A01,用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X。例如当前逻辑页为第9页,则属于第A9组(i=9,逻辑页的第9、第409、第809页)的第3页,需要到对应的B3组中进行检索。B9的三个物理页(即物理页的第9、第409、第809页)中各自映射管理控制信息SpareBytes中存储着映射关系字节,例如B9的第一页存储着02,表明该物理页对应着A9逻辑组的第2页,即整体逻辑页中第409页;B9的第2页存储着03,表明该物理页对应着A9逻辑组的第3页。这样检索出当前逻辑页为第9页对应着B9物理页组的第2页(整体物理页的409页),该页即上述数据物理页X。
步骤A02,用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理。如果物理页X的阈值大于指定阈值,则从“检索出物理组内最小擦写次数页Y”步骤开始处理;如果物理页X的擦写次数小于等于指定阈值,则从“新数据写入当前页X”步骤开始处理。每次的“指定阈值”不是一个固定值,而是根据阈值基础从一个阈值范围内随机产生的值。阈值基础值是根据组内最大擦写次数计算出来的,是将最大擦写次数对定值1024的倍数向上取整。例如组内最大擦写次数是2049,则阈值基础值为2049除以1024大于2,则取3,再乘以1024,等于3072。阈值范围定义为基础值减Q值(1≤P≤100000,本实例取值为10)至基础值加R值(0≤R≤100000,本实例取值为0),即3062至3072。
步骤A11,用于将待写的数据写入到页X内。本实施例中,数据长度为256字节。
步骤A12,用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息。本实施例中,B9物理页组的第2页的原映射关系是03,则将03还写回至映射管理控制信息。无换页的数据擦写过程完成。
步骤A21,用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y。B9的三个物理页中各自映射管理控制信息SpareBytes中存储着擦写次数,例如分别为组内第一页擦写次数为100次,第二页擦写次数为1023次,第三页擦写次数为500次。则B9组内第一页为最小擦写次数的物理页Y,第二页为A01步骤中找出的页X,并在第A02步骤中判断1023大于了指定阈值。
步骤A22,用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据。中转页K属于中转页区,该区包含n个页,和逻辑数据区等分的个数相同。本实施例中中转页区包含3个中转页。当物理组内发生换页并最小擦写次数是第j页时,中转区第j个中转页将被当成中转页K。本实施例中中转区第1个中转页将被当成中转页K。页K原子性保护数据包括页X、Y的地址,并记录A22步骤至A26步骤的执行情况。通过监控执行步骤,以便该步骤及后续步骤中出现断电,可以查出是哪一步骤过程中掉电,采取重新继续执行或回退至初始状态,达到恢复数据的效果。
步骤A23,用于将待写的数据写入到页Y内,更新K页中的原子性保护数据。将预期写入第9逻辑页的数据写入到最小擦写次数的B9组内第一页中,并在中转页K中记录A23执行完成。
步骤A24,用于将中转页K中的数据转移至页X中。将中转页K中的数据写入最大擦写次数的B3组内第二页,即页X中。这样完成了页X和页Y的数据互换。
步骤A25,用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中。这时,页X(B3第二页)的擦写次数是1024,页Y(B3第一页)的擦写次数是101。
步骤A26,用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。物理页X原先对应的是逻辑页第9页,物理页Y原先对应的是逻辑页第409页。本步骤执行后,物理页X对应的是逻辑页第409页,物理页Y原先对应的是逻辑页第9页。这样原先被重度擦写的逻辑页就映射到了轻度擦写的物理页上。通常被重度擦写的逻辑页在后续还是会有大概率被擦写,这样由于其对应的物理页是个轻度擦写的物理页,可以承受更大的擦写次数了。循环反复,假设该逻辑页组里仅有一页m总被擦写,而另两个逻辑页几乎不被擦写,仅被用于保存不变的数据。则逻辑上m页将有三倍的擦写寿命。
本发明实施例提供一种非易失性存储器的损耗均衡装置,如图2所示,该装置主要包括:
将物理数据存储器300KB(1200页)等分为3份,将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi,i的范围1~400。将逻辑数据存储器300KB等分为3份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai。Ai与Bi通过Bi内存储的映射管理控制信息SpareBytes进行一一映射。读Bi的第1~3页数据时,依据映射关系从Ai的第1~3页中的某一页中读取。写Bi的第1~3页数据时,若Ai中的指定映射物理页的擦写次数未满足要求,直接写入该物理页;若擦写次数满足要求,将进行Ai和Bi映射关系的重新建立,然后将数据写入到新映射关系指定的Ai中的物理页中。擦写方法步骤为:
检索出物理页组内当前页X单元10,检索出物理页组内当前页X单元10,用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X。例如当前逻辑页为第9页,则属于第A9组(i=9,逻辑页的第9、第409、第809页)的第3页,需要到对应的B3组中进行检索。B9的三个物理页(即物理页的第9、第409、第809页)中各自映射管理控制信息SpareBytes中存储着映射关系字节,例如B9的第一页存储着02,表明该物理页对应着A9逻辑组的第2页,即整体逻辑页中第409页;B9的第2页存储着03,表明该物理页对应着A9逻辑组的第3页。这样检索出当前逻辑页为第9页对应着B9物理页组的第2页(整体物理页的409页),该页即上述数据物理页X。
阈值判断单元20,用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理。如果物理页X的阈值大于指定阈值,则从单元40开始处理;如果物理页X的擦写次数小于等于指定阈值,则从单元30开始处理。每次的“指定阈值”不是一个固定值,而是根据阈值基础从一个阈值范围内随机产生的值。阈值基础值是根据组内最大擦写次数计算出来的,是将最大擦写次数对定值1024的倍数向上取整。例如组内最大擦写次数是2049,则阈值基础值为2049除以1024大于2,则取3,再乘以1024,等于3072。阈值范围定义为基础值减Q值(1≤P≤100000,本实例取值为10)至基础值加R值(0≤R≤100000,本实例取值为0),即3062至3072。
新数据写入当前页X单元30,用于将待写的数据写入到页X内。本实施例中,数据长度为256字节。
当前页X擦写次数更新单元31,用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息。本实施例中,B9物理页组的第2页的原映射关系是03,则将03还写回至映射管理控制信息。无换页的数据擦写过程完成。
检索出物理页组内最小擦写次数页Y单元40,用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y。B9的三个物理页中各自映射管理控制信息SpareBytes中存储着擦写次数,例如分别为组内第一页擦写次数为100次,第二页擦写次数为1023次,第三页擦写次数为500次。则B9组内第一页为最小擦写次数的物理页Y,第二页为A01步骤中找出的页X,并在第A02步骤中判断1023大于了指定阈值。
将页Y的数据写入中转页K单元41,用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据。中转页K属于中转页区,该区包含n个页,和逻辑数据区等分的个数相同。本实施例中中转页区包含3个中转页。当物理组内发生换页并最小擦写次数是第j页时,中转区第j个中转页将被当成中转页K。本实施例中中转区第1个中转页将被当成中转页K。页K原子性保护数据包括页X、Y的地址,并记录单元41至单元45的执行情况。通过监控执行单元,以便该单元及后续单元中出现断电,可以查出是哪一单元处理过程中掉电,采取重新继续执行或回退至初始状态,达到恢复数据的效果。
新数据写入页Y单元42,用于将待写的数据写入到页Y内,更新K页中的原子性保护数据。将预期写入第9逻辑页的数据写入到最小擦写次数的B9组内第一页中,并在中转页K中记录A23执行完成。
将页K的数据写入页X单元43,用于将中转页K中的数据转移至页X中。将中转页K中的数据写入最大擦写次数的B3组内第二页,即页X中。这样完成了页X和页Y的数据互换。
页X、页Y擦写次数更新单元44,用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中。这时,页X(B3第二页)的擦写次数是1024,页Y(B3第一页)的擦写次数是101。
页X、页Y映射关系更新单元45,用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。物理页X原先对应的是逻辑页第9页,物理页Y原先对应的是逻辑页第409页。本单元执行后,物理页X对应的是逻辑页第409页,物理页Y原先对应的是逻辑页第9页。这样原先被重度擦写的逻辑页就映射到了轻度擦写的物理页上。通常被重度擦写的逻辑页在后续还是会有大概率被擦写,这样由于其对应的物理页是个轻度擦写的物理页,可以承受更大的擦写次数了。循环反复,假设该逻辑页组里仅有一页m总被擦写,而另两个逻辑页几乎不被擦写,仅被用于保存不变的数据。则逻辑上m页将有三倍的擦写寿命。
当采用本方法或装置的本实施例可达到如下效果:
1)不存在索引区,用于处理映射关系的数据在常规物理页中,不存在索引区寿命问题
2)每换页一次,会擦写中转区。根据实施例可以计算出一个中转区页的最大擦写次数。中转区页数是逻辑数据区等分的个数。实施例中相当于每个中转页负责400物理页的轮转。每个物理页擦写寿命为10万次,轮转阈值是1024。则中转页最多被擦400*10000/1024=3.9万次,远小于物理页擦写寿命。
3)假设逻辑页组里仅有一页m总被擦写,而另两个逻辑页几乎不被擦写,仅被用于保存不变的数据。则逻辑m页将有三倍的擦写寿命。
4)通过本实施例分组方式的设计,可以表现出将任意一段连续的逻辑100KB的空间,当做高寿命区(1~3倍寿命),其他空间当做低寿命区(小于1倍寿命)。当用相同的实施例和装置时,如图3所示的三种情况,可试为不同使用者有不同的使用习惯。情况1表明可以将200~300K地址空间的逻辑区域当做高寿命区;情况2表明可以将170~270K地址空间的逻辑区域当做高寿命区;情况3表明可以将151~251K地址空间的逻辑区域当做高寿命区。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种NorFlash的数据管理方法,其特征在于,所述方法包括:
检索出物理页组内当前页X步骤,用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X;
阈值判断步骤,用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理:如果物理页X的阈值大于指定阈值,则从“检索出物理组内最小擦写次数页Y”步骤开始处理;如果物理页X的擦写次数小于等于指定阈值,则从“新数据写入当前页X”步骤开始处理;
新数据写入当前页X步骤,用于将待写的数据写入到页X内;
当前页X擦写次数更新步骤,用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息;
检索出物理组内最小擦写次数页Y步骤,用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y;
将页Y的数据写入中转页K步骤,用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据;
新数据写入页Y步骤,用于将待写的数据写入到页Y内,更新K页中的原子性保护数据;
将页K的数据写入页X步骤,用于将中转页K中的数据转移至页X中;
页X、Y擦写次数更新步骤,用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中;
页X、Y映射关系更新步骤,用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。
2.根据权利要求1所述的NorFlash数据管理方法,其特征在于,所述方法还包括:
将物理数据存储器等分为n份,0<n≤1000,将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi,1≤i≤400,步骤中提及的页X、Y属于物理页组Bi;将逻辑数据存储器同样等分为n份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai,1≤i≤400,Ai与Bi通过Bi内存储的映射管理控制信息进行一一映射。
3.根据权利要求1所述的NorFlash数据管理方法,其特征在于,所述方法还包括:
每一物理页都存储有映射管理控制信息,位于该物理页内的有效数据段之外的辅助空间内,映射管理控制信息包含页擦写次数、映射关系标记。
4.根据权利要求1所述的NorFlash数据管理方法,其特征在于,所述方法还包括:
每次的“指定阈值”是从一个阈值范围内随机产生的值,该值是根据阈值基础值从一个阈值范围内随机产生的值,阈值基础值根据组内最大擦写次数计算得出,方法是将最大擦写次数除以定值P,结果向上取整,再乘以P,2≤P≤100000。
5.根据权利要求1所述的NorFlash数据管理方法,其特征在于,所述方法还包括:
原子性保护数据包括页X、Y的地址,并记录“将页Y的数据写入中转页K步骤”至“页X、Y映射关系更新步骤”的执行情况。
6.一种NorFlash的数据管理装置,其特征在于,所述装置包括:
检索出物理页组内当前页X单元(10),用于根据当前要擦写的逻辑页地址,在对应的物理页组中找到对应的数据物理页X;
阈值判断单元(20),用于根据数据物理页X内的映射管理控制信息检索出物理页X的擦写次数,并进行判断处理:如果物理页X的阈值大于指定阈值,则从“检索出物理组内最小擦写次数页Y”单元(40)开始处理;如果物理页X的擦写次数小于等于指定阈值,则从“新数据写入当前页X”单元(30)开始处理;
新数据写入当前页X单元(30),用于将待写的数据写入到页X内;
当前页X擦写次数更新单元(31),用于将页X的擦写次数加一,将新擦写次数和原映射关系写入页X的映射管理控制信息;
检索出物理组内最小擦写次数页Y单元(40),用于根据物理页组内每一页的映射管理控制信息中存储的擦写次数,检索出最小擦写次数的物理页Y;
将页Y的数据写入中转页K单元(41),用于备份页Y的内容到页K中,并在K页的映射管理控制信息中存储页Y地址和原子性保护数据;
新数据写入页Y单元(42),用于将待写的数据写入到页Y内,更新K页中的原子性保护数据;
将页K的数据写入页X单元(43),用于将中转页K中的数据转移至页X中;
页X、Y擦写次数更新单元(44),用于将页X、Y的擦写次数加一,将新擦写次数写入各自的映射管理控制信息中;
页X、Y映射关系更新单元(45),用于将物理页X、Y与逻辑页的映射关系互换,并清除K页中的原子性保护数据。
7.根据权利要求6所述的NorFlash数据管理装置,其特征在于,还包括:
将物理数据存储器等分为n份,0<n≤1000,将每份存储器空间相同偏移的地址页构成一组有关联的物理数据页组Bi,1≤i≤400,提及的页X、Y属于物理页组Bi;将逻辑数据存储器同样等分为n份,将每份存储器空间相同偏移的地址页构成一组逻辑数据页组Ai,1≤i≤400,Ai与Bi通过Bi内存储的映射管理控制信息进行一一映射。
8.根据权利要求6所述的NorFlash数据管理装置,其特征在于,还包括:
每一物理页都存储有映射管理控制信息,位于该物理页内的有效数据段之外的辅助空间内,映射管理控制信息包含页擦写次数、映射关系标记。
9.根据权利要求6所述的NorFlash数据管理装置,其特征在于,还包括:
每次的“指定阈值”是从一个阈值范围内随机产生的值,该值是根据阈值基础值从一个阈值范围内随机产生的值,阈值基础值根据组内最大擦写次数计算得出,方法是将最大擦写次数除以定值P,结果向上取整,再乘以P,2≤P≤100000。
10.根据权利要求6所述的NorFlash数据管理装置,其特征在于,还包括:
原子性保护数据包括页X、Y的地址,并记录“将页Y的数据写入中转页K单元”至“页X、Y映射关系更新单元”的执行情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710707609.6A CN107291405B (zh) | 2017-08-17 | 2017-08-17 | 一种NorFlash的数据管理方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710707609.6A CN107291405B (zh) | 2017-08-17 | 2017-08-17 | 一种NorFlash的数据管理方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291405A CN107291405A (zh) | 2017-10-24 |
CN107291405B true CN107291405B (zh) | 2020-05-26 |
Family
ID=60106158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710707609.6A Active CN107291405B (zh) | 2017-08-17 | 2017-08-17 | 一种NorFlash的数据管理方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291405B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189348B (zh) * | 2018-10-08 | 2020-07-24 | 华中科技大学 | 基于电荷捕获型3d tlc闪存的存储系统的读性能优化方法 |
TWI709854B (zh) * | 2019-01-21 | 2020-11-11 | 慧榮科技股份有限公司 | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 |
CN112861196A (zh) * | 2019-11-27 | 2021-05-28 | 量子芯云(北京)微电子科技有限公司 | 安全存储器的存储单元使用寿命增强方法 |
CN111176579B (zh) * | 2019-12-30 | 2023-05-30 | 航天信息股份有限公司 | 使用norflash模拟eeprom的方法 |
CN111737161B (zh) * | 2020-05-22 | 2024-03-26 | 深圳市战音科技有限公司 | Flash存储器的文件传输方法、终端及存储介质 |
CN114327292B (zh) * | 2021-12-31 | 2024-02-02 | 上海移为通信技术股份有限公司 | 文件管理方法、系统、电子设备和存储介质 |
CN114510198B (zh) * | 2022-02-16 | 2023-06-30 | 北京中电华大电子设计有限责任公司 | 一种提高nvm擦写效率的方法 |
CN115268771B (zh) * | 2022-07-11 | 2023-09-05 | 河南翔宇医疗设备股份有限公司 | 一种紫外线消毒灯使用时长记录方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419842A (zh) * | 2008-11-07 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 硬盘的损耗均衡方法、装置及系统 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN103389943A (zh) * | 2012-05-11 | 2013-11-13 | 索尼公司 | 控制装置、存储装置及存储控制方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130076429A (ko) * | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치 |
KR101453313B1 (ko) * | 2013-03-25 | 2014-10-22 | 아주대학교산학협력단 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
-
2017
- 2017-08-17 CN CN201710707609.6A patent/CN107291405B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419842A (zh) * | 2008-11-07 | 2009-04-29 | 成都市华为赛门铁克科技有限公司 | 硬盘的损耗均衡方法、装置及系统 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN103389943A (zh) * | 2012-05-11 | 2013-11-13 | 索尼公司 | 控制装置、存储装置及存储控制方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107291405A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291405B (zh) | 一种NorFlash的数据管理方法与装置 | |
US10915442B2 (en) | Managing block arrangement of super blocks | |
US7937521B2 (en) | Read disturbance management in a non-volatile memory system | |
CN1900919B (zh) | 包括多个块的闪速存储器 | |
CN108710578B (zh) | 基于闪存的数据存储方法和装置 | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US7876616B2 (en) | System and method for wear leveling utilizing a relative wear counter | |
US7409490B2 (en) | Method of flash memory management | |
US8949507B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
US8046530B2 (en) | Process and method for erase strategy in solid state disks | |
US7603593B2 (en) | Method for managing bad memory blocks in a nonvolatile-memory device, and nonvolatile-memory device implementing the management method | |
CN108897492B (zh) | 一种数据写入方法和装置 | |
CN108874309B (zh) | 一种管理固态硬盘中物理块的方法和装置 | |
US7945762B2 (en) | Method and apparatus for memory management in a non-volatile memory system using a block table | |
US11204697B2 (en) | Wear leveling in solid state devices | |
US11163694B2 (en) | Memory control method, memory storage device and memory control circuit unit | |
US10871914B2 (en) | Memory management method, memory storage device and memory control circuit unit | |
KR101699779B1 (ko) | 플래시 메모리의 색인 방법 | |
JP2001229073A (ja) | フラッシュメモリ | |
KR101041710B1 (ko) | 비휘발성 메모리의 섹터 관리 방법 | |
CN110119252B (zh) | 一种通用闪存存储存储阵列的管理方法及装置 | |
CN108920386B (zh) | 面向非易失性内存的磨损均衡及访问方法、设备和存储介质 | |
CN111324284B (zh) | 一种存储器 | |
CN108304331B (zh) | 基于NorFlash的环形队列式数据存储方法及装置 | |
KR100319254B1 (ko) | 플레쉬 메모리를 이용한 비휘발성 데이터 영역 복구 방법 |
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 |