一种Flash闪存的写操作方法及装置与流程

文档序号:12123699阅读:来源:国知局

技术特征:

1.一种Flash闪存的写操作方法,所述Flash闪存的页为行与列的矩阵结构,每一行对应一个EEPROM地址,其特征在于,包括:

接收对EEPROM地址的写操作指令,获取所述Flash闪存中与所述EEPROM地址对应的目标地址;

判断所述目标地址是否能够写入所述写操作指令对应的待写入数据;

当所述目标地址能够写入所述写操作指令对应的待写入数据时,将所述待写入数据写入所述目标地址;

当所述目标地址中无法写入所述待写入数据时,在所述目标地址所处的Flash闪存的页上查找空白列地址,并将所述待写入数据写入至所述空白列地址中。

2.如权利要求1所述的Flash闪存的写操作方法,其特征在于,所述获取所述Flash闪存中与所述EEPROM地址对应的目标地址,包括:

根据预设的EEPROM地址与Flash闪存的映射关系,确定所述EEPROM地址对应所述Flash闪存中的第P页第X行;

确定所述目标地址对应的目标行;

根据所述目标行的行写入状态标识,以及所述目标行中所有适于写入数据的列地址所对应的列写入状态标识,确定所述目标地址对应的目标列;

其中,所述目标行的行写入状态标识适于标识所述目标行是否写满;所述列写入状态标识适于标识所述适于写入数据的列地址中是否写入数据。

3.如权利要求2所述的Flash闪存的写操作方法,其特征在于,所述确定所述目标地址对应的目标行,包括:

获取第X行的行写入状态标识;

当所述第X行未写满时,确定所述目标行为所述第X行;

当所述第X行的行写入状态标识为写满,且所述第X行对应的本行行偏移量为0时,确定所述目标行为所述第X行;

当所述第X行写满,且所述第X行对应的本行行偏移量非0时,根据所述第X行对应的本行行偏移量查找跳转行;

当所述跳转行对应的其他行行偏移量为0时,确定所述目标行为所述跳转行;

当所述跳转行对应的其他行行偏移量非0时,根据所述跳转行对应的本行行偏移量继续查找下一跳转行,直至查找到的跳转行对应的其他行行偏移量为0时,确定所述目标行为其他行行偏移量为0的跳转行;

其中,所述本行行偏移量为本行与所述目标行之间的间隔行数;所述其他行行偏移量为跳转至本行的其他行再次跳转后的行与本行的间隔行数。

4.如权利要求3所述的Flash闪存的写操作方法,其特征在于,所述确定所述目标地址对应的目标列,包括:

当所述目标行未写满时,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最低位的1,并将与所述最低位的1对应的列相邻的低位列作为所述目标列;或,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最高位的1,并将与所述最高位的1对应的列相邻的高位列作为所述目标列;

当所述目标行写满时,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最低位的1,并将所述最低位的1对应的列作为所述目标列;

若所述所有适于写入数据的列地址所对应的列写入状态标识均为1,则将最低位或最高位的1对应的列作为所述目标列。

5.如权利要求4所述的Flash闪存的写操作方法,其特征在于,所述目标地址包括两个字节,分别为高位字节以及低位字节,所述判断所述目标地址是否能够写入所述写操作指令对应的待写入数据,包括:

读取所述目标地址的高位字节数据或低位字节数据;

将读取出的字节数据与所述待写入数据进行运算,根据运算结果判断所述读取出的字节数据是否能够更新为所述待写入数据;

当所述读取出的字节数据能够更新为所述待写入数据时,判定所述目标地址能够写入所述待写入数据;

当所述读取出的字节数据不能够更新为所述待写入数据时,若所述读取出的字节数据为所述低位字节数据,且所述待写入数据为全1时,则判定所述目标地址中无法写入所述待写入数据;

若所述读取出的字节数据为所述低位字节数据,且所述待写入数据为非全1时,则判定所述目标地址中能够写入所述待写入数据;

若所述读取出的字节数据为所述高位字节数据,且所述高位字节数据无法更新为所述待写入数据时,判定所述目标地址无法写入所述待写入数据。

6.如权利要求5所述的Flash闪存的写操作方法,其特征在于,所述读取所述目标地址的高位字节数据或低位字节数据,包括:

