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

文档序号:9505972阅读:152来源:国知局
一种矢量排列电路及矢量处理器的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种矢量排列电路及矢量处理器。
【背景技术】
[0002] 单指令多数据流(英文:single instruction multiple data,缩写:SIMD)技术 是一种采用一个控制器来控制多个处理器,同时对一组数据(又称"矢量数据")中的每一 个元素分别执行相同的操作从而实现空间上的并行性的技术。现有的一些高性能矢量处理 器中广泛集成了支持SHffi技术的SHffi单元。在多媒体数据、图形数据以及数字信号处理 应用中,为了最大限度地提升数据并行处理效率,要求S頂D单元具有对矢量数据进行排列 的功能。
[0003] 现有技术中,SHffi单元对矢量数据进行排列通常是通过交换矩阵(英文: crossbar)实现的。例如,如图1所示,为一种8X8的全路由交换矩阵的结构示意图。在图 1中,输出端的每一路元素可能来自于输入端的任意一路元素,因此,使用全路由交换矩阵, 结合控制器的控制逻辑可以对输入元素进行任意形式的排列。由于交换矩阵的实现逻辑非 常复杂,且实现一个交换矩阵通常需要大量的布线及面积,因此现有矢量处理器中排列单 元所使用的交换矩阵能够支持的矢量数据的位宽(即交换矩阵能够并行排列的元素的个 数)仅为32X8比特=256比特;同时为了减少交换矩阵的布线及其所占用的面积,通常采 用定制的晶体管级电路实现交换矩阵,这样可以获得比较规整的拓扑结构。
[0004] 然而,随着待排列的矢量数据的位宽不断增加,交换矩阵的实现将变得更加复杂, 即可能需要更多的布线及面积,因此,即使采用上述定制的晶体管级电路也将难以实现交 换矩阵,从而使得交换矩阵难以应用在对位宽较大的矢量数据进行排列的场景中。

【发明内容】

