CN102736981A - 提高nor flash擦写寿命的方法 - Google Patents

提高nor flash擦写寿命的方法 Download PDF

Info

Publication number
CN102736981A
CN102736981A CN2011100880741A CN201110088074A CN102736981A CN 102736981 A CN102736981 A CN 102736981A CN 2011100880741 A CN2011100880741 A CN 2011100880741A CN 201110088074 A CN201110088074 A CN 201110088074A CN 102736981 A CN102736981 A CN 102736981A
Authority
CN
China
Prior art keywords
address
sector
logical
physical address
data
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
Application number
CN2011100880741A
Other languages
English (en)
Other versions
CN102736981B (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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN201110088074.1A priority Critical patent/CN102736981B/zh
Publication of CN102736981A publication Critical patent/CN102736981A/zh
Application granted granted Critical
Publication of CN102736981B publication Critical patent/CN102736981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种提高NOR FLASH擦写寿命的方法,通过将4K物理地址映射为1K的逻辑地址,在对同一个逻辑地址进行写操作时,只有在第5次写操作中才涉及到对NOR FLASH的擦除操作,提升了写操作的速度,并将NOR FLASH的擦写操作寿命延长了4倍。

Description

提高NOR FLASH擦写寿命的方法
技术领域
本发明涉及闪存领域,具体而言,涉及一种提高NOR FLASH擦写寿命的方法。 
背景技术
NOR FLASH是目前市场上主要的非易失闪存技术之一,NOR FLASH的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能,NOR FLASH的擦写次数是十万次。EEPROM是电子擦除式只读存储器,它是一种非挥发性存储器,电源消失后,储存的数据依然存在,要消除储存在其中的内容,以电子信号直接消除即可,EEPROM的擦写次数是百万次。从NOR FLASH和EEPROM的特点上能够看出,二者的擦写寿命差距很大。 
在嵌入式***设计过程中,根据功能需要进行相应的软硬件设计,芯片选型满足主要需求后,***资源的安排要考虑成本等各种因素,有的设计需要EEPROM存储器,主要芯片内没有EEPROM存储资源,但是有NORFLASH存储资源,这种情况下如果能够通过设计改进把NOR FLASH资源当作EEPROM资源来使用,则可以省去增加EERPOM存储器的成本,并且硬件结构也比较精简。 
发明内容
本发明提供一种提高NOR FLASH擦写寿命的方法,用以延长NORFLASH的擦写寿命,降低硬件的成本。 
为达到上述目的,本发明提供了一种提高NOR FLASH擦写寿命的方法,其包括以下步骤: 
S102,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表T[m][n],将NOR FLASH的物理地址映射为逻辑地址,其中,m是逻辑地址页号,m的取值为0、1、2.....,n是有效数据的逻辑编号,T[m][n]的数值是有效数据存放的扇区号; 
S104,当进行逻辑写操作时,通过逻辑地址计算出m和n,查询逻辑映射表得到扇区编号,计算出物理地址并读出该物理地址的数据,并判断该数据是否为0xFFFF,若是,进入步骤S106,否则转入步骤S108; 
S106,将该数据写入该物理地址; 
S108,判断当前所在扇区是否为最后一个扇区,若当前所在扇区不是最后一个扇区,进入步骤S110,否则转入步骤S112; 
S110,将该数据写入当前所在扇区的下个扇区,并且更新逻辑映射表; 
S112,将所有m个扇区的有效数据都拷贝到内存中,擦除m个扇区的数据,再把有效数据从内存拷贝到第一个扇区,同时更新逻辑映射表。 
较佳的,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表T[m][n],将NOR FLASH的物理地址映射为逻辑地址步骤包括: 
a,计算物理地址,并通过该物理地址读出1个半字数据,其中,物理地址=物理基地址+4×1024×m+p×1024+2×n,p为扇区编号,其初始值为3; 
b,判断步骤a中读出的数据是否为0xFFFF,若是则进入步骤d,否则进入步骤c; 
c,将该扇区编号赋值给T[m][n],并将扇区编号减一,即p=p-1,转入步骤a; 
d,若p等于0,则将T值赋为0。 
较佳的,上述提高NOR FLASH擦写寿命的方法还包括以下步骤: 
当进行逻辑读操作时,通过逻辑地址算出m和n,其中m=(逻辑地址+1)/1024,n=(逻辑地址%1024)/2,通过查询逻辑映射表得到扇区编号,并计算出该逻辑地址对应的物理地址,根据该物理地址读出数据。 
在上述实施例中,通过将4K物理地址映射为1K的逻辑地址,在对同一个逻辑地址进行写操作时,只有在第5次写操作中才涉及到对NOR FLASH的擦除操作,提升了写操作的速度,并将NOR FLASH的擦写操作寿命延长了4倍,克服了现有技术中存在的问题。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 
图1为根据本发明一实施例的提高NOR FLASH擦写寿命的方法流程图。 
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 
图1为根据本发明一实施例的提高NOR FLASH擦写寿命的方法流程图。如图1所示,该方法包括以下步骤: 
S102,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表 T[m][n],将NOR FLASH的物理地址映射为逻辑地址,其中,m是逻辑地址页号,m的取值为0、1、2.....,n是有效数据的逻辑编号,T[m][n]的数值是有效数据存放的扇区号; 
S104,当进行逻辑写操作时,通过逻辑地址计算出m和n,查询逻辑映射表得到扇区编号,计算出物理地址并读出该物理地址的数据,并判断该数据是否为0xFFFF,若是,进入步骤S106,否则转入步骤S108; 
S106,将该数据写入该物理地址; 
S108,判断当前所在扇区是否为最后一个扇区,若当前所在扇区不是最后一个扇区,进入步骤S110,否则转入步骤S112; 
S110,将该数据写入当前所在扇区的下个扇区,并且更新逻辑映射表; 
S112,将所有m个扇区的有效数据都拷贝到内存中,擦除m个扇区的数据,再把有效数据从内存拷贝到第一个扇区,同时更新逻辑映射表。 
其中,采用4K物理地址对应1K逻辑地址,用于将4K NO R FLASH模拟为1K EEPROM,逻辑地址用于存放有效数据。把NOR FLASH的4K划分为4个扇区,分别标识为0、1、2、3。由于NOR FLASH是16位,所以内部数据存储管理逻辑以半字为最小单元,1K逻辑地址内的有效数据为512个半字,逻辑编号从0到511,逻辑编号对应半字在扇区中的偏移量,有效数字存放在哪个扇区是不确定的。通过建立逻辑映射表来确定每个有效数据的存储扇区。 
在本实施例中,通过将4K物理地址映射为1K的逻辑地址,在对同一个逻辑地址进行写操作时,只有在第5次写操作中才涉及到对NOR FLASH的擦除操作,提升了写操作的速度,并将NOR FLASH的擦写操作寿命延长了4倍,克服了现有技术中存在的问题。 
例如,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表 T[m][n],将NOR FLASH的物理地址映射为逻辑地址步骤包括: 
a,计算物理地址,并通过该物理地址读出1个半字数据,其中,物理地址=物理基地址+4×1024×m+p×1024+2×n,p为扇区编号,其初始值为3; 
b,判断步骤a中读出的数据是否为0xFFFF,若是则进入步骤d,否则进入步骤c; 
c,将该扇区编号赋值给T[m][n],并将扇区编号减一,即p=p-1,转入步骤a; 
d,若p等于0,则将T值赋为0。 
其中,建立映射区要从最高逻辑扇区向最低逻辑扇区依次查找。 
例如,上述提高NOR FLASH擦写寿命的方法还包括以下步骤: 
当进行逻辑读操作时,通过逻辑地址算出m和n,其中m=(逻辑地址+1)/1024,n=(逻辑地址%1024)/2,通过查询逻辑映射表得到扇区编号,并计算出该逻辑地址对应的物理地址,根据该物理地址读出数据。 
以下为本发明的一个较佳实施例: 
用AC2512TSSX45芯片的128K NOR FLASH来模拟32KEEPROM。128KNOR FLASH的物理地址为:0x85F000~0x87EFFF,模拟32KEEPROM的逻辑地址为0x0000~0x7FFF。 
首先建立逻辑映射表T[32][512],首次创建时,T[m][n]数组的值均为0。 
假设对逻辑地址0x200重复写入一字节数据。首次写入数值0x01。 
首先根据逻辑地址计算出映射表的m和n。根据前面相关公式计算出m=0,n=256。通过查逻辑映射表得到逻辑地址0x200的扇区编号p是T[0][256],初始值T[0][256]为0。 
计算物理地址,物理地址=物理基地址+4×1024×m+p×1024+n(p为 扇区编号)=0x85F000+4×1024×0+0×1024+2×256=0x85F200。 
读出该物理地址的数值为0xFFFF,则把0x01写入0x85F200。 
第二次对逻辑地址0x200写入数值0x02。计算物理地址,物理地址仍为0x85F200,读出该物理地址,数值为0x01,数值不等于0xFFFF,并且当前扇区号为0,不是最后一个扇区,则把新数据写入当前所在扇区的下个扇区,即p=1,计算物理地址,物理地址=物理基地址+4×1024×m+1×1024+n(p为扇区编号)=0x85F000+4×1024×0+1×1024+2×256=0x85F600,更新逻辑映射表,即T[0][256]由0更新至1。 
第三次对逻辑地址0x200写入数值0x03。计算物理地址,物理地址为0x85F600,读出该物理地址,数值为0x02,数值不等于0xFFFF,并且当前扇区号为1,不是最后一个扇区,则把新数据写入当前所在扇区的下个扇区,即p=2,计算物理地址,物理地址=物理基地址+4×1024×m+2×1024+n(p为扇区编号)=0x85F000+4×1024×0+2×1024+2×256=0x85FA00,更新逻辑映射表,即T[0][256]由1更新至2。 
第四次对逻辑地址0x200写入数值0x04。计算物理地址,物理地址为0x85FA00,读出该物理地址,数值为0x03,数值不等于0xFFFF,并且当前扇区号为2,不是最后一个扇区,则把新数据写入当前所在扇区的下个扇区,即p=3,计算物理地址,物理地址=物理基地址+4×1024×m+2×1024+n(p为扇区编号)=0x85F000+4×1024×0+3×1024+2×256=0x85FE00,更新逻辑映射表,即T[0][256]由2更新至3。 
第五次对逻辑地址0x200写入数值0x05。计算物理地址,物理地址为0x85FE00,读出该物理地址,数值为0x04,数值不等于0xFFFF,并且当前扇区号为3,且当前所在扇区是最后一个扇区,则把4个扇区的有效数据都拷贝到内存(在此用例中只有0x200逻辑地址的数据是有效数据,即把0x05拷贝内存),擦除4个扇区数据(即擦除0x85F000~0x85FFFF),计算第一 个扇区的物理地址,物理地址=物理基地址+4×1024×m+p×1024+n(p为扇区编号)=0x85F000+4×1024×0+0×1024+2×256=0x85F200,再把有效数据0x05从内存拷贝到0x85F200,同时更新逻辑映射表,即T[0][256]由3更新至1。 
在本实施例中,利用128K NOR FLASH模拟32K EEPROM,对于同一个逻辑地址0x200进行写操作,只有在第五次写操作中才涉及NOR FLASH的擦除操作,因此,写速度得到了提升,擦写寿命也相应延长了4倍。在实例中,经过测试,单字节的平均写速度是27微秒,与EEPROM的单字节写速度相当。 
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。 
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。 
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。 
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术 方案的本质脱离本发明实施例技术方案的精神和范围。 

Claims (3)

1.一种提高NOR FLASH擦写寿命的方法,其特征在于,包括以下步骤:
S102,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表T[m][n],将NOR FLASH的物理地址映射为逻辑地址,其中,m是逻辑地址页号,m的取值为0、1、2.....,n是有效数据的逻辑编号,T[m][n]的数值是有效数据存放的扇区号;
S104,当进行逻辑写操作时,通过逻辑地址计算出m和n,查询逻辑映射表得到扇区编号,计算出物理地址并读出该物理地址的数据,并判断该数据是否为0xFFFF,若是,进入步骤S106,否则转入步骤S108;
S106,将该数据写入该物理地址;
S108,判断当前所在扇区是否为最后一个扇区,若当前所在扇区不是最后一个扇区,进入步骤S110,否则转入步骤S112;
S110,将该数据写入当前所在扇区的下个扇区,并且更新逻辑映射表;
S112,将所有m个扇区的有效数据都拷贝到内存中,擦除m个扇区的数据,再把有效数据从内存拷贝到第一个扇区,同时更新逻辑映射表。
2.根据权利要求1所述的提高NOR FLASH擦写寿命的方法,其特征在于,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表T[m][n],将NOR FLASH的物理地址映射为逻辑地址步骤包括:
a,计算物理地址,并通过该物理地址读出1个半字数据,其中,物理地址=物理基地址+4×1024×m+p×1024+2×n,p为扇区编号,其初始值为3;
b,判断步骤a中读出的数据是否为0xFFFF,若是则进入步骤d,否则进入步骤c;
c,将该扇区编号赋值给T[m][n],并将扇区编号减一,即p=p-1,转入步骤a;
d,若p等于0,则将T值赋为0。
3.根据权利要求1或2所述的提高NOR FLASH擦写寿命的方法,其特征在于,还包括以下步骤:
当进行逻辑读操作时,通过逻辑地址算出m和n,其中m=(逻辑地址+1)/1024,n=(逻辑地址%1024)/2,通过查询逻辑映射表得到扇区编号,并计算出该逻辑地址对应的物理地址,根据该物理地址读出数据。
CN201110088074.1A 2011-04-08 2011-04-08 提高nor flash擦写寿命的方法 Active CN102736981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110088074.1A CN102736981B (zh) 2011-04-08 2011-04-08 提高nor flash擦写寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110088074.1A CN102736981B (zh) 2011-04-08 2011-04-08 提高nor flash擦写寿命的方法

Publications (2)

Publication Number Publication Date
CN102736981A true CN102736981A (zh) 2012-10-17
CN102736981B CN102736981B (zh) 2016-02-03

Family

ID=46992522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110088074.1A Active CN102736981B (zh) 2011-04-08 2011-04-08 提高nor flash擦写寿命的方法

Country Status (1)

Country Link
CN (1) CN102736981B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512047A (zh) * 2014-09-26 2016-04-20 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN107608630A (zh) * 2017-09-07 2018-01-19 四川九洲北斗导航与位置服务有限公司 数据读写方法及装置
CN108319433A (zh) * 2018-03-19 2018-07-24 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN111176579A (zh) * 2019-12-30 2020-05-19 航天信息股份有限公司 使用norflash模拟eeprom的方法
CN111208950A (zh) * 2020-01-15 2020-05-29 山西银河电子设备厂 一种基于单片机的提升norflash使用周期的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1637721A (zh) * 2003-12-30 2005-07-13 三星电子株式会社 地址映射方法和映射信息管理方法及其闪速存储器
CN101122887A (zh) * 2007-01-17 2008-02-13 晶天电子(深圳)有限公司 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡
CN101208669A (zh) * 2005-06-30 2008-06-25 英特尔公司 写入非易失性存储器的技术
CN101288054A (zh) * 2004-07-30 2008-10-15 M-***快闪盘开拓者公司 快闪文件***中的虚拟至物理地址翻译

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1637721A (zh) * 2003-12-30 2005-07-13 三星电子株式会社 地址映射方法和映射信息管理方法及其闪速存储器
CN101288054A (zh) * 2004-07-30 2008-10-15 M-***快闪盘开拓者公司 快闪文件***中的虚拟至物理地址翻译
CN101208669A (zh) * 2005-06-30 2008-06-25 英特尔公司 写入非易失性存储器的技术
CN101122887A (zh) * 2007-01-17 2008-02-13 晶天电子(深圳)有限公司 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512047A (zh) * 2014-09-26 2016-04-20 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN105512047B (zh) * 2014-09-26 2018-08-28 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN107608630A (zh) * 2017-09-07 2018-01-19 四川九洲北斗导航与位置服务有限公司 数据读写方法及装置
CN107608630B (zh) * 2017-09-07 2020-09-04 四川九洲北斗导航与位置服务有限公司 数据读写方法及装置
CN108319433A (zh) * 2018-03-19 2018-07-24 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN108319433B (zh) * 2018-03-19 2021-02-02 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN111176579A (zh) * 2019-12-30 2020-05-19 航天信息股份有限公司 使用norflash模拟eeprom的方法
CN111176579B (zh) * 2019-12-30 2023-05-30 航天信息股份有限公司 使用norflash模拟eeprom的方法
CN111208950A (zh) * 2020-01-15 2020-05-29 山西银河电子设备厂 一种基于单片机的提升norflash使用周期的方法

Also Published As

Publication number Publication date
CN102736981B (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
US11232041B2 (en) Memory addressing
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
US8239614B2 (en) Memory super block allocation
US8407397B2 (en) Block management method for flash memory and controller and storage system using the same
CN101288054B (zh) 闪存管理方法、***、存储设备、以及闪存设备
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
CN101154190B (zh) 映射信息管理设备和方法
US11288019B2 (en) Memory management method and storage controller
CN108710578B (zh) 基于闪存的数据存储方法和装置
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US8892812B2 (en) Flash memory device and data writing method for a flash memory
CN104102585A (zh) 映射信息记录方法、存储器控制器与存储器储存装置
US8433844B2 (en) Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof
CN105808156A (zh) 将数据写入固态硬盘的方法及固态硬盘
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
CN102736981B (zh) 提高nor flash擦写寿命的方法
CN103365786A (zh) 数据存储方法、装置和***
US20130054877A1 (en) Data writing method, memory controller and memory storage apparatus
CN101499316B (zh) 快闪存储器区块管理方法及使用此方法的控制器
CN102200946B (zh) 资料存取方法、记忆体控制器与储存***
CN114036079B (zh) 映射表压缩方法、***、存储器控制器、固态硬盘及数据读取方法
CN102541753B (zh) 一种嵌入式存储器的读写优化方法
CN110532195A (zh) 存储器***的工作负荷分簇及执行其的方法
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法
US20130326120A1 (en) Data storage device and operating method for flash memory

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