闪存读重试机制(Read Retry)为什么能降低误码率,以及RIF如何提升读性能

前言

  昨天由于考试加上课,稍微有些疲惫,加上论文和实验碰到了点难题,所以也有点畏难心态,就没什么心思学习。索性昨晚直接就和舍友出去逛逛商场聊聊天,回到宿舍后沉浸式狂看《被讨厌的勇气》,看到了半夜十二点多将近一点,现在又能量满满啦,看看今天学什么新知识呢?
  今天选这个主题的原因是昨晚临睡前看到一篇HPCA2024文献【1】,引发了我的这个思考,稍后我会先介绍一下这篇文章的主题以及相关背景,接下来一起进入今天闪存的学习吧!

一、闪存为什么会产生误码

1、闪存单元架构:

  要了解闪存单元为什么会产生误码,首先需要了解闪存单元架构,才能明白闪存单元是如何进行数据存储的。
flash architeure
  如上图所示,闪存单元可以分为这两种基本架构,均为晶体管结构,左图a是FG架构,该架构下是通过金属层存储电荷以实现数据的存储;右图b是CT架构,该架构下是通过绝缘层的电荷陷阱存储电荷以实现数据的存储。当对闪存单元进行编程时,其实就是对闪存单元进行充电,通过往控制极施加电压实现将电荷存储到中间的浮栅或者绝缘层中。
  然后,根据我们所存储的电荷数量来区分我们存储的数据,即划分电压水平。假设,当电荷存储量最多时,最高电压为10V,我们将10V划分为两个电压水平状态,即L1:0~ 5V和L2:5~10V,当闪存单元电压位于L1区间时,为数据1;当闪存单元电压位于L2区间时,为数据0。因此,如果我们想要存储数据0,则将对应的闪存单元充电使得电压水平到达L1区间即可,同理,若想存储数据1,则将对应的闪存单元充电使得电压水平到达L2区间即可。
  而当我们要执行读操作时,我们可以将判断电压(即读感知电压)设置为5V。如果在这个判断电压下,闪存单元导通,则当前闪存单元数据为1;若不导通,则数据为0。如下图所示
vth

2、为什么会导致误码

  将数据存储到闪存单元之后,如果相邻字线执行读取操作、编程操作或者相邻块执行擦除操作等,就会由于耦合作用或者其他作用影响到已经存储了数据的闪存单元电压偏移,当位于L1区间的闪存单元如果由于电压偏移到达了L2区间,并且由于我们的判断电压是设置为5V,因此当进行读操作时数据从1被误判为0。如下图所示,某些闪存单元从L1偏移到L2区域,发生误码。
vth change

二、read retry如何降低误码率

  首先,我们需要了解读重试发生的条件:当我们对某个闪存数据页进行读取操作时,首先将读取到的数据存到片内寄存器中,随后传输到片外闪存控制器中进行ECC校验,如果当前数据页的误码率(RBER)在ECC的纠错范围内(第二个flag:出一篇文章讲这个误码率的计算),则直接执行ECC完成读操作即可,否则,如果超出了ECC的纠错范围,则触发重读操作,需要到闪存中重新再一次对该数据页进行读取操作。
  那为什么读重试就可以降低误码率呢?原因是:因为当前数据误码率过高,于是我们可以知道大多数闪存单元发生了电压偏移,到达了另一个电压区间。于是读重试操作通过改变读感知电压再执行读操作,以期望能纠正跑到别的区间的闪存单元。如下图所示,通过将读感知电压偏移,当闪存单元低于读感知电压时,数据为1,当闪存单元电压高于读感知电压时,数据为0,成功纠正因为电压偏移而导致的数据错误的闪存单元,从而降低闪存页的误码率,这就是读重试为什么能降低误码率的原因。
read retry

三、RIF:提升读性能【1】

1、背景

  由于每次执行读操作时都需要先将数据从闪存中读出到片外闪存控制器中判断误码率是否超出ECC纠错范围,如果没有超出则直接ECC即可完成读操作,否则就需要重新回到片内触发读重试,即我们当前完成的这次读操作无效。而又因为读操作需要占用数据传输总线和片内寄存器空间,并且一次读操作可能会触发多次读重试操作,这就会导致总线资源和片内寄存器资源一直被占据,同时导致读延迟过大

2、实现

  于是该篇文章在闪存内部实现了一个模块:RiF-enabled flash chip with an on-die early-retry (ODEAR) engine。这个模块的功能就是直接在闪存内部进行误码率的计算和判断,如果误码率超出ECC纠错范围,则不读出片外,继续片内进行读重试,直到误码率低于ECC时再读出到闪存控制器中,或者超过读重试次数报读失败。如下图所示,a图为传统的读重试步骤,需要一次读重试需要执行6步操作;b图为该片文章的idea,省略了a图的2和3步骤,有效避免由于读重试造成的额外的时间浪费和资源浪费。
RIF

个人总结

  好啦,今天也算是学到了一个小知识点,希望和大家共同进步!还想和大家讲点题外话:最近感觉读研生活有点难受,因为自己的进度其实有点跟不上老师的期待值,虽然我没有在摆烂,但是人的精力终究是有限的,加上我的基础不牢固,所以学习速度也没有那么快就能跟上,可是一直屡次跟不上进度,还是终究影响到了我的自信心,有点受挫了。不过我还是相信挺一挺就过去了!好好享受当下的痛苦,继续一小步一小步地前进吧,和大家共勉。

Reference

【1】Chun M, Lee J, Kim M, et al. RiF: Improving Read Performance of Modern SSDs Using an On-Die Early-Retry Engine[C]//2024 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, 2024: 643-656.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值