SSD LDPC软错误探测方案解读

上一篇文档中,基于SSD LDPC(Low-Density Parity-Check Codes)原理背景和纠错能力作了简单的介绍。

扩展阅读:

  • 关于SSD LDPC纠错能力的基础探究

  • 浅析LDPC软解码对SSD延迟的影响


本篇结合SMI发布的研究成果,通过SSD控制内部LDPC更底层的架构,来解读如何增强软错误探测能力和抗噪声干扰能力。

图片

在固态硬盘SSD模块级别,噪声源主要有以下几类:

  1. 控制器外部数据传输总线噪声:比如PCIe总线,以及与DRAM缓存和闪存芯片之间的接口。这些接口在高速数据交换过程中会产生电磁干扰,影响数据的准确传输。

  2. NAND编程/读取/擦除操作噪声:NAND闪存的P/E(编程/擦除)周期中,由于电荷迁移、漏电流等因素,尤其是在高密度QLC存储单元中,噪声和各种干扰现象会变得更严重。

  3. 辐射诱导的软错误:宇宙射线等放射性粒子对电子设备中的存储单元造成单粒子翻转(Single Event Upset, SEU),导致数据位错误。

  4. 其他噪声:除了上述明确提及的噪声源外,还有诸如电源波动、温度变化、器件老化等其他不确定因素产生的噪声。

为了对抗这些噪声导致的数据错误,SSD模块采用了ECC技术。ECC能够检测和纠正部分错误,通过将数据编码成带有冗余信息的编码字(codewords),可以区分出可纠正错误和不可纠正错误,同时也能够识别出可检测错误和未被检测出的错误。

在固态存储中,数据通常会被划分为多个数据块(Chunks),每个数据块除了包含用户数据外,还会附加额外的信息,如HE2E、元数据(Meta)、种子(Seed)、CRC校验值以及LDPC奇偶校验码。

图片

LDPC奇偶校验完整性检查是一个确保基于LDPC编码的数据在写入或读取过程中不遭受意外损坏的关键环节。在数据写入NAND闪存前,首先需要对用户数据和相关辅助信息进行LDPC编码生成相应的奇偶校验位,这些奇偶校验位包含了足以恢复潜在错误的信息。LDPC编码器本身包含了大量的组合逻辑和寄存器结构,甚至包括只读存储器(ROM)部分,以实现复杂而高效的编码过程。

图片

在实际操作中,由于宇宙射线等自然现象引发的单粒子翻转(Single Event Upset, SEU)可能会导致LDPC奇偶校验位出现错误。为了避免这种情况导致的无效写入,必须在数据从控制器传输至NAND的过程中对LDPC奇偶校验的完整性进行即时检查。如果检测到奇偶校验位错误,则跳过编程指令,避免将错误的奇偶校验信息写入NAND,而是重新进行编码后再尝试写入。

此外,在数据读取阶段,同样会进行多重验证以确保数据的准确无误。读取的数据不仅通过LDPC解码器来尝试纠正潜在的软错误,同时还需要通过CRC校验来验证整个数据块的完整性。另外,介质端到端(Media End-to-End, E2E)信息的比较也是重要的一环,通过对比原始写入时记录的E2E信息与当前读出的数据进行一致性校验,确保即使是在错误的位置上但内容仍然可纠正的数据块能够被正确识别和处理。

在SSD控制器设计中,LDPC解码器作为一个强大的错误纠正工具,用于修复在数据路径中发生的大部分软错误。通过LDPC编码和解码技术,可以有效地检测并修复由噪声或者其他不可预见因素引起的错误位。

图片

当错误被检测到时,会执行读重试操作,这是高效错误恢复步骤的一部分,体现了LDPC解码器在纠正偶尔错误方面的灵活性和效率。除了LD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/519717.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外包干了8天,技术退步明显。。。。。

先说一下自己的情况,本科生,19年通过校招进入杭州某软件公司,干了接近3年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

java017 - Java抽象类

1、概述 一般情况,动物是抽象的,所以不能被new,比如你在Animal类中定义一个成员方法eat,你不能定义具体内容,比如吃鱼或者吃白菜,因为动物是抽象的。 一个没有方法体的方法,应该定义为抽象方法,而类中如果…

应用层协议--HTTP

目录 一.HTTP是什么? 二.HTTP的请求和响应 a.请求: b.响应: 三.URL 四.Header 1.Host 2. Content-Length 3. Content-Type a. 请求 b. 响应 4. Referer 5. User-Agent 6. Cookie 一.HTTP是什么? HTTP是一种应用层协议&#xff0c…

2024-3-7 市场分歧视角

昨天安奈儿市场带领市场情绪一致,新型工业化方向独占鳌头,日内高潮节点尾盘老龙 克来机电涨停,昨晚很多老师在YY老龙是不是要二波了,呵呵。 今天市场分歧从竞价就开始了,隔夜单我记忆中 天奇股份88亿,上海…

Leetcode 239:滑动窗口最大值

题意 大小为 k 的滑动窗口从整数数组 nums 的最左侧移到最右侧,只能看到滑动窗口中的 k 个数字,窗口每次向右移动一位。 返回滑动窗口的最大值。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3 输出:[3,3,5,5,6,7] …

网工内推 | 上市公司售前,大专以上即可,最高15K*13薪,补贴多

01 北京神州新桥科技有限公司 招聘岗位:售前工程师 职责描述: 1、完成项目的售前技术支持工作; 2、 配合销售进行新产品及解决方案的推广工作; 3、 配合销售完成用户的售前技术交流方案准备、现场技术交流、技术方案宣讲等工作…

如何在小程序中绑定身份证

在小程序中绑定身份证信息是一项常见的需求,特别是在需要进行实名认证或者身份验证的场景下。通过绑定身份证信息,可以提高用户身份的真实性和安全性,同时也为小程序提供了更多的个性化服务和功能。下面就介绍一下怎么在小程序中绑定居民身份…

几何工具的使用

Geometry - Creation 创建几何 CogCreateCircleTool:创建圆CogCreateEllipseTool:创建椭圆CogCreateLineBisectPointsTool:带有两个点的平行线CogCreateLineParallelTool:在某一点创建某条线的平行线CogCreateLinePerpendicularTool:在某一点创建某条线…

JVM内存分配机制

JVM内存分配机制 对象的创建 对象创建的主要流程 1.类加载检查 虚拟机遇到一条new的指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相…

RISC-V架构学习资料整理

1、韦东山——D1S哪吒开发板的裸机代码仓库 https://github.com/bigmagic123/d1-nezha-baremeta 2、melis系统移植到D1S https://blog.51cto.com/u_13800193/6268813 3、韦东山的gitee仓库 https://gitee.com/weidongshan 4、D1S编译工具链下载 https://github.com/Tina-Linux/…

【RabbitMQ】WorkQueue

📝个人主页:五敷有你 🔥系列专栏:MQ ⛺️稳中求进,晒太阳 Work Queues Work queues任务模型,简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息 当消息处理比较耗时的时候&…

贪心算法详解及机器人运动应用Demo

一、引言 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。今天,我们将通过一个机器人运动的Demo来详细解析贪心算…