[0005] 本发明实施例提供一种矢量排列电路及矢量处理器,能够使得交换矩阵应用在对 位宽较大的矢量数据进行排列的场景中。
[0006] 第一方面,本发明是实施例提供一种矢量排列电路,所述矢量排列电路包括分组 单元,与所述分组单元连接的m个选择单元,与所述m个选择单元连接的j个交换单元,每 个交换单元与m/j个选择单元连接,以及与每个选择单元和每个交换单元分别连接的控制 单元,m、j和η均为大于1的整数,且m为j和η的整数倍;其中,
[0007] 所述分组单元,用于将待排列的矢量数据分为η个矢量数据组,并将所述η个矢量 数据组分别输出至所述m个选择单元,其中,每个矢量数据组分别对应至少一个选择单元, 且与每个矢量数据组对应的选择单元均不相同;
[0008] 所述每个选择单元,用于在所述控制单元的控制下,对输入该选择单元的第一矢 量数据组进行选择,并将选择后的第二矢量数据组输出至与该选择单元连接的交换单元, 所述第一矢量数据组为所述η个矢量数据组中的一个矢量数据组;
[0009] 所述每个交换单元,用于在所述控制单元的控制下,对输入该交换单元的所述第 二矢量数据组中的元素进行交换后输出;
[0010] 所述控制单元,用于控制所述每个选择单元对输入该选择单元的所述第一矢量数 据进行选择,以及控制所述每个交换单元对输入该交换单元的所述第二矢量数据组中的元 素进行交换。
[0011] 结合第一方面,在第一方面的第一种可能的实现方式中,所述每个选择单元包括 由所述控制单元分别独立控制的f个X选1选择器,X = y/n,y为所述待排列的矢量数据 的位宽,f和X均为大于1的整数,且m*f是y的整数倍;其中,
[0012] 所述f个X选1选择器中的每个X选1选择器,用于在所述控制单元的控制下,从 输入该X选1选择器的所述第一矢量数据组中选择一个元素,并将所述元素输出至与该X 选1选择器连接的交换单元。
[0013] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述每个交换单元包括由所述控制单元分别独立控制的k个η选1选择器,所述k个η 选1选择器中的每个η选1选择器分别与m/j个X选1选择器连接,所述m/j个X选1选 择器分别为与该交换单元连接的m/j个选择单元中的X选1选择器,k*j是y的整数倍;其 中,
[0014] 所述k个η选1选择器中的每个η选1选择器,用于在所述控制单元的控制下,从 输入该η选1选择器的η个元素中选择一个元素输出。
[0015] 结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中 的任一种实现方式,在第一方面的第三种可能的实现方式中,
[0016] m = 2η,所述每个矢量数据组分别对应2个选择单元。
[0017] 结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中 的任一种实现方式,在第一方面的第四种可能的实现方式中,
[0018] m = η,所述每个矢量数据组分别对应一个选择单元。
[0019] 结合第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的 第五种可能的实现方式中,
[0020] 所述控制单元,具体用于根据预设的控制逻辑,生成与所述每个X选1选择器分别 对应的第一控制信号以及与所述每个η选1选择器分别对应的第二控制信号,并将所述第 一控制信号输出至对应的X选1选择器以及将所述第二控制信号输出至对应的η选1选择 器;
[0021] 所述每个X选1选择器,具体用于根据输入至该X选1选择器的所述第一控制信 号,从输入该X选1选择器的所述第一矢量数据组中选择一个元素,并将所述元素输出至与 该X选1选择器连接的η选1选择器;
[0022] 所述每个η选1选择器,具体用于根据输入至该η选1选择器的所述第二控制信 号,从输入该η选1选择器的η个元素中选择一个元素输出。
[0023] 第二方面,本发明实施例提供一种矢量处理器,所述矢量处理器包括上述第一方 面或第一方面的第一种可能的实现方式至第五种可能的实现方式中的任一种实现方式所 述的矢量排列电路。
[0024] 本发明实施例提供一种矢量排列电路及矢量处理器,该矢量排列电路包括分组单 元,与分组单元连接的m个选择单元,与m个选择单元连接的j个交换单元,每个交换单元 与m/j个选择单元连接,以及与每个选择单元和每个交换单元分别连接的控制单元,m、j和 η均为大于1的整数,且m为j和η的整数倍;其中,分组单元,用于将待排列的矢量数据分 为η个矢量数据组,并将η个矢量数据组分别输出至m个选择单元,其中,每个矢量数据组 分别对应至少一个选择单元,且与每个矢量数据组对应的选择单元均不相同;每个选择单 元,用于在控制单元的控制下,对输入该选择单元的第一矢量数据组进行选择,并将选择后 的第二矢量数据组输出至与该选择单元连接的交换单元,第一矢量数据组为η个矢量数据 组中的一个矢量数据组;每个交换单元,用于在控制单元的控制下,对输入该交换单元的第 二矢量数据组中的元素进行交换后输出;控制单元,用于控制每个选择单元对输入该选择 单元的第一矢量数据进行选择,以及控制每个交换单元对输入该交换单元的第二矢量数据 组中的元素进行交换。
[0025] 基于上述技术方案,由于本发明实施例在选择单元对矢量数据组进行选择以及交 换单元对矢量数据组中的元素进行交换之前,首先对待排列的矢量数据进行了分组,即将 待排列的矢量数据分为η个矢量数据组,因此对于位宽较大的矢量数据,本发明实施例可 以通过对其进行分组将其转换为位宽较小的矢量数据进行排列,从而本发明实施例提供的 矢量排列电路仍然可以采用交换矩阵实现,进而能够使得交换矩阵应用在对位宽较大的矢 量数据进行排列的场景中。
【附图说明】
[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0027] 图1为现有技术提供的交换矩阵的示意图;
[0028] 图2为本发明实施例提供的矢量排列电路的结构示意图一;
[0029] 图3为本发明实施例提供的矢量排列电路的结构示意图二;
[0030] 图4为本发明实施例提供的矢量排列电路的结构示意图三;
[0031] 图5为本发明实施例提供的矢量排列电路可以实现的排列模式的示意图;
[0032] 图6为本发明实施例提供的矢量排列电路的结构示意图四;
[0033] 图7为本发明实施例提供的矢量排列电路的结构示意图五;
[0034] 图8为本发明实施例提供的矢量排列电路的结构示意图六;
[0035] 图9为本发明实施例提供的矢量排列电路的结构示意图七;
[0036] 图10为本发明实施例提供的矢量数据转换示意图一;
[0037] 图11为本发明实施例提供的矢量排列电路的结构示意图八;
[0038] 图12为本发明实施例提供的矢量数据转换示意图二。
【具体实施方式】
[0039] 本文中的术语"和/或"仅仅是一种描述关联对象的关联关系,表示可以存在三种 关系;例如,A和/或B可以表示:单独存在Α,同时存在A和Β,单独存在B这三种情况。另 外,本文中的字符"/",一般表示前后关联的对象是一种"或"的关系;例如,Α/Β可以表示A 或B。
[0040] 本发明的说明书和权利要求书中的术语"第一"和"第二"等是用于区别不同的对 象,而不是用于描述对象的特定顺序。例如,第一矢量数据组和第二矢量数据组等是用于区 别不同的矢量数据组,而不是用于描述矢量数据组的特征顺序。
[0041] 本发明的说明书和权利要求书中出现的"多个",除非特别说明的情况外,其他均 是指两个或者两个以上。例如多个选择器是指两个或者两个以上选择器。
[0042] 此外,本发明的描述中所提到的术语"包括"和"具有"以及它们的任何变形,意图 在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没 有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地 还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0043] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之 类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体 细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及 方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0044] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0045] 本发明实施例提供的矢量排列电路及矢量处理器通常应用于对待排列的矢量数 据进行排列的场景中。本发明实施例提供的矢量排列电路及矢量处理器,通过在对待排列 的矢量数据进行排列前,首先对待排列的矢量数据进行分组,可以将位宽较大的矢量数据 转换为位宽较小的矢量数据进行排列,从而本发明实施例提供的矢量排列电路及矢量处理 器仍然可以采用交换矩阵实现,进而能够使得交换矩阵应用在对位宽较大的矢量数据进行 排列的场景中。
[0046] 本发明的说明书和权利要求书中出现的用大写数字表示的数量与用小写数字表 示相同数量的意思相同,在任何情况下均可互换。例如,"一个"均是指"1个",即"一个"与 "1个"的意思相同,在任何情况下均可互换;"两个"均是指"2个",即"两个"与"2个"的 意思相同,在任何情况下均可互换;"四个"均是指"4个",即"四个"与"4个"的意思相同, 在任何情况下均可互换。
[0047] 如图2所示,本发明实施例提供一种矢量排列电路1,所述矢量排列电路1包括分 组单元10,与所述分组单元10连接的m个选择单元11,与所述m个选择单元11连接的j 个交换单元12,每个交换单元12与m/j个选择单元11连接,以及与每个选择单元11和每 个交换单元12分别连接的控制单元13, m、j和η均为大于1的整数,且m为j和η的整数 倍。
[0048] 其中,所述分组单元10,用于将待排列的矢量数据分为η个矢量数据组,并将所述 η个矢量数据组分别输出至所述m个选择单元11,
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1