一种提升NORFLASH擦写寿命的存储控制方法与流程

专利2024-04-01  98


一种提升nor flash擦写寿命的存储控制方法
技术领域
1.本发明涉及数据存储技术领域,尤其涉及一种提升nor flash擦写寿命的存储控制方法。


背景技术:

2.nor flash具有读写速度快,数据掉电不丢失,保持时间10年以上,高可靠性等特性,支持应用程序直接运行,广泛应用在嵌入式芯片行业。nor flash的擦写寿命在10万次左右,而嵌入式应用场景中存在数据频繁读写的场合,对擦写寿命提出了较高的要求。
3.nor flash的擦写寿命具体是指擦除次数,nor flash的硬件特性为擦除操作将对应page数据全部置1,写入操作将数据位由1置0(而不能由0置1,只有擦除操作可以实现由0置1),为了解决擦除寿命不足的问题,本发明提供一种提升nor flash擦写寿命的存储器控制方法,其核心思想为一次擦除,多次写入,充分利用擦除后page内各word数据由1置0的机会,增加索引页,使用1个word空间来记录1个page内的写入情况,并根据历史数据自动计算新写入数据对应page内地址,达到提升nor flash擦写寿命的效果。


技术实现要素:

4.本发明提供一种提升nor flash擦写寿命的存储控制方法,其特征在于,所述方法具体包括配置寄存器组、状态寄存器组、控制逻辑单元、sramctrl单元、flashctrl单元,核心部分在控制逻辑单元,主要措施是:
5.1)配置寄存器组和控制逻辑单元计算当前数据页剩余空间。即根据配置寄存器组信息获取待编程数据页,控制逻辑单元读取待编程数据页在索引页中对应word,根据word数值中bit为0的个数计算当前数据页剩余空间。
6.2)配置寄存器组和控制逻辑单元计算待写入数据页地址。根据一个数据页包含m个word,一个数据页对应索引页中的n个word,即32n个bit,则索引页中1bit对应数据页的word数量为m/(32n),控制逻辑单元计算所得到的当前数据页剩余空间,进而计算出待写入数据页的偏移地址,与数据页基地址相加可以得到待写入数据页地址。
7.3)控制逻辑单元和flashctrl单元更新索引页对应word相应bit位。flashctrl单元完成数据页写入操作,控制逻辑单元根据写入数据长度,以及索引页中1bit对应数据页的word数量m/(32n),更新索引页对应word的bit位。
8.实现所述功能包括以下5个阶段:
9.阶段1,cpu配置与状态获取;
10.阶段2,控制模块启动擦写操作;
11.阶段3,擦写操作执行;
12.阶段4,更新索引页;
13.阶段5,擦写操作完成;
14.阶段1cpu配置与状态获取,是更新配置寄存器组,控制逻辑单元依据此信息读取
索引页信息,并更新状态寄存器组,此阶段确认后续擦写操作能否执行,如果不能执行会建议切换待编程数据页,如果可以执行,则将待编程数据通过sramctrl单元写入sram。
15.阶段2控制模块启动擦写操作,是根据阶段1解析的信息,计算出读取sram地址和长度、nor flash擦写操作对应的目标地址、以及是否需要进行擦除操作。
16.阶段3擦写操作执行,根据阶段2计算出信息,通过sramctrl产生读取sram时序,通过flashctrl产生写入nor flash时序。
17.阶段4更新索引页,是根据写入数据长度,将索引页的word对应bit置0.
18.阶段5擦写操作完成,结束sramctrl和flashctrl操作,并更新状态寄存器组的完成标志。
附图说明
19.图1为一种提升nor flash擦写寿命的存储控制方法系统框图;
20.图2为索引页index word与数据页的映射图;
21.图3为一种提升nor flash擦写寿命的存储控制方法流程图;
具体实施方式
22.本发明提出的提升nor flash擦写寿命的存储控制方法中,包括5个部分,如图1所示。
23.第1部分是配置寄存器组(1031),cpu(101)通过ahb总线(102)将待编程数据页、sram起始地址和写入数据长度、擦除操作是否执行等配置信息存放到配置寄存器组(1031)。
24.第2部分状态寄存器组(1032),控制逻辑单元(1033)将待编程数据页剩余空间、flash擦写操作busy信号更新至状态寄存器组(1032),cpu(101)可以通过ahb总线(102)来获取。
25.第3部分控制逻辑单元(1033),根据配置寄存器组(1031)信息,读取索引页(2011)对应index word,更新状态寄存器组(1032)信息;根据一次擦写,多次写入思想,实现索引页index word与数据页的对应关系;产生sramctrl(1034)和flashctrl(1035)所需地址、写入长度等信息。
26.第4部分sramctrl(1034),根据控制逻辑单元(1033)提供信息,产生读写访问sram(104)时序。
27.第5部分flashctrl(1035),根据控制逻辑单元(1033)提供信息,产生读取、擦除、写入nor flash(105)时序。
28.下面将从5个阶段来详细说明具体实施,如图3所示。
29.阶段1cpu配置与状态获取,步骤301和步骤302,cpu(101)通过ahb总线(102)将待编程数据页、擦除操作是否执行、sram起始地址和写入数据长度等配置信息存放到配置寄存器组(1031)。步骤303,cpu(101)通过ahb总线(102)读取状态寄存器组(1032)信息,具体包括待编程数据页剩余空间、flash擦写操作busy信号。步骤304,控制逻辑单元(1033)判断剩余空间是否大于待编程数据长度,若大于则启动步骤306,若小于,则进入步骤305,建议切换待编程数据页。
30.当前数据页剩余空间计算是指根据配置寄存器组(1031)获取待编程数据页,进而读取索引页对应word,根据word数值(bit为0的个数)进行计算剩余空间,具体如图2所示,以index word line0(2011)为例,index bit0(2012)表示word值为0xffff_fffe,代表数据页data word line0至data word line3已填满;index bit31(2012)表示word值为0x0000_0000,代表数据页data word line0值data word line127已填满。
31.阶段2控制模块启动擦写操作,步骤306,cpu(101)通过ahb总线(102)将待写入数据先存放至sram(104),其中sramctrl(1034)根据控制逻辑单元(1033)提供地址,产生写入sram(104)时序,待cpu(101)存放完成后,根据配置寄存器组(1031)信息,启动flash编程操作。步骤307,根据cpu(101)配置,决定是否进行页擦除操作,若是,则执行步骤309,flashctrl产生页擦除时序,对nor flash(105)进行操作,若否,则执行步骤308,启动flash写入操作。
32.阶段3擦写操作执行,控制逻辑单元(1033)计算出flashctrl所需写入地址,写入地址由数据页基地址和数据页内偏移地址组成,其中数据页基地址由逻辑地址至物理地址的映射关系直接产生,数据页内偏移地址计算如下:
33.控制逻辑单元(1033)依据读取索引页(2011)对应index word数值,可以计算出当前数据页剩余空间对应偏移地址,如图2所示,比如index word(2011)中1bit对应4个word,整个数据页为512byte,即128word,因此,根据index word中bit为0的个数可以推算出待编程偏移地址,如果bit为0的个数为0,则偏移地址为0,如果bit为0的个数为1,则偏移地址为4,进而得到bit为0的个数为n(0至31),则偏移地址为4n(0至124)。当前约定一次写入4word,基于此映射关系,可以根据应用需求,调整index word line中1bit对应数据页data word line的个数,同时需要调整几个index word line对应一个数据页的关系。
34.控制逻辑单元(1033)产生读取sram请求,由sramctrl产生sram读取时序,再由flashctrl(1035)产生写入nor flash(105)时序,实现数据写入功能,在此期间状态寄存器组(1032)的flash擦写操作busy信号置1并保持。
35.阶段4更新索引页,是根据写入数据长度,将索引页(2011)的word对应bit置0。
36.具体的操作时,控制逻辑单元(1033)依据读取索引页(2011)对应index word数值,比如为0xffff_fffe,即index bit0(2012),如果新写入的数据长度为4个word,则需要将0xffff_fffc,即index bit1(2012)写入索引页(2011),控制逻辑单元输出待写入索引页(2011)的偏移地址和数据内容,flashctrl(1035)产生写入nor flash时序,完成此操作。
37.阶段5擦写操作完成,是指sramctrl(1034)和flashctrl(1035)操作完成,状态寄存器组(1032)的flash擦写操作busy信号由1置0,表示此次擦写操作全部完成。
38.以上所述仅为本说明书的一个实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

