一种Nand-Flash错误数据冗余替换方法技术

技术编号:21273316 阅读:25 留言:0更新日期:2019-06-06 07:51
为了解决现有Nand‑Flash写操作冗余替换方法耗时较长的技术问题,本发明专利技术提供了一种Nand‑Flash错误数据冗余替换方法。本分明将FIFO分成两部分,一部分用来存储page buffer中要替换的字节的位置,另一部分存储读回的包含替换字节的数据,输出时通过硬件选出所有要替换的字节一次写入冗余区域,整个冗余替换过程耗时较短。

A Redundant Replacement Method for Nand-Flash Error Data

In order to solve the technical problem that the existing Nand Flash write operation redundancy replacement method takes longer time, the present invention provides a Nand Flash error data redundancy replacement method. This paper divides FIFO into two parts, one is used to store the position of the bytes to be replaced in page buffer, the other is used to store the data containing the bytes to be replaced. When output, all bytes to be replaced are selected by hardware and written to the redundant area at one time. The whole process of redundant replacement takes less time.

【技术实现步骤摘要】
一种Nand-Flash错误数据冗余替换方法
本专利技术涉及一种Nand-Flash错误数据冗余替换方法。
技术介绍
如图1所示,现有Nand-Flash写操作时,错误数据冗余替换做法是在数据写入Page-buffer后,通过固件程序将出错单元对应的数据搬移到好的冗余单元,完成替换,具体步骤如下:1)读入阵列损坏单元对应的pagebuffer地址,需要2个时钟周期;2)根据步骤1)的地址,读入word0,需要1个时钟周期;3)调整替换单元位置,需要3个时钟周期;4)将数据搬移到冗余区域并屏蔽其他三个字节,需要1个时钟周期;……11)根据步骤1)的地址,读入word3,需要1个时钟周期;12)调整替换单元位置,需要3个时钟周期;13)将数据搬移到冗余区域并且屏蔽其他三个字节,需要1个时钟周期。以32位的内部数据总线为例,利用上述方法,采用固件程序完成4字节的替换大约需要22个时钟周期。如果内部时钟周期是50ns的,要完成64字节的替换大约需要64/4*22*50=17.6us,这影响了Nand-Flash写操作的性能。
技术实现思路
为了解决现有Nand-Flash写操作冗余替换方法耗时较长的技术问题,本专利技术提供了一种Nand-Flash错误数据冗余替换方法。本专利技术的技术方案是:一种Nand-Flash错误数据冗余替换方法,其特殊之处在于,包括步骤:1)对于不同位数的内部数据总线,采用相应深度的FIFO,并对FIFO进行定义:将FIFO的一部分定义为索引区,其余部分定义为数据区;2)读入阵列损坏单元对应的pagebuffer地址到所述索引区;3)根据步骤2)中的pagebuffer地址从pagebuffer中读取包含替换字节的数据,并存储到所述数据区;4)从步骤3)读取的所有数据中各取出要替换的一个字节;5)将步骤4)取出的要替换的字节写入pagebuffer的冗余区域。进一步地,所述步骤1)具体为:根据内部数据总线的位数2N,采用深度至少为2+2N-3的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于所要读取的包含替换字节的数据个数;其中N为大于等于4的整数。进一步地,所述N为4、5、6或7。进一步地,所述索引区的每个深度平均分成2N-4部分,每部分分别存储一个坏字节的地址。进一步地,所述步骤3)具体为:根据步骤2)中的地址从pagebuffer中读取包含替换字节的2N-3个2N位数据,并存储到所述数据区;每个2N位数据包含一个要替换的字节。本专利技术同时提供了另一种Nand-Flash错误数据冗余替换方法,其特殊之处在于,包括步骤:1)设定存储FIFO和索引FIFO;其中:对于不同位数的内部数据总线,采用相应深度的存储FIFO;2)读入阵列损坏单元对应的pagebuffer地址,将所读入地址的低N-3位作为字节索引地址存储到所述索引FIFO中;其中:N由内部数据总线的位数2N确定,且N为大于等于4的整数;3)根据步骤2)读入的地址,从pagebuffer读入2N-3个2N位的数据到所述存储FIFO中;4)根据所述索引FIFO中存储的字节索引地址,从所述存储FIFO中取出2N-3个要替换的字节;5)将步骤4)取出的2N-3个要替换的字节写入pagebuffer的冗余区域。与现有技术相比,本专利技术的有益效果:1、本分明将FIFO分成两部分,一部分用来存储pagebuffer中要替换的字节的位置,另一部分存储读回的包含替换字节的数据,输出时通过硬件选出所有要替换的字节一次写入冗余区域,整个冗余替换过程耗时较短。2、本专利技术可以通过调整FIFO深度和宽带以适用不同位宽的总线系统。附图说明图1为现有Nand-Flash写操作时,错误数据冗余替换方法的原理示意图;图2为本专利技术Nand-Flash错误数据冗余替换方法一实施例的原理示意图;图3为本专利技术方法一的具体化示例;图4为本专利技术Nand-Flash错误数据冗余替换方法二实施例的原理示意图。具体实施方式以下结合附图对本专利技术作进一步说明。本专利技术所提供的Nand-Flash错误数据冗余替换方法,包括步骤:步骤1)对于不同位数的内部数据总线,采用相应深度的FIFO,并对FIFO进行定义:将FIFO的一部分定义为索引区,其余部分定义为数据区;具体的:对于16位内部数据总线,采用深度至少为4的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于后续步骤3)读取的包含替换字节的数据个数;并将索引区的每个深度平均分成2部分,每部分分别用于存储一个坏字节的地址;对于32位内部数据总线,采用深度至少为6的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于后续步骤3)读取的包含替换字节的数据个数;并将索引区的每个深度平均分成2部分,每部分分别用于存储一个坏字节的地址;对于64位内部数据总线,采用深度至少为10的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于后续步骤3)读取的包含替换字节的数据个数;并将索引区的每个深度平均分成4部分,每部分分别用于存储一个坏字节的地址;对于128位内部数据总线,采用深度至少为18的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于步骤3)读取的包含替换字节的数据个数;并将索引区的每个深度平均分成8部分,每部分分别用于存储一个坏字节的地址;以此类推;对于2N位内部数据总线,采用深度至少为2+2N-3的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于步骤3)读取的包含替换字节的数据个数;将索引区的每个深度平均分成2N-4部分,每部分分别用于存储一个坏字节的地址;N为大于等于4的整数。步骤2)读入阵列损坏单元对应的pagebuffer地址到所述索引区;步骤3)根据步骤2)中的地址从pagebuffer中读取包含替换字节的数据,并存储到所述数据区;具体的:对于16位内部数据总线,根据步骤2)中的地址从pagebuffer中读取包含替换字节的2个16位数据,并存储到所述数据区;每个16位数据包含一个要替换的字节;对于32位内部数据总线,根据步骤2)中的地址从pagebuffer中读取包含替换字节的4个32位数据,并存储到所述数据区;每个32位数据包含一个要替换的字节;对于64位内部数据总线,根据步骤2)中的地址从pagebuffer中读取包含替换字节的8个64位数据,并存储到所述数据区;每个64位数据包含一个要替换的字节;对于128位内部数据总线,根据步骤2)中的地址从pagebuffer中读取包含替换字节的16个128位数据,并存储到所述数据区;每个128位数据包含一个要替换的字节;以此类推;对于2N位内部数据总线,根据步骤2)中的地址从pagebuffer中读取包含替换字节的2N-3个2N位数据,并存储到所述数据区;每个2N位数据包含一个要替换的字节;N为大于等于4的整数。步骤4)从步骤3)读取的数据中各取出要替换的一个字节,共取出2N-3个字节;步骤5)将步骤4)取出本文档来自技高网...

