地铁女孩和闪存纠错算法

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

正如打败爱情的是时间一样,所有型号的闪存都无法保证存储的数据会永久稳定。这时候需要ECC(纠错码)去给闪存纠错。 ECC 能力的强弱直接影响到了SSD的使用寿命和可靠性。本章简单介绍了ECC的基本原理,和目前最主流的ECC算法LDPC。

信号和噪声

噪声信号充斥着整个世界,不只是打电话催债时对方声嘶力竭的喊道听不清,也可能是还钱时手抖多按了一个0,甚至在生物学领域,基因对的复制偏差,癌细胞的产生,意外突破橡胶屏障的新生命都可以划入噪声信号的范畴。凡是有信息传递的地方就有噪声。我们唯一能做的是,把噪声限制在一定大小的笼子里。

如何建造这样一个笼子,我们看一下历史的经验。

场景是,蛋蛋每天坐地铁都会邂逅一个美丽的女孩。两人日久相熟,经常相视一笑,却默然无语。转眼间,蛋蛋就要离开这个城市,他决定勇敢地表白。

表白的地点,还是那一班地铁。唯一的困难是地铁太吵了,女神能够准确无误的接受到自己爱的呼唤吗。这难不倒蛋蛋,他采取了以下策略。

1) 扩音器一个。喂喂,喂,音量调高。大声说我爱的就是你。

2) 每个字清晰的说三遍。我,我,我,喜,喜,喜,欢,欢,欢,你,你,你。

3) 结尾用手比划一个爱心出来。

利用扩音器的蛋蛋,改善了有效信号和噪声的强度比。为女神准确的接收作了基础建设。每个字说三遍,增加了信息的冗余,即使有少量字没有听清,也不影响表达的内容。结尾一个性感的手势,增加对关键信息的保护,借助大家都懂的意象,盖上爱的印章。

聪明的蛋蛋,揭示了长久以来我们传播信息的诀窍。增强信号和噪声的强度比和信号冗余。前者不在此讨论,我们只考虑不用扬声器的情况下,如何尽量准确的传递信息。

实际通讯中,我们用Information bits 表示有效信息长度,channel use 表示实际通讯中传输的信息长度。定义:

Code rate = (information bits)/(channel use)

举个例子,因为每个字说三遍,所以蛋蛋采用的 Code rate 为1/3。

Code rate 可以反映冗余程度。Code rate 越高,冗余越小,反之冗余越大。Shannon 揭示了,每一种实际的信息传输通道,都有一个参数 C,如果Code rate < C, 有效信息传递的错误的概率可以在理论上趋近于0。但是如何趋近于0,是纠错编码(Error correction codes)要做的事情。

我们后续的讨论只限制在二进制的世界,即所有的信息都是二进制表示。

最后,如果还有人在关心蛋蛋表白结局的话,我只能复述女神的原话:我,我,我,也也,也,喜欢欢欢,你你,小结巴。

通信系统模型

所有的信息传播都少不了通信系统,一个完整的通信系统模型,信息由信息源产生,由发送器发送出信号,通过包含噪声的信号传输通道(Channel,简称信道),到达接收器,接收器提取出信息发送到目的地。

整个框图如所示。

image

图1-1 通信系统框图

回到蛋蛋跟女神表白的例子,蛋蛋心中所想就是信息源,发送器是神经和肌肉控制的嗓子。声音就是信号。嘈杂的车厢就是Channel。女神的耳朵就是接收器,最终信息反映到女神大脑中。


(欲知蛋蛋如何搞定地铁女神,并顿悟闪存纠错算法,扫描下图二维码,阅读原著和以上大图。)

_wechat_thumb2_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb_thumb

分类目录 SSD, 技术文章 和标签 .
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。