序列的循环移位装置及方法、存储介质与流程

专利2022-06-29  63


本发明涉及数字电路
技术领域
,具体地涉及一种序列的循环移位装置及方法、存储介质。
背景技术
:当前,主流的序列循环移位运算的实现方法包括准循环低密度校验码移位网络(quasicyclicldpcshiftnetwork,简称qsn)网络、banyan网络、benes网络。当循环序列长度较小时,三种网络都可以很好的实现。但是,由于三种循环移位网络的实现复杂度与输入位宽的平方成正比,当输入序列长度较大时,网络的实现复杂度变得不可接受。而在实际的数字信号算法中,处理大尺度的序列循环移位操作非常常见,因而难以直接采用以上三种网络实现序列长度很长的循环移位运算。然而,在实际的数字信号处理算法中,往往需要对各种不同长度的序列进行循环移位操作。因而,设计可配置、多尺度兼容的循环移位网络是亟待解决的关键问题之一。技术实现要素:本发明解决的技术问题是如何支持较长序列的移位运算的同时,还能够降低循环移位装置复杂度。为解决上述技术问题,本发明实施例提供一种序列的循环移位装置,包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。可选的,每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。可选的,所述循环移位装置还包括:第一控制模块,适于控制所述第一组循环移位寄存器中的c个第一循环移位器各自移位m位,并控制所述第二组循环移位寄存器中的第i个第二循环移位器移位si位,其中,m=(v f)modd,m、f、si为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。可选的,所述循环移位装置还包括:第二控制模块,适于控制所述第一组循环移位寄存器中的第i个第一循环移位器移位si位,并控制所述第二组循环移位寄存器中的d个第二循环移位器各自移位m位;其中,m=(v f)modd,si、f、m为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。可选的,所述第一组循环移位寄存器中的多个第一循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。可选的,所述第二组循环移位寄存器中的多个第二循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。为解决上述技术问题,本发明实施例还提供一种序列的循环移位方法,包括:对长度为x的序列移位v时,对于第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器分别对输入的序列进行移位,移位的位数是根据x、v和c确定的,其中,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排,以得到输出序列。可选的,每一第二循环移位器包括j个输出端,所述对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排包括:将每一第二循环移位器的输出端的输出数据划分为j个组,其中第i个组依次排列每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。可选的,所述序列是按照如下方式分拆得到子序列的:当c=x/d时,将所述序列分拆为c个子序列,每个子序列的长度为d;当c>x/d时,在所述序列的末尾补充f个预设元素,将长度为(x f)的序列分拆为c个子序列,每个子序列的长度为d;其中,f为正整数,且f=c·d-x。可选的,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器进行移位:对所述第一组循环移位寄存器中的c个第一循环移位器各自循环右移m位;按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:对所述第二组循环移位寄存器中的第i个第二循环移位器循环右移si位,其中,m=(v f)modd,m、si为非负整数。可选的,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器移位:对所述第一组循环移位寄存器中的第i个第一循环移位器循环右移si位;按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:对所述第二组循环移位寄存器中的d个第二循环移位器各自循环右移m位,其中,m=(v f)modd,si、m为非负整数,可选的,所述第一组循环移位寄存器中的多个第一循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。可选的,所述第二组循环移位寄存器中的多个第二循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。为解决上述技术问题,本发明实施例还提供一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行上述方法的步骤。与现有技术相比,本发明实施例的技术方案具有以下有益效果:本发明实施例提供一种序列的循环移位装置,包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。通过本发明实施例提供的循环移位装置,可以在将序列分拆为多个子序列后,分别采用第一组循环移位寄存器和第二组循环移位寄存器中的各个循环移位器对各个子序列进行移位。由于每个子序列的长度远小于所述序列的长度,在利用第一循环移位器和/或第二循环移位器进行移位操作时可以极大的降低循环移位网络实现所需要的硬件资源(例如,存储装置)开销。进一步,由于第一组循环移位寄存器和第二组循环移位寄存器分别包含多个循环移位器,在进行序列的循环移位操作时,可以根据序列分拆的子序列长度和外部输入值(例如,c)确定进行循环移位操作采用的第一循环移位器和第二循环移位器的数量,因而可以实现灵活配置不同尺度的输入序列的循环移位操作,同时可以兼容多种不同长度序列的循环移位操作。进一步,每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。通过本发明实施例提供的技术方案,可以通过所述顺序重排模块得到移位后的序列,进而得到完整的复杂度低的循环移位装置,以实现大尺度序列的循环移位运算。附图说明图1是现有技术中的qsn网络的结构示意图;图2是现有技术中的banyan网络的结构示意图;图3是现有技术中的benes网络的结构示意图;图4是现有技术中序列的循环移位示意图;图5是单位阵循环右移2位的移位示意图;图6是本发明实施例的一种序列的循环移位装置的结构示意图;图7是本发明实施例的一种序列的循环移位方法的流程示意图;图8是本发明实施例的一种基于矩阵实现序列移位的移位示意图;图9是本发明实施例的又一种基于矩阵实现序列移位的移位示意图;图10是本发明实施例的再一种基于矩阵实现序列移位的移位示意图。具体实施方式如
背景技术
所言,现有qsn网络、banyan网络和benes网络难以支持序列较长的移位运算。其中,图1是现有技术中qsn网络的结构示意图,参考图1,qsn网络包含(log2(pm) 1)级和每比特宽度包含(pm·(2·log2(pm)-1) 1)个“2-1多路复用器(mux)”,可以支持任意输入宽度、任意移位尺度的序列移位。图2是banyan网络的结构示意图,参考图2,其开关网络包含(log2(pm))级和每比特宽度pm·log2(pm)个“2-1mux”,可以支持一种输入宽度、任意移位尺度的序列移位。图3是benes网络的结构示意图。参考图3,benes网络包含(2·log2(pm)-1)级和每比特宽度(pm·(2·log2(pm)-1))个“2-1mux”,可以支持任意输入宽度、任意移位尺度的序列移位。可见,qsn网络和benes网络能够支持更灵活的移位操作,同时也有更高的实现复杂度,banyan网络灵活度较差,但是实现复杂度相比于qsn网络和benes网络降低一半。三种网络的复杂度都为o(n2)。图4是现有技术中序列的循环移位示意图。如图4所示,以输入序列为0、1、2、……、11为例,循环右移3位,循环移位结果即为9、10、11、0、1、……、8。当被移位的输入序列的长度较小时,以上三种网络都可以很好的完成移位操作。但是以上三种循环移位网络的实现复杂度与所述输入序列的长度平方成正比,当输入序列长度较大时,网络的实现复杂度将变得不可接受。而在实际的数字信号算法中,处理大尺度的输入序列循环移位操作非常常见,所以不能直接采用以上三种网络实现很大长度的循环移位运算。另外,如前所述,在实际的数字信号处理算法中,往往需要对各种不同长度的序列进行循环移位操作,因而需要设计可配置的、多尺度兼容的循环移位网络。图5是单位阵循环右移2位的移位示意图。如图5所示,矩阵的循环移位运算可以通过对该矩阵的列向量多次循环移位(例如2次)操作来实现。本领域技术人员理解,序列的循环移位运算大量存在于各种包含矩阵处理的算法当中,但是在实际使用的数字信号算法中,需要进行循环移位的矩阵的尺寸往往是不同的,既包含有小尺度的循环移位矩阵,也包含有大尺度的循环移位矩阵。例如,5g新无线(newradio,简称nr,又称新空口)标准中采用的物理层下行共享信道的信道编码方案低密度奇偶校验码(lowdensityparitycheck,简称ldpc)的校验矩阵的结构中就包括n·(2k)种不同尺度的循环移位矩阵的组合,如表1所示,n={2,3,5,7,9,11,13,15},k={0,1,3,4,5,6,7},z表示移位尺度集合(setofliftingsizesz)。表1索引移位尺度集合z1{2,4,8,16,32,64,128,256}2{3,6,12,24,48,96,192,384}3{5,10,20,40,80,160,320}4{7,14,28,56,112,224}5{9,18,36,72,144,288}6{11,22,44,88,176,352}7{13,26,52,104,208}8{15,30,60,120,240}从现有移位网络的缺点以及矩阵的行向量和/或列向量可以进行移位的角度出发,本发明实施例提出一种低复杂度、可重配、多尺度的循环移位网络(或称循环移位装置),包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。通过本发明实施例提供的循环移位装置,可以在将序列分拆为多个子序列后,分别采用第一组循环移位寄存器和第二组循环移位寄存器中的各个循环移位器对各个子序列进行移位。由于每个子序列的长度远小于所述序列的长度,在利用第一循环移位器和/或第二循环移位器进行移位操作时可以极大的降低循环移位网络实现所需要的硬件资源(例如,存储装置)开销。进一步,由于第一组循环移位寄存器和第二组循环移位寄存器分别包含多个循环移位器,在进行序列的循环移位操作时,可以根据序列分拆的子序列长度和外部输入值(例如,c)确定进行循环移位操作采用的第一循环移位器和第二循环移位器的数量,因而可以实现灵活配置不同尺度的输入序列的循环移位操作,同时可以兼容多种不同长度序列的循环移位操作。为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。图6是本发明实施例的一种序列的循环移位装置的结构示意图。所述循环移位装置6可以包括:第一组循环移位寄存器61、第二组循环移位寄存器62和顺序重排模块63。具体而言,所述第一组循环移位寄存器61可以包括多个第一循环移位器611;所述第二组循环移位寄存器62可以包括多个第二循环移位器621。所述第一组循环移位寄存器61连接所述第二组循环移位寄存器62。在具体实施中,第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器的第k个输入端621,k为正整数。也即,所述第一组循环移位寄存器61中的第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的第一个输入端,所述第一组循环移位寄存器61中的第二个第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的第二个输入端,直至所述第一组循环移位寄存器61中的最后一个第一循环移位器611的各个输出端依次连接所述第二组循环移位寄存器62中的每一第二循环移位器621的最后一个输入端。在具体实施中,所述第一循环移位器611可以为qsn网络模块、banyan网络模块、benes网络模块中的任意一种。所述第二循环移位器621可以为qsn网络模块、banyan网络模块、benes网络模块中的任意一种。在具体实施中,各个第一循环移位器611的结构是完全相同的,且彼此互不连接。各个第二循环移位器621的结构是完全相同的,且彼此可以互不连接。在具体实施中,所述顺序重排模块63适于接收所述第二组循环移位寄存器62中各个第二循环移位器621的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列。本领域技术人员理解,所述顺序重排模块63可以通过电路布线实现对各个第二循环移位器621的输出端的输出数据的重排。其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器61中的c个第一循环移位器,各个第一循环移位器611分别接收所述序列拆分得到的子序列,并进行移位,移位的位数可以是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,对于所述第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621移位的位数可以是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。本领域技术人员理解,在实际应用中,外部输入也可以是d,此时c的值可以根据公式确定。此外,输入至所述循环移位装置6的数据为二进制数据。为方便阐述,本发明实施例采用十进制数据进行说明。如无特别说明,每个十进制数据对应1比特数据。在具体实施中,所述第一组循环移位寄存器61中的每一第一循环移位器611的输出端总数可以等于所述第二组循环移位寄存器62中的每一第二循环移位器621的输入端总数。所述第一组循环移位寄存器61中的多个第一循环移位器611的结构可以相同,且每一第一循环移位器611的输入端总数大于或等于d,且其输出端总数大于或等于c。所述第二组循环移位寄存器62中的多个第二循环移位器621的结构可以相同,且每一第二循环移位器621的输入端总数大于或等于c,且其输出端总数大于或等于d。作为一个非限制性的例子,继续参考图6,所述第一循环移位器611为qsn网络模块,所述第二循环移位器621为banyan网络模块。假设所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,且c=3,d=4,v=3。在具体实施中,d可以表示矩阵的行数,又可以表示第一组循环移位寄存器61中的第一循环移位器611的数量,c可以表示矩阵的列数,又可以表示所述第二组循环移位寄存器62中的第二循环移位器621的数量。具体而言,可以采用3个第一循环移位器611,分别对应矩阵的3列列向量,各个第一循环移位器的输入位宽是矩阵的列向量中的元素的个数d确定的,也即各个第二循环移位器621的输入位宽为d=4;且采用所述第二组循环移位寄存器62中的4个第二循环移位器621,分别对应到矩阵的4行行向量,各个第二循环移位器621的输入位宽可以是矩阵的行向量中的元素个数确定的,也即各个第二循环移位器621的输入位宽为c=3。在此条件下,各个第一循环移位器611可以用来执行矩阵的列向量的循环上移操作,且各个第二循环移位器621可以用来执行矩阵的行向量的循环移位操作。或者,各个第一循环移位器611可以用来执行矩阵的行向量的循环上移操作,且第二循环移位器621可以用来执行矩阵的列向量的循环移位操作。当待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,且c=3,d=4,v=3时,可以按序列中的元素顺序转换为4×3的矩阵,即4行3列的矩阵。之后,可以在所述第一组循环移位寄存器61中从左至右选取3个第一循环移位器61作为列循环移位器,每个循环移位器上从左至右的4位为输入位;在第二组循环移位寄存器62中从左至右选取4个第二循环移位器621作为行循环移位器;输出的序列的位宽与第一组循环移位寄存器61相同。之后,可以利用重排模块63对各个第二循环移位器621的输出序列进行重排,经所述循环移位装置6移位后,可以得到移位后的序列为“9,10,11,0,1,2,3,4,5,6,7,8,9”。本领域技术人员理解,本发明实施例提供的移位装置6可以实现长度范围为[1:nmax]的序列的循环移位。具体地,可以设置矩阵行数rmax,根据nmax计算出矩阵列数cmax,得到大小为rmax×cmax的母矩阵,之后在[1:step1:rmax]×[1:step2:cmax]中选择k个值作为量化值集合,其中,step1、step2表示步长,为正整数。这里的k是从上述两个集合中的元素相乘得到的序列总个数中选取的,因为编码只能基于一些特定长度实现,而所述特定长度是两个序列相乘得到的数值。对于给定的长度为x的序列在量化值集合中选取不小于x的k值作为量化值,如果k>x,则在序列后面补充(k-x)个预设元素,选取k值对应的ck和rk作为子矩阵的尺度,并基于ck和rk选取所述移位装置6中第一组循环移位寄存器61中的ck个第一循环移位器611,第二组循环移位寄存器62中的rk个第二循环移位器621,以完成序列移位。仍以图6为例,每一qsn模块的最大输入位宽可以是rmax,qsn模块的最大数量为cmax时,可以对长度为(rmax×cmax)的序列进行移位,相应地,为完成序列移位,banyan模块的有效输入位数可以为cmax,banyan模块的数量可以为rmax。在实际应用中,序列长度小于(rmax×cmax)的序列均可以通过本发明实施例提供的移位装置进行循环移位。图7是本发明实施例的一种序列的循环移位方法的流程示意图,所述循环移位方法可以基于图6所示的循环移位装置6完成移位运算。具体而言,所述循环移位方法可以包括以下步骤:步骤s701,对长度为x的序列移位v时,对于第一组循环移位寄存器61中的c个第一循环移位器611,各个第一循环移位器611分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,步骤s702,对于第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621分别对输入的序列进行移位,移位的位数是根据x、v和c确定的,其中,第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器621的第k个输入端,k为正整数;步骤s703,对所述第二组循环移位寄存器中各个第二循环移位器621的输出端的输出数据的次序进行重排,以得到输出序列。总体而言,对序列进行循环移位,可以先将该序列转换为矩阵,之后通过对矩阵的行向量、列向量进行循环移位实现对所述序列的循环移位,从而将大尺度的序列的循环移位分解为多个小尺度序列的多次小的循环移位,有效降低移位复杂度。在具体实施中,可以将待移位的序列转换为矩阵,并将矩阵的行向量和列向量分别输入至所述循环移位装置中分别进行移位。具体地,可以首先通过所述第一组循环移位寄存器61对输入的矩阵的行向量进行移位,且通过所述第二组循环移位寄存器62对输入的矩阵的列向量进行移位。反之,可以首先通过所述第一组循环移位寄存器61对输入的矩阵的列向量进行移位,且通过所述第二组循环移位寄存器62对输入的矩阵的行向量进行移位。也即,可以首先实现对矩阵的列向量移位后再进行矩阵的行向量的移位;或者,可以首先实现对矩阵的行向量移位后再进行矩阵的列向量的移位,以实现序列循环移位的目的。基于上述移位原理,在步骤s701中,对序列长度为x的序列移位v位时,可以将所述序列输入至循环移位装置6,并将输入至所述循环移位装置6中的第一组循环移位寄存器61中的各个第一循环移位器611的序列类比为矩阵的列向量,将所述循环移位装置6中的第二组循环移位寄存器61中的各个第二循环移位器621的输入序列类比为矩阵的行向量,以使所述循环移位装置6可以对输入的序列分别进行行向量移位操作和列向量移位操作。具体而言,所述循环移位装置6可以包括第一组循环移位寄存器61、第二组循环移位寄存器62。所述第一组循环移位寄存器61可以包括多个第一循环移位器611;所述第二组循环移位寄存器62可以包括多个第二循环移位器621。且第k个第一循环移位器611的各个输出端依次连接至各个第二循环移位器621的第k个输入端,k为正整数,之后可以对所述第二组循环移位寄存器62中各个第二循环移位器621的输出端接收数据并重排接收到的数据,以得到输出序列。在具体实施中,采用所述循环移位装置6对所述序列进行移位时,可以对所述序列进行拆分,得到子序列。具体而言,对所述序列进行拆分时,需要根据外部输入确定拆分的数量。当外部输入的拆分的数量为c时,每个子序列的长度d可以根据公式得到,并得到各个子序列包含的元素信息。例如,假设长度为8的序列为“0,1,2,3,4,5,6,7”,c=2,那么d=4,子序列分别为“0,1,2,3”;“4,5,6,7”。本领域技术人员理解,可以将每个子序列的长度d作为外部输入,在确定c、d的值之后,可以得知在进行序列移位时,将利用所述第一组循环移位寄存器61中的c个第一循环移位器611,每一第一循环移位器611中的d个输入端。相应地,可以得知还将利用所述第二组循环移位寄存器62中的d个第二循环移位器621,以及每个第二循环移位器621中的c个输入端接入各个第一循环移位器611输出的子序列。在具体实施中,如果x>c·d,那么可以在所述序列的末尾补充f个预设元素,将长度为(x f)的序列分拆为c个子序列,使得每个子序列的长度为d;其中,f为正整数,且f=c·d-x。如果c=x/d,则可以直接将所述序列分拆为c个子序列,每个子序列的长度为d。在确定每个子序列之后,可以按照子序列在所述序列中的位置先后顺序分别依次输入至各个第一循环移位器611中。在具体实施中,通过所述第一组循环移位寄存器61中的c个第一循环移位器61对各个输出的子序列进行移位后可以得到该第一组循环移位寄存器61的输出。其中,每个第一循环移位器611的移位位数是根据x,v和c确定的。具体而言,可以对所述第一组循环移位寄存器61中的c个第一循环移位器611各自循环右移m位,m=(v f)modd。或者,可以对所述第一组循环移位寄存器61中的第i个第一循环移位器611循环右移si位,其中,进一步,所述输出得到的子序列可以根据所述第一循环移位器611与第二循环移位器621的连接关系输入至各个第二循环移位器621。在步骤s702中,对于第二组循环移位寄存器62中的d个第二循环移位器621,每个第二循环移位器621可以分别对从各个第一循环移位器611接收到的输入的序列进行循环移位。同理,移位的位数也是根据x、v和c确定的。在具体实施中,如果对所述第一组循环移位寄存器61中的c个第一循环移位器611各自循环右移m位,那么可以对所述第二组循环移位寄存器62中的第i个第二循环移位器621循环右移si位,其中,m=(v f)modd,m、si为非负整数,作为一个变化实施例,如果所述第一组循环移位寄存器61中的第i个第一循环移位器611循环右移si位,那么可以对所述第二组循环移位寄存器62中的d个第二循环移位器621各自循环右移m位,其中,m=(v f)modd,si、m为非负整数,在步骤s703中,由于所述第一循环移位器611可以为qsn网络模块、banyan网络模块或benes网络模块,所述第二循环移位器621同样可以为qsn网络模块、banyan网络模块或benes网络模块,因而在各个第二循环移位器621得到输出的序列之后,还需要对所述输出的序列进行重排。具体而言,可以按照所述第二组循环移位寄存器62中的第二循环移位器621的输出端的排布顺序将每一第二循环移位器621输入的序列划分为j个组,其中第i个组依次输出每一第二循环移位器621的第i个输出端的输出比特,j为正整数,i为从1到j的正整数,也即,可以依次排列每一第二循环移位器621的第一个输出端的输出比特、每一第二循环移位器621的第二个输出端的输出比特,直至每一第二循环移位器621的最后一个输出端的输出比特。图8是本发明实施例的一种基于矩阵实现序列移位的移位原理示意图。参考图8,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11”,序列长度x=12,假设c=3,d=4,v=3。在具体实施中,首先确定4×3矩阵的各个行向量和列向量。由图8可知,可以按照序列从左至右、从下至上的顺序将所述长度为12的序列按顺序放入大小为4×3的矩阵matrix0中。之后,可以对矩阵matrix0进行行、列移位。具体实施中,可以对矩阵matrix0的每一列向量移位m位,根据公式m=(v f)modd,其中mod表示求余运算,f=c·d-x=0,因而得到m=3;根据公式可以得知s0=s1=s2=1,s3=0。此时,可以对所述矩阵matrix0由左到右的第一列、第二列、第三列分别向上循环移位3位,得到矩阵matrix1,接着对该矩阵由下到上的每行数据循环右移si位,也即,由下至上,第一行循环右移s0=1位,第二行循环右移s1=1位,第三行循环右移s2=1位,第四行循环右移s3=0位,得到矩阵matrix2,之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度12的序列进行循环右移3位后的输出序列。其中,本领域技术人员理解,图8给出的是先对矩阵的行向量进行移位,之后进行列向量的移位以得到输出序列的。在实际应用中,还可以先对矩阵进行列移位,再进行行移位得到输出序列,也即先对矩阵matrix0的每列向量循环上移si位,再对移位后得到的矩阵的行向量循环右移m位,以得到所述输出序列,这里不再举例赘述。图9是本发明实施例的又一种基于矩阵实现序列移位的移位原理示意图。参考图9,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11,12”,序列长度x=13,c=4,d=4,v=3。由于c·d-x>0,因而在将所述序列置入矩阵之前,还需在所述序列的末尾补充f个预设元素得到新序列,其中,f为正整数,且f=c·d-x=3。假设所述预设元素分别为1*、2*、3*。所述新序列即为“0,1,2,3,4,5,6,7,8,9,10,11,12,1*,2*,3*”,长度x’=16。在具体实施中,首先根据所述新序列确定4×4矩阵的各个行向量和列向量。由图9可知,可以按照序列从左至右、从下至上的顺序将所述长度为16的新序列按顺序放入大小为4×4的矩阵matrix0中。之后,可以对矩阵matrix0进行行、列移位。具体实施中,可以根据公式m=(v f)modd,其中f=3,mod表示求余运算,因而得到m=2;根据公式可以得知s0=s1=2,s2=s3=1。此时,可以对所述矩阵matrix0由左到右的第一列、第二列、第三列分别向上循环移位2位,得到矩阵matrix1,接着对矩阵matrix1由下到上的每行向量循环右移si位。也即,由下至上,第一行循环右移2位,第二行循环右移2位,第三行循环右移1位,第四行循环右移1位,得到矩阵matrix2;其中,之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度16的序列进行循环右移3位后的输出序列,即“10,11,12,1*,2*,3*,0,1,2,3,4,5,6,7,8,9”。本领域技术人员理解,在完成对长度为x’=16的序列的移位之后,还需要剔除添加的预设元素。通常预设元素可以为空(null)。图10是本发明实施例的再一种基于矩阵实现序列移位的移位原理示意图。参考图10,所述待移位的序列为:“0,1,2,3,4,5,6,7,8,9,10,11,12”,序列长度x=13,c=4,d=4,v=3。由于c·d-x>0,因而在将所述序列置入矩阵之前,还需在所述序列的末尾补充f个预设元素得到新序列,其中,f为正整数,且f=c·d-x=3。假设所述预设元素分别为1*、2*、3*。所述新序列即为“0,1,2,3,4,5,6,7,8,9,10,11,12,1*,2*,3*”,长度x’=16。在具体实施中,首先根据所述新序列确定4×4矩阵的各个行向量和列向量。由图10可知,可以按照序列从左至右、从下至上的顺序将所述长度为16的新序列按顺序放入大小为4×4的矩阵matrix0中。之后,可以对矩阵matrix0进行行、列移位。具体实施中,可以根据公式m=(v f)modd,其中f=3,mod表示求余运算,因而得到m=2;根据公式可以得知s0=s1=2,s2=s3=1。此时,可以对所述矩阵matrix0由下至上,第一行循环右移2位,第二行循环右移2位,第三行循环右移1位,第四行循环右移1位,得到矩阵matrix1,之后对矩阵matrix1由左到右的第一列、第二列、第三列分别向上循环移位2位,得到矩阵matrix2,之后,可以将矩阵中的各个元素按照顺序取出,得到的序列即为对输入的长度16的序列进行循环右移3位后的输出序列,即“10,11,12,1*,2*,3*,0,1,2,3,4,5,6,7,8,9”。其中,本领域技术人员理解,在完成对长度为x’=16的序列的移位之后,还需要剔除添加的预设元素。通常预设元素可以为空(null)。由上,通过本发明实施例提供的技术方案,可以对各种不同长度的序列进行循环移位操作,且本发明实施例提供的循环移位装置具备可配置、兼容多尺度循环移位等优点。进一步地,本发明实施例还公开一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述图7至图10所示实施例中所述方法技术方案。优选地,所述存储介质可以包括计算机可读存储介质。所述存储介质可以包括rom、ram、磁盘或光盘等。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。当前第1页1 2 3 
技术特征:

