应用于nandflash存储设备的快速读写方法技术

技术编号:8625858 阅读:207 留言:0更新日期:2013-04-25 22:51
本发明专利技术提供一种应用于nandflash存储设备的快速读写方法,包括一ECC控制寄存器和用于对管理字节区查错的管理查错分区,此ECC控制寄存器包括:管理字节使能位、左扇区数据使能位、右扇区数据使能位、错误校验使能位、管理字节长度控制位;读用户数据区中左扇区时,则使能ECC控制寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效;读一个由左、右两个扇区组成的用户数据区时,则使能ECC控制寄存器中左、右扇区数据使能位,如果用户数据区为第一用户数据区,则配置ECC控制寄存器中管理字节长度控制位有效。本发明专利技术提高了对nandflash存储设备的读写速度,又保证了加载信息准确性且硬件利用率。

【技术实现步骤摘要】

本专利技术涉及一种nandflash存储设备读写方法,具体涉及一种。
技术介绍
现在市场上新出的nandflash许多都要求存储类控制器支持以Ik字节为单位的ECC校验,以一个物理页大小为4k的nandflash为例,通常用户数据在一个实际物理页的存放方式为如附图1所示,nandflash内存由若干物理块组成,物理块包含若干个物理页,物理页包括管理字节区、若干个由至少两个扇区组成的用户数据区和若干个分别与所述用户数据区一一对应的错误校验区(ECC),每个错误校验区(ECC)用于校验并纠错其负责的用户数据区的错误代码,所述管理字节区用来建立逻辑页与物理页之间或者建立逻辑块与物理块之间的对应关系。管理理字节一般是存储控制器厂家根据自己的管理算法定义的几个字节,在实际应用中需要单独读取这部分数据用来建立逻辑页与物理页之间或者建立逻辑块与物理块之间的对应关系和提供其它用户管理信息。Ik用户数据包含用户数据两个扇区的数据。LBA: logical block address,逻辑块地址对应于用户一个扇区(512个字节)的数据,PC主端与存储类设备通信是以一个扇区(512个字节)为单位进行读写的。ECC: error correction code,错误校验(代码)。nandflash物理特性上使得其数据读写过程中会发生一定几率的错误,需要有个对应的错误检验和纠正的机制,所以存储控制器一般都提供ECC用于用户数据的检测和纠正.Nandflash的ECC,常见的算法有BCH和海明码; 当用户只需要Ik用户数据中前一个扇区或后一个扇区的数据,如果将整个Ik的数据都加载到存储控制器缓存中,势必存储控制器缓存需要多增加一个扇区大小的容量;另外本来只需要对一个扇区进行纠错,如果对整个Ik用户数据都进行纠错的话,必然降低了对nandflash的读速度。因此如何提高了对nandflash存储设备的读写速度,成为本领域技术人员努力的方向。
技术实现思路
本专利技术目的是提供一种,该方法,提高了对nandflash存储设备的读写速度,且保证了读写信息准确性且硬件利用率高。为达到上述目的,本专利技术采用的技术方案是一种,所述nandflash存储器由若干物理块组成,物理块包含若干个物理页,物理页包括管理字节区、若干个由左、右两个扇区组成的用户数据区和若干个分别与所述用户数据区一一对应的具有纠错功能的错误校验区(ECC),每个错误校验区(ECC)用于校验并纠错其负责的用户数据区中错误代码,所述管理字节区用来建立逻辑页与物理页之间的对应关系或者建立逻辑块与物理块之间的对应关系; 还包括一组ECC控制寄存器用于对管理字节区、用户数据区及错误校验区分别控制是否进行纠错,此ECC控制寄存器包括 管理字节使能位,用于控制是否对所述管理字节区进行纠错; 左扇区数据使能位,用于控制是否对所述用户数据区中一个扇区进行纠错处理; 右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理; 错误校验使能位,用于控制是否对所述错误校验区(ECC)进行纠错处理; 管理字节长度控制位,用于配置管理字节的长度,从而控制对物理页中使能的区域进行纠错,而对物理页中关闭的区域不进行纠错; 所述用户数据区包括一个第一用户数据区和至少一个第二用户数据区,所述错误校验区(ECC)包括一个第一错误校验区(ECC)和至少一个第二错误校验区(ECC),所述第一错误校验区(ECC)用于将其相应的第一用户数据区和管理字节区合在一起进行校验纠错编码;在对nandflash进行读操作时当在逻辑上读用户数据区中左扇区时,则使能ECC控制寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中,否则,发送读命令将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器的缓存中; 当在逻辑上读用户数据区中右扇区时,则使能ECC控制寄存器中右扇区数据使能位,如果右扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息和左扇区数据读入BCH模块解码查错,但不加载到控制器缓存中,将右扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否贝U,发送读命令将左扇区读到BCH模块解码查错,但不加载到控制器的缓存中,将扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错; 当在逻辑上读一个由左、右两个扇区组成的用户数据区时,则使能ECC控制寄存器中左、右扇区数据使能位,如果用户数据区为第一用户数据区,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否则,发送读命令将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错; 在对nandflash进行写操作时当对第一用户数据区中写数据时,将用户管理信息与待写入第一用户数据区的数据经BCH模块进行编码生成BCH码,再将用户管理信息、待写入第一用户数据区的数据和BCH码分别写入用户管理信息区、第一用户数据区和第一错误校验区(ECC); 当对第二用户数据区中写数据时,则管理字节长度控制位无效,再将待写入第二用户数据区的数据经BCH模块进行编码生成BCH码,再将待写入第二用户数据区的数据和BCH码分别写入第二用户数据区和第二错误校验区(ECC)。上述技术方案中的进一步改进方案如下1.上述方案中,所述物理页包括4个用户数据区,4个错误校验区(ECC)。2.上述方案中,所述用户管理信息区长度为8个字节,包括4个字节的管理字节和4个字节的CRC校验码。由于上述技术方案运用,本专利技术与现有技术相比具有下列优点和效果 本专利技术,其硬件在ECC控制寄存器提供了一个机制去使能或关闭相关区域数据是否需要纠错,所以如果我们只需要读取前一个扇区数据到存储控制器缓存中时,我们可以只使能左扇区数据区域,让整个Ik数据+BCH码需要经过ECC通道进行查错,但只需要读左扇区数据到存储控制器缓存中进行纠错;基于上面同样的原因,我们在实际读取数据时,可能只需要读取右扇区数据到存储控制器缓存中,而且存储控制器缓存就只能提供一个扇区的容量可用(多读出的数据会覆盖掉前面的有用数据),因此,我们在只需要读取后一个扇区数据到存储控制器缓存中时,可以配置ECC控制寄存器,只使能右扇区数据区域,将整个Ik数据+BCH码经过ECC通道进行查错,但只读右扇区数据到存储控制器缓存中进行纠错;又提高了对nandflash存储设备的读写速度。附图说明附图1为现有技术nandflash存储器结构示意 附图2为本专利技术nandflash存储器结构示意 附图3为本专利技术管理字节读操作流程 附图4为本专利技术ECC控制寄存器结构示意 附图5为本专利技术用户本文档来自技高网
...

