发明内容
本发明实施例提供一种数据处理装置及方法,能够实现使用较少的交换资源来进行任意循环移位周期的循环移位。
为达到上述目的,本发明实施例采用如下技术方案:
本发明实施例的第一方面,提供一种数据处理装置,包括:控制单元、第一处理单元和第二处理单元,其中,控制单元的输出端与第一处理单元连接,第一处理单元与第二处理单元连接,第一处理单元包括第一移位电路层至第log2 P移位电路层,每层移位电路层包括1.5*P个选择器,P为数据处理装置的最大循环移位周期,P为大于等于2的N次方的整数,N为大于等于1的整数,第二处理单元包括第log2 P+1移位电路层,该第log2 P+1移位电路层包括P个选择器,第一处理单元和第二处理单元包括的选择器都为二选一选择器;控制单元的输入端用于接收Z个输入数据、循环移位位数S和控制信号,控制信号用于指示对第一个输入数据至第Z-S个输入数据执行S位的循环移位,并对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,Z为大于等于2且小于等于P的整数,S为大于等于1且小于等于Z-1的整数;控制单元用于根据控制信号使能第一处理单元和第二处理单元;第一处理单元用于对第一个输入数据至第Z-S个输入数据执行S位的循环移位,得到第一循环移位数据,并将第一循环移位数据传输至第二处理单元,第一循环移位数据为经过S位的循环移位后的第一个输入数据至第Z-S个输入数据;第一处理单元还用于对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,得到第二循环移位数据,并将第二循环移位数据传输至第二处理单元,第二循环移位数据为经过S+P-Z位的循环移位后的第Z-S+1个输入数据至第Z个输入数据;第二处理单元用于接收第一处理单元传输的第一循环移位数据和第二循环移位数据,并输出第一循环移位数据和第二循环移位数据。
本发明实施例提供的数据处理装置,通过扩展基本的Barrel Shifter网络,使得可以实现任意循环移位周期的循环移位,即可以小于等于最大循环移位周期的任意个数输入数据的循环移位,从而,使得数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,进一步避免在输入数据小于最大循环移位周期的情况下,循环移位过程中发生数据覆盖问题。
为了使数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,结合第一方面,在一种可能的实现方式中,第一移位电路层包括的1.5*P个选择器与控制单元连接,并且第一移位电路层包括的第
个选择器至第1.5*P个选择器与控制单元连接,第i移位电路层包括的第j个选择器与第i-1移位电路层包括的第j个选择器连接,并且相对第i-1移位电路层包括的第j个选择器按照预设方向与第i-1移位电路层包括的第j个选择器循环间隔为
的选择器连接,第i移位电路层为第一处理单元包括的第二移位电路层至第log
2 P移位电路层中的任一层,j为大于等于1且小于等于1.5*P的整数,i为大于等于2且小于等于log
2 P的整数。
需要说明的是,循环间隔为当第i移位电路层包括的第j个选择器按照预设方向相对第i-1移位电路层包括的第j个选择器与第i-1移位电路层包括的第j个选择器间隔为
的选择器连接时,与第i-1移位电路层包括的第j个选择器间隔为
的选择器已经移出第i-1移位电路层时,再从第i-1移位电路层的预设方向的第一个选择器开始选择选择器。预设方向为从左至右或从右至左。例如,当第二移位电路层包括的第1个选择器按照从右至左的方向相对第一移位电路层包括的第1个选择器与第一移位电路层包括的第1个选择器间隔为
的选择器连接时,由于与第一移位电路层包括的第1个选择器间隔为
的选择器已经移出,即第一移位电路层第一移位电路层包括的第1个选择器再往后就没有选择器了,那么再从第一移位电路层的从右至左的方向的第一个选择器,即右边的第一个选择器开始选择选择器,即选择第一移位电路层的第1.5*P-1个选择器。当第二移位电路层包括的第2个选择器按照从右至左的方向相对第一移位电路层包括的第2个选择器与第一移位电路层包括的第2个选择器间隔为
的选择器连接时,由于与第一移位电路层包括的第2个选择器间隔为
的选择器已经移出,即第一移位电路层第一移位电路层包括的第2个选择器间隔一个选择器再往后就没有选择器了,那么再从第一移位电路层的从右至左的方向的第一个选择器,即右边的第一个选择器开始选择选择器,即选择第一移位电路层的第1.5*P个选择器。
为了使数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,结合上述可能的实现方式,在另一种可能的实现方式中,控制单元,还用于获取S的二进制数,S的二进制数的位数从左至右依次对应第一移位电路层至第log
2 P移位电路层;控制单元,具体用于利用S的二进制数根据控制信号使能第一处理单元的每层移位电路层;当对应第n移位电路层的S的二进制数的位数为1时,第n移位电路层用于根据控制信号对输入该第n移位电路层的输入数据执行
的循环移位,n为大于等于1且小于等于log
2 P的整数,第n移位电路层为第一处理单元包括的log
2 P层移位电路层中的任一层移位电路层;当对应第n移位电路层的S的二进制数的位数为0时,第n移位电路层用于根据控制信号直接输出输入该第n移位电路层的输入数据。
为了使数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,结合上述可能的实现方式,在另一种可能的实现方式中,第log2 P+1移位电路层包括的第一个选择器至第P个选择器依次与第log2 P移位电路层包括的第一个选择器至第P个选择器连接,并且第log2 P+1移位电路层包括的第m个选择器相对第log2 P移位电路层包括的第m个选择器与第log2 P移位电路层包括的第m个选择器循环间隔为P的选择器连接,m为大于等于1小于等于P的整数。
本发明实施例的第二方面,提供一种数据处理方法,应用于数据处理装置,数据处理装置包括控制单元、第一处理单元和第二处理单元,其中,控制单元的输出端与第一处理单元连接,第一处理单元与第二处理单元连接,第一处理单元包括第一移位电路层至第log2 P移位电路层,每层移位电路层包括1.5*P个选择器,P为数据处理装置的最大循环移位周期,P为大于等于2的N次方的整数,N为大于等于1的整数,第二处理单元包括第log2 P+1移位电路层,该第log2 P+1移位电路层包括P个选择器,第一处理单元和第二处理单元包括的选择器都为二选一选择器,方法包括:控制单元的输入端接收Z个输入数据、循环移位位数S和控制信号,控制信号用于指示对第一个输入数据至第Z-S个输入数据执行S位的循环移位,并对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,Z为大于等于2且小于等于P的整数,S为大于等于1且小于等于Z-1的整数;控制单元根据控制信号使能第一处理单元和第二处理单元;第一处理单元对第一个输入数据至第Z-S个输入数据执行S位的循环移位,得到第一循环移位数据,并将第一循环移位数据传输至第二处理单元,第一循环移位数据为经过S位的循环移位后的第一个输入数据至第Z-S个输入数据;第一处理单元对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,得到第二循环移位数据,并将第二循环移位数据传输至第二处理单元,第二循环移位数据为经过S+P-Z位的循环移位后的第Z-S+1个输入数据至第Z个输入数据;第二处理单元接收第一处理单元传输的第一循环移位数据和第二循环移位数据,并输出第一循环移位数据和第二循环移位数据。
需要说明的是,上述第一方面的功能模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。例如,处理器,用于完成线性域转对数域单元和/或线性域数据扩展编码单元的功能,存储器,用于处理器处理本发明实施例的数据处理方法的程序指令。处理器和存储器通过总线连接并完成相互间的通信。
本发明实施例的第三方面,提供一种数据处理装置,该数据处理装置可以包括:至少一个处理器,存储器、通信接口、通信总线;至少一个处理器与存储器、通信接口通过通信总线连接,存储器用于存储计算机执行指令,当数据处理装置运行时,处理器执行存储器存储的计算机执行指令,以使数据处理装置执行第一方面或第一方面的可能的实现方式中任一种。
第四方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述数据处理方法所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述中任意方面的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任意方面的方法。
另外,第三方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请实施例中,数据处理装置的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请实施例类似,属于本申请权利要求及其等同技术的范围之内。
本申请实施例的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
图4为现有技术提供的一种Barrel Shifter网络的简化示意图,该BarrelShifter网络包括第一移位电路层、第二移位电路层和第三移位电路层,每层移位电路层包括8个二选一选择器,第一移位电路层包括的8个选择器与控制单元连接,第一移位电路层用于对应输入该第一移位电路层的输入数据执行4位的循环移位,第二移位电路层包括的每个选择器与第一移位电路层包括的对应位置的选择器连接,并且其对应位置的选择器距离为2的选择器连接,第二移位电路层用于对应输入该第二移位电路层的输入数据执行2位的循环移位,第三移位电路层包括的每个选择器与第二移位电路层包括的对应位置的选择器连接,并且其对应位置的选择器距离为1的选择器连接,第三移位电路层用于对应输入该第三移位电路层的输入数据执行1位的循环移位,并输出循环移位后的数据。示例的,图4中的黑实线表示对S0至S7的8个输入数据向右循环移位5位。5的二进制表示为101,5的二进制数的位数101从左至右依次对应第一移位电路层至第三移位电路层,1表示相应的移位电路层对输入数据进行移位,0表示相应的移位电路层对输入数据不进行移位,即第1个1对应第一移位电路层距离为4的交换,第一移位电路层对S0至S7进行向右循环移位4位,得到S4、S5、S6、S7、S0、S1、S2、S3,第2个0对应第二移位电路层距离为2的交换,但此时不需要进行交换,第二移位电路层直接输出S4、S5、S6、S7、S0、S1、S2、S3,第3个1对应第三移位电路层距离为1的交换,第三移位电路层对S4、S5、S6、S7、S0、S1、S2、S3进行向右循环移位1位,得到S3、S4、S5、S6、S7、S0、S1、S2。
本发明实施例提供一种数据处理装置,其基本原理是:对于最大循环移位周期为P的数据处理装置,对Z个输入数据实现循环移位位数S的循环移位,数据处理装置对Z个输入数据分别进行循环移位,即对第一个输入数据至第Z-S个输入数据执行S位的循环移位,并对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,从而,使得数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,进一步避免在输入数据小于最大循环移位周期的情况下,循环移位过程中发生数据覆盖问题。
下面将结合附图对本发明实施例的实施方式进行详细描述。
图5为本发明实施例提供的一种数据处理装置结构示意图,包括:控制单元11、第一处理单元12和第二处理单元13,其中,控制单元11的输出端与第一处理单元12连接,第一处理单元12与第二处理单元13连接。
第一处理单元12包括第一移位电路层至第log2 P移位电路层,每层移位电路层包括1.5*P个选择器,P为数据处理装置的最大循环移位周期,P为大于等于2的N次方的整数,N为大于等于1的整数,第二处理单元包括第log2 P+1移位电路层,该第log2 P+1移位电路层包括P个选择器,第一处理单元12和第二处理单元13包括的选择器都为二选一选择器;
控制单元11的输入端用于接收Z个输入数据、循环移位位数S和控制信号,控制信号用于指示对第一个输入数据至第Z-S个输入数据执行S位的循环移位,并对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,Z为大于等于2且小于等于P的整数,S为大于等于1且小于等于Z-1的整数;
控制单元11用于根据控制信号使能第一处理单元12和第二处理单元13;
第一处理单元12用于对第一个输入数据至第Z-S个输入数据执行S位的循环移位,得到第一循环移位数据,并将第一循环移位数据传输至第二处理单元,第一循环移位数据为经过S位的循环移位后的第一个输入数据至第Z-S个输入数据;
第一处理单元12还用于对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,得到第二循环移位数据,并将第二循环移位数据传输至第二处理单元,第二循环移位数据为经过S+P-Z位的循环移位后的第Z-S+1个输入数据至第Z个输入数据;
如图6所示,本发明实施例提供一种循环移位示意图。对于最大循环移位周期为8,需要对5个输入数据S0、S1、S2、S3和S4实现2位的循环移位的情况下,需要对S0、S1和S2实现2位的循环移位,对S3和S4实现5位的循环移位。
第二处理单元13用于接收第一处理单元传输的第一循环移位数据和第二循环移位数据,并输出第一循环移位数据和第二循环移位数据。
本发明实施例提供的数据处理装置的最大循环移位周期为P,对Z个输入数据实现S位的循环移位,数据处理装置对Z个输入数据分别进行循环移位,即对第一个输入数据至第Z-S个输入数据执行S位的循环移位,并对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,从而,使得数据处理装置可以使用较少的交换资源来进行任意循环移位周期的循环移位,进一步避免在输入数据小于最大循环移位周期的情况下,循环移位过程中发生数据覆盖问题。
示例的,第一处理单元12和第二处理单元13中移位电路层的连接方式如下:第一移位电路层12包括的1.5*P个选择器与控制单元11连接,并且第一移位电路层12包括的第
个选择器至第1.5*P个选择器与控制单元11连接,第i移位电路层包括的第j个选择器与第i-1移位电路层包括的第j个选择器连接,并且相对第i-1移位电路层包括的第j个选择器按照预设方向与第i-1移位电路层包括的第j个选择器循环间隔为
的选择器连接,第i移位电路层为第一处理单元11包括的第二移位电路层至第log
2 P移位电路层中的任一层,j为大于等于1且小于等于1.5*P的整数,i为大于等于2且小于等于log
2 P的整数。预设方向为从左至右或从右至左。
第二处理单元13包括的第log2 P+1移位电路层包括的第一个选择器至第P个选择器依次与第log2 P移位电路层包括的第一个选择器至第P个选择器连接,并且第log2 P+1移位电路层包括的第m个选择器相对第log2 P移位电路层包括的第m个选择器与第log2 P移位电路层包括的第m个选择器循环间隔为P的选择器连接,m为大于等于1且小于等于P的整数。
在数据处理装置对输入数据进行循环移位时,控制单元,还用于获取S的二进制数,S的二进制数的位数从左至右依次对应第一移位电路层至第log
2 P移位电路层;控制单元,具体用于利用S的二进制数根据控制信号使能第一处理单元的每层移位电路层;当对应第n移位电路层的S的二进制数的位数为1时,第n移位电路层用于根据控制信号对输入该第n移位电路层的输入数据执行
的循环移位,n为大于等于1且小于等于log
2 P的整数,第n移位电路层为第一处理单元包括的log
2 P层移位电路层中的任一层移位电路层;当对应第n移位电路层的S的二进制数的位数为0时,第n移位电路层用于根据控制信号直接输出输入该第n移位电路层的输入数据。
需要说明的是,数据处理装置可以对输入数据向右进行循环移位也可以向左进行循环移位。在数据处理装置对输入数据向右进行循环移位的情况下,上述第一处理单元12和第二处理单元13中移位电路层的连接方式中个选择器之间采用从左至右的向右连接;在数据处理装置对输入数据向左进行循环移位的情况下,上述第一处理单元12和第二处理单元13中移位电路层的连接方式中个选择器之间采用从右向左的向左连接。
图7为本发明实施例提供一种数据处理装置向右循环移位的结构示意图。假设数据处理装置的最大循环移位周期P为8,第一处理单元包括第一移位电路层、第二移位电路层和第三移位电路层,每层移位电路层包括12个选择器,第二处理单元包括第四移位电路层,该第四移位电路层包括8个选择器,第一处理单元和第二处理单元包括的选择器都为二选一选择器。需要说明的是,第一移位电路层、第二移位电路层和第三移位电路层中每层移位电路层包括的第1个选择器至第8个选择器,以及第四移位电路层包括的8个选择器组成核心部分,第一移位电路层、第二移位电路层和第三移位电路层中每层移位电路层包括的第9个选择器至第12个选择器组成扩展部分。
其中,第一移位电路层包括的12个选择器都与控制单元连接,并且第一移位电路层包括的第5个选择器至第12个选择器还与控制单元连接。第一移位电路层用于对输入该第一移位电路层的输入数据执行向右移动4位的循环移位。
第二移位电路层包括的第1个选择器至第12个选择器从左至右依次与第一移位电路层包括的第1个选择器至第12个选择器连接,并且第二移位电路层包括的第3个选择器与第一移位电路层包括的第1个选择器连接,第二移位电路层包括的第4个选择器与第一移位电路层包括的第2个选择器连接,第二移位电路层包括的第5个选择器与第一移位电路层包括的第3个选择器连接,第二移位电路层包括的第6个选择器与第一移位电路层包括的第4个选择器连接,第二移位电路层包括的第7个选择器与第一移位电路层包括的第5个选择器连接,第二移位电路层包括的第8个选择器与第一移位电路层包括的第6个选择器连接,第二移位电路层包括的第9个选择器与第一移位电路层包括的第7个选择器连接,第二移位电路层包括的第10个选择器与第一移位电路层包括的第8个选择器连接,第二移位电路层包括的第11个选择器与第一移位电路层包括的第9个选择器连接,第二移位电路层包括的第12个选择器与第一移位电路层包括的第10个选择器连接。由于本发明实施例的数据处理装置用于对输入数据的循环向右移位,第二移位电路层包括的第1个选择器与第一移位电路层包括的第11个选择器连接,第二移位电路层包括的第2个选择器与第一移位电路层包括的第12个选择器连接。第二移位电路层用于对输入该第二位电路层的输入数据执行向右移动2位的循环移位。
第三移位电路层包括的第1个选择器至第12个选择器从左至右依次与第二移位电路层包括的第1个选择器至第12个选择器连接,并且第三移位电路层包括的第2个选择器与第二移位电路层包括的第1个选择器连接,第三移位电路层包括的第3个选择器与第二移位电路层包括的第2个选择器连接,第三移位电路层包括的第4个选择器与第二移位电路层包括的第3个选择器连接,第三移位电路层包括的第5个选择器与第二移位电路层包括的第4个选择器连接,第三移位电路层包括的第6个选择器与第二移位电路层包括的第5个选择器连接,第三移位电路层包括的第7个选择器与第二移位电路层包括的第6个选择器连接,第三移位电路层包括的第8个选择器与第二移位电路层包括的第7个选择器连接,第三移位电路层包括的第9个选择器与第二移位电路层包括的第8个选择器连接,第三移位电路层包括的第10个选择器与第二移位电路层包括的第9个选择器连接,第三移位电路层包括的第11个选择器与第二移位电路层包括的第10个选择器连接,第三移位电路层包括的第12个选择器与第二移位电路层包括的第11个选择器连接,由于本发明实施例的数据处理装置用于对输入数据的循环向右移位,第三移位电路层包括的第1个选择器与第二移位电路层包括的第12个选择器连接。第三移位电路层用于对输入该第三位电路层的输入数据执行向右移动1位的循环移位。
第四移位电路层包括的第1个选择器至第8个选择器从左至右依次与第三移位电路层包括的第1个选择器至第8个选择器连接,并且第四移位电路层包括的第1个选择器与第三移位电路层包括的相对第1个选择器距离为8的选择器连接,即第三移位电路层包括的第9个选择器连接,第四移位电路层包括的第2个选择器与第三移位电路层包括的相对第2个选择器距离为8的选择器连接,即第三移位电路层包括的第10个选择器连接,第四移位电路层包括的第3个选择器与第三移位电路层包括的相对第3个选择器距离为8的选择器连接,即第三移位电路层包括的第11个选择器连接,第四移位电路层包括的第4个选择器与第三移位电路层包括的相对第4个选择器距离为8的选择器连接,即第三移位电路层包括的第12个选择器连接,第四移位电路层包括的第5个选择器与第三移位电路层包括的相对第5个选择器距离为8的选择器连接,即第三移位电路层包括的第1个选择器连接,因为第三移位电路层包括的第12个选择器是与第四移位电路层包括的第5个选择器距离为7的选择器,由于本发明实施例的数据处理装置用于对输入数据的循环向右移位,所以再从第三移位电路层包括的第12个选择器循环移位,第四移位电路层包括的第5个选择器与第三移位电路层包括的第1个选择器连接,同理,第四移位电路层包括的第6个选择器与第三移位电路层包括的相对第6个选择器距离为8的选择器连接,即第三移位电路层包括的第2个选择器连接,第四移位电路层包括的第7个选择器与第三移位电路层包括的相对第7个选择器距离为8的选择器连接,即第三移位电路层包括的第3个选择器连接,第四移位电路层包括的第8个选择器与第三移位电路层包括的相对第8个选择器距离为8的选择器连接,即第三移位电路层包括的第4个选择器连接。第四移位电路层用于输出第三移位电路层输入的第一循环移位数据和第二循环移位数据。
示例的,如图8所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为1,控制信号用于指示对S0、S1、S2、S3、S4、S5、S6执行向右移1位的循环移位,并对S7执行向右移1位的循环移位,且控制单元将1转换为二进制为001,001依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据001利用控制信号使能第一处理单元的每层移位电路层,即第一移位电路层的循环移位位数1的二进制数的位数为0,第一移位电路层不需要对S0、S1、S2、S3、S4、S5、S6进行移位,直接将S0、S1、S2、S3、S4、S5、S6输入到第二移位电路层,第二移位电路层的循环移位位数1的二进制数的位数为0,第二移位电路层不需要对S0、S1、S2、S3、S4、S5、S6进行移位,直接将S0、S1、S2、S3、S4、S5、S6输入到第三移位电路层,第三移位电路层的循环移位位数1的二进制数的位数为1,第三移位电路层对S0、S1、S2、S3、S4、S5、S6向右循环移动1位。同理,第一移位电路层的循环移位位数1的二进制数的位数为0,第一移位电路层不需要对S7进行移位,直接将S7输入到第二移位电路层,第二移位电路层的循环移位位数1的二进制数的位数为0,第二移位电路层不需要对S7进行移位,直接将S7输入到第三移位电路层,第三移位电路层的循环移位位数1的二进制数的位数为1,第三移位电路层对S7向右循环移动1位。图8中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图9所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为2,控制信号用于指示对S0、S1、S2、S3、S4、S5执行向右移2位的循环移位,并对S6、S7执行向右移2位的循环移位,且控制单元将2转换为二进制为010,010依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据010利用控制信号使能第一处理单元的每层移位电路层,即第一移位电路层的循环移位位数2的二进制数的位数为0,第一移位电路层不需要对S0、S1、S2、S3、S4、S5进行移位,直接将S0、S1、S2、S3、S4、S5输入到第二移位电路层,第二移位电路层的循环移位位数2的二进制数的位数为1,第二移位电路层对S0、S1、S2、S3、S4、S5向右循环移动2位,输入到第三移位电路层,第三移位电路层的循环移位位数2的二进制数的位数为0,第三移位电路层不需要对S0、S1、S2、S3、S4、S5进行循环移位,直接将S0、S1、S2、S3、S4、S5输出。同理,第一移位电路层的循环移位位数2的二进制数的位数为0,第一移位电路层不需要对S6、S7进行移位,直接将S6、S7输入到第二移位电路层,第二移位电路层的循环移位位数2的二进制数的位数为1,第二移位电路层对S6、S7向右循环移动2位,输入到第三移位电路层,第三移位电路层的循环移位位数2的二进制数的位数为0,第三移位电路层不需要对S6、S7进行循环移位,直接将S6、S7输出。图9中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图10所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为3,控制信号用于指示对S0、S1、S2、S3、S4执行向右移3位的循环移位,并对S5、S6、S7执行向右移3位的循环移位,且控制单元将3转换为二进制为011,011依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据011利用控制信号使能第一处理单元的每层移位电路层,即第一移位电路层的循环移位位数3的二进制数的位数为0,第一移位电路层不需要对S0、S1、S2、S3、S4进行移位,直接将S0、S1、S2、S3、S4输入到第二移位电路层,第二移位电路层的循环移位位数3的二进制数的位数为1,第二移位电路层对S0、S1、S2、S3、S4向右循环移动3位,输入到第三移位电路层,第三移位电路层的循环移位位数3的二进制数的位数为1,第三移位电路层对S0、S1、S2、S3、S4向右循环移动3位,直接将S0、S1、S2、S3、S4输出。同理,第一移位电路层的循环移位位数3的二进制数的位数为0,第一移位电路层不需要对S5、S6、S7进行移位,直接将S5、S6、S7输入到第二移位电路层,第二移位电路层的循环移位位数3的二进制数的位数为1,第二移位电路层对S5、S6、S7向右循环移动3位,输入到第三移位电路层,第三移位电路层的循环移位位数3的二进制数的位数为1,第三移位电路层对S5、S6、S7向右循环移动3位,直接将S5、S6、S7输出。图10中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图11所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为4,控制信号用于指示对S0、S1、S2、S3执行向右移4位的循环移位,并对S4、S5、S6、S7执行向右移4位的循环移位,且控制单元将4转换为二进制为100,100依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据100利用控制信号使能第一处理单元的每层移位电路层,使能的动作与图8类似,在此不再赘述。图11中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图12所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为5,控制信号用于指示对S0、S1、S2执行向右移5位的循环移位,并对S3、S4、S5、S6、S7执行向右移5位的循环移位,且控制单元将5转换为二进制为101,101依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据101利用控制信号使能第一处理单元的每层移位电路层,使能的动作与图8类似,在此不再赘述。图12中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图13所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为6,控制信号用于指示对S0、S1执行向右移6位的循环移位,并对S2、S3、S4、S5、S6、S7执行向右移6位的循环移位,且控制单元将6转换为二进制为110,110依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据110利用控制信号使能第一处理单元的每层移位电路层,使能的动作与图8类似,在此不再赘述。图13中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图14所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6、S7,循环移位位数为7,控制信号用于指示对S0执行向右移7位的循环移位,并对S1、S2、S3、S4、S5、S6、S7执行向右移7位的循环移位,且控制单元将7转换为二进制为111,111依次分别对应第一移位电路层、第二移位电路层和第三移位电路层,控制单元根据111利用控制信号使能第一处理单元的每层移位电路层,使能的动作与图8类似,在此不再赘述。图14中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图15所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为1,控制信号用于指示对S0、S1、S2、S3、S4、S5执行向右移1位的循环移位,并对S6执行向右移2位的循环移位,使能的动作与图8类似,在此不再赘述。图15中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图16所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为2,控制信号用于指示对S0、S1、S2、S3、S4执行向右移2位的循环移位,并对S5、S6执行向右移3位的循环移位,使能的动作与图8类似,在此不再赘述。图16中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图17所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为3,控制信号用于指示对S0、S1、S2、S3执行向右移3位的循环移位,并对S4、S5、S6执行向右移4位的循环移位,使能的动作与图8类似,在此不再赘述。图17中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图18所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为4,控制信号用于指示对S0、S1、S2执行向右移4位的循环移位,并对S3、S4、S5、S6执行向右移5位的循环移位,使能的动作与图8类似,在此不再赘述。图18中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图19所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为5,控制信号用于指示对S0、S1执行向右移5位的循环移位,并对S2、S3、S4、S5、S6执行向右移6位的循环移位,使能的动作与图8类似,在此不再赘述。图19中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
示例的,如图20所示,假设输入数据为S0、S1、S2、S3、S4、S5、S6,循环移位位数为6,控制信号用于指示对S0执行向右移6位的循环移位,并对S1、S2、S3、S4、S5、S6执行向右移7位的循环移位,使能的动作与图8类似,在此不再赘述。图20中的黑实线表示每层移位电路层对输入数据进行循环移位的路径。
需要说明的是,图7所示的数据处理装置还可以对2个输入数据进行向右1位的循环移位,对3个输入数据进行向右1位或2位的循环移位、对4个输入数据进行向右1位、2位或3位的循环移位、对5个输入数据进行向右1位、2位、3位或4位的循环移位,详细的循环移位方式可以参考图8至图19,不同点在于循环移位的输入数据个数不同,循环移位的方式类似,在此不再赘述。
传统QSN需要的选择器个数与2Plog2P成正比,本发明实施例需要的选择器个数与1.5Plog2P成正比,最大循环移位周期P越大,本发明实施例需要的资源收益越大。当最大循环移位周期P比较大的时候,减少选择器的个数约21%。如表1所示,不同数据处理装置的资源收益。
表1数据处理装置的收益
最大循环移位周期P |
16 |
32 |
64 |
128 |
256 |
512 |
1024 |
QSN的选择器数量 |
113 |
289 |
705 |
1665 |
3841 |
8705 |
19457 |
本发明实施例的选择器数量 |
96 |
240 |
576 |
1344 |
3072 |
6912 |
15360 |
本发明实施例相对于QSN的收益 |
15% |
17% |
18% |
19% |
20% |
21% |
21% |
图21为本发明实施例提供的一种数据处理方法的流程图,应用于如图5所示的数据处理装置,如图21所示,该方法可以包括:
201、控制单元的输入端接收Z个输入数据、循环移位位数S和控制信号。
202、控制单元利用S的二进制数根据控制信号使能第一处理单元和第二处理单元。
203、第一处理单元对第一个输入数据至第Z-S个输入数据执行S位的循环移位,得到第一循环移位数据,并将第一循环移位数据传输至第二处理单元。
第一循环移位数据为经过S位的循环移位后的第一个输入数据至第Z-S个输入数据。
204、第一处理单元对第Z-S+1个输入数据至第Z个输入数据执行S+P-Z位的循环移位,得到第二循环移位数据,并将第二循环移位数据传输至第二处理单元。
第二循环移位数据为经过S+P-Z位的循环移位后的第Z-S+1个输入数据至第Z个输入数据。
205、第二处理单元接收第一处理单元传输的第一循环移位数据和第二循环移位数据,并输出第一循环移位数据和第二循环移位数据。
需要说明的是,本发明实施例提供的数据处理方法是基于如图5所示的数据处理装置,上述装置实施例涉及的各模块的所有相关内容均可以援引到对应方法步骤中,在此不再赘述。数据处理装置用于执行上述数据处理方法,因此上述数据处理方法可以达到与数据处理装置相同的效果。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如数据处理装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。