1.一种序列的循环移位装置,其特征在于,包括:

第一组循环移位寄存器,包括多个第一循环移位器;

第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;

顺序重排模块,适于接收所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据,对各个输出端的输出数据的次序进行重排,以得到输出序列;

其中,对长度为x的序列移位v时,对于所述第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,

对于所述第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器移位的位数是根据x、v和c确定的,其中,v、x、c、d均为正整数,x≤c·d,表示上取整。

2.根据权利要求1所述的序列的循环移位装置,其特征在于,

每一第二循环移位器包括j个输出端,所述顺序重排模块的各个输入端依次获取每一第二循环移位器的输出端的输出数据,且所述顺序重排模块的各个输出端划分为j个组,其中第i个组依次输出每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。

3.根据权利要求1所述的序列的循环移位装置,其特征在于,还包括:

第一控制模块,适于控制所述第一组循环移位寄存器中的c个第一循环移位器各自移位m位,并控制所述第二组循环移位寄存器中的第i个第二循环移位器移位si位,其中,m=(v f)modd,m、f、si为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。

4.根据权利要求1所述的序列的循环移位装置,其特征在于,还包括:

第二控制模块,适于控制所述第一组循环移位寄存器中的第i个第一循环移位器移位si位,并控制所述第二组循环移位寄存器中的d个第二循环移位器各自移位m位;其中,m=(v f)modd,si、f、m为非负整数,f为当c>x/d时,在第c个子序列的末尾补充的预设元素的数量,f=c·d-x。

