常规[循环]突发纠错的ECC如何工作?

时间:2014-01-16 00:26:43

标签: algorithm 64-bit error-correction

用于突发错误纠正的ECC如何工作?

通过“突发错误检测”,我的意思是一种技术,可以检测(例如)64个连续位的任何一个[或两个]序列中的任何位错误组合。

我需要一个概念性的解释,而不是数学。

我研究了几种用无穷无尽的数学符号表达的技术描述,但我不明白他们在说什么(因为我不能说那些先进的数学公式)。

我问这个问题是因为我想到了一种在4096字节(32768位)数据流(磁盘扇区/传输/等)中检测一个64位突发的技术,并希望有人解释以下内容:

#1:我的方法是否与“循环错误代码”不同或相当。

#2:我的技术效率低多了(640位纠正了32768位流中的任何64位突发)。

#3:是否有人能够看到一种方法让我的方法检测到两次突发而不是一次。

#4:我的方法对于软件实现是否简单明了。

我最近发布了一个关于我的技术的概念性解释,但有几个人对我的详细解释感到恼火并且关闭了这个问题。然而,它表明[至少]我的技术可以用概念术语来描述,因为希望有人可以用于传统技术,(循环码)。您还需要在此页面阅读我的解释(与传统技术进行比较):

how does ECC for burst error correction work?

1 个答案:

答案 0 :(得分:2)

我对你的问题没有完整的答案,但多年前我在硬盘控制器中实现了循环ECC,而且这种设计显然不像你的技术那么简单,规则和结构化。

虽然实现我的循环ECC的硬件在硬件中实现相当简单,但我很难弄清楚如何在软件中重新制定它!在硬件中,它是一个长移位寄存器(如果存储器服务,大约32到64位),在大约15个位置插入XOR门,根据流中其他地方的位有条件地翻转位。

虽然我的实现无法检测到64位的突发(我记得只有大约11位或13位),但我的印象是你的技术所需的位数是最佳循环ECC技术的2到3倍。类似的突发长度和数据流长度。

然而,你的技术开销可能小到不重要。此外,看看你的方案让我思考(但不确定)你可以纠正更多的错误,而不仅仅是你为它设计的“一阵”。因此,您的技术可能比传统的循环ECC更强大,但是需要更复杂的软件处理来“定位和纠正”不在一个64位突发内的错误。

另外,从积极的方面来说,您的技术可以清楚地在硬件中轻松有效地实施。