当所述高位字节数据以及所述低位字节数据均为全1时,从所述目标地址中读取所述低位字节数据;

当所述高位字节数据为全1且所述低位字节数据为非全1时,或当所述高位字节数据以及所述低位字节数据均为非全1时,从所述目标地址中读取所述高位字节数据。

7.如权利要求5所述的Flash闪存的写操作方法,其特征在于,所述将读取出的字节数据与所述待写入数据进行运算,根据运算结果判断所述读取出的字节数据是否能够更新为所述待写入数据,包括:

采用公式T=&(A|~B)计算所述读取出的字节数据A对应的写入状态标识;

当T=1时,判定所述字节数据A能够更新为所述待写入数据;

当T=0时,判定所述字节数据A无法更新为所述待写入数据;

其中,B为所述待写入数据,~B为取B的反码,A|~B为将A与(~B)按位或操作,&(A|~B)为将A|~B结果中的所有位进行与操作,T的长度为1比特。

8.如权利要求5所述的Flash闪存的写操作方法,其特征在于,还包括:

当所述读取出的字节数据能够被更新为所述待写入数据时,在判定所述目标地址能够写入所述待写入数据之后,将所述待写入数据写入至所述读取出的字节数据对应的所述目标地址的字节;

当所述待写入数据为非全1时,在判定所述目标地址中能够写入所述待写入数据之后,将所述待写入数据写入至所述目标地址的高位字节,并保持所述目标地址对应的列写入状态标识不变,以及保持所述目标地址对应的目标行的行写入状态标识不变。

9.如权利要求2~8任一项所述的Flash闪存的写操作方法,其特征在于,所述在所述目标地址所处的Flash闪存的页上,查找空白列地址,包括:

当所述目标行为第X行时,在所述目标行中,依次从低位至高位查找与所述目标地址相邻的低位空白列地址;当所述目标行不是第X行时,在所述目标行中,依次从高位至低位查找与所述目标地址相邻的高位空白列地址;

或,当所述目标行为第X行时,在所述目标行中,依次从高位至低位查找与所述目标地址相邻的高位空白列地址;当所述目标行不是第X行时,在所述目标行中,依次从低位至高位查找与所述目标地址相邻的低位空白列地址。

10.如权利要求9所述的Flash闪存的写操作方法,其特征在于,所述将所述待写入数据写入至所述空白列地址中,包括:

当所述空白列地址包括两个字节时,将所述待写入数据写入至所述空白列地址的低位字节,并更新写入数据后的所述空白列地址对应的所述列写入状态标识。

11.如权利要求9所述的Flash闪存的写操作方法,其特征在于,所述将所述待写入数据写入至所述空白列地址中,包括:

当所述目标行中所有适于写入数据的列地址所对应的列写入状态标识中,仅存在一个1,且所述目标行未写满时,将所述待写入数据写入至所述列写入状态标识为1对应的空白列地址中,保持写入所述待写入数据的所述空白列地址的列写入状态标识不变,并将所述目标行的行写入状态标识更新为写满状态标识;

当所述目标行中所有适于写入数据的列地址所对应的列写入状态标识中,仅存在一个1,且所述目标行写满时,从所述目标行开始,向下依次扫描与所述目标行相邻的M个其他行各自对应的适于写入数据的列地址所对应的列写入状态标识;

当所述目标行为第X行时,从所述M个其他行中查找到最低N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最低位列地址,并将所述第Z行的最低位列地址对应的列写入状态标识更新;当所述目标行非第X行时,从所述M个其他行中查找到最高N位均为1的第Z行,将所述待写入所述写入至所述第Z行的最高位列地址,并将所述第Z行的最高位列地址对应的列写入状态标识更新;或:当所述目标行为第X行时,从所述M个其他行中查找到最高N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最高位列地址,并将所述第Z行的最高位列地址对应的列写入状态标识更新;当所述目标行非第X行时,从所述M个其他行中查找到最低N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最低位列地址,并将所述第Z行的最低位列地址对应的列写入状态标识更新;其中,N≥2。

12.如权利要求11所述的Flash闪存的写操作方法,其特征在于,当未查找到最低N位均为1或最高N位均为1的第Z行时,还包括:

