一种数据处理方法及电子设备
技术领域
本发明涉及数据处理技术,尤其涉及一种数据处理方法及电子设备。
背景技术
低密度奇偶校验码(LDPC,Low Density Parity Check)是一种常见的编码校验方式,在进行编码校验的过程中,将利用校验矩阵来进行信息校验,以进行纠错。但是研究发现,目前的LDPC校验方法通常存在着计算量大或复杂度高等导致功耗大的问题。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种数据处理方法及电子设备。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据处理方法,包括:
从存储器中分次读取输入数据,并进行缓存;
统计缓存的输入数据的位数;
判断缓存的输入数据的位数是否满足第一预设条件;
当判断结果表征满足第一预设条件时,从随机存取存储器(RAM,Random AccessMemory)中读取包含N个子矩阵的校验矩阵;
利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;
所述校验矩阵的列重满足第二预设条件。
上述方案中,从RAM中读取包含N个子矩阵的校验矩阵时,从RAM中读取子矩阵对应的第一位置信息及第一元素信息;所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零的整数;
利用所述第一位置信息及第一行元素的信息,得到对应子矩阵。
上述方案中,所述第一位置信息包含:第二位置信息、第三位置信息及第四位置信息;其中,所述第二位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应行的开始;所述第三位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应列的结束;所述第四位置信息表征在划分成N个子矩阵的校验矩阵中子矩阵对应的行号。
上述方案中,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
上述方案中,利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,包括:
利用缓存的输入数据、N个子矩阵,并结合第一预设函数关系,采用迭代的方式,进行低密度奇偶校验编码。
上述方案中,进行低密度奇偶校验编码时,利用当前指示的RAM地址,从RAM中读取第i个子矩阵;并将当前指示的RAM地址更新为第i+1个子矩阵的存储地址;
利用第i个子矩阵及第i-1次编码后的输入数据,根据所述第一预设函数关系,得到第i次编码后的输入数据;i为大于等于1且小于等于N的整数。
本发明实施例还提供了一种电子设备,包括:存储器及RAM;所述电子设备还包括:
控制器,用于从所述存储器分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;
当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;
利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;
所述校验矩阵的列重满足第二预设条件。
上述方案中,所述控制器,具体用于:
从RAM中读取包含N个子矩阵的校验矩阵时,从RAM中读取子矩阵对应的第一位置信息及第一元素信息;所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零的整数;
利用所述第一位置信息及第一行元素的信息,得到对应子矩阵。
上述方案中,所述第一位置信息包含:第二位置信息、第三位置信息及第四位置信息;其中,所述第二位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应行的开始;所述第三位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应列的结束;所述第四位置信息表征在划分成N个子矩阵的校验矩阵中子矩阵对应的行号。
上述方案中,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
上述方案中,所述控制器,具体用于:
利用缓存的输入数据、N个子矩阵,并结合第一预设函数关系,采用迭代的方式,进行低密度奇偶校验编码。
上述方案中,所述控制器,具体用于:
进行低密度奇偶校验编码时,利用当前指示的RAM地址,从RAM中读取第i个子矩阵;并将当前指示的RAM地址更新为第i+1个子矩阵的存储地址;
利用第i个子矩阵及第i-1次编码后的输入数据,根据所述第一预设函数关系,得到第i次编码后的输入数据;i为大于等于1且小于等于N的整数。
本发明实施例提供的数据处理方法及电子设备,从存储器中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及各子矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例一数据处理方法流程示意图;
图2为本发明实施例二数据处理方法流程示意图;
图3为本发明实施例校验矩阵存储方式示意图;
图4为本发明实施例三数据处理方法流程示意图
图5为本发明实施例进行编码的方法流程示意图;
图6为本发明实施例电子设备结构示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
在固态硬盘(SSD,Solid State Drive)控制器(controller)LDPC的编码实现过程中,利用生成矩阵或校验矩阵与信息位相乘以求出校验位。但是由于LDPC编码的矩阵通常很大,涉及大量的矩阵运算,矩阵的存储和计算效率对整个LDPC编码具有很大的影响。目前通常做法如下:
一种做法是,生成矩阵或者校验矩阵的每一个元素对应于1或者0,在求校验位时,每位参与计算或者仅是1的位参与计算,这种方法需要存储器的比特数与矩阵大小对应。那么,采用这种方法时,当矩阵比较大时,所需要的存储器就比较大,并且计算的逻辑很大,计算量也会大大增加;
另一种做法是:存储器中存储生成矩阵或者校验矩阵非0位置的行、列号,每次进行一位的编码计算,这种方法存储空间可以减小,但是计算的复杂度大大增加,使得运算速度比较慢,很难满足大速率的要求。
综上所述,目前的LDPC校验方法通常存在着计算量大或复杂度高等导致计算效率低的问题。
在本发明的各种实施例中:从存储器中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件。
其中,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
实施例一
本发明实施例提供一种数据处理方法,所述方法应用于电子设备中。
图1为本发明实施例一数据处理方法的实现流程示意图,如图1所示,该方法包括以下步骤:
步骤101:从存储器中分次读取输入数据,并进行缓存;
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
步骤102:统计缓存的输入数据的位数;
步骤103:判断缓存的输入数据的位数是否满足第一预设条件;
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
步骤104:当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;
这里,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
步骤105:利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位。
这里,校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
本发明实施例提供的数据处理方法,从存储器中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及各子矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
实施例二
本发明实施例提供一种数据处理方法,所述方法应用于电子设备中。
图2为本发明实施例二数据处理方法的实现流程示意图,如图2所示,该方法包括以下步骤:
步骤201:从存储器中分次读取输入数据,并进行缓存;
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
步骤202:统计缓存的输入数据的位数;
步骤203:判断缓存的输入数据的位数是否满足第一预设条件;
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
步骤204:当判断结果表征满足第一预设条件时,从RAM中读取子矩阵对应的第一位置信息及第一元素信息,利用所述第一位置信息及第一行元素的信息,得到对应子矩阵,以从RAM中读取包含N个子矩阵的校验矩阵;
这里,所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零(一般为1)的整数。
实际应用时,所述第一位置信息可以包含:第二位置信息、第三位置信息及第四位置信息。
其中,所述第二位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应行的开始;所述第三位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应列的结束;所述第四位置信息表征在划分成N个子矩阵的校验矩阵中子矩阵对应的行号。
举个例子来说,假设采用64位输入,256位计算校验位,那么对应的校验矩阵的子矩阵的大小应为256*256。在RAM中,如图3所示,各子矩阵的存储方式为:由13位组成,其中1位表示该子矩阵是否是划分成N个子矩阵的校验矩阵行的开始,1位表示是否是划分成N个子矩阵的校验矩阵列的结束,3位为该子矩阵所在的行位置,8位为该子矩阵第一行1的位置。由于子矩阵为准循环稀疏矩阵,所以只要根据子矩阵第一行1的位置,即可获得整个子矩阵。同时,当子矩阵的矩阵值为零时,则该子矩阵不会存储在RAM中,减少了表项列编号的存储,相应地,由于不存储在RAM中,所以计算校验位时该子矩阵也不会参与计算,如此,大大节省了存储空间,且大大节约了计算量,从而大大节约了计算的功耗。而目前常用的方案中,校验矩阵的列编号远远大于行编号,所以需要的存储空间会特别大,从而大大增加了存储空间,进而大大增加了计算量,也就大大增加了功能。
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
步骤205:利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位。
这里,校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
本发明实施例提供的数据处理方法,从存储器中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及所述校验矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
同时,读取包含N个子矩阵的校验矩阵时,从RAM中读取子矩阵对应的第一位置信息及第一元素信息,已获得每个子矩阵,所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零(一般为1)的整数,这种方式决定了当子矩阵的矩阵值为零时,则该子矩阵不会存储在RAM中,相应地,矩阵值为零的子矩阵由于不存储在RAM中,所以计算校验位时矩阵值为零的子矩阵也不会参与计算,如此,大大节省了存储空间,且大大节约了计算量,从而大大节约了计算的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
实施例三
本发明实施例提供一种数据处理方法,所述方法应用于电子设备中。
图4为本发明实施例三数据处理方法的实现流程示意图,如图4所示,该方法包括以下步骤:
步骤401:从存储器中分次读取输入数据,并进行缓存;
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
步骤402:统计缓存的输入数据的位数;
步骤403:判断缓存的输入数据的位数是否满足第一预设条件;
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
步骤404:当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;
这里,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
步骤405:利用缓存的输入数据、N个子矩阵,并结合第一预设函数关系,采用迭代的方式,进行低密度奇偶校验编码。
这里,校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
所述第一预设函数关系为:r=A﹒sT。
其中,r表示校验位,A表示子矩阵,﹒表示求积;sT表示缓存的输入数据的转置矩阵。
所述迭代方式是指:进行低密度奇偶校验编码时,利用当前指示的RAM地址,从RAM中读取第i个子矩阵;并将当前指示的随RAM地址更新为第i+1个子矩阵的存储地址;
利用第i个子矩阵及第i-1次编码后的输入数据,根据所述第一预设函数关系,得到第i次编码后的输入数据;i为大于等于1且小于等于N的整数。
上述过程,用公式表达则有:
s1T=A﹒sT,s2T=B﹒s1T;
其中,s1T表示采用子矩阵A对输入数据进行i-1次编码后的输入数据,可以称为对输入数据进行校验位计算时的中间结果,s2T表示采用子矩阵B对第i-1次编码后的输入数据进行编码后得到的输入数据,可以为中间结果,也可以为最终编码的结果,即最终得到的校验位。
为了进一步说明本发明实施例的方案,下面举例进行说明。
假设采用64位输入,256位计算计算校验位,那么对应的校验矩阵的子矩阵的大小应为256*256。
如图5所示,编码的过程包括以下步骤:
步骤500:从帧起始位置分次读取输入数据;
每次读取64位输入数据。
步骤501:读取的输入数据放入缓存中,以将信息位拼成256位;
这里,由于每次读取64位输入数据,所以4个周期得到一个256位的信息位。
步骤502:判断缓存的输入数据位数是否满256位,如果是,则执行步骤503;否则,执行步骤501;
步骤503:按照当前指示的RAM地址去读取存储在RAM中的对应子矩阵,并将当前指示的RAM地址加1,以指示到下一个子矩阵的RAM位置;
步骤504:利用第一预设函数关系及对应子矩阵进行低密度奇偶校验编码;
步骤505:判断是否最后一个子矩阵,如果不是,则执行步骤503,如果是,则结束当前处理过程。
这里,实际应用时,在进行第一个256位的信息位校验位的计算的同时,步骤500~501仍在继续进行,以便在4个周期内得到第二个256位的信息位,以进行其校验位的计算。
那么在这个过程中,对于第一个256位信息位,在得到第二个256位的信息未的四个周期中,每个周期进行一个子矩阵的计算,即利用第一预设函数关系进行计算,四个周期正好计算完成第一个256位信息位的校验位,且在计算过程中,采用上面的描述的迭代的方法得到第一个256位信息的校验位。
一个256位信息位校验位计算完成后,与之前同一行的子矩阵计算结果累加,并更新到RAM或者其它存储器(比如寄存器)中,从而得到这一帧数据的校验位。
本发明实施例提供的数据处理方法,从存储器中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,从RAM中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及所述校验矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
实施例四
为实现本发明实施例一的方法,本实施例提供一种电子设备,如图6所示,该电子设备包括:
存储器61;
RAM 62;
控制器63,用于:从所述存储器61分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;
当判断结果表征满足第一预设条件时,从RAM 62中读取包含N个子矩阵的校验矩阵;
利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;
所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
需要说明的是:实际应用时,还可以包括一个存储介质,存储有指定代码;所述控制器63通过执行所述指定代码,能够实现上述功能。
这里,所述存储介质可以包括光盘、磁盘或机械硬盘或闪盘等各种存储介质。在本实施例中所述存储介质优选为非瞬间存储介质。
本发明实施例提供的电子设备,控制器63从存储器61中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,控制器63从RAM62中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及各子矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
实施例五
为实现本发明实施例二的方法,本实施例提供一种电子设备,如图6所示,
存储器61;
RAM 62;
控制器63,用于:从所述存储器61分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;
当判断结果表征满足第一预设条件时,从RAM 62中读取包含N个子矩阵的校验矩阵;
利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;
所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
在一实施例中,所述控制器63,具体用于:
从RAM 62中读取包含N个子矩阵的校验矩阵时,从RAM 62中读取子矩阵对应的第一位置信息及第一元素信息;所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零的整数。
利用所述第一位置信息及第一行元素的信息,得到对应子矩阵。
实际应用时,所述第一位置信息可以包含:第二位置信息、第三位置信息及第四位置信息。
其中,所述第二位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应行的开始;所述第三位置信息表征子矩阵在划分成N个子矩阵的所述校验矩阵中是否对应列的结束;所述第四位置信息表征在划分成N个子矩阵的校验矩阵中子矩阵对应的行号。
举个例子来说,假设采用64位输入,256位计算校验位,那么对应的校验矩阵的子矩阵的大小应为256*256。在RAM中,如图3所示,各子矩阵的存储方式为:由13位组成,其中1位表示该子矩阵是否是划分成N个子矩阵的校验矩阵行的开始,1位表示是否是划分成N个子矩阵的校验矩阵列的结束,3位为该子矩阵所在的行位置,8位为该子矩阵第一行1的位置。由于子矩阵为准循环稀疏矩阵,所以只要根据子矩阵第一行1的位置,即可获得整个子矩阵。同时,当子矩阵的矩阵值为零时,则该子矩阵不会存储在RAM中,减少了表项列编号的存储,相应地,由于不存储在RAM中,所以计算校验位时该子矩阵也不会参与计算,如此,大大节省了存储空间,且大大节约了计算量,从而大大节约了计算的功耗。而目前常用的方案中,校验矩阵的列编号远远大于行编号,所以需要的存储空间会特别大,从而大大增加了存储空间,进而大大增加了计算量,也就大大增加了功能。
需要说明的是:实际应用时,还可以包括一个存储介质,存储有指定代码;所述控制器63通过执行所述指定代码,能够实现上述功能。
这里,所述存储介质可以包括光盘、磁盘或机械硬盘或闪盘等各种存储介质。在本实施例中所述存储介质优选为非瞬间存储介质。
本发明实施例提供的电子设备,控制器63从存储器61中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,控制器63从RAM62中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及各子矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
同时,控制器63读取包含N个子矩阵的校验矩阵时,从RAM中读取子矩阵对应的第一位置信息及第一元素信息,已获得每个子矩阵,所述第一位置信息表征子矩阵在所述校验矩阵中的位置;所述第一元素信息表征子矩阵第一行中第二值的位置;所述第二值为非零(一般为1)的整数,这种方式决定了当子矩阵的矩阵值为零时,则该子矩阵不会存储在RAM中,相应地,矩阵值为零的子矩阵由于不存储在RAM中,所以计算校验位时矩阵值为零的子矩阵也不会参与计算,如此,大大节省了存储空间,且大大节约了计算量,从而大大节约了计算的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
实施例六
为实现本发明实施例三的方法,本实施例提供一种电子设备,如图6所示,该电子设备包括:
存储器61;
RAM 62;
控制器63,用于:从所述存储器61分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;
当判断结果表征满足第一预设条件时,从RAM 62中读取包含N个子矩阵的校验矩阵;
利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,
N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;
所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,可以根据需要确定每次读取的输入数据的位数,比如:可以采用64位输入等。
所述输入数据是指:一帧数据中的数据。
也就是说,一帧数据存储在所述存储器中,当需要得到对应的校验位时,从一帧数据的起始(帧起始)依次读取输入数据,并进行缓存。
这里,实际应用时,可以根据确定的每次的计算位数来设定第一预设条件。也就是说,所述第一预设条件表征每次计算的计算位数。
其中,可以根据缓存的大小及控制器的性能等来确定每次计算的计算位数。举个例子来说,当选择64位输入时,根据缓存的大小及控制器的性能,可以选择256位的计算位数。
其中,循环矩阵是一种特殊形式矩阵,它的行向量的每个元素都是前一个行向量各元素依次右移一个位置得到的结果。所述准循环矩阵又可称为分块循环矩阵或广义的循环矩阵,即将矩阵分成若干块之后,这些分块形成的子矩阵可为循环矩阵。这样在进行矩阵计算时,计算后一行的结果,可以根据前一行的计算结果,通过循环移位寄存器的移位就可以得到,显然大大的简化了矩阵的计算,将少了矩阵中元素间的运算量,提升了匀速效率。
稀疏性是指:矩阵中非零元素的个数远远小于矩阵元素的总数(矩阵中零元素数目远远多于非零元素的数目),并且非零元素的分布没有规律,通常认为矩阵中非零元素的总数比上矩阵所有元素总数的值小于等于0.05时,则称该矩阵为稀疏矩阵。
在一实施例中,所述校验矩阵的列重满足第二预设条件。
这里,实际应用时,所述第二预设条件表征实现非阻塞输入(即连续输入)时所述校验矩阵的列重所要满足的条件。
具体来说,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数。
其中,所述列重是指:子矩阵中每列非零元素(一般为1)的个数称为列重。
校验位的目的是,在LDPC解码时,根据校验位与校验矩阵的计算,判断LDPC编码在存储和传输过程中,是否有1个比特位或者多个比特位出现错误。
在一实施例中,所述控制器63,具体用于:
利用缓存的输入数据、N个子矩阵,并结合第一预设函数关系,采用迭代的方式,进行低密度奇偶校验编码。
所述第一预设函数关系为:r=A﹒sT。
其中,r表示校验位,A表示子矩阵,﹒表示求积;sT表示缓存的输入数据的转置矩阵。
更具体地,进行低密度奇偶校验编码时,所述控制器63利用当前指示的RAM地址,从RAM 62中读取第i个子矩阵;并将当前指示的RAM地址更新为第i+1个子矩阵的存储地址;
所述控制器63利用第i个子矩阵及第i-1次编码后的输入数据,根据所述第一预设函数关系,得到第i次编码后的输入数据;i为大于等于1且小于等于N的整数。
上述过程,用公式表达则有:
s1T=A﹒sT,s2T=B﹒s1T;
其中,s1T表示采用子矩阵A对输入数据进行i-1次编码后的输入数据,可以称为对输入数据进行校验位计算时的中间结果,s2T表示采用子矩阵B对第i-1次编码后的输入数据进行编码后得到的输入数据,可以为中间结果,也可以为最终编码的结果,即最终得到的校验位。
为了进一步说明本发明实施例的方案,下面举例进行说明。
假设采用64位输入,256位计算计算校验位,那么对应的校验矩阵的子矩阵的大小应为256*256。
如图5所示,编码的过程包括以下步骤:
步骤500:控制器63从帧起始位置分次读取输入数据;
每次读取64位输入数据。
步骤501控制器63:读取的输入数据放入缓存中,以将信息位拼成256位;
这里,由于每次读取64位输入数据,所以4个周期得到一个256位的信息位。
步骤502:控制器63判断缓存的输入数据位数是否满256位,如果是,则执行步骤503;否则,执行步骤501;
步骤503:控制器63按照当前指示的RAM地址去读取存储在RAM中的对应子矩阵,并将当前指示的RAM地址加1,以指示到下一个子矩阵的RAM位置;
步骤504:控制器63利用第一预设函数关系及对应子矩阵进行低密度奇偶校验编码;
步骤505:控制器63判断是否最后一个子矩阵,如果不是,则执行步骤503,如果是,则结束当前处理过程。
这里,实际应用时,在进行第一个256位的信息位校验位的计算的同时,步骤500~501仍在继续进行,以便在4个周期内得到第二个256位的信息位,以进行其校验位的计算。
那么在这个过程中,对于第一个256位信息位,在得到第二个256位的信息未的四个周期中,每个周期进行一个子矩阵的计算,即利用第一预设函数关系进行计算,四个周期正好计算完成第一个256位信息位的校验位,且在计算过程中,采用上面的描述的迭代的方法得到第一个256位信息的校验位。
一个256位信息位校验位计算完成后,与之前同一行的子矩阵计算结果累加,并更新到RAM或者其它存储器(比如寄存器)中,从而得到这一帧数据的校验位。
需要说明的是:实际应用时,还可以包括一个存储介质,存储有指定代码;所述控制器63通过执行所述指定代码,能够实现上述功能。
这里,所述存储介质可以包括光盘、磁盘或机械硬盘或闪盘等各种存储介质。在本实施例中所述存储介质优选为非瞬间存储介质。
本发明实施例提供的电子设备,控制器63从存储器61中分次读取输入数据,并进行缓存;统计缓存的输入数据的位数;判断缓存的输入数据的位数是否满足第一预设条件;当判断结果表征满足第一预设条件时,控制器63从RAM62中读取包含N个子矩阵的校验矩阵;利用缓存的输入数据及N个子矩阵,进行低密度奇偶校验编码,得到对应校验位;其中,N为不小于2的整数;N个子矩阵均满足准循环特性及稀疏特性;所述校验矩阵的列重满足第二预设条件,通过对缓存的输入数据的位数及各子矩阵的列重进行条件限定,可以实现非阻塞输入,如此,能有效降低编码校验过程中的功耗。
另外,所述第二预设条件表征所述校验矩阵的列重不大于第一值;所述第一值表征缓存的输入数据的位数满足第一预设条件时读取输入数据的次数,这样,在第一值个周期内,必定可以完成缓存的输入数据校验位的计算,因此可以连续输入数值缓存里,从而有效地实线了非阻塞输入。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。