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

1.SSD基础知识

SSD的存储介质是什么,它就是NAND闪存。那你知道NAND闪存是怎么工作的吗?其实,它就是由很多个晶体管组成的。这些晶体管里面存储着电荷,代表着我们的二进制数据,要么是“0”,要么是“1”。NAND闪存原理上是一个CMOS管,有两个栅极,一个是控制栅极(Control Gate), 一个是浮栅(Floating Gate). 浮栅的作用就是存储电荷,而浮栅与沟道之间的氧化层(Oxide Layer)的好坏决定着浮栅存储电荷的可靠性,也就是NAND闪存的寿命。

图片

目前市面上主要流通的就是4种NAND类型:SLC、MLC、TLC、QLC。随着每个寿命从高到低依次是SLC>MLC>TLC>QLC.

图片

Host从SSD读数据,最终数据的来源也是要从NAND die上读取,对NAND die发送Read Page操作,数据返回。这个过程的耗时直接决定了SSD读性能的好坏。下图是某个比较老的NAND SPEC相关读操作的示意图,仅供参考。

图片

图片

NAND Page Read实现的基本原理如下:

图片

如上图所示,这是对单一cell进行read的基本操作。在控制栅极(CG, 也是WL)加上0V的电压,源极(Source)端加上0V以及漏极(Drain, 也是BL)加上1V,然后通过源极与漏极之间电流Icell的大小来判断cell的状态(0或者1)。

  • A点的状态代表存在Icell,所以Cell处于“开态”(ON),称为Erased;

  • B点的状态代表不存在Icell或者Icell很小且可忽略,所以Cell处于“关态”(OFF),称为Programmed。
     

如果对NAND cell阵列操作,原理图如下:

图片

在需要read的target Page的WL上面加一个R1(一个较小的电压),其他WL的加VpassR, BL方向加1V,

  • 如果Cell C处于Erased, 对应BL的Sense电路会感应到有电流;

  • 如果Cell C处于Programmed, 对应BL的Sense电路不会感应到有电流。

如前面讲述,Read过程中,需要在Non-Target WL上加一个VpassR, 如果对一个Block里面的Page连续Read很多次的话,就相当于在某一WL一直会有VpassR的Stress

如下图,Cell D 由于VpassR长时间的Stress, 会引起浮栅FG弱的电子注入,因为Read disturb主要影响Erased状态的cell,进而表现在Vt图中L0向右飘移

图片

在SSD中,针对Read disturb有优化措施,就是尽量避免持续读同一Block的Page,如果在进行了长时间的读操作之后,会加入Erase/Program操作,减小Read stress。这个为防止读干扰的数据搬迁动作也性能有一定的影响,

2.Vpass对读干扰与性能的影响

近期小编在查阅Vpass相关资料的时候,翻阅到了华东师范大学石亮教授团队于2017年发表的一篇关于Vpass的论文,思路挺好的,这里节选核心的内容分享给大家。详细论文获取链接,公众号后台回复关键字Vpass论文即可。

从读干扰的原理来看,如果同一个block内的wordline被读的次数越多,那么读干扰的影响将越大。随着3D NAND的堆叠发展,单个block的容量越来越大,那么单个block的Read Count也会相应的不断升高,呈现了指数级别的增长。3D NAND读干扰的问题,比之前2D NAND更加严重

图片

之前有研究表明,拉低Vpass电压可以有效降低读干扰的发生。但是,也会造成另外一个问题,也可能会产生额外的读错误。

图片

论文中,提出一种选择特定的wordline施加低电压Vpass的方案。比如下图示例WL2正在进行Read操作,在WL0/WL62施加了低VpassL。这样的话,就降低了WL0/WL62的读干扰,同时会对WL2产生额外的读错误也会显著降低。

图片

接下来,核心问题是,如何选择哪些WL施加低电压VpassL?

为了解决这个问题,论文中提出了2个核心点:

1.给每个Wordline增加了一个热点计数器

通过读热点与阈值T比较:

  • 低于T,属于冷数据,施加正常VpassN;

  • 大于等于T,属于热数据,施加低电压VpassL。

图片

2.结合LDPC RBER和热点访问综合判断

LDPC有7个level感应电压,对应7个RBER范围。论文中将LDPC的7个level分为3组:

  • Stage1: Read Level 1,这个阶段,读错误最小,所有的wordline都施加低电压VpassL。

  • Stage2: Read Level 2-6,这个阶段,读错误有所增加,只针对热点读wordline施加低电压VpassL

  • Stage3: Read Level 7,这个阶段读干扰导致的错误已经很严重了,需要执行数据搬迁动作。

