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

2.LDPC(Low Density Parity Check)纠错码

LDPC码是一种基于稀疏矩阵的纠错码,它由一组奇偶校验方程组成,其中大部分元素为零,因此得名“低密度”。LDPC码的优点是可以有效地纠正大量的错误,尤其是对于高密度存储设备来说。LDPC解码可以分为硬解码和软解码两种方式。

(1)LDPC Hard Decode

硬解码是最基本的LDPC解码方法,它试图从接收到的数据中恢复正确的信息。这个过程通常涉及到将接收到的代码字与一个预定义的校验矩阵相乘,并检查结果是否为全零向量。如果是全零向量,则说明接收到的信息是正确的;否则,需要进行错误定位和纠正。比BCH更复杂,能处理更多的错误,但仍然没有充分利用信号质量信息。

(2)LDPC Soft Decode

软解码是一种更复杂的解码方式,它考虑到了接收信号的质量,并尝试优化解码决策。在这个过程中,不仅使用了接收到的比特值(0或1),还考虑了每个比特的概率分布。通过这种方法,软解码可以提供更高的错误检测和纠正能力,但需要更多的计算资源。最复杂但也最强力的纠错方式,利用了信号强度信息来提高解码准确性,但需要更多的计算资源

三者的纠错能力对比:BCH与LDPC Hard Decode纠错能力差不多,LDPC Hard Decode也只是比BCH高一点。但是,LDPC Soft Decode纠错能力会提升3倍以上。

图片

在SSD读取过程中,LDPC纠错的顺序通常是这样的:先执行硬判决解码,硬判决解码失败或者无法纠正所有错误,SSD会接着尝试使用软判决解码。软判决解码利用了每个比特的概率信息,能够更准确地定位和修复错误。

图片

但是这个纠错过程中,硬解码主要依赖硬件实现,因为它的运算过程相对简单且重复,适合于ASIC(专用集成电路)设计。在现代SSD中,LDPC硬解码通常由闪存控制器中的专门硬件模块完成。硬解码只需要对数据进行一次简单的奇偶性检查,而软解码则需要多次迭代来更新每个比特位的概率分布并做出决策。因此,当硬解码无法正确处理错误时,通常会转向软解码,即使这意味着读取操作的整体延迟会增加。根据研究人员实验数据显示,LDPC软解码每一步执行的大致延迟数据如下:

图片

由于LDPC Soft Decode可能会引起较大的QoS延迟波动,目前业内针对这部分的涉及也非常的敏感,也是各大SSD控制器厂商和SSD原厂的核心算法与竞争力。通常,这部分的实现可能有两方面:

  • 一种选择是Soft Read由SSD主控来完成,这部分可能就依赖FW管理能力与效率。

  • 另外一种选择是Soft Read由每个NAND通道的闪存主控FlashIP来完成,这部分也是主流的选择,相对高效,实测结果参考如下:

场景1: 4KB随机混合读写,读:写=1:1

图片

场景2: 4KB随机读100%

图片

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

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

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

相关文章

net::ERR_CERT_AUTHORITY_INVALID

接口请求报错:net::ERR_CERT_AUTHORITY_INVALID 浏览器遇到这种不安全的证书会自动拦截,导致数据无法获取 问题分析 翻译一下: 其实从字面意思就可以指定报错原因了:https的ssl证书有问题。 解决办法 临时解决办法 我们可以…

Docker Swarm编排:构建简单集群

Docker Swarm 是 Docker 官方提供的容器编排工具,通过它可以轻松构建和管理多个 Docker 容器的集群。本文将深入探讨 Docker Swarm 的基础概念、构建集群的步骤,并提供更为丰富和实际的示例代码,帮助大家全面了解如何使用 Docker Swarm 搭建一…

0x21 树与图的遍历

0x21 树与图的遍历 树与图最常见的储存方式就是使用一个邻接表保存它们的边集。邻接表以head数组为表头,使用ver和edge数组分别存储边的终点和权值,使用next数组模拟链表指针(就像我们在0x13节中讲解邻接表所给出的代码那样)。 …

大数据生态圈kafka在物联网中的应用测试

背景 由物联网项目中使用到了Tbox应用管理车辆,在上报数据的过程中,需要将终端产生的数据通过kafka的produce topic customer对数据进行处理后,放置到mysql中。完成数据二进制到json转换工作。 Kafka的使用 查看kafka的topic ./kafka-topi…

【Trino权威指南(第二版)】Trino的架构、trino架构组件、 trino连接器架构的细节、trino的查询执行模型

文章目录 一. Trino架构1. 架构概览2. 协调器3. 发现服务4. 工作节点 二. 基于连接器的架构三. 查询执行模型1. 解析—>查询计划2. 查询计划 —> 分布式查询计划3. 运行阶段3.1. 基础概念切片:并行单元page 与 exchange算子pipeline切片的driverOperator 3.2.…

Redis 的常见使用场景

