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

接part1介绍:

如何达到这个目的?业内常用的是对写入数据的数据进行随机化处理,这部分主要在SSD控制器中通过硬件实现

图片

  • 上图b/c:在控制器芯片通过硬件方式实现随机化的读写流程,这个也是业内通常做法随机化处理是在写入数据之前完成,也是在LDPC encode之前。这部分随机化处理时间,也是会影响数据写入时间tPROG和读取出来tR。

  • 上图d/e:随机化处理不是通过硬件实现,在业内并不常见做法。软件的方式处理很慢,且容易出现问题。

随机化的实现方式有多种,其中一种是利用线性反馈移位寄存器(LFSR)进行随机化。LFSR是一种可以用于生成伪随机序列的线性反馈移位寄存器,其初始值称为种子(seed)。其原理是将存储的数据进行移位操作,并向最低位添加新的随机数据。这个新的数据是根据一个特定的反馈函数生成的,它确保了序列的随机性。

ALFSR和LFSR是两种不同类型的随机数生成器,它们之间的区别主要体现在应用场景和生成随机数的机制上。

LFSR(Linear Feedback Shift Register)是一种线性反馈移位寄存器,它利用线性反馈的方式从一些输入位中选择一些位并将其移到输出位,从而实现随机数的生成。LFSR的优点是简单、速度快、硬件实现简单,但它的随机性相对较差,容易受到反馈函数的影响,可能存在预测性和循环性等问题。LFSR 有一个特点,如果初始状态不是全零,那么它会在 2^k - 1 个状态后回到初始状态,其中 k 是寄存器的位数。这个周期性使得 LFSR 生成的序列不会出现重复。

ALFSR(Advanced Linear Feedback Shift Register)是一种高级线性反馈移位寄存器,它是在LFSR的基础上改进而来的,通过增加更多的状态和反馈函数来提高随机性。ALFSR的反馈函数更复杂,可以更好地混合输入位,从而生成更随机、不可预测的随机数。此外,ALFSR还采用了多周期跳变和状态跳跃等技术,可以更好地防止循环和预测性。

图片

因此,ALFSR和LFSR的主要区别在于应用场景和生成随机数的机制。LFSR适用于对随机性要求不太高、简单快速的随机数生成场景,而ALFSR则适用于对随机性要求较高、需要更高质量和更安全随机数的场景,例如密码学、信息安全、计算机程序等。

LFSR/ALFSR方法也有一些局限性,它不能保证垂直方向上的数据随机化,比如下图,4-bit AFSR随机化处理后,依然有垂直方向的连续1或者连续0

图片

为了解决这个问题,有些控制器制造商会采用多种子方法来降低不同 ALFSR/LFSR 之间数据的相关性,从而增强数据的随机性。比如下图中,垂直方向和水平方向,均实现了随机化处理

图片

水平方向随机化(Horizontal Centric,HC)和双向随机化(Bidimensional Randomization)的效果对比如何呢?

在Endurance测试方面:

  • 下图左-水平方向随机化:LSB、CSB、MSB的REBR相差很大,特别是LSB/MSB REBR较差

  • 下图右-双向随机化:RBER均有了较大的提升,其中LBA效果最好。

图片

在Retention测试方面:

  • 下图左-水平方向随机化:LSB、CSB、MSB的REBR均超过了ECC最高界限

  • 下图右-双向随机化:只有MSB超过了ECC最高界限,提升也很明显

图片

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

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

相关文章

JVM虚拟机:命令行查看JVM垃圾回收器的执行信息

在eclipse中打开命令行窗口 window->show view->Terminal 这样就打开了Terminal窗口,效果如下所示: java -XX:PrintCommandLineFlags -version 这个命令可以查看一些配置信息,其中最重要的配置信息就是,当前使用的G1回收器…

机器学习算法性能评估常用指标总结

考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive&#xff0…

Java到底是什么?学了我们能做什么?

一、Java是什么? Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实…

软件设计中如何画各类图之九活动图:系统行为与流程的可视化描述

目录 1 前言2 活动图的符号及说明2.1 开始和结束节点2.2 活动(Action)2.3 控制流(Control Flow)2.4 决策节点(Decision Node)2.5 合并节点(Merge Node) 3 画活动图的步骤3.1 确定活动…

Vue3拖拽功能【VueDraggablePlus】

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新,已经跟 vue3 严重脱节,所以诞生了这个项目,这个组件是基于 Sortablejs 的,所以如果你想了解更多关于 Sortablejs 的信息,可以查看Sortablejs 官网。VueDraggableP…

WIFI直连(Wi-Fi P2P)

一、概述 Wifi peer-to-peer(也称Wifi-Direct)是Wifi联盟推出的一项基于原来WIfi技术的可以让设备与设备间直接连接的技术,使用户不需要借助局域网或者AP(Access Point)就可以进行一对一或一对多通信。这种技术的应用…

微表情检测(三)----基于光流特征的微表情检测

Micro-expression spotting based on optical flow features 基于光流特征的微表情检测 Abstract 本文提出了一种高精度和可解释性的自动微表情检测方法。首先,我们设计了基于鼻尖位置的图像对齐方法,以消除由头部晃动引起的全局位移。其次&#xff0…

C语言----文件操作(一)

一:C语言中文件的概念 对于文件想必大家都很熟悉,无论在windows上还是Linux中,我们用文件去存储资料,记录笔记,常见的如txt文件,word文档,log文件等。那么,在C语言中文件是什么样的存…

【Hung-Yi Lee】强化学习笔记

文章目录 What is RLPolicy GradientPolicy Gradient实际是怎么做的On-policy v.s. Off-policyExploration配音大师 Actor-Critic训练value function的方式网络设计DQN Reward ShapingNo Reward:Learning from Demonstration What is RL 定义一个策略网络&#xff0…

SOA 的关键技术

SOA 伴随着无处不在的标准,为企业的现有资产或投资带来了更好的复用性。SOA 能够在最新的和现有的系统之上创建应用,借助现有的应用产生新的服务,为企业提供更好的灵活性来构建系统和业务流程。SOA 是一种全新的架构,为了支持其各…

Java并发(十七)----变量的线程安全分析

1、成员变量和静态变量是否线程安全 如果它们没有共享,则线程安全 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 如果只有读操作,则线程安全 如果有读写操作,则这段代码是临界区,需要考虑线…

旅游信息网站的设计与实现

摘 要 旅游信息网站是基于ADS.NET与C#技术的WEB应用程序,以互联网形式作为传播媒体实现旅游信息反补及信息共享的网络平台。本论文中主要论述旅游网站设计的基本思路及使用到的ASP.NET、c#、SQL等相关技术。为提高用户体验,将采用B/S结构开发模式系统&a…