图片

在Stage1和Stage2,论文中还设置一个参数,Page read的延迟参数F,如果下次读的延迟增加,则选择升高VpassL电压,从VpassL0可以逐渐升高到正常电压VpassN。

大家看完上面两个步骤,是不是觉得很复杂。的确是,我们就需要考虑到,上面两个策略增加了FW设计复杂性(决策热点数据)和硬件复杂性(电路实现不同的Vpass),同时增加了额外的开销。以单个block(包含1024 pages,单个page大小4KB)为例:

  • 记录Stage:需要1bit

  • 记录6个VpassL:需要3bit

  • 记录7个读延迟基准:需要3bit

  • 记录热点阈值:需要2bit

这样来计算,对于512GB的die,就需要8MB的额外存储空间。

最后的模拟效果如何呢?

  • 对于单个block 512 WLs:选择性降低Vpass的方案可以有效降低读延迟,提升读性能。

  • 对于单个block 1024 WLs:全部降低Vpass的方案,由于产生了额外的读错误数据,还会导致性能下降。

  • 对于单个block 2048 WLs: 全部降低Vpass的方案完全就不能工作了,因为产生的额外错误太多,超过了ECC纠错能力。

  • 从平均数据来看,论文提出的“选择性降低Vpass”的策略可以有效提升20%读性能

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PTA_乙级_1008

首先&#xff0c;它翻转前部分&#xff08;0 到 N-M-1&#xff09;。 然后&#xff0c;它翻转后部分&#xff08;N-M 到 N-1&#xff09;。 最后&#xff0c;它整体翻转整个数组&#xff08;0 到 N-1&#xff09; #include<iostream> using namespace std;// 反转数组的…

Linux线程同步

文章目录&#xff1a; Linux线程同步条件变量同步概念与竟态条件条件变量函数为什么 pthread_cond_wait 需要互斥量&#xff1f;条件变量使用规范 Linux线程同步 条件变量 当一个线程互斥地访问某个变量时&#xff0c;它可能发现在其它线程改变状态之前&#xff0c;它什么也做…

Unity 实现文字过长显示省略号

为了整体效果&#xff0c;当文字过长时&#xff0c;我们就会把超出范围的文字弄成省略号。 要实现文字过长显示省略号&#xff0c;只需要使用TextMeshPro&#xff0c;并设置Overflow属性为Ellipsis即可。 如下图&#xff1a; 记。

