算术或逻辑运算树的计算制造技术

技术编号:2833826 阅读:304 留言:0更新日期:2012-04-11 18:40
一种用于在包括至少n个并行处理元件的微处理器上计算算术或逻辑运算的至少第一和第二树的方法。该方法包括:a)使用n个处理元件来并行地执行第一树的第一迭代的n个算术或逻辑运算(在48中),然后b)使用从用于计算第一迭代的n个处理元件中选出的m个处理元件,在第一迭代的结果之间并行地执行m个算术或逻辑运算(在66中),其他的n-m个处理元件不用于第二迭代的计算。与第一树的第二迭代的计算并行的是,该方法包括:使用从不用于计算第一树的第二迭代的n-m个处理元件中选出的k个处理元件,并行地执行第二树的k个算术或逻辑运算(在66中)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种算术或逻辑运算树的计算。技术背景10 算术或逻辑运算树包括根据树结构而组织的算术或逻辑运算。该树结构包括多个节点,每个节点具有至少两个输入端和一个输出端。 每个节点与其输入端所接收到的数据之间的算术或逻辑运算相对应,并在其输出端提供该算术或逻辑运算的结果。可以将该树结构分成连续的等级 15 -包括叶节点的第一等级,-若干中间等级,每个中间等级包括具有输入端的节点,该输入 端直接连接到相同在前等级的节点的输出端,以及 -具有根节点的根等级。这种运算树的计算需要多次迭代。在迭代期间,执行与相同等级 20 的节点相对应的所有运算。典型地,用于在包括至少n个并行处理元件的微处理器上计算算 术或逻辑运算的至少第一树和第二树的方法包括a)使用n个处理元件来并行地执行第一树的第一迭代的n个算术 或逻辑运算,然后25 b)使用从用于计算第一迭代的n个处理元件中选出的m个处理元件,在第一迭代的结果之间并行地执行m个算术或逻辑运算,其他 n-m个处理元件不用于第二迭代的计算,其中m是严格小于n的整数。 一旦计算出第一运算树,则以相似的方式来配置处理元件,以便 处理第二运算树。30 这是使用具有并行处理元件的微处理器的低效方式,因为在第一运算树的第二迭代的计算期间, 一些处理元件没有得到使用。在Andrew Paul Wallace的US 2003/0088603中,描述了包括n个 并行处理元件的微处理器的示例。5
技术实现思路
因此,本专利技术的目的是提供一种用于计算至少第一和第二运算树 的方法,该方法以更有效的方式来使用具有多个并行处理元件的微处 理器。本专利技术提供了一种用于在这种微处理器上计算至少第一和第二 10运算树的方法,其中与第一树的第二迭代计算并行的是,该方法包括 使用从不用于计算第一树的第二迭代的n-rn个处理元件中选出的k个 处理元件,并行地执行第二树的k个算术或逻辑运算,其中k是小于 或等于n-m的整数。在上述方法中,将n-m个不用于第一运算树的迭代的处理元件用 15于并行地计算第二运算树的算术或逻辑运算。因此,并行使用的处理 元件的数量和并行执行的运算数量增加。因此,包括多个并行处理元 件的微处理器的使用更加有效。权利要求2所述的特征减少了处理时间量,因为在m个处理元件 之间转移数据的所需时间内,还并行地转移k个处理元件之间的数据。 20 权利要求3所述的特征减少了处理元件之间的数据转移时间。本专利技术还涉及具有用于执行上述方法的指令的存储器和微处理 器程序。本专利技术还涉及电信设备中的解扩方法,该电信设备使用上述方法 来计算相同的算术或逻辑运算的至少第一树和第二树。2附图说明图1是典型运算树的示意图;图2是用于计算图1的运算树的SIMD (单指令多数据)微处理 器的示意图;30 图3是使用图2的微处理器来并行地计算诸如图1中的运算树的 8个运算树的方法的流程图;图4A-4B, 5A-5B以及图6是图3中的方法的步骤的例证。具体实施方式5 图1示出了运算树2的示例。例如,在图1中,以并行的垂直行来组织节点,每一行与运算树的等级相对应。在图l的最左边的行包 括所有叶节点LFi,并且图1的最右边的行仅包括根节点RN。每个叶节点LFi具有两个输入端,旨在用于接收待处理的数据。 两个叶节点LFi的输出端连接到下一行的节点的输入端。所述下一行 10的节点的输出端以类似的方式连接到再下一行的输入端。重复将一行 的节点连接到下一行节点的这种方式,直到达到具有根节点RN的根 行。这里,运算树2是二叉树的和,并且每个节点对应于两个输入数 据之间的相加。例如,将运算树2用于计算大量数据的相加,例如 15CDMA (码分多址)电信系统中的扩频信号的每个码片的码片值p运算树2的计算需要多次迭代ITi。在第一迭代IT1期间,执行叶 节点LFi的算术或逻辑运算。然后,在下一迭代IT2期间,执行与左 边第二行的节点相对应的运算。重复这个过程,直到执行与根节点RN 相对应的运算。20 例如,如果运算树2中输入数据的数量n等于256,则对运算数2进行8次迭代计算。在迭代IT1到IT8期间执行的相加次数分别是 128、 64、 32、 16、 8、 4、 2和1。图2示出了用于计算运算树2的SIMD (单指令多数据)微处理 器20。SIMD微处理器尤其适于在相同时刻对大量数据执行相同处理。 25 为了简单起见,图l只示出了理解本专利技术所需的细节。微处理器20包括数量为p的并行处理元件PEi。例如,p等于4086, 索引i是从1到4086范围内的整数。将所有处理元件PEi都设计为对 不同数据集并行地执行相同的程序。因此,每个处理元件都具有ALU (算术和逻辑单元),用于执行算术或逻辑运算;以及数据寄存器DRi, 30用于存储由ALU所处理的数据以及该处理的结果。例如,数据寄存器DRi可以存储高达192比特。图2中只示出了五个处理元件PE1、 PE2、 PEi、 PEp-l以及PEp。微处理器20的处理元件通过互连网络24相互连接,因此可以将 存储在一个数据寄存器DRi中的数据转移到另一个处理元件PEj的另 5—个数据寄存器DRj。每个数据寄存器DRi都具有数据转移期间在网 络24上的地址。在相同的硅管芯或衬底上制造处理元件PEi。微处理器20易于使用,因为相同的应用程序应用于所有的处理 元件,并且所有处理元件在在相同时刻执行相同的指令。将程序存储 10 在连接到微处理器20的存储器26中。存储器26包括如下用途的指令当微处理器20执行这些指令时, 执行图2中的方法。现在,参考图3到图6,具体是在并行地处理8个相同的二叉树 和A、 B、 C、 D、 E、 F、 G、 H的情况下,对用于在微处理器上计算 15至少两个诸如运算树2的运算树的方法进行描述。例如,下面所描述 的方法是在电信设备中所实现的解扩方法的一部分。每个二叉树和A至H具有256个数据输入,每个数据是表示逻辑 O或逻辑1的比特。此外,在仅使用微处理器20的前256个处理元件PEi计算8个二 20叉树和A至H的具体情况下,对图3中的方法进行描述。最初,在步骤40中,将每个二叉树和的每个输入数据存储在微 处理器20的数据寄存器DRi之一中。例如,将二叉树和A、 B、 C、 D、 E、 F、 G和H的输入数据Ai、 Bi、 Ci、 Di、 Ei、 Fi、 Gi和Hi分 别存储在数据寄存器DRi中。由此,将数据A1、 Bl、 Cl、 Dl、 El、 25 Fl、 G1和H1存储在第一处理元件PE1的数据寄存器DR1中,并且 将数据A256、 B256、...和H256存储在用于计算二叉树和A至H的 最后一个处理元件PE256的数据寄存器DR256中。随后,在阶段42期间,计算每个二叉树和的第一迭代。更具体地,在步骤44中,处理器20使用处理元件PE1到PE256 30来并行地计算二叉树和A和B的第一迭代。 在步骤44期间,微处理器20将数据A2j转移给数据寄存器DR2 (j-l) +1,以及将数据B2 (j-l) +1转移到数据寄存器DR2j中,其 中索引j是1到128范围内的整数。只使用两个指令来执行这些转移 运算 一个用于移动所有数据A2j, 一个用于移动所有数据B2本文档来自技高网...

【技术保护点】
一种用于在微处理器上计算算术或逻辑运算的至少第一和第二树的方法,所述微处理器包括至少n个并行处理元件,用于并行地执行n个算术或逻辑运算,每一个树的计算都需要多个逐次迭代,在计算下一迭代期间使用每一个迭代的结果,其中n是大于4的正整数,所述方法包括:    a)使用n个处理元件并行地执行第一树的第一迭代的n个算术或逻辑运算(在48中),然后    b)使用从用于计算第一迭代的n个处理元件中选出m个处理元件,在第一迭代的结果之间并行地执行m个算术或逻辑运算(在66中),其他的n-m个处理元件不用于第二迭代的计算,其中m是严格小于n的整数,    其中,与第一树的第二迭代的计算并行的是,所述方法包括使用从n-m个不用于计算第一树的第二迭代的处理元件中选出的k个处理元件来并行地执行第二树的k个算术或逻辑运算(在66中),其中k是小于或等于n-m的整数。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:布鲁诺巴拉林
申请(专利权)人:皇家飞利浦电子股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1