[发明专利]一种在闪存控制器中RS纠检错算法的高效利用方法有效
申请号: | 201010601301.1 | 申请日: | 2010-12-17 |
公开(公告)号: | CN102543207A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 刘升;张伟 | 申请(专利权)人: | 西安奇维测控科技有限公司 |
主分类号: | G11C29/42 | 分类号: | G11C29/42 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710077 陕西省西安*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 闪存 控制器 rs 检错 算法 高效 利用 方法 | ||
技术领域
本发明涉及一种RS纠检错算法的高效利用方法,具体涉及一种在闪存控制器中RS纠检错算法的高效利用方法。
背景技术
在常规的闪存控制器中,通常采用ECC,BCH,RS纠检错算法,ECC算法相对于BCH算法和RS算法实现简单,占用资源少,但是其纠错能力有限。对于一个512个字节的数据,将产生3个byte的检验信息,只能纠正1bit的错误,侦查出2bit的错误,因此,如果闪存芯片中错误数过多,ECC算法则显得力不从心。BCH算法的纠错能力比ECC要强,擅长处理随机错误,但是BCH是按位处理数据,对于并行数据的处理,例如闪存芯片的数据总线通常为8bit或者更高,采用BCH算法进行处理,则会大大降低数据传输速率。RS码是BCH的重要子类,可以看做BCH码的一个特例,RS码有着不错的处理随机错误和突发错误的能力,同时,RS码是按符号处理数据,例如闪存中某个字节应该是0X00,但是从闪存中读出却是0X0F,RS只认为出现了1个错误,而BCH则认为出现了4个错误。因此,在闪存控制器中,使用RS算法则能更好的纠正突发错误,减少资源占用,并且不影响数据传输速率。
发明内容
本发明的目的在于提供一种在闪存控制器中RS纠检错算法的高效利用方法,其解决了现有技术中纠检错模块资源占用率高的缺陷,其资源占用率低,不影响数据传输速率。
本发明的技术解决方案为:
一种在闪存控制器中RS纠检错算法的高效利用方法,其特殊之处在于,该方法包括:
提供两个RS纠检错算法模块,使用双倍频时钟分时复用,完成32位数据接口数据的并行编译码运算;
具体是:
1)首先将32位数据线分成高16位和低16位,分别送到两个RS模块,则每个RS纠检错算法模块只需要完成16位数据接口的编译码计算;
2)对于16bit位宽的数据,先给到1个16bit位宽的缓存中,当缓存中的数据有效之后,使用一个2倍频的时钟,在第一个时钟先读出缓存中的低8bit数据作为第一个原始数据送到RS纠检错算法模块,在第二个时钟读出高8bit数据作为第二个原始数据送到RS纠检错算法模块,循环进行,直到所有数据全部给到RS纠检错算法模块;
3)在编译码结果输出时,第一个时钟将结果给到输出缓存的低8位,第二个时钟将结果给到输出缓存的高8位,循环进行,直到所有结果全部输出,同时,当输出缓存中数据有效由,采用原始时钟将数据读出,最后,在将两个16bit的数据合并之后输出。
上述编码运算包括:
1)将从数据缓存中输出的32位数据拆分为2个16位数据(高16bit和低16bit),并分别存入缓存;
2)RS编码模块采用一个2倍频的时钟,在第一个时钟取出16bit数据的低8bit作为原始数据,在第二个时钟取出16bit的高8bit作为原始数据,顺序送入RS编码模块,循环交替进行直到一个扇区的数据全部传输完成;
3)等到512个字节的数据全部给到RS编码模块,停止从数据缓存中读取数据;
4)等到编码结果开始输出,先将输出的第一个8bit数据存放到缓存的低8位,第二个8bit数据存放到缓存的高8bit,循环交替进行;
5)将两个缓存的16bit数据拼接成32bit数据,给到闪存控制器中;
6)编码结束。
上述译码运算包括:
1)从闪存控制器中读出32bit数据,拆分为2个16位数据(高16bit和低16bit),并分别存入两个RS纠检错算法模块的16bit位宽的数据缓存中,使两个RS纠检错算法模块独立进行运算;
2)RS译码模块采用一个2倍频的时钟,在第一个时钟取出16bit数据的低8bit作为原始数据,在第二个时钟取出16bit的高8bit作为原始数据,循环交替进行;
3)等到512个字节的数据全部给到RS译码模块,再从闪存控制器中读出校验信息(2*32bit),按照上述方法给到RS译码模块;
4)等待译码完成,当数据无错误或存在小于4个byte的错误时,直接将错误数据进行纠正,然后输出。当数据错误大于4个byte时,通知闪存控制器存在不可纠正的错误,要求闪存控制器重新传输该扇区的数据;
5)译码结果输出时,先将输出的第一个8bit数据存放到缓存的低8位,第二个8bit数据存放到缓存的高8bit,循环交替进行;
6)将两个缓存的16bit数据拼接成32bit数据,给到数据缓存中,只给出原始信息,删除校验信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安奇维测控科技有限公司,未经西安奇维测控科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010601301.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:小直径射频驱动氘氘中子管
- 下一篇:力限控制振动试验系统及试验方法