一种低开销的取模方法技术

技术编号:18972270 阅读:52 留言:0更新日期:2018-09-19 03:35
本发明专利技术提供一种低开销的取模方法,该方法以模m=3为例,取模运算可以通过统计余数1与余数2的个数,然后根据余数1与余数2的个数查表确定余数,再根据输入数据的正负确定余数的最终结果,这种方法与直接使用%取模方法相比,大大降低了取模运算的开销。

A low overhead method for sampling

The present invention provides a low-overhead modulus extraction method, in which modulus m=3 is taken as an example, modulus extraction can be performed by counting the number of residues 1 and 2, and then the residue can be determined by looking up the table of the number of residues 1 and 2, and then the final result of the residue can be determined according to the positive and negative input data. This method and the direct use of% modulus extraction method are used. Compared with the algorithm, the cost of module operation is greatly reduced.

【技术实现步骤摘要】
一种低开销的取模方法
本专利技术涉及余数校验领域,更具体地,涉及一种低开销的取模方法。
技术介绍
空间辐射环境对空间飞行器的电子产品有着严重的影响,单粒子效应是主要要考虑的影响。在空间应用中,单粒子效应能产生严重后果,包括信息丢失和功能失效。当具有足够转移能量的带电粒子击中芯片时,就可能发生单粒子效应现象,进而引发系统故障。辐射效应引起的瞬时错误已经成为人们的主要关注所在,只有应用容错技术才能保证电路的可靠性。三模冗余技术在辐射环境下的容错信号处理中得到广泛应用。三模冗余使用三个相同模块对输入数据进行相同滤波操作,选择两路或三路相同的结果进行输出,完全消除了单支路故障对信号处理输出的影响。但在三模冗余技术中,所有的运算及存储资源消耗都增加到原来的三倍,这使得三模冗余技术在很多资源受限的应用中无法使用,如星载平台上的容错信号处理等。为了降低容错开销,研究人员提出了基于余数校验的容错方案。在基于余数校验的容错方案中,校验支路若使用较小的模数,则可以使硬件开销大大低于普通计算支路,因此可以显著降低整体容错系统的开销。如果使用基于余数校验的容错信号处理技术,则对数据取模是必不可少运算。并且若基于余数校验的容错方案较为复杂,使用较多的取模运算,则整个容错方案中的取模运算的资源开销也会占很大比例。
技术实现思路
本专利技术提供一种低开销的取模方法,以降低基于余数校验的容错方案中取模运算的资源开销。为了达到上述技术效果,本专利技术的技术方案如下:一种低开销的取模方法,包括以下步骤:S1:如果二进制有符号数x为负数,则先将x变为二进制正数,然后赋给y;否则如果二进制有符号数x为正数,则直接将x的值赋给y;S2:统计二进制正数y的第0、2、4、6等偶数位上1的个数,设为m;同样统计二进制正数的第1、3、5、7等奇数位上1的个数,设为n,其中m为余数为1的个数,n为余数为2的个数;S3:统计二进制正数m的第0、2、4等偶数位上1的个数,设为a;统计二进制正数m的第1、3、5等奇数位上1的个数,设为b,其中a为余数为1的个数,b为余数为2的个数;S4:统计二进制正数n的第0、2、4等偶数位上1的个数,设为c;统计二进制正数m的第1、3、5等奇数位上1的个数,设为d,其中c为余数为2的个数,d为余数为1的个数;S5:余数为1的个数为a与d的和,设为e;余数为2的个数为b与c的和,设为f,根据e和f的值可以确定余数,建立一个只读存储器ROM,只读存储器ROM根据e和f的值输出相对应的余数;S6:ROM输出的余数为2位二进制正数,如果输入数据x为正数,则直接将ROM输出的余数作为取模运算最终结果,如果输入数据x为负数,则将ROM输出的余数按位取反后作为取模运算最终结果。进一步地,所述步骤S1中,如果二进制有符号数x为正数,则直接将x的值赋给y,如果x为负数,则将二进制数x按位取反加1后赋给y。进一步地,所述步骤S2中,如果二进制正数y的第0、2、4、6等偶数位上为1,则每个相应位置代表数值为4N,其中N为0、1、2、3等整数,4N对模M=3取余为1,所以m为余数为1的个数;如果二进制正数y的第1、3、5、7等奇数位上为1,则每个相应位置代表数值为2*4N,其中N为0、1、2、3等整数,2*4N对模M=3取余为2,所以n为余数为2的个数。进一步地,步骤S3中,由于m为余数1的个数,所以a为余数为1的个数,b为余数为2的个数。进一步地,步骤S4中,由于n为余数2的个数,如果二进制数n的第0、2、4、6等偶数位上为1,则每个相应位置代表数值为2*4N,其中N为0、1、2、3等整数,2*4N对模M=3取余为2,所以c为余数为2的个数;由于n为余数2的个数,如果二进制数n的第1、3、5、7等奇数位上为1,则每个相应位置代表数值为4N+1,其中N为0、1、2、3等整数,4N+1对模M=3取余为1,d为余数为1的个数。进一步地,步骤S5中,余数为1的个数为e;余数为2的个数为f;根据e和f的值可以计算出对3取余运算的余数,不同的e和f的值对应不同的余数,这种对应关系相当于建立一个只读存储器ROM的组合逻辑功能的真值表。进一步地,步骤S6中,ROM输出的余数为2位二进制正数0、1、2,如果输入数据x为正数,则使用位拼接运算符把0和ROM输出的余数拼接起来变为一个最高位为0的有符号数,作为最终的结果输出;如果输入数据x为负数,则其余数一般也为负数,可以先将ROM输出的余数按位取反后再加1变为对应的负数,使用位拼接运算符把1和这个负数拼接起来变为一个最高位为1的有符号数,作为最终的结果,其中如果余数为0,则直接输出,不进行上述操作;由于基于余数校验的容错方案中会对三个支路产生的余数进行比较,而如果余数为负数,可将负数加上模数变为正数以方便余数间的比较;模为3,如果输入数据x为负数,则可以将ROM输出的余数按位取反,就可以得到负数加上模数变为正数的结果,其中如果余数为0,则直接输出,不进行上述操作,如果输入数据x为正数,则直接将ROM输出的余数作为结果。与现有技术相比,本专利技术技术方案的有益效果是:本专利技术方法中以模m=3为例,取模运算可以通过统计余数1与余数2的个数,然后根据余数1与余数2的个数查表确定余数,再根据输入数据的正负确定余数的最终结果,这种方法与直接使用%取模方法相比,大大降低了取模运算的开销。附图说明图1为本专利技术方法。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本专利技术的技术方案做进一步的说明。实施例1如图1所示,一种低开销取模方法,包括以下步骤:S1,如果输入二进制数x的最高位为1,将二进制数x按位取反再加1变为正数,把正数的值赋给y,如果二进制数x的最高位为0,则直接将其值赋给y;S2,求二进制数y的第0、2、4、6、8、10、12、14位上1的个数,设为m,如果二进制数y上述位置上数为1,则其代表的值对3取模得到的余数为1;求二进制数y的第1、3、5、7、9、11、13位上1的个数,设为n,如果二进制数y上述位置上数为1,则其代表的值对3取模得到的余数为2;另外,m的最大值为8,n的最大值为7;S3,求二进制数m的第0、2位上1的个数,设为a,由于m为S2步骤中余数1的个数,所以a为余数1的个数;求二进制数m的第1、3位上1的个数,设为b,由于m为S2步骤中余数1的个数,所以b为余数2的个数;S4,求二进制数n的第0、2位上1的个数,设为c,由于n为S2步骤中余数2的个数,所以c为余数2的个数;求二进制数n的第1位上1的个数,设为d,由于n为S2步骤中余数2的个数,所以d为余数1的个数;S5,分别求S3和S4步骤中余数为1和余数为2总的个数,求得a与d的和,设为e,e为余数为1个数的总和;求得b与c的和,设为f,f为余数为2个数的总和;根据e与f的值可以确定余数,例如,e与f均为1时,输出余数为0。这种关系相当于一个逻辑组合的真值表,使用只读存储器ROM将这个真值表的信息存储起来。根据e与f的值输出相应的余数,余数有位宽为2的二进制数0、1、2三种情本文档来自技高网...

