用于flash存储器的高可靠性数据读取方法_2

文档序号:8269685阅读:来源:国知局
及错误校验区分别控制是 否进行纠错,此ECC控制寄存器包括: 管理字节使能位,用于控制是否对所述管理字节区进行纠错; 左扇区数据使能位,用于控制是否对所述用户数据区中一个扇区进行纠错处理; 右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理; 错误校验使能位,用于控制是否对所述错误校验区(ECC)进行纠错处理; 管理字节长度控制位,用于配置管理字节的长度,从而控制对物理页中使能的区域进 行纠错,而对物理页中关闭的区域不进行纠错; 所述用户数据区包括一个第一用户数据区和至少一个第二用户数据区,所述错误校验 区(ECC)包括一个第一错误校验区(ECC)和至少一个第二错误校验区(ECC),所述第一错误 校验区(ECC)用于将其相应的第一用户数据区和管理字节区合在一起进行校验纠错编码; 在对nandflash进行读操作时:当在逻辑上读用户数据区中左扇区时,则使能ECC控制 寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器 中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查 错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存 中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中,否则,发送读 命令将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区 读到BCH模块解码查错,但不加载到控制器的缓存中; 当在逻辑上读用户数据区中右扇区时,则使能ECC控制寄存器中右扇区数据使能位, 如果右扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效 (长度为8),发送读命令将用户管理信息和左扇区数据读入BCH模块解码查错,但不加载到 控制器缓存中,将右扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否 贝1J,发送读命令将左扇区读到BCH模块解码查错,但不加载到控制器的缓存中,将扇区数据 读到BCH模块解码查错,并加载到控制器缓存中进行纠错; 当在逻辑上读一个由左、右两个扇区组成的用户数据区时,则使能ECC控制寄存器中 左、右扇区数据使能位,如果用户数据区为第一用户数据区,则配置ECC控制寄存器中管理 字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不 加载到控制器缓存中,将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中 进行纠错,否则,发送读命令将用户数据区数据读到BCH模块解码查错,并加载到控制器缓 存中进行纠错; 在对nandflash进行写操作时:当对第一用户数据区中写数据时,将用户管理信息与 待写入第一用户数据区的数据经BCH模块进行编码生成BCH码,再将用户管理信息、待写入 第一用户数据区的数据和BCH码分别写入用户管理信息区、第一用户数据区和第一错误校 验区(ECC); 当对第二用户数据区中写数据时,则管理字节长度控制位无效,再将待写入第二用户 数据区的数据经BCH模块进行编码生成BCH码,再将待写入第二用户数据区的数据和BCH 码分别写入第二用户数据区和第二错误校验区(ECC)。
[0013] 上述物理页包括4个用户数据区,4个错误校验区(ECC),上述用户管理字节为4 个字节,CRC校验码长度为4个字节。
[0014] 上述内容进一步阐述如下。
[0015] 对管理字节会单独采用一个查错纠错算法: 从实际分析和测试的情况来看,绝大多数nandflash的绝大部分物理页这几个字节都 没有错,只有极少数物理页有错。我们只采用一个简单的查错算法,只判定有没有错,如有 错,则采用将管理字节和后面的Ik数据作为一个整体,利用原有的ECC模块进行纠错,如没 错,系统就直接获取管理字节数据。
[0016] 用户只需要读一个扇区的数据 我们将实际存放的每一个最小读写单位数据分成4个区域,如表1所示: 表1
【主权项】
1. 一种用于flash存储器的高可靠性数据读取方法,所述nan壯lash存储器由若干物 理块组成,物理块包含若干个物理页,物理页包括管理字节区、若干个由左、右两个扇区组 成的用户数据区和若干个分别与所述用户数据区一一对应的具有纠错功能的错误校验区 (ECC),每个错误校验区(ECC)用于校验并纠错其负责的用户数据区中错误代码,所述管理 字节区用来建立逻辑页与物理页之间的对应关系或者建立逻辑块与物理块之间的对应关 系;其特征在于: 还包括一组ECC控制寄存器用于对管理字节区、用户数据区及错误校验区分别控制是 否进行纠错,此ECC控制寄存器包括: 管理字节使能位,用于控制是否对所述管理字节区进行纠错; 左扇区数据使能位,用于控制是否对所述用户数据区中一个扇区进行纠错处理; 右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理; 错误校验使能位,用于控制是否对所述错误校验区(ECC)进行纠错处理; 管理字节长度控制位,用于配置管理字节的长度,从而控制对物理页中使能的区域进 行纠错,而对物理页中关闭的区域不进行纠错; 所述用户数据区包括一个第一用户数据区和至少一个第二用户数据区,所述错误校验 区(ECC)包括一个第一错误校验区(ECC)和至少一个第二错误校验区(ECC),所述第一错误 校验区(ECC)用于将其相应的第一用户数据区和管理字节区合在一起进行校验纠错编码; 在对nan壯lash进行读操作时:当在逻辑上读用户数据区中左扇区时,则使能ECC控制 寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器 中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查 错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存 中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中,否则,发送读 命令将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区 读到BCH模块解码查错,但不加载到控制器的缓存中; 当在逻辑上读用户数据区中右扇区时,则使能ECC控制寄存器中右扇区数据使能位, 如果右扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效 (长度为8),发送读命令将用户管理信息和左扇区数据读入BCH模块解码查错,但不加载到 控制器缓存中,将右扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否 贝1J,发送读命令将左扇区读到BCH模块解码查错,但不加载到控制器的缓存中,将扇区数据 读到BCH模块解码查错,并加载到控制器缓存中进行纠错; 当在逻辑上读一个由左、右两个扇区组成的用户数据区时,则使能ECC控制寄存器中 左、右扇区数据使能位,如果用户数据区为第一用户数据区,则配置ECC控制寄存器中管理 字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不 加载到控制器缓存中,将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中 进行纠错,否则,发送读命令将用户数据区数据读到BCH模块解码查错,并加载到控制器缓 存中进行纠错。
【专利摘要】本发明提供一种用于flash存储器的高可靠性数据读取方法,包括一组ECC控制寄存器,此ECC控制寄存器包括:管理字节使能位、左扇区数据使能位、右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理;在对nandflash进行读操作时:当在逻辑上读用户数据区中左扇区时,则使能ECC控制寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中。本发明提高了对nandflash存储设备的读写速度,又保证了加载信息准确性且硬件利用率。
【IPC分类】G06F11-10, G06F3-06
【公开号】CN104598169
【申请号】CN201510039315
【发明人】郑茳, 肖佐楠, 匡启和, 王廷平, 薛毅
【申请人】苏州国芯科技有限公司
【公开日】2015年5月6日
【申请日】2012年12月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1