【技术保护点】
一种应用于nandflash存储设备的快速读写方法,所述nandflash存储器由若干物理块组成,物理块包含若干个物理页,物理页包括管理字节区、若干个由左、右两个扇区组成的用户数据区和若干个分别与所述用户数据区一一对应的具有纠错功能的错误校验区(ECC),每个错误校验区(ECC)用于校验并纠错其负责的用户数据区中错误代码,所述管理字节区用来建立逻辑页与物理页之间的对应关系或者建立逻辑块与物理块之间的对应关系;其特征在于:还包括一组ECC控制寄存器用于对管理字节区、用户数据区及错误校验区分别控制是否进行纠错,此ECC控制寄存器包括:管理字节使能位,用于控制是否对所述管理字节区进行纠错;左扇区数据使能位,用于控制是否对所述用户数据区中一个扇区进行纠错处理;右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理;错误校验使能位,用于控制是否对所述错误校验区(ECC)进行纠错处理;管理字节长度控制位,用于配置管理字节的长度,从而控制对物理页中使能的区域进行纠错,而对物理页中关闭的区域不进行纠错;所述用户数据区包括一个第一用户数据区和至少一个第二用户数据区,所述错误校验区(ECC)包括一个第一错误校验区(ECC)和至少一个第二错误校验区(ECC),所述第一错误校验区(ECC)用于将其相应的第一用户数据区和管理字节区合在一起进行校验纠错编码;在对nandflash进行读操作时:当在逻辑上读用户数据区中左扇区时,则使能ECC控制寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中,否则,发送读命令将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器的缓存中;当在逻辑上读用户数据区中右扇区时,则使能ECC控制寄存器中右扇区数据使能位,如果右扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息和左扇区数据读入BCH模块解码查错,但不加载到控制器缓存中,将右扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否则,发送读命令将左扇区读到BCH模块解码查错,但不加载到控制器的缓存中,将扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错;当在逻辑上读一个由左、右两个扇区组成的用户数据区时,则使能ECC控制寄存器中左、右扇区数据使能位,如果用户数据区为第一用户数据区,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,否则,发送读命令将用户数据区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错;在对nandflash进行写操作时:当对第一用户数据区中写数据时,将用户管理信息与待写入第一用户数据区的数据经BCH模块进行编码生成BCH码,再将用户管理信息、待写入第一用户数据区的数据和BCH码分别写入用户管理信息区、第一用户数据区和第一错误校验区(ECC);当对第二用户数据区中写数据时,则管理字节长度控制位无效,再将待写入第二用户数据区的数据经BCH模块进行编码生成BCH码,再将待写入第二用户数据区的数据和BCH码分别写入第二用户数据区和第二错误校验区(ECC)。...

