神奇的ECC,可将内存的成本进一步降低
高端消费产品、网络和工业系统等内存密集型应用程序正面临着成本压力,这促使工程师寻找在提高性能的同时降低系统成本的新方法。错误码校正(ECC)是NAND闪存中维护可靠性和延长内存寿命的关键技术。为了在市场上实现基于NAND闪存的系统有更好的效率,与集成ECC的架构相比,开发人员更加倾向于在主机MCU中实现ECC架构。
本文将探讨集成的和基于主机的ECC之间的差异,比较一下每种方法对系统性能、可靠性和最终成本的影响。
简单说一下什么叫ECC。ECC内存即纠错内存,简单的说,其具有发现错误,纠正错误的功能,一般多应用在高档台式电脑/服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。
内存在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性问题。内存错误根据其原因还可分为硬错误和软错误。硬件错误是由于硬件的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在内存附近突然出现电子干扰等因素都可能造成内存软错误的发生。
当为一个系统选择闪存时,开发人员可以在NAND和NOR技术之间进行选择。NAND单元比NOR单元小,所以NAND的每位成本比NOR内存低。这反过来导致NAND闪存比NOR闪存可用的密度更高。此外,与NAND相比,NOR单元背后的物理原理导致了更长的程序擦除(P/E)时间。由于这些优点,NAND正以越来越快的速度被采用。
传统上NAND闪存的缺点是耐久性和读取性能较慢。随着时间的推移,NAND单元磨损或失去保持程序值的能力,将影响内存位转换状态。当一个块(Block)开始磨损时,它的数据可以转移到另一个块。随着单元的退化,为了防止数据丢失,我们便采用ECC技术。
ECC使用冗余来验证存储的数据是否与写入到内存的数据相匹配。此外,当检测到错误时,为了确保更高的数据完整性,ECC可以对每个块的错误数量进行修正。当超过某个错误阈值时,数据被移动到一个新块上。废弃的块被标记为“bad”,再也不会使用。因此,NAND闪存与ECC结合就可以提供高可靠性应用程序所需的完整性水平。
然而,由于ECC生成和检查需要时间过程,因此它会影响吞吐量和系统成本,这取决于它是如何实现的。通常,ECC可以与内存本身集成或由主机处理器在外部管理。集成方法有两种配置:
一种是单模方法,其中ECC是内存die的一部分,另一种是双模方法,其中控制器IC(具有串行接口和ECC)与内存die合并。在基于主机的方式下,ECC支持MCU NAND flash控制器去访问NAND。内存制造商提供的这三个选项允许OEM为他们的应用程序选择最佳的折衷方案。
一种灵活的ECC方法
将ECC集成到NAND闪存,具备了直接由存储器芯片本身管理ECC的优势。然而,尽管这种方法在某种程度上简化了系统设计,但代价是较高的内存成本和较低的读取性能。与主机处理器中使用的更高的内部时钟频率相比,闪存中较慢的内部时钟导致了读取性能的降低。
集成了ECC之后就增加了NAND闪存设备的大小和复杂性,因此内存成本会更高。考虑到一个8位ECC的硬件实现有大约50K。这表示对一个简单内存控制器的门数(gate count)(3000K)有~1.7%的影响。然而,如果集成在NAND存储器上,影响会在10-15%之间,并且会使存储器的成本增加更多。对于使用多内存设备的大内存需求系统,将ECC与NAND内存集成意味着要多次支付额外成本,而不是基于主机MCU一次性支付ECC。
此外,读取性能也有所下降,因为集成ECC会增加延迟,每个内存读取的时钟率低于主机控制器可以处理ECC检查的时钟率。下图显示了NOR flash、集成ECC的NAND flash以及基于主机的ECC的NAND flash的读取吞吐量比较。可以看出,集成ECC的NAND闪存的性能不到NOR闪存的一半。然而,当ECC是基于主机的时候,NAND闪存的读取性能几乎翻倍,几乎与NOR闪存持平。
当检测到错误(并纠正错误)时,基于主机的ECC提供了更好的性能。下图显示了错误对读取第一数据时间(RFDT)的影响。通过集成ECC, RFDT从45微秒增加到70微秒。对于基于主机的ECC, RFDT要好得多,仅从35微秒增加到45微秒。
CTAN017:读取干扰错误处理
1 简介
对闪存设备来说,一些应用大部分都是读操作,基本没有写操作。例如一个赌博游戏的应用,软件一旦加载到闪存卡上就只有读操作,并禁止非正常的写入操作。
对闪存设备来说,没有写操作的这类应用,用户选择使用MLC NAND,认为MLC的耐用性,在被无限的读取操作中,不会出现问题。然而,实际状况却不是这样!从实际应用中长时间收集的数据来看,即使只有读操作,在MLC NAND设备中,也会损坏NAND。
原因:读取操作中产生的干扰错误,对闪存来说是致命的。尤其是小制程工艺的MLC(24nm以下)
在本文中,我们将解析读取操作产生干扰错误的原因,及极存的闪存产品,使用了哪些方法来减少、避免这些问题。
2 读取干扰错误
在一个NAND FLASH阵列里面,存储单元(cell)在一个长的串型结构里面,功能相当于一个多输入的与非门。
在一个读取操作期间,给选择到的字线(wordline)施加一个可以读操作的阀值电压,给未选择到的字线高电压,这样NAND里面所有的存储单元都被完全控制。
被选择的存储单元的状态 会被传送到传感运放。偏置条件如下图1:
图 1: 读取偏置条件
这个偏置条件,会导致其他未选择到的字线控制的存储单元被缓慢编程(漏电),如果这个读取操作偏置条件被重复多次,最后,未选择的字线里面的cell将缓慢的上升到被编程状态,并导致传感错误,这个状态如下图:
图2: 读取干扰
附近cell的交错噪声也会导致读取干扰错误。由于设备的制程收缩,这些交错噪声会进一步导致错误,具体如下图:
典型的干扰错误是在高温环境下,因为高温会加速存储单元里面电荷的运动。
如果不能正确处理读取干扰错误,最后将形成不能修复ECC错误而导致设备损坏。
3 读取错误处理
为了减轻读取错误的影响,极存产品实现了2个特征。
3.1 接近错误的ECC
根据ECC错误的检测阀值小于最大值,设备可以设置ECC的校正能力,当达到读操作的阀值时,错误的块将通过重新写数据而被刷新,根据不同的产品,重写操作在下次写命令时立即进行。
3.2 平均读写块
在平均读写块的过程中,每个块将对读取错误进行计数,总数会被监测并同预设置的阀值做比较,当达到阀值时,块将重写数据而被刷新。
注意产品会有很小的可能在刷新坏块时会产生很小的性能影响,一般仅仅在产品的寿命末期发生。
相关问答
电脑安装 flash 时说证书认证失败是什么意思,要好不好才能正确...到flash官网下载,此证书可被系统和杀毒软件认可有用(0)回复aasdwdwqdwqdqwd是不是系统有问题啦有用(0)回复moleni02把QQ彻底删除了,然后下载一个重新安...
3d max2014中,打开文件提示gamma和lut设置不匹配怎么处理?-ZO...其实大多数时候是因为3dmax的UI界面文件损坏导致的问题,解决方法:删除C:\Users\你的用户名\AppData\Local\Autodesk\3dsMax\你的软件版本\CHS\zh-CN\路...
如何在任天堂Switch上使用“Xbox无障碍控制器”?了让残障人士也能享受游戏乐趣,微软发售了专为残障人士开发的“Xbox无障碍控制器”,被誉为充满关爱的优秀游戏外设产品,其做工和可定制性也广受赞誉。现在...为...
比亚迪速锐显示屏触摸怎么自己校准-ZOL问答速锐平板电脑开不了机,但是一连上数据线就一直显示一个Nextway的图标,过一会才消失是怎么回事55浏览0回答速锐平板电脑怎样刷机啊67浏览0回答速锐平板电...
有什么休闲的游戏值得推荐?好玩的休闲游戏还是不少的,下面棒棒堂就简单介绍几个吧。古树旋律这是一个关于音乐的童话故事,通过一段段美妙的钢琴旋律,给我们带来了一场震撼的视听盛宴...
nv项目指什么?Nv为非易失性数据,从字面意思可以理解作用。比如闹钟时间,设置好后,关机后,应该依然有效,则保存在Nv中。而比如电话本查找的.数据,为了速度从sim卡或f...Nv...
tsc打印机标签纸换完以后怎么连接?⑼打印浓度设定⑽标签纸大小设定⑾标签纸间隙(Gap)或黑色感应线(BLINE)的宽度及偏移长度(offset)设定⑿标签纸间隙感应器灵敏度⒀下载储...首先...
请高手帮我看一下这个提示是什么意思-盖德问答-化工人互助问...多都不懂。刚才我把所以换热器的管程都改为1了,都没再出现那个提示。然后hysys...刚才我把所以换热器的管程都改为1了,都没再出现那个提示。然...
Adobe Flash player下载不成功,为什么啊(官方下载的)-ZOL问答这是因为浏览器禁止了adobeflashplayer插件加载项造成的。启动方法:点IE“工具”,然后选择“internet选项”,选择“程序”选项卡,然后点击最下方的“管理加载...
w7颜色校准重启就会自动恢復 怎么弄-ZOL问答ipad可以安装flash插件吗544浏览5回答为何我的笔记本按鼠标右键没有nvidia控制面板?5638浏览7回答拼多多上为何没显示退货包运费1万浏览5回答为何我...