【技术保护点】
1.一种低开销的取模方法,其特征在于,包括以下步骤:S1:如果二进制有符号数x为负数,则先将x变为二进制正数,然后赋给y;否则如果二进制有符号数x为正数,则直接将x的值赋给y;S2:统计二进制正数y的第0、2、4、6等偶数位上1的个数,设为m;同样统计二进制正数的第1、3、5、7等奇数位上1的个数,设为n,其中m为余数为1的个数,n为余数为2的个数;S3:统计二进制正数m的第0、2、4等偶数位上1的个数,设为a;统计二进制正数m的第1、3、5等奇数位上1的个数,设为b,其中a为余数为1的个数,b为余数为2的个数;S4:统计二进制正数n的第0、2、4等偶数位上1的个数,设为c;统计二进制正数m的第1、3、5等奇数位上1的个数,设为d,其中c为余数为2的个数,d为余数为1的个数;S5:余数为1的个数为a与d的和,设为e;余数为2的个数为b与c的和,设为f,根据e和f的值可以确定余数,建立一个只读存储器ROM,只读存储器ROM根据e和f的值输出相对应的余数;S6:ROM输出的余数为2位二进制正数,如果输入数据x为正数,则直接将ROM输出的余数作为取模运算最终结果,如果输入数据x为负数,则将ROM输出的余数按位取反后作为取模运算最终结果。...

