主权项 |
一种固态盘自适应纠错方法,其特征在于,所述方法包括如下步骤:(1)初始化:固态盘在输入数据前,进行块擦除操作,以便写入数据,并初始化所有擦除块的纠错码标识符B<sub>i</sub>=0,其中i=0,1,…,n,n表示固态盘擦除块的数量;(2)固态盘自适应纠错编码,包括:(2.1)当一页原始数据R被写入固态盘闪存芯片时,根据弱LDPC码的生成矩阵G<sub>1</sub>对原始数据R进行编码得到码字C<sub>1</sub>=R×G<sub>1</sub>,码字C<sub>1</sub>去掉原始数据R得到弱LDPC码校验信息P<sub>1</sub>;(2.2)由强LDPC码的生成矩阵G<sub>2</sub>对一页原始数据R编码生成码字C<sub>2</sub>=R×G<sub>2</sub>,码字C<sub>2</sub>去掉原始数据R得到强LDPC码校验信息P<sub>2</sub>;(2.3)一页原始数据R和P<sub>1</sub>,P<sub>2</sub>组成一页的码字C=(R,P<sub>1</sub>,P<sub>2</sub>);(2.4)将生成的码字C写入闪存芯片中;(3)固态盘译码过程,包括:(3.1)判断是否有读操作,如果有读操作则转向(3.2),否则结束;(3.2)判断读取页所在块i的纠错码标识符B<sub>i</sub>是否为0;(3.3)如果B<sub>i</sub>为0,则块i内所有页采用弱LDPC码进行纠错;(3.4)固态盘自适应纠错码切换操作,包括:(3.4.1)如果块i中一页使用弱LDPC码纠错失败,赋值块i的纠错码标识符B<sub>i</sub>=1,并转到步骤(3.5);(3.4.2)如果块i使用强LDPC码进行纠错后,如果块i被擦除,赋值块i的纠错码标识符B<sub>i</sub>=0,并转到步骤(3.2);(3.5)如果B<sub>i</sub>为1,则块i内所有页采用强LDPC码进行纠错。 |