技术特征:
1.一种提升nor flash擦写寿命的存储控制方法,包括配置寄存器组、状态寄存器组、控制逻辑单元、sramctrl单元和flashctrl单元,其中控制逻辑单元为核心,其特征在于:1)配置寄存器组和控制逻辑单元计算当前数据页剩余空间;2)配置寄存器组和控制逻辑单元计算待写入数据页地址;3)控制逻辑单元和flashctrl单元更新索引页对应word相应bit位。2.如权利要求1所述的存储控制方法,其特征在于,所述的1)配置寄存器组和控制逻辑单元计算当前数据页剩余空间是指:根据配置寄存器组信息获取待编程数据页,控制逻辑单元读取待编程数据页在索引页中对应word,根据word数值中bit为0的个数计算当前数据页剩余空间。3.如权利要求1所述的存储控制方法,其特征在于,所述的2)配置寄存器组和控制逻辑单元计算待写入数据页地址是指:根据一个数据页包含m个word,一个数据页对应索引页中的n个word,即32n个bit,则索引页中1bit对应数据页的word数量为m/(32n),控制逻辑单元计算所得到的当前数据页剩余空间,进而计算出待写入数据页的偏移地址,与数据页基地址相加可以得到待写入数据页地址。4.如权利要求1所述的存储控制方法,其特征在于,所述的3)控制逻辑单元和flashctrl单元更新索引页对应word相应bit位是指:flashctrl单元完成数据页写入操作,控制逻辑单元根据写入数据长度,以及索引页中1bit对应数据页的word数量m/(32n),更新索引页对应word的bit位。

技术总结
本发明提供一种提升NOR FLASH擦写寿命的存储器控制方法,应用于数据存储领域。本发明包括5个阶段:阶段1,CPU配置与状态获取;阶段2,控制模块启动擦写操作;阶段3,擦写操作执行;阶段4,更新索引页;阶段5,擦写操作完成。针对NOR FLASH擦写寿命问题,引入索引页,记录数据页使用容量,采用一次擦除,多次写入的思想来提高数据页的利用率,进而提高擦写寿命。本发明索引页的1个Word对应一个数据页,其中1Bit对应数据页的4个Word,针对频繁写入的数据,如果数据量小于4个Word,则可以提高32倍擦写寿命。写寿命。写寿命。


技术研发人员:李建波
受保护的技术使用者:北京中电华大电子设计有限责任公司
技术研发日:2022.07.04
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7494.html

最新回复(0)