固态硬盘ECC纠错能力,一眼看出SSD的好坏
我们常常看到SSD上显示支持ECC。那么ECC是个什么东西呢?
ECC是SSD的数据校验、纠错。
为什么SSD需要ECC呢?
原因:
1.SSD容易产生数据读写错误。ECC需要去校验更改数据错误,以及判断是否坏块。
2.SSD读写的介质是NANDFLASH。而NANDFLASH在生产过程和使用过程中都会产生坏块。
为什么NANDFLASH会产生数据读写错误呢?
原因:
1.写入集中、写入放大、异常断电等等,数据读写错误是普遍的。
2.NANDFLASH坏块引起数据读写错误。
为什么NANDFLASH会有坏块?
原因:
1.生产时的造成的坏块。
2.使用中造成的坏块。NANDFLASH是通过电荷来实现数据储存的,而当电荷击穿底层的绝缘层,坏块或就出现了。
坏块太多的NANDFLAH,无法通过测试,就成了黑片,部分测试未通过NANDFLASH基本能用就成了白片,而NANDFLAH的坏块少并且通过全部测试是为正片。
NANDFLASH中坏块是普遍存在的,只是多少的问题。这些坏块影响NANDFLASH/SSD的读写性能和寿命。
如上图,SSD的写入主要分为顺序读写和随机读写,而SSD使用中不断增加的坏块,随机的出现在SSD的NANDFLASH中,这使得SSD读写时容易出现错误,和增加读写的等待时间。
为了减小坏块、错误数据对NANDFLASH/SSD的影响。主控需要对NANDFLASH里的坏块进行判定、校正错误数据、对坏块进行管理。于是主控加入了BBM坏块管理和ECC校验纠错。
ECC找到坏块或者“伪坏块”,对它们进行判断、识别、纠正、标注,如果确定它们是真的坏块,则将其交给BBM去管理。
这样在主控的干预下,SSD读写时就可以减少数据错误、避开坏块,从而保证了SSD的读写性能和安全、寿命。
随着主控技术的不断进步。主控的ECC和BBM能力不断增强,主控ECC能力越来越强,BBM也能管理和屏蔽更多的坏块了。
这使得SSD对NANDFLASH的品质要求越来越低。这使得黑片都可以拿来做SSD,且性能勉强达到使用要求。
主控进步是SSD技术的一种进步,但是降低对NANDFLASH品质的要求对于我们消费者来说,却是一件坏事。因为黑片从此可以暗度陈仓,鱼目混珠了。
简单的讲了讲ECC和SSD的坏块管理,就叭叭叭说了一大通。如果有错误和遗漏,欢迎交流。
下面我们来一点实际的。我们来看看如何通过查看“ECC的运行历史/状况”来大概看懂一个SSD的好坏。
(声明:此方法是我无意中发现的,是结合了ECC和BBM知识的一种猜想,有待验证。)
我用SSD-Z测到硬盘S.M.A.R.T自我检测分析报告,在里面,我看到“ECC错误率”格式化为682。而我的SSD才使用214小时。我的电脑几乎是24小时开机,也就是说我的SSD才使用15天以内。半个月时间,我的ECC检查到和格式化的错误数据/坏块达到了682次/个。
我用鲁大师测试SSD。硬件ECC校正数据达到了699。
这两个图说明,我的SSD“牛仔很忙”。
为什么SSD使用不久,但是ECC却很忙,检查到/纠正过的数据错误或者发现的坏块非常多?
因为:
1.可能是NANDFLASH品质很渣。
2.可能是SSD主控不给力。
只有这两个可能,且任何一个都代表SSD可能很差劲。
确实如此,我的SSD速度测试,顺序读为300多MB/S,顺序写入不到20MB/S,4K也是不堪入目,是一个性能比HDD还糟糕的SSD。
另外我也用其他SSD用上面的方法检测过。也证明,我们通过看“ECC的运行历史/状况”可以大概了解到SSD主控和NANDFLASH的好坏,进而了解到这款SSD的好坏。
(但是由于ECC的版本不同,可能有的SSD在测试时无法看到“ECC的运行历史/状况”。大家不妨自己试试。)
小知识大作用:U盘的芯片,为什么会有坏块?
坏块的种类:
第一种是出厂时就有的坏块,也就是,你买到的新的,还没用过的Nand Flash,就可能包含了坏块。此类出厂时就有的坏块,被称作factory (masked) bad block 或initial bad/invalid block,在出厂之前,就会做对应的标记,标为坏块。
第二种是在使用过程中产生的坏块,由于使用过程时间长了,在擦块除的时候,出错了,说明此块坏了,也要在程序运行过程中,发现,并且标记成坏块的。具体标记的位置,和上面一样。这类块叫做worn-out bad block。即用坏了的块。
坏块标记:
NAND Flash坏块标记的位置三种情况:每个块的第1页、第1页和第2页、最后1页。对于小页(512Bytes大小),坏块标记是在OOB区域的第6个字节。对于大页(如2K大小),坏块标记是在OOB区域的第1个字节。如果坏块标记字节是0xff,则说明这个块是好块,否则就是坏块。
坏块管理:
在linux系统中会使用坏块表(BBT)对坏块进行管理。在加载NAND驱动时,如果你没有加入参数主动要求跳过坏块扫描,那么系统都会扫描坏块,并建立BBT。使用中可以通过BBT来查询某个块是否是坏块。使用过程中如果发现坏块,也需要更新BBT。坏块表有两种存放方式:
第一种是存放在内存中,这就要求在每次系统上电后都要重新扫描一次NAND Flash,建立bbt。缺点是使系统启动速度变慢,优点是不需要占用NAND Flash空间。
第二种是存放在NAND Flash中,这种方式就不需要在系统上电后重新扫描NAND Flash,只需要去读取就可以了。
相关问答
NandFlash 烧录时 坏块 是如何处理的?WinCE或Linux系统通常存储于NandFlash中,而NandFlash频繁擦写易出现坏块,坏块影响系统正常工作,严重时会导致系统无法启动。M3352核心板、M283核心板、M287核...
U盘 Flash 芯片损坏有救吗?U盘Flash芯片损坏还是有救的。如果U盘FLASH芯片出现了坏块,并不是就意味着这个U盘报废了呢,还是可以通过量产的方法来修复U盘FLASH芯片的坏块,将坏块屏蔽后...
flash坏 了怎么办?恩,解决的办法是在运行中输入regedit,在注册表中找到HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersionsSafeVe...
P4在格式化过程中没电关机了 再打开后显示 flash error 而且...内存卡是不是坏了有用(0)回复这应该是系统调用错误,误删除了系统文件。报售后吧。有用(0)回复不能格式化,连接电脑没反应,那就应该是中病毒了,要拿去修...
NorFlash与 NandFlash 的区别?NorFlash和NandFlash是两种不同的闪存存储器,它们的主要区别在于其存储方式和应用场景。1.存储方式:NorFlash采用的是随机访问存储(RAM)方式,也就是说可以...
nvflash刷失败怎么还原-ZOL问答为了不会耍坏bios,就会阻止你继续刷入bios程序,防止发生严重的错误,这个只是bi...大姐,你再安装一遍vc2008试试吧,所有的刷机软件都不支持win764位系统,只支持3...
我已经安装了adobe flash player,为何swf打不开(图标是空白)...安装成功要重启电脑还有把浏览器全都退出现在的adobeflash最新的是10.1如果看不了装以前的版本就可以了如果是IE浏览器就装adobeflashplayerforIE如....
进网页时出现没安装 FLASH 10或 FLASH 版本太低怎么处理?-ZOL问答(1)如果flash太低,或者没有安装FLASH,可以在本机电脑上安装一个QQ管家,或者360安全卫士,这样在桌面就会出现QQ软件管家或者360软件管家的图标,当然也可以单独安...
为何电脑上已经有了Adobe flash player还是不能播放后缀为sw...dsifndabwuqt打开“我的电脑”或“资源管理器”——工具——文件夹选项——文...找到swf文件,设置打开为Adobeflashplayer的具体位置或是右击需要播放的swf...
adobe flash player在360极速浏览器被禁用怎么处理?-ZOL问答讲道理Flashplayer是大部分浏览器都会用到的不该被禁啊....有用(0)回复vkwangweisky建议打开软件管家,在里边找到最新Flash插件,安装就可以了。有用(0)回.....