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 ...
随机推荐
- ansible API 常用模块
常用模块 用于读取yaml,json格式的文件 from ansible.parsing.dataloader import DataLoader #用于管理变量的类,包括主机,组,扩展等变量 fro ...
- nextUntil([exp|ele][,fil]) 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止。
nextUntil([exp|ele][,fil]) 概述 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止. 如果提供的jQuery代表了一组DOM元素,.nextUntil()方法也能让 ...
- 用CSS实现梯形图标
遇到需要实现如下图标 由图形分析,梯形,平行四边形等都可以由矩形变形而来. 而想要实现梯形,需要进行3D变换,需要使用css3的 perspective属性. 属性 perspective指定了观察者 ...
- virtualBox中有线和无线两种情况下centos虚拟机和本地机互ping的方案
之前写微信点餐系统的时候,刚开始是无线连接,然后每次进去虚拟机ip和本地ip都会改变,所以每次都需要配置一下nginx,还有本地的路径.之后换有线连接,就研究了一下桥接模式有线情况下虚拟机静态ip设置 ...
- 2019ICPC上海网络赛 A Lightning Routing I 点分树(动态点分治)+线段树
题意 给一颗带边权的树,有两种操作 \(C~e_i~w_i\),将第\(e_i\)条边的边权改为\(w_i\). \(Q~v_i\),询问距\(v_i\)点最远的点的距离. 分析 官方题解做法:动态维 ...
- SpringSecurity学习总结
第一.SpringSecurity-简介 1.1简介 SpringSecurity融合Spring技术栈,提供JavaEE应 用的整体安全解决方案: Spring Security为基于Java EE ...
- CodeForces 535C Tavas and Karafs —— 二分
题意:给出一个无限长度的等差数列(递增),每次可以让从l开始的m个减少1,如果某个位置已经是0了,那么可以顺延到下一位减少1,这样的操作最多t次,问t次操作以后从l开始的最长0序列的最大右边界r是多少 ...
- MAC ADDRESS
可以使用手机Wifi或蓝牙的MAC地址作为设备标识,但是并不推荐这么做,原因有以下两点:硬件限制:并不是所有的设备都有Wifi和蓝牙硬件,硬件不存在自然也就得不到这一信息.获取的限制:如果Wifi没有 ...
- maven plugin
assembly plugin [Maven学习]maven-assembly-plugin的使用 https://www.cnblogs.com/f-zhao/p/6929814.html使用Mav ...
- Centos7卸载nginx及php、php-fpm方法
Centos7卸载nginx及php.php-fpm方法 2016年12月01日 18:17:22 阅读数:20824 本文环境:Centos7.yum方式安装的nginx和php.php-fpm 之 ...