5.根据权利要求1至4任一项所述的序列的循环移位装置,其特征在于,所述第一组循环移位寄存器中的多个第一循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。

6.根据权利要求1至4任一项所述的序列的循环移位装置,其特征在于,所述第二组循环移位寄存器中的多个第二循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。

7.一种序列的循环移位方法,其特征在于,包括:

对长度为x的序列移位v时,对于第一组循环移位寄存器中的c个第一循环移位器,各个第一循环移位器分别接收所述序列拆分得到的子序列,并进行移位,移位的位数是根据x、v和c确定的,c是外部输入的,所述子序列的长度为d,

对于第二组循环移位寄存器中的d个第二循环移位器,每个第二循环移位器分别对输入的序列进行移位,移位的位数是根据x、v和c确定的,其中,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;

对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排,以得到输出序列。

8.根据权利要求7所述的序列的循环移位方法,其特征在于,每一第二循环移位器包括j个输出端,所述对所述第二组循环移位寄存器中各个第二循环移位器的输出端的输出数据的次序进行重排包括:

将每一第二循环移位器的输出端的输出数据划分为j个组,其中第i个组依次排列每一第二循环移位器的第i个输出端的输出比特,j为正整数,i为从1到j的正整数。

9.根据权利要求7所述的序列的循环移位方法,其特征在于,所述序列是按照如下方式分拆得到子序列的:

