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

文档序号:9505972阅读:来源:国知局
mux._ctrl_0[i][6:0] = i - shift_CQunt_0; //使用借位来做预处理 选择 pre-mux-Ctrl-_1 [i][6:0] = i - shift-.count._1; /7使用借位来做预处理 选择 Vw[i] = pre_mux_ctrL〇[i][6] ? VR[i] : Vs[i]; VD[i] = pre_mux_ctrL1[i][6] ? VR[i] : Vs[i]; end //生成#列模式,本质上是对Vw和Vd做循环右移 logic [5:0] mut_pattern_0[63:0]; logic [5:0] mut-pattern-I[63:0]; for {ini i=0;i<64;i=i+1) begin mui-pattern-0[i][5:0] = i + shift-count-0; mut-pattern-1 [i][5:0] = i + shift-count-1; end //输出矢量的任意两个相邻元素的序号肯定是一个奇数序号一个偶数 序号,所以可先分别对Vw和Vd进行奇偶分组,然后再做选择 for (int i=0;i<64;i=i+1) begin VY[i] = Vw[mut_pattern_0[i]]; //奇偶分组以及做选择与实例二相 同,此处不再赘述 Vz[i] = VD[mut_patiern_1[i]]; //奇偶分组以及做选择与实例二相
[0147] 同,此处不再赘迷 end
[0148] 需要说明的是,上述代码仅是为了更加清楚的解释如图11所示的实现原理而提 出的,具体实现中,图11是通过由各种选择器组成的逻辑电路实现的。
[0149] 可选的,对如图10所示的Vr(图12中表示为43)和Vs (图12中表示为44)做预 处理选择,即将VjPVs变换为Vw(图12中表示为45)和V d (图12中表示为46)可以采用 如图12所示的电路实现。具体的,43和44中相同位置的两个元素经过一个2x2的交换矩 阵(即2个2选1选择器,图12中表示为mu X2X2)后,再由该2x2的交换矩阵输出,从而 实现对43和44的变换,即将43和44变换为需要进行排列的45和46。本实施例中的2x2 的交换矩阵的工作原理与上述实例二和实例三中交换单元中的2x2的交换矩阵的工作原 理相似,具体可参见上述实例二和实例三中对交换单元中的2x2的交换矩阵的相关描述, 此处不再赘述。
[0150] 可选的,在对如图10所示的预处理选择时,上述2x2的交换矩阵可以在 控制单元的控制下(其中,控制单元的控制逻辑由预处理选择需求确定)进行任何形式的 预处理选择。例如,假设第0路输入包括两个输入元素,分别为{R。,S。},则上述2x2的交换 矩阵可以在控制单元的控制下,使得第〇路输出为{R。,S。}、{S。,R。}、{S。,S。}或{R。,R。}。
[0151] 本发明实施例提供的矢量排列电路,由于在选择单元对矢量数据组进行选择以及 交换单元对矢量数据组中的元素进行交换之前,首先对待排列的矢量数据进行了分组,即 将待排列的矢量数据分为η个矢量数据组,因此对于位宽较大的矢量数据,本发明实施例 可以通过对其进行分组将其转换为位宽较小的矢量数据进行排列,从而本发明实施例提供 的矢量排列电路仍然可以采用交换矩阵实现,进而能够使得交换矩阵应用在对位宽较大的 矢量数据进行排列的场景中。
[0152] 进一步地,本发明实施例提供的矢量排列电路,与现有技术相比,在两者都能够实 现上述如图5所示的三种常见的排列模式的情况下,本发明实施例提供的矢量排列电路可 以减少50%的资源消耗,并且还可以降低现有技术为实现多种排列模式而配置多套硬件资 源(即上述各个实例中所列举的逻辑电路)的开销。
[0153] 进一步地,本发明实施例提供的矢量排列电路能够实现的排列模式,包括但不限 于上述如图5所示的三种常见的排列模式,即本发明实施例提供的矢量排列电路通过采用 不同的预处理逻辑、不同的控制逻辑、不同的选择单元,以及不同的交换逻辑等还可以支持 更多种的排列模式。具体的,可根据实际使用需求进行具体逻辑电路的设置以及具体控制 逻辑的设置,本发明不作限定。对于其他任何采用本发明的分组、选择以及交换(可能还包 括分组前的预处理等)等思想实现矢量数据的排列的方案都在本发明的保护范围之内。
[0154] 本发明实施例提供一种矢量处理器,该矢量处理器包括上述如图2-图4、图6-图 9和图11中任意之一所述的矢量排列电路。具体的,这些矢量排列电路的描述可对应参见 上述如图2-图4、图6-图9和图11所示的实施例中对矢量排列电路的详细说明,此处不再 赘述。
[0155] 需要说明的是,除了上述实施例所提及的图5中的(a)、图5中的(b)以及图5中 的(c)所示的三种排列模式外,本发明实施例提供的矢量处理器还可以应用于对矢量数 据进行其他处理的场景中,例如对矢量数据进行交织(英文interleave)、对矢量数据进 行解交织(英文:de_interleave)、对矢量数据进行打包(英文:pack)、对矢量数据进行 解包(英文:unpack)、对矢量数据进行移位(英文:shift)、对矢量数据进行复制(英文: duplication)以及对矢量数据进行块排列(英文:block permutation)等。
[0156] 本发明实施例提供一种矢量处理器,该矢量处理器包括矢量排列电路,该矢量排 列电路包括分组单元,与分组单元连接的m个选择单元,与m个选择单元连接的j个交换单 元,每个交换单元与m/j个选择单元连接,以及与每个选择单元和每个交换单元分别连接 的控制单元,m、j和η均为大于1的整数,且m为j和η的整数倍;其中,分组单元,用于将 待排列的矢量数据分为η个矢量数据组,并将η个矢量数据组分别输出至m个选择单元,其 中,每个矢量数据组分别对应至少一个选择单元,且与每个矢量数据组对应的选择单元均 不相同;每个选择单元,用于在控制单元的控制下,对输入该选择单元的第一矢量数据组进 行选择,并将选择后的第二矢量数据组输出至与该选择单元连接的交换单元,第一矢量数 据组为η个矢量数据组中的一个矢量数据组;每个交换单元,用于在控制单元的控制下,对 输入该交换单元的第二矢量数据组中的元素进行交换后输出;控制单元,用于控制每个选 择单元对输入该选择单元的第一矢量数据进行选择,以及控制每个交换单元对输入该交换 单元的第二矢量数据组中的元素进行交换。
[0157] 基于上述技术方案,由于本发明实施例的矢量处理器的矢量排列电路中,在选择 单元对矢量数据组进行选择以及交换单元对矢量数据组中的元素进行交换之前,首先对待 排列的矢量数据进行了分组,即将待排列的矢量数据分为η个矢量数据组,因此对于位宽 较大的矢量数据,本发明实施例可以通过对其进行分组将其转换为位宽较小的矢量数据进 行排列,从而本发明实施例提供的矢量排列电路仍然可以采用交换矩阵实现,进而能够使 得交换矩阵应用在对位宽较大的矢量数据进行排列的场景中。
[0158] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能 模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模 块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功 能。
[0159] 在本申请所提供的几个实施例中,应该理解到,以上所描述的各个实施例仅仅是 示意性的,例如,所述模块或单元的划分,并不仅仅限于上述实施例所述的划分方式。
[0160] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即这些分离部件可以根据实际的需要进行设置 及选择来实现本实施例的方案。
[0161] 另外,在本发明各个实施例中的各功能单元可以采用相应的逻辑电路实现。具体 可根据实际的使用需求及应用场景进行设置。
[0162] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1. 一种矢量排列电路,其特征在于,所述矢量排列电路包括分组单元,与所述分组单元 连接的m个选择单元,与所述m个选择单元连接的j个交换单元,每个交换单元与m/j个选 择单元连接,以及与每个选择单元和每个交换单元分别连接的控制单元,m、j和η均为大于 1的整数,且m为j和η的整数倍;其中, 所述分组单元,用于将待排列的矢量数据分为η个矢量数据组,并将所述η个矢量数据 组分别输出至所述m个选择单元,其中,每个矢量数据组分别对应至少一个选择单元,且与 每个矢量数据组对应的选择单元均不相同; 所述每个选择单元,用于在所述控制单元的控制下,对输入该选择单元的第一矢量数 据组进行选择,并将选择后的第二矢量数据组输出至与该选择单元连接的交换单元,所述 第一矢量数据组为所述η个矢量数据组中的一个矢量数据组; 所述每个交换单元,用于在所述控制单元的控制下,对输入该交换单元的所述第二矢 量数据组中的元素进行交换后输出; 所述控制单元,用于控制所述每个选择单元对输入该选择单元的所述第一矢量数据进 行选择,以及控制所述每个交换单元对输入该交换单元的所述第二矢量数据组中的元素进 行交换。2. 根据权利要求1所述的矢量排列电路,其特征在于,所述每个选择单元包括由所述 控制单元分别独立控制的f个X选1选择器,X=y/n,y为所述待排列的矢量数据的位宽, f和X均为大于1的整数,且m*f是y的整数倍;其中, 所述f个X选1选择器中的每个X选1选择器,用于在所述控制单元的控制下,从输入 该X选1选择器的所述第一矢量数据组中选择一个元素,并将所述元素输出至与该X选1 选择器连接的交换单元。3. 根据权利要求2所述的矢量排列电路,其特征在于,所述每个交换单元包括由所述 控制单元分别独立控制的k个η选1选择器,所述k个η选1选择器中的每个η选1选择 器分别与m/j个X选1选择器连接,所述m/j个X选1选择器分别为与该交换单元连接的 m/j个选择单元中的X选1选择器,k*j是y的整数倍;其中, 所述k个η选1选择器中的每个η选1选择器,用于在所述控制单元的控制下,从输入 该η选1选择器的η个元素中选择一个元素输出。4. 根据权利要求1-3任一项所述的矢量排列电路,其特征在于, m= 2η,所述每个矢量数据组分别对应2个选择单元。5. 根据权利要求1-3任一项所述的矢量排列电路,其特征在于, m=η,所述每个矢量数据组分别对应一个选择单元。6. 根据权利要求2或3所述的矢量排列电路,其特征在于, 所述控制单元,具体用于根据预设的控制逻辑,生成与所述每个X选1选择器分别对应 的第一控制信号以及与所述每个η选1选择器分别对应的第二控制信号,并将所述第一控 制信号输出至对应的X选1选择器以及将所述第二控制信号输出至对应的η选1选择器; 所述每个X选1选择器,具体用于根据输入至该X选1选择器的所述第一控制信号,从 输入该X选1选择器的所述第一矢量数据组中选择一个元素,并将所述元素输出至与该X 选1选择器连接的η选1选择器; 所述每个η选1选择器,具体用于根据输入至该η选1选择器的所述第二控制信号,从 输入该η选1选择器的η个元素中选择一个元素输出。7. -种矢量处理器,其特征在于,所述矢量处理器包括如权利要求1-6任一项所述的 矢量排列电路。
【专利摘要】本发明提供一种矢量排列电路及矢量处理器,涉及计算机技术领域,能够使得交换矩阵应用在对位宽较大的矢量数据进行排列的场景中。该矢量排列电路包括分组单元,与其连接的m个选择单元,与m个选择单元连接的j个交换单元,每个交换单元连接m/j个选择单元,及与每个选择单元和每个交换单元分别连接的控制单元;分组单元将待排列的矢量数据分为n个矢量数据组并输出至m个选择单元;每个选择单元在控制单元的控制下对输入的第一矢量数据组选择,并将选择后的第二矢量数据组输出至与其连接的交换单元;每个交换单元在控制单元的控制下对输入的第二矢量数据组中的元素交换后输出;控制单元控制每个选择单元进行选择,控制每个交换单元进行交换。
【IPC分类】G06F9/30
【公开号】CN105260162
【申请号】CN201510644158
【发明人】陈运必, 胡凯
【申请人】华为技术有限公司
【公开日】2016年1月20日
【申请日】2015年9月30日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1