对所述第P页的Flash闪存的页进行备份操作;

在备份操作完成之后,对所述第P页的Flash闪存进行擦除操作。

13.一种Flash闪存的写操作装置,所述Flash闪存的页为行与列的矩阵结构,每一行对应一个EEPROM地址,其特征在于,包括:

接收单元,用于接收对EEPROM地址的写操作指令;

获取单元,用于获取所述Flash闪存中与所述EEPROM地址对应的目标地址;

判断单元,用于判断所述目标地址是否能够写入所述写操作指令对应的待写入数据;

查找单元,用于当所述判断单元判定所述目标地址中无法写入所述待写入数据时,在所述目标地址所处的Flash闪存的页上查找空白列地址;

写入单元,用于将所述待写入数据写入至所述查找单元查找到的空白列地址中,以及用于当所述目标地址能够写入所述写操作指令对应的待写入数据时,将所述待写入数据写入所述目标地址。

14.如权利要求13所述的Flash闪存的写操作装置,其特征在于,所述获取单元,用于根据预设的EEPROM地址与Flash闪存的映射关系,确定所述EEPROM地址对应所述Flash闪存中的第P页第X行;确定所述目标地址对应的目标行;根据所述目标行的行写入状态标识,以及所述目标行中所有适于写入数据的列地址所对应的列写入状态标识,确定所述目标地址对应的目标列;其中:所述目标行的行写入状态标识适于标识所述目标行是否写满;所述列写入状态标识适于标识所述适于写入数据的列地址中是否写入数据。

15.如权利要求14所述的Flash闪存的写操作装置,其特征在于,所述获取单元,用于获取第X行的行写入状态标识;当所述第X行未写满时,确定所述目标行为所述第X行;当所述第X行写满,且所述第X行对应的本行行偏移量为0时,确定所述目标行为所述第X行;当所述第X行的行写入状态标识为写满,且所述第X行对应的本行行偏移量非0时,根据所述第X行对应的本行行偏移量查找跳转行;当所述跳转行对应的其他行行偏移量为0时,确定所述目标行为所述跳转行;当所述跳转行对应的其他行行偏移量非0时,根据所述跳转行对应的本行行偏移量继续查找下一跳转行,直至查找到的跳转行对应的其他行行偏移量为0时,确定所述目标行为其他行行偏移量为0的跳转行;其中,所述本行行偏移量为本行与所述目标行之间的间隔行数;所述其他行行偏移量为跳转至本行的其他行再次跳转后的行与本行的间隔行数。

16.如权利要求15所述的Flash闪存的写操作装置,其特征在于,所述获取单元,用于当所述目标行未写满时,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最低位的1,并将与所述最低位的1对应的列相邻的低位列作为所述目标列;或,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最高位的1,并将与所述最高位的1对应的列相邻的高位列作为所述目标列;当所述目标行写满时,在所述所有适于写入数据的列地址所对应的列写入状态标识中,找到最低位的1,并将所述最低位的1对应的列作为所述目标列;若所述所有适于写入数据的列地址所对应的列写入状态标识均为1,则将最低位或最高位的1对应的列作为所述目标列。

17.如权利要求16所述的Flash闪存的写操作装置,其特征在于,当所述目标地址包括高位字节以及低位字节时,所述判断单元,用于读取所述目标地址的高位字节数据或低位字节数据;将读取出的字节数据与所述待写入数据进行运算,根据运算结果判断所述读取出的字节数据是否能够更新为所述待写入数据;当所述读取出的字节数据能够更新为所述待写入数据时,判定所述目标地址能够写入所述待写入数据;当所述读取出的字节数据不能够更新为所述待写入数据时,若所述读取出的字节数据为所述低位字节数据,且所述待写入数据为全1时,则判定所述目标地址中无法写入所述待写入数据;若所述读取出的字节数据为所述低位字节数据,且所述待写入数据为非全1时,则判定所述目标地址中能够写入所述待写入数据;若所述读取出的字节数据为所述高位字节数据,且所述高位字节数据无法更新为所述待写入数据时,判定所述目标地址无法写入所述待写入数据。

