背景

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的更多相关文章

  1. [原创] Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的算法解决办法

    MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦. 搭建MDK开发环境以及破解的方法,在前面的文章中有详细说明,这里不再赘述,有兴趣的可以 ...

  2. error:Flash Download failed-“Cortex-M3”,“Programming Algorithm”【转】

    本文转载自:http://www.yfrobot.com/thread-11763-1-1.html 最近安装了KEIL5,在使用KEIL5和JLIN实现在线调试功能时,一定会在Utilities选项 ...

  3. Nand flash 三种类型SLC,MLC,TLC【转】

    转自:https://blog.csdn.net/fc34235/article/details/79584758 转载自:http://diy.pconline.com.cn/750/7501340 ...

  4. 以计算斐波那契数列为例说说动态规划算法(Dynamic Programming Algorithm Overlapping subproblems Optimal substructure Memoization Tabulation)

    动态规划(Dynamic Programming)是求解决策过程(decision process)最优化的数学方法.它的名字和动态没有关系,是Richard Bellman为了唬人而取的. 动态规划 ...

  5. Dynamic Programming [Algorithm]

    今天学习动态规划01背包问题,从一篇非常不错的文章中学习甚多.转载于此,感谢作者的分享! 原文地址 通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总 ...

  6. NAND Flash底层原理,SLC MLC TLC比较【转】

    转自:https://blog.csdn.net/qq_39560607/article/details/81714145 版权声明:请注明转载自Christa_RJ https://blog.csd ...

  7. NAND Flash底层原理,SLC MLC TLC比较

    NAND-Flash 的存储原理 固态硬盘最小单元的基本架构如下: 我们知道计算机中所有的信息储存最终都必须回归到 0与1,原则上,只要存储单元能提供两种或两种以上可供辨识的状态,便可以拿来纪录数据. ...

  8. Samsung K9F1G08U0D SLC NAND FLASH简介(待整理)

    Samsung  K9F1G08U0D,数据存储容量为128M,采用块页式存储管理.8个I/O引脚充当数据.地址.命令的复用端口.详细:http://www.linux-mtd.infradead.o ...

  9. 优盘(U 盘) 采用TLC, MLC, SLC芯片 的区别 与使用寿命

    最近一直在看大家在讨论sandisk,pny,金士顿等大厂都开始用tlc的芯片问题,让大家基本都不敢用U盘存数据了按照之前的擦写参数TLC        1000次MLC       10000次SL ...

随机推荐

  1. BZOJ 2346: [Baltic 2011]Lamp Dijkstra

    不难发现如果一个边的方向改变,就一定不会改回来(这样肯定不是最短路). 所以就直接建双向边,边权为 $0$ 代表不改变,边权为 $1$ 代表改变,跑一个最短路即可. #include <bits ...

  2. (九)文档和视图,Invalidate,数据库编程

    一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...

  3. Python之python简介

    一.Python的优缺点 优点: 1.Python的定位是“优雅”.“明确”.“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非 ...

  4. matlab 计算灰度图像的一阶矩、二阶矩、三阶矩

    ​   一阶矩,定义了每个颜色分量的平均强度 ​  二阶矩,反映待测区域颜色方差,即不均匀性 ​  三阶矩,定义了颜色分量的偏斜度,即颜色的不对称性 close all;clear all;clc; ...

  5. Linux如何修改环境变量

    如果想要环境变量永久生效可以修改下面两个文件中的任何一个: 1 /etc/profile 2 .bash_profile 其中,/etc/profile是全局的环境变量,对所有用户生效,而.bash_ ...

  6. MySQL-插入更新 ON DUPLICATE KEY UPDATE

    向数据库中插入一条记录,若该数据的主键值(UNIQUE KEY)已经在表中存在,则执行后面的 UPDATE 操作.否则执行前面的 INSERT 操作. 测试表结构 CREATE TABLE `flum ...

  7. BOM问题

    在php编写中,很多人喜欢用notepad editplus 等等在windows下编写程序, 这就很容易出现一个问题,那就是文件签名的东西--BOM!所谓BOM,全称是Byte Order Mark ...

  8. Jenkins的详细安装及使用

    操作环境:Windows 踩过的坑:1,报错403,因为tomcat限制了访问地址(https://www.cnblogs.com/luoruiyuan/p/6518508.html) 2,构建spr ...

  9. 让 Nginx 支持 WAF 防护功能实战

    ngx_lua_waf 安装说明文档 作者github地址: https://github.com/loveshell/ngx_lua_waf ———————————————————————————— ...

  10. RabbitMQ学习之:(四)回头看刚才写的程序 (转贴+我的评论)

    转自:http://lostechies.com/derekgreer/2012/03/18/rabbitmq-for-windows-hello-world-review/ 我的心得: 1. 在创建 ...