用于执行向量扫描运算的数据处理设备和方法

文档序号:8922548阅读:418来源:国知局
用于执行向量扫描运算的数据处理设备和方法
【技术领域】
[0001] 本技术涉及数据处理领域。更具体地,本技术涉及用于执行向量扫描运算的数据 处理设备和方法。
【背景技术】
[0002] 一种改进数据处理设备的性能的已知技术是提供电路来支持向量运算的执行。在 至少一个向量操作数上执行向量运算,其中每个向量操作数包括多个向量元素。执行向量 运算涉及在一个或多个向量操作数内的各种向量元素上重复地应用运算。在支持执行向量 运算的典型数据处理系统中,提供向量寄存器文件用于存储向量操作数。与执行等价的系 列标量运算相比,通过使用向量运算可以实现显著的性能优势。
[0003] -种已知类型的向量运算是向量扫描运算,其中预定的组合运算被重复应用到增 加数目的数据元素。组合运算可以采用多种形式,诸如加法运算、乘法运算、最小值选择运 算、最大值选择运算等。作为执行向量扫描运算的结果,结果序列被生成,其中每个结果与 应用组合运算到不同数目的数据元素有关。作为具体示例,扫描运算可以指定加法运算作 为组合运算,并且这种扫描加法运算有时被称为前缀求和运算。考虑输入数字序列Xd,Xp x2,...,应用扫描加法运算产生了结果序列y(l,yi,y2,...,其中:
[0004] yQ=x〇,yfXQ+Xpy2=XQ+Xi+x"依次类推。
[0005] 在向量扫描运算的一些示例中,额外数据元素S可以与源向量的向量数据元素V 组合以产生一系列结果(在扫描加法运算的情况下):
[0006] 丫。=S+x。,yfS+Xo+Xpy2=S+Xo+Xi+Xy依次类推。
[0007] 本技术寻求提供用于执行这样的向量扫描运算的改进设备和方法。

【发明内容】

[0008] 根据一个方面,本技术提供了一种数据处理设备,包括:
[0009] 向量寄存器存储器,该向量寄存器存储器被配置为存储包括多个数据元素的向量 操作数;
[0010] 处理电路,该处理电路被配置为处理来自向量寄存器存储器的向量操作数;以及
[0011] 控制电路,该控制电路被配置为控制处理电路对源向量操作数的M个数据元素 V[0]至V[M-1]和至少一个额外数据元素S执行向量扫描运算,以产生结果向量操作数的M 个数据元素R[0]至R[M-1],其中对于N彡M且0<i<N,结果向量操作数的数据元素R[i] 具有对应于至少一个额外数据元素S和源向量操作数的至少一些数据元素V[0]至V[i]的 组合的值;
[0012] 其中,控制电路被配置为控制处理电路在多个步骤中执行向量扫描运算,每个步 骤用于从第一向量产生第二向量,其中用于第一步骤的第一向量包括源向量操作数的数据 元素,并且用于其他步骤的第一向量包括在前步骤的第二向量,每个步骤包括用于组合第 一向量的数据元素与至少一个额外数据元素S或第一向量的另一个数据元素以产生第二 向量的数据元素的至少一个组合运算;
[0013] 所述多个步骤中的至少一个步骤包括并行执行的多个组合运算;并且
[0014] 所述多个步骤中的至少两个步骤包括用于组合第一向量的数据元素与至少一个 额外数据元素S的组合运算。
[0015] 虽然可以使用串行执行的标量运算来执行向量扫描运算,但是这样做非常慢并且 由于性能原因,并行执行至少一些组合是有用的。然而,虽然已知的并行技术可以相对高效 地组合向量数据元素的两个数字的幂,但是当额外数据元素S同样地需要与向量数据元素 组合时,可能需要额外的步骤。现有技术要么在组合源向量操作数的不同向量元素之前,在 初始步骤中组合额外数据元素S与源向量操作数的数据元素,要么首先执行源向量内的不 同数据元素的全部组合,然后执行额外步骤用于组合额外数据元素与在前面的步骤中产生 的每个数据元素。不论哪种方式,都需要额外步骤。
[0016] 本技术的发明人意识到并不是源向量操作数的全部M个数据元素都是受关注的。 例如,可能没有足够的数据来完全填充源向量操作数的M个数据元素,因此仅需要产生结 果操作数的N个数据元素(其中N<M)。用于执行向量扫描运算的已知并行技术不考虑这 一点并且代替地专注于对全部M个数据元素执行扫描运算。发明人意识到,通过改变执行 向量扫描运算的方式,有可能在仅需要一些结果数据元素的情况下更快地执行运算,并且 在期望全部M个结果数据元素的情况下不需要增加步骤的数目。
[0017] 为了实现这一点,本技术的处理电路在多个步骤中执行向量扫描运算,每个步骤 从第一向量产生第二向量,其中用于第一步骤的第一向量包括来自源向量操作数的数据元 素,并且用于其他步骤的第一向量包括来自在前步骤的第二向量。所述步骤中的至少两个 步骤包括用于组合第一向量的数据元素与至少一个额外数据元素S的组合运算(与此相 反,已知技术仅包括一个这样的步骤)。通过在向量扫描运算的多个步骤中组合至少一个额 外元素S,有可能在最后步骤开始前获得结果向量的更多数据元素,从而可以在需要少于M 个数据元素时更快地执行向量扫描运算。
[0018] M可以是2的幂。当N在M/2和M之间时,现有技术不能比在产生全部M个数据元 素时更快地执行扫描运算,因为使用2的更小幂作为M是不可能的。然而,在本技术中,当 N在M/2和M之间时,可以减少所需步骤的数目。
[0019] 可以执行向量扫描运算以在至少一个组合步骤中产生结果向量操作数的第一G 个数据元素R[0]至R[G-1](其中M/2<G<M)。如果需要多于G个数据元素(N>G),则 可以通过在至少一个组合步骤外额外执行至少一个进一步步骤了产生结果向量操作数的 其它数据元素R[G]至R[M-1]。这允许在比现有技术更少的向量运算步骤中产生少于M个 数据元素,从而改进性能。
[0020] 如果M/2 <N彡G,则至少一个进一步步骤可以被省略,从而使得该运算可以使用 至少一个组合步骤被更快地执行,并且处理电路可以比至少一个进一步步骤被执行时更快 地开始执行另一个运算。可替换地,即使需要G个以下数据元素,也可以执行至少一个进一 步步骤(如果至少一个进一步步骤是在至少一个组合步骤之后被执行的,则仍能提供性能 改进,因为该G个数据元素仍将比现有技术更早地可用)。当N<M/2时,可以省略向量扫 描运算的更多步骤。对于N<M/2,该处理可以被以与M是2的更小幂时相同的方式对待。
[0021] 至少一个进一步步骤可以包括用于组合第一向量的数据元素与至少一个额外数 据元素的至少一个组合运算,并且可以不包括第一向量的各个数据元素的任意组合。这意 味着可以在相对于至少一个组合步骤的任何时间执行该进一步步骤(在至少一个组合步 骤之前、在至少一个组合步骤之后、或作为穿插在至少一个组合步骤中的中间步骤)。更具 体地,至少一个进一步步骤可以包括用于组合至少一个额外数据元素S与用于该至少一个 进一步步骤的第一向量的数据元素[k]的组合运算,其中G<k<N。这些组合可以对应于 对全部M个数据元素执行向量扫描运算所需要的组合,但是这些组合不是通过至少一个组 合步骤被执行的。
[0022] 另一方面,至少一个组合步骤可以是这样的步骤:在没有进一步步骤被执行的情 况下,该至少一个组合步骤的最后步骤产生结果数据元素R[0]至R[N-1]、和该步骤的第二 向量的数据元素[G]至[M-1],其中对于G<k<M,第二向量的数据元素[k]具有对应于 源向量操作数的至少一些数据元素V[0]至V[k]的组合的值(即,不与额外数据元素S组 合)。
[0023] 通常,对于M= 2P,至少一个组合步骤可以包括P个步骤,该P个步骤包括用于响 应于第一向量的数据元素[0]至[M-1]产生第二向量的数据元素[0]至[M-1]的组合运算, 从而对于0 <J<P,所述P个步骤中的步骤J包括用于组合第一向量的数据元素[m]与第 一向量的数据元素[m-f]以产生第二向量的数据元素[m]的组合运算,其中f彡m<N。
[0024] 这些组合可以确保数据元素V[0],V[0]和V[l],V[0]、V[l]和V[2]等的组合可 以在尽可能的最少步骤中被执行。虽然控制电路被配置为控制处理电路执行这些步骤,但 是每个步骤内的一些组合可以被省略(例如,如果将通过该步骤被处理的数据元素未被选 择用于基于掩码信息的处理)。另外,虽然P个步骤中的每个步骤被定义为具有针对元素 [21至元素[N-1]的组合运算,但是这些组合也可能继续到元素[M-1],从而使得对正被处 理的M个数据元素的块中的全部数据元素执行该组合,即使当被选择的元素的数目N小于 皿时。
[0025] 在本申请中,数据元素索引[0]、[1]等被用于指代正在被向量扫描运算处理的数 据元素相对于其它元素的位置,其不必与数据元素被存储在向量寄存器中的位置相同。源 向量操作数和结果向量操作数的哪些数据元素对应于元素[0]、[1].....[M-1]可以是任 意的设计选择。例如,一些系统可以将源向量寄存器内的最低有效位上的元素当作元素 [0],并且将源向量寄存器内的最高有效位上的元素当作元素[M-1],然而在其它系统中可 以是与之相反的方式。也可以使用数据元素的更多的任意分配。因此,例如,向量扫描运算 中的元素V[0]和V[l]的组合可以实际上对应于向量寄存器内的非相邻位置上的元素。移 位电路可以被用于将数据元素移位到所需位置用于向量扫描运算。
[0026] 另外,用于至少一个组合步骤的各个步骤的索引J被用于限定在该步骤中执行的 组合运算。至少一个组合步骤不是必须按照J的升序被执行。虽然在一个实施例中P个步 骤可以按照J= 〇、1.....P-1的顺序被执行,但是在其它实施例中该P个步骤可以按照不 同的顺序(例如l、2、p-l、0、...)被执行。
[0027] 至少一个组合步骤也可以包括用于组合至少一个额外数据元素S与向量数据元 素的各种组合运算。取决于在至少一个进一步步骤不被执行的情况下需要产生结果向量操 作数的多少个数据元素(G),额外数据元素S可以被输入并且在不同步骤中与源向量的元 素组合。通常,G可以被选择成使得M-G是2的幂,并且至少一个组合步骤的P个步骤可以 是这样的步骤:对于l〇g2(M-G) <J<P,所述P个步骤中的步骤J包括用于组合第一向量 的数据元素[q]与所述额外数据元素S以产生第二向量的数据元素[q]的组合运算,其中 2J-(M_G) <q< 2J〇
[0028] 该方法允许执行向量扫描运算,从而使得通过执行至少一个组合步骤可获得的结
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1