4000885680

EECC技术(Enhanced ECC)

什么是ECC技术?什么是Enhanced ECC(EECC)技术?


ECC是“Error Correcting Code”的简写,中文名称是“错误检查和纠正”,是一种差错检测和修正算法(也是加密算法)。ECC这将使整个电脑系统在工作时更趋于安全稳定。

ECC内存就是应用了这种技术的内存。

同样的,市面上绝大多数SSD固态硬盘也应用这种技术。原因是Nand Flash相比DRAM,其坏块、错误和寿命,均无法和DRAM相比,在以Nand Flash为存储截止的SSD固态硬盘领域,ECC的作用尤其关键。而我们一般说的Nand Flash的寿命,其实隐含了一个前提条件就是ECC的强度。如果没有ECC,可以说Nand Flash的寿命将大大降低。

 

In-drive-UPS

在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用 NAND Flash的系统中一般都会采用一定的坏区管理机制,而管理坏区的前提是能比较可靠的进行坏区检测。如果操作时序和电路稳定性不存在问题的话,NANDFlash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page中只有一个或几个bit出错,这时候 ECC就能发挥作用了。

一般来说NAND 闪存设备使用线性分组码。当前SSD内最普遍的ECC码是BCH码。当数据写入的时候,控制器内部的ECC模块计算数据并生成ECC签名,一般来说这个步骤非常快,因此并不会影响整个SSD太多性能。ECC的签名一般来说都保存在NAND页后部的SA区域,当数据从NAND读取的时候ECC模块回去读取 ECC签名,并对照相同与否来发现出现的错误。

 

通常,ECC的强度以其可以纠正的单位数据中最大错误量计算,如SF2000系列主控的纠错能力为最高55bit/512B(系统数据)和16bit/512B(用户数据)。目前常见主控对用户数据的纠错能力大约为8~16bit/512B。

所谓Enhanced ECC,其实就是加强的ECC(纠错强度),也就是讲可以纠正的错误比率,从目前常见的8~16bit/512B提升一倍以上,也就是达到32bit/512B以上的技术。

 

为什么SSD固态硬盘需要EECC技术?


UPS-Comay

一、EECC可以显著提高可靠存储和读取

Nand Flash的坏块与生俱来,而且在使用过程中会不断增加。而Nand Flash独特的性质,也会导致一定错误的发生,如读干扰等。这些变化都会造成数据无法可靠地存储和读取。

而随着Nand Flash制程的提高,误码率不断提高。所以对ECC必的要求,也越来越高升。因此,引入EECC技术对特定产品和应用,具有显著效益,特别是对可靠性和寿命有要求的领域。

据悉,ECC提升一倍,UBER降低1个数量级以上。

 

二、EECC可以显著提高和保证SSD固态硬盘寿命

作为SSD固态硬盘的存储芯片,Nand Flash的寿命与ECC能力密切关联。ECC纠错能力的提高,可以显著的提高Nand Flash的寿命。

以色列公司Anobit,以及韩国公司LAMD,均声称能够以自己的技术(包含ECC),将普通Nand Flash的寿命显著提升。Anobit称之为信号处理技术,LAMD称之为eBoost技术,而其他厂商也有自己的命名。其内核都包含ECC技术。

其中,Anobit声称,他们的技术可以将普通3000次寿命的MLC的寿命延长到50000次,相当于提升了17倍!

通常认为,单纯借助ECC,ECC纠错能力提升一倍,SSD固态硬盘寿命提升2~5倍。

 

EECC常见问题


 

EECC技术有什么价值?

综上所述,EECC技术在不增加直接费用的情况下,显著提升可靠性和寿命。

通常认为,ECC提升一倍,UBER降低1个数量级以上,SD固态硬盘寿命提升2~5倍。部分公司声称借助ECC在内的混合技术,可以将SSD寿命提升数十倍。

 

EECC技术这么好,为什么不是所有厂商广泛使用?

EECC技术的应用,需要一定的技术能力。

此外,能够应用EECC技术的产品,对容量,固件,Flash等,冗余空间有一定的限制,对性能也有少许影响,并不是适合每一种场合。

或每一种产品。

 

借助EECC技术,Nand Flash寿命是不是可以无限制提升?

目前这一方面还没有定论。部分公司的实践证明,ECC能力的提升,可以大幅度提升SSD固态硬盘的可靠性和寿命。

 

借助EECC技术,Nand Flash为基础的SSD固态硬盘是不是就完全可靠了?

借助EECC技术,Nand Flash为基础的SSD固态硬盘的可靠性大幅度提升,但不是完全可靠。如果错误数据量太大,ECC技术,包括EECC,将无法纠正。

好在SSD固态硬盘在ECC基础之上,还有类似于RAID5的更高级别的数据保护技术,如LSI/Sandforce的RAISE技术。当ECC技术无法纠正错误时,这类技术就会发挥作用。

RAISE在块级别提供数据保护。和ECC/EECC技术类似,它能够提高数据的安全性,SSD固态硬盘的可靠性,但是区别在于RAISE技术无法提高Nand Flash寿命。