01 缓存 作为 Key-Value 形态的内存数据库,Redis 最先会被想到的应用场景便是作为数据缓存。而使用 Redis 缓存数据非常简单,只需要通过 string 类型将序列化后的对象存起来即可,不过也有一些需要注意的地方: 必须保证不同对象的…

STL中sort的底层实现

文章目录 1、源码分析2、算法优化3、总结 在讲解STL中sort的底层原理之前,先引申出这样几个问题? ①STL中sort的底层是采用哪种或者哪几种排序? ②STL中sort会导致栈溢出吗? ③快速排序的时间复杂度是不稳定的 l o g 2 n log_2n l…

2024年顶级的9个 Android 数据恢复工具(免费和付费)

不同的事情可能会损坏您的Android手机并导致您丢失数据。但大多数时候,您可以使用取证工具恢复部分或全部文件。 问题可能来自手机的物理损坏、磁盘的逻辑故障、完整的系统擦除,或者只是简单的粗心大意。 但是,无论数据丢失的原因是什么&am…

docker小白第四天

docker小白第一天 什么是镜像 1、是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就…

三、Spring IoC 容器和核心概念

本章概要 组件和组件管理概念 什么是组件?我们的期待Spring充当组件管理角色(IoC)组件交给Spring管理优势 Spring IoC 容器和容器实现 普通和复杂容器SpringIoC 容器介绍SpringIoC 容器具体接口和实现类SpringIoC 容器管理配置方式 Spring I…

Golang学习之路一开山篇

Golang学习之路一开山篇 初识 Golang 我第一次接触 Golang 是在2016年, 当时在深圳工作, 项目需要用Golang, 当时在犹豫要不要学还是走, 毕竟Java开发搞了很多年了, 说放弃还是有难度的, 其实也不是放弃Java, 说不定其他项目还是要使用Java. 在领导的再三劝说下, 开启了Golan…

嵌入式开发人员需要具备哪些能力?

大家好,今天给大家介绍嵌入式开发人员需要具备哪些能力,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 嵌入式开发人员需要具备以下能力: 熟练掌握C/C语…

Kubernetes 的用法和解析 -- 2

一.集群常用指令 1.1 基础控制指令 # 查看对应资源: 状态 $ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide [rootkube-master ~]# kubectl get pods -n kuboard -o wide# 查看对应资源: 事件信息 $ kubectl describe <SOURCE_NAME> <SOURCE_NAME_R…

产品入门第五讲:Axure交互和情境

目录 一.Axure交互和情境的介绍 1.交互介绍 概念 常见的Axure交互设计技巧 2.情境介绍 概念 常见的Axure情境设计技巧&#xff1a; 二.实例展示 1.ERP登录页到主页的跳转 2.ERP的菜单跳转到各个页面 &#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个…

七. 使用ts写一个贪吃蛇小游戏

之前学习了几篇的ts基础&#xff0c;今天我们就使用ts来完成一个贪吃蛇的小游戏。 游戏拆解 我们将我们的任务进行简单拆解分析。 首先我们应该有一个窗口&#xff0c;我们叫做屏幕。让蛇在里面移动&#xff0c;所有我们应该想到要设计一个大盒子当作地图。考虑到食物以及蛇…

【LeetCode刷题笔记(7-1)】【Python】【四数之和】【哈希表】【中等】

文章目录 四数之和题目描述示例 1示例 2提示解决方案1&#xff1a;【四层遍历查找】解决方案2&#xff1a;【哈希表】【三层遍历】 结束语 四数之和 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件…

服务器一直掉线怎么回事?

随着网络的高速发展&#xff0c;不管是网站还是游戏&#xff0c;如果遇到服务器卡顿的情况&#xff0c;会造成用户访问网站或进游戏&#xff0c;网站页面长时间无法打开&#xff0c;游戏页面运行卡顿&#xff0c;这样就很容易会造成用户的流失&#xff0c;从而导致业务亏损极大…

可视化数据监控大屏网页界面,数据大屏模版PS资料(免费UI源文件)

数据大屏模板在大数据领域被广泛应用&#xff0c;其优势在于能够将复杂的数据通过图形、图表等方式呈现出来&#xff0c;使数据更易于理解。数据大屏模板可以用来进行数据分析。通过对数据的比较、趋势分析、异常检测等&#xff0c;可以发现数据中的规律和问题&#xff0c;为决…

Appium知多少

Appium我想大家都不陌生&#xff0c;这是主流的移动自动化工具&#xff0c;但你对它真的了解么&#xff1f;为什么很多同学搭建环境时碰到各种问题也而不知该如何解决。 appium为什么英语词典查不到中文含义&#xff1f; appium是一个合成词&#xff0c;分别取自“application…

51单片机项目(21)——基于51单片机的音乐流水灯

1.功能描述 本次所做设计&#xff0c;有流水灯的功能&#xff0c;使用了16颗LED灯&#xff0c;同时还可以播放音乐。单片机存储了三首音乐&#xff0c;通过声音检测模块触发其进行切换。&#xff08;仿真图里面使用一个按键来代码声音检测模块&#xff09; 此外&#xff0c;还…