一种Nand Flash控制器和终端以及控制Nand Flash的方法技术

技术编号:15541336 阅读:248 留言:0更新日期:2017-06-05 10:47
一种快闪记忆体(Nand Flash)控制器和终端以及控制Nand Flash的方法和装置,包括:第一寄存器,第三寄存器,Nand Flash状态机电路,用于解析第一寄存器中的命令,当解析得到的命令为写入命令时,将第三寄存器中需要写入Nand Flash的数据写入双口随机存取存储器DPRAM信号输入输出电路中,并写入Nand Flash中;在将第二预设长度的数据写入Nand Flash后,读取ECC产生模块中的寄存器组中的冗余码写入到Nand Flash中;DPRAM信号输入输出电路,用于存储Nand Flash状态机电路写入的数据;ECC产生模块包括编码子模块和寄存器组;编码子模块,用于在Nand Flash状态机电路将DPRAN信号输入输出电路中需要写入Nand Flash的数据写入Nand Flash的过程中,根据预先配置的纠错能力对需要写入Nand Flash的数据进行编码运算得到冗余码,并存入寄存器组。

A Nand Flash controller and terminal, and method for controlling Nand Flash

A flash memory controller (Nand Flash) and Nand Flash terminal and control method and apparatus includes a first register, third registers, Nand Flash state machine circuit, for the analysis of the first register command, when parsed commands for a write command, third registers need to write Nand Flash write data to dual port random access memory DPRAM signal input and output circuit, and write Nand Flash; in second preset length data into Nand Flash, read ECC registers in the module of redundancy code is written to the Nand Flash; DPRAM signal input and output circuit, used to store Nand Flash state machine circuit written data; ECC encoding module includes sub module and register; encoding module, used in Nand Flash state machine circuit of DPRAN signal The input and output circuit to write Nand process Flash data into Nand Flash, according to the error correcting capability of pre configured encoding operations on the Nand to be written Flash data redundancy, and stored in a register group.

