处理nor型闪存中数据记录的方法、装置及设备的制作方法

文档序号:6610149阅读:163来源:国知局
专利名称:处理nor型闪存中数据记录的方法、装置及设备的制作方法
技术领域
本发明涉及NOR型闪存(FLASH),尤其涉及处理NOR型闪存中数据记录的方法、装置及设备
背景技术
在很多诸如嵌入式设备的设备中包括非易失性存储介质,用于在设备断电后存储数据以备设备重新启动后使用。非易失性存储介质包括EPROM、EEPROM、NAND型闪存、NOR型闪存等。其中,NOR型闪存在实际应用中具有比较广泛的应用。
NOR型闪存具有芯片内执行的功能,这样在其中存储的程序就可以直接在闪存内执行,而不必将程序代码读到系统RAM中再执行。NOR型闪存不仅可以用来存储程序,也可以用来存储数据。通常情况下,程序和数据被分别存储在不同的区域。
NOR型闪存芯片通常包括多个块(block),每个块的大小可以是64K、128K等。NOR型闪存的基本操作包括读取、写入和擦除操作。其中,擦除操作必须以块为单位,可以将块中包含的字节的所有位都写为‘1’。写入操作以字节为单位,但只能将字节中的‘1’位改写为‘0’,而不能将字节中的‘0’位改写为‘1’。
所以,在现在技术中,为了在NOR型闪存中写入数据,首先需要进行块擦除,将要写入区域内的字节的所有位都变成‘1’,然后再以字节写入的方式将数据写入。这样的写入过程不仅速度较慢,而且频繁擦写会降低设备的使用寿命,增加系统不稳定性。
在中国专利公开号为CN1913040A的发明申请中,提出了一种在NOR型闪存中配置参数的方法。该方法根据每条数据记录的长度和可能的修改次数,为数据记录预先分配可写入单元,并存储每个单元的起始和结束地址。当需要对数据记录进行修改时,直接在原数据记录的末端写入修改后的数据记录。这个处理方法不灵活,不能动态分配空间,造成存储空间的浪费。