当c=x/d时,将所述序列分拆为c个子序列,每个子序列的长度为d;

当c>x/d时,在所述序列的末尾补充f个预设元素,将长度为(x f)的序列分拆为c个子序列,每个子序列的长度为d;其中,f为正整数,且f=c·d-x。

10.根据权利要求9所述的序列的循环移位方法,其特征在于,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器进行移位:

对所述第一组循环移位寄存器中的c个第一循环移位器各自循环右移m位;

按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:

对所述第二组循环移位寄存器中的第i个第二循环移位器循环右移si位,其中,m=(v f)modd,m、si为非负整数。

11.根据权利要求9所述的序列的循环移位方法,其特征在于,按照如下方式对所述第一组循环移位寄存器中的c个第一循环移位器移位:

对所述第一组循环移位寄存器中的第i个第一循环移位器循环右移si位;

按照如下方式对输入至所述第二组循环移位寄存器中的d个第二循环移位器的序列进行移位:

对所述第二组循环移位寄存器中的d个第二循环移位器各自循环右移m位,其中,m=(v f)modd,si、m为非负整数。

12.根据权利要求7至11任一项所述的序列的循环移位方法,其特征在于,所述第一组循环移位寄存器中的多个第一循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。

13.根据权利要求7至11任一项所述的序列的循环移位方法,其特征在于,所述第二组循环移位寄存器中的多个第二循环移位器选自:qsn网络模块、banyan网络模块、benes网络模块。

14.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求7至13中任一项所述的方法的步骤。

技术总结
一种序列的循环移位装置及方法、存储介质,装置包括:第一组循环移位寄存器,包括多个第一循环移位器;第二组循环移位寄存器,包括多个第二循环移位器,第k个第一循环移位器的各个输出端依次连接至各个第二循环移位器的第k个输入端,k为正整数;顺序重排模块,适于接收各个第二循环移位器的输出端的输出数据,对输出数据的次序进行重排,得到输出序列;对长度为x的序列移位v时,c个第一循环移位器接收序列拆分得到的子序列并移位,移位的位数是根据x、v和c确定的,c是外部输入的,子序列的长度d个第二循环移位器移位的位数是根据x、v和c确定的,v、x、c、d为正整数,x≤c·d。本发明的方案可以降低移位复杂度。

技术研发人员:燕威;谢静;徐志昆
受保护的技术使用者:展讯半导体(南京)有限公司
技术研发日:2018.11.30
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21908.html

最新回复(0)