【技术实现步骤摘要】
一种NandFlash控制器和终端以及控制NandFlash的方法
本文涉及但不限于存储技术,尤指一种快闪记忆体(NandFlash)控制器和终端以及控制NandFlash的方法。
技术介绍
快闪记忆体(NandFlash)在手机、移动存储卡等大容量存储设备中得到了广泛的使用。如图1所示,为了保证数据读出时能进行误码检测和纠正,通常都是在数据写入NandFlash时,需要按一定规则写入一部分冗余数据,用纠错编解码电路进行错误检查和纠正(ECC,ErrorCodeCorrection)控制。相关的技术方案:相关用于NandFlash控制器的纠错编解码电路对于ECC的纠错能力不可配置,适应性会受到影响,随着纠错能力增加,纠错编解码电路的面积也会增加许多,这个时候NandFlash控制器的功耗产生的影响会比较明显。对于功耗较大的问题,可以通过时钟降频,时钟反向等方式降低NandFlash控制器的功耗,但是对于数据容量较大,纠错能力较强的ECC算法,降频会影响到编解码的时间,从而影响到读写速度,而相关提出的NandFlash控制器都是功耗低,面积小,对应的ECC能力也比较弱。目前国内外关于NandFlash控制器电路的研究和设计存在以下几个缺陷:第一,可扩展性差,这是因为绝大多数的NandFlash控制器中的纠错编解码电路都是基于某一个具体的应用系统或者某一款具体的NandFlash来设计的。第二,适应性差,有些NandFlash控制器没有数据校验功能,或者ECC校验能力较低,不能满足较大容量的NandFlash纠错要求。第三,功耗高,这主要是因为很多ECC的设计为了追求功能而使用了大量的寄存器,同时又不注意降低功耗。第四,传输速度慢。有些控制器的设计在低功耗设计中采用了降频等方式,以速度为代价换取了功耗的降低。
技术实现思路
本专利技术实施例提出了一种NandFlash控制器和终端以及控制NandFlash的方法,能够提高NandFlash控制器的可扩展性。本专利技术实施例提出了一种快闪记忆体NandFlash控制器,包括:第一寄存器,用于存储CPU存入的命令;第三寄存器,用于存储需要写入NandFlash的数据;NandFlash状态机电路,用于解析第一寄存器中的命令,当解析得到的命令为写入命令时,将第三寄存器中需要写入NandFlash的数据写入双口随机存取存储器DPRAM信号输入输出电路中,并将DPRAM信号输入输出电路中需要写入NandFlash的数据写入NandFlash中;在将第二预设长度的数据写入NandFlash后,读取ECC产生模块中的寄存器组中的冗余码,将冗余码写入到NandFlash中;DPRAM信号输入输出电路,用于存储NandFlash状态机电路写入的数据;ECC产生模块包括编码子模块和寄存器组;编码子模块,用于在NandFlash状态机电路将DPRAN信号输入输出电路中需要写入NandFlash的数据写入NandFlash的过程中,根据预先配置的纠错能力对需要写入NandFlash的数据进行编码运算得到冗余码,将计算得到的冗余码存入寄存器组;寄存器组,用于存储编码子模块写入的冗余码。可选的,所述NandFlash控制器还包括:第二寄存器,用于存取CPU存入读取的数据的地址;所述NandFlash状态机电路还用于:当所述解析得到的命令为读取命令时,根据所述第二寄存器中的地址以第三预设长度为单位依次读取NandFlash中需要读取的数据及对应的冗余码,并将读取的数据和冗余码写入DPRAM信号输入输出电路中,直到将长度为第二预设长度的整数倍的数据写入DPRAM信号输入输出电路中;当接收到编码子模块的纠正完成的信号,控制系统接口及中断电路产生中断信号;当CPU从第三寄存器中读取数据时,将DPRAM信号输入输出电路中纠正后的数据写入第三寄存器中;所述ECC产生模块还包括解码子模块;所述解码子模块,用于根据DPRAM信号输入输出电路中的冗余码对读取的第二预设长度的数据进行纠正,向NandFlash状态机电路发送纠正完成的信号。可选的,所述NandFlash状态机电路还用于:当所述解析得到的命令为写入命令时,控制所述ECC产生模块中的解码子模块为非工作状态;当所述解析得到的命令为读取命令时,控制所述ECC产生模块中的编码子模块为非工作状态。可选的,所述寄存器组的个数为N个;N为大于或等于1的整数;所述NandFlash状态机电路还用于:当所述解析得到的命令为写入命令时,根据预先配置的纠错能力确定需要的寄存器组的个数,将需要的寄存器组设置为工作状态,将其他的寄存器组设置为非工作状态。可选的,所述NandFlash状态机电路还用于:当所述解析得到的命令为设置指令时,根据设置指令设置对应的参数。可选的,所述NandFlash状态机电路具体用于:解析所述第一寄存器中的命令,当所述解析得到的命令为写入命令时,将所述第三寄存器中需要写入NandFlash的数据中长度为第二预设长度的整数倍的数据写入所述DPRAM信号输入输出电路中,并将所述DPRAM信号输入输出电路中长度为第二预设长度的整数倍的数据中第二预设长度的数据以第三预设长度为单位依次写入所述NandFlash中;在将第二预设长度的数据写入所述NandFlash后,读取所述ECC产生模块中的寄存器组中的冗余码,将所述冗余码写入到所述NandFlash中;继续执行将长度为第二预设长度的整数倍的数据中下一个第二预设长度的数据以第三预设长度为单位依次写入NandFlash中的步骤,直到将长度为第二预设长度的整数倍的数据及其对应的冗余码全部写入NandFlash;继续执行将需要写入NandFlash的数据中下一个长度为第二预设长度的整数倍的数据写入DPRAM信号输入输出电路中的步骤,直到将需要写入NandFlash的数据全部写入DPRAM信号输入输出电路中。可选的,所述NandFlash状态机电路具体用于:以第一预设长度为单位依次将需要写入NandFlash的数据写入DPRAM信号输入输出电路中,并将DPRAM信号输入输出电路中需要写入NandFlash的数据以第三预设长度为单位依次写入NandFlash中;在将第二预设长度的数据写入NandFlash后,读取ECC产生模块中的寄存器组中的冗余码,将冗余码写入到NandFlash中;继续执行以第一预设长度为单位依次将需要写入NandFlash的数据写入DPRAM信号输入输出电路中的步骤,直到将需要写入NandFlash的数据全部写入DPRAM信号输入输出电路中。可选的,所述纠错能力包括:512字节Bytes数据纠正4比特bits或8bits或15bits错误,或1KBytes数据纠正24bits或40bits或60bits错误。本专利技术实施例还提出了一种终端,包括:上述任意一个快闪记忆体NandFlash控制器;还包括:NandFlash,用于存储CPU写入的数据;CPU,用于将命令存入第一寄存器;当存入的命令为写入命令时,将需要写入NandFlash的数据存入第三寄存器;当存入的命令为读取命令时,将读取的数据的地址存入第二寄存器。可选的,所述CPU还用于:检测到系统接口及中断电路产生的中断信号后,从所述第三本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201610994244.html" title="一种Nand Flash控制器和终端以及控制Nand Flash的方法原文来自X技术">Nand Flash控制器和终端以及控制Nand Flash的方法</a>