【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602液晶显示各种效果。 二、软件设计 /* 作者&#xff1a;嗨小…

SpringBootWeb案例——Tlias智能学习辅助系统(2)

前一节已经实现了员工信息的条件分页查询以及删除操作。 这一节继续完成新增员工、文件上传、修改员工、配置文件的功能。 目录 新增员工文件上传简介本地存储阿里云OSS介绍与入门项目集成阿里云(难点) 修改员工查询回显修改员工 配置文件参数配置化(Value)yml配置文件Configur…

Git安装配置保姆级教程和Git创建仓库的基本原理和常用命令

目录 前言 一、Git简介 1.Git 与 SVN 区别点 2.Git的介绍 3.Git 工作流程 4.Git 工作区、暂存区和版本库 二、Git安装配置 1.Linux 平台上安装 2.Windows 平台上安装 三、Git 创建仓库和下载 1、首先需要注册一个gitee账号 2.git初始化并提交到远程仓库 3.另一用户…

蓝桥杯每日一题2023.11.9

包子凑数 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 对于此题是一个简单DP的翻版问题&#xff0c;若能凑出当前的包子数&#xff0c;则凑出之前一定为dp[i - a[j]]&#xff0c;若表示出的dp[i]不是0则说明是一定存在数可以被凑出的&#xff0c;由题意&#xff1a;若凑不出的…

汽车工业生产线数字孪生可视化管理平台,赋予工厂车间数字化智慧化管理

在工业4.0 的时代背景下&#xff0c;随着企业数字化进程的推进&#xff0c;数字孪生可视化技术逐渐在汽车行业得到广泛应用&#xff0c;数字孪生智慧工厂的建设也成为了汽车行业数字化转型的趋势之一。汽车制造业属于典型的离散制造行业&#xff0c;汽车生产包含冲压、焊接、涂…

微机原理3

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案。 1. 在机器数中&#xff0c;零的表示形式唯一的编码是() A. 原码 B. 补码 C.移码 D. 反码 2,用于定义常数、变量的内存空间分配和定位的是()。 A. 伪指令 B.机器指令…

【Python】数据分析案例:世界杯数据可视化

文章目录 前期数据准备导入数据 分析&#xff1a;世界杯中各队赢得的比赛数分析&#xff1a;先打或后打的比赛获胜次数分析&#xff1a;世界杯中的抛硬币决策分析&#xff1a;2022年T20世界杯的最高得分者分析&#xff1a;世界杯比赛最佳球员奖分析&#xff1a;最适合先击球或追…

VM17虚拟机设置网络,本地使用工具连接虚拟机

VM17虚拟机设置网络&#xff0c;本地使用工具连接虚拟机 下载及安装虚拟机不再说明&#xff0c;网络一堆教程。此处只对VM17设置网路及本地使用工具连接虚拟机操作&#xff0c;进行说明。 我下载的是VM17&#xff0c;网上有说VM16是较稳定的版本。想尝尝鲜&#xff0c;结果耗…

debian 已安装命令找不到 解决方法

前言&#xff1a;安装了debian系统&#xff0c;更新完软件包安装软件之后发现很多命令找不到&#xff0c;查找命令路径发现命令已经安装了&#xff0c;但是没办法直接使用 更新软件包 &#xff08;第一次安装的系统一定要执行&#xff0c;不然可能无法安装软件&#xff09; apt…

leetcode:762. 二进制表示中质数个计算置位(python3解法)

难度&#xff1a;简单 给你两个整数 left 和 right &#xff0c;在闭区间 [left, right] 范围内&#xff0c;统计并返回 计算置位位数为质数 的整数个数。 计算置位位数 就是二进制表示中 1 的个数。 例如&#xff0c; 21 的二进制表示 10101 有 3 个计算置位。 示例 1&#xf…

简单好看个人引导页毛玻璃页面 HTML 源码

毛玻璃个人引导页源码&#xff0c;界面简洁&#xff0c;已测可完美搭建&#xff0c;UI非常不错的&#xff0c;有兴趣的自行去安装体验吧&#xff0c;其它就没什么好介绍的了。 学习资料源代码&#xff1a;百度网盘 请输入提取码&#xff1a;ig8c

微信小程序将后端返回的图片文件流解析显示到页面

说明 由于请求接口后端返回的图片格式不是一个完整的url,也不是其他直接能显示的图片格式&#xff0c;是一张图片 后端根据模板与二维码生成图片,返回二进制数据 返回为文件流的格式,用wx.request请求的时候&#xff0c;就自动解码成为了下面这样的数据数据格式,这样的数据没…

Window环境NFS服务务器搭建及连接

1.NFS服务端搭建&#xff0c; 下载haneWIN NFS 服务端软件&#xff08;工具下载路径&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1HXeQ8nIY4RHVltd0uAvFaw 提取码&#xff1a;w18j &#xff09; 2.安装haneWIN NFS 服务端软件比较简单&#xff0c;直接点下一步即可…

怎么将pdf转换成word?

怎么将pdf转换成word&#xff1f;将pdf文件转换成word是一件非常重要的转换技能&#xff0c;将pdf转换成word可以解决非常多的问题&#xff0c;总结起来主要有以下这些&#xff1a;编辑文本&#xff1a;① PDF文件通常是不可编辑的&#xff0c;而将其转换为Word格式后&#xff…

c#数据类型

常量 /*常量是固定的量&#xff0c;在运行过程中不可以改变的量 const 来修饰不能改变的量*/ // public private protected internal 是访问修饰符using System.Security.Cryptography.X509Certificates;namespace ConsoleApp1 {internal class Program{public const int a 1…

Semantic-Guided Zero-Shot Learning for Low-Light ImageVideo Enhancement

论文阅读之无监督低光照图像增强 Semantic-Guided Zero-Shot Learning for Low-Light Image/Video Enhancement 代码&#xff1a; https://github.com/ShenZheng2000/SemantiGuided-Low-Light-Image-Enhancement 在低光条件下增加亮度的一个可行方法是使用更高的ISO或更长时间…

qt-C++笔记之Qt中的时间与定时器

qt-C笔记之Qt中的时间与定时器 code review! 文章目录 qt-C笔记之Qt中的时间与定时器一.Qt中的日期时间数据1.1.QTime&#xff1a;获取当前时间1.2.QDate&#xff1a;获取当前日期1.3.QDateTime&#xff1a;获取当前日期和时间1.4.QTime类详解1.5.QDate类详解1.6..QDateTime类…
最新文章