金沙集团1991入口资讯
固态硬盘控制器上有ECC纠错模块 ,部分闪存还集成了ECC纠错模块。常用的闪存ECC 纠错算法有BCH (Bose、Ray -Chaudhuri和Hocquenghem三位大神名的首字母 )和LDPC(Low Density Parity Check Code)等。目前市场上很多固态硬盘控制器都采用 BCH ,但LDPC正成为一种趋势 。
用户数据最终写在闪存页面上。除用户空间 外,闪存页面空间还有额外的预留空间,可用于编写 ECC 验证数据 。用户数据的大小是固定的,需要更强的纠错能力 ,这需要更多的ECC空间 。因此,纠错强度仅限于闪存页面的预留空间。 预留空间越多,ECC 纠错能力越强。
目前,绝大多数固态硬盘都采用 静态ECC纠错方案 。ECC纠错单元(用户数据 )和ECC校准数据的大小在整个固态硬盘生命周期中是固定的,即纠错能力 始终保持不变 。由于闪存在使用初期比特 翻转的概率较小,随着闪存的使用,错误的概率逐渐增加 。
因此 ,一些固态硬盘开始使用动态ECC纠错方案 :开始使用更少的纠错码 ,以便在闪存页面中存储更多的用户数据 ;随着固态硬盘的使用,纠错能力需要加强,用户数据在闪存页面中的比例越小,纠错码的比例越大。动态 ECC 纠错 方案 是随着 固态硬盘的使用 ,动态调整 其ECC纠错能力 。
如果您开始使用 更少的ECC校准数据,那么每个页面都可以写更多的用户数据 ,这相当于固态硬盘有更多的OP (Over Provisioning,预留空间),减少了写放大 ;同时,从控制器中写入或读取闪存通道 ,用户数据 越多,带宽使用率越高。
事实上,动态ECC的优势不仅体现 在ECC 纠错能力随着时间的推移而变化 ,而且体现在固态硬盘的闪存位置上。每个Die甚至每个闪存页面都有不同的纠错能力。在固态硬盘闪存阵列中,有些Die可能质量更好,有些 Die可能质量更差。好的Die可以使用更少的ECC纠错代码;相反,差的Die需要更强的ECC纠错 。对于MLC来说,Lower Page比Upper Page更稳定 ,因此可以使用较弱的ECC保护 ;相反,Upper Page需要更强的ECC 保护 。
因此,ECC纠错码成了因态硬盘中不可缺少的重要部分,发挥它强大的纠错功能。加入我们