【技术保护点】
1.一种Nand‑Flash错误数据冗余替换方法,其特征在于,包括步骤:1)对于不同位数的内部数据总线,采用相应深度的FIFO,并对FIFO进行定义:将FIFO的一部分定义为索引区,其余部分定义为数据区;2)读入阵列损坏单元对应的page buffer地址到所述索引区;3)根据步骤2)中的page buffer地址从page buffer中读取包含替换字节的数据,并存储到所述数据区;4)从步骤3)读取的所有数据中各取出要替换的一个字节;5)将步骤4)取出的要替换的字节写入page buffer的冗余区域。

【技术特征摘要】
1.一种Nand-Flash错误数据冗余替换方法,其特征在于,包括步骤:1)对于不同位数的内部数据总线,采用相应深度的FIFO,并对FIFO进行定义:将FIFO的一部分定义为索引区,其余部分定义为数据区;2)读入阵列损坏单元对应的pagebuffer地址到所述索引区;3)根据步骤2)中的pagebuffer地址从pagebuffer中读取包含替换字节的数据,并存储到所述数据区;4)从步骤3)读取的所有数据中各取出要替换的一个字节;5)将步骤4)取出的要替换的字节写入pagebuffer的冗余区域。2.根据权利要求1所述的Nand-Flash错误数据冗余替换方法,其特征在于,所述步骤1)具体为:根据内部数据总线的位数2N,采用深度至少为2+2N-3的FIFO,将该FIFO的低至少2个深度定义为索引区,其余深度定义为数据区,且数据区的深度应大于等于所要读取的包含替换字节的数据个数;其中N为大于等于4的整数。3.根据权利要求2所述的Nand-Flash错误数据冗余替换方法,其特征在于,所述N为4、5、6或7。4.根据权利要求2或3所述的Nand-Flash错误数据冗余替换方法,其特征在于,所述索引区的每个深度平均分成2N-4部分,每部分分别存储一个坏字节的地址。5.根据权利要...

【专利技术属性】
技术研发人员:李乾男龙晓东薛小飞
申请(专利权)人:西安紫光国芯半导体有限公司
类型:发明
国别省市:陕西,61

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

1