香农提出了信道编码定理,并在其证明中引用了三个基本条件:
采用随机编码方式;
码字长度趋于无穷大;
采用最大似然译码算法。
一个随机选择的码以很高的概率为好码,对于随机码的最大似然译码,其译码复杂度G与所传输的信息比特数呈指数关系,即为G=exp(NR),随机码的误码率上限为以Pe~G-Eb(R)/R,误码率随着码长N趋于无穷大而趋向于0的同时,译码复杂度以指数增长,可见随机码在实际系统里其实并不实用。
由于信道编码定理证明的非构造性,并没有给出如何构造逼近香农容量限的编码方法,构造一个逼近香农容量限的纠错码成了众多学者争相研究的课题,并逐渐形成了信息论的一个重要分支—信道编码理论。
从构造方法上看,纠错码可分为分组码和卷积码两大类。在20世纪50年代到60年代,人们主要研究了线性分组码。这类编码以代数中的群论、域论等理论为数学基础,利用各种代数方法设计好的纠错码,并研究与之相适应的译码算法。
第一个分组码是1950年发现的能纠正单个错误的汉明(Hamming)码。1950年汉明(Hanmming .R.W)发表的论文《检错码与纠错码》是开拓编码理论研究的第一篇论文,考虑在计算机中纠正单个错误。汉明码(7,4),码率为4/7,需要3个监督位,码率不高,同时纠错能力有限,只能纠正单一错误。
M.Golay针对汉明码的缺点提出了性能更好的格雷(Galay)码,Golay发现了两种编码,一种是二元Golay码,采用12个数据比特,11个校验比特为一组,能纠正3个错误。第二种是三元Golay码,以三进制数为运算域,6个数据符号,5个校验符号为一组,可以纠正2个错误。
这两种码基本原理相同,都是将q元符号按每k个分为一组,然后通过编码得到n-k个q元符号作为冗余校验符号,最后由校验符号和信息符号组成有n个q元符号的码子符号,编码码率为r=k/n。
Muller在1954年以布尔逻辑代数方式提出了Reed.Muller码(RM码),它比Hamming码和Golay码好的地方是它可以改变码字大小和纠错能力,是Reed在Muller基础上得到的一种新的分组码,也是继格雷码之后提出的最主要的一类分组码。
继RM码之后,Prange于1957年又提出了循环码的概念。循环码实际上也是一类分组码,但是它的码字具有循环移位特性,即码字比特经过循环移位以后仍然是码字集合中的码字。这种循环结构使码字的设计范围大大增加,同时大大的简化了编译码结构。
循环码的一个非常重要的子集就是分别由Hocquenghem在1959年以及Bose和Ray—Chuadhuri研究组在1 960年几乎同时提出的BCH(Bose Chuadhuri Hocquen曲em)码,CH码的码字长度为n=qm-1,其中m为一个整数。二元BCH码(q=2)的纠错能力限为,t《(2m-1)。
1960年Reed和Solomon将BCH码扩展到非二元(q》2)的情况,得到了RS(Reed.Solomon)码。RS码的最大优点是其非二元特性可以纠正突发错误并日.它也能纠正随机错误。
但直到1967年Berlekamp给出了一个非常有效的译码算法之后,RS码才在实际系统中崭露头角,比如在CD播放器、DVD播放器以及CDPD(Cellular Digital Packet Data)标准中都得到了很好的应用。
上述讨论的这些都是分组码,分组码存在一些不足,应用受限。首先,必须是按帧传输、按帧译码,这样在帧长较长时会带来一定的时延。其次,要求准确的帧同步,这样才能准确译码。多数分组码要求解调器的硬判决输出,这样又会带来一些判决误差,影响性能。此外,分组码的译码方法通常都采用大数逻辑译码和捕错译码,其译码复杂度与码长成指数关系,码长越长,译码复杂度越大,而且上升趋势很快,所以基本上不实用。
1955年,Elias等人首先提出了卷积码。卷积码不是将数据分割成不同的分组,而是通过移位寄存器将校验比特加入输入数据流中。每n比特输出是当前k比特输入和寄存器中的m比特的线性组合,每次输出总的比特数与约束长度k有关,其码率为存一次编码间隔中数据比特k与输出比特数n之比。
卷积码与分组码不同在于它在编码的过程中引入了寄存器,增加了码元之间的相关性,在相同的复杂度下可以获得比分组码更高的编码增益,但是这种相关性同时也增加了分析和设计卷积码的复杂性。
随着人们对卷积码研究的深入,在卷积码的译码算法方面出现了序列译码算法、门限译码算法和维特比(Viterbi)译码算法。
维特比(Viterbi)译码算法的出现,使卷积码逐渐成为研究和应用的重点,以后出现的TCM(栅格编码调制)技术进一步确立了卷积码在纠错码应用中的主导地位,特别是在通信系统中得到了极为广泛的应用。
企业和消费级SSD的几点区别:
侧重点。
接口。消费级基本都用SATA,而企业级使用PCIe、NVMe、SAS。
企业级容许更多的冗余数据。可以用来备份和容灾。
企业级需要持久稳定的性能,更长的寿命,额外的空间,能够与具体应用相适应。
消费级一般只有1到2个SSD组装,企业级需要把几个SSD组装在一起。
消费级:成本>容量>性能>数据完整性
企业级:数据完整性>性能>容量>成本
JEDEC组织对数据稳定性的要求,在不通电的情况下:
JESD 218A规定企业级硬盘数据要在55摄氏度下每天保持24小时,40摄氏度保持3个月;
消费级在40摄氏度每天保持8小时,30摄氏度下保持一年。
9 企业级数据的不同类型:
WORM型:写少读得多(write once read many)
不稳定的数据:例如Swap数据。
备份数据。
Swap的用法:Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
SSD内各种数据保护技术
RAID
如下图,HDD使用RAID 5来保护磁盘阵列数据,每个磁盘都分布有校验数据。
SSD也可以类似 *** 作。RAID的作用是基于NAND的特殊属性,NAND中某个Page(Word Line)有可能会全部丢失,这样ECC数据也没了,只能通过别的Die上校验数据恢复。
分析一下OCZ的这种方案:
为了保证大家的磨损程度一致,Block A系列都要同时写入,但是校验数据肯定最后写,所以ABCD内Die写的次序是不一样的。从写的角度来看,校验数据分散到不同die的意义不大,但是从读的角度来讲,可以把读均匀分到不同Die上,可以增加读的带宽。
数据纠错
随着NAND工艺越来越微小,氧化层也越来越薄,数据翻转的可能性增大。工艺越先进,纠错码要求越来越强,寿命(P/E次数)不断缩短。
Flash制造商在Flash Page里面会留有一定Spare Area来存放纠错码,工艺尺寸越小,Spare Area越大。
25nm MLC有450Byte Spare Area,每1K能纠错24 bit;
20nm MLC有750Byte Spare Area,每1K能纠错40 bit。
消费级使用BCH编码来纠错。
企业级开始使用LDPC编码:
能够延长使用寿命,保存更长时间数据。
与信噪比和UBER有关,并不是简单的固定bit数纠错。
软信息编码;
用户数据与校验数据比例会不同以往;
端到端数据保护
OS到HBA和存储阵列到NAND都要做有效性检查,因为 *** 作系统驱动问题,SSD控制器软硬件故障都会导致数据出错。
企业级FTL
普通消费级SATA FTL架构如下图,Host命令由HIL执行,NAND命令由FIL执行。FTL的作用是把Host地址映射到NAND物理地址(使用映射表Map Table),同时还要做坏块管理BBM和损耗平衡。
企业级SSD要求更短的读写延迟,但是更新SSD控制器DRAM
以上就是关于一个分组码的汉明距离为18时能纠正多少个错误全部的内容,包括:一个分组码的汉明距离为18时能纠正多少个错误、企业和消费级SSD Firmware的区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)