发明内容
本发明要解决的一个技术问题是要提供一种处理NOR型闪存上的数据记录的方法,可以减少NOR型闪存的块擦除的操作。
本发明提供的处理NOR型闪存上的数据记录的方法,每条数据记录包括记录序号和记录内容。该方法包括步骤 a,根据预定的字节转换规则对数据记录进行转换,该字节转换规则用于将数据记录中的字节转换为不包括0x00字节和0xff字节的表示; b,将转换后的数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
进一步,在将转换后的数据记录写入NOR型闪存的未写入区域之前包括 判断能否将所述具有相同记录序号的原数据记录修改为所述转换后的数据记录,并在能够实现时执行所述修改。
更进一步,在判断不能实现所述修改时,包括步骤 判断能否将所述转换后的数据记录写入NOR型闪存的未写入区域,在不能写入时,备份存储的所有数据记录,对NOR型闪存进行块擦除操作,用所述转换后的数据记录替换所述原数据记录,将所有的数据记录写入NOR型闪存的未写入区域;在能够写入时,执行上面的步骤b。
所述字节转换规则包括转义符,通过所述转义符和非0x00字节的组合来表示记录内容中的0x00字节、转义符字节、0xff字节。
所述终止符由所述转义符字节和一非0x00字节组成,或者所述终止符为0x00字节或者0xff字节。
本发明要解决的另一个技术问题是提供一种处理NOR型闪存上的数据记录的装置,可以减少NOR型闪存的块擦除的操作。
本发明提供的处理NOR型闪存上数据记录的装置,包括数据记录转换模块和数据记录写入模块,其中 数据记录转换模块,用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块; 数据记录写入模块,用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
进一步,该装置还包括 数据记录更新模块,用于接收来自数据记录转换模块的数据记录,判断能否将NOR型闪存中具有相同记录序号的原数据记录修改为接收的数据记录,并在能够实现时执行所述修改,在不能够实现时将接收的数据记录发送给数据记录写入模块。
进一步,所述数据记录转换模块包括存储单元和转换单元,其中, 存储单元,用于存储字节转换规则; 转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
本发明提供的处理NOR型闪存上的数据记录的方法和装置,根据预定的字节转换规则对数据记录进行转换,将转换后的数据记录写入NOR型闪存的未写入区域,并将具有相同记录序号的原数据记录的所有字节都修改为0x00。进一步,在写入前进行是否可以替换原数据记录的判断,在能够替换的情况下直接在原数据记录上进行修改。这样可以提高NOR型闪存的写入速度,减少NOR型闪存的块擦除的操作次数,延长了NOR型闪存的使用寿命。
本发明要解决的另一个技术问题是提供一种包括NOR型闪存的嵌入式设备,可以减少NOR型闪存的块擦除的操作。
本发明提供的包括NOR型闪存的嵌入式设备,包括 数据记录转换模块,用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块; 数据记录写入模块,用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
进一步,该嵌入式设备还包括 数据记录更新模块,用于接收来自数据记录转换模块的数据记录,判断能否将NOR型闪存中具有相同记录序号的原数据记录修改为接收的数据记录,并在能够实现时执行所述修改,在不能够实现时将接收的数据记录发送给数据记录写入模块。
进一步,所述数据记录转换模块包括存储单元和转换单元,其中, 存储单元,用于存储字节转换规则; 转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
本发明提供的嵌入式设备,根据预定的字节转换规则对数据记录进行转换,将转换后的数据记录写入NOR型闪存的未写入区域,并将具有相同记录序号的原数据记录的所有字节都修改为0x00。进一步,在写入前进行是否可以替换原数据记录的判断,在能够替换的情况下直接在原数据记录上进行修改。这样可以提高NOR型闪存的写入速度,减少了NOR型闪存的块擦除的操作,延长了NOR型闪存的使用寿命,增强了嵌入式设备的稳定性。



图1为示出本发明的一个实施例的处理NOR型闪存上的数据记录的方法的流程图; 图2为示出根据本发明的另一个实施例的处理NOR型闪存上的数据记录的方法的流程图; 图3为示出根据本发明的实施例的在NOR型闪存中的数据记录的存储状态的示意图; 图4为示出本发明的处理NOR型闪存上的数据记录的装置的框图; 图5为示出根据本发明的实施例的处理NOR型闪存上的数据记录的装置的框图。

