互信息计算方法与装置与流程

文档序号:15615195发布日期:2018-10-09 21:11阅读:313来源:国知局
本申请涉及错误校正译码
技术领域
,尤其涉及一种互信息计算方法与装置。
背景技术
:ldpc码(低密度奇偶校验码,lowdensityparitycheckcode)是一种错误校正码,与其他错误校正相比,在相同的码率下,ldpc码具有纠错能力强、收敛速度快的特点,因此是现阶段ssd(固态驱动器,solidstatedrive)控制器领域最佳的错误校正码。ldpc码是一种二进制分组码,采用超稀疏矩阵作为校验矩阵。校验矩阵中每行(每列)中非零元素稀少。对于任何合法的码字v,码字v与校验矩阵h的乘积为零。常见的ldpc译码算法包括:置信传播算法(beliefpropagation,bp),最小和算法(min-sum)和比特反转算法(bitflip)等。而最小和算法和基于最小和算法的改进算法由于其硬件实现简单,且具有足够好的纠错性能在ssd控制器领域被广泛采用。ldpc译码包括硬译码与软译码,在软译码中译码器利用软信息(也称为软比特度量)进行迭代译码。为获得软信息,通过使用多个不同的判决电压从存储单元的读出数据,利用多次读出数据的结果获得诸如对数似然比(llr,logarithmiclikelihoodratio)的软信息。在一些nvm芯片中,可以指定在读操作中所使用的判决电压。一些闪存芯片,提供了“读重做”(read-retry)技术或命令。通过为读操作指示不同的参数,来选择读操作时所使用的阈值电压。技术实现要素:为获得软信息,需要使用不同的判决电压从存储单元读出数据。这也增加了读出数据的次数、数据吞吐量、占用了闪存通道带宽、增加了获取数据的时间并消耗了更多的功率。需要降低从存储单元读出数据的次数,并获得最优或较优的软信息。因而需要识别出能够获得最优或较优软信息的数据读出方式的组合或判决电压的组合。根据本申请第一方面,提供了根据本申请第一方面的第一获得处理过程组合的方法,其中所述处理过程组合用于获得错误校正软译码的软信息,包括:利用多个处理过程从nvm芯片获得多组数据;计算每组数据与nvm芯片中存储的数据的互信息,得到多个互信息;找到所述多个互信息中具有最大值的最大互信息;以及记录得到所述最大互信息的处理过程的组合。根据本申请第一方面的第一获得处理过程组合的方法,提供了根据本申请第一方面的第二获得处理过程组合的方法,其中,多组数据的每组数据包括一份或多份数据,每份数据是由所述多个处理过程之一从nvm芯片中读出的数据。根据本申请第一方面的第一或第二获得处理过程组合的方法,提供了根据本申请第一方面的第三获得处理过程组合的方法,其中多组数据的每组数据包括一份或多份数据,每份数据是对由所述多个处理过程之一从nvm芯片中读出的数据进行错误校正译码得到的数据。根据本申请第一方面的第一获得处理过程组合的方法,提供了根据本申请第一方面的第四获得处理过程组合的方法,其中多组数据的每组数据包括一份或多份数据,多个处理过程为多个具有不同参数的读命令,每份数据是由具有不同参数的读命令从nvm芯片中读出的数据。根据本申请第一方面的第一或第四获得处理过程组合的方法,提供了根据本申请第一方面的第五获得处理过程组合的方法,其中多组数据的每组数据包括一份或多份数据,多个处理过程为多个具有不同参数的读命令,每份数据是对由具有不同参数的读命令从nvm芯片中读出的数据进行错误校正译码得到的数据。根据本申请第一方面的第一获得处理过程组合的方法,提供了根据本申请第一方面的第六获得处理过程组合的方法,其中多组数据的每组数据包括一份或多份数据,多个处理过程为多个具有不同参数的读命令,每份数据是由具有不同参数的读命令从nvm芯片中读出的数据;以及所述多组数据包括由普通读命令从nvm芯片中读出的一份数据。根据本申请第一方面的第一或第六获得处理过程组合的方法,提供了根据本申请第一方面的第七获得处理过程组合的方法,其中多组数据的每组数据包括一份或多份数据,每份数据是对由具有不同参数的读命令从nvm芯片中读出的数据进行错误校正译码得到的数据;以及所述多组数据包括对由普通读命令从nvm芯片中读出的数据进行错误校正译码得到的一份数据。根据本申请第一方面的第一到第七获得处理过程组合的方法的任一项,提供了根据本申请第一方面的第八获得处理过程组合的方法,其中,所述多组数据的每组数据包括指定份数的数据。根据本申请第一方面的第一到第八获得处理过程组合的方法的任一项,提供了根据本申请第一方面的第九获得处理过程组合的方法,其中计算每组读出数据与nvm芯片中存储数据的互信息包括:对于所述每组读出数据中的第一组读出数据,统计读出数据的每个符号与nvm芯片中存储数据的每个符号的联合概率;计算代表读出数据的符号的随机变量y的信息熵;计算代表nvm芯片中存储数据的符号的随机变量x的信息熵;计算随机变量x与随机变量y的联合信息熵;计算随机变量x的信息熵与随机变量y的信息熵的和,与随机变量x与随机变量y的联合信息熵的差,得到第一组读出数据与nvm芯片中存储数据的互信息。根据本申请第一方面的第九获得处理过程组合的方法的任一项,提供了根据本申请第一方面的第十获得处理过程组合的方法,其中计算每组读出数据与nvm芯片中存储数据的互信息还包括:依据读出数据的每个符号与nvm芯片中存储数据的每个符号的联合概率,计算读出数据的每个符号的边缘概率,以及nvm芯片中存储数据的每个符号的边缘概率;依据读出数据的每个符号的边缘概率,计算代表读出数据的符号的随机变量y的信息熵;以及依据nvm芯片中存储数据的每个符号的边缘概率,计算代表nvm芯片中存储数据的符号的随机变量x的信息熵。根据本申请第一方面的第一到第十获得处理过程组合的方法的任一项,提供了根据本申请第一方面的第十一获得处理过程组合的方法,其中所述nvm芯片中存储的数据,是nvm芯片的指定类型的物理页中存储的数据。根据本申请第一方面的第一到第十一获得处理过程组合的方法的任一项,提供了根据本申请第一方面的第十二获得处理过程组合的方法,其中所记录的处理过程的组合不包括利用普通读命令的处理过程。根据本申请第二方面,提供了根据本申请第二方面的第一译码方法,包括:利用所记录的处理过程的组合从nvm芯片获取第一组数据;将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面提供的所述方法的任一项得到。根据本申请的第三方面,提供了根据本申请第三方面的第一译码方法,包括:利用普通读命令从nvm芯片中读出第一数据;若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面提供的所述方法的任一项得到。根据本申请的第四方面,提供了根据本申请第四方面的第一译码方法,包括:利用普通读命令从nvm芯片中读出第一数据;若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;将所述第一数据与所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面提供的所述方法的任一项得到。根据本申请的第四方面的第一译码方法,提供了根据本申请第四方面的第二译码方法,其中所述第一组数据不包括利用普通读命令从nvm芯片中读出的数据。根据本申请的第二方面、第三方面、第四方面提供译码方法,提供了根据本申请第四方面的第三译码方法,包括:从所述第一组数据获取nvm芯片中存储数据的软信息,并对所述软信息进行软译码。根据本申请的第二方面、第三方面、第四方面提供译码方法,提供了根据本申请第四方面的第四译码方法,其中所述译码器是ldpc译码器、turbo码译码器或极化码译码器。根据本申请的第五方面,提供了根据本申请第五方面的第一获得处理过程组合的装置,其中所述处理过程组合用于获得错误校正软译码的软信息,所述装置包括:数据获取模块,用于利用多个处理过程从nvm芯片获得多组数据;互信息计算模块,用于计算每组读出数据与nvm芯片中存储的数据的互信息,得到多个互信息;最大互信息获取模块,用于找到所述多个互信息中具有最大值的最大互信息;以及记录模块,用于记录得到所述最大互信息的处理过程的组合。根据本申请的第六方面,提供了根据本申请第六方面的第一译码装置,包括:数据获取模块,用于利用所记录的处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第五方面的第一获得处理过程组合的装置得到。根据本申请的第七方面,提供了根据本申请第七方面的第一译码装置,包括:第一数据获取模块,用于利用普通读命令从nvm芯片中读出第一数据;第二数据获取模块,用于若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第五方面的第一获得处理过程组合的装置得到。根据本申请的第八方面,提供了根据本申请第八方面的第一译码装置,包括:第一数据获取模块,用于利用普通读命令从nvm芯片中读出第一数据;第二数据获取模块,用于若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一数据与所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第五方面的第一获得处理过程组合的装置得到。根据本申请的第九方面,提供了根据本申请第九方面的第一固态存储设备,包括,控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用所记录的处理过程的组合从非易失存储器获取第一组数据;以及所述控制器用于将所述第一组数据提供给所述译码器进行软译码。根据本申请的第十方面,提供了根据本申请第十方面的第一固态存储设备,包括,控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用普通读命令从非易失存储器中读出第一数据;响应于所述译码器指示对第一数据的错误校正译码失败,所述控制器用于利用所记录的处理过程的组合从nvm芯片获取第一组数据;以及所述控制器用于将所述第一组数据提供给所述译码器进行软译码。根据本申请的第十一方面,提供了根据本申请第十一方面的第一固态存储设备,包括,控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用普通读命令从非易失存储器中读出第一数据;响应于所述译码器指示对第一数据的错误校正译码失败,所述控制器用于利用所记录的处理过程的组合从nvm芯片获取第一组数据;以及所述控制器用于将所述第一数据和第一组数据提供给所述译码器进行软译码。根据本申请第十二方面,提供了本申请第十二方面的第一获得处理过程组合的方法,其中,该方法包括:响应于ecc译码失败,进行数据恢复,得到正确的用户数据,并对正确的用户数据进行ecc编码;利用处理过程的多种组合,从nvm芯片中读出多组数据;对于处理过程的多种组合,更新同处理过程的组合对应的读出数据与nvm中存储的数据的互信息,其中利用对正确的用户数据进行ecc编码得到的结果确定nvm中存储的数据;确定具有最大互信息的处理过程组合。根据本申请第十二方面的第一获得处理过程组合的方法,提供了根据本申请第十二方面的第二获得处理过程组合的方法,其中,进行数据修复的方式为:ecc软译码、不同参数的读重做、raid或类似raid的跨页数据保护技术。根据本申请第十二方面的第一或第二获得处理过程组合的方法,提供了根据本申请第十二方面的第三获得处理过程组合的方法,其中,对正确的用户数据进行ecc编码,得到用户数据的校验数据,根据正确的用户数据和其校验数据确定随机变量x的取值x。根据本申请第十二方面的第一至第三任一获得处理过程组合的方法,提供了根据本申请第十二方面的第四获得处理过程组合的方法,其中,利用处理过程的多种组合,从nvm芯片中读出数据,确定随机变量y的取值y。根据本申请第十二方面的第三或第四获得处理过程组合的方法,提供了根据本申请第十二方面的第五获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:更新x与y同时出现的概率p(x,y)。根据本申请第十二方面的第五获得处理过程组合的方法,提供了根据本申请第十二方面的第六获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:根据x与y同时出现的概率p(x,y),计算x的边缘概率p(x),随机变量x的信息熵h(x),y的边缘概率p(y),随机变量y的信息熵h(y),并得到x与y的互信息i(x,y)。根据本申请第十二方面的第一至第六任一获得处理过程组合的方法,提供了根据本申请第十二方面的第七获得处理过程组合的方法,其中,确定具有最大互信息的处理过程组合包括:比较不同处理过程组合的随机变量x与y的互信息,确定具有最大互信息的处理过程的组合。根据本申请第十二方面的第一至第七任一获得处理过程组合的方法,提供了根据本申请第十二方面的第八获得处理过程组合的方法,其中,在响应指定次数的ecc译码失败后,才对于处理过程的多种组合,更新同处理过程的组合对应的读出数据与nvm中存储的数据的互信息。根据本申请第十二方面的第一至第八任一获得处理过程组合的方法,提供了根据本申请第十二方面的第九获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:响应于确定的具有最大互信息的处理过程组合,更新llr表。根据本申请第十二方面的第一至第九任一获得处理过程组合的方法,提供了根据本申请第十二方面的第十获得处理过程组合的方法,其中,在具有最大互信息的处理过程组合发生改变时,才更新llr表。根据本申请第十二方面的第一至第十任一获得处理过程组合的方法,提供了根据本申请第十二方面的第十一获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:在固态存储设备的使用过程中,更新记录x与y同时出现的次数或概率p(x,y)的数据表。根据本申请第十二方面的第十一获得处理过程组合的方法,提供了根据本申请第十二方面的第十二获得处理过程组合的方法,其中,在固态存储设备制造过程中设置数据表的初始值。根据本申请第十二方面的第一至第十二任一获得处理过程组合的方法,提供了根据本申请第十二方面的第十三获得处理过程组合的方法,其中,ecc译码失败是对利用普通读命令从nvm芯片读出的数据进行ecc硬译码失败。根据本申请第十二方面的第一至第十三任一获得处理过程组合的方法,提供了根据本申请第十二方面的第十四获得处理过程组合的方法,其中,若在向nvm芯片中写入数据时,对写入数据进行了随机化,则所述获得处理过程组合的方法还包括:对利用普通读命令从nvm芯片读出的数据进行逆随机化。根据本申请第十三方面,提供了本申请第十三方面的第一获得处理过程组合的方法,该方法包括:向固态存储设备中的一个或多个参考块写入指定数据;利用处理过程的多种组合从参考块中读出多组数据;对于处理过程的多种组合,依据参考块中已知的写入数据,以及读出数据,确定同处理过程的组合对应的读出数据与nvm中存储的数据的互信息;确定具有最大互信息的处理过程组合。根据本申请第十三方面的第一获得处理过程组合的方法,提供了本申请第十三方面的第二获得处理过程组合的方法,其中,在固态存储设备的使用中,对参考块进行处理,以准备参考块。根据本申请第十三方面的第一或第二获得处理过程组合的方法,提供了本申请第十三方面的第三获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:依据固态存储设备的nvm芯片的块的平均擦写次数,对参考块实施同样或类似次数的擦写操作。根据本申请第十三方面的第一至第三任一获得处理过程组合的方法,提供了本申请第十三方面的第四获得处理过程组合的方法,其中,为多个参考块分组,向每组参考块施加指定次数的擦写操作。根据本申请第十三方面的第一至第四任一获得处理过程组合的方法,提供了本申请第十三方面的第五获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:向参考块施加读操作,以使参考块所经历的读操作接近于固态存储的nvm芯片的块被写入后所经历的读操作。根据本申请第十三方面的第五获得处理过程组合的方法,提供了本申请第十三方面的第六获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:设置参考块被写入到被读出的时间间隔,以使参考块的该时间间隔接近于固态存储的nvm芯片的块被写入到被读出的时间间隔。根据本申请第十三方面的第一至第六任一获得处理过程组合的方法,提供了本申请第十三方面的第七获得处理过程组合的方法,其中,定期执行所述方法。根据本申请第十三方面的第一至第六任一获得处理过程组合的方法,提供了本申请第十三方面的第八获得处理过程组合的方法,其中,向参考块写入指定数据的步骤在指定事件出现后执行。根据本申请第十三方面的第八获得处理过程组合的方法,提供了本申请第十三方面的第九获得处理过程组合的方法,其中,收到用户指示,或固态存储设备的平均擦写次数达到阈值时,执行向参考块写入指定数据的步骤。根据本申请第十三方面的第一至第九任一获得处理过程组合的方法,提供了本申请第十三方面的第十获得处理过程组合的方法,其中,向参考块写入的数据为经错误校正编码的已知数据。根据本申请第十三方面的第十获得处理过程组合的方法,提供了本申请第十三方面的第十一获得处理过程组合的方法,其中,向参考块写入的数据还包括根据该已知数据生成的校验数据。根据本申请第十三方面的第一至第十一任一获得处理过程组合的方法,提供了本申请第十三方面的第十二获得处理过程组合的方法,其中,在从参考块中用普通读命令得到的读出数据的错误比特数超过阈值时,才利用处理过程的多种组合从参考块读出数据。根据本申请第十三方面的第一至第十二任一获得处理过程组合的方法,提供了本申请第十三方面的第十三获得处理过程组合的方法,其中,对于处理过程的多种组合,依据参考块中已知的写入数据,以及读出数据,确定同处理过程的组合对应的读出数据与nvm中存储数据的互信息包括:依据参考块中已知的写入数据,确定随机变量x的取值x;依据读出数据确定随机变量y的取值y;对于处理过程的多种组合,计算对应每种处理过程的组合的随机变量x与随机变量y的互信息。根据本申请第十三方面的第十三获得处理过程组合的方法,提供了本申请第十三方面的第十四获得处理过程组合的方法,其中,对于处理过程的多种组合,计算对应每种处理过程的组合的随机变量x与随机变量y的互信息包括:在数据表中记录或更新x与y同时出现的次数,并得到x与y同时出现的概率p(x,y),计算随机变量x与随机变量y的互信息。根据本申请第十三方面的第十四获得处理过程组合的方法,提供了本申请第十三方面的第十五获得处理过程组合的方法,其中,在累积了一定次数的x与y同时出现后,才执行确定读出数据与nvm中存储数据的互信息的步骤。根据本申请第十三方面的第十四或十五获得处理过程组合的方法,提供了本申请第十三方面的第十六获得处理过程组合的方法,其中,确定具有最大互信息的处理过程组合包括:比较不同处理过程组合的随机变量x与y的互信息,确定具有最大互信息的处理过程的组合。根据本申请第十三方面的第一至第十六获得处理过程组合的方法,提供了本申请第十三方面的第十七获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:依据具有最大互信息的处理过程的组合,更新llr表。根据本申请第十三方面的第十七获得处理过程组合的方法,提供了本申请第十三方面的第十八获得处理过程组合的方法,其中,在具有最大互信息的处理过程组合发生改变时,才更新llr表。根据本申请第十三方面的第一至第十八获得处理过程组合的方法,提供了本申请第十三方面的第十九获得处理过程组合的方法,其中,获得处理过程组合的方法还包括:在固态存储设备的使用过程中,更新数据表。根据本申请第十三方面的第十九获得处理过程组合的方法,提供了本申请第十三方面的第二十获得处理过程组合的方法,其中,在固态存储设备制造过程中设置数据表的初始值。根据本申请第十四方面,提供了本申请第十四方面的译码方法,其中,该译码方法包括:利用处理过程的组合从nvm芯片获取第一组数据;将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面的任一项提供的所述方法获得,或者,根据本申请第二方面的任一项提供的所述方法获得。根据本申请第十五方面,提供了本申请第十五方面的译码方法,其中,该译码方法包括:利用普通读命令从nvm芯片中读出第一数据;若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面的任一项提供的所述方法得到,或者,根据本申请第二方面的任一项提供的所述方法得到。根据本申请第十六方面,提供了本申请第十六方面的第一译码方法,其中,该第一译码方法包括:利用普通读命令从nvm芯片中读出第一数据;若对第一数据的错误校正译码失败,利用所记录的处理过程的组合从nvm芯片获取第一组数据;将所述第一数据与所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第一方面的任一项提供的所述方法得到,或者,根据本申请第二方面的任一项提供的所述方法得到。根据本申请第十六方面的第一译码方法,提供了本申请第十六方面的第二译码方法,其中,所述第一组数据不包括利用普通读命令从nvm芯片中读出的数据。根据本申请第十五方面的译码方法、第十六方面的第一或第二译码方法,提供了本申请第十六方面的第三译码方法,其中,将所述第一组数据提供给译码器进行软译码包括:从所述第一组数据获取nvm芯片中存储数据的软信息,并对所述软信息进行软译码。根据本申请第十五方面的译码方法、第十六方面的第一、第二或第三译码方法,提供了本申请第十六方面的第四译码方法,其中,所述译码器是ldpc译码器、turbo码译码器或极化码译码器。根据本申请第十七方面,提供本申请第十七方面的获得处理过程组合的装置,所述处理过程组合用于获得错误校正软译码的软信息,其中,所述装置包括:数据恢复模块,用于响应于ecc译码失败,进行数据恢复,得到正确的用户数据;编码模块,用于对正确的用户数据进行ecc编码;数据读出模块,用于利用处理过程的多个组合,从nvm芯片中读出多组数据;互信息更新模块,用于对于处理过程的多种组合,更新同处理过程的组合对应的读出数据与nvm中存储的数据的互信息,其中利用对正确的用户数据进行ecc编码得到的结果确定nvm中存储的数据;最大互信息确定模块,用于确定具有最大互信息的处理过程组合。根据本申请第十八方面,提供本申请第十八方面的获得处理过程组合的装置,所述处理过程组合用于获得错误校正软译码的软信息,其中,所述装置包括:参考块写入模块,用于向固态存储设备中的一个或多个参考块写入指定数据;数据读出模块,用于利用处理过程的多种组合从参考块中读出多组数据;互信息确定模块,用于对于处理过程的多种组合,依据参考块中已知的写入数据,以及读出数据,确定同处理过程的组合对应的读出数据与nvm中存储的数据的互信息;最大互信息确定模块,用于确定具有最大互信息的处理过程组合。根据本申请第十九方面,提供本申请第十九方面的译码装置,其中,译码装置包括:数据获取模块,用于利用处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十方面,提供本申请第二十方面的译码装置,其中,译码装置包括:第一数据获取模块,用于利用普通读命令从nvm芯片中读出第一数据;第二数据获取模块,用于若对第一数据的错误校正译码失败,利用所获得的处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一组数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十一方面,提供本申请第二十一方面的译码装置,其中,译码装置包括:第一数据获取模块,用于利用普通读命令从nvm芯片中读出第一数据;第二数据获取模块,用于若对第一数据的错误校正译码失败,利用所获得的处理过程的组合从nvm芯片获取第一组数据;软译码模块,用于将所述第一组数据和所述第一数据提供给译码器进行软译码;其中所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十二方面,提供本申请第二十二方面的固态存储设备,其中,固态存储设备包括:控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用所获得的处理过程的组合从非易失存储器获取第一组数据;以及所述控制器用于将所述第一组数据提供给所述译码器进行软译码;其中,所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十三方面,提供本申请第二十三方面的固态存储设备,其中,固态存储设备包括:控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用普通读命令从非易失存储器中读出第一数据;响应于所述译码器指示对第一数据的错误校正译码失败,所述控制器用于利用所获得的处理过程的组合从nvm芯片获取第一组数据;以及所述控制器用于将所述第一组数据提供给所述译码器进行软译码;其中,所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十四方面,提供本申请第二十四方面的固态存储设备,其中,固态存储设备包括:控制器、译码器与非易失存储器;响应于来自信息处理设备的读命令,所述控制器用于利用普通读命令从非易失存储器中读出第一数据;响应于所述译码器指示对第一数据的错误校正译码失败,所述控制器用于利用所获得的处理过程的组合从nvm芯片获取第一组数据;以及所述控制器用于将所述第一组数据和所述第一数据提供给所述译码器进行软译码;其中,所述处理过程的组合根据本申请第六方面或者本申请第七方面提供的所述装置获得。根据本申请第二十五方面,提供本申请第二十五方面的获得处理过程组合的方法,该方法包括:响应于ecc译码失败,进行数据恢复,得到正确的用户数据;利用处理过程的多种组合,从nvm芯片中读出多组数据;对于处理过程的多种组合,更新同处理过程的组合对应的读出数据与nvm芯片中存储的数据的互信息,其中将得到的正确的用户数据作为nvm中存储的数据;以及确定具有最大互信息的处理过程组合。根据本申请第二十六方面,提供了本申请第二十六方面的存储介质,所述存储介质上存储有程序,当被加载到处理器中执行时,所述程序使得所述处理器执行根据本申请第一方面、第二方面、第三方面、第四方面任一技术方案的方法。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为根据本申请实施例的系统的示意图一;图2为根据本申请实施例的获得处理过程组合的流程图一;图3为根据本申请实施例的系统的示意图二;图4为根据本申请实施例的固态存储设备处理io命令的流程图;图5为根据本申请又一实施例的系统的示意图;图6为根据本申请依然又一实施例的获得处理过程组合的流程图;以及图7为根据本申请另一实施例的获得处理过程组合的流程图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1为根据本申请实施例的系统的示意图一。如图1所示,数据x被写入到nvm芯片110中。通过一种或多种处理过程,从nvm芯片110中读出被写入的数据。在图1中,作为举例,示出了三种读过程(读过程141、读过程142与读过程143),以及通过读过程141读出的数据记为y1,读过程142读出的数据记为y2,读过程143读出的数据记为y3。在图1的例子中,每种读过程之间的差异在于使用了不同的判决电压,或者使用了具有不同参数的读重做命令。通过三种读过程读出的数据(y1,y2,y3)被提供给ecc(errorcorrectingcode,错误校正码)译码部件120,用于生成软信息,并基于软信息进行错误校正译码。包括ldpc(低密度奇偶校验码)、turbo码、polar(极化)码等多种错误校正编码可利用软信息进行译码。本申请的实施例,可应用于这些可利用软信息译码的错误校正编码。以及虽然在图1的实施例中,使用3种读过程获得3种读出数据,并用于获取软信息,可以理解地,可以使用1种、2种、4种以及其他数量的读过程来获取软信息。本实施例中还可计算被写入nvm芯片110的数据与由读过程的组合处理得到的数据的互信息。示例性地,在图1中,用于读出数据(y1、y2与y3)的三种读过程,构成一个读过程的组合。依据已知的被写入nvm芯片110的数据x,以及从nvm芯片110中通过读过程组合读出的数据(例如,y1,y2与y3),在互信息计算模块130中计算互信息(mi,mutual-information)。当然,也可计算其他读过程的组合的互信息。并比较由读过程的多种组合获得的多个互信息。选择互信息最大的读过程组合用来获取软信息,从而提高错误校正译码的成功率。图2为根据本申请实施例的获得处理过程组合的流程图一。通过图2所示的流程可以获得具有最大互信息的处理过程的组合。如图2所示,在步骤210,利用多个处理过程从nvm芯片中获得多组数据。以从nvm芯片中读取数据为例,有多种用于读出数据的处理过程。作为举例,参数为r的读重做是从nvm芯片中读出数据的处理过程之一。读重做的参数r有例如3种不同的取值(例如r1,r2,r3),对应的,表1中展示了用于读出数据的处理过程的7种组合,每种组合可由所采用的读重做的参数取值的组合来表示。并且,处理过程的每种组合中,可具有不同参数和/或不同数量的处理过程。通过处理过程的每组组合,从nvm芯片中读出了多组数据。参看表1,用y指示读出的数据,y后的数字与读重做的参数r后的数字相对应,即yi的读出数据是由参数为ri的读重做读出的。表1处理过程组合读出数据r1y1r2y2r3y3r1,r2y1,y2r1,r3y1,y3r2,r3y2,y3r1,r2,r3y1,y2,y3在步骤220,计算每组数据与nvm芯片中存储数据的互信息,得到多个互信息。作为举例,对于一组读出数据y1,计算包括数据y1的组与nvm芯片中存储数据x的互信息。在另一个例子中,对于一组读出数据y1与y2,计算包括读出数据y1与y2的组与nvm芯片中存储数据x的互信息。后文中,将通过举例的例子描述互信息的计算方法。计算互信息的过程中需要使用nvm芯片中存储数据x,为获得数据x,向nvm芯片中写入的数据可以是已知的数据x。作为另一个例子,即使数据x未知,从nvm芯片110读出数据y1、y2和/或y3后,利用ecc译码部件120(参看图1)对读出数据y1、y2和/或y3进行错误校正译码,以得到向nvm芯片中写入的数据x。在步骤230,对基于每组读出数据计算出的互信息,找到多个互信息中的最大的互信息(最大互信息)。以及在步骤240,确定得到最大互信息的处理过程组合(例如,参数分别为r1,r2,r3的读重做的组合)。一般而言,包含更多的处理过程的组合,将得到更大的互信息。在根据本申请的实施例中,对于处理过程的组合,按其中包含的处理过程的数量分类,并对每一数量类别,确定具有最大互信息的处理过程组合(例如,表1中,处理过程组合有3类,分别包括1个处理过程、2个处理过程与3个处理过程)。接下来,在需要利用软信息进行软译码时,使用在步骤240中获得的具有最大互信息的处理过程组合来从nvm芯片中获得一组读出数据,是有利的。在步骤250,利用步骤240中获得的具有最大互信息的处理过程组合(例如,参数分别为r1,r2,r3的读重做的组合)来从nvm芯片中获得一组读出数据。该读出数据可被称为第一组数据。以及在步骤260,将步骤250中获得的一组读出数据提供给ldpc译码器,用于获取软信息并进行软译码。可以理解地,步骤250与步骤260还可应用于诸如turbo码、polar(极化)码等能利用软信息的错误校正译码过程。在根据本申请的实施例中,步骤210到步骤240的实施与步骤250到步骤260的实施可发生在不同的时间和/或地点。在一个例子中,步骤210到步骤240在产品(固态硬盘、nvm芯片、控制器芯片、ecc译码器等)的研究/开发阶段,而步骤250到步骤260在用户使用产品时被实施。步骤240所得到的具有最大互信息的处理过程组合,可被记录在固态存储设备的nvm芯片中。或者通过诸如程序代码或电路使固态存储设备的控制模块在要实施软译码时,应用步骤240所得到的具有最大互信息的处理过程组合。在又一个例子中,步骤210到步骤260在邻近的时间发生。从而固态存储设备在运行时通过执行步骤210到步骤240来获取具有最大互信息的处理过程组合,并在随后需要进行软译码时通过执行步骤250与步骤260来使用所获取的处理过程组合。下面描述互信息的获取过程。在根据本申请的实施例中,通过多种处理过程t处理随机变量x,处理的结果作为随机变量y,并依据公式(1)与(2)计算x与y的互信息i(x,y)。h(x)=-∑x∈xp(x)log2p(x)(1)i(x,y)=h(x)+h(y)-h(x,y)(2)随机变量x表示原始数据,例如写入nvm中的数据。随机变量y表示对随机变量x经过处理过程t得到的数据,例如从nvm芯片读出的数据。作为举例,x代表写入nvm芯片的原始数据,而处理过程t是参数为r的读重做,y代表从nvm芯片读出的数据。h(x)是随机变量x的信息熵,由x的边缘概率计算(公式(1));h(y)是随机变量y的信息熵,由y的边缘概率计算(公式(1),只需要将公式(1)中x替换为y即可),h(x,y)是随机变量x与y的联合信息熵,h(x,y)=-∑(x,y)∈(x,y)p(x,y)log2p(x,y)。x是随机变量x的一个可能的值(也称为符号)。y是随机变量y的一个可能的值(也称为符号)。p(x)是x的边缘概率,x∈x,p(y)是y的边缘概率,y∈y。p(x,y)是x和y同时出现的概率(x与y的联合概率)。作为举例,若x代表写入nvm芯片的原始数据,在nvm芯片中存储的数据的可能取值为“0”和“1”,而从nvm芯片中读出数据的可能取值为“0”和“1”。从而{“0”,”1”}是x/y的取值集合。表2展示了对随机变量x与y的各可能的值x和y同时出现的概率的统计。表2在表2中,x0与x1是随机变量x的两个可能取值,而y0,y1,…,yn是分别由多个处理过程t之一处理随机变量x的一个取值所得到的值。而表2中p(x0,y0)表示x0与y0同时出现的概率(x0与y0的联合概率)。通过对随机变量x与y的统计,构造出表2,并依据公式(1)与(2)计算x与y的互信息i(x,y)。表3展示了在一个例子中对随机变量x与y的统计。随机变量x的取值x代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据特定的处理过程(例如,参数为0的读重做)处理x所得到的结果。对nvm芯片存储的信息用参数为0的读重做进行多次读取,以构建表3。经过多次实验,得到当nvm芯片中存储了数据“0”时(x取值为0),读出数据为“0”的次数有999次,当nvm芯片中存储了数据“0”时,读出数据为“1”的次数有1次,当nvm芯片中存储了数据“1”(x取值为1)时,读出数据为“0”的次数有2次,当nvm芯片中存储了数据“1”时,读出数据为“1”的次数有998次。而总计实验次数为2000(999+1+998+2)次。表3y\x010999211998从表3中的实验结果,能够得到x和y同时出现的概率p(x,y)(x和y的联合概率),p(0,0)=999/2000,p(0,1)=2/2000,p(1,0)=1/2000,p(1,1)=998/2000。接下来,计算p(x)和h(x):p(0)=p(0,0)+p(0,1),p(1)=p(1,0)+p(1,1),以及h(x)=-p(0)log2p(0)-p(1)log2p(1)。接下来,计算p(y)和h(y)以及h(x,y):p(0)=p(0,0)+p(1,0),p(1)=p(0,1)+p(1,1),h(y)=-p(0)log2p(0)-p(1)log2p(1),以及h(x,y)=-p(0,0)log2p(0,0)-p(0,1)log2p(0,1)-p(1,0)log2p(1,0)-p(1,1)log2p(1,1)。以及能够计算出以参数为0的读重作进行处理时,x与y的互信息i(x,y)=h(x)+h(y)-h(x,y)。对每种读重做作为处理过程,对nvm芯片中存储的数据x进行读取,得到读出数据y,并计算在读重做处理过程ti下,x与y的互信息iti(x,y)。构建表3所需的统计实验可以在固态存储设备交付使用之前在实验室中进行,也可在固态存储设备的使用中进行。可选地,在得到表3,计算出互信息i(x,y)之后,可以继续对x与y进行统计,以更新表3以及相应的互信息i(x,y)。可以理解地,为构建表3,并得到互信息i(x,y),需要就处理过程ti,获得(x,y)的所有可能取值的统计信息(x与y的联合概率)。表4展示了在又一个例子中对随机变量x与y的统计。结合表4,描述根据本申请又一例子的互信息获取过程。随机变量x的取值x代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据参数为0的读重做与参数为1的读重做两次处理x所得到的结果(分别由r0与r1表示)。对nvm芯片存储的信息用参数为0的读重做与参数为1的读重进行多次读取,以构建表4。经过多次实验,得到当nvm芯片中存储了数据“0”(x取值为0)时,通过两次读重做读出数据为“00”的次数有999次,当nvm芯片中存储了数据“0”时,通过两次读重做读出数据为“01”的次数有1次,通过两次读重做读出数据为“10”的次数有a次,通过两次读重做读出数据为“11”的次数有b次。表4中还示出了当nvm芯片中存储了数据“1”时,通过两次读重做读出的不同y取值的次数。以及总计次数为表3中数值部分各项的和。以及,从表4中的统计数据,能够计算x与y同时出现的概率p(x,y)(x与y的联合概率)。并得到x的边缘概率p(x),随机变量x的信息熵h(x),y的边缘概率p(y),随机变量y的信息熵h(y),并得到以参数为0的读重做与参数为1的读重做两次读数据的处理过程组合tr0r1下,x与y的互信息itr0r1(x,y)。对于其他处理过程,例如以参数为1的读重做与参数为2的读重做两次读数据的处理过程组合tr1r2,以参数为0的读重做与参数为2的读重做两次读数据的处理过程组合tr1r2,以参数为1的读重做一次读数据的处理过程(组合)tr1等,能够分别计算出每个处理过程组合下,x与y的互信息。表4y=r0r1\x0100999201199810ac11bd互信息体现了随机变量x与随机变量y的相关性。互信息越高,代表y与x的相关性越强。选择多个处理过程中,得到最大互信息的处理过程组合,作为在获取软信息时所采用的处理过程组合。从该处理过程组合中能够获得更多的信息,并提高软译码的成功率。可选地,在多个可能的处理过程组合中进行选择时,可抛弃复杂度过高、代价过大的处理过程组合。例如对于从nvm芯片中读出数据的处理过程组合,在进行软译码时,将使用读重做读取数据的次数限制为小等于3次。从而在读重做有m种参数的情况下,可选的处理过程组合有(从m种参数的读重做中,选择任意3种读出数据)(从m种参数的读重做中,选择任意2种读出数据)(从m种参数的读重做中,选择任意1种读出数据)种。在另一个例子中,指定选择的处理过程组合中包括用参数为0的读重做(普通读命令)读数据的过程(可选地,还包括用其他参数值的读重做读数据的过程),从而在进行软译码时能够利用硬译码阶段所获取的数据。图3为根据本申请实施例的系统的示意图二。在根据本申请图3的实施例中,处理过程包括从nvm芯片读出数据,以及对读出的数据进行错误校正译码。在图3的实施例中,数据x被写入到nvm芯片310中。通过一种或多种处理过程,从nvm芯片310中读出被写入的数据。在图3中,作为举例,示出了三种读过程(读过程341、读过程342与读过程343),以及通过读过程341读出的数据记为y4,读过程342读出的数据记为y5,读过程343读出的数据记为y6。在图3的例子中,每种读过程之间的差异在于使用了不同的判决电压,或者使用了具有不同参数的读重做命令。通过三种读过程读出的数据(y4,y5,y6)被分别提供给ecc译码部件320,经过错误校正译码,分别得到输出数据y4’、y5’与y6’。可以理解的,为进行ecc译码,提供给ecc译码部件320的输入是(包括多个比特的)码字,而并非1比特信息。而在根据本申请的实施例中,为了描述更加清楚,以数据x、数据y均为包含在码字中的例如1比特信息为例。通过从nvm芯片310读出码字c,由ecc译码部件320对码字c进行译码,并得到码字c的每个比特(x)在译码后的结果(y)。根据本申请的一个实施方式,ecc译码部件320对码字c的译码可能失败,此时ecc译码部件320依然会提供码字c的译码结果c’。虽然译码结果c’中存在错误,但其中的各个比特依然是依据本申请可选实施方式得到的处理结果(y)。依据被写入nvm芯片310的数据x,以及从nvm芯片310中通过不同读过程读出并经ecc译码部件320译码得到的数据(y4’,y5’与y6’),在互信息计算模块330中计算被写入nvm芯片310的数据与从nvm芯片310读出并经ecc译码部件320译码得到的数据的互信息。在图3中,用于读出数据(y4、y5与y6)的三种读过程,构成一个读过程的组合。以及还计算被写入nvm芯片310的数据与由其他读过程的组合(不同于图3中的三种读过程的组合)处理得到的数据的互信息。并比较由读过程的多种组合获得的多个互信息。选择互信息最大的读过程组合来用于获取软信息,从而提高错误校正译码的成功率。通过三种读过程读出的数据(例如,y4,y5,y6)被提供给ecc译码部件320,还用于生成软信息,并基于软信息进行错误校正译码。以及虽然在图3的实施例中,使用3种读过程获得3种读出数据,并用于获取互信息与软信息,可以理解地,可以使用1种、2种、4种以及其他数量的读过程的组合来获取软信息。表5展示了在一个例子中对随机变量x与y的统计。结合表5,描述根据本申请又一例子的互信息获取过程。随机变量x的取值x代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据参数为0的读重做、参数为1的读重以及参数为2的读重做三次处理x所得到的结果分别再经ecc译码得到的结果(分别由r0、r1与r2表示)。对nvm芯片存储的信息用参数为0的读重做、参数为1的读重做以及参数为2的读重做进行多次读取,并经过ecc译码,以构建表5。表5中,表格项c(0,010)表示在多次实验中,当nvm芯片中存储了(1比特)数据“0”(x取值为0)时,通过三次读重做对x读出数据并经ecc译码得到“010”的次数有c(0,010)次。以及总计的实验次数为表5中数值部分各项的和。表5y=r0r1r2\x0100099920011998010c(0,010)c(1,010)100c(0,100)c(1,100)101c(0,101)c(1,101)110c(0,110)c(1,110)111c(0,111)c(1,111)以及,从表5中的统计数据,能够计算x与y同时出现的概率p(x,y)。并得到x的边缘概率p(x),随机变量x的信息熵h(x),y的边缘概率p(y),随机变量y的信息熵h(y),并得到以参数为0的读重做、参数为1的读重做与参数为2的读重做三次读数据并分别经ecc译码的处理过程组合tr0r1r2下,x与y的互信息itr0r1r2(x,y)。对于其他处理过程组合,例如以参数为1的读重做与参数为2的读重做两次读数据并分别经ecc译码的处理过程组合tr1r2,以参数为0的读重做与参数为2的读重做两次读数据并分别经ecc译码的处理过程组合tr0r2,以参数为1的读重做一次读数据并经ecc译码的处理过程组合tr1等,能够分别计算出每个处理过程组合下,x与y的互信息。在根据本申请的又一实施例,在不同场景下,获取由处理过程的多种组合处理nvm芯片中的数据得到的结果与nvm芯片中存储的数据的互信息。例如,对于mlc(multi-levelcell)类型的nvm芯片或物理页,区分每个存储单元(cell)中的两个比特(例如,msb(mostsignificantbit,最高有效位)与lsb(leastsignificantbit,最低有效位))。在获取互信息时,随机变量x仅代表来自msb的数据或lsb的数据,而并非既包括来自msb的数据又包括来自lsb的数据。类似地,对于tlc(triple-levelcell)类型的nvm芯片或物理页,在获取互信息时,区分每个存储单元(cell)中的3个比特。在根据本申请的实施例中,识别得到了最大互信息的处理过程的组合,例如处理过程组合t。或者,在处理过程的组合的集合中,识别得到了最大互信息的处理过程组合,例如处理过程组合ts。在固态存储设备中记录处理过程组合t或处理过程组合ts。依据本申请的又一实施例,在使用固态存储设备中,例如响应于收到主机发给固态存储设备的读命令,固态存储设备对读命令进行处理。图4为根据本申请实施例的固态存储设备处理io命令的流程图。如图4所示,为处理读命令,依据本申请实施例的固态存储设备首先应用参数为0的读重做(也称为“普通读命令”)从nvm芯片的指定地址读出数据(410)。对读出的数据进行ecc译码。若ecc硬译码成功(420),得到正确的读出数据用于响应读命令。若ecc硬译码失败(420),利用所记录的具有最大互信息的处理过程组合t或处理过程组合ts,从nvm中获取数据(430)。在一个例子中,处理过程组合t或处理过程组合ts是例如用参数为1的读重做与参数为2的读重做两次从nvm芯片中读出数据。在另一个例子中,处理过程组合ts为用参数为0的读重做、参数为1的读重做与参数为2的读重做三次从nvm芯片中读出数据。由于在步骤410中使用的普通读命令(即,参数为0的读重做),在步骤430中,利用具有最大互信息的读重做的组合从nvm芯片中读出数据,例如,仅用参数为1的读重做与参数为2的读重做两次从nvm芯片中读出数据,以及再次使用在步骤410中利用普通读命令从nvm芯片读出的数据。并将步骤410中读出的数据与步骤430中两次读出的数据组合成通过处理过程组合ts从nvm芯片中三次读出的数据,从而省去一次从nvm芯片中读出数据的过程。以及有利的是,在获取处理过程组合ts中,使处理过程组合ts包括用参数为0的读重做从nvm芯片中读出数据的处理过程,从而在译码过程中,能够利用步骤410所获取的数据。接下来,在步骤450,将用处理过程组合t或处理过程组合ts读出的数据送给ecc模块进行ecc软译码。在根据本申请的实施例中,由于获得了具有最大互信息的处理过程组合t或处理过程组合ts,用处理过程组合t或处理过程组合ts得到的数据在软译码中有较高或最高的成功率。因而在ecc硬译码失败时(420),不再用具有各个参数的读重做尝试从nvm芯片读出数据,而是直接采用处理过程组合t或处理过程组合ts从nvm芯片中读出数据,并进行软译码。从而省去了搜索具有各个参数的读重做中读出的数据能被正确译码的读重做的过程,降低了ecc硬译码失败(420)后的错误处理时间,提高了固态存储设备处理读命令的性能,也降低了功耗。在依据本申请的又一实施例中,在识别出利用普通读命令将遇到较高译码失败几率的情况下,省去步骤410与步骤420,而响应于来自主机或用户的读命令,直接利用处理过程组合t或处理过程组合ts从nvm芯片获取数据,并对获取的数据进行软译码,以进一步降低处理延迟并提升效率。为进行ecc软译码,将由处理过程组合t或处理过程组合ts的到的数据送给ecc译码部件(例如,图3的ecc译码部件320),根据输入数据计算其对数似然比(llr,loglikelihoodratio)。ecc译码部件中提供llr表。用输入数据作为索引,在llr表中查询得到与输入数据对应的对数似然比,并依据对数似然比作为软信息并进行软译码。除依据现有技术的方案得到llr表,在根据本申请的实施例中,还提供了获得llr表的方法。作为举例,处理过程组合ts包括用参数为a的读重做、参数为b的读重做与参数为c的读重做从nvm芯片中读出数据。对于nvm芯片中存储的1比特,三次读重做分别读出3个比特。在表6中,用“比特2”、“比特1”与“比特0”分别代表读出的3个比特,其值分别为“rrb”、“rra”与“rrc”。表6比特2比特1比特0rrbrrarrc表7展示了在根据本申请的例子中对nvm芯片中存储的数据(x)与用处理过程组合ts读出的数据(y)的统计。表7中的数据项p(x,y)是x和y同时出现的概率(x与y的联合概率)。以及表7中还展示了用p(x,y)计算的到的llr。表7中,llr(011)与llr(100)的值为0,而llr(n)=ln(p(0,n)/p(1,n))。其中n为比特序列(rrb,rra,rrc),或者比特序列(rrb,rra,rrc)的十进制表示。以及可选地,为llr(n)的取值提供上限值与下限值。若计算出的ln(p(0,n1)/p(1,n1))大于上限值,则将llr(n1)设置为上限值。以及若计算出的ln(p(0,n2)/p(1,n2))小于下限值,则将llr(n2)设置为下限值。表7rrb,rra,rrc01llr000p(0,000)p(1,000)llr(000)001p(0,001)...llr(001)010......llr(010)011...p(1,011)llr(011)=0100llr(100)=0101llr(101)110llr(110)111...llr(111)图5为根据本申请又一实施例的系统的示意图。在根据本申请的图5所示的实施例中,处理过程包括从nvm芯片读出数据,以及可选地,对读出的数据进行逆随机化。参看图5,(经随机化或未经随机化的)数据x经过ecc编码部件530得到经ecc编码的数据x’。在一个实施方式中,对数据x’进行随机化,并将随机化得到的数据写入nvm芯片510。作为举例,随机化的过程是用随机序列同数据x’做异或。在又一个实施方式中,数据x是已经过随机化的数据,而对数据x’不再进行随机化,以及将数据x’写入nvm芯片510。通过一种或多种处理过程,从nvm芯片510中读出被写入的数据。在图5中,作为举例,示出了三种读过程(读过程541、读过程542与读过程543),以及通过读过程541读出的数据记为y7,读过程542读出的数据记为y8,读过程543读出的数据记为y9。每种读过程之间的差异在于使用了不同的判决电压,或者使用了具有不同参数的读重做命令。在一个例子中,在向nvm芯片510写入数据时,对数据x’进行了随机化,则读过程包括从nvm芯片510读出数据以及对读出数据进行逆随机化。逆随机化的过程同随机化过程相反,以得到经随机化前的数据。作为举例,逆随机化的过程是用与随机化过程中使用的随机序列相同的随机序列同读出数据做异或。在又一个例子中,在向nvm芯片510写入数据时,对数据x进行了随机化,而对数据x’不再进行随机化,则读过程包括从nvm芯片510读出数据,而在进行ecc译码之前,无须对读出数据进行逆随机化。通过三种读过程读出的数据(y7,y8,y9)被分别提供给ecc译码部件520,经过错误校正译码,分别得到输出数据y7’、y8’与y9’。可以理解的,为进行ecc译码,提供给ecc译码部件520的输入是(包括多个比特的)码字,而并非1比特信息。而在根据本申请的实施例中,为了描述清楚,以数据x、数据x’、数据y均为包含在码字中的例如1比特信息为例。可以理解地,在ecc编码过程中,ecc编码部件530生成校验位,并附加在输入给ecc编码部件530的原始数据之后。校验位与原始数据被一并写入nvm芯片510。从nvm芯片读出数据并经ecc译码后,ecc译码部件520输出的译码结果可以不包括校验位而仅包括原始数据部分。依据被写入nvm芯片510的数据x’,以及从nvm芯片510中通过不同读过程读出的数据(y7,y8与y9),在互信息计算模块540中计算被写入nvm芯片510的数据与从nvm芯片510读出并(可选地)经逆随机化的数据的互信息。在图5中,用于读出数据(y7、y8与y9)的三种读过程,构成一个读过程的组合。以及还计算被写入nvm芯片510的数据与由其他读过程的组合(不同于图5中的三种读过程的组合)处理得到的数据的互信息。并比较由读过程的多种组合获得的多个互信息。选择互信息最大的读过程组合来用于获取软信息,从而提高错误校正译码的成功率。通过三种读过程读出的数据(例如,y7,y8,y9)被提供给ecc译码部件520,还用于生成软信息,并基于软信息进行错误校正译码。以及虽然在图5的实施例中,使用3种读过程获得3种读出数据,并用于获取互信息与软信息,可以理解地,可以使用1种、2种、4种以及其他数量的读过程的组合来获取软信息。表8展示了在一个例子中对随机变量x与y的统计。结合表8,描述根据本申请又一例子的互信息获取过程。表8y=r0r1r2\x’0100099920011998010c(0,010)c(1,010)100c(0,100)c(1,100)101c(0,101)c(1,101)110c(0,110)c(1,110)111c(0,111)c(1,111)随机变量x的取值x’代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据读过程541、读过程542与读过程543处理x’所得到的结果(分别由r0、r1与r2表示)。对nvm芯片存储的信息用读过程541、读过程542与读过程543进行多次读取,以构建表8。表8中,表格项c(0,010)表示在多次实验中,当nvm芯片中存储了(1比特)数据“0”(x取值为0)时,通过三个读过程对x读出数据为“010”的次数有c(0,010)次。以及选取的实验次数为表8中数值部分各项的和(记为s)。可选地,选取三个读过程得到的数据之一使ecc译码部件520译码失败的实验来构建表8。依然可选地,选取读过程541得到的数据使ecc译码部件520译码失败的实验来构建表8。以及,从表8中的统计数据,能够计算x与y同时出现的概率p(x,y)。并得到x的边缘概率p(x),随机变量x的信息熵h(x),y的边缘概率p(y),随机变量y的信息熵h(y),并得到以读过程541、读过程542与读过程543三次读数据的处理过程组合tr0r1r2下,x与y的互信息itr0r1r2(x,y)。对于其他处理过程组合,例如以读过程541与读过程542两次读数据的处理过程组合tr1r2,以读过程541与读过程543两次读数据的处理过程组合tr0r2,以读过程542一次读数据的处理过程组合tr1等,能够分别计算出每个处理过程组合下,x与y的互信息。在根据本申请的实施例中,在不同场景下,获取由处理过程的多种组合处理nvm芯片中的数据得到的结果与nvm芯片中存储的数据的互信息。不同场景包括,nvm芯片的不同类型(例如,lsb页、msb页)、具有不同擦写次数的存储块、具有不同读出次数的存储块、具有不同数据保存时间的存储页/块等。在根据本申请的实施例中,识别得到了最大互信息的处理过程的组合,例如处理过程组合t。或者,在处理过程的组合的集合中,识别得到了最大互信息的处理过程组合,例如处理过程组合ts。在固态存储设备中记录处理过程组合t或处理过程组合ts。构建表8所需的统计实验可以在固态存储设备交付使用之前在实验室中进行,也可在固态存储设备的使用中进行。可选地,在得到表8,计算出互信息i(x,y)之后,可以继续对x与y进行统计,以更新表8以及相应的互信息i(x,y)。从而使得互信息能够体现nvm芯片的特性随着固态存储设备的使用的变化。图6为根据本申请依然又一实施例的获取处理过程组合的流程图。在根据本申请图6的实施例中,展示了在固态存储设备的使用中更新对应于多种处理过程组合的x与y的互信息的流程。随机变量x的取值x代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据读过程的组合(例如,读过程541、读过程542与读过程543的组合)处理x所得到的结果。使用固态存储设备的过程中,响应于用户的读请求,用普通读命令从固态存储设备的nvm芯片中读出数据(610)。以及可选地,若在向nvm芯片510写入数据时,对数据x’(参看图5)进行了随机化,还对读出数据进行逆随机化。对读出的数据(或经逆随机化的数据)进行ecc硬译码(620)。若ecc硬译码成功,则无需更新x与y的互信息。若ecc硬译码失败,则进行数据恢复,以得到正确的用户数据(630)。作为举例,可通过多种方式进行数据恢复,例如,ecc软译码、不同参数的读重做、raid或类似raid的跨页数据保护技术。得到的用户数据,可以是经随机化的数据或未经随机化的数据。对正确的用户数据进行ecc编码,得到用户数据与其校验数据(640),用于确定随机变量x的取值x。以及响应于ecc硬译码失败,还利用多个不同处理过程(例如,读过程541、读过程542与读过程543)从nvm芯片中读出数据(650),用以确定随机变量y的取值y。以及更新x与y同时出现的概率p(x,y)。例如,以实验室中构建的表8为基础,依据步骤650中得到的x与y同时出现的次数更新表8中的表项。例如,将表8中记录的x与y同时出现的次数与依据步骤650得到的x与y同时出现的次数累加,来更新表8中的表项。可选地,固态存储设备的生成过程中,被写入指示了表8的数据,或者空(各表格项为0)的表8。作为另一个例子,在步骤650,通过其他数量的处理过程从nvm芯片读出数据。例如,nvm芯片支持10种具有不同参数的读重做,则以对应的10种处理过程从nvm芯片读出数据。提供具有2^10(1024)行、2列的数据表(不包括表头)。数据表的每行是用10种处理过程的每种处理随机变量x的一个取值(x)获得的读出结果(例如,“0000000001”或“0010000000”)。数据表的每列是随机变量x的一个取值(x),为“0”或“1”。数据表行与列的交叉点是对应的行与列的取值同时出现的次数。在一个例子中,在实验室中构建展示对应的行与列的取值同时出现的次数的数据表的初始值,并在固态存储设备的使用过程中,根据图6所展示的方法更新数据表。在另一个例子中,以指定值(例如,0)作为数据表的初始值,并在固态存储设备的使用过程中,根据图6所展示的方法更新数据表。由于数据表中记录了10种处理过程的处理结果,从中可获得10种处理过程的任意组合(包括处理过程数量小于10的组合)的处理结果,从而得到随机变量x的取值x与随机变量y的取值y同时出现的次数,其中y代表依据读过程的组合处理x所得到的结果。接下来计算x与y同时出现的概率p(x,y)。并得到x的边缘概率p(x),随机变量x的信息熵h(x),y的边缘概率p(y),随机变量y的信息熵h(y),并得到x与y的互信息i(x,y)(660)。进而,比较不同处理过程组合的随机变量x与y的互信息,确定具有最大互信息的处理过程的组合(670)。以及可选地,还依据具有最大互信息的处理过程的组合,更新llr表(680)。并在接下来的利用普通读命令从nvm芯片读出数据的硬译码失败时,使用步骤670所得到的具有最大互信息的处理过程组合从nvm芯片获取数据,并使用步骤680所更新的llr表,通过软译码获取数据。可选地,由于一次出现ecc硬译码失败(620),对概率p(x,y)的影响较小,因而无须每次ecc硬译码失败都更新互信息(660)。而是,在累积了一定次数(例如,1000次)的ecc硬译码失败后,才执行步骤660来计算互信息。依然可选地,在步骤670发现具有最大互信息的处理过程组合发生改变时,才执行步骤680来更新llr表。随着固态存储设备的使用,nvm芯片的特征发生变化,通过在使用过程中计算互信息、识别具有最大互信息的处理过程组合以及更新llr表,使得所得到的处理过程组合与llr表与固态存储设备的生命周期相适应。图7为根据本申请实施例的获取处理过程组合的流程图三。参看图7,展示了根据本申请又一实施例的在固态存储设备使用中更新对应于多种处理过程组合的x与y的互信息的流程。随机变量x的取值x代表在nvm芯片存储的1比特信息,随机变量y的取值y代表依据读过程的组合(例如,读过程541、读过程542与读过程543的组合)处理x所得到的结果。在固态存储设备中,提供一个或多个参考块。用户对固态存储设备的访问不会被重定向到参考块。参考块用于为互信息的更新提供数据。在固态存储设备的使用中,对参考块进行处理,以准备参考块(710)。在一个例子中,依据固态存储的nvm芯片的块的平均擦写次数,对参考块实施同样或类似次数的擦写操作。在另一个例子中,为多个参考块分组,向每组施加指定次数(例如,500,1000,1500等)的擦写操作。从而参考块能代表具有类似擦写次数的nvm芯片块的特性。可选地,还向参考块施加读操作,以使参考块所经历的读操作接近于固态存储设备的nvm芯片的块被写入后所经历的读操作。依然可选地,还设置参考块从被写入到被读出的时间间隔,以使参考块的该时间间隔接近于固态存储设备的nvm芯片的块从被写入到被读出的时间间隔。使用固态存储设备的过程中,向参考块写入指定数据(720)。步骤720可定期执行(例如,每2小时),或者在指定事件出现后执行(例如,收到用户指示,或固态存储设备的平均擦写次数达到阈值(例如4000次))。向参考块写入的数据可以是已知的,并经错误校正编码。可选地,向参考块写入的数据还包括根据已知数据生成的校验数据。利用多个不同处理过程(例如,读过程541、读过程542与读过程543)从参考块读出数据(730),用以确定随机变量y的取值y。而依据已知的写入数据,确定随机变量x的取值x。可选地,在从参考块中用普通读命令得到的读出数据的错误比特数超过阈值时,才执行步骤740。对于处理过程的多种组合,计算对应每种处理过程的组合的随机变量x与随机变量y的互信息(740),即更新读出数据与nvm芯片中存储数据的互信息。例如,在数据表中记录或更新x与y同时出现的次数,并得到x与y同时出现的概率p(x,y),进而计算x与y的互信息。作为一个例子,在实验室中构建展示对应的行与列的取值同时出现的次数的数据表的初始值,并在固态存储设备的使用过程中,根据图7所展示的方法更新数据表。作为另一个例子,以指定值(例如,0)作为数据表的初始值,并在固态存储设备的使用过程中,根据图7所展示的方法更新数据表。进而,比较不同处理过程组合的随机变量x与y的互信息,确定具有最大互信息的处理过程的组合(750)。以及可选地,还依据具有最大互信息的处理过程的组合,更新llr表(760)。并在接下来的利用普通读命令从nvm芯片读出数据的硬译码失败时,使用步骤750所得到的具有最大互信息的处理过程组合从nvm芯片获取数据,并使用步骤760所更新的llr表,通过软译码获取数据。可选地,由于对x与y同时出现的次数的更新,对概率p(x,y)的影响可能较小,因而无须每次执行步骤730后,都通过执行步骤740来更新互信息。而是,在累积了一定次数的x与y同时出现,才执行步骤740来计算互信息。另外,还需要补充的是,本申请中可由软件、硬件、固件、fpga(现场可编程门阵列,fieldprogrammablegatearray)和/或asic(应用专用集成电路,applicationspecificintegratedcircuit)等实现根据本申请实施例的ldpc译码方法。以及根据本申请实施例的ldpc译码方法可应用于基于nvm芯片的固态存储设备,包括但不限于固态硬盘、u盘、sd卡,还可以应用于手机、平板电脑等便携式电子设备,以及其他多种使用nvm芯片(诸如nand闪存)的需要存储信息的电子设备。根据本申请实施例的译码方法还可应用于通信、磁存储、光存储等使用错误校正码的设备或服务。虽然当前发明参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。这些实施方式所涉及的、从上面描述和相关联的附图中呈现的教导获益的领域中的技术人员将认识到这里记载的本申请的很多修改和其他实施方式。因此,应该理解,本申请不限于公开的具体实施方式,旨在将修改和其他实施方式包括在所附权利要求书的范围内。尽管在这里采用了特定的术语,但是仅在一般意义和描述意义上使用它们并且不是为了限制的目的而使用。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1