网站大量收购独家精品文档,联系QQ:2885784924

数据存储中的错误检查和纠正算法设计.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据存储中的错误检查和纠正算法设计

* 数据存储中的错误检查和纠正算法设计 学生:鄂元哲 指导老师:罗明 一、课题背景 数据存储的概念 数据存储是数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。 常见的存储介质 1.硬盘:在平整的磁性表面存储和检索数据 2.闪存:一般指电子式可清除程序化非易失存储器 3.光盘:用激光扫描的记录和读出方式保存信息的一种介质 二、国内外研究方向 数据存储中的错误检查与纠正算法是计算机、通信、网络等方面的热点技术,从上个世纪计算机发明、无线通信应用以来,人们就一直在纠错算法的理论和实现等方向进行研究工作。并且还极大促进了信息论、编码理论等相关学科的发展。如今纠错算法中已经有了大量的成熟高效的算法和其软硬件实现方案,下面我们将从错误检查技术、纠错技术、现有的部分实现方案等方面回顾前人的成果。同时,通过总结现有方案的优劣来确定我们的思考方向和实现思路。 数据存储错误的特性 数据存储与传输中,有时会发生随机的写入错误。 由于介质的物理特性,在数据保存过程中,由于外界环境影响,可能造成少量数据在存储过程中发生改变。但是在正常使用时,错误的发生率极低,且分布随机。实践中数据一般按小区块存储。这样,在每个小区块中,一般只可能发生随机1bit错误。本课题主要研究随机1bit错误的错误检查与纠错算法实现。 常见的错误检查方法 错误检查和纠错的原理: 数据存储中随机发生的错误就像是数字通信中遇到的随机噪声。根据香农定理,只要为存储的数据增加冗余度,数学上就存在一种编码方式,可以无差错地传输和存储信息。 在通信学中,这种增加冗余度来校验和纠错的技术叫做冗余校验。 1.重复码 通过在发送时重复发送同样的比特流来进行错误检查与纠错。 优势:逻辑简单,有很好的纠错能力 劣势:带宽或者存储空间利用率极低,设想某一系统发送信息时重复三次比特流,那么带宽利用率仅1/3。 2.奇偶校验法 奇偶校验位是一个表示给定位数的二进制数中1的个数是奇数还是偶数的二进制数。奇偶校验位有两种类型:偶校验位与奇校验位。如果一组给定数据位中1的个数是奇数,那么偶校验位就置为1,从而使得总的1的个数是偶数。如果给定一组数据位中1的个数是偶数,那么奇校验位就置为1,使得总的1的个数是奇数。 优势:算法简单,易于实现 劣势:无法指明错误发生的位置,也无纠错能力。另外,若一串数据中出现偶数个bit位的错误,那么奇偶校验就无法检出。 3.检验和(checksum) 检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和。它通常是以十六进制为数制表示的形式。如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和。 4.循环冗余检查(CRC) 循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 5.散列函数(hash函数) 传输或存储信息时,同时传输或存储原信息和其哈希值(算法事前约定)。在读取时,计算原信息的哈希值并和接收到的哈希值比较。实际上,检验和法和循环冗余检查法,甚至是奇偶校验位法都可以视作是特殊的散列函数法,但它们的散列冲突几率很高。设计优秀的散列函数可以尽可能避免散列冲突。 优势:散列函数类型的纠错码原理都利于理解,其中奇偶校验、检验和与循环冗余检查实现上比较方便,但是带来了比较严重的散列冲突。精心设计一个散列冲突低,散列值变化幅度大的散列函数可以帮助我们避免散列冲突导致的误判,但是会带来实现难度的上升,并导致更多的性能开销。 劣势:由于散列函数一般有单向性,难以根据散列函数值计算输入值。因此这几种方法一般用于错误检查,难以定位错误具体位置。也无法用于纠错。 关于错误检测算法的总结: 常见的错误检测算法主要是考虑到减少性能开销和降低实现的复杂度。它们在数据存储的错误检查上效果非常显著。因此在生活中也有很多应用:例如,身份证上的校验码、数字证书与签名系统、下载时的MD5值等等。但是,数据存储不仅要求能检查出存储的数据是否出错,很多时候,我们还希望能够恢复已经出错的数据。因此,人们除了对算法的检查性能有要求以外,还希望算法有着定位错误位置、修正小错误的能力,这就需要我们研究纠错算法。 常见的纠错方法 重传、重读(后向纠错) 通过接收方请求发送方重传出错的数据来恢复数据的方法叫后向纠错。 优势:后向纠错易于理解,并且当误码率低时开销比较小。 劣势:后向纠错要求接收方与发送方可以即时通信请求重传。对于不方便通信的场合,或者是数据存储这种接收方和发送方时间上分离的场合无法应用。 前向纠错编码 前向纠错(英语:Forward error correction,缩写FEC

文档评论(0)

骨干 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档