具体实施例方式 本发明的基本思想是,每条数据记录包含记录序号,通过预定的字节转换规则对数据记录进行转换,在写入NOR型闪存的转换后的数据记录的末端写入终止符;当需要对特定的数据记录进行更新时,可以只修改对应的数据记录,从而减少块擦除的次数。
在描述本发明的方法之前,首先描述应用于本发明的预定的字节转换规则。
在预定的字节转换规则中,0x00字节作为无效字节,0xff字节作为未写入字节。字节转换规则将数据记录中的字节转换为非0x00字节和0xff字节的表示。一种字节转换规则的实施方案中,选取0xfe字节作为转义符,将0xff字节、0x00字节和0xfe字节分别映射到双字节’0xfe 0xfe’、’0xfe 0xfd’和’0xfe 0xfc’,而其他取值的字节映射到其自身,即其他取值的字节保持不变。通过该字节转换规则,可以将数据记录的转换为不包括0x00字节和0xff字节的表示,并且根据该字节转换规则可以将转换后的数据记录恢复为原始的数据记录。虽然这个例子中,选取0xfe字节作为转义符,但本领域的技术人员可以理解,也可以选取其他的非0x00字节作为转义符。字节转换规则也可以采用其他的实施方案。
字节转换规则确定之后,可以将其保存以便以后重复使用。例如可以作为程序代码固化在NOR型闪存的程序区域、或者作为程序的参数保存在NOR型闪存的数据区域,也可以保存在其他的非NOR型闪存的存储介质。
下面结合附图详细说明本发明的优选实施例。
图1所示为根据本发明的一个实施例的处理NOR型闪存上数据记录的方法的流程图。数据记录包括记录序号和记录内容。
如图1所示,在步骤102,根据预定的字节转换规则对数据记录进行转换,转换后的数据记录不包括0x00字节和0xff字节。
在步骤104,在NOR型闪存上存储的数据记录中查找具有和要写入的数据记录具有相同记录序号的原数据记录。
在步骤106,将NOR型闪存上的原数据记录的所有字节都更改为0x00。
在步骤108,将转换后的新数据记录写入NOR型闪存的未写入区域。
在步骤110,将新写入的数据记录的末端写入终止符。终止符可以是0x00字节或者0xff字节,或者由转义符和其他非0x00字节的组合。
图2所示为根据本发明的另一个实施例的处理NOR型闪存上的数据记录的方法的流程图。
如图2所示,在步骤202,根据预定的字节转换规则对数据记录进行转换,转换后的数据记录不包括0x00字节和0xff字节。
在步骤204,在NOR型闪存上存储的数据记录中查找具有和要写入的数据记录具有相同记录序号的原数据记录。
在步骤206,判断能否通过字节写入操作将具有相同记录序号的原数据记录修改为转换后的数据记录,即,判断是否新数据记录的每一个取值为’1’的位,原数据记录的对应位都取值为’1’。如果能,则执行所述修改(步骤208),否则,执行步骤210。
在步骤210,将原数据记录的所有字节都修改为0x00。
在步骤212,判断能否将转换后的数据记录写入NOR型闪存的未写入区域,如果能,则执行步骤214,否则执行步骤216。
在步骤214,将转换后的数据记录写入NOR型闪存的未写入区域,并在末端写入终止符,结束。
在步骤216,备份存储的数据记录,对NOR型闪存进行块擦除操作,将备份的数据记录以及新的数据记录写入NOR型闪存的未写入区域,结束。
在本发明的一个实施例中,转换后的数据记录中的记录序号的长度固定,占用n个字节。字节转换规则中包括分别用于记录序号和记录内容的不同的转换规则。用于记录序号的转换规则如等式(1)所表示 vi=(vsn/N(n-i))%N+1,i=1,....,n(1) 其中,vi为经过转换的记录序号的第i个字节的值,vsn为该数据记录的记录序号的值,N为大于1小于253的整数。N的一个优选实施方案为253。
例如,在n=2的情况下 vi=(vsn/253(2-i))%253+1 i=1,2。
图3为示出根据本发明的实施例的NOR型闪存中数据记录的存储状态的示意图。
如图3所示,闪存的存储区域包括由0x00字节组成的无效区域、由0xff字节组成的未写入区域、数据记录32和数据记录34,在数据记录32和34的末端有作为终止符的0x00字节。32a和34a分别作为数据记录32和34的记录序号,由2个字节组成。数据记录34的记录内容部分包括’0xfe 0xfd’,为转换前的数据记录中的’0x00’字节经过转义符’0xfe’转换得到。
记录序号可以是对所有的记录内容进行排序后数据记录所对应的序号。
图4所示为本发明的处理NOR型闪存上数据记录的装置的框图。
如图4所示,处理装置包括数据记录转换模块41和数据记录写入模块42。
数据记录转换模块41用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块42; 数据记录写入模块42用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
图5所示为根据本发明的一个实施例的处理NOR型闪存上数据记录的装置的框图。
如图5所示,该处理装置包括数据记录转换模块51、数据记录更新模块52和数据记录写入模块53。
数据记录转换模块51用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录更新模块52; 数据记录更新模块52用于接收转换后的数据记录,判断能够将NOR型闪存中存储的具有相同记录序号的数据记录修改为转换后的数据记录,在能够修改的情况下执行所述修改,否则将转换后的数据记录发送给数据记录写入模块53; 数据记录写入模块53用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
在本发明的一个实施例中,数据记录转换模块包括存储单元和转换单元。其中,存储单元,用于存储字节转换规则;转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
在本发明的一个实施例中,字节转换规则包括数据记录终止符和非0x00字节的转义符,通过所述转义符和非0x00字节的组合来表示数据记录的0x00字节和转义符字节和0xff字节。例如,在字节转换规则中定义数据记录终止符为0x00字节,转义符为0xfe,通过双字节’0xfe 0xfe’、’0xfe 0xfd’和’0xfe 0xfc’来分别表示0xff字节、0x00字节和0xfe字节。数据记录终止符也可以由转义符字节和一非0x00字节组成。
本发明提供的NOR型闪存上的数据记录的处理方法和装置,根据预定的字节转换规则对数据记录进行转换,将转换后的数据记录写入NOR型闪存的未写入区域,并将具有相同记录序号的原数据记录的所有字节都修改为0x00。进一步,在写入前进行是否可以替换原数据记录的判断,在能够替换的情况下直接在原数据记录上进行修改。这样可以提高NOR型闪存的写入速度,减少了NOR型闪存的擦写次数,延长了NOR型闪存的使用寿命。
本发明还提供了一种包括NOR型闪存的嵌入式设备,包括 数据记录转换模块,用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块; 数据记录写入模块,用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
本发明的嵌入式设备的一个实施例中,还包括 数据记录更新模块,用于接收来自数据记录转换模块的数据记录,判断能否将NOR型闪存中具有相同记录序号的原数据记录修改为接收的数据记录,并在能够实现时执行所述修改,在不能够实现时将接收的数据记录发送给数据记录写入模块。
在本发明的嵌入式设备的另一个实施例中,数据记录转换模块包括 存储单元,用于存储字节转换规则; 转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
在本发明的嵌入式设备的一个实施例中,字节转换规则包括转义符,通过所述转义符和非0x00字节的组合来表示记录内容中的0x00字节、转义符字节、0xff字节。例如,字节转换规则中转义符为0xfe,通过双字节’0xfe0xfe’、’0xfe 0xfd’和’0xfe 0xfc’来分别表示0xff字节、0x00字节和0xfe字节。而终止符为0x00字节或者0xff字节。
本发明提供的嵌入式设备,根据预定的字节转换规则对数据记录进行转换,将转换后的数据记录写入NOR型闪存的未写入区域,并将具有相同记录序号的原数据记录的所有字节都修改为0x00。进一步,在写入前进行是否可以替换原数据记录的判断,在能够替换的情况下直接在原数据记录上进行修改。这样可以提高NOR型闪存的写入速度,减少了NOR型闪存的擦写次数,延长了NOR型闪存的使用寿命,增强了嵌入式设备的稳定性。
虽然已经详细描述本发明的优选实施例,但是应当理解,在不脱离本发明精神和范围内,本领域的技术人员可以对本发明作出各种的改变、替换和变更。所以本发明的范围以权利要求的范围为准。
权利要求
1.一种处理NOR型闪存上数据记录的方法,其特征在于,每条数据记录包括记录序号和记录内容,包括步骤
a,根据预定的字节转换规则对数据记录进行转换,该字节转换规则用于将数据记录中的字节转换为不包括0x00字节和0xff字节的表示;
b,将转换后的数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
2.如权利要求1所述的方法,其特征在于,在将转换后的数据记录写入NOR型闪存的未写入区域之前包括
判断能否将所述具有相同记录序号的原数据记录修改为所述转换后的数据记录,并在能够实现时执行所述修改。
3.如权利要求2所述的方法,其特征在于,在判断不能实现所述修改时,包括步骤
判断能否将所述转换后的数据记录写入NOR型闪存的未写入区域,在不能写入时,备份存储的所有数据记录,对NOR型闪存进行块擦除操作,用所述转换后的数据记录替换所述原数据记录,将所有的数据记录写入NOR型闪存的未写入区域。
4.如权利要求1或2或3所述的方法,其特征在于,所述字节转换规则包括转义符,通过所述转义符和非0x00字节的组合来表示记录内容中的0x00字节、转义符字节、0xff字节。
5.如权利要求4所述的方法,其特征在于,所述记录序号的字节数为n,所述字节转换规则中用于转换记录序号的规则满足如下等式
vi=(vsn/N(n-i))%N+1,i=1,...,n
其中,vi为经过转换的记录序号的第i个字节的值,vsn为该数据记录的记录序号的值,N为大于1小于等于253的整数。
6.如权利要求1或2或3所述的方法,其特征在于,所述终止符为0x00字节或者0xff字节。
7.如权利要求1或2或3所述的方法,其特征在于,包括步骤
对记录内容进行排序,将排序后的序号作为数据记录的记录序号。
8.一种处理NOR型闪存上数据记录的装置,其特征在于,包括
数据记录转换模块,用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块;
数据记录写入模块,用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
9.如权利要求8所述的装置,其特征在于,还包括
数据记录更新模块,用于接收来自数据记录转换模块的数据记录,判断能否将NOR型闪存中具有相同记录序号的原数据记录修改为接收的数据记录,并在能够实现时执行所述修改,在不能够实现时将接收的数据记录发送给数据记录写入模块。
10.如权利要求8或9所述的装置,其特征在于,所述数据记录转换模块包括存储单元和转换单元,其中,
存储单元,用于存储字节转换规则;
转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
11.如权利要求8或9所述的装置,其特征在于,所述字节转换规则包括转义符,通过所述转义符和非0x00字节的组合来表示记录内容中的0x00字节、转义符字节、0xff字节。
12.一种包括NOR型闪存的嵌入式设备,其特征在于,包括
数据记录转换模块,用于根据预定的字节转换规则将数据记录转换为不包括0x00字节和0xff字节的表示,并将转换后的数据记录发送给数据记录写入模块;
数据记录写入模块,用于接收数据记录,将数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。
13,如权利要求12所述的嵌入式设备,其特征在于,还包括
数据记录更新模块,用于接收来自数据记录转换模块的数据记录,判断能否将NOR型闪存中具有相同记录序号的原数据记录修改为接收的数据记录,并在能够实现时执行所述修改,在不能够实现时将接收的数据记录发送给数据记录写入模块。
14.如权利要求12或13所述的嵌入式设备,其特征在于,所述数据记录转换模块包括
存储单元,用于存储字节转换规则;
转换单元,用于接收输入的数据记录,根据从所述存储单元获取的字节转换规则对接收的数据记录进行转换,将转换后的数据记录发送给所述数据记录写入单元。
15.如权利要求12或13所述的嵌入式设备,其特征在于,所述字节转换规则包括转义符,通过所述转义符和非0x00字节的组合来表示记录内容中的0x00字节、转义符字节、0xff字节。
全文摘要
本发明提供一种处理NOR型闪存上的数据记录的方法、装置以及嵌入式设备。在该方法中,每条数据记录包括记录序号和记录内容,包括步骤根据预定的字节转换规则对数据记录进行转换,该字节转换规则用于将数据记录中的字节转换为不包括0x00字节和0xff字节的表示;将转换后的数据记录写入NOR型闪存的未写入区域,在数据记录的末端写入终止符,并将NOR型闪存中具有相同记录序号的原数据记录的所有字节修改为0x00。通过本发明的处理方法和装置及嵌入式设备,可以提高NOR型闪存的写入速度、减少NOR型闪存的擦写次数,从而延长NOR型闪存的寿命。
文档编号G06F12/06GK101101572SQ200710120149
公开日2008年1月9日 申请日期2007年8月10日 优先权日2007年8月10日
发明者岩 史, 张凤生 申请人:北京海尔集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1