用于執(zhí)行向量掃描運算的數(shù)據(jù)處理設(shè)備和方法
【技術(shù)領(lǐng)域】
[0001] 本技術(shù)涉及數(shù)據(jù)處理領(lǐng)域。更具體地,本技術(shù)涉及用于執(zhí)行向量掃描運算的數(shù)據(jù) 處理設(shè)備和方法。
【背景技術(shù)】
[0002] 一種改進數(shù)據(jù)處理設(shè)備的性能的已知技術(shù)是提供電路來支持向量運算的執(zhí)行。在 至少一個向量操作數(shù)上執(zhí)行向量運算,其中每個向量操作數(shù)包括多個向量元素。執(zhí)行向量 運算涉及在一個或多個向量操作數(shù)內(nèi)的各種向量元素上重復(fù)地應(yīng)用運算。在支持執(zhí)行向量 運算的典型數(shù)據(jù)處理系統(tǒng)中,提供向量寄存器文件用于存儲向量操作數(shù)。與執(zhí)行等價的系 列標量運算相比,通過使用向量運算可以實現(xiàn)顯著的性能優(yōu)勢。
[0003] -種已知類型的向量運算是向量掃描運算,其中預(yù)定的組合運算被重復(fù)應(yīng)用到增 加數(shù)目的數(shù)據(jù)元素。組合運算可以采用多種形式,諸如加法運算、乘法運算、最小值選擇運 算、最大值選擇運算等。作為執(zhí)行向量掃描運算的結(jié)果,結(jié)果序列被生成,其中每個結(jié)果與 應(yīng)用組合運算到不同數(shù)目的數(shù)據(jù)元素有關(guān)。作為具體示例,掃描運算可以指定加法運算作 為組合運算,并且這種掃描加法運算有時被稱為前綴求和運算??紤]輸入數(shù)字序列Xd,Xp x2,...,應(yīng)用掃描加法運算產(chǎn)生了結(jié)果序列y(l,yi,y2,...,其中:
[0004] yQ=x〇,yfXQ+Xpy2=XQ+Xi+x"依次類推。
[0005] 在向量掃描運算的一些示例中,額外數(shù)據(jù)元素S可以與源向量的向量數(shù)據(jù)元素V 組合以產(chǎn)生一系列結(jié)果(在掃描加法運算的情況下):
[0006] 丫。=S+x。,yfS+Xo+Xpy2=S+Xo+Xi+Xy依次類推。
[0007] 本技術(shù)尋求提供用于執(zhí)行這樣的向量掃描運算的改進設(shè)備和方法。
【發(fā)明內(nèi)容】
[0008] 根據(jù)一個方面,本技術(shù)提供了一種數(shù)據(jù)處理設(shè)備,包括:
[0009] 向量寄存器存儲器,該向量寄存器存儲器被配置為存儲包括多個數(shù)據(jù)元素的向量 操作數(shù);
[0010] 處理電路,該處理電路被配置為處理來自向量寄存器存儲器的向量操作數(shù);以及
[0011] 控制電路,該控制電路被配置為控制處理電路對源向量操作數(shù)的M個數(shù)據(jù)元素 V[0]至V[M-1]和至少一個額外數(shù)據(jù)元素S執(zhí)行向量掃描運算,以產(chǎn)生結(jié)果向量操作數(shù)的M 個數(shù)據(jù)元素R[0]至R[M-1],其中對于N彡M且0<i<N,結(jié)果向量操作數(shù)的數(shù)據(jù)元素R[i] 具有對應(yīng)于至少一個額外數(shù)據(jù)元素S和源向量操作數(shù)的至少一些數(shù)據(jù)元素V[0]至V[i]的 組合的值;
[0012] 其中,控制電路被配置為控制處理電路在多個步驟中執(zhí)行向量掃描運算,每個步 驟用于從第一向量產(chǎn)生第二向量,其中用于第一步驟的第一向量包括源向量操作數(shù)的數(shù)據(jù) 元素,并且用于其他步驟的第一向量包括在前步驟的第二向量,每個步驟包括用于組合第 一向量的數(shù)據(jù)元素與至少一個額外數(shù)據(jù)元素S或第一向量的另一個數(shù)據(jù)元素以產(chǎn)生第二 向量的數(shù)據(jù)元素的至少一個組合運算;
[0013] 所述多個步驟中的至少一個步驟包括并行執(zhí)行的多個組合運算;并且
[0014] 所述多個步驟中的至少兩個步驟包括用于組合第一向量的數(shù)據(jù)元素與至少一個 額外數(shù)據(jù)元素S的組合運算。
[0015] 雖然可以使用串行執(zhí)行的標量運算來執(zhí)行向量掃描運算,但是這樣做非常慢并且 由于性能原因,并行執(zhí)行至少一些組合是有用的。然而,雖然已知的并行技術(shù)可以相對高效 地組合向量數(shù)據(jù)元素的兩個數(shù)字的冪,但是當額外數(shù)據(jù)元素S同樣地需要與向量數(shù)據(jù)元素 組合時,可能需要額外的步驟?,F(xiàn)有技術(shù)要么在組合源向量操作數(shù)的不同向量元素之前,在 初始步驟中組合額外數(shù)據(jù)元素S與源向量操作數(shù)的數(shù)據(jù)元素,要么首先執(zhí)行源向量內(nèi)的不 同數(shù)據(jù)元素的全部組合,然后執(zhí)行額外步驟用于組合額外數(shù)據(jù)元素與在前面的步驟中產(chǎn)生 的每個數(shù)據(jù)元素。不論哪種方式,都需要額外步驟。
[0016] 本技術(shù)的發(fā)明人意識到并不是源向量操作數(shù)的全部M個數(shù)據(jù)元素都是受關(guān)注的。 例如,可能沒有足夠的數(shù)據(jù)來完全填充源向量操作數(shù)的M個數(shù)據(jù)元素,因此僅需要產(chǎn)生結(jié) 果操作數(shù)的N個數(shù)據(jù)元素(其中N<M)。用于執(zhí)行向量掃描運算的已知并行技術(shù)不考慮這 一點并且代替地專注于對全部M個數(shù)據(jù)元素執(zhí)行掃描運算。發(fā)明人意識到,通過改變執(zhí)行 向量掃描運算的方式,有可能在僅需要一些結(jié)果數(shù)據(jù)元素的情況下更快地執(zhí)行運算,并且 在期望全部M個結(jié)果數(shù)據(jù)元素的情況下不需要增加步驟的數(shù)目。
[0017] 為了實現(xiàn)這一點,本技術(shù)的處理電路在多個步驟中執(zhí)行向量掃描運算,每個步驟 從第一向量產(chǎn)生第二向量,其中用于第一步驟的第一向量包括來自源向量操作數(shù)的數(shù)據(jù)元 素,并且用于其他步驟的第一向量包括來自在前步驟的第二向量。所述步驟中的至少兩個 步驟包括用于組合第一向量的數(shù)據(jù)元素與至少一個額外數(shù)據(jù)元素S的組合運算(與此相 反,已知技術(shù)僅包括一個這樣的步驟)。通過在向量掃描運算的多個步驟中組合至少一個額 外元素S,有可能在最后步驟開始前獲得結(jié)果向量的更多數(shù)據(jù)元素,從而可以在需要少于M 個數(shù)據(jù)元素時更快地執(zhí)行向量掃描運算。
[0018] M可以是2的冪。當N在M/2和M之間時,現(xiàn)有技術(shù)不能比在產(chǎn)生全部M個數(shù)據(jù)元 素時更快地執(zhí)行掃描運算,因為使用2的更小冪作為M是不可能的。然而,在本技術(shù)中,當 N在M/2和M之間時,可以減少所需步驟的數(shù)目。
[0019] 可以執(zhí)行向量掃描運算以在至少一個組合步驟中產(chǎn)生結(jié)果向量操作數(shù)的第一G 個數(shù)據(jù)元素R[0]至R[G-1](其中M/2<G<M)。如果需要多于G個數(shù)據(jù)元素(N>G),則 可以通過在至少一個組合步驟外額外執(zhí)行至少一個進一步步驟了產(chǎn)生結(jié)果向量操作數(shù)的 其它數(shù)據(jù)元素R[G]至R[M-1]。這允許在比現(xiàn)有技術(shù)更少的向量運算步驟中產(chǎn)生少于M個 數(shù)據(jù)元素,從而改進性能。
[0020] 如果M/2 <N彡G,則至少一個進一步步驟可以被省略,從而使得該運算可以使用 至少一個組合步驟被更快地執(zhí)行,并且處理電路可以比至少一個進一步步驟被執(zhí)行時更快 地開始執(zhí)行另一個運算??商鎿Q地,即使需要G個以下數(shù)據(jù)元素,也可以執(zhí)行至少一個進一 步步驟(如果至少一個進一步步驟是在至少一個組合步驟之后被執(zhí)行的,則仍能提供性能 改進,因為該G個數(shù)據(jù)元素仍將比現(xiàn)有技術(shù)更早地可用)。當N<M/2時,可以省略向量掃 描運算的更多步驟。對于N<M/2,該處理可以被以與M是2的更小冪時相同的方式對待。
[0021] 至少一個進一步步驟可以包括用于組合第一向量的數(shù)據(jù)元素與至少一個額外數(shù) 據(jù)元素的至少一個組合運算,并且可以不包括第一向量的各個數(shù)據(jù)元素的任意組合。這意 味著可以在相對于至少一個組合步驟的任何時間執(zhí)行該進一步步驟(在至少一個組合步 驟之前、在至少一個組合步驟之后、或作為穿插在至少一個組合步驟中的中間步驟)。更具 體地,至少一個進一步步驟可以包括用于組合至少一個額外數(shù)據(jù)元素S與用于該至少一個 進一步步驟的第一向量的數(shù)據(jù)元素[k]的組合運算,其中G<k<N。這些組合可以對應(yīng)于 對全部M個數(shù)據(jù)元素執(zhí)行向量掃描運算所需要的組合,但是這些組合不是通過至少一個組 合步驟被執(zhí)行的。
[0022] 另一方面,至少一個組合步驟可以是這樣的步驟:在沒有進一步步驟被執(zhí)行的情 況下,該至少一個組合步驟的最后步驟產(chǎn)生結(jié)果數(shù)據(jù)元素R[0]至R[N-1]、和該步驟的第二 向量的數(shù)據(jù)元素[G]至[M-1],其中對于G<k<M,第二向量的數(shù)據(jù)元素[k]具有對應(yīng)于 源向量操作數(shù)的至少一些數(shù)據(jù)元素V[0]至V[k]的組合的值(即,不與額外數(shù)據(jù)元素S組 合)。
[0023] 通常,對于M= 2P,至少一個組合步驟可以包括P個步驟,該P個步驟包括用于響 應(yīng)于第一向量的數(shù)據(jù)元素[0]至[M-1]產(chǎn)生第二向量的數(shù)據(jù)元素[0]至[M-1]的組合運算, 從而對于0 <J<P,所述P個步驟中的步驟J包括用于組合第一向量的數(shù)據(jù)元素[m]與第 一向量的數(shù)據(jù)元素[m-f]以產(chǎn)生第二向量的數(shù)據(jù)元素[m]的組合運算,其中f彡m<N。
[0024] 這些組合可以確保數(shù)據(jù)元素V[0],V[0]和V[l],V[0]、V[l]和V[2]等的組合可 以在盡可能的最少步驟中被執(zhí)行。雖然控制電路被配置為控制處理電路執(zhí)行這些步驟,但 是每個步驟內(nèi)的一些組合可以被省略(例如,如果將通過該步驟被處理的數(shù)據(jù)元素未被選 擇用于基于掩碼信息的處理)。另外,雖然P個步驟中的每個步驟被定義為具有針對元素 [21至元素[N-1]的組合運算,但是這些組合也可能繼續(xù)到元素[M-1],從而使得對正被處 理的M個數(shù)據(jù)元素的塊中的全部數(shù)據(jù)元素執(zhí)行該組合,即使當被選擇的元素的數(shù)目N小于 皿時。
[0025] 在本申請中,數(shù)據(jù)元素索引[0]、[1]等被用于指代正在被向量掃描運算處理的數(shù) 據(jù)元素相對于其它元素的位置,其不必與數(shù)據(jù)元素被存儲在向量寄存器中的位置相同。源 向量操作數(shù)和結(jié)果向量操作數(shù)的哪些數(shù)據(jù)元素對應(yīng)于元素[0]、[1].....[M-1]可以是任 意的設(shè)計選擇。例如,一些系統(tǒng)可以將源向量寄存器內(nèi)的最低有效位上的元素當作元素 [0],并且將源向量寄存器內(nèi)的最高有效位上的元素當作元素[M-1],然而在其它系統(tǒng)中可 以是與之相反的方式。也可以使用數(shù)據(jù)元素的更多的任意分配。因此,例如,向量掃描運算 中的元素V[0]和V[l]的組合可以實際上對應(yīng)于向量寄存器內(nèi)的非相鄰位置上的元素。移 位電路可以被用于將數(shù)據(jù)元素移位到所需位置用于向量掃描運算。
[0026] 另外,用于至少一個組合步驟的各個步驟的索引J被用于限定在該步驟中執(zhí)行的 組合運算。至少一個組合步驟不是必須按照J的升序被執(zhí)行。雖然在一個實施例中P個步 驟可以按照J= 〇、1.....P-1的順序被執(zhí)行,但是在其它實施例中該P個步驟可以按照不 同的順序(例如l、2、p-l、0、...)被執(zhí)行。
[0027] 至少一個組合步驟也可以包括用于組合至少一個額外數(shù)據(jù)元素S與向量數(shù)據(jù)元 素的各種組合運算。取決于在至少一個進一步步驟不被執(zhí)行的情況下需要產(chǎn)生結(jié)果向量操 作數(shù)的多少個數(shù)據(jù)元素(G),額外數(shù)據(jù)元素S可以被輸入并且在不同步驟中與源向量的元 素組合。通常,G可以被選擇成使得M-G是2的冪,并且至少一個組合步驟的P個步驟可以 是這樣的步驟:對于l〇g2(M-G) <J<P,所述P個步驟中的步驟J包括用于組合第一向量 的數(shù)據(jù)元素[q]與所述額外數(shù)據(jù)元素S以產(chǎn)生第二向量的數(shù)據(jù)元素[q]的組合運算,其中 2J-(M_G) <q< 2J〇
[0028] 該方法允許執(zhí)行向量掃描運算,從而使得通過執(zhí)行至少一個組合步驟可獲得的結(jié)