18.如权利要求17所述的Flash闪存的写操作装置,其特征在于,所述判断单元,用于当所述高位字节数据以及所述低位字节数据均为全1时,从所述目标地址中读取所述低位字节数据;当所述高位字节数据为全1且所述低位字节数据为非全1时,或当所述高位字节数据以及所述低位字节数据均为非全1时,从所述目标地址中读取所述高位字节数据。

19.如权利要求17所述的Flash闪存的写操作装置,其特征在于,所述判断单元,用于采用公式T=&(A|~B)计算所述读取出的字节数据A对应的写入状态标识;当T=1时,判定所述字节数据A能够更新为所述待写入数据;当T=0时,判定所述字节数据A无法更新为所述待写入数据;其中,B为所述待写入数据,~B为取B的反码,A|~B为将A与(~B)按位或操作,&(A|~B)为将A|~B结果中的所有位进行与操作,T的长度为1比特。

20.如权利要求17所述的Flash闪存的写操作装置,其特征在于,所述写入单元,还用于当所述读取出的字节数据能够被更新为所述待写入数据时,在判定所述目标地址能够写入所述待写入数据之后,将所述待写入数据写入至所述读取出的字节数据对应的所述目标地址的字节;当所述待写入数据为非全1时,在判定所述目标地址中能够写入所述待写入数据之后,将所述待写入数据写入至所述目标地址的高位字节,并保持所述目标地址对应的列写入状态标识不变,以及保持所述目标地址对应的目标行的行写入状态标识不变。

21.如权利要求14~20任一项所述的Flash闪存的写操作装置,其特征在于,所述查找单元,用于当所述目标行为第X行时,在所述目标行中,依次从低位至高位查找与所述目标地址相邻的低位空白列地址;当所述目标行不是第X行时,在所述目标行中,依次从高位至低位查找与所述目标地址相邻的高位空白列地址;或,当所述目标行为第X行时,在所述目标行中,依次从高位至低位查找与所述目标地址相邻的高位空白列地址;当所述目标行不是第X行时,在所述目标行中,依次从低位至高位查找与所述目标地址相邻的低位空白列地址。

22.如权利要求21所述的Flash闪存的写操作装置,其特征在于,所述写入单元,用于当所述空白列地址包括两个字节时,将所述待写入数据写入至所述空白列地址的低位字节,并更新写入数据后的所述空白列地址对应的所述列写入状态标识。

23.如权利要求21所述的Flash闪存的写操作装置,其特征在于,所述写入单元,用于当所述目标行中所有适于写入数据的列地址所对应的列写入状态标识中,仅存在一个1,且所述目标行未写满时,将所述待写入数据写入至所述列写入状态标识为1对应的空白列地址中,保持写入所述待写入数据的所述空白列地址的列写入状态标识不变,并将所述目标行的行写入状态标识更新为写满状态标识;当所述目标行中所有适于写入数据的列地址所对应的列写入状态标识中,仅存在一个1,且所述目标行写满时,从所述目标行开始,向下依次扫描与所述目标行相邻的M个其他行各自对应的适于写入数据的列地址所对应的列写入状态标识;当所述目标行为第X行时,从所述M个其他行中查找到最低N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最低位列地址,并将所述第Z行的最低位列地址对应的列写入状态标识更新;当所述目标行非第X行时,从所述M个其他行中查找到最高N位均为1的第Z行,将所述待写入所述写入至所述第Z行的最高位列地址,并将所述第Z行的最高位列地址对应的列写入状态标识更新;或:当所述目标行为第X行时,从所述M个其他行中查找到最高N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最高位列地址,并将所述第Z行的最高位列地址对应的列写入状态标识更新;当所述目标行非第X行时,从所述M个其他行中查找到最低N位均为1的第Z行,将所述待写入数据写入至所述第Z行的最低位列地址,并将所述第Z行的最低位列地址对应的列写入状态标识更新;其中,N≥2。

24.如权利要求23所述的Flash闪存的写操作装置,其特征在于,还包括:

备份单元,用于当未查找到最低N位均为1或最高N位均为1的第Z行时,对所述第P页的Flash闪存的页进行备份操作;

擦除单元,用于在备份操作完成之后,对所述第P页的Flash闪存进行擦除操作。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1