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

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

Info

Publication number
CN102736981B
CN102736981B CN201110088074.1A CN201110088074A CN102736981B CN 102736981 B CN102736981 B CN 102736981B CN 201110088074 A CN201110088074 A CN 201110088074A CN 102736981 B CN102736981 B CN 102736981B
Authority
CN
China
Prior art keywords
sector
address
logical
data
physical address
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
CN201110088074.1A
Other languages
English (en)
Other versions
CN102736981A (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

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

Claims (2)

1.一种提高NORFLASH擦写寿命的方法,其特征在于,包括以下步骤:
S102,按照4K物理地址对应1K逻辑地址的原则,建立逻辑映射表T[m][n],将NORFLASH的物理地址映射为逻辑地址,其中,m是逻辑地址页号,m的取值为0、1、2.....,n是有效数据的逻辑编号,T[m][n]的数值是有效数据存放的扇区号,包括:
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;
S104,当进行逻辑写操作时,通过逻辑地址计算出m和n,查询逻辑映射表得到扇区编号,计算出物理地址并读出该物理地址的数据,并判断该数据是否为0xFFFF,若是,进入步骤S106,否则转入步骤S108;
S106,将该数据写入该物理地址;
S108,判断当前所在扇区是否为最后一个扇区,若当前所在扇区不是最后一个扇区,进入步骤S110,否则转入步骤S112;
S110,将该数据写入当前所在扇区的下个扇区,并且更新逻辑映射表;
S112,将所有T[m][n]个扇区的有效数据都拷贝到内存中,擦除T[m][n]个扇区的数据,再把有效数据从内存拷贝到第一个扇区,同时更新逻辑映射表。
2.根据权利要求1所述的提高NORFLASH擦写寿命的方法,其特征在于,还包括以下步骤:
当进行逻辑读操作时,通过逻辑地址算出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 CN102736981A (zh) 2012-10-17
CN102736981B true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512047B (zh) * 2014-09-26 2018-08-28 上海东软载波微电子有限公司 Flash闪存的写操作、擦除操作方法及装置
CN107608630B (zh) * 2017-09-07 2020-09-04 四川九洲北斗导航与位置服务有限公司 数据读写方法及装置
CN108319433B (zh) * 2018-03-19 2021-02-02 艾体威尔电子技术(北京)有限公司 小内存单片机的NOR Flash的存储管理方法
CN111176579B (zh) * 2019-12-30 2023-05-30 航天信息股份有限公司 使用norflash模拟eeprom的方法
CN111208950B (zh) * 2020-01-15 2023-07-14 山西银河电子设备厂 一种基于单片机的提升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 晶天电子(深圳)有限公司 一种采用数据区域切换指针缓冲硬盘驱动器的闪存卡

Also Published As

Publication number Publication date
CN102736981A (zh) 2012-10-17

Similar Documents

Publication Publication Date Title
US9098395B2 (en) Logical block management method for a flash memory and control circuit storage system using the same
US11288019B2 (en) Memory management method and storage controller
US8239614B2 (en) Memory super block allocation
CN103530062B (zh) 数据存储方法、存储器控制器与存储器存储装置
US20120030411A1 (en) Data protecting method, memory controller and portable memory storage apparatus
US8433844B2 (en) Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof
CN102736981B (zh) 提高nor flash擦写寿命的方法
US8489942B1 (en) Memory management method, and memory controller and memory storage device using the same
US8892812B2 (en) Flash memory device and data writing method for a flash memory
KR20040038706A (ko) 비휘발성 메모리 시스템에서 아우트-오브-시퀀스 기록프로세스를 효과적으로 수행하기 위한 방법 및 장치
CN103514096B (zh) 数据储存方法、存储器控制器与存储器储存装置
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN102214143A (zh) 一种多层单元闪存的管理方法、装置及存储设备
US9009442B2 (en) Data writing method, memory controller and memory storage apparatus
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
CN103136111A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN114036079B (zh) 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
CN101266828B (zh) 混合型闪存存储装置及其操作方法
CN102541753B (zh) 一种嵌入式存储器的读写优化方法
CN110532195A (zh) 存储器系统的工作负荷分簇及执行其的方法
CN103870214A (zh) 多层存储块兼具单层存储块性能的方法
CN112230849A (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法
CN106354651B (zh) 平均磨损方法、存储器控制电路单元及存储器储存装置
CN111208950A (zh) 一种基于单片机的提升norflash使用周期的方法

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