【技术特征摘要】
1.一种应用于nandflash存储设备的快速读写方法,所述nandflash存储器由若干物理块组成,物理块包含若干个物理页,物理页包括管理字节区、若干个由左、右两个扇区组成的用户数据区和若干个分别与所述用户数据区一一对应的具有纠错功能的错误校验区(ECC),每个错误校验区(ECC)用于校验并纠错其负责的用户数据区中错误代码,所述管理字节区用来建立逻辑页与物理页之间的对应关系或者建立逻辑块与物理块之间的对应关系;其特征在于 还包括一组ECC控制寄存器用于对管理字节区、用户数据区及错误校验区分别控制是否进行纠错,此ECC控制寄存器包括 管理字节使能位,用于控制是否对所述管理字节区进行纠错; 左扇区数据使能位,用于控制是否对所述用户数据区中一个扇区进行纠错处理; 右扇区数据使能位,用于控制是否对所述用户数据区中另一个扇区进行纠错处理; 错误校验使能位,用于控制是否对所述错误校验区(ECC)进行纠错处理; 管理字节长度控制位,用于配置管理字节的长度,从而控制对物理页中使能的区域进行纠错,而对物理页中关闭的区域不进行纠错; 所述用户数据区包括一个第一用户数据区和至少一个第二用户数据区,所述错误校验区(ECC)包括一个第一错误校验区(ECC)和至少一个第二错误校验区(ECC),所述第一错误校验区(ECC)用于将其相应的第一用户数据区和管理字节区合在一起进行校验纠错编码;在对nandflash进行读操作时当在逻辑上读用户数据区中左扇区时,则使能ECC控制寄存器中左扇区数据使能位,如果左扇区位于第一用户数据区内,则配置ECC控制寄存器中管理字节长度控制位有效(长度为8),发送读命令将用户管理信息读入BCH模块解码查错,但不加载到控制器缓存中,将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进行纠错,再将右扇区读到BCH模块解码查错,但不加载到控制器缓存中,否则,发送读命令将左扇区数据读到BCH模块解码查错,并加载到控制器缓存中进...

【专利技术属性】
技术研发人员:郑茳肖佐楠匡启和王廷平薛毅
申请(专利权)人:苏州国芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1