1.本发明涉及计算机领域,并且更具体地涉及一种存储校验的系统和服务器。
背景技术:2.由于任何存储都不能保证它在全生命周期内的可靠性能,因此需要设置校验码,进行数据纠错或者发现错误上报。ecc(错误纠正码)算法因为其硬件实现简单,所占逻辑资源少,译码时延低,具有纠一验二特性,而被广泛应用于存储校验中。ecc码(sec-ded码)是线性分组码的一种,能够纠正1 bit错误并能检测2 bit 错误,但对于2 bit 以上的错误不能保证检测。
3.ecc生成矩阵为:其中,生成矩阵g是k*n维,式中,是k*k维的单位阵,中的元素为0或1的整数。由此生成矩阵可以看出ecc码是线性分组码中的系统码。待编码的数据信息为:。通过g矩阵编码得到的码字:。对于得到的码字,前k个分量为原始数据信息,后n-k个分量是校验位,n为码长。
4.ecc校验矩阵为:根据生成矩阵g与校验矩阵h的定义可知,g与h具有简单的变化关系,且。假设解码器收到的码字为,原始码字在存储期间某些位上可能发生了错误,因此不一定与原始码字相同,而是包含了错误模式的序列,即。校正子。当错误模式为0时,;当错误模式不为0时,。
5.由上可知可以通过求解得到错误模式。应当注意,由于在模2运算中,用加法代替了减法,故通过即可得到正确的码字。
6.ecc码具有简单的解码方式,它利用校正子的差异性,通过查找表的方式确定不同校正子所对应的错误模式。由于ecc码可以纠正单位错误,同时探测两位随机错误,因此其奇偶校验矩阵h需要满足以下规则:(1)所有列向量各不相同,(2)所有列向量的汉明重量为奇数。
7.当码字中发生单位错误时,即错误模式向量中只包含一个 1,通过可
知,此时校正子等于矩阵中的某一列,且与一一对应。因此,规则(1)保证了所有单位错误的校正子各不相同,即可通过查找表的方式,找到当前校正子所对应的错误模式,继而通过执行式完成纠错。
8.当码字中发生两位错误时,即错误模式向量中包含两个 1,通过可知,校正子等于矩阵中某两列的异或结果。若要探测出两位随机错误,则其校正子不能与任意单位错误的校正子相等,因此,矩阵中任意两个列向量的异或结果不等于所有的列向量本身。规则(2)正是为了满足这一要求而建立,当矩阵中所有列向量的汉明重量为奇数时,任意两个列向量异或结果的汉明重量一定为偶数。因此,规则(2)使得 ecc码仅通过判断非零校正子的奇偶性即可得知码字中是否发生了两位随机错误。
9.当数据位宽只有8个bit的时候,需要5个bit来进行ecc校验,而后数据位宽每增加一倍,ecc只需要增加1bit的校验位,16bit需要6bit ecc,32bit需要7bit ecc,64bit需要8bit ecc校验位。ecc校验码的数学特性决定了对于同样长度的原始数据,如果ecc校验码越长,则纠错的能力就越强,即允许原始数据出现错误的能力更大。
10.目前市面上大部分硬件实现的ecc编码、解码器,仅支持编码或解码其中一种功能,待编码数据的位宽也为固定值,不能随着待存储数据对安全性的不同要求而相应改变,并且校验矩阵固定,在使用过程中不能重新配置,这就会导致对于不同安全级别的数据,使用同一码率的ecc码进行校验,对于安全级别高的数据来说,纠错能力不够,对于安全级别低的数据来说,浪费了过多的存储空间。
技术实现要素:11.有鉴于此,本发明实施例的目的在于提出一种存储校验的系统和服务器,通过使用本发明的技术方案,能够增加数据纠错能力,能够节省存储空间,能够明显降低资源消耗。
12.基于上述目的,本发明的实施例的一个方面提供了一种存储校验的系统,包括:选通与仲裁模块,选通与仲裁模块连接到各个主机接口,配置为接收各个主机接口发送的数据以及向各个主机接口发送数据;存储控制器模块,存储控制器模块连接到选通与仲裁模块,配置为接收选通与仲裁模块发送的主机接口命令和数据,并对接收到的主机接口命令进行解析,以及将译码后的数据发送到各个主机接口;ecc编解码器模块,ecc编解码器模块连接到选通与仲裁模块和存储控制器模块,ecc编解码器模块向选通与仲裁模块发送接口选择指示信号以使选通与仲裁模块选择相应的主机接口,ecc编解码器模块接收存储控制器模块发送的主机接口命令和数据,并基于主机接口命令对数据进行编码或译码,并将编码或译码后的数据发送到存储控制器模块中;存储模块,存储模块连接到存储控制器模块,配置为存储存储控制器模块发送的编码后的数据和ecc校验数据,以及将编码后的数据和ecc校验数据发送到ecc编解码器模块。
13.根据本发明的一个实施例,存储模块包括若干个分区,每个分区具有不同的安全级别,高安全级别的分区中的ecc校验数据的存储空间大于低安全级别的分区中的ecc校验
数据的存储空间,存储模块配置为基于不同主机接口发送的数据的安全级别将编码后的数据和ecc校验数据存储到相应的分区中。
14.根据本发明的一个实施例,选通与仲裁模块包括主机接口选通单元,主机接口选通单元连接到各个主机接口,主机接口选通单元配置为接收ecc编解码器模块发送的接口选择指示信号,并基于接收到的接口选择指示信号接收主机接口发送的主机接口命令和数据。
15.根据本发明的一个实施例,选通与仲裁模块还包括仲裁器,仲裁器连接到主机接口选通单元和存储控制器模块,仲裁器使用轮询调度算法进行仲裁,仲裁器配置为对主机接口选通单元接收的多个主机接口命令和数据进行仲裁以选取多个主机接口命令和数据中的一组发送到存储控制器模块。
16.根据本发明的一个实施例,选通与仲裁模块还包括监视器,监视器连接到主机接口选通单元和ecc编解码器模块,监视器配置为在仲裁器没有请求信号且主机接口选通单元有请求信号的情况下,向ecc编解码器模块发送切换h矩阵信号,ecc编解码器模块接收到切换h矩阵信号后向主机接口选通单元重新发送接口选择指示信号,以使新的主机接口命令和数据进入仲裁器。
17.根据本发明的一个实施例,监视器连接到仲裁器,监视器还配置为当连续处理阈值个数当前主机接口命令和数据且仲裁器中的其他主机接口有请求时,向ecc编解码器模块发送超时信号,以使仲裁器中其他主机接口命令和数据发送到存储控制器模块中。
18.根据本发明的一个实施例,存储控制器模块包括命令解析单元,命令解析单元连接到选通与仲裁模块,并接收选通与仲裁模块发送的主机接口命令和数据,命令解析单元配置为将主机接口命令解析成读命令、写命令、编解码模式、主机接口类型和目标地址。
19.根据本发明的一个实施例,存储控制器模块还包括存储读序列生成单元和ecc控制模块,存储读序列生成单元配置为接收命令解析单元解析出的读命令和目标地址的信息,并基于信息生成存储读控制指令,并将存储读控制指令发送到存储模块中以将存储模块中对应的待编解码数据读取到ecc控制模块,ecc控制模块配置为接收命令解析单元解析出的编解码模式和主机接口类型的信息,ecc控制模块将编解码模式、主机接口类型以及待编解码数据发送到ecc编解码器模块进行处理,ecc控制模块还配置接收ecc编解码器模块发送的编解码后的数据,并对编解码后的数据进行ecc校验,并将校验后的数据发送到选通与仲裁模块。
20.根据本发明的一个实施例,存储控制器模块还包括存储写序列生成单元,存储写序列生成单元配置为接收命令解析单元解析出的写命令和目标地址的信息,并基于信息生成存储写控制指令,并将存储写控制指令发送到存储模块中,ecc控制模块配置为接收命令解析单元解析出的编解码模式、主机接口类型的信息以及写数据源,ecc控制模块将编解码模式、主机接口类型以及待写数据源发送到ecc编解码器模块进行处理,ecc控制模块还配置接收ecc编解码器模块发送的编解码后的数据,并将编解码后的数据发送到存储写序列生成单元,存储写序列生成单元将编解码后的数据写入到存储模块中。
21.根据本发明的一个实施例,ecc编解码器模块包括h矩阵存储模块,h矩阵存储模块配置用于存储两组h矩阵,h矩阵存储模块包括寄存器组,寄存器组中的每个寄存器分别存储h矩阵中的一行数据。
22.根据本发明的一个实施例,寄存器组中寄存器的个数为所有h矩阵中行数最多的h矩阵的行数的2倍。
23.根据本发明的一个实施例,h矩阵存储模块连接到外部矩阵配置模块,h矩阵存储模块配置为接收外部矩阵配置模块发送的配置信息,并基于配置信息更新h矩阵存储模块存储的h矩阵。
24.根据本发明的一个实施例,h矩阵存储模块配置为在每个寄存器中存储的数据中的多余位填0。
25.根据本发明的一个实施例,ecc编解码器模块还包括整理模块,整理模块连接到h矩阵存储模块,配置为接收h矩阵存储模块发送的h矩阵的每行数据,并接收到的每行数据整理成h矩阵。
26.根据本发明的一个实施例,整理模块还配置为在ecc编解码器模块为编码模式时,选取每行数据中的设定个数的高位数据组成h矩阵,并在组成的h矩阵的高位补0。
27.根据本发明的一个实施例,设定个数为h矩阵的列数减校验位个数的值。
28.根据本发明的一个实施例,整理模块还配置为在ecc编解码器模块为译码模式时,选取每行数据中的预设个数的低位数据组成h矩阵。
29.根据本发明的一个实施例,预设个数为h矩阵的列数。
30.根据本发明的一个实施例,ecc编解码器模块还包括计算模块,计算模块连接到整理模块和存储控制器模块,计算模块接收存储控制模块发送的待编解码数据和整理模块发送的h矩阵,并根据h矩阵对待编解码数据进行编解码,并将编解码后的数据发送到存储控制器模块。
31.本发明的实施例的另一个方面,还提供了一种服务器,服务器包括存储校验的系统,存储校验的系统包括:选通与仲裁模块,选通与仲裁模块连接到各个主机接口,配置为接收各个主机接口发送的数据以及向各个主机接口发送数据;存储控制器模块,存储控制器模块连接到选通与仲裁模块,配置为接收选通与仲裁模块发送的主机接口命令和数据,并对接收到的主机接口命令进行解析,以及将译码后的数据发送到各个主机接口;ecc编解码器模块,ecc编解码器模块连接到选通与仲裁模块和存储控制器模块,ecc编解码器模块向选通与仲裁模块发送接口选择指示信号以使选通与仲裁模块选择相应的主机接口,ecc编解码器模块接收存储控制器模块发送的主机接口命令和数据,并基于主机接口命令对数据进行编码或译码,并将编码或译码后的数据发送到存储控制器模块中;存储模块,存储模块连接到存储控制器模块,配置为存储存储控制器模块发送的编码后的数据和ecc校验数据,以及将编码后的数据和ecc校验数据发送到ecc编解码器模块。
32.本发明具有以下有益技术效果:本发明实施例提供的存储校验的系统,通过设置选通与仲裁模块,选通与仲裁模块连接到各个主机接口,配置为接收各个主机接口发送的数据以及向各个主机接口发送数据;存储控制器模块,存储控制器模块连接到选通与仲裁模块,配置为接收选通与仲裁模块发送的主机接口命令和数据,并对接收到的主机接口命令进行解析,以及将译码后的数据发送到各个主机接口;ecc编解码器模块,ecc编解码器模
块连接到选通与仲裁模块和存储控制器模块,ecc编解码器模块向选通与仲裁模块发送接口选择指示信号以使选通与仲裁模块选择相应的主机接口,ecc编解码器模块接收存储控制器模块发送的主机接口命令和数据,并基于主机接口命令对数据进行编码或译码,并将编码或译码后的数据发送到存储控制器模块中;存储模块,存储模块连接到存储控制器模块,配置为存储存储控制器模块发送的编码后的数据和ecc校验数据,以及将编码后的数据和ecc校验数据发送到ecc编解码器模块的技术方案,能够增加数据纠错能力,能够节省存储空间,能够明显降低资源消耗。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
34.图1为根据本发明一个实施例的存储校验的系统的示意图;图2为根据本发明一个实施例的选通与仲裁模块的示意图;图3为根据本发明一个实施例的存储控制器模块的示意图;图4为根据本发明一个实施例的ecc编解码器模块的示意图;图5为根据本发明一个实施例的整理模块选取校验矩阵的示意图;图6为根据本发明一个实施例的计算模块树状计算过程的示意图。
具体实施方式
35.以下描述了本公开的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种替代形式。附图不一定按比例绘制;某些功能可能被夸大或最小化以显示特定部件的细节。因此,本文公开的具体结构和功能细节不应被解释为限制性的,而仅仅是作为用于教导本领域技术人员以各种方式使用本发明的代表性基础。如本领域普通技术人员将理解的,参考任何一个附图所示出和描述的各种特征可以与一个或多个其他附图中所示的特征组合以产生没有明确示出或描述的实施例。所示特征的组合为典型应用提供了代表性实施例。然而,与本公开的教导相一致的特征的各种组合和修改对于某些特定应用或实施方式可能是期望的。
36.基于上述目的,本发明的实施例的第一个方面,提出了一种存储校验的系统的一个实施例。图1示出的是该存储校验的系统的示意图。
37.如图1中所示,该存储校验的系统可以包括:选通与仲裁模块,选通与仲裁模块连接到各个主机接口,配置为接收各个主机接口发送的数据以及向各个主机接口发送数据。
38.还包括存储控制器模块,存储控制器模块连接到选通与仲裁模块,配置为接收选通与仲裁模块发送的主机接口命令和数据,并对接收到的主机接口命令进行解析,以及将译码后的数据发送到各个主机接口。存储控制器模块接收到主机接口命令时,进行编译码模式的判断,先配置ecc编解码器模块的模式,再将待编、解码数据送入ecc编解码器模块中,ecc编解码器模块支持两种模式:1.编码模式,存储控制器模块将待编码数据发送给
ecc编解码器模块进行编码,ecc编解码器模块将编码后的校验位返回存储控制器模块,存储控制器模块判断此时处理的主机接口对应存储中哪片安全级别区域,判断后将原始数据和校验数据同时送入对应的区域进行存储。2.译码模式,存储控制器模块进行处理主机接口判断,从存储模块对应安全级别区域读出编码后的数据和ecc校验数据进行拼接,将拼接后的数据一起发送给ecc编解码器模块,ecc编解码器模块译码后将校正子返回,由存储控制器模块完成ecc纠一检二校验,最后将校验后的数据发送到对应的主机接口。
39.还包括ecc编解码器模块,ecc编解码器模块连接到选通与仲裁模块和存储控制器模块,ecc编解码器模块向选通与仲裁模块发送接口选择指示信号以使选通与仲裁模块选择相应的主机接口,ecc编解码器模块接收存储控制器模块发送的主机接口命令和数据,并基于主机接口命令对数据进行编码或译码,并将编码或译码后的数据发送到存储控制器模块中。ecc编解码器模块中可以缓存预设数量的h矩阵,优选只缓存2个h矩阵,这2个h矩阵对应主机接口应当大于等于2个,由ecc编解码器模块向选通与仲裁模块发送接口选择信号,选取缓存中已经存有对应h矩阵的主机接口,将这些接口命令和数据依次送入存储控制器模块中进行处理。如果已经选择的主机接口不再发送请求信号,其他主机接口上有请求信号时,由仲裁器向ecc编解码器模块发送h矩阵切换信号,再由ecc编解码器模块向外部矩阵配置模块发出请求,外部矩阵配置模块收到请求后,将2个新h矩阵配置到ecc编解码器模块中,配置完成后更改接口选择信号,处理新的主机接口命令。同时引入超时机制,当连续处理当前选择的主机接口命令超过一定数量时,并且其他主机接口有请求时,由选通与仲裁模块向ecc编解码器模块发送接口超时信号,强制ecc编解码器模块向外发送切换h矩阵请求,并更换新的接口选择。
40.还包括存储模块,存储模块连接到存储控制器模块,配置为存储存储控制器模块发送的编码后的数据和ecc校验数据,以及将编码后的数据和ecc校验数据发送到ecc编解码器模块。可以将存储模块的存储空间进行分区,不同的区域设置不同的安全级别,根据目前处理的不同主机接口区分不同的访问区域,高安全级别区域较低安全级别区域分配更多的校验位存储空间。
41.通过本发明的技术方案,能够增加数据纠错能力,能够节省存储空间,能够明显降低资源消耗。
42.在本发明的一个优选实施例中,存储模块包括若干个分区,每个分区具有不同的安全级别,高安全级别的分区中的ecc校验数据的存储空间大于低安全级别的分区中的ecc校验数据的存储空间,存储模块配置为基于不同主机接口发送的数据的安全级别将编码后的数据和ecc校验数据存储到相应的分区中。将存储模块分成多个分区,为每个分区设置高低不同的安全级别,需要保证高安全级别的分区中存储ecc校验数据的存储空间大于低安全级别的分区中存储ecc校验数据的存储空间,也就是说,根据用户的数据安全级别的不同,使用不同码率的ecc码进行校验,能够增加高安全级别数据的纠错能力。
43.在本发明的一个优选实施例中,如图2所示,选通与仲裁模块包括主机接口选通单元,主机接口选通单元连接到各个主机接口,主机接口选通单元配置为接收ecc编解码器模块发送的接口选择指示信号,并基于接收到的接口选择指示信号接收主机接口发送的主机接口命令和数据。主机接口选通单元根据接收到的接口选择指示信号连接到相应的主机并接收主机接口命令和数据,例如,接收选择指示信号表明选择接口a、接口b和接口c,则接口
选通单元连接这3个主机接口,并接收这3个主机接口的命令和数据。
44.在本发明的一个优选实施例中,如图2所示,选通与仲裁模块还包括仲裁器,仲裁器连接到主机接口选通单元和存储控制器模块,仲裁器使用轮询调度算法进行仲裁,仲裁器配置为对主机接口选通单元接收的多个主机接口命令和数据进行仲裁以选取多个主机接口命令和数据中的一组发送到存储控制器模块。ecc编解码器模块每次只能使用一个h矩阵进行编辑码操作,因此需要使用仲裁器将如上述选择的3个主机接口的命令和数据进行仲裁,即选择3个主机接口中的一个,将该接口的主机接口命令和数据向下发送,其他两个主机则进行等待。
45.在本发明的一个优选实施例中,如图2所示,选通与仲裁模块还包括监视器,监视器连接到主机接口选通单元和ecc编解码器模块,监视器配置为在仲裁器没有请求信号且主机接口选通单元有请求信号的情况下,向ecc编解码器模块发送切换h矩阵信号,ecc编解码器模块接收到切换h矩阵信号后向主机接口选通单元重新发送接口选择指示信号,以使新的主机接口命令和数据进入仲裁器。当监视器监控到仲裁器没有请求信号,也就是仲裁器中的主机接口的命令和数据已经处理完成,即ecc编解码器模块中缓存的h矩阵能够处理的数据都处理完成了,其他数据不能使用当前缓存的h矩阵进行处理,这时外部主机接口还有请求,则需要更换ecc编解码器模块中缓存的h矩阵,在h矩阵更换后,根据h矩阵发送新的接口选择指示信号,以经由主机接口选通单元选择当前h矩阵能够处理的主机接口。
46.在本发明的一个优选实施例中,监视器连接到仲裁器,监视器还配置为当连续处理阈值个数当前主机接口命令和数据且仲裁器中的其他主机接口有请求时,向ecc编解码器模块发送超时信号,以使仲裁器中其他主机接口命令和数据发送到存储控制器模块中。为了避免ecc编解码器模块一直处理同一个主机接口的数据,其他主机接口一直等待的问题,监视器还监控处理同一个主机接口的主机接口命令的个数,当监视器监控到连续处理了同一个主机接口的阈值数量的主机接口命令,并且仲裁器中还有其他主机接口命令时,在处理完当前的主机接口命令后,仲裁器会将其他主机接口命令和数据向下发送以进行处理,能够保证仲裁的公平性。
47.在本发明的一个优选实施例中,如图3所示,存储控制器模块包括命令解析单元,命令解析单元连接到选通与仲裁模块,并接收选通与仲裁模块发送的主机接口命令和数据,命令解析单元配置为将主机接口命令解析成读命令、写命令、编解码模式、主机接口类型和目标地址。命令解析单元会将各个主机接口发送的命令进行解析,解析后可以得到具体的命令数据,例如是读命令或是写命令,以及编解码的模式、主机接口类型以及数据的存储地址(安全级别)。
48.在本发明的一个优选实施例中,如图3所示,存储控制器模块还包括存储读序列生成单元和ecc控制模块,存储读序列生成单元配置为接收命令解析单元解析出的读命令和目标地址的信息,并基于信息生成存储读控制指令,并将存储读控制指令发送到存储模块中以将存储模块中对应的待编解码数据读取到ecc控制模块,ecc控制模块配置为接收命令解析单元解析出的编解码模式和主机接口类型的信息,ecc控制模块将编解码模式、主机接口类型以及待编解码数据发送到ecc编解码器模块进行处理,ecc控制模块还配置接收ecc编解码器模块发送的编解码后的数据,并对编解码后的数据进行ecc校验,并将校验后的数据发送到选通与仲裁模块。如果主机接口命令为读命令,则将ecc编解码器模块配置为译码
模式,根据接收的主机接口命令告知ecc编解码器模块使用缓存的h矩阵中的哪一个进行译码,根据接收的主机接口命令(解析后的)判断安全级别地址区域,存储读序列生成单元基于地址信息生成存储读控制指令,将存储读控制指令发送到存储模块中以将存储模块中对应的待编解码数据读取到ecc控制模块,ecc控制模块将编解码模式、主机接口类型以及待编解码数据发送到ecc编解码器模块进行处理,ecc编解码器模块将处理后的编解码后的数据发送的ecc控制模块,ecc控制模块对编解码后的数据进行ecc校验,并将校验后的数据发送到选通与仲裁模块,选通与仲裁模块将校正后的数据发送至对应的主机接口。
49.在本发明的一个优选实施例中,如图3所示,存储控制器模块还包括存储写序列生成单元,存储写序列生成单元配置为接收命令解析单元解析出的写命令和目标地址的信息,并基于信息生成存储写控制指令,并将存储写控制指令发送到存储模块中,ecc控制模块配置为接收命令解析单元解析出的编解码模式、主机接口类型的信息以及写数据源,ecc控制模块将编解码模式、主机接口类型以及待写数据源发送到ecc编解码器模块进行处理,ecc控制模块还配置接收ecc编解码器模块发送的编解码后的数据,并将编解码后的数据发送到存储写序列生成单元,存储写序列生成单元将编解码后的数据写入到存储模块中。如果主机接口为写命令,则将ecc编解码器模块配置为编码模式,根据接收的主机接口命令告知ecc编解码器模块使用缓存的h矩阵中的哪一个,根据接收的主机接口命令判断安全级别的地址区域,存储写序列生成单元生成存储写控制指令并发送到存储模块中。ecc控制模块将解析出的相应信息和数据发送到ecc编解码器模块进行处理,ecc编解码器模块将处理后的编解码后的数据发送到ecc控制模块,ecc控制模块将编解码后的数据发送到存储写序列生成单元,存储写序列生成单元将编解码后的数据写入到存储模块中。
50.在本发明的一个优选实施例中,如图4所示,ecc编解码器模块包括h矩阵存储模块,h矩阵存储模块配置用于存储两组h矩阵,h矩阵存储模块包括寄存器组,寄存器组中的每个寄存器分别存储h矩阵中的一行数据。
51.在本发明的一个优选实施例中,寄存器组中寄存器的个数为所有h矩阵中行数最多的h矩阵的行数的2倍。h矩阵存储模块也可以存储更多个h矩阵,寄存器组中的每个寄存器只保存h矩阵的一行数据,例如h矩阵为3*3的矩阵,则第一个寄存器存储第一行数据,第二个寄存器存储第二行数据,第三个寄存器存储第三行数据。寄存器的个数需要根据所有h矩阵的大小进行设置,例如本系统中设置有10组h矩阵,这10组h矩阵中行数最大的h矩阵为10*10的矩阵,则寄存器的数量为最大行数的2倍,即20个寄存器。
52.在本发明的一个优选实施例中,h矩阵存储模块连接到外部矩阵配置模块,h矩阵存储模块配置为接收外部矩阵配置模块发送的配置信息,并基于配置信息更新h矩阵存储模块存储的h矩阵。当缓存的两个h矩阵不能满足当前计算,需要更新缓存的h矩阵,即根据配置信息更换缓存的h矩阵。
53.在本发明的一个优选实施例中,h矩阵存储模块配置为在每个寄存器中存储的数据中的多余位填0。例如每个寄存器的存储空间为10,缓存的两个h矩阵为3*3矩阵和5*5矩阵,则将两个矩阵的空余位全部补0。
54.在本发明的一个优选实施例中,如图4所示,ecc编解码器模块还包括整理模块,整理模块连接到h矩阵存储模块,配置为接收h矩阵存储模块发送的h矩阵的每行数据,并接收到的每行数据整理成h矩阵。
55.在本发明的一个优选实施例中,整理模块还配置为在ecc编解码器模块为编码模式时,选取每行数据中的设定个数的高位数据组成h矩阵,并在组成的h矩阵的高位补0。
56.在本发明的一个优选实施例中,设定个数为h矩阵的列数减校验位个数的值。如图5所示,例如当ecc编解码器模块为编码模式时,选取的h矩阵为10*10的矩阵,校验位个数为3个,则选取10*10矩阵中的高位的7位组成h矩阵,即不读取每个寄存器中的低3位数据,此时组成的h矩阵为10*7,然后将组成的h矩阵的高3位补0,使h矩阵变为10*10的矩阵,凑够最大校验矩阵列数位输出,如图5中虚线左边的所有部分。
57.在本发明的一个优选实施例中,整理模块还配置为在ecc编解码器模块为译码模式时,选取每行数据中的预设个数的低位数据组成h矩阵。
58.在本发明的一个优选实施例中,预设个数为h矩阵的列数。
59.在本发明的一个优选实施例中,如图4所示,ecc编解码器模块还包括计算模块,计算模块连接到整理模块和存储控制器模块,计算模块接收存储控制模块发送的待编解码数据和整理模块发送的h矩阵,并根据h矩阵对待编解码数据进行编解码,并将编解码后的数据发送到存储控制器模块。按照最大支持的h矩阵大小开辟点乘与异或资源,编码、译码计算复用同一模块。计算模块输入校验矩阵或生成矩阵位宽为:最大h矩阵行数*最大h矩阵列数,输入待编码、译码数据为最大h矩阵列数位。如图6所示,将输入的待编码、译码数据与整理模块输入计算模块的h矩阵进行分组点乘,点乘之后进行每组自己进行异或,最后的结果即为输出的编码、译码值,即待处理数据分别与h矩阵的每行进行点乘运算,每个计算结果中的数据的每两位进行异或运算,直到每个计算结果得到一个值,最后的结果组合在一起即为输出的编码、译码值。这种设计主要利用了两个特性:(1)任何数乘0都等于0;(2)异或计算对0不敏感。由于输入校验矩阵或生成矩阵在与最大h矩阵不匹配的地方都被置为0,因此不匹配的地方在与入口待编码、译码数据相乘后,结果为0,再做异或操作,对最终结果没有影响。
60.在本发明的一个优选实施例中,还包括矩阵配置请求生成单元,当外部输入接口超时信号或无仲裁请求信号时,说明此时需要配置2个新的h矩阵至缓存中,等待ecc编解码器模块内部所有计算完成,处于空闲状态时,产生新矩阵配置请求信号。
61.在本发明的一个优选实施例中,还包括接口选择指示生成单元,此单元一直扫描缓存的h矩阵类型,当有h矩阵刷新时,变更对外输出的接口选择指示,缓存的2个h矩阵最少对应2个主机接口,也就是说对外输出的接口选择指示大于等于2。
62.本发明提供了区分待存储数据不同安全级别,动态更改ecc码率的方案,当待存储数据为安全等级高的高安全级别数据时,将这段数据分配至校验比特占比高的存储区域,以增加纠错能力。当待存储数据为安全等级低的低安全级别数据时,将这段数据分配至校验比特占比低的存储区域,以节省存储空间,提高有效数据在存储空间中的占比。本发明的编、解码器计算单元只开辟了一份资源,通过配置不同的模式可以选择完成编码操作还是译码操作,存储h矩阵单元只开辟了一个能存储2个最大h矩阵的缓存,通过h矩阵重配机制,能够明显降低资源消耗。
63.基于上述目的,本发明的实施例的第二个方面,提出了一种服务器,服务器包括存储校验的系统,存储校验的系统包括:选通与仲裁模块,选通与仲裁模块连接到各个主机接口,配置为接收各个主机接
口发送的数据以及向各个主机接口发送数据;存储控制器模块,存储控制器模块连接到选通与仲裁模块,配置为接收选通与仲裁模块发送的主机接口命令和数据,并对接收到的主机接口命令进行解析,以及将译码后的数据发送到各个主机接口;ecc编解码器模块,ecc编解码器模块连接到选通与仲裁模块和存储控制器模块,ecc编解码器模块向选通与仲裁模块发送接口选择指示信号以使选通与仲裁模块选择相应的主机接口,ecc编解码器模块接收存储控制器模块发送的主机接口命令和数据,并基于主机接口命令对数据进行编码或译码,并将编码或译码后的数据发送到存储控制器模块中;存储模块,存储模块连接到存储控制器模块,配置为存储存储控制器模块发送的编码后的数据和ecc校验数据,以及将编码后的数据和ecc校验数据发送到ecc编解码器模块。
64.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
65.上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。