一种矢量排列电路及矢量处理器的制造方法_2

文档序号:9505972阅读:来源:国知局
其中,每个矢量数据组分别对应至少一个 选择单元11,且与每个矢量数据组对应的选择单元11均不相同;
[0049] 所述每个选择单元11,用于在所述控制单元13的控制下,对输入该选择单元11的 第一矢量数据组进行选择,并将选择后的第二矢量数据组输出至与该选择单元11连接的 交换单元12,所述第一矢量数据组为所述η个矢量数据组中的一个矢量数据组;
[0050] 所述每个交换单元12,用于在所述控制单元13的控制下,对输入该交换单元12的 所述第二矢量数据组中的元素进行交换后输出;
[0051] 所述控制单元13,用于控制所述每个选择单元11对输入该选择单元11的所述第 一矢量数据进行选择,以及控制所述每个交换单元12对输入该交换单元12的所述第二矢 量数据组中的元素进行交换。
[0052] 本发明实施例中,根据实际排列中的分组需求,η可以设置为2、3、4等整数。假设η 为2,则本发明实施例的矢量排列电路可以将待排列的矢量数据分为两个矢量数据组,例如 分为奇数矢量数据组和偶数矢量数据组;假设η为4,则本发明实施例的矢量排列电路可以 将待排列的矢量数据分为四个矢量数据组,例如矢量数据组1、矢量数据组2、矢量数据组3 和矢量数据组4,本发明不作具体限定。
[0053] 不例性的,假设待排列的矢量数据表不为{S63, S62, S61,......,S1, S。}。在本发明实 施例提供的矢量排列电路中,当η为2时,可以将待排列的矢量数据分为奇数矢量数据组和 偶数矢量数据组两个矢量数据组;其中,奇数矢量数据组表示为{S63, S61,……,S3, SJ,偶 数矢量数据组表示为{S62, S6。,……,S2, S。}。当η为4时,可以将待排列的矢量数据分为 矢量数据组1、矢量数据组2、矢量数据组3和矢量数据组4四个矢量数据组;其中,矢量数 据组1表示为{S 15, S14,……,S1, S。},矢量数据组2表示为{S31,S3。,……,S17, S1J,矢量 数据组3表示为{S47, S46,……,S33, S3J,矢量数据组4表示为{S63, S62,……,S49, S4J。
[0054] 本发明实施例中,假设待排列的矢量数据的位宽y为64,即待排列的矢量数据包 括64个元素,若待排列的矢量数据分为η个矢量数据组,则每个矢量数据组包括y/n个元 素。实际应用中,如果y/n不是整数,则可以将y/n按照向上取整或向下取整处理,例如,如 果y = 64,n = 3,则y/n可以取21或22。例如,可以使得3个矢量数据组中1个矢量数据 组中包括22个元素,其他2个矢量数据组中包括21个元素;当然,优选的,为了方便实现, 可以使得3个矢量数据组中均包括22个元素,其中,这3个矢量数据组中不够分组的元素 可以用〇补齐。
[0055] 示例性的,假设上述待排列的矢量数据{S63,S62,S 61,……,S1, S。}被分为3组,分别 为矢量数据组1、矢量数据组2和矢量数据组3 ;则矢量数据组1可以表示为{S2(],S19,……, S1, S。},矢量数据组2可以表示为{S41,S4。,……,S22, S21},矢量数据组3可以表示为{S63, S62, ......,s43, S42};或者矢量数据组1可以表示为{0, S2。,S19,......,S1, S。},矢量数据组2 可以表示为{〇, s41,S4。,……,S22, S2J,矢量数据组3可以表示为{S63, S62,……,S43, S4J。
[0056] 需要说明的是,上述对待排列的矢量数据进行分组的方式以及分组的数量仅是示 例性的说明,本发明包括但不限于上述列举的分组的方式及分组的数量,即其他任何能够 满足实际需求的对待排列的矢量数据进行分组的方式及分组的数量均在本发明的保护范 围之内。
[0057] 本发明实施例提供的矢量排列电路,由于在选择单元对矢量数据组进行选择以及 交换单元对矢量数据组中的元素进行交换之前,首先对待排列的矢量数据进行了分组,即 将待排列的矢量数据分为η个矢量数据组,因此对于位宽较大的矢量数据,本发明实施例 可以通过对其进行分组将其转换为位宽较小的矢量数据进行排列,从而本发明实施例提供 的矢量排列电路仍然可以采用交换矩阵实现,进而能够使得交换矩阵应用在对位宽较大的 矢量数据进行排列的场景中。
[0058] 可选的,上述如图2所示的分组单元可以由能够对待排列的矢量数据进行分组的 任意部件实现,例如可以通过固定布线实现,或者也可以通过多个选择器实现,本发明不作 具体限定。
[0059] 实际应用中,当本发明实施例提供的矢量排列电路应用的场景需要分组的分组模 式(包括分组数量和分组形式等,例如按照元素的序号分为奇数组和偶数组两组)固定不 变时,优选的,为了实现方便,本发明实施例中的分组单元可以通过固定布线实现。具体的, 本发明实施例中,可以通过固定的布线将待排列的矢量数据中的各个元素输入到各个相应 的选择单元。例如,假设待排列的矢量数据的位宽为64,即该待排列的矢量数据包括64个 元素;且需要按照各个元素的序号,将该待排列的矢量数据分为奇数矢量数据组和偶数矢 量数据组,因此可以通过固定的布线将奇数序号的各个元素输入到对应的选择单元,并通 过固定的布线将偶数序号的各个元素输入到对应的选择单元。
[0060] 进一步地,本发明实施例中,由于待排列的矢量数据由寄存器输出,因此可以直接 在寄存器的各个奇数输出引脚与相应的选择单元之间设置固定布线,并在寄存器的各个偶 数输出引脚与相应的选择单元之间设置固定布线,从而使得待排列的矢量数据中,奇数序 号的元素和偶数序号的元素分别输入到不同的选择单元中,进而实现对待排列的矢量数据 的分组。具体的实现方式,可参见下述实例一、实例二和实例三中的各个附图,此处不再赘 述。
[0061] 当本发明实施例提供的矢量排列电路应用的场景需要分组的分组模式(包括分 组数量和分组形式等,例如按照元素的序号分为奇数组和偶数组两组)变化时,本发明实 施例中的分组单元可以通过多个选择器实现,其中,多个选择器的选择逻辑由控制单元控 制。具体的,本发明实施例中,可以通过多个选择器对待排列的矢量数据中的各个元素进行 选择,并将选择后的各个元素输入到各个相应的选择单元。例如,假设待排列的矢量数据的 位宽为64,即该待排列的矢量数据包括64个元素;且需要按照各个元素的序号,将该待排 列的矢量数据分为奇数矢量数据组和偶数矢量数据组,因此,可以由多个选择器分别在控 制单元的控制下,对该待排列的矢量数据中的各个元素进行选择,以将该待排列的矢量数 据分为奇数矢量数据组和偶数矢量数据组,并将偶数序号的各个元素输入到对应的选择单 元。分组单元通过多个选择器实现时,寄存器与多个选择器之间的连接可根据具体分组模 式进行设置,其连接原理与上述固定布线的连接原理类似,此处不再赘述。
[0062] 可选的,如图3所述(由于每个选择单元11均相同,因此图3仅示意出一个选择 单元11),本发明实施例中,所述每个选择单元11包括由所述控制单元13分别独立控制的 f个X选1选择器110, X = y/n,y为所述待排列的矢量数据的位宽,f和X均为大于1的 整数,且m*f是y的整数倍。
[0063] 其中,所述f个X选1选择器110中的每个X选1选择器110,用于在所述控制单 元13的控制下,从输入该X选1选择器110的所述第一矢量数据组中选择一个元素,并将 所述元素输出至与该X选1选择器110连接的交换单元。
[0064] 本发明实施例中,待排列的矢量数据的位宽是指待排列的矢量数据中需要并行排 列的元素的个数。示例性的,假设待排列的矢量数据的位宽为64,则可以理解为待排列的 矢量数据中需要并行排列的元素的个数为64,即需要并行对64个元素进行排列。举例来 说,上述待排列的矢量数据{s63, S62, S61,……,S1, S。}中,待排列的矢量数据的位宽为64, 则可以理解为该矢量数据中需要并行排列的元素的个数为64,例如S63-S。,即需要并行对这 64个元素进行排列。
[0065] 本发明实施例提供的矢量排列电路中,X = y/n可以表示X的取值与η的取值和y 的取值有关,且m*f是y的整数倍可以表示f的取值与m的取值和y的取值有关。例如,假 设y 为 64,n 为 2,m为 4,则 X = 64/2 = 32, f = y/m = 64/4 = 16 的整数倍,假设 f = 16 的两倍,即f = 32,在这种情况下,每个选择单元包括32个32选1选择器;假设y为64, η 为4,则X = 64/4 = 16, m为4, f = y/m = 64/4 = 16的整数倍,假设f = 16的两倍,即f =32,在这种情况下,每个选择单元包括32个16选1选择器。
[0066] 可选的,上述X选1选择器可以为2选1选择器、3选1选择器、4选1选择器、……、 16选1选择器、……或者32选1选择器等。以X选1选择器为4选1选择器、16选1选 择器或者32选1选择器为例,其中,4选1选择器可以由多个2选1选择器组成;16选1选 择器和32选1选择器均可以由多个2选1选择器或者多个4选1选择器组成。
[0067] 其中,上述每个X选1选择器均可以在控制单元的控制下,对输入该X选1选择器 的第一矢量数据组中的X个元素(第一矢量数据组的元素个数为y/n,即X)进行选择,并将 最终选择的一个元素输出,那么X个X选1选择器分别对第一矢量数据组中的X个元素进 行选择后得到第二矢量数据组(一个X选1选择器选择一个元素,那么X个X选1选择器 选择X个元素)。可以理解,本发明实施例中,第一矢量数据组经过X个X选1选择器后得 到的第二矢量数据组仍然包括X个元素,但是由于每个X选1选择器分别对第一矢量数据 组进行了选择,因此第二矢量数据组中的X个元素的排列顺序与第一矢量数据组中的X个 元素的排列顺序可能并不相同,从而通过本发明实施例提供的矢量排列电路可以对待排列 的矢量数据进行排列。
[0068] 示例性的,假设待排列的矢量数据为{S5, S4, S3, S2, S1, S。},通过本发明实施例提供 的矢量排列电路对待排列的矢量数据进行分组、选择及交换后,该待排列的矢量数据可能 变为{S 3, S5, S2, S4, S。,SJ,即通过本发明实施例提供的矢量排列电路可以对待排列的矢量 数据进行排列。
[0069] 需要说明的是,本发明实施例中,控制单元对选择单元的控制作用可以根据预设 的控制逻辑来确定。例如,假设需对矢量数据{S 31,S3。,……,SpSJ进行排列,则可以按照 需要得到的排列结果预设控制单元的控制逻辑。示例性的,假设矢量数据{S 31,s3。,……, S1, S。}中的元素 S31>S3。〉……WAS。,且设置的32个32选1选择器从左到右依次为A31, A30,……,六^六^则如果需要将矢量数据以^"%,……,S1, S。}中的元素按照从小到大的顺 序重新排列,得到{&A,……,S3。,S3J,则可以预设控制单元的控制逻辑为:控制A 31输出 S。,控制A3。输出S ^……,控制A1输出S 3。,以及控制A。输出S 31,从而控制单元通过分别独 立控制32个32选1选择器,使得该32个32选1选择器最终输出{S。,S 1,……,S3。,S31}。
[0070] 可选的,如图4所示(由于每个交换单元12均相同,因此图4仅示意出一个交换 单元12),本发明实施例中,所述每个交换单元12包括由所述控制单元13分别独立控制的 k个η选1选择器120,所述k个η选1选择器120中的每个η选1选择器120分别与m/ j 个X选1选择器110连接,所述m/j个X选1选择器110分别为与该交换单元12连接的m/ j个选择单元11中的X选1选择器110, k*j是y的整数倍。
[0071] 其中,所述k个η选1选择器120中的每个η选1选择器120,用于在所述控制单 元13的控制下,从输入该η选1选择器120的η个元素中选择一个元素输出。
[0072] 需要说明的是,为了更加清楚、完整地说明本发明实施例提供的矢量排列电路,且 由于每个选择单元11、每个交换单元12以及每个η选1选择器120与m/j个X选1选择 器110的连接方式均相同,因此上述附图3和附图4仅以一个选择单元11、一个交换单元 12以及一个η选1选择器120与m/j个X选1选择器110的连接方式进行示例性的说明, 对于其他选择单元11、其他交换单元12以及其他η选1选择器120与m/j个X选1选择器 110的连接方式均可参见上述图3和图4,此处不再赘述。
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1