用于处理混编指令的方法和设备的制造方法_2

文档序号:8318934阅读:来源:国知局
构的描述。
[0053] 这里描述的特征可以以不同形式被实现,并不被解释为限于这里描述的示例。相 反,提供这里描述的示例使得本公开是彻底和全面的,并将向本领域普通技术人员传达本 公开的全部范围。
[0054] 贯穿说明书,特定特征被提及就好像包括特征中的至少一个特征。这样的特征表 示示例包括这样的特征的一个示例或该特征的任意数量的多个示例的元素。此外,特定特 征指示单数或复数形式。虽然为了表达容易和清楚以单数或复数形式表达这样的特征,或 者为了符合特定示例的方面,但是如果在示例中以单数表达特征,则其它示例潜在地包括 该特征的多个示例,如果在示例中以复数表达特征,则其它示例潜在地包括该特征的单个 示例,除非从上下文完全清楚或另外明确指出。例如,以复数描述特定元素,这是因为通常 这样的元素是多个示例,而其它示例不排除仅存在这样的元素的一个示例的情况。
[0055] 图1是示出N路单指令多数据(SMD)混编指令的示例的示图。
[0056] N路SMD混编指令包括第一操作数110和第二操作数120。
[0057] 第一操作数110是指数据元素阵列。数据元素阵列包括数据元素。数据元素阵列 中的每个数据元素具有值。
[0058] 在N路SMD混编指令中设置"N"个数据元素。例如,"N"是大于" 1"的整数。
[0059] 在图1的示例中,由数字指示第一操作数110的"16"个数据元素。在该示例中, 由数字"15"指示第一操作数110中的最左的元素,由数字"0"指示第一操作数110中的最 右的元素。在这样的示例中,图1的SMD混编指令是16路SMD指令。
[0060] 在这样的示例中,第一操作数110的数据元素阵列内的最右的数据元素是最早出 现的数据元素,数据元素阵列内的最左的数据元素是最后出现的数据元素。因此,最早出现 的数据元素具有数字"0",最后出现的数据元素具有数字" 15"。
[0061] 第二操作数120是指控制位阵列。控制位阵列包括控制位。在N路SMD混编指 令中设置"N"个控制位。
[0062] 当第二操作数120对应于控制位阵列时,如图1的示例中所示的控制位阵列的值 是十六进制数" 0x8888 "。这样的位阵列可由十六进制数" 0x8888 "表示,这是因为" Ox "指 示值为十六进制数,并且因为与十六进制中的数字"8"对应的位是" 1000"。
[0063] 数据元素按先后顺序对应于控制位。例如,控制位的第一控制位是指示针对数据 元素的第一数据元素的控制信息的位。同样,控制位的每个后续控制位是指示针对数据元 素的后续数据元素的控制信息的位。
[0064] 控制位具有预定第一值或预定第二值。预定第一值表示一个状态,预定第二值表 示不同的状态。因此,每个控制位包括一条二进制信息。
[0065] 在图1的示例中,第一值被表示为二进制值"1",第二值被表示为二进制值"0"。
[0066] 第一值是指示选择的值,在下文中,第一值被称为"选择值",第二值是指示未选择 的值,在下文中,第二值被称为"未选择值"。选择指示被选择的值将被包括在将作为选择的 值一起被处理的选择值的组中,而未选择指示未选择的值将不被包括在这样的组中,而应 与其它"未选择值" 一起被考虑。
[0067] 在示例中,当"K"个位的值是"N"个控制位之中的第一值或选择值时,"N-K"个位 的值是第二值或未选择值。如这里所使用的,"K"是大于"0"且小于"N"的整数。因此,在 控制位中,一些控制位被分配为指示选择,一些控制位被分配为指示未选择。分配的控制位 指定数据项中的哪些数据项被分配给这两个指示。
[0068] 针对数据元素阵列的数据元素,混编是指将数据元素的预定数据元素布置在数据 元素的剩余数据元素之前的操作。例如,被移动到前面的预定数据元素被称为第一数据元 素,没有被移动到前面的剩余数据元素被称为第二数据元素。
[0069] 控制位中的每个控制位被用于确定从数据元素阵列的数据元素之中将被选择作 为第一数据元素之一的数据元素。例如,控制位指定数据元素阵列的数据元素之中的通过 混编将被移动到数据元素阵列内的前面的数据元素。
[0070] 对应控制位值为第一值的数据元素被选为第一数据元素。这里,第一值指示数据 元素将被选择。
[0071] 例如,在图1中,具有第一值的控制位对应于第四控制位、第八控制位、第十二控 制位和第十六控制位,其中,第四控制位在从最右起的第四个位置中。因此,第一数据元素 对应于第四个数据元素、第八个数据元素、第十二个数据元素和第十六个数据元素,其中, 第四数据元素、第八数据元素、第十二数据元素和第十六数据元素与具有第一值的控制位 对应。
[0072] 因此,第一操作数110的数据元素阵列内的第四数据元素、第八数据元素、第十二 数据元素和第十六数据元素被移动到输出阵列130中的目的阵列的前面。未选择的数据元 素跟在它们的后面。未选择的数据元素由它们的具有第二值的控制位这样指定。
[0073] 例如,混编是指包括将数据元素阵列的数据元素之中的与具有第一值的"K"个控 制位对应的"K"个选择的数据元素布置在与具有第二值的"N-K"个控制位对应的"N-K"个 未选择的数据元素之前的操作或计算。
[0074] 输出阵列130是在混编完成之后产生的数据元素阵列。例如,如上所述,输出130 包括作为混编的结果而输出的混编数据元素阵列。
[0075] 在示例中,保持第一数据元素之中的相对先后顺序和第二数据元素之中的相对先 后顺序。因此第一数据元素作为一组而保持它们先前存在的相对先后顺序,第二数据元素 作为一组而保持它们先前存在的相对先后顺序。
[0076] 在稍后将提供的进一步描述中,分层地或递归地执行混编。
[0077] 由整个N路开关来实现N路SMD混编指令,N路SMD混编指令使用N个时钟周 期以进行混编。当由这样的整个N路开关实现N路混编指令时,处理器的大面积区域被使 用。此外,在以高时钟频率操作的处理器中,通过整个N路开关的实现方式对处理器功能具 有潜在的影响。当基于验证第二操作数120的多个位的方法实现N路混编指令时,这样的 实现方式潜在地占用N个时钟周期,并影响处理器的性能。
[0078] 图2是示出N路SMD混编指令的输入和输出的示例的示图。
[0079] 尽管存在一些例外情况,然而N路混编指令与交叉开关相似。如上所述,N路混编 指令提供一种将元素从输入映射到输出的方式。例如,在图2的示例中,输入N-SIMD 210 的数据元素和输出N-SMD 220的数据元素经由全互连而相关联。
[0080] 在图2中,示出在N路SMD混编指令的输入和N路SMD混编指令的输出之间可 用的互连。互连是指从输入SMD至输出SMD发生的数据移动。经由全互连,输入数据元 素的预定元素移动到输出数据元素的预定元素。输入侧上的特定元素对应于输出侧上的特 定元素的这种特性是N路SIMD混编指令与交叉开关和交叉开关的复杂性方面之间的相似 性。
[0081] 图3是示出分层混编的示例的示图。
[0082] 在分层混编中,N路SMD混编指令被划分为多个阶段。在多个阶段中的每个阶段 中执行混编。混编的数据与用于控制随后的混编的适当信号一起被提供给随后的阶段。执 行N路SMD混编指令需要" log2N"个阶段。当值"N"与2的倍数不对应时,执行N路SMD 混编指令需要"l〇g2L"个阶段。"L"是大于"N"的"2"的基数的值之中的最小值。换言之, "L"是在"log 2N"不为整数的情况下N的整数上限。例如,假设N是48。由于"log2N"在5 和6之间,这是因为48在32 ( 即,25)和64 ( 即,26)之间。因此,Iog2L是6,在该示例中,6 是"log2N"舍入的结果。
[0083] 在图3中,框内的数字指示数据元素的数字。井号框(hashed box)指示数据元素 被选择。空白框指示数据元素未被选择。例如,由井号框指示的数据元素是选择的数据元 素,由空白框指示的数据元素是未选择的数据元素。
[0084] 在图3的示例中示出所有数据元素的部分301、302、303和304。部分301、302、303 和304中的每个是包括一部分数据元素的数据元素阵列。例如,部分301、302、303和304 分别对应于所有数据元素的集的划分的部分。
[0085] 当所有数据元素的数量不是"2"的基数时,可添加与满足"2"的倍数的数字对应 的多个"0"值。因此,数据元素的数量被填补,从而数量为2的正整数指数。例如,当SIMD 指令的数据元素的数量是"24"时,可插入"8"个哑元数据元素。结果,数据元素的总数是 "32",结果,数据元素的总数是25 = 32。与"8"个插入的哑元数据元素对应的控制位具有 未选择值,这是由于它们帮助混编但不构成实际数据元素。同样,当SIMD指令的数据元素 的数量不足以将数据提供给所有的基本混编单元时,哑元值被插入缺少足够数量的数据元 素的基本混编单元的输入数据元素阵列中。在这样的情况下,与插入的哑元值对应的控制 位被设置为具有未选择值。此外,在从最终混编单元输出的最终混编数据元素阵列中,与 SIMD指令的数据元素的原始数量对应的多个数据元素被提取作为实际结果。从最终混编数 据元素阵列的末尾部分舍弃与被添加来帮助处理的哑元值的数量对应的多个数据元素。因 此,哑元值帮助了处理,但是被移除以防止无关信息被包括在实际输出中。
[0086] 通过基本混编单元的混编310对所有数据元素的部分301、302、303和304中的每 个部分执行混编。
[0087] 混编部分311、312、313和314是所有数据元素的部分301、302、303和304分别混 编的结果。选择的数据元素被移动到混编部分311、312、313和314中的数据元素阵列的前 面。因此,在对混编部分311、312、313和314进行混编之后,每个部分包括按顺序地来自第 一组的元素,按顺序地来自第二组的元素跟在它们的后面。
[0088] 混编部分311、312、313和314通过第一连结(concatenation) 320以两个部分组 合的方式被连结。在第一连结320中,通过将第一混编部分311和第二混编部分312连结 来产生第一连结部分321。通过将第三混编部分313和第四混编部分314连结来产生第二 连结部分322。
[0089] 通过中间混编单元的混编330,对第一连结部分321和第二连结部分322中的每个 执行混编。
[0090] 第
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1