【技术保护点】
一种快闪记忆体Nand Flash控制器,其特征在于,包括:第一寄存器,用于存储CPU存入的命令;第三寄存器,用于存储需要写入Nand Flash的数据;Nand Flash状态机电路,用于解析第一寄存器中的命令,当解析得到的命令为写入命令时,将第三寄存器中需要写入Nand Flash的数据写入双口随机存取存储器DPRAM信号输入输出电路中,并将DPRAM信号输入输出电路中需要写入Nand Flash的数据写入Nand Flash中;在将第二预设长度的数据写入Nand Flash后,读取ECC产生模块中的寄存器组中的冗余码,将冗余码写入到Nand Flash中;DPRAM信号输入输出电路,用于存储Nand Flash状态机电路写入的数据;ECC产生模块包括编码子模块和寄存器组;编码子模块,用于在Nand Flash状态机电路将DPRAN信号输入输出电路中需要写入Nand Flash的数据写入Nand Flash的过程中,根据预先配置的纠错能力对需要写入Nand Flash的数据进行编码运算得到冗余码,将计算得到的冗余码存入寄存器组;寄存器组,用于存储编码子模块写入的冗余码。

【技术特征摘要】
1.一种快闪记忆体NandFlash控制器,其特征在于,包括:第一寄存器,用于存储CPU存入的命令;第三寄存器,用于存储需要写入NandFlash的数据;NandFlash状态机电路,用于解析第一寄存器中的命令,当解析得到的命令为写入命令时,将第三寄存器中需要写入NandFlash的数据写入双口随机存取存储器DPRAM信号输入输出电路中,并将DPRAM信号输入输出电路中需要写入NandFlash的数据写入NandFlash中;在将第二预设长度的数据写入NandFlash后,读取ECC产生模块中的寄存器组中的冗余码,将冗余码写入到NandFlash中;DPRAM信号输入输出电路,用于存储NandFlash状态机电路写入的数据;ECC产生模块包括编码子模块和寄存器组;编码子模块,用于在NandFlash状态机电路将DPRAN信号输入输出电路中需要写入NandFlash的数据写入NandFlash的过程中,根据预先配置的纠错能力对需要写入NandFlash的数据进行编码运算得到冗余码,将计算得到的冗余码存入寄存器组;寄存器组,用于存储编码子模块写入的冗余码。2.根据权利要求1所述的NandFlash控制器,其特征在于,所述NandFlash控制器还包括:第二寄存器,用于存取CPU存入读取的数据的地址;所述NandFlash状态机电路还用于:当所述解析得到的命令为读取命令时,根据所述第二寄存器中的地址以第三预设长度为单位依次读取NandFlash中需要读取的数据及对应的冗余码,并将读取的数据和冗余码写入DPRAM信号输入输出电路中,直到将长度为第二预设长度的整数倍的数据写入DPRAM信号输入输出电路中;当接收到编码子模块的纠正完成的信号,控制系统接口及中断电路产生中断信号;当CPU从第三寄存器中读取数据时,将DPRAM信号输入输出电路中纠正后的数据写入第三寄存器中;所述ECC产生模块还包括解码子模块;所述解码子模块,用于根据DPRAM信号输入输出电路中的冗余码对读取的第二预设长度的数据进行纠正,向NandFlash状态机电路发送纠正完成的信号。3.根据权利要求1或2所述的NandFlash控制器,其特征在于,所述NandFlash状态机电路还用于:当所述解析得到的命令为写入命令时,控制所述ECC产生模块中的解码子模块为非工作状态;当所述解析得到的命令为读取命令时,控制所述ECC产生模块中的编码子模块为非工作状态。4.根据权利要求1或2所述的NandFlash控制器,其特征在于,所述寄存器组的个数为N个;N为大于或等于1的整数;所述NandFlash状态机电路还用于:当所述解析得到的命令为写入命令时,根据预先配置的纠错能力确定需要的寄存器组的个数,将需要的寄存器组设置为工作状态,将其他的寄存器组设置为非工作状态。5.根据权利要求1或2所述的NandFlash控制器,其特征在于,所述NandFlash状态机电路还用于:当所述解析得到的命令为设置指令时,根据设置指令设置对应的参数。6.根据权利要求1或2所述的NandFlash控制器,其特征在于,所述NandFlash状态机电路具体用于:解析所述第一寄存器中的命令,当所述解析得到的命令为写入命令时,将所述第三寄存器中需要写入NandFlash的数据中长度为第二预设长度的整数倍的数据写入所述DPRAM信号输入输出电路中,并将所述DPRAM信号输入输出电路中长度为第二预设长度的整数倍的数据中第二预设长度的数据以第三预设长度为单位依次写入所述NandFlash中;在将第二预设长度的数据写入所述NandFlash后,读取所述ECC产生模块中的寄存器组中的冗余码,将所述冗余码写入到所述NandFlash中;继续执行将长度为第二预设长度的整数倍的数据中下一个第二预设长度的数据以第三预设长度为单位依次写入NandFlash中的步骤,直到将长度为第二预设长度的整数倍的数据及其对应的冗余码全部写入NandFlash;继续执行将需要写入NandFlash的数据中下一个长度为第二预设长度的整数倍的数据写入DPRAM信号输入输出电路中的步骤,直到将需要写入N...

【专利技术属性】
技术研发人员:韩晓晶杨敬赵红敏龚宗跃
申请(专利权)人:大唐微电子技术有限公司大唐半导体设计有限公司
类型:发明
国别省市:北京,11

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

1