A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory
背景
1.2012年左右的数据
SLC、MLC、TLC闪存芯片的区别:
SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格超贵(约MLC 3倍以上的价格),约10万次擦写寿命
MLC = Multi-Level Cell,即2bit/cell,速度一般寿命一般,价格一般,约3000---10000次擦写寿命(2003)
TLC = Trinary-Level Cell,即3bit/cell,也有Flash厂家叫8LC,速度慢寿命短,价格便宜,约500次擦写寿命,目前还没有厂家能做到1000次。(2009)
关于速度:
SLC速度最快,MLC速度比TLC更快。但也有资料显示,MLC是不是比TLC快要看制程的,新制程的TLC比老的MLC快多了,不过寿命的确是MLC要长点。
关于擦写次数:
“TLC芯片”只能写500次并非意味着U盘拔插500次就完蛋了!简单举例,假设一个8G U盘,往里面写入8G,就算一次;清空写入3G,算第二次,在清空写入5G,仍然算第二次;再写入1G,那现在就开始算第三次。
换个角度来理解,假设8G U盘一生只能擦写500次,那么这个U盘一生理论上可以重复装载4000G 文件。而MLC芯片的U盘一生最少都能装载2.4万G到8万G。这就是为什么说TLC芯片的U盘相对短命的原因。
关于TLC:
X3(3-bit-per-cell)架构的TLC芯片技术是MLC和TLC技术的延伸,最早期NAND Flash技术架构是SLC(Single-Level Cell),原理是在1个存储器储存单元(cell)中存放1位元(bit)的资料,直到MLC(Multi-Level Cell)技术接棒后,架构演进为1个存储器储存单元存放2位元。
2009年TLC架构正式问世,代表1个存储器储存单元可存放3位元,成本进一步大幅降低。
如同上一波SLC技术转MLC技术趋势般,这次也是由NAND Flash大厂东芝(Toshiba)引发战火,之后三星电子(Samsung Electronics)也赶紧加入战局,使得整个TLC技术大量被量产且应用在终端产品上。
TLC芯片虽然储存容量变大,成本低廉许多,但因为效能也大打折扣,因此仅能用在低阶的NAND Flash相关产品上,象是低速快闪记忆卡、小型记忆卡microSD或随身碟等。
象是内嵌世纪液体应用、智能型手机(Smartphone)、固态硬碟(SSD)等技术门槛高,对于NAND Flash效能讲求高速且不出错等应用产品,则一定要使用SLC或MLC芯片。
2010年NAND Flash市场的主要成长驱动力是来自于智能型手机和平板计算机,都必须要使用SLC或MLC芯片,因此这两种芯片都处于缺货状态,而TLC芯片却是持续供过于求,且将整个产业的平均价格往下拉,使得市调机构iSuppli在统计2010年第2季全球NAND Flash产值时,出现罕见的市场规模缩小情况发生,从2010年第1季43亿美元下降至41亿美元,减少6.5%。
2.来源百度百科
(1)SLC 和MLC分别是是Single Layer Cell 单层单元和Multi-Level Cell多层单元的缩写,SLC的特点是成本高、容量小、速度快,而MLC的特点是容量大成本低,但是速度慢。MLC的每个单元是2bit的,相对SLC来说整整多了一倍。不过,由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行错误修正,这个动作导致其性能大幅落后于结构简单的SLC闪存。
(2)出错率。在一次读写中SLC只有0或1两种状态,这种技术能提供快速的程序编程与读取,简单点说每Cell就像我们日常生活中使用的开关一样, 只有开和关两种状态,非常稳定,就算其中一个Cell损坏,对整体的性能也不会有影响。在一次读写中MLC有四种状态(以每Cell存取2bit为例), 这就意味着MLC存储时要更精确地控制每个存储单元的充电电压,读写时就需要更长的充电时间来保证数据的可靠性。它已经不再是简单的开关电路,而是要控制 四种不同的状态,这在产品的出错率方面和稳定性方面有较大要求,而且一旦出现错误,就会导致2倍及以上的数据损坏,所以MLC对制造工艺和控制芯片有着更 高的要求。目前一些MP3主控制芯片已经采用了硬件4bit ECC校验,这样就可以使MLC的出错率和对机器性能的影响减小到最低。
一、摘要
1.作者开发了一种新的3-bit programming algorithm 在20nm以及更大的TCL NAND上。
2.用这种新算法编程的 STC-to-TLC 性能和误码率(BER,bit error rate)提升了 50%,68%,相对传统算法。
3.在21nm 64GbTLC NAND闪存产品,达到了8MB/ s的写入和400MB/ s的读取吞吐量。
二、介绍
1.DDR接口为MLC NAND的提供了完美的读取性能,同时也适合TLC的特征。
2.现在的问题:Increasing cell-to-cell interference as a result of device scaling
3.为了解决 cell-to-cell interference
之前的方法:
a reprogramming algorithm that minimizes the F-poly coupling at the final step program was proposed as shown in Fig.1
存在的问题:
(1)a large buffer in external NAND controller
(2)data loss of power-off
so that it has been very hard to adopt for low cost NAND applications.
三、新方法
(第一段)
1.传统的做法和问题原因+图二
【?】留细看
(第二段)
2.图3展示新算法的基本概念,--加了一块SLC+page buffer
(1)The NAND flash blocks consist of two parts in new program algorithm: buffer blocks and main blocks.
(2)All data written by host should be programmed to SLC buffer blocks prior to main ones
(3)After at least 3 pages of data are programmed in SLC block, TLC program can be started.The data stored in SLC buffer block should be kept until the 3rd step program is finished for the word line in TLC blocks.
(4)Generally, a raw BER(bit error rate) of SLC buffer block is negligible so that it is not necessary to read data out for ECC(error correcting codes).
(5)传统TLC要达到7MB/s 需要更快的TLC程序
三、提升(更快的TLC程序)
1.两种方法提高TLC程序的速度:pre-pulse program and 1-step verif (预脉冲程序和1 - 步骤VERIF)
2.【图3】pre-A2 and pre-A3 pre-B1 pulse.
We implement 5 states and 8 states respectively in the 1st and 2nd step program so that it is minimized adjacent cell-to-cell interference at the 3rd step program as shown in Fig.5(a).
3.一步验证--速度是更重要的因素。
A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory的更多相关文章
- [原创] Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的算法解决办法
MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦. 搭建MDK开发环境以及破解的方法,在前面的文章中有详细说明,这里不再赘述,有兴趣的可以 ...
- error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】
本文转载自:http://www.yfrobot.com/thread-11763-1-1.html 最近安装了KEIL5,在使用KEIL5和JLIN实现在线调试功能时,一定会在Utilities选项 ...
- Nand flash 三种类型SLC,MLC,TLC【转】
转自:https://blog.csdn.net/fc34235/article/details/79584758 转载自:http://diy.pconline.com.cn/750/7501340 ...
- 以计算斐波那契数列为例说说动态规划算法(Dynamic Programming Algorithm Overlapping subproblems Optimal substructure Memoization Tabulation)
动态规划(Dynamic Programming)是求解决策过程(decision process)最优化的数学方法.它的名字和动态没有关系,是Richard Bellman为了唬人而取的. 动态规划 ...
- Dynamic Programming [Algorithm]
今天学习动态规划01背包问题,从一篇非常不错的文章中学习甚多.转载于此,感谢作者的分享! 原文地址 通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总 ...
- NAND Flash底层原理,SLC MLC TLC比较【转】
转自:https://blog.csdn.net/qq_39560607/article/details/81714145 版权声明:请注明转载自Christa_RJ https://blog.csd ...
- NAND Flash底层原理,SLC MLC TLC比较
NAND-Flash 的存储原理 固态硬盘最小单元的基本架构如下: 我们知道计算机中所有的信息储存最终都必须回归到 0与1,原则上,只要存储单元能提供两种或两种以上可供辨识的状态,便可以拿来纪录数据. ...
- Samsung K9F1G08U0D SLC NAND FLASH简介(待整理)
Samsung K9F1G08U0D,数据存储容量为128M,采用块页式存储管理.8个I/O引脚充当数据.地址.命令的复用端口.详细:http://www.linux-mtd.infradead.o ...
- 优盘(U 盘) 采用TLC, MLC, SLC芯片 的区别 与使用寿命
最近一直在看大家在讨论sandisk,pny,金士顿等大厂都开始用tlc的芯片问题,让大家基本都不敢用U盘存数据了按照之前的擦写参数TLC 1000次MLC 10000次SL ...
随机推荐
- PHP mysqli_get_client_version() 函数
定义和用法 mysqli_get_client_version() 函数将 MySQL 客户端库版本作为整数返回. MySQL 客户端库版本将按照以下格式返回: 主要版本*10000 + 次要版本*1 ...
- 微信小程序填坑之旅(1)-app.js中用云开发获取openid,在其他页上用app.globaldata.openid获取为空
参考:小程序如何在其他页面监听globalData中值的变化?https://www.jianshu.com/p/8d1c4626f9a3 原因就是:app.js没执行完时,其他页已经onload了, ...
- CSP-S 模拟53 题解
题解: T1 u: 一看到修改这么多,但询问其实只有一个不难想到差分,但是他这个形状可以说很不规则,于是我们想到分别维护竖着的和斜着的差分,然后最后合并即可. 考场上瞎调了一波系数莫名AC,其实是维护 ...
- HGOI 20191103am 题解
Problem A number 使用一个$2^k$数集中每个元素的和表示数$n$,不同集合的数目有多少? 对于$100\%$的数据满足$1 \leq n \leq 10^6$ Solution : ...
- delete elasticsearch
在elasticsearch-head 插件中遇到的删除特定的数据需求 DELETE /索引名/需要清空的type/_query { "query": { "match_ ...
- yolo image.c
void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabe ...
- Linux系统Docker配置阿里云镜像加速器
vim /etc/docker/daemon.json # 替换为 "registry-mirrors": ["https://v2ltjwbg.mirror.aliyu ...
- js-xlsx
XLSX.read(data, {type: type}); type主要取值如下: base64: 以base64方式读取: binary: BinaryString格式(byte n is dat ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解
笔记 3.微信Oauth2.0交互流程讲解 简介:讲解微信Oauth2.0交互流程 参考:https://open.weixin.qq.com/cgi-bin/sho ...
- 一百二十:CMS系统之注册功能前后端逻辑
给提交按钮加一个id,方便写js js //发送ajax请求注册请求$(function () { $('#submit-btn').click(function (event) { event.pr ...