位反转移位方法、装置、处理器和电子设备与流程

专利2024-09-28  53



1.本技术涉及计算机领域,特别是涉及一种位反转移位方法、装置、处理器和电子设备。


背景技术:

2.对数据的二进制数进行位反转并移位的操作是计算机中常用的操作,例如 vbrsr指令即是将一个数据的二进制数进行位反转并右移的操作指令,应用于密码学、数字信号处理、图像处理领域等。
3.目前,计算机中用于实现对数据的二进制数进行位反转并移位的操作的计算单元,通常先通过置换等电路将待计算的二进制数中各个数的位置进行交换,完成对该二进制数的位反转操作,然后通过移位电路,将位反转后的二进制数进行移位得到最终的计算结果。如此,该计算单元是串行地对数据的二进制数进行位反转并移位的操作,计算耗时较长。


技术实现要素:

4.有鉴于此,本技术实施例提供了一种位反转移位方法和、装置、处理器和电子设备,通过将移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号,将位反转移位控制信号和待处理数据输入逆蝴蝶网络(inversebutterfly network),就可以直接得到待处理数据的位反转并循环移位的结果,再对位反转并循环移位的结果后处理就可以得到处理数据的位反转并移位的结果,从而避免计算机串行地对数据的二进制数进行位反转并移位的操作,进而可以提高计算效率。
5.第一方面,本技术提供一种位反转移位方法,应用于电子设备,包括:
6.获取待处理数据;
7.根据待处理数据的移位类型和移位位数生成移位控制信号,并根据待处理数据的位数生成位反转控制信号;
8.对移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号;
9.将位反转移位控制信号和待处理数据输入逆蝴蝶网络,得到待处理数据的位反转并循环移位的结果;
10.根据移位类型和所述移位位数对位反转并循环移位的结果进行后处理,得到待处理数据的位反转并移位的结果。
11.可以理解的,将移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号,将位反转移位控制信号和待处理数据输入逆蝴蝶网络,就可以直接得到待处理数据的位反转并循环移位的结果,避免先通过置换等电路将待计算的二进制数中各个数的位置进行交换,完成对该二进制数的位反转操作,然后通过移位电路,将位反转后的二进制数进行移位才能得到最终的计算结果的问题,进而可以提高计算效率。
12.可以理解的,在本技术的一些实施例中,移位控制信号为循环移位控制信号,位反
转移位控制信号为位反转循环移位控制信号。当移位方向为左移或者循环左移时,得到的移位控制信号为循环左移控制信号,对应的位反转移位控制信号为位反转循环左移控制信号,当移位方向为右移或者循环右移时,得到的移位控制信号为循环右移控制信号,对应的位反转移位控制信号为位反转循环右移控制信号。
13.可以理解的,在本技术的一些实施例中,待处理的数据为输入数据。
14.在上述第一方面一种可能的实现方式,逆蝴蝶网络包括k级网络,待处理数据的二进制数有2k位,移位控制信号包括与逆蝴蝶网络的k级网络分别对应的k个移位控制信号,与逆蝴蝶网络的第n级网络对应的移位控制信号的位数为2
n-1
位,移位位数为h位,h对应的二进制数为m,其中,k≥n;并且
15.根据待处理数据的移位类型和移位位数生成移位控制信号,包括:
16.在移位类型为左移或者循环左移的情况下,将第一信号循环左移j位后的二进制数的前2
n-1
位数,作为与逆蝴蝶网络的第n级网络对应的移位控制信号,其中,第一信号为高2
n-1
位为0,低2
n-1
位为1的2n位的二进制数,j为m的后 n位数对应的十进制数;
17.在移位类型为右移或者循环右移的情况下,将第一信号循环右移j位后的二进制数的前2
n-1
位数,作为与逆蝴蝶网络的第n级网络对应的移位控制信号。
18.可以理解的,逆蝴蝶网络是一个新颖的电路结构,通过移位类型以及移位方向对第一信号进行循环移位可以更加方便的得到与逆蝴蝶网络结构对应的移位控制信号,为后续通过逆蝴蝶网络得到位反转并循环移位的结果做准备。
19.可以理解的,在本技术的一些实施例中,第一信号为特定信号。
20.可以理解的,在本技术的一些实施例中,逆蝴蝶网络包括3级网络。
21.在上述第一方面一种可能的实现方式,位反转控制信号包括与逆蝴蝶网络的 k级网络分别对应的k个位反转控制信号,与逆蝴蝶网络的第n级网络对应的位反转控制信号的位数为2
n-1
位;并且
22.根据待处理数据的位数生成位反转控制信号,包括:
23.将第二信号设置为与逆蝴蝶网络的第n级网络对应的位反转控制信号,其中,第二信号为2
n-1
位全为1的二进制数。
24.可以理解的,通过待处理数据的位数就可以直接方便地得到逆蝴蝶网络对应的位反转控制信号,并且为后续通过逆蝴蝶网络得到位反转并循环移位的结果做准备。
25.在上述第一方面一种可能的实现方式,位反转移位控制信号包括与逆蝴蝶网络的k级网络分别对应的k个位反转移位控制信号;并且,对移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号,包括:
26.将与逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算的结果,作为与逆蝴蝶网络的第n级网络对应的位反转移位控制信号。
27.可以理解的,通过将与逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算就可以得到对逆蝴蝶网络输入的待处理数据具有位反转以及循环移位功能的控制信号,这样可以避免计算机串行地对数据的二进制数进行位反转并移位的操作,进而可以提高计算效率。
28.在上述第一方面一种可能的实现方式,其中,根据移位类型和移位位数对位反转并循环移位的结果进行后处理,包括:
29.在移位类型为左移,移位位数为h位的情况下,将位反转并循环移位的结果的低h位设置为零;
30.在移位类型为右移,移位位数为h位的情况下,将位反转并循环移位的结果的高h位设置为零;
31.在移位类型为循环右移或者循环左移,移位位数为h位的情况下,将位反转并循环移位的结果的各位保持不变。
32.可以理解的,通过根据移位类型和移位位数对位反转并循环移位的结果中高位或者低位设置0的方式,可以很容易的得到在移位类型不为循环移位的情况下的对待处理数据进行位反转并移位的结果。
33.在上述第一方面一种可能的实现方式,在移位类型为左移,移位位数为h 位的情况下,将位反转并循环移位的结果的低h位设置为零,包括:
34.将位反转并循环移位的结果与第一掩膜码进行位与运算,其中,第一掩膜码的位数和位反转并循环移位的结果的位数为p,并且第一掩膜码的低h位为0、高p-h位为1。
35.可以理解的,在移位类型为左移,移位位数为h位的情况下,通过将位反转并循环移位的结果与第一掩膜码进行位与运算的方式可以很方便的通过位反转并循环移位的结果得到位反转并移位的结果,容易操作。
36.在上述第一方面一种可能的实现方式,在移位类型为右移,移位位数为h 位的情况下,将位反转并循环移位的结果的高h位设置为零,包括:
37.将位反转并循环移位的结果与第二掩膜码进行位与运算,其中,第二掩膜码的位数和位反转并循环移位的结果的位数为q,并且第二掩膜码的高h位为0、低q-h位为0。
38.可以理解的,在移位类型为右移,移位位数为h位的情况下,通过将位反转并循环移位的结果与第二掩膜码进行位与运算的方式可以很方便的通过位反转并循环移位的结果得到位反转并移位的结果,容易操作。
39.第二方面,本技术提供一种位反转移位装置,包括:
40.控制信号生成单元,用于根据待处理数据的移位类型和移位位数生成移位控制信号,并根据待处理数据的位数生成位反转控制信号,对移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号;
41.逆蝴蝶网络,用于根据位反转移位控制信号以及待处理数据,得到待处理数据的位反转并循环移位的结果;
42.后处理单元,用于根据移位类型和移位位数对位反转并循环移位的结果进行后处理,得到待处理数据的位反转并移位的结果。
43.可以理解的,本技术提供位反转移位装置是一种并行的装置,可以实现位数据的各种位反转并移位类操作,将原先的先通过置换等电路完成对该二进制数的位反转计算,然后通过循环移位相关电路将进行位反转后的二进制数完成进行移位的操作,改成通过位反转并移位相关电路,就可实现对二进制数的位反转并移位的操作,可以减少计算耗时、提高的计算机的运行速度。
44.可以理解的,在本技术的一些实施例中,当移位方向为左移时,得到的移位控制信号为循环左移控制信号,对应的位反转移位控制信号为位反转循环左移控制信号,当移位方向为右移时,得到的移位控制信号为循环右移控制信号,对应的位反转移位控制信号为
位反转循环右移控制信号。
45.可以理解的,在本技术的一些实施例中,待处理的数据为输入数据。
46.可以理解的,在本技术的一些实施例中,逆蝴蝶网络为逆蝴蝶网络单元。
47.在上述第二方面一种可能的实现方式,逆蝴蝶网络包括k级网络,待处理数据的二进制数有2k位,移位控制信号包括与逆蝴蝶网络的k级网络分别对应的k个移位控制信号,与逆蝴蝶网络的第n级网络对应的移位控制信号的位数为2
n-1
位,移位位数为h位,h对应的二进制数为m,其中,k≥n;并且
48.控制信号生成单元通过以下方式根据待处理数据的移位类型和移位位数生成移位控制信号:
49.控制信号生成单元在移位类型为左移或者循环左移的情况下,将第一信号循环左移j位后的二进制数的前2
n-1
位数,作为与逆蝴蝶网络的第n级网络对应的移位控制信号,其中,第一信号为高2
n-1
位为0,低2
n-1
位为1的2n位的二进制数,j为m的后n位数对应的十进制数;
50.控制信号生成单元在移位类型为右移或者循环右移的情况下,将第一信号循环右移j位后的二进制数的前2
n-1
位数,作为与逆蝴蝶网络的第n级网络对应的移位控制信号。
51.可以理解的,逆蝴蝶网络是一个新颖的电路结构,通过移位类型以及移位方向对第一信号进行循环移位可以更加方便的得到与逆蝴蝶网络结构对应的移位控制信号,为后续通过逆蝴蝶网络得到位反转并循环移位的结果做准备。
52.可以理解的,在本技术的一些实施例中,第一信号为特定信号。
53.可以理解的,在本技术的一些实施例中,逆蝴蝶网络包括3级网络。
54.在上述第二方面一种可能的实现方式,位反转控制信号包括与逆蝴蝶网络的 k级网络分别对应的k个位反转控制信号,与逆蝴蝶网络的第n级网络对应的位反转控制信号的位数为2
n-1
位;并且
55.控制信号生成单元通过以下方式根据待处理数据的位数生成位反转控制信号:
56.控制信号生成单元将第二信号设置为与逆蝴蝶网络的第n级网络对应的位反转控制信号,其中,第二信号为2
n-1
位全为1的二进制数。
57.可以理解的,控制信号生成单元通过待处理数据的位数就可以直接方便地得到逆蝴蝶网络对应的位反转控制信号,并且为后续通过逆蝴蝶网络得到位反转并循环移位的结果做准备。
58.在上述第二方面一种可能的实现方式,位反转移位控制信号包括与逆蝴蝶网络的k级网络分别对应的k个位反转移位控制信号;并且,控制信号生成单元通过以下方式对移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号:
59.控制信号生成单元将与逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算的结果,作为与逆蝴蝶网络的第n级网络对应的位反转移位控制信号。
60.可以理解的,控制信号生成单元通过将与逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算就可以得到对逆蝴蝶网络输入的待处理数据具有位反转以及循环移位功能的控制信号,这样可以避免计算机串行地对数据的二进制数进行位反转并移位的操作,进而可以提高计算效率。该方法可以拓展到将多个实现不
同功能的控制信号进行异或,生成具有位反转以及循环移位功能的控制信号,只要是将多个位反转控制信号以及循环移位控制信号进行异或,从而生成对应具备对应位反转以及循环移位功能的控制信号。
61.在上述第二方面一种可能的实现方式,移位位数为h位,位反转并循环移位的结果的位数为y;并且
62.后处理单元通过以下方式根据移位类型和移位位数对位反转并循环移位的结果进行后处理:
63.在移位类型为左移的情况下,将位反转并循环移位的结果与第一掩膜码进行位与运算得到位反转并移位的结果,其中,第一掩膜码的位数为y,并且第一掩膜码的低h位为0,高y-h为1;
64.在移位类型为右移的情况下,将位反转并循环移位的结果与第二掩膜码进行位与运算得到位反转并移位的结果,其中,第二掩膜码的位数为y,第二掩膜码的高h位为0、低y-h位为1;
65.在移位类型为循环右移或者循环左移的情况下,将位反转并循环移位的结果与第三掩膜码进行位与运算得到位反转并移位的结果,其中,第三掩膜码的位数为y,并且第三掩膜码的各位全为1。
66.可以理解的,后处理单元在移位类型和移位位数的不同情况下,通过将对位反转并循环移位的结果与移位类型和移位位数相对应的掩膜码相位与的方式可以很容易的得到对待处理数据进行位反转并移位的结果。
67.第三方面,本技术提供一种处理器,处理器包括上述第二方面以及第二方面可能的实现方式中任一种的位反转移位装置。
68.第四方面,本技术提供一种电子设备,包括上述第三方面的处理器。
附图说明
69.图1根据本技术的一些实施例,示出了一种逆蝴蝶网络的结构示意图;
70.图2根据本技术的一些实施例,示出了一种位反转移位装置200;
71.图3a根据本技术的一些实施例,示出了一种控制信号生成单元202;
72.图3b根据本技术的一些实施例,示出了一种以位反转控制信号对逆蝴蝶网络的输入数据进行位反转的数据流示意图;
73.图3c根据本技术的一些实施例,示出了一种以循环右移控制信号对逆蝴蝶网络的输入数据进行循环右移的数据流示意图;
74.图3d根据本技术的一些实施例,示出了一种以循环左移控制信号对逆蝴蝶网络的输入数据进行循环左移的数据流示意图;
75.图3e根据本技术的一些实施例,示出了一种以位反转循环右移控制信号对逆蝴蝶网络的输入数据进行位反转并循环右移的数据流示意图;
76.图3f根据本技术的一些实施例,示出了一种以位反转循环左移控制信号对逆蝴蝶网络的输入数据进行位反转并循环左移的数据流示意图;
77.图4a根据本技术的一些实施例,示出了一种后处理单元204的结构示意图;
78.图4b根据本技术的一些实施例,示出了一种移位位数在0至7之间对应的掩膜码;
79.图5根据本技术的一些实施例,示出了一种对数据进行位反转移位方法的流程图;
80.图6根据本技术的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
81.本技术的说明性实施例包括但不限于位反转移位方法、装置、处理器和电子设备。
82.为使本技术的目的、技术方案和优点更加清楚,下面通过结合附图和实施方案,对本技术实施例的技术方案做进一步地详细描述。显然,所描述的实施例仅是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
83.为了更加清楚的说明本技术实施例的方案,下面对本技术实施例中涉及到的一些术语进行解释。
84.1.移位操作:
85.移位包括四种类型:左移、右移、循环左移、循环右移。
86.具体地,左移为,将一个数的各二进制位全部左移指定位数,其右边空出的位用0填补,高位左移溢出则舍弃该高位。例如,对一位宽为8的二进制数 00001111左移1位,则得到00011110,右边空出的位用0填补。
87.右移为,将一个数的各二进制位全部右移指定位数,其左边空出的位用0 填补,低位右移溢出则舍弃该低位。例如,对一位宽为8的二进制数00001111 右移1位,则得到00000111,左边空出的位用0填补。
88.循环左移为,将一个数的各二进制位全部左移指定位数,将移出的高位放到该数的低位上。例如,对一位宽为8的二进制数10001111循环左移1位,则得到00011111。
89.循环右移为,将一个数的各二进制位全部右移指定位数,将移出的低位放到该数的高位上。例如,对一位宽为8的二进制数10001111循环右移1位,则得到11000111。
90.2.位反转操作
91.位反转操作就是将一个数的二进制位的高低位交换。例如,对于一个位宽为 8的二进制数10001111,则是将该数的第0位和第7位交换、第1位和第6位交换、第2位和第5位交换、第3位和第4位交换,得到11110001。
92.3.位反转并移位操作
93.位反转并移位操作,将一个数的二进制位的高低位交换后的数再进行左移或者右移指定位数。
94.4.逆蝴蝶网络(inverse butterfly network):
95.逆蝴蝶网络是一个新颖的电路结构,能够根据输入到该网络的控制信号,对输入数据的二进制数中的各个数字的位置进行重新排列得到二进制的输出数据,输出数据与输入数据包括的数字相同,但各个数字的排列顺序不同。
96.为便于理解,首先介绍逆蝴蝶网络根据控制信号调整输入的二进制数中各数字的排列顺序的逻辑。
97.逆蝴蝶网络为多级网络,对于一个k级逆蝴蝶网络,第1级网络的输入为逆蝴蝶网络的输入,第n(k≥n≥2)级网络的输入为第n-1级网络的输出,可以用于对2k位的二进数中各数字的顺序进行重新排列。
98.可以理解,第n级网络的控制信号为2
n-1
位的二进制数。第n(k≥n≥1)级网络将该级网络的输入数据分为2
k-n
个子蝶网络(簇)(cluster),每个cluster 包括2n位数字,并且每个cluster的前2
n-1
位数字为第一子cluster、后2
n-1
位数字为第二子cluster。第n级网络在接收到控制信号后,根据控制信号第i位数的取值,对每个cluster中第一子cluster中的第i位数和第二子cluster中的第i位数的位置进行调整。具体的,若控制信号的第i位数为二进制数1,则将每个cluster 中第一子cluster中的第i位数和第二子cluster中的第i位数进行交换;若控制信号的第i位数为二进制数0,则保持每个cluster中第一子cluster中的第i位数和第二子cluster中的第i位数不变。
99.例如,如图1所示,对于一个3级逆蝴蝶网络,可以对8位的二进数中各数字的顺序进行重新排列。
100.参考图1,第2级网络将输入数据分为2个子蝶网络(簇)(cluster),每个 cluster包括4位数字,并且每个cluster的前2位数字为第一子cluster、后2位数字为第二子cluster。第2级网络的控制信号为2位的二进制数,比如说为2’b10 (“b”指二进制,“b”前面的2表示“b”后面的二进制数的位宽,即2’b10表示位宽为2的二进制数10)。并且第2级网络的输入为第1级网络的输出。第2 级网络在接收到控制信号2’b10后,控制信号第0位数的取值为0,则保持每个 cluster中第一子cluster中的第0位数和第二子cluster中的第0位数不变,即图1 中第一子cluster中的第0位数a7和第二子cluster中的第0位数a5不变;根据控制信号第1位数的取值为1,则将每个cluster中第一子cluster中的第1位数和第二子cluster中的第1位数进行交换,即图1中第一子cluster中的第1位数a6 和第二子cluster中的第1位数a4交换。
101.如此,通过向逆蝴蝶网络各级网络输入不同的控制信号,即可对输入到逆蝴蝶网络的输入数据中的各个数字的排列顺序进行调整。
102.下面结合附图对本技术实施例的方案进行阐述。
103.如前所述,目前通常通过串行计算的方式来计算位反转并移位操作,为提高位反转并移位的计算效率,本技术实施例提供了一种位反转移位装置,该装置利用逆蝴蝶网络来完成对输入数据进行位反转并移位的操作,从而可以将位反转并移位操作并行执行,提高了位反转并移位的速度。该装置先根据移位的类型和移位位数,确定与该移位类型与移位位数对应的控制信号,再将输入数据和控制信号输入到逆蝴蝶网络中,即可得到对输入数据进行位反转并循环移位的结果。然后根据移位的类型和移位位数,对逆蝴蝶网络输出的结果进行后处理,得到位反转并移位的计算结果,例如该装置在移位操作不是循环移位的情况下,根据移位的方向,将逆蝴蝶网络输出结果的高位或低位进行置零,即可得到对输出数据位反转并移位的结果。
104.如此,本技术将对输入数据进行位反转并移位传统的串行结构变成了并行结构,计算耗时较短、提高的计算机的运行速度;逆蝴蝶网络结构简单,可以降低电路面积,结构也容易扩展,很适合应用到可扩展向量的其他操作中去;这种结构很容易和其它的移位指令融合在一起,例如将移位类型不同的位反转并移位操作并行执行,实现所有简单移位操作都可通过本技术的位反转移位装置实现。
105.具体地,图2示出了在本技术的一些实施例中的一种位反转移位装置200。该装置包括数据获取单元201、控制信号生成单元202、逆蝴蝶网络单元203和后处理单元204。
106.其中,数据获取单元201,用于获取输入参数,输入参数包括需要进行位反转并移位操作的输入数据、移位类型以及移位位数,将输入参数中的移位类型以及移位位数发送给控制信号生成单元202和后处理单元204,将输入数据发送给逆蝴蝶网络单元203;
107.控制信号生成单元202,用于根据数据获取单元201给的移位类型以及移位位数得到控制信号,并将控制信号发送给逆蝴蝶网络单元203。该控制信号用于可以控制逆蝴蝶网络单元203的输入数据实现位反转以及移位的功能。例如,用于根据接收的移位类型以及移位位数得到具有位反转并循环移位功能的控制信号(以下简称位反转循环移位控制信号),将位反转循环移位控制信号发送给逆蝴蝶网络单元203,使逆蝴蝶网络单元203的输入数据实现位反转并循环移位的功能。位反转循环移位控制信号的生成逻辑将在下文进行介绍,在此不做赘述。
108.逆蝴蝶网络单元203,用于接收控制信号生成单元202给的控制信号,并根据获取的控制信号对数据获取单元201给的输入数据的二进制数中的各个数字的位置进行重新排列,得到中间计算结果,并将中间计算结果给后处理单元204。例如,当控制信号为位反转循环移位控制信号时,逆蝴蝶网络单元203根据获取的位反转循环移位控制信号对输入数据的二进制数中的高低位的数字进行交换,并将交换后的结果循环移位,得到位反转并循环移位结果,将位反转并循环移位结果给后处理单元204。
109.后处理单元204,用于根据数据获取单元201给的移位类型和移位位数,对逆蝴蝶网络单元203给的中间计算结果进行后处理,得到输出结果。具体地,在移位类型为右移时,后处理单元204根据移位位数对中间计算结果的高位置0;在移位类型为左移时,后处理单元204根据移位位数对中间计算结果的低位置0,在移位类型为循环右移或者循环左移时,输出结果即为中间计算结果。在一些实施例中,可以通过根据移位类型和移位位数得到的掩膜码与中间计算结果进行位与的方式进行后处理,从而得到输出结果。例如,中间计算结果为位反转并循环移位结果,在移位操作不是循环移位的情况下,根据移位类型和移位位数得到对应的掩膜码,根据掩膜码与位反转并循环移位结果进行位与的方式对为位反转并循环移位结果的高位或者低位进行置0,得到位反转并移位结果。
110.可以理解的,本技术提供的并行的位反转移位装置,可以实现位数据的各种位反转并移位类操作,将原先的先通过置换等电路完成对该二进制数的位反转计算,然后通过循环移位相关电路将进行位反转后的二进制数完成进行移位的操作,改成通过位反转并移位相关电路,就可实现对二进制数的位反转并移位的操作,可以减少计算耗时、提高的计算机的运行速度,而且操作简单。
111.下面介绍控制信号生成单元202生成位反转并循环移位控制信号的逻辑。
112.如图3a所示,控制信号生成单元202包括位反转控制信号生成单元202a、循环移位控制信号生成单元202b和控制信号异或单元202c。
113.具体地,位反转控制信号生成单元202a,用于生成逆蝴蝶网络各级对应的位反转控制信号。其中,逆蝴蝶网络各级对应的位反转控制信号上各个位数的值为二进制数1。例如,对于一个3级的逆蝴蝶网络,第一级位反转控制信号为1位二进制数1,即1’b1,第二级位反转控制信号为2位二进制数11,即2’b11,第三级位反转控制信号为4位二进制数1111,即4’b1111。
114.下面介绍位反转控制信号的具体控制过程,图3b示出了,位反转控制信号对逆蝴
蝶网络作用,使得逆蝴蝶网络的8比特数据数据输入数据实现位反转的具体过程。
115.对于第一级网络,将输入数据分为了4个子蝶网络(簇)cluster,分别为 cluster1~cluster4(图3b中仅示出了cluster1),每个cluster的前1位数字为第一子cluster、后1位数字为第二子cluster,第一级的控制信号为1’b1,对每个cluster 中第一子cluster中的第0位数和第二子cluster中的第0位数的位置进行交换。对于子蝶网络(簇)cluster1,子蝶网络(簇)cluster1中的第一子cluster1中的第0 位数a7以及第二子cluster1中的第0位数a6进行交换,第一级的其他子蝶网络 (簇)在控制信号下,各子cluster中对应位也进行交换,即cluster2中的数据a5 以及a4进行交换,cluster3中的数据a3以及a2进行交换,cluster4中的数据a1 以及a0进行交换,得到第一级的输出数据为a6、a7、a4、a5、a2、a3、a0、a1。
116.对于第二级网络,将输入数据分为了2个子蝶网络(簇)cluster,分别为 cluster1’和cluster2’(图3b中仅示出了cluster1’),每个cluster的前2位数字为第一子cluster、后2位数字为第二子cluster,第二级的控制信号为2’b11,对每个cluster中第一子cluster中的第0位数和第二子cluster中的第0位数的位置进行交换,第一子cluster中的第1位数和第二子cluster中的第1位数的位置进行交换。对于子蝶网络(簇)cluster1’,子蝶网络(簇)cluster1’中的第一子cluster1’中的第0位数a7以及第二子cluster1’中的第0位数a5进行交换,第一子cluster1’中的第1位数a6以及第二子cluster1’中的第1位数a4进行交换;第二级的其他子蝶网络(簇)在控制信号下,各子cluster中对应位也进行交换,即cluster2’中的数据a3以及a1进行交换,数据a2以及a0进行交换;最后得到第二级的输出数据为a4、a5、a6、a7、a0、a1、a2、a3。
117.对于第三级网络,将输入数据分为了1个子蝶网络(簇)cluster,记为cluster1”每个cluster的前4位数字为第一子cluster、后2位数字为第二子cluster,第三级的控制信号为4’b1111,对每个cluster中第一子cluster中的第0位数和第二子 cluster中的第0位数的位置进行交换,第一子cluster中的第1位数和第二子cluster 中的第1位数的位置进行交换,第一子cluster中的第2位数和第二子cluster中的2位数的位置进行交换,第一子cluster中的第3位数和第二子cluster中的3 位数的位置进行交换。对于子蝶网络(簇)cluster1”,子蝶网络(簇)cluster1”中的第一子cluster1”中的第0位数a7以及第二子cluster1”中的第0位数a3进行交换,第一子cluster1”中的第1位数a6以及第二子cluster1”中的第1位数a2进行交换,第一子cluster1”中的第2位数a5以及第二子cluster1”中的第2位数a1进行交换,第一子cluster1”中的第3位数a4以及第二子cluster1”中的第3位数a0进行交换,得到第三级的输出数据a0、a1、a2、a3、a4、a5、a6、a7。
118.也就是说,对于一个n位的二进制数,逆蝴蝶网络可以通过log2(n)级网络来对输入数据进行位反转,第i级的控制信号为2
i-1
位全1的二进制信号。通过将该控制信号,逆蝴蝶网络即可实现对输入数据的位反转。所以位反转控制信号生成单元202a生成的位反转控制信号可以实现逆蝴蝶网络中的输入数据的位反转。
119.循环移位控制信号生成单元202b,用于生成逆蝴蝶网络各级对应的位循环移位控制信号。
120.下面对于循环移位控制信号进行介绍。
121.假设逆蝴蝶网络为k级的网络,则输入到该网络的二进制数包括2k位数字,则第n
级的控制信号的位数为2
n-1
位,若移位的位数对应的二进制数为m,则第n级的控制信号可以通过以下方式得到:a.2n位二进制数的特定信号(其中,特定信号高2
n-1
位为0,低2
n-1
位为1)循环左移(操作指令为循环左移)或循环右移(操作指令为循环右移)j位(j为m的后n位对应的十进制数),得到中间控制信号p;b.将p的前2
n-1
位作为第n级的控制信号。
122.例如,以循环右移5位,逆蝴蝶网络为3级的网络为例,则输入到该网络的二进制数包括8位数字,若想循环右移5位,只需生成循环右移5位的控制信号即可。其中,循环右移5位对应的二进制数为3’b101。
123.如图3c所示,第一级对应的特定信号为2位二进制数01,即2’b01,将特定信号2’b01循环右移1位,其中右移“1位”为3’b101中的最低位二进制数1对应的十进制数,2’b01》》》1’b1=2’b10(“》》》”表示循环右移),选择特定信号循环右移结果的高1位的数据作为第一级的循环右移控制信号,即第一级的循环右移控制信号为1’b1;第二级对应的特定信号为4’b0011,将特定信号4’b0011循环右移移位1位,即对应移位位数的二进制数3’b101的最低2位“01”, 4’b0011》》》2’b01=4’b1001,选择特定信号循环右移结果的高2位的数据作为第二级的循环右移控制信号,即第二级的循环右移控制信号为2’b10;第三级对应的特定信号为8’b00001111,将特定信号8’b00001111循环右移5位,即对应移位位数3’b101值,8’b00001111》》》3’b101=8’b01111000,选择特定信号循环右移结果的高4位数据作为第三级的循环右移控制信号,即第三级的循环右移控制信号为4’b0111。
124.下面以上述得到的循环右移5位的控制信号对逆蝴蝶网络作用为例,介绍使得逆蝴蝶网络输入数据实现位循环右移的具体过程,其中逆蝴蝶网络的输入数据以8比特数据为例。
125.如图3c所示,对于第一级网络,将输入数据分为了4个子蝶网络(簇)cluster,分别为cluster1~cluster4(图3c中仅示出了cluster1),每个cluster的前1位数字为第一子cluster、后1位数字为第二子cluster,第一级的控制信号为1’b1,对每个cluster中第一子cluster中的第0位数和第二子cluster中的第0位数的位置进行交换。对于子蝶网络(簇)cluster1,子蝶网络(簇)cluster1中的第一子cluster1 中的第0位数a7以及第二子cluster1中的第0位数a6进行交换,第一级的其他子蝶网络(簇)在控制信号下,各子cluster中对应位也进行交换,即cluster2中的数据a5以及a4进行交换,cluster3中的数据a3以及a2进行交换,cluster4中的数据a1以及a0进行交换,得到第一级的输出数据为a6、a7、a4、a5、a2、a3、 a0、a1。
126.对于第二级网络,将输入数据分为了2个子蝶网络(簇)cluster,分别为 cluster1’和cluster2’(图3c中仅示出了cluster1’),每个cluster的前2位数字为第一子cluster、后2位数字为第二子cluster,第二级的控制信号为2’b10,对每个cluster中第一子cluster中的第0位数和第二子cluster中的第0位数的位置上的数不变,第一子cluster中的第1位数和第二子cluster中的第1位数的位置上的数进行交换。对于子蝶网络(簇)cluster1’,子蝶网络(簇)cluster1’中的第一子 cluster1’中的第0位数a7以及第二子cluster1’中的第0位数a5保持不变,第一子cluster1’中的第1位数a6以及第二子cluster1’中的第1位数a4进行交换;第二级的其他子蝶网络(簇)在控制信号下,cluster2’中的数据a3以及a1保持不变,数据a2以及a0进行交换;最后得到第二级的输出数据为a4、a7、a6、a5、a0、 a3、a2、a1。
127.对于第三级网络,将输入数据分为了1个子蝶网络(簇)cluster,为cluster1”每个cluster的前4位数字为第一子cluster、后2位数字为第二子cluster,第三级的控制信号为4’b0111,对每个cluster中第一子cluster中的第0位数和第二子 cluster中的第0位数的位置进行交换,第一子cluster中的第1位数和第二子cluster 中的第1位数的位置进行交换,第一子cluster中的第2位数和第二子cluster中的2位数的位置进行交换,第一子cluster中的第3位数和第二子cluster中的3 位数的保持不变。对于子蝶网络(簇)cluster1”,子蝶网络(簇)cluster1”中的第一子cluster1”中的第0位数a5以及第二子cluster1”中的第0位数a1进行交换,第一子cluster1”中的第1位数a6以及第二子cluster1”中的第1位数a2进行交换,第一子cluster1”中的第2位数a7以及第二子cluster1”中的第2位数a3进行交换,第一子cluster1”中的第3位数a4以及第二子cluster1”中的第3位数a0不变,得到第三级的输出数据a4、a3、a2、a1、a0、a7、a6、a5。
128.又例如,以循环左移5位,逆蝴蝶网络为3级的网络为例,则输入到该网络的二进制数为8位二进制数,若想循环左移5位,只需生成循环左移5位的控制信号即可。其中,循环左移5位对应的二进制数为3’b101。
129.如图3d所示,第一级对应的特定信号为2’b01,将特定信号2’b01循环左移1位,其中“1位”为3’b101中的最低位二进制数1对应的十进制数, 2’b01《《《1’b1=2’b10(“《《《”表示循环左移),选择特定信号循环左移结果的高1 位的数据作为第一级的循环左移控制信号,即第一级的循环左移控制信号为1’b1;第二级对应的特定信号为4’b0011,将特定信号4’b0011循环左移移位1位,即对应移位位数3’b101的最低2位“01”,4’b0011《《《2’b01=4’b0110,选择特定信号循环左移结果的高2位的数据作为第二级的循环左移控制信号,即第二级的循环左移控制信号为2’b01;第三级对应的特定信号为8’b00001111,将特定信号 8’b00001111循环左移5位,即对应移位位数3’b101值, 8’b00001111《《《3’b101=8’b11100001,选择特定信号循环左移结果的高4位数据作为第三级的循环左移控制信号,即第三级的循环左移控制信号为4’b1110。
130.如图3d所示,对于第一级网络,将输入数据分为了4个子蝶网络(簇)cluster,分别为cluster1~cluster4(图3d中仅示出了cluster1),每个cluster的前1位数字为第一子cluster、后1位数字为第二子cluster,第一级的控制信号为1’b1,对每个cluster中第一子cluster中的第0位数和第二子cluster中的第0位数的位置进行交换。对于子蝶网络(簇)cluster1,子蝶网络(簇)cluster1中的第一子cluster1 中的第0位数a7以及第二子cluster1中的第0位数a6进行交换,第一级的其他子蝶网络(簇)在控制信号下,各子cluster中对应位也进行交换,即cluster2中的数据a5以及a4进行交换,cluster3中的数据a3以及a2进行交换,cluster4中的数据a1以及a0进行交换,得到第一级的输出数据为a6、a7、a4、a5、a2、a3、 a0、a1。
131.对于第二级网络,将输入数据分为了2个子蝶网络(簇)cluster,分别为 cluster1’和cluster2’(图3d中仅示出了cluster1’),每个cluster的前2位数字为第一子cluster、后2位数字为第二子cluster,第二级的控制信号为2’b01,对每个cluster中第一子cluster中的第0位数和第二子cluster中的第0位数的位置上的数交换,第一子cluster中的第1位数和第二子cluster中的第1位数的位置上的数不变。对于子蝶网络(簇)cluster1’,子蝶网络(簇)cluster1’中的第一子 cluster1’中的第0位数a7以及第二子
cluster1’中的第0位数a5交换,第一子 cluster1’中的第1位数a6以及第二子cluster1’中的第1位数a4不变;第二级的其他子蝶网络(簇)在控制信号下,cluster2’中的数据a3以及a1交换,数据a2以及 a0不变;最后得到第二级的输出数据为a6、a5、a4、a7、a2、a1、a0、a3。
132.对于第三级网络,将输入数据分为了1个子蝶网络(簇)cluster,为cluster1”每个cluster的前4位数字为第一子cluster、后2位数字为第二子cluster,第三级的控制信号为4’b1110,对每个cluster中第一子cluster中的第0位数和第二子 cluster中的第0位数的不变,第一子cluster中的第1位数和第二子cluster中的第1位数的位置进行交换,第一子cluster中的第2位数和第二子cluster中的2 位数的位置进行交换,第一子cluster中的第3位数和第二子cluster中的3位数交换。对于子蝶网络(簇)cluster1”,子蝶网络(簇)cluster1”中的第一子cluster1”中的第0位数a7以及第二子cluster1”中的第0位数a3不变,第一子cluster1”中的第1位数a4以及第二子cluster1”中的第1位数a0进行交换,第一子cluster1”中的第2位数a5以及第二子cluster1”中的第2位数a1进行交换,第一子cluster1”中的第3位数a6以及第二子cluster1”中的第3位数a2进行交换,得到第三级的输出数据a2、a1、a0、a7、a6、a5、a4、a3。
133.所以,循环移位控制信号生成单元202b,根据移位位数和移位类型可以得到对应的循环移位控制信号,并且根据循环移位控制信号对逆蝴蝶网络中的输入数据的进行循环移位,就可实现逆蝴蝶网络的输入数据的各个位置上的数字进行相应位置的调整了。
134.控制信号异或单元202c,用于将位反转控制信号生成单元202a生成的位反转控制信号与循环移位控制信号生成单元202b生成的循环移位控制信号进行异或操作,生成位反转循环移位控制信号,该控制信号即为控制信号生成单元202 输出的控制信号。
135.下面将位反转控制信号与循环移位控制信号进行异或操作进行介绍。
136.只需将位反转控制信号与循环移位控制信号生成单元202b生成的循环移位控制信号进行异或操作,就可以得到位反转循环移位控制信号。则第n级的控制信号可以通过以下方式得到:获取第n级的位反转控制信号和循环移位控制信号;将第n级的位反转控制信号的第i位的二进制值与第n级循环移位控制信号的第i位的二进制值进行异或操作,即如果位反转控制信号的第i位的值与循环移位控制信号的第i位的值相同,则得到的位反转循环移位控制信号的第i 位的值为0,如果位反转控制信号的第i位的值与循环移位控制信号的第i位的值不同,则得到的位反转循环移位控制信号的第i位的值为1。
137.如图3e所示,以图3b所示的位反转控制信号以及图3c所示的移位类型为右移,移位位数为5位得到的循环右移控制信号进行异或操作,得到位反转循环右移控制信号为例进行阐述。
138.对于第一级网络,位反转控制信号1’b1,循环右移控制信号1’b1,将第1 级的位反转控制信号的第0位的二进制值1与循环移位控制信号的第0位的值1 进行异或操作,两个值相同,得到第1级的位反转循环移位控制信号的第0位的值为0,则第一级网络的位反转循环移位控制信号为1’b0;
139.对于第二级网络,位反转控制信号2’b11,循环右移控制信号2’b10,将第二级的位反转控制信号的第0位的二进制值1与循环移位控制信号的第0位的值 0进行异或操作,两个值不同,得到第二级的位反转循环移位控制信号的第0位的值为1,将第二级的位反转控制信号的第1位的二进制值1与循环移位控制信号的第1位的值1进行异或操作,两个值相
同,得到第二级的位反转循环移位控制信号的第1位的值为0,则第二级网络的位反转循环移位控制信号为2’b01;
140.对于第三级网络,位反转控制信号4’b1111,循环右移控制信号4’b0111,将第三级的位反转控制信号的第0位的二进制值1与循环移位控制信号的第0位的值1进行异或操作,两个值相同,得到第三级的位反转循环移位控制信号的第0 位的值为0,将第三级的位反转控制信号的第1位的二进制值1与循环移位控制信号的第1位的值1进行异或操作,两个值相同,得到第三级的位反转循环移位控制信号的第1位的值为0,将第三级的位反转控制信号的第2位的二进制值1 与循环移位控制信号的第2位的值1进行异或操作,两个值相同,得到第三级的位反转循环移位控制信号的第2位的值为0,将第三级的位反转控制信号的第3 位的二进制值1与循环移位控制信号的第3位的值0进行异或操作,两个值不同,得到第三级的位反转循环移位控制信号的第3位的值为1,则第三级网络的位反转循环移位控制信号为4’b1000。
141.下面以上述得到的循环右移5位的控制信号对逆蝴蝶网络作用为例,介绍通过将位反转控制信号与循环移位控制信号进行异或操作得到的位反转循环右移控制信号使得逆蝴蝶网络输入数据能够实现位反转并循环右移的效果。
142.图3e示出了以逆蝴蝶网络的输入数据为8比特数据为例,使用位反转循环移位信号对输入数据进行位反转并循环右移5位的具体过程。
143.对于第一级网络,将输入数据分为了4个子蝶网络(簇)cluster,分别为 cluster1~cluster4(图3e中仅示出了cluster1),每个cluster的前1位数字为第一子cluster、后1位数字为第二子cluster,第一级的控制信号为1’b0,则每个cluster 中第一子cluster中的第0位数和第二子cluster中的第0位数的不变。对于子蝶网络(簇)cluster1,子蝶网络(簇)cluster1中的第一子cluster1中的第0位数a7 以及第二子cluster1中的第0位数a6不变,第一级的其他子蝶网络(簇)在控制信号下,各子cluster中对应位也不变,即cluster2中的数据a5以及a4保持原值, cluster3中的数据a3以及a2保持原值,cluster4中的数据a1以及a0保持原值,得到第一级的输出数据为a7、a6、a5、a4、a3、a2、a1、a0。
144.对于第二级网络,将输入数据分为了2个子蝶网络(簇),分别为cluster1’和cluster2’(图3e中仅示出了cluster1’),每个cluster的前2位数字为第一子 cluster、后2位数字为第二子cluster,第二级的控制信号为2’b01,对每个cluster 中第一子cluster中的第0位数和第二子cluster中的第0位数的位置上的数交换,第一子cluster中的第1位数和第二子cluster中的第1位数的位置上的数不变。对于子蝶网络(簇)cluster1’,子蝶网络(簇)cluster1’中的第一子cluster1’中的第0 位数a6以及第二子cluster1’中的第0位数a4交换,第一子cluster1’中的第1位数a7以及第二子cluster1’中的第1位数a5不变;第二级的其他子蝶网络(簇)在控制信号下,cluster2’中的数据a2以及a0交换,数据a3以及a1不变;最后得到第二级的输出数据为a7、a4、a5、a6、a3、a0、a1、a2。
145.对于第三级网络,将输入数据分为了1个子蝶网络(簇),为cluster1”,每个 cluster的前4位数字为第一子cluster、后2位数字为第二子cluster,第三级的控制信号为4’b1000,对每个cluster中第一子cluster中的第0位数和第二子cluster 中的第0位数的不变,第一子cluster中的第1位数和第二子cluster中的第1位数的不变,第一子cluster中的第2位数和第二子cluster中的第2位数不变,第一子cluster中的第3位数和第二子
cluster中的第3位数交换。对于子蝶网络 (簇)cluster1”,子蝶网络(簇)cluster1”中的第一子cluster1”中的第0位数a6以及第二子cluster1”中的第0位数a2保持不变,第一子cluster1”中的第1位数a5以及第二子cluster1”中的第1位数a1保持不变,第一子cluster1”中的第2位数a4 以及第二子cluster1”中的第2位数a0保持不变,第一子cluster1”中的第3位数 a7以及第二子cluster1”中的第3位数a3进行交换,得到第三级的输出数据a3、 a4、a5、a6、a7、a0、a1、a2。
146.对于位反转循环左移,图3f示出了以图3b所示的位反转控制信号以及图 3d所示的移位类型为左移、移位位数为5位的循环左移控制信号进行异或操作,将得到的位反转循环左移控制信号对逆蝴蝶网络的输入数据进行位反转并循环移位的具体过程,其中,根据位反转控制信号与循环左移控制信号异或操作得到如图3f所示的位反转循环左移控制信号的具体过程与如图3e所示的得到位反转循环右移控制信号的过程相同,在此不做赘述。如图3f所示的,各级将位反转控制信号与循环左移控制信号进行异或得到各级的位反转循环左移控制信号,第一级为1’b0,第二级为2’b10,第三级4’b0001。
147.将得到的位反转循环左移控制信号控制逆蝴蝶网络的输入数据,可以实现输入数据的位反转并循环左移。图3f示出了左移5位对应的位反转循环左移控制信号对逆蝴蝶网络的输入数据的控制过程,具体控制过程与上述位反转循环右移控制过程相同,在此不做赘述。图3f实现了将输入数据a7、a6、a5、a4、a3、 a2、a1、a0进行位反转并循环左移5位的结果,为a5、a6、a7、a0、a1、a2、a3、 a4。
148.可以理解的,上述通过将位反转控制信号与循环移位控制信号进行异或操作,得到的位反转循环移位控制信号对逆蝴蝶网络的输入数据实现位反转并循环移位仅仅是一种示例。
149.通过前述控制信号生成单元202,可以直接生成利用逆蝴蝶网络对输入数据进行位反转并循环移位的控制信号,从而逆蝴蝶网络基于该控制信号和输入数据,可以直接得到对输入数据进行位反转并移位的位反转并循环移位结果,实现了对数据进行位反转并移位的并行运算,有利于加快计算速度、减少计算耗时。
150.下面对图2中的后处理单元204,基于移位类型以及移位位数对逆蝴蝶网络单元203得到的位反转并循环移位结果进行后处理的逻辑进行介绍。
151.如前所述,逆蝴蝶网络输出的是位反转并移位的中间计算结果,为得到的位反转并移位的最后结果,可以通过后处理单元204对逆蝴蝶网络单元203得到的中间计算结果进行后处理。例如,可以根据掩码膜与中间计算结果位与,从而得到位反转并移位的最后结果。
152.具体地,图4a根据本技术的一些实施例,示出了一种并行的后处理单元204 结构示意图。如图4a所示,后处理单元204包括掩膜码生成单元204a以及位与单元204b。
153.掩膜码生成单元204a,用于根据移位类型和移位位数生成掩膜码;
154.位与单元204b,用于将逆蝴蝶网络单元203得到的中间计算结果与掩膜码生成单元204a得到的掩膜码位与,将高位或者低位置0,从而得到输出结果。例如,得到的中间计算结果为位反转并循环移位结果,则将得到的位反转并循环移位结果与根据移位类型和移位位数得到的掩膜码位与,将高位或者低位置0,从而得到位反转并移位结果。
155.下面对掩膜码生成单元204a根据移位类型和移位位数生成掩膜码的逻辑进行介
绍。
156.掩膜码的位宽与逆蝴蝶网络单元203得到的中间计算结果的位宽相同。当移位类型为循环移位的时候,掩膜码各比特位上的二进制值全为1;当移位类型不为循环移位的时候,对于右移,从高位开始,掩膜码高移位位数个比特位的值均为0,剩余比特位的值均为1。对于左移,从低位开始,掩膜码低移位位数个比特位的值均为0,剩余比特位的值均为1。
157.下面以掩膜码的位宽为8比特为例进行介绍,对于移位类型为循环左移或者循环右移时,掩膜码生成单元204a得到的掩膜码值的各比特位全为1,即 8’b11111111,指8位二进制数的值为11111111。对于移位类型不为循环移位时,即为左移或者右移时,图4b示出了移位位数对应的十进制值在0到7之间,掩膜码生成单元204a根据移位位数以及移位类型得到的8位二进制掩膜码值。
158.记移位位数对应的3比特位从高到低位为b2、b1以及b0位,右移对应的8 比特位掩膜码从高到低位为a7、a6、a5、a4、a3、a2、a1、a0位,左移对应的8比特位掩膜码从高到低位为a7、a6、a5、a4、a3、a2、a1、a0位。如图4b所示,当移位位数为3’b000时,右移掩膜码为8’b11111111,左移掩膜码为8’b11111111;当移位位数为3’b001时,右移掩膜码为8’b01111111,左移掩膜码为8’b11111110;当移位位数为3’b010时,右移掩膜码为8’b00111111,左移掩膜码为8’b11111100;当移位位数为3’b011时,右移掩膜码为8’b00011111,左移掩膜码为8’b11111000;当移位位数为3’b100时,右移掩膜码为8’b00001111,左移掩膜码为8’b11110000;当移位位数为3’b101时,右移掩膜码为8’b00000111,左移掩膜码为8’b11100000;当移位位数为3’b110时,右移掩膜码为8’b00000011,左移掩膜码为8’b11000000;当移位位数为3’b111时,右移掩膜码为8’b00000001,左移掩膜码为8’b10000000。图4a示出的位与单元204b,将逆蝴蝶网络单元203 得到的中间计算结果的各比特位与掩膜码生成单元204a得到的掩膜码的各比特位进行与操作,从而得到位反转并移位的结果,即输出结果。
159.以位取反并右移5位为例,图4a中的掩膜码生成单元204a可以将上述图 3e中的得到的中间计算结果,即位反转并循环右移结果a3、a4、a5、a6、a7、 a0、a1、a2与右移5位对应的掩膜码8’b00000111相位与得到位反转并右移的结果0、0、0、0、0、a0、a1、a2。
160.在一些实施例中,掩膜码生成单元204a生成掩膜码的过程可以和,控制信号生成单元202生成控制信号以及逆蝴蝶网络单元203对输入数据进行位反转并循环移位得到中间计算结果的过程并行执行,从而可以加快计算速度,减少计算时间。在一些实现方式中,掩膜码生成单元204a可以采用温度码的电路结构,电路结构简单,便于实现。
161.可以理解的,控制信号生成单元202中包括并行的位反转控制信号生成单元 202a与循环移位控制信号生成单元202b结构,通过控制信号异或单元202c将前述两个控制信号生成单元生成的控制信号进行异或,从而得到可以实现两个控制功能的控制信号,加快计算时间、减少耗时,该方法可以拓展到将多个实现不同功能的控制信号进行异或,生成具有位反转以及循环移位功能的控制信号,只要是将多个位反转控制信号以及循环移位控制信号进行异或,从而生成对应具备对应位反转以及循环移位功能的控制信号的方法、电路或者装置都在本技术的保护范围内。
162.可以理解的,上述示出的一种位反转移位装置200仅仅是一种示意,本技术实施例示出的位反转移位装置200的结构并不构成对位反转移位装置200的具体限定,在本技术的
其他一些实施例中,还可以包括更少或者更多的单元,或者组合某些部件,或者拆分某些部件,或者不同的部件布置,图示的部件可以以硬件,软件或软件和硬件的组合实现。
163.本技术实施例还提供了一种位反转移位方法,可以利用上述示出的位反转移位装置200来实现对数据的位反转并移位。由于位反转移位装置200具有实现位反转移位方法的对应功能单元,可以结合图2所示的位反转移位装置200、图3a 所示的控制信号生成单元202的结构以及图4a所示的后处理单元204结构进行介绍。
164.具体地,图5根据本技术的一些实施例,示出了一种位反转移位方法的流程示意图。如图5所示,该方法包括如下步骤。
165.s501:数据获取单元201获取输入参数数据,其中输入参数数据包括输入数据、移位类型和移位位数。
166.在一些实施例中,数据获取单元201获取位反转并移位的输入参数数据,并且将输入参数数据中的移位类型以及移位位数发送给控制信号生成单元202和后处理单元204,将输入数据发送给逆蝴蝶网络单元203。
167.可以理解的,数据获取单元201获取的位反转并移位的输入参数数据可以为位反转并移位相关指令的输入参数数据。其中,输入数据为需要进行位反转并移位的二进制数,移位类型为循环左移、循环右移、左移或者右移。
168.例如,以需要进行位反转并移位的二进制数为8比特数据为例,数据获取单元201获取位反转并移位的输入参数数据,包括输入数据8’b00001111,移位类型为右移,移位位数为5位,对应的二进制数为3’b101,并且将将输入参数数据中的移位类型右移以及移位位数3’b101发送给控制信号生成单元202和后处理单元204,将输入数据8’b00000111发送给逆蝴蝶网络单元203。
169.s502:控制信号生成单元202根据移位类型和移位位数生成控制信号。
170.在一些实施例中,控制信号生成单元202根据移位类型和移位位数生成控制信号,用于实现对逆蝴蝶网络单元203的输入数据的二进制数位反转以及循环移位。
171.具体地,对于生成位反转循环移位控制信号,控制信号生成单元202包括位反转控制信号生成单元202a、循环移位控制信号生成单元202b和控制信号异或单元202c。
172.位反转控制信号生成单元202a用于生成逆蝴蝶网络各级对应的位反转控制信号,并将获得的位反转控制信号发送给控制信号异或单元202c。其中,逆蝴蝶网络各级对应的位反转控制信号上各个位数的值为二进制数1。例如,对于一个3级的逆蝴蝶网络,第一级位反转控制信号为1’b1,第二级位反转控制信号为 2’b11,第三级位反转控制信号为4’b1111。
173.循环移位控制信号生成单元202b用于根据移位位数以及移位类型生成逆蝴蝶网络各级对应的循环移位控制信号,并将获得的循环移位控制信号发送给控制信号异或单元202c。例如,对于一个3级的逆蝴蝶网络,移位类型为右移,移位位数为5位,对应的二进制数为3’b101,根据如图3c所示的方式得到对应的循环右移控制信号为,第一级1’b1,第二级2’b10,第三级4’b0111,并将生成的循环右移控制信号发送给控制信号异或单元202c。
174.控制信号异或单元202c接收位反转控制信号生成单元202a发送的位反转控制信号以及循环移位控制信号生成单元202b发送的循环移位控制信号,将接收的对应级数的位反转控制信号与对应级数的循环移位控制信号对应比特位进行异或,得到对应级数的位反
转循环移位控制信号,将生成的位反转循环移位控制信号作为控制信号生成单元202的输出。例如,接收位反转控制信号生成单元 202a发送的如图3b所示的位反转控制信号,第一级为1’b1,第二级为2’b11,第三级为4’b1111,接收循环移位控制信号生成单元202b发送的如图3c所示的循环右移控制信号,第一级1’b1,第二级2’b10,第三级4’b0111。如图3e所示,将第一级位反转控制信号1’b1与第一级循环右移控制信号1’b1进行异或,得到第一级位反转循环右移控制信号为1’b0;将第二级位反转控制信号2’b11与第二级循环右移控制信号2’b10进行异或,得到第二级位反转循环右移控制信号为 2’b01,将第三级位反转控制信号4’b1111与第三级循环右移控制信号4’b0111进行异或,得到第三级位反转循环右移控制信号4’b1000。控制信号异或单元202c 并将生成的位反转循环右移控制信号第一级1’b0、第二级2’b01以及第三级 4’b1000发送给逆蝴蝶网络单元203。
175.s503:逆蝴蝶网络单元203根据输入数据以及获取的控制信号得到中间计算结果。
176.在一些实施例中,逆蝴蝶网络单元203,用于接收控制信号生成单元202给控制信号,并根据获取的控制信号对数据获取单元201给的输入数据进行位反转并循环移位,得到中间计算结果,并将中间计算结果给后处理单元204。
177.例如,逆蝴蝶网络单元203,接收控制信号生成单元202给的如图3e所示的位反转循环右移控制信号,并根据获取的位反转循环右移控制信号对数据获取单元201给的输入数据8’b00001111,进行位反转并循环右移5位,得到如图3e 所示的对输入数据进行位反转并循环移位后的二进制数(位反转并循环移位结果),即中间计算结果为8’b10000111,并将中间计算结果8’b10000111给后处理单元204。
178.s504:后处理单元204根据移位类型和移位位数生成掩膜码,对中间计算结果后处理,得到输出数据。
179.在一些实施例中,后处理单元204根据数据获取单元201给的移位类型和移位位数生成掩膜码,通过对逆蝴蝶网络单元203给的中间计算结果与掩膜码位与的方式进行后处理,得到输出数据。
180.具体地,后处理单元204包括掩膜码生成单元204a以及位与单元204b。
181.掩膜码生成单元204a,用于根据数据获取单元201给的移位类型和移位位数生成掩膜码,生成掩膜码的比特位个数与中间计算结果比特位的个数相同。当移位类型为循环移位时,掩膜码各比特位的二进制值全为1,当移位类型为右移时,从高位开始,掩膜码前移位位数个比特位的值均为二进制0,剩余比特位的值均为二进制1,当移位类型为左移时,从低位开始,掩膜码后移位位数个比特位的值均为二进制0,剩余比特位的值均为二进制1,即从低位开始,0的数量为左移的位数。例如,图4b示出了,对于8比特的输入数据,掩膜码生成单元204 根据移位类型以及移位位数得到的对应的掩膜码。在一些实现方式中,数据获取单元201可以根据温度码(thermometer code)的逻辑,生成相应的掩膜码。
182.位与单元204b,用于将逆蝴蝶网络单元203得到的中间计算结果与掩膜码生成单元204a得到的掩膜码位与,从而得到位反转并移位的结果,即输出结果。
183.例如,移位位数为5位,移位类型为右移,位与单元204b将掩膜码生成单元204a得到对应的掩膜码8’b00000111与逆蝴蝶网络单元203给的中间计算结果8’b10000111位与得到位反转并右移结果8’b00000111。
184.可以理解,上述步骤s501至步骤s504的执行顺序只是一种示例,在另一些实施例
中,也可以采用其他执行顺序,还可以拆分或合并部分步骤,在此不做限定。
185.可以理解的,本技术提出的位反转移位装置可以运用在电子设备的处理器中。
186.为便于理解本技术各实施的技术方案,下面对电子设备100的硬件结构进行介绍。
187.进一步,图6根据本技术的一些实施例,示出了一种电子设备100的结构示意图。如图6所示电子设备100包括一个或多个处理器101、系统内存102、非易失性存储器(non-volatile memory,nvm)103、通信接口104、输入/输出(i/o) 设备105、以及用于耦接处理器101、系统内存102、非易失性存储器103、通信接口104和输入/输出(i/o)设备105的系统控制逻辑106。
188.其中:处理器101可以包括一个或多个处理单元,例如,可以包括中央处理器cpu(central processing unit)、图像处理器gpu(graphics processing unit)、数字信号处理器dsp(digital signal processor)、神经网络处理器(neural networkprocessing unit,npu)、微处理器mcu(micro-programmed control unit)、 ai(artificial intelligence,人工智能)处理器或、编程逻辑器件fpga(fieldprogrammable gate array)的处理模块或处理电路或其他包括对数据位反转移位装置,并且根据移位指令实现对数据位反转并移位的处理器,具体处理器类型在此不做具体要求。
189.在一些实施例中,处理器101可以包括前述位反转移位装置,以在需要对数据进行位反转并移位的情况下,利用位反转移位装置来处理涉及到的位反转并移位相关的指令,由于该装置采用了并行的结构,计算效率高。
190.系统内存102是易失性存储器,例如随机存取存储器(random-accessmemory,ram),双倍数据率同步动态随机存取存储器(double data ratesynchronous dynamic random access memory,ddr sdram)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储上述进行对数据位反转并移位的相关指令等。
191.非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,hdd)、光盘(compact disc,cd)、数字通用光盘 (digital versatile disc,dvd)、固态硬盘(solid-state drive,ssd)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(securedigital,sd)存储卡等。
192.特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101中的至少一个执行使电子设备100实现本技术各实施例提供的根据对数据位反转并移位相关指令实现对数据进行位反转并移位后的二进制数。
193.通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101a中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信。
194.输入/输出(i/o)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(i/o)设备105与电子设备100进行交互。
195.系统控制逻辑106可以包括任意合适的接口控制器,以终端100的其他模块提供任
意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
196.在一些实施例中,处理器101中的至少一个可以与用于系统控制逻辑106 的一个或多个控制器的逻辑封装在一起,以形成系统封装(system in package, sip)。在另一些实施例中,处理器101中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上系统 (system-on-chip,soc)。
197.可以理解,图6所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
198.本技术公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
199.可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(digital signal processor,dsp)、微控制器、专用集成电路(application specific integrated circuit,asic)或微处理器之类的处理器的任何系统。
200.程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
201.在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(read only memory,rom)、随机存取存储器(randomaccess memory,ram)、可擦除可编程只读存储器(erasable programmable readonly memory,eprom)、电可擦除可编程只读存储器(electrically erasableprogrammable read-only memory,eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
202.在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
203.需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,
在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/ 模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
204.需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
205.虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。

技术特征:
1.一种位反转移位方法,应用于电子设备,其特征在于,包括:获取待处理数据;根据所述待处理数据的移位类型和移位位数生成移位控制信号,并根据所述待处理数据的位数生成位反转控制信号;对所述移位控制信号和所述位反转控制信号进行异或运算得到位反转移位控制信号;将所述位反转移位控制信号和所述待处理数据输入逆蝴蝶网络,得到所述待处理数据的位反转并循环移位的结果;根据所述移位类型和所述移位位数对所述位反转并循环移位的结果进行后处理,得到所述待处理数据的位反转并移位的结果。2.根据权利要求1所述的方法,其特征在于,所述逆蝴蝶网络包括k级网络,所述待处理数据的二进制数有2
k
位,所述移位控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个移位控制信号,与所述逆蝴蝶网络的第n级网络对应的移位控制信号的位数为2
n-1
位,所述移位位数为h位,h对应的二进制数为m,其中,k≥n;并且所述根据所述待处理数据的移位类型和移位位数生成移位控制信号,包括:在所述移位类型为左移或者循环左移的情况下,将第一信号循环左移j位后的二进制数的前2
n-1
位数,作为与所述逆蝴蝶网络的第n级网络对应的移位控制信号,其中,所述第一信号为高2
n-1
位为0,低2
n-1
位为1的2
n
位的二进制数,j为m的后n位数对应的十进制数;在所述移位类型为右移或者循环右移的情况下,将所述第一信号循环右移j位后的二进制数的前2
n-1
位数,作为与所述逆蝴蝶网络的第n级网络对应的移位控制信号。3.根据权利要求2所述的方法,其特征在于,所述位反转控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个位反转控制信号,与所述逆蝴蝶网络的第n级网络对应的位反转控制信号的位数为2
n-1
位;并且所述根据所述待处理数据的位数生成位反转控制信号,包括:将第二信号设置为与所述逆蝴蝶网络的第n级网络对应的位反转控制信号,其中,所述第二信号为2
n-1
位全为1的二进制数。4.根据权利要求3所述的方法,其特征在于,所述位反转移位控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个位反转移位控制信号;并且,所述对所述移位控制信号和所述位反转控制信号进行异或运算得到位反转移位控制信号,包括:将与所述逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算的结果,作为与所述逆蝴蝶网络的第n级网络对应的位反转移位控制信号。5.根据权利要求1至4中任一项所述的方法,其特征在于,其中,根据所述移位类型和所述移位位数对所述位反转并循环移位的结果进行后处理,包括:在所述移位类型为左移,所述移位位数为h位的情况下,将所述位反转并循环移位的结果的低h位设置为零;在所述移位类型为右移,所述移位位数为h位的情况下,将所述位反转并循环移位的结果的高h位设置为零;在所述移位类型为循环右移或者循环左移,所述移位位数为h位的情况下,将所述位反转并循环移位的结果的各位保持不变。6.根据权利要求5所述的方法,其特征在于,其中,所述在所述移位类型为左移,所述移
位位数为h位的情况下,将所述位反转并循环移位的结果的低h位设置为零,包括:将所述位反转并循环移位的结果与第一掩膜码进行位与运算,其中,所述第一掩膜码的位数和所述位反转并循环移位的结果的位数为p,并且所述第一掩膜码的低h位为0、高p-h位为1。7.根据权利要求5所述的方法,其特征在于,其中,在所述移位类型为右移,所述移位位数为h位的情况下,将所述位反转并循环移位的结果的高h位设置为零,包括:将所述位反转并循环移位的结果与第二掩膜码进行位与运算,其中,所述第二掩膜码的位数和所述位反转并循环移位的结果的位数为q,并且所述第二掩膜码的高h位为0、低q-h位为0。8.一种位反转移位装置,其特征在于,包括:控制信号生成单元,用于根据待处理数据的移位类型和移位位数生成移位控制信号,并根据所述待处理数据的位数生成位反转控制信号,对所述移位控制信号和所述位反转控制信号进行异或运算得到位反转移位控制信号;逆蝴蝶网络,用于根据所述位反转移位控制信号以及所述待处理数据,得到所述待处理数据的位反转并循环移位的结果;后处理单元,用于根据所述移位类型和所述移位位数对所述位反转并循环移位的结果进行后处理,得到所述待处理数据的位反转并移位的结果。9.根据权利要求8所述的装置,其特征在于,所述逆蝴蝶网络包括k级网络,所述待处理数据的二进制数有2
k
位,所述移位控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个移位控制信号,与所述逆蝴蝶网络的第n级网络对应的移位控制信号的位数为2
n-1
位,所述移位位数为h位,h对应的二进制数为m,其中,k≥n;并且所述控制信号生成单元通过以下方式根据所述待处理数据的移位类型和移位位数生成移位控制信号:所述控制信号生成单元在所述移位类型为左移或者循环左移的情况下,将第一信号循环左移j位后的二进制数的前2
n-1
位数,作为与所述逆蝴蝶网络的第n级网络对应的移位控制信号,其中,所述第一信号为高2
n-1
位为0,低2
n-1
位为1的2
n
位的二进制数,j为m的后n位数对应的十进制数;所述控制信号生成单元在所述移位类型为右移或者循环右移的情况下,将所述第一信号循环右移j位后的二进制数的前2
n-1
位数,作为与所述逆蝴蝶网络的第n级网络对应的移位控制信号。10.根据权利要求9所述的装置,其特征在于,所述位反转控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个位反转控制信号,与所述逆蝴蝶网络的第n级网络对应的位反转控制信号的位数为2
n-1
位;并且所述控制信号生成单元通过以下方式根据所述待处理数据的位数生成位反转控制信号:所述控制信号生成单元将第二信号设置为与所述逆蝴蝶网络的第n级网络对应的位反转控制信号,其中,所述第二信号为2
n-1
位全为1的二进制数。11.根据权利要求10所述的装置,其特征在于,所述位反转移位控制信号包括与所述逆蝴蝶网络的k级网络分别对应的k个位反转移位控制信号;并且,所述控制信号生成单元通
过以下方式对所述移位控制信号和所述位反转控制信号进行异或运算得到位反转移位控制信号:所述控制信号生成单元将与所述逆蝴蝶网络的第n级网络对应的移位控制信号和位反转控制信号按比特位进行异或运算的结果,作为与所述逆蝴蝶网络的第n级网络对应的位反转移位控制信号。12.根据权利要求9至11中任一项所述的装置,其特征在于,所述移位位数为h位,所述位反转并循环移位的结果的位数为y;并且所述后处理单元通过以下方式根据所述移位类型和所述移位位数对所述位反转并循环移位的结果进行后处理:在所述移位类型为左移的情况下,将所述位反转并循环移位的结果与第一掩膜码进行位与运算得到所述位反转并移位的结果,其中,所述第一掩膜码的位数为y,并且所述第一掩膜码的低h位为0,高y-h为1;在所述移位类型为右移的情况下,将所述位反转并循环移位的结果与第二掩膜码进行位与运算得到所述位反转并移位的结果,其中,所述第二掩膜码的位数为y,所述第二掩膜码的高h位为0、低y-h位为1;在所述移位类型为循环右移或者循环左移的情况下,将所述位反转并循环移位的结果与第三掩膜码进行位与运算得到所述位反转并移位的结果,其中,所述第三掩膜码的位数为y,并且所述第三掩膜码的各位全为1。13.一种处理器,其特征在于,所述处理器包括权利要求8至12中任一项所述的位反转移位装置。14.一种电子设备,其特征在于,所述电子设备包括权利要求13所述的处理器。

技术总结
本申请涉计算机领域,公开了一种位反转移位方法、装置、处理器和电子设备。该方法包括:获取待处理数据;根据待处理数据的移位类型和移位位数生成移位控制信号,并根据待处理数据的位数生成位反转控制信号;对移位控制信号和位反转控制信号进行异或运算得到位反转移位控制信号;将位反转移位控制信号和待处理数据输入逆蝴蝶网络,得到待处理数据的位反转并循环移位的结果;对位反转并循环移位的结果进行后处理,得到待处理数据的位反转并移位的结果。因而,可以使计算机并行地对数据的二进制数进行位反转并移位操作,进而提高计算效率。进而提高计算效率。进而提高计算效率。


技术研发人员:谭波 蔡亮
受保护的技术使用者:安谋科技(中国)有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-9633.html

最新回复(0)