【技术特征摘要】
1.一种低开销的取模方法,其特征在于,包括以下步骤:S1:如果二进制有符号数x为负数,则先将x变为二进制正数,然后赋给y;否则如果二进制有符号数x为正数,则直接将x的值赋给y;S2:统计二进制正数y的第0、2、4、6等偶数位上1的个数,设为m;同样统计二进制正数的第1、3、5、7等奇数位上1的个数,设为n,其中m为余数为1的个数,n为余数为2的个数;S3:统计二进制正数m的第0、2、4等偶数位上1的个数,设为a;统计二进制正数m的第1、3、5等奇数位上1的个数,设为b,其中a为余数为1的个数,b为余数为2的个数;S4:统计二进制正数n的第0、2、4等偶数位上1的个数,设为c;统计二进制正数m的第1、3、5等奇数位上1的个数,设为d,其中c为余数为2的个数,d为余数为1的个数;S5:余数为1的个数为a与d的和,设为e;余数为2的个数为b与c的和,设为f,根据e和f的值可以确定余数,建立一个只读存储器ROM,只读存储器ROM根据e和f的值输出相对应的余数;S6:ROM输出的余数为2位二进制正数,如果输入数据x为正数,则直接将ROM输出的余数作为取模运算最终结果,如果输入数据x为负数,则将ROM输出的余数按位取反后作为取模运算最终结果。2.根据权利要求1所述的低开销的取模方法,其特征在于,所述步骤S1中,如果二进制有符号数x为正数,则直接将x的值赋给y,如果x为负数,则将二进制数x按位取反加1后赋给y。3.根据权利要求2所述的低开销的取模方法,其特征在于,所述步骤S2中,如果二进制正数y的第0、2、4、6等偶数位上为1,则每个相应位置代表数值为4N,其中N为0、1、2、3等整数,4N对模M=3取余为1,所以m为余数为1的个数;如果二进制正数y的第1、3、5、7等奇数位上为1,则每个相应位置代表数值为2*4N,其中N为0、1、2、3等整数,2*4N对模M=3取余为2,所以n为余数为2的...

【专利技术属性】
技术研发人员:王健李浩刘静陈翔陆许明
申请(专利权)人:中山大学花都产业科技研究院中山大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1