CN102543133B - 提高bch纠错速度的方法及其固态硬盘 - Google Patents
提高bch纠错速度的方法及其固态硬盘 Download PDFInfo
- Publication number
- CN102543133B CN102543133B CN201110454261.7A CN201110454261A CN102543133B CN 102543133 B CN102543133 B CN 102543133B CN 201110454261 A CN201110454261 A CN 201110454261A CN 102543133 B CN102543133 B CN 102543133B
- Authority
- CN
- China
- Prior art keywords
- feedback shift
- linear feedback
- shift register
- short linear
- error correction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明适用于存储技术领域,提供了一种提高BCH纠错速度的方法及其固态硬盘,所述方法包括如下步骤:将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器;将所述多个第一短的线性反馈移位寄存器进行级联。借此,本发明提高BCH纠错速度及固态硬盘读写性能。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种提高BCH纠错速度的方法及其固态硬盘。
背景技术
目前,应用于固体硬盘的纠错算法主要是BCH(霍勒斯二进代码)纠错算法,BCH纠错算法在编码和译码伴随式计算过程均需要使用LFSR(LinearFeedback Shift Register,线性反馈移位寄存器)实现求余运算。随着BCH码长的增加,求余运算的除数通常很长,尤其是编码过程的求余运算,需要使用很长的LFSR实现,LFSR中寄存器的个数由除数决定。为了提高带宽,通常会采用展开的方法实现并行的LFSR。LFSR越长,展开后并行的LFSR结构的关键路径会越长,其最大工作频率就会降低,导致BCH纠错电路的速度下降。
参见图1,该现有的长的LFSR结构图中表示有限域乘法器,表示有限域加法器。该图1表示的LFSR实现BCH编码。以2KB数据,纠错64比特为例,LFSR中寄存器个数为960,分别有960个逻辑运算单元有限域乘法器和加法器。并行展开后,逻辑运算单元个数将变成并行展开次数的倍数,如此长的LFSR展开后的关键路径会变得更长。缩短关键路径的通常办法是在关键路径的中间插入寄存器,然而对于LFSR,插入寄存器会改变LFSR本身的意义,改变其基本功能。该LFSR结构每个异或逻辑运算节点之间都有一个寄存器,并行展开后同类节点之间也只有一个寄存器,因此展开次数越多,最终的关键路径越长,导致LFSR的工作频率越低。
图2A和图2B所示的是现有的一种BCH纠错算法的并行的实现方法,利用该方法并行实现LFSR后,能够并行处理多比特数据,但是逻辑单元成并行次数增加。因此,其关键路径变长得厉害。这些都是当前固体硬盘中所采用的BCH实现方法,这些方法实现的BCH的编码译码LFSR,由于关键路径很长,导致工作频率下降,带宽下降,降低BCH纠错速度。
综上可知,现有的BCH纠错技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种提高BCH纠错速度的方法及其固态硬盘,以提高BCH纠错速度及固态硬盘的读写性能。
为了实现上述目的,本发明提供一种提高BCH纠错速度的方法,其特征在于,所述方法包括如下步骤:
将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器;
将所述多个第一短的线性反馈移位寄存器进行级联。
根据所述的方法,在所述将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器的步骤之后还包括:
切断所述多个第一短的线性反馈移位寄存器之间的时序路径。
根据所述的方法,所述多个第一短的线性反馈移位寄存器等长。
根据所述的方法,所述多个第一短的线性反馈移位寄存器长度与所述编码和/或译码过程中有限域参数的大小相同。
根据所述的方法,所述每个第一短的线性反馈移位寄存器的返回输入端设置有寄存器。
本发明还提供了一种固态硬盘,所述固态硬盘包括:
多个第一短的线性反馈移位寄存器,所述多个第一短的线性反馈移位寄存器等效于在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分而成的多个第二短的线性反馈移位寄存器;并且所述多个第一短的线性反馈移位寄存器级联。
根据所述的固态硬盘,所述多个短的第一线性反馈移位寄存器之间的时序路径为断路。
根据所述的固态硬盘,所述多个短的第一线性反馈移位寄存器等长。
根据所述的固态硬盘,所述多个第一短的线性反馈移位寄存器长度与所述编码和/或译码过程中有限域参数的大小相同。
根据所述的固态硬盘,所述每个第一短的线性反馈移位寄存器的返回输入端设置有寄存器。
本发明通过将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个短的线性反馈移位寄存器;并将所述多个短的线性反馈移位寄存器进行级联。在同样条件下通过硬件的提速实现性能的提升,并没有增加过多的额外逻辑,提高LFSR工作频率,从而提高BCH纠错电路的工作速度;降低纠错过程的延迟,提升了固体硬盘的读写性能。
附图说明
图1是现有技术中长的线性反馈移位寄存器的结构示意图;
图2A是现有技术中长的线性反馈移位寄存器的展开前示意图;
图2B是现有技术中长的线性反馈移位寄存器的展开后示意图;
图3是本发明一个实施例提供的短的线性反馈移位寄存器的结构示意图;
图4是本发明第三实施例提供的提高BCH纠错速度的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的第一实施例中提供了一种固态硬盘,所述固态硬盘包括:
多个第一短的线性反馈移位寄存器100,多个第一短的线性反馈移位寄存器100等效于在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分而成多个第二短的线性反馈移位寄存器;并且所述多个第一短的线性反馈移位寄存器100级联。
本实施例通过将多个第一短的线性反馈移位寄存器100设置为等效于在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第二短的线性反馈移位寄存器,并且将多个第一短的线性反馈移位寄存器100级联。由于每个第一短的线性反馈移位寄存器100展开后缩短了关键路径,因此有效的提高了LFSR的运行速度,从而增加带宽,提升BCH纠错电路性能。在该实施例中,多个第二短的线性反馈移位寄存器是在同样的BHC纠错运算法中的编码和/或译码场景中,对每个长的线性反馈移位寄存器拆分而成。多个第二短的线性反馈移位寄存器是为了描述明确而引入,其可以不是具体存在的寄存器。
在本发明的第二个实施例中,多个第一短的线性反馈移位寄存器100之间的时序路径为断路。这样可以保证各个第一短的线性反馈移位寄存器100之间没有关联,可以确保实现各第一短的线性反馈移位寄存器100的级联。优选的,多个第一短的线性反馈移位寄存器100等长。可以保证各第一短的线性反馈移位寄存器100性能的一致性,当然还可以包括其他的拆分方式,例如各第一短的线性反馈移位寄存器100不等长,部分等长,包括各种长度,以适应不同的BCH纠错电路的应用。
图3示出了本发明一个实施例中提供的固态硬盘中的第一线性反馈移位寄存器100的具体结构。其中所示的第一线性反馈移位寄存器100中有3个输入,一个是生成多项式的系数,另外一个是返回输入,还有一个是来自上一级的输出。其中,生成多项式的系数对所有的第一线性反馈移位寄存器100是相同的,返回输入来自于寄存器,是输入数据和最后的一级LFSR输出的异或的结果,而上一级的输出同样来自于寄存器。由于输入都是寄存器的输出,其内部关键路径只有两个逻辑运算单元,基于此第一线性反馈移位寄存器100展开后,最终的关键路径比缩短前的长的线性反馈移位寄存器展开后要短。另外,在图3所示的第一短的线性反馈移位寄存器100结构中,每个第一短的线性反馈移位寄存器100的返回输入端设置有寄存器10。这些返回数据的寄存器10的增加可以使返回数据的结果能够缓存,并从寄存器10中输出,该输出到下一级的关键路径从输出开始,保证了第一短的线性反馈移位寄存器100的路径与其他级LFSR之间没有关联。保证本实施例能够实现缩短关键路径的目的。
在本发明的另一个实施例中,多个第一短的线性反馈移位寄存器100长度与所述编码和/或译码过程中有限域参数的大小相同。同样参见图2,将长的线性反馈移位寄存器进行缩短,由于编码的长的线性反馈移位寄存器的长度从选择的有限域大小参数m乘以纠错个数得到。因此在该实施例中,优选的以选择的有限域的大小参数m作为第一短的线性反馈移位寄存器100长度。同样以2KB纠错64比特为例,有限域大小参数m是15,选择缩短LFSR长度为15,每个第一短的线性反馈移位寄存器100都有15个寄存器。这样相比于现有技术的纠错方式,其BCH纠错电路的工作速度得到了大大的提高。
参见图4,本发明的第三实施例还提供了一种提高BCH纠错速度的方法,所述方法包括如下步骤:
步骤S401中,将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器100;
步骤S402中,将多个第一短的线性反馈移位寄存器100进行级联。
在所述步骤S401中之后还包括:切断多个第一短的线性反馈移位寄存器100之间的时序路径。优选的,多个第一短的线性反馈移位寄存器100等长。并且多个第一短的线性反馈移位寄存器100长度与所述编码和/或译码过程中有限域参数的大小相同。并且每个第一短的线性反馈移位寄存器100的返回输入端设置有寄存器10。
在本发明的一个优选实施例中,提供了提高BCH纠错电路中求余运算的级联设计方法。具体的,每个长的线性反馈移位寄存器被拆分成多个等长的第一短的线性反馈移位寄存器100,通过级联机制将多个第一短的线性反馈移位寄存器100级联。另外,还通过寄存器把多个第一短的线性反馈移位寄存器100之间的时序路径切断。具体的短多个第一短的线性反馈移位寄存器100的长度没有限制。多个第一短的线性反馈移位寄存器100通过级联实现长的线性反馈移位寄存器的功能。多个第一短的线性反馈移位寄存器100在展开后缩短了长的线性反馈移位寄存器展开后的关键路径,提高了编码译码中LFSR的运行速度,增加带宽,提升了BCH纠错速度。
固态硬盘在读操作中,由于BCH纠错功能的引入,导致数据读出的延迟增加,通常情况下纠错的延迟接近一个码长的数据在闪存IO上的传输时间。在上述多个实施例中,提升包括多个第一短的线性反馈移位寄存器100的固态硬盘的BCH纠错的求余运算速度,降低延迟,提升固态硬盘的性能。
综上所述,本发明通过将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个短的线性反馈移位寄存器;并将所述多个短的线性反馈移位寄存器进行级联。在同样条件下通过硬件的提速实现性能的提升,并没有增加过多的额外逻辑,提高LFSR工作频率,从而提高BCH纠错电路的工作速度;降低纠错过程的延迟,提升了固体硬盘的读写性能。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种提高BCH纠错速度的方法,其特征在于,所述方法包括如下步骤:
将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器;
将所述多个第一短的线性反馈移位寄存器进行级联;
在所述将在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分成多个第一短的线性反馈移位寄存器的步骤之后还包括:
切断所述多个第一短的线性反馈移位寄存器之间的时序路径。
2.根据权利要求1所述的方法,其特征在于,所述多个第一短的线性反馈移位寄存器等长。
3.根据权利要求2所述的方法,其特征在于,所述多个第一短的线性反馈移位寄存器长度与所述编码和/或译码过程中有限域参数的大小相同。
4.根据权利要求1所述的方法,其特征在于,所述每个第一短的线性反馈移位寄存器的返回输入端设置有寄存器。
5.一种固态硬盘,其特征在于,所述固态硬盘包括:
多个第一短的线性反馈移位寄存器,所述多个第一短的线性反馈移位寄存器等效于在BCH纠错算法中的编码和/或译码过程中的每个长的线性反馈移位寄存器拆分而成的多个第二短的线性反馈移位寄存器;并且所述多个第一短的线性反馈移位寄存器级联;
所述多个第一短的线性反馈移位寄存器之间的时序路径为断路。
6.根据权利要求5所述的固态硬盘,其特征在于,所述多个第一短的线性反馈移位寄存器等长。
7.根据权利要求6所述的固态硬盘,其特征在于,所述多个第一短的线性反馈移位寄存器长度与所述编码和/或译码过程中有限域参数的大小相同。
8.根据权利要求5所述的固态硬盘,其特征在于,所述每个第一短的线性反馈移位寄存器的返回输入端设置有寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110454261.7A CN102543133B (zh) | 2011-12-30 | 2011-12-30 | 提高bch纠错速度的方法及其固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110454261.7A CN102543133B (zh) | 2011-12-30 | 2011-12-30 | 提高bch纠错速度的方法及其固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102543133A CN102543133A (zh) | 2012-07-04 |
CN102543133B true CN102543133B (zh) | 2015-07-08 |
Family
ID=46349852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110454261.7A Active CN102543133B (zh) | 2011-12-30 | 2011-12-30 | 提高bch纠错速度的方法及其固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102543133B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976584A (zh) * | 2010-10-27 | 2011-02-16 | 记忆科技(深圳)有限公司 | 准循环低密度奇偶校验码译码器及译码方法 |
-
2011
- 2011-12-30 CN CN201110454261.7A patent/CN102543133B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976584A (zh) * | 2010-10-27 | 2011-02-16 | 记忆科技(深圳)有限公司 | 准循环低密度奇偶校验码译码器及译码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102543133A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuan et al. | Early stopping criteria for energy-efficient low-latency belief-propagation polar code decoders | |
Ramabadran et al. | A tutorial on CRC computations | |
KR100210583B1 (ko) | 에러정정 부호화 복호화 방법 및 이 방법을 사용하는 회로 | |
US8812940B2 (en) | Programmable error correction capability for BCH codes | |
US7409622B1 (en) | System and method for reverse error correction coding | |
Yuan et al. | LLR-based successive-cancellation list decoder for polar codes with multibit decision | |
US9645886B2 (en) | Digital error correction | |
US8621329B2 (en) | Reconfigurable BCH decoder | |
KR101583139B1 (ko) | 높은 처리량과 낮은 복잡성을 갖는 연속 제거 극 부호 복호 장치 및 그 방법 | |
Spinner et al. | Decoder architecture for generalised concatenated codes | |
US20160026526A1 (en) | Encoder by-pass with scrambler | |
EP3202045A1 (en) | Method and device for calculating a crc code in parallel | |
US7886210B2 (en) | Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs | |
JP7116374B2 (ja) | 短縮レイテンシ誤り訂正復号 | |
US8136010B2 (en) | Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs | |
CN102354535A (zh) | 逻辑单元复用系统 | |
JP2012050008A (ja) | 誤り検出訂正方法および半導体メモリ装置 | |
CN102543133B (zh) | 提高bch纠错速度的方法及其固态硬盘 | |
US6609142B1 (en) | Method of performing multiplication with accumulation in a Galois body | |
CN103401566A (zh) | 参数化的bch纠错码的并行编码方法及装置 | |
CN101452722B (zh) | 错误检测码产生电路和使用该电路的编码电路及相关方法 | |
Hassan et al. | A simplified radix-4 successive cancellation decoder with partial sum lookahead | |
Lee et al. | Implementation of parallel BCH encoder employing tree-type systolic array architecture | |
KR102109589B1 (ko) | 고속직렬인터페이스용 송수신 오류 정정기법이 포함된 오버헤드최소화 코딩 기법과 하드웨어 구현 방법 | |
KR101154923B1 (ko) | 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |