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

文档序号:9505972阅读:来源:国知局
个元素进行交换的功能。
[0092] 当然,本领域技术人员可以理解,如果需要输出{S32, S3J,而通过上述选择单元的 选择后得到的正是{S32,S31},那么即使将{S 32,S31}分别输入到2个2选1选择器中,也可以 使得这2个2选1选择器分别从S 32和S 31这两个元素中选择一个元素输出,最终输出{S 32, S31}。具体的,如图7所示,从左到右,第一个2选1选择器120选择S32输出,第二个2选1 选择器120选择S 31输出,从而这2个2选1选择器可以实现对{S32, S3J中的两个元素进 行透传的功能。
[0093] 本发明实施例中,无论交换单元对输入该交换单元的第二矢量数据组中的各个元 素直接透传输出,还是对第二矢量数据组中的某些元素交换后输出,均可以认为该交换单 元对该第二矢量数据组进行了交换。
[0094] 进一步地,上述交换单元对输入该交换单元的第二矢量数据组中的各个元素直接 透传输出,或者对第二矢量数据组中的某些元素交换后输出均可以由控制单元控制。具体 的,如果控制单元判断无需对输入该交换单元的第二矢量数据组中的各个元素进行交换, 则控制单元可以控制交换单元对第二矢量数据组中的各个元素直接透传输出;如果控制单 元判断需要对输入该交换单元的第二矢量数据组中的某些元素进行交换,则控制单元可以 控制交换单元对第二矢量数据组中的这些元素交换后输出。
[0095] 上述仅是示例性的对本发明实施例提供的矢量排列电路中的选择单元、交换单元 以及控制单元进行说明。在实际应用中,可以根据具体的矢量数据的排列模式以及对矢量 数据的分组进行适应性的调整和/或变换,本发明不作限定。
[0096] 另外,本实施例中,当Pi= 63时,p i+1= 64,这种情况下,由于已经超出了待排列的 矢量数据的位宽(即已经超出了待排列的矢量数据中元素的序号),因此本实施例可以采 用环回的方式或者输出相同元素的方式进行处理。例如,若本实施例采用环回的方式处理, 则可以将p1+1=64转换为p1+1=0,如此可保证2个2选1选择器最终输出{S 63,S。};若本 实施例采用输出相同元素的方式进行处理,则可以将p1+1= 64转换为p 1+1= 63,如此可以 保证2个2选1选择器最终输出{S63, S63}。
[0097] 基于如图7所示的本实施例中控制单元的控制逻辑,为了保证本实施例满足上述 图5中的(b)和图5中的(c)的排列模式,上述控制单元13针对选择单元11中的每个32 选1选择器的第一控制信号和控制单元13针对交换单元12中的每个2选1选择器的第二 控制信号具体可以设置为:
[0098] (1)当Pi为偶数时,控制单元针对输入奇数矢量数据组的32选1选择器的第一控 制信号c3为floor (Pl/2),控制单元针对输入偶数矢量数据组的32选1选择器的第一控制 信号c3为floor (Pl/2),控制单元针对每个2x2的交换矩阵中的一个2选1选择器的第二 控制信号c4为0 (表示选择偶数序号的元素输出),针对每个2x2的交换矩阵中的另一个2 选1选择器的第二控制信号c4为1 (表示选择奇数序号的元素输出)。
[0099] (2)当?1为奇数时,控制单元针对输入奇数矢量数据组的32选1选择器的第一控 制信号c3为floor (Pl/2),控制单元针对输入偶数矢量数据组的32选1选择器的第一控制 信号c3为floor (Pi/2)+l,控制单元针对每个2x2的交换矩阵中的一个2选1选择器的第 二控制信号c4为1 (表示选择奇数序号的元素输出),针对每个2x2的交换矩阵中的另一个 2选1选择器的第二控制信号c4为0 (表示选择偶数序号的元素输出)。
[0100] 其中,当上述flooi^Pi/^+l大于32时,将floorbi/^+l转换为0,即选择序号 为0的元素输出。
[0101] 具体的,由于本实施例中取值有64个,因此可以采用6个比特来表示P1,所 以floor (Pi/2)具体可以通过取Pi的高5个比特实现。相应的,c4可以通过取p ;的最低一 个比特0实现(假设当c4为0时,2选1选择器选择偶数序号的元素输出;当c4为1时,2 选1选择器选择奇数序号的元素输出)。对于floor (Pl/2)的举例可以参见上述如图6所 示的实施例中对于floor (Pl/2)的举例,对于c4的举例可以参见上述如图6所示的实施例 中对于c2的举例,此处不再赘述。
[0102] 需要说明的是,上述图6和图7仅是以一组输出为例进行示例性的说明,本发明实 施例中,待排列的矢量数据中的每一组输出均可以按照如图6和图7所示的电路实现,此处 不再赘述。
[0103] 可选的,针对上述如图5所示的三种排列模式,本发明实施例提供的矢量排列电 路中,选择单元的个数m与分组单元对待排列的矢量数据分组后的矢量数据组的个数η之 间存在如下两种对应关系。
[0104] (1)针对上述图5中的(a)和(b),m = 2η,η个矢量数据组中的每个矢量数据组 分别对应2个选择单元。
[0105] (2)针对上述图5中的(c),m = η,η个矢量数据组中的每个矢量数据组分别对应 一个选择单元。
[0106] 下面分别以上述如图5所示的三种排列模式为例,对本发明实施例提供的矢量排 列电路进行示例性的说明。
[0107] 实例一
[0108] 针对上述图5中的(a),以待排列的矢量数据的位宽为64,且将待排列的矢量数据 分为奇数矢量数据组和偶数矢量数据组为例,本发明实施例提供的矢量排列电路如图8所 不。
[0109] 在图8中,首先由分组单元10将寄存器输入到分组单元10的待排列的矢量数据 {S63, S62,……,S1, S。}(图8中表示为20)按照元素的奇数序号和偶数序号进行分组,得到 奇数矢量数据组(图8中表示为21)和偶数矢量数据组(图8中表示为22),其中,21为 {S 63,S61,…………,S2,SQ},21 和 22 均包括 32 个元素。
[0110] 由于图8中将待排列的矢量数据分为两个矢量数据组,因此选择单元11的个数m = 2n = 2X2 = 4(本实施例中,一个矢量数据组对应两个选择单元11),即图8中有4个 选择单元11,分别表示为mux0、muxl、mux2和mux3,按照上述如图6所示的电路原理,使得 偶数矢量数据组同时输入到选择单元muxO和mux2,奇数矢量数据组同时输入到选择单元 muxl和mux3。如图8所示,每个选择单元11为一个32x32的交换矩阵,其由32个32选1 选择器组成;由于每个32选1选择器都由控制单元13独立控制,因此每个选择单元11均 需要32个独立的控制信号(图8中控制单元13对每个选择单元11的32个控制信号用加 粗的实线表示,可以理解为控制单元13对每个32x32的交换矩阵中的32个32选1选择器 分别独立控制)。在图8中,每个选择单元11 (即32x32的交换矩阵)均可以在控制单元 13的控制信号的作用下,从输入该选择单元11的矢量数据组中选择32个元素输出。其中, 图8中,控制单元13对选择单元muxO和muxl中的各个对应的32选1选择器均输出相同 的第一控制信号,对选择单元mux2和mux3中的各个对应的32选1选择器也输出相同的第 一控制信号,具体的,第一控制信号的具体实现可参见上述如图6所示的实施例中对第一 控制信号的相关描述,此处不再赘述。
[0111] 需要说明的是,本实施例中,上述如图6所示的2个32选1选择器分别为两个选 择单元11中的32选1选择器。例如,一个32选1选择器为选择单元muxO中的一个32选 1选择器,另一个32选1选择器为选择单元muxl中相应位置的一个32选1选择器。其中, 相应位置可以理解为这2个32选1选择器从输入各自的矢量数据组中选择相同位置的元 素,例如位于muxO中的32选1选择器从偶数矢量数据组中选择第15个元素输出,位于muxl 中的32选1选择器也从奇数矢量数据组中选择第15个元素输出。
[0112] 可以理解,在图8中,选择单元muxO和muxl组合起来对输入各自的矢量数据组进 行选择后可以得到低32个元素,且mux2和mux3组合起来对输入各自的矢量数据组进行选 择后可以得到高32个元素,其中,低32个元素和高32个元素具体是待排列的矢量数据中 的哪些元素由具体的控制逻辑决定。
[0113] 如图8所示,选择单元11选择后的矢量数据分别对应输入至交换单元12,由交换 单元12对矢量数据中的元素进行交换后输出。具体的,本实施例中,由于与每个元素对应 的位置只包括一个输出元素,因此两个选择单元11中的2个32选1选择器分别从输入各 自的矢量数据组中选择一个元素,并将该元素输出至与这2个32选1选择器连接的2选1 选择器(图8中表示为mu X2X 1),再由该2选1选择器从输入其的两个元素中选择一个元 素输出,这样,选择单元muxO和muxl选择后的矢量数据再通过与选择单元muxO和muxl连 接的交换单元12中对应的2选1选择器的选择,最终输出低32个元素,例如图8中的{Y 31, Y30,......,Y1, Υ。};相应的,选择单元mux2和mux3选择后的矢量数据再通过与选择单元mux2 和mux3连接的交换单元12中对应的2选1选择器的选择,最终输出高32个元素,例如图8 中的{Υ63, γ62,……,γ33, Υ32}。其中,在图8中,控制单元13针对选择单元11中的每个32 选1选择器的第一控制信号(图8中表示为cl)可参见上述如图6所示的实施例中对第一 控制信号的相关描述,控制单元13针对交换单元12中的每个2选1选择器的第二控制信 号(图8中表示为c2)可参见上述如图6所示的实施例中对第二控制信号的相关描述,此 处不再赘述。
[0114] 可以理解,图8中,由于选择单元11的个数为4,因此交换单元12的个数为2,又 由于一路输入对应一路输出,即需要输出的矢量数据中的元素个数为64,因此本实施例中, 两个交换单元12中的2选1选择器的个数为64,即每个交换单元12均由32个2选1选择 器组成。
[0115] 为了更加清楚地理解如图8所示的矢量排列电路的实现原理,下面再从代码的角 度进一步解释如图8所示的矢量排列电路。
[0116] 如图8所示的矢量排列电路可以用下述代码解释:
[0119] 需要说明的是,上述代码仅是为了更加清楚的解释如图8所示的实现原理而提出 的,具体实现中,图8是通过由各种选择器组成的逻辑电路实现的。
[0120] 实例二
[0121] 针对上述图5中的(b),以待排列的矢量数据的位宽为64,且将待排列的矢量数据 分为奇数矢量数据组和偶数矢量数据组为例,本发明实施例提供的矢量排列电路如图9所 不。
[0122] 在图9中,首先由分组单元10将寄存器输入到分组单元10的待排列的矢量数据 {S63, S62,……,S1, S。}(图9中表示为30)按照元素的奇数序号和偶数序号进行分组,得到 奇数矢量数据组(图9中表示为31)和偶数矢量数据组(图9中表示为32),其中,31为 {S 63,S61,…………,S2,SQ},31 和 32 均包括 32 个元素。
[0123] 由于图9中将待排列的矢量数据分为两个矢量数据组,因此选择单元11的个数m = 2n = 2X2 = 4(本实施例中,一个矢量数据组对应两个选择单元11),即图9中有4个 选择单元11,分别表示为muxO、muxl、mux2和mux3,本实例中,使得偶数矢量数据组同时输 入到选择单元muxO和mux2,奇数矢量数据组同时输入到选择单元muxl和mux3。如图9所 示,每个选择单元11为一个32x32的交换矩阵,其由32个32选1选择器组成;由于每个 32选1选择器都由控制单元13独立控制,因此每个选择单元11均需要32个独立的控制信 号(图9中控制单元13对每个选择单元11的32个控制信号用加粗的实线表示,可以理解 为控制单元13对每个32x32的交换矩阵中的32个32选1选择器分别独立控制)。在图9 中,每个选择单元11 (即32x32的交换矩阵)均可以在控制单元13的控制信号的作用下, 从输入该选择单元11的矢量数据组中选择32个元素输出。其中,图9中,控制单元13对 选择单元muxO和muxl中的各个对应的32选1选择器均输出相同的第一控制信号,对选择 单元mux2和mux3中的各个对应的32选1选择器也输出相同的第一控制信号,具体的,第 一控制信号的具体实现可参见上述如图7所示的实施例中对第一控制信号的相
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1