相關(guān)申請(qǐng)
本專(zhuān)利申請(qǐng)要求2015年1月30日提交的、發(fā)明名稱為“用于在多執(zhí)行單元處理系統(tǒng)上進(jìn)行并行的基于qrd的操作的方法和裝置”,申請(qǐng)?zhí)枮?4/610,365的美國(guó)專(zhuān)利申請(qǐng)的優(yōu)先權(quán),所述申請(qǐng)的內(nèi)容在此通過(guò)引用完全并入本申請(qǐng)。
本公開(kāi)總體上涉及并行處理,并且更具體地涉及在多核心處理器中基于qr分解的處理。
背景技術(shù):
線性最小二乘算法在信號(hào)處理中有著廣泛的運(yùn)用,例如信道估計(jì)、定時(shí)同步等。最小二乘問(wèn)題通常用qr分解(qrd)法求解。qr分解是一種線性代數(shù)的方法,其將給定矩陣a分解為乘積q·r,使得有a=qr。
存在若干種執(zhí)行qr分解的技術(shù)。這包括gram-schmidt正交化、householder變換和givens旋轉(zhuǎn)。
一些現(xiàn)有的基于qrd的算法的局限在于不適合于在并行處理系統(tǒng)中,例如多核處理器中,并行執(zhí)行。目前正在探索在基于qrd的算法中增加并行度的方式。
技術(shù)實(shí)現(xiàn)要素:
在至少一個(gè)方面中,本公開(kāi)針對(duì)一種用于在信號(hào)處理中適配濾波器的方法,所述方法包括:基于輸入信號(hào)中的ui值生成vi值,所述vi值被并行生成,其中i=0,1,2,...,n,un=d,其中d是從所述濾波器接收的輸出信號(hào);基于所述vi值遞歸生成γi值;基于si值和所述γi值生成d(i)和l(i)值,所述d(i)和l(i)值并行生成,其中所述si值是所述ui值的共軛或復(fù)共軛;并且根據(jù)所述ui、d(i)和l(i)值,生成信號(hào)w。
在至少另一個(gè)方面中,本公開(kāi)針對(duì)一種用于在信號(hào)處理中適配濾波器的裝置,所述裝置包括:處理模塊,包括:第一模塊,用于從所述濾波器接收d值以及輸入信號(hào)中的ui值;以及第二模塊,用于生成信號(hào)w,并包括多個(gè)執(zhí)行單元,所述第二模塊被配置為:基于ui值生成vi值,所述vi值使用所述多個(gè)執(zhí)行單元中的至少一些并行生成,其中i=0,1,2,...,n,un=d;基于所述vi值遞歸生成γi值;基于si值和所述γi值生成d(i)和l(i)值,所述d(i)和l(i)值使用所述多個(gè)執(zhí)行單元中的至少一些并行生成,其中所述值si是所述ui值的共軛或復(fù)共軛;并且根據(jù)所述ui、d(i)和l(i)值,生成信號(hào)w。
在至少另一個(gè)方面中,本公開(kāi)針對(duì)一種存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述指令被多個(gè)執(zhí)行單元執(zhí)行時(shí),使得所述多個(gè)執(zhí)行單元執(zhí)行操作以在信號(hào)處理中適配濾波器,所述操作包括:基于輸入信號(hào)中的ui值生成vi值,所述vi值使用所述多個(gè)執(zhí)行單元中的至少一些并行生成,其中i=0,1,2,...,n,un=d,其中d是從所述濾波器接收的輸出信號(hào);基于所述vi值遞歸生成γi值;基于si值和所述γi值生成d(i)和l(i)值,所述d(i)和l(i)值使用所述多個(gè)執(zhí)行單元中的至少一些并行生成,其中所述si值是所述ui值的共軛或復(fù)共軛;并且根據(jù)所述ui、d(i)和l(i)值,生成信號(hào)w。
附圖說(shuō)明
通過(guò)結(jié)合附圖,將可更好地理解本公開(kāi),其中:
圖1a為一個(gè)示例性自適應(yīng)信號(hào)處理架構(gòu)的描述;
圖1b為一個(gè)可用于qr分解的示例性脈動(dòng)陣列的描述;
圖2a為描述示例性多核處理器的方框圖;
圖2b為描述示例性處理系統(tǒng)的方框圖;
圖3a為用于執(zhí)行示例性循環(huán)的通用源代碼;
圖3b為示出了一個(gè)在至少一個(gè)實(shí)施例中的多執(zhí)行單元處理系統(tǒng)上使用的并行化軟件模型的方框圖;
圖4為根據(jù)至少一個(gè)實(shí)施例來(lái)并行執(zhí)行qr分解和反代換(backsubstitution)的過(guò)程的流程圖;
圖5a為根據(jù)至少另一個(gè)實(shí)施例來(lái)并行執(zhí)行qr分解和反代換的流程圖;
圖5b為根據(jù)至少另一個(gè)實(shí)施例的過(guò)程的流程圖。
圖6為一處理系統(tǒng)實(shí)施例的方框圖;以及
圖7為一通信裝置實(shí)施例的方框圖。
具體實(shí)施方式
本公開(kāi)在至少一個(gè)方面針對(duì)用于在多執(zhí)行單元處理系統(tǒng)上執(zhí)行的基于qr分解的方法和系統(tǒng)。所述方法可實(shí)施基于最小二乘的方案,以求解方程組。所述方法可在多個(gè)執(zhí)行單元上進(jìn)行高度并行化以改進(jìn)執(zhí)行延遲。
許多通信應(yīng)用都必須求解或估算方程組。在下面的方程(1)中,顯示了一個(gè)以線性系ax=b表示的示例性線性方程的方程組。
在方程(1)中,矩陣a(a11,a12,...)是觀察矩陣,可假定其為有噪聲的;b是代表已知序列(如訓(xùn)練序列等)的矢量,x是要用最小二乘法計(jì)算的矢量,且e是殘差或誤差的矢量。這可用如下矩陣表示法更為緊湊地描述為:ax=b+e。如果方程的個(gè)數(shù)與未知數(shù)的個(gè)數(shù)相同(即有n=m),則方程組有唯一解。但是,如果方程的個(gè)數(shù)多于未知數(shù)的個(gè)數(shù)(即有n>m),則方程組是超定的,故而沒(méi)有單獨(dú)的唯一解。例如,這通常發(fā)生在高采樣率通信應(yīng)用中。可使用最小二乘法,通過(guò)讓殘差e最小來(lái)求解這個(gè)問(wèn)題。
具體的,最小二乘法可用于求解超定線性系ax=b,其中a為mxn矩陣,有m>n。最小二乘解x使得殘差矢量r(x)=b-ax的歐幾里德范數(shù)的平方最小,從而有:
最小二乘解可通過(guò)運(yùn)用基于2步法qr分解的過(guò)程求得。
求解過(guò)程中的基本概念起始于這個(gè)觀察結(jié)果:當(dāng)矩陣a是上三角矩陣時(shí),即當(dāng)i<j時(shí)有aij=0,則通過(guò)稱為“反向代換”(backwardsubstitution)的過(guò)程,更容易對(duì)方程組求解。反向代換是一個(gè)遞歸的過(guò)程,其中要求解方程組,首先求解最后一個(gè)變量,然后,該過(guò)程繼續(xù)求解倒數(shù)第二個(gè)變量,依次類(lèi)推。
如此,在基于2步法qr分解的過(guò)程中,第一步可涉及使用qr分解將線性系ax=b轉(zhuǎn)換為三角系rx=qtb。q是正交矩陣(q·qt=im),且r是上三角矩陣(i<j時(shí)rij=0)。在第二步,使用反代換求解三角系。
最小二乘問(wèn)題可以用一種不同的記法改寫(xiě)為:
其中,
在第一步中,可構(gòu)造一個(gè)矩陣來(lái)求解最小二乘問(wèn)題:
再一次地,其中u0,u1,...,un-1是來(lái)自輸入信號(hào)矢量u的值,且d是基準(zhǔn)信號(hào)。
然后即可根據(jù)m=qr,用qr分解將矩陣m分解,其中q是正交矩陣,且r是上三角矩陣。
在求解最小二乘問(wèn)題的第二步中,可根據(jù)wopt=r-1執(zhí)行反向代換,其中r-1是矩陣r的逆矩陣,且wopt是最優(yōu)解。
圖1a為一個(gè)示例性自適應(yīng)信號(hào)處理架構(gòu)150的描述,架構(gòu)中包括自適應(yīng)濾波器152和處理模塊或系統(tǒng)154。圖1a的架構(gòu)僅為示例,并非旨在限制。自適應(yīng)濾波系統(tǒng)一般可具有由一個(gè)或多個(gè)可變參數(shù)控制的傳輸功能,并有辦法根據(jù)優(yōu)化算法來(lái)調(diào)整所述一個(gè)或多個(gè)可變參數(shù)。在示例架構(gòu)150中,可將輸入信號(hào)ui饋入濾波器152和處理模塊154中之一或二者。濾波器152可基于輸入信號(hào)ui產(chǎn)生并輸出信號(hào)d。然后,可將輸出信號(hào)d饋入處理模塊154。在這個(gè)意義上,輸出信號(hào)d可以是處理模塊154的基準(zhǔn)信號(hào)?;谳斎胄盘?hào)和來(lái)自濾波器152的輸出信號(hào)d,處理模塊154生成信號(hào)w,其可包括用于自適應(yīng)濾波器152控制的一個(gè)或多個(gè)濾波系數(shù)或權(quán)重(或系數(shù)的改變量δ)。
根據(jù)本公開(kāi)的實(shí)施例可搭配使用或關(guān)聯(lián)自適應(yīng)信號(hào)處理系統(tǒng)或自適應(yīng)濾波器,包括但不限于類(lèi)似于圖1a的示例架構(gòu)的系統(tǒng)。根據(jù)本公開(kāi)的實(shí)施例和教示也可用在其他基于或使用qr分解的應(yīng)用中。因此,本公開(kāi)并不限于信號(hào)處理系統(tǒng)中的自適應(yīng)濾波。
在第四代網(wǎng)絡(luò)如長(zhǎng)期演進(jìn)(lte)和目前正處開(kāi)發(fā)中的第五代(5g)網(wǎng)絡(luò)中,多傾向于用浮點(diǎn)運(yùn)算來(lái)實(shí)現(xiàn)最小二乘算法。相比前代而言,一些第四和第五代應(yīng)用要求有更高的精度,例如32位真浮點(diǎn)復(fù)信號(hào)。此外,所用矢量一般較長(zhǎng),因?yàn)樗妙l率更高。
如前所述,存在若干種執(zhí)行qr分解的技術(shù)。這包括gram-schmidt、householder和givens旋轉(zhuǎn)法。
householder反射(或變換)法運(yùn)用變換來(lái)得到上三角矩陣r。使用反射矩陣,有時(shí)稱householder矩陣,將矢量中除第一個(gè)元素之外的所有元素全部抵消。第一個(gè)元素就被指定為該矢量的范數(shù)。于是,對(duì)輸入矩陣的各列進(jìn)行迭代處理,得到上三角r矩陣。
givens旋轉(zhuǎn)法使用多次“givens”旋轉(zhuǎn)來(lái)執(zhí)行qr分解。每次旋轉(zhuǎn)都在輸入矩陣的一條次對(duì)角線上歸零一個(gè)元素,從而得到三角形的r。正交q矩陣則通過(guò)將所有g(shù)ivens旋轉(zhuǎn)串聯(lián)(concatenation)而得。
一些現(xiàn)有的qrd手段是在硬件上實(shí)現(xiàn)的,這是由于在傳統(tǒng)上,硬件上所能實(shí)現(xiàn)的運(yùn)算時(shí)間快于軟件上所能實(shí)現(xiàn)的運(yùn)算時(shí)間。
一些基于硬件的qrd實(shí)施方式是基于givens旋轉(zhuǎn)算法。這些廣泛運(yùn)用于處理大型矩陣求逆和qr分解,尤其用于定點(diǎn)運(yùn)算實(shí)施方式,如基于坐標(biāo)旋轉(zhuǎn)數(shù)字計(jì)算機(jī)(cordic)的矩陣求逆。
這些硬件實(shí)施方式通?;趃ivens旋轉(zhuǎn)算法,這是因?yàn)橄啾然趃ram-schmidt和householder的方法而言,該算法提供的數(shù)值穩(wěn)定性通常更好,硬件并行性也更高?;趆ouseholder算法的一些實(shí)施方式提供了類(lèi)似的數(shù)值穩(wěn)定度,但所允許的硬件并行性較低。
基于givens旋轉(zhuǎn)法的一些現(xiàn)有硬件qrd方法采用了前述的2步法。更具體地,先用脈動(dòng)陣列執(zhí)行qr分解,然后用反代換求解三角系。然而,由于基于givens旋轉(zhuǎn)的qr分解是遞歸的,故而能夠?qū)崿F(xiàn)的并行性也是有限的。
現(xiàn)在參照?qǐng)D1b,其為一個(gè)可用于一些現(xiàn)有的qr分解實(shí)施方式中的示例脈動(dòng)陣列100的描述。陣列100中包括邊界單元格102和內(nèi)部單元格104。輸入矢量或矩陣的各個(gè)行(u0、u1、u2、...、un-1)被作為輸入,加上數(shù)值d,從頂部開(kāi)始饋入到陣列的單元格中。每個(gè)單元格可以作為一個(gè)cordic塊實(shí)施。所有單元格中的值都同時(shí)例如按時(shí)鐘周期轉(zhuǎn)移到鄰接單元格中。因此,可能的最快時(shí)鐘周期可決定于最慢的單元格。一旦所有輸入都通過(guò)該陣列,每個(gè)單元格中的r值(如r11、r12、r22等)和z值(如z1、z2、...、zm-i)即為qr分解的輸出。之后,這些值用以用反代換來(lái)導(dǎo)出各系數(shù)。
在givens旋轉(zhuǎn)的實(shí)施方式中,每個(gè)單元格上的旋轉(zhuǎn)可計(jì)算如下。使用givens旋轉(zhuǎn),將零引入矩陣中。givens旋轉(zhuǎn)矩陣將矢量v的第i和第j個(gè)元素旋轉(zhuǎn)角度θ,從而有cosθ=c且sinθ=s。此處示出了一個(gè)givens旋轉(zhuǎn)矩陣,其中“*”表示復(fù)共軛。
因此,要確定givens旋轉(zhuǎn)矩陣,就要計(jì)算c值和s值。在本示例中對(duì)于邊界單元格102,這些值,以及r矩陣的r值的計(jì)算方法如下:
脈動(dòng)陣列100中內(nèi)部單元格104的值可如下計(jì)算:
因此,可以觀察到,邊界單元格102由來(lái)自北方(如陣列頂部)的輸入信號(hào)u觸發(fā),而內(nèi)部單元格104則由來(lái)自北方的輸入信號(hào)u和來(lái)自西方(如陣列左側(cè))的r值觸發(fā)。
在一些使用脈動(dòng)陣列如圖1b的示例脈動(dòng)陣列的實(shí)施方式中,存在著一個(gè)或多個(gè)障礙,限制了所能達(dá)到的執(zhí)行并行程度。例如,高延遲的平方根運(yùn)算和邊界單元格102中所執(zhí)行的求倒數(shù)運(yùn)算(reciprocaloperation)通常無(wú)法并行執(zhí)行。相應(yīng)地,這些高延遲的運(yùn)算需要順序執(zhí)行,導(dǎo)致整體執(zhí)行延遲非常高。
在另選方式中,qr分解可采用基于householder的方法執(zhí)行。可使用householder反射將矩陣m三角化,而householder反射通過(guò)householder反射矩陣pn實(shí)現(xiàn)。因此,qr分解中的r矩陣可通過(guò)r=p·m確定,其中p=πpn。對(duì)于大小為nxn的矩陣m,有:
r=pn-1·pn-2·pn-3·...p1·m。
此方法中包括遞歸,因?yàn)閜i是通過(guò)使用pi-1·m計(jì)算的。因此,通常要到所有pi-1,pi-2,pi-3,...,p1都計(jì)算完畢,才能計(jì)算反射矩陣pi。反射矩陣p的計(jì)算中的遞歸性,為這些計(jì)算的并行執(zhí)行帶來(lái)了障礙。
進(jìn)一步的,反代換過(guò)程通常也必須等到qr分解過(guò)程完畢才能開(kāi)始。附加的,為了在反代換得以開(kāi)始之前緩存一個(gè)或多個(gè)r矩陣,往往要求有足夠的存儲(chǔ)空間。
相應(yīng)地,現(xiàn)有的基于householder的脈動(dòng)陣列方法在能夠達(dá)到的處理并行度方面受限。
雖然許多現(xiàn)有的qrd方法通常都已在硬件中實(shí)現(xiàn)以得到較好的性能,但硬件上的進(jìn)步,包括并行處理系統(tǒng)如多核處理器(如多至8核或16核)和眾核處理器(如16核以上),已使得用基于軟件的方法達(dá)到類(lèi)似硬件的性能成為可能??梢允褂没谲浖慕鉀Q方案來(lái)替代基于硬件的解決方案,例如用以提供更好的靈活性和可編程性、更低的成本和對(duì)最終用戶更快的交付中的一點(diǎn)或多點(diǎn)。
雖然此處使用了術(shù)語(yǔ)“多核”和“眾核”,但它們的含義并不局限于任何具體的核心數(shù)量。在一些例子中,這兩個(gè)術(shù)語(yǔ)可以互換使用。
通過(guò)使用多核或眾核處理器所能獲得的性能改進(jìn)往往取決于所用的軟件的算法和算法的實(shí)施方式。性能上的獲益通常局限于軟件中能夠在多個(gè)核心上同時(shí)并行執(zhí)行的部分。
圖2a為描述示例性多核或眾核處理器200或處理系統(tǒng)的方框圖,可配合本公開(kāi)一個(gè)或多個(gè)實(shí)施例使用或在其中使用。為求簡(jiǎn)潔,僅示出了處理器200的一些組件。處理器200通??砂ㄖ噶畲鎯?chǔ)器和調(diào)度器202、n+1個(gè)核心210(如核0、1、2、...、n-1、n)或其他執(zhí)行單元,以及存儲(chǔ)器、高速緩存或訪問(wèn)總線220。核心210可具有一個(gè)或多個(gè)運(yùn)算邏輯單元(alu)(未示出)。附加地,核心210中的一些或全部可具有某些資源的專(zhuān)門(mén)訪問(wèn),如寄存器文件、存儲(chǔ)器端口及其他資源(未示出)。在一些實(shí)施例中,核心210中的一些或全部可以同步,以確保在相同的時(shí)鐘沿上啟動(dòng)和完成。
可將指令例如從調(diào)度器202提供給一個(gè)或多個(gè)核心210。在一些例子中,所述指令可以僅在核心相關(guān)指數(shù)上有差異。如此,可以將一個(gè)指令并行提取到多個(gè)處理核心,且核心的處理單元可以執(zhí)行這同一個(gè)指令,但是具有不同的核心相關(guān)指數(shù)。這樣的處理可用在,例如,具有循環(huán)、且循環(huán)的每次迭代都獨(dú)立于其前次迭代的程序中。
再者,圖2a的多核處理器200僅為與根據(jù)本公開(kāi)的方法一起使用的并行處理裝置的示例??煽紤]接受的是,本教示意在可結(jié)合其他并行處理裝置和系統(tǒng)使用。
根據(jù)本公開(kāi)的至少一個(gè)方面,提供了基于qr分解的最小二乘算法,其相比許多現(xiàn)有方法而言,可以以增加的并行性進(jìn)行實(shí)現(xiàn)。增加的并行性允許該算法發(fā)揮多處理硬件如多核處理器的優(yōu)勢(shì),達(dá)成增強(qiáng)的性能。性能上增強(qiáng)的形式可以是更短的執(zhí)行延遲。
相比單核處理器(即便該單核處理器利用了流水線技術(shù))也可以采用一個(gè)示例來(lái)演示使用眾核處理器所能達(dá)成的性能改進(jìn)。
圖3a是用于執(zhí)行示例循環(huán)過(guò)程的通用源代碼。該過(guò)程循環(huán)2,048次,并執(zhí)行各種運(yùn)算。在本例中,每次循環(huán)中的運(yùn)算都獨(dú)立于該循環(huán)其他迭代中的運(yùn)算。具體的,循環(huán)塊中的第一個(gè)運(yùn)算提供兩個(gè)其他值的加和的結(jié)果(r7[i]=r8[i]+r9[i])。第二個(gè)運(yùn)算包括第一個(gè)運(yùn)算的和乘以一個(gè)值(r10[i]=r7[i]*r9[i])。此外,每次循環(huán)中的運(yùn)算(如第一個(gè)和第二個(gè)運(yùn)算)都獨(dú)立于該循環(huán)其他迭代中的運(yùn)算。
當(dāng)圖3a的循環(huán)在單執(zhí)行單元處理器如單核處理器中執(zhí)行時(shí),在任意給定時(shí)間只能執(zhí)行一個(gè)指令。即便單核處理器實(shí)施了流水線技術(shù),依然只能一次執(zhí)行一個(gè)指令。當(dāng)要執(zhí)行多個(gè)指令時(shí),例如在有多次迭代的循環(huán)中,總體執(zhí)行延遲可能較高。
圖3b為眾核處理器的示例的描述。在該例中,處理器有2048個(gè)核心(或其他執(zhí)行單元)。一個(gè)獨(dú)立迭代的循環(huán),如圖3a的循環(huán),可以拆解為多個(gè)獨(dú)立的指令流。每個(gè)指令流都可以加載到不同的核心中,從而讓不同流中的指令可以并行執(zhí)行。在示例中,可將循環(huán)的每次迭代視作單獨(dú)的指令流,故而假定至少核心數(shù)與迭代次數(shù)相同時(shí),循環(huán)的每次迭代可分別加載到不同的核心中。故而對(duì)于第一次迭代,其中i=0,則指令r7[0]=r8[0]+r9[0]和r10[0]=r7[0]*r9[0]可加載到第一核心302。與此同時(shí),對(duì)于第二次迭代,其中i=1,則指令r7[1]=r8[1]+r9[1]和r10[1]=r7[1]*r9[1]可加載到第二核心304,以此類(lèi)推。這樣,該循環(huán)的一些或全部迭代就可并行執(zhí)行。
在處理器所具有的核心(或其他執(zhí)行單元)數(shù)少于指令流數(shù)的情況中,處理仍然可以并行發(fā)生??蓤?zhí)行第一批或第一組指令流,然后在時(shí)間上繼續(xù)一組或多組其他指令流。
因此,在本公開(kāi)的至少一個(gè)實(shí)施例中,可將qr分解相關(guān)過(guò)程中的迭代獨(dú)立循環(huán)拆解或分離為多個(gè)獨(dú)立循環(huán)體。這些循環(huán)體可作為單獨(dú)的指令流,按并行方式處理。
在本公開(kāi)的至少一個(gè)實(shí)施例中,qr分解基于householder法,而非在一些現(xiàn)有的qr分解方法中所用的givens旋轉(zhuǎn)法。在所述至少一個(gè)實(shí)施例中,將householder法中的遞歸部分或成分與其他操作分離。這就允許該方法中的其他操作并行化。進(jìn)一步的,在一些實(shí)施例中,householder方法中的遞歸部分可以簡(jiǎn)化,例如簡(jiǎn)化為加法或累加運(yùn)算。由此,在一些實(shí)施例中,所要求的存儲(chǔ)空間大小和內(nèi)存訪問(wèn)次數(shù)相比一些現(xiàn)有手段得到了降低。
為使用qr分解來(lái)求解方程組,可生成矩陣m:
其中u=[u0,u1,...,un-1]是代表輸入信號(hào)的矢量,且d代表基準(zhǔn)信號(hào)。
在該例中,m的維度為(n+1)x(n+1),且為稀疏矩陣。同樣的,除了最后一個(gè)對(duì)角元素的值是d之外,所有對(duì)角元素的值都是1。
然后即可根據(jù)m=qr,用qr分解將矩陣m分解,其中q是正交矩陣,且r是上三角矩陣。矩陣r的維度為(n+1)x(n+1),不過(guò)我們僅對(duì)矩陣r-1中的nxn部分感興趣,因?yàn)樽詈笠恍泻鸵涣信c基準(zhǔn)信號(hào)d有關(guān)。附加的,矩陣r-1的對(duì)角元素可以是實(shí)數(shù)值。
一旦矩陣m分解完畢,則根據(jù)wopt=r-1,可以使用反向代換得到系數(shù)矩陣w,其中r-1是矩陣r的逆矩陣,且wopt是代表解的系數(shù)矩陣。
現(xiàn)在描述根據(jù)本公開(kāi)的至少一個(gè)實(shí)施例、并基于householder反射的過(guò)程。在qr分解中,矩陣r可按如下計(jì)算:
方程(11)可用矩陣表示法表示為:
方程(12)中的矩陣m可以從r=pm改寫(xiě)為r=p(i+eu),其中i為單位矩陣,e是除最后一個(gè)元素值為1之外全部為零的矢量,且u是數(shù)值矢量[u0,u1,...,un-1]:
其中,un=d-1。
方程r=p(i+eu)可改寫(xiě)為r=pi+peu的形式。
相應(yīng)地,矩陣r的值為:
矩陣w實(shí)為矩陣r的逆矩陣,即為r-1,其可用反代換計(jì)算。在示例中,這可按如下計(jì)算:
觀察到在方程(15)中,r-1可通過(guò)值p(j,j),即p的對(duì)角元素,以及值p(:,n),即p中最后一列的元素,來(lái)計(jì)算。因此,r-1的確定就可減少為計(jì)算p(j,j)和p(:,n)的值。故而方程(15)可改寫(xiě)為:
其中w(i,0)被初始化為零。另,
d(i)代表p的對(duì)角元素(“d”表示對(duì)角)的值,且l(i)代表p的最后一列(“l(fā)”表示最后)。
在基于householder法的qr分解算法中,所要求的大部分運(yùn)算可能都是用于生成這n個(gè)householder反射矩陣pn,pn-1,pn-2,pn-3,...,p1。
矩陣p的計(jì)算涉及遞歸,因?yàn)槿缜八懻?,給定的反射矩陣pi通常只有在之前的pi-1、pi-2、pi-3、...、p1全部計(jì)算完畢之后方可開(kāi)始計(jì)算。由此,反射矩陣p在計(jì)算中的遞歸性,為計(jì)算的并行執(zhí)行帶來(lái)了障礙。
在至少一個(gè)實(shí)施例中,將householder法中的遞歸部分與其他操作分離。這可允許該方法中的其他操作并行化。
在至少一個(gè)實(shí)施例中,方程(16)和(17)中的d(i)值和l(i)值中的一個(gè)或兩個(gè)可以并行計(jì)算。
請(qǐng)參考如下householder反射矩陣p1和p2:
其中,
其中α0=1,且||u0||2是輸入信號(hào)u的歐幾里德距離輸入值u0的平方,且其中:
其中,
因此,在householder矩陣p1、p2、p3、...等的生成中,唯一的遞歸成分是α。
在一般形式中,對(duì)于反射矩陣pn:
其僅依賴于輸入值un-1和全部的之前的α,即αn-1,αn-2,...,α1。
采用α的這個(gè)計(jì)算,則d(i)和l(i)值的計(jì)算為:
再者,其中:
方程(24)中對(duì)αn的計(jì)算是遞歸的,因此不可能展開(kāi)。此外,所述計(jì)算中包含求倒數(shù)、求平方根和連乘(continualmultiplication)。這種對(duì)αn的總體計(jì)算具有較長(zhǎng)延遲。
αn的遞歸計(jì)算可改寫(xiě)為:
引入了新變量γ,可定義為:
使得有:
因此,qr分解的遞歸元素可以簡(jiǎn)化如下,其中包括求和或累加運(yùn)算:
γn=γn-1+||un-1||2,γ0=1(28)
在方程(28)中,||un-1||2項(xiàng)基于輸入值un-1,故而可并行進(jìn)行預(yù)計(jì)算。因此,方程(28)中的遞歸得到了簡(jiǎn)化,使得遞歸中的每個(gè)實(shí)例都是求和或累加指令,即γn=γn-1+值。將這種累加指令的簡(jiǎn)潔與速度與運(yùn)算速度與緩慢得多的方程(24)的計(jì)算進(jìn)行對(duì)比。雖然方程(28)使用了求和或累加,但在其他實(shí)施例中,該遞歸可包含一個(gè)或多個(gè)其他運(yùn)算或由其組成,例如一個(gè)或多個(gè)求和、累加、減法、乘法或其他低延遲運(yùn)算等。在至少一個(gè)實(shí)施例中,方程(28)可使用浮點(diǎn)實(shí)值累加運(yùn)算來(lái)實(shí)施。
圖4為根據(jù)本公開(kāi)至少一個(gè)實(shí)施例來(lái)并行執(zhí)行qr分解和反代換的過(guò)程的一般化的流程圖。此過(guò)程可使用具有多個(gè)執(zhí)行單元的多處理硬件加以實(shí)現(xiàn),例如多核或眾核處理器,或具有多個(gè)運(yùn)算邏輯單元(alu)的處理器。在圖4的示例中,參照多核處理器描述了該過(guò)程。
該過(guò)程在方框400開(kāi)始,進(jìn)行到方框402,在那里,在多核處理器可接收到數(shù)據(jù)。所接到的數(shù)據(jù)可以是符號(hào)或其他值,并可通過(guò)多個(gè)流接收。所述數(shù)據(jù)可形成方程組的一部分,并可表示為或組織為矩陣m。
然后,該過(guò)程從方框402進(jìn)行到方框404,在那里開(kāi)始處理,嘗試計(jì)算出該方程組的一個(gè)解。求解可按照任意合適的方式來(lái)計(jì)算,例如使用基于最小二乘的方法。
然后,該過(guò)程從方框404進(jìn)行到方框406,在那里可開(kāi)始將矩陣m分解為單位矩陣q和上三角矩陣r,以使m=qr。
然后,該過(guò)程從方框406進(jìn)行到方框408,在那里,可以基于矩陣m中至少一些值計(jì)算第一組值,其中所述第一組值中的至少兩個(gè)值可以用處理器中兩個(gè)或更多個(gè)核心(或其他執(zhí)行單元)并行計(jì)算。
然后,該過(guò)程從方框408進(jìn)行到方框410,在那里,可以在qr分解的遞歸成分中計(jì)算第二組值。第二組值可基于第一組中至少一些值進(jìn)行計(jì)算。在至少一個(gè)實(shí)施例中,第二組中的值可以使用方程(28)或類(lèi)似或等價(jià)的方程進(jìn)行計(jì)算。由于所述計(jì)算中的遞歸性,在一個(gè)實(shí)施例中,此計(jì)算僅可使用處理器中的一個(gè)核執(zhí)行。
然后,該過(guò)程從方框410進(jìn)行到方框412,在那里,可基于第二組值中至少一些值進(jìn)行第三組值的計(jì)算。第三組值中的兩個(gè)或更多個(gè)值可以用處理器中兩個(gè)或更多個(gè)核心(或其他執(zhí)行單元)并行計(jì)算。在至少一個(gè)實(shí)施例中,第三組中的值可包括d(i)值和l(i)值中之一或二者,這兩個(gè)值可以根據(jù)方程(23)或類(lèi)似或等價(jià)的方程進(jìn)行計(jì)算。此外,在至少一個(gè)實(shí)施例中,第三組中至少一些值可用于計(jì)算上三角矩陣r。
然后,該過(guò)程從方框412進(jìn)行到方框414,在那里,可基于第三組中至少一些值,并使用反代換進(jìn)行系數(shù)矩陣w中的值的計(jì)算。矩陣w中的兩個(gè)或更多個(gè)值可以用處理器中兩個(gè)或更多個(gè)核心(或其他執(zhí)行單元)并行計(jì)算。在至少一個(gè)實(shí)施例中,所述反代換可包括用處理器中至少兩個(gè)或更多個(gè)核心(或其他執(zhí)行單元)并行計(jì)算矩陣w中至少兩行的值。與矩陣w中所有值不同的是,矩陣w中的各個(gè)行可以使用單獨(dú)的數(shù)據(jù)或指令流來(lái)并行處理,因?yàn)槊總€(gè)行內(nèi)的值的計(jì)算可能是遞歸的。換言之,在一些實(shí)施例中,矩陣w中第i行的值可能需要按遞歸方式進(jìn)行計(jì)算。
一旦反代換完成,矩陣w中最后一列的值即可為w個(gè)系數(shù),其可給出前文參照方框402所描述的方程組的一個(gè)解。
然后,該過(guò)程從方框414進(jìn)行到方框416并結(jié)束。
圖5a是根據(jù)本公開(kāi)至少一個(gè)實(shí)施例來(lái)并行執(zhí)行qr分解和反代換過(guò)程的流程圖。圖5a的示例可類(lèi)似于圖4的示例,并進(jìn)行更詳細(xì)的描述。圖5a的過(guò)程可使用具有多個(gè)執(zhí)行單元的多處理硬件加以實(shí)現(xiàn),例如多核或眾核處理器,或具有多個(gè)運(yùn)算邏輯單元(alu)的處理器。
該過(guò)程在方框500開(kāi)始,進(jìn)行到方框502,其中,引入值vi和si來(lái)進(jìn)行qr分解。這些值可定義如下:
vi=||ui||2(29)
si=ui*(30)
其中i=0,1,2,...,n,un=d,且*表示共軛或復(fù)共軛。
值vi與si(i=0,1,2,...,n)通過(guò)計(jì)算求得。兩個(gè)或多個(gè)vi、si對(duì)(如具有相同的i值)可以在獨(dú)立的循環(huán)體中計(jì)算。如前所述,兩個(gè)或多個(gè)所述循環(huán)體可以單獨(dú)但并行地,使用不同的執(zhí)行單元處理。在一個(gè)實(shí)施例中,這些循環(huán)體中的兩個(gè)或多個(gè)可饋入到多核處理器的不同核心或alu中。例如,v0和s0可饋入到多核處理器的第一核心,v1和s1可饋入到第二核心,v2和s2可饋入到第三核心,以此類(lèi)推。不過(guò),在至少另一個(gè)實(shí)施例中,vi和si的計(jì)算可饋入不同的核心中,進(jìn)行同時(shí)的并行處理,例如v0可饋入第一核心,s0可饋入到第二核心,v1可饋入到第三核心,s1可饋入到第四核心,以此類(lèi)推。
因此,在例如要計(jì)算16個(gè)vi和si對(duì)的示例中,每對(duì)都可饋入不同的核心,并行計(jì)算。此處假定有16個(gè)核心可用。如果僅有8個(gè)核心可用,則可先并行計(jì)算前8個(gè)vi和si對(duì),然后計(jì)算余下的8個(gè)vi和si對(duì)。用多處理系統(tǒng)計(jì)算這些值的其他選項(xiàng)也是可能的。此處所述對(duì)數(shù)和核心數(shù)僅為示例,并非旨在限制。
該過(guò)程從方框502進(jìn)行到方框504,其中,可執(zhí)行qr分解的遞歸循環(huán)。這里,循環(huán)中可包括前文方程(28)所提出的基本加法(或累加)運(yùn)算。如此,本過(guò)程中的遞歸循環(huán)可根據(jù)下式執(zhí)行:
γi=γi-1+vi-1(31)
其中γ0=1,且i=1,2,3,...,n。
此循環(huán)中的遞歸性意味著可以順序執(zhí)行,例如僅使用多核處理器中一個(gè)核心或alu執(zhí)行。
然后,該過(guò)程從方框504進(jìn)行到方框506,在那里引入值ai和bi,二者可定義如下:
其中,i=0,1,2,3,...,n。
因此,一旦求出γi值,即可計(jì)算ai和bi值。雖然平方根計(jì)算(用于ai)和求倒數(shù)計(jì)算(用于bi)所用時(shí)間相比更簡(jiǎn)單的計(jì)算而言更長(zhǎng),且因而是高延遲指令,但這些對(duì)計(jì)算中的一些或全部可以并行執(zhí)行。例如,類(lèi)似于前述vi與si對(duì)的計(jì)算,每對(duì)ai和bi(如具有相同的i值)可以在獨(dú)立的循環(huán)體中計(jì)算。兩個(gè)或多個(gè)所述循環(huán)體可以單獨(dú)但并行地使用多個(gè)執(zhí)行單元計(jì)算。在一個(gè)實(shí)施例中,這些循環(huán)體中的兩個(gè)或多個(gè)可饋入到處理器的不同核心或alu中。因此,不是用單個(gè)執(zhí)行單元為每對(duì)ai和bi執(zhí)行這些長(zhǎng)運(yùn)算,而是將一些或全部計(jì)算或成對(duì)計(jì)算并行執(zhí)行,以縮短總體處理時(shí)間。
然后,該過(guò)程從方框506進(jìn)行到方框508,在那里可用ai和bi值按下式計(jì)算d(i)和l(i)值:
d(i)=aibi+1
l(i)=sibibi+1
(33)
其中,i=0,1,2,3,...,n。
以上聯(lián)系方程(23)描述了d(i)和l(i)值。
以類(lèi)似于方框502和506中所執(zhí)行的計(jì)算的方式,d(i)和l(i)對(duì)(如具有相同的i值)可以在獨(dú)立的循環(huán)體中計(jì)算。如前所述,兩個(gè)或多個(gè)所述循環(huán)體可以并行地使用處理器的多個(gè)執(zhí)行單元進(jìn)行處理。
然后,該過(guò)程從方框508進(jìn)行到方框510,在那里可用計(jì)算而得的d(i)和l(i)值按下式執(zhí)行反代換:
方程(34)與前文所提供的方程(16)相同。
如前所述,反代換計(jì)算包括遞歸成分。因此在一些實(shí)施例中,反代換不能完全展開(kāi)來(lái)完全并行地計(jì)算所有w(i,j)值。不過(guò),通過(guò)把對(duì)矩陣r的每個(gè)矩陣行i的計(jì)算展開(kāi)到不同的指令流,可將反代換過(guò)程部分并行化。然后,矩陣r的給定行的每個(gè)指令流可以并行執(zhí)行。另一種描述方式是:通過(guò)將矩陣w的每個(gè)矩陣行i展開(kāi)到不同的指令流,可將反代換過(guò)程部分并行化。
一旦反代換完成,矩陣w中最后一列的值即可為w個(gè)系數(shù),其為所述方程組或超定方程組的一個(gè)解。然后,該過(guò)程從方框510進(jìn)行到方框512并結(jié)束。
圖5b是根據(jù)本公開(kāi)至少一個(gè)實(shí)施例的另一個(gè)過(guò)程的流程圖。圖5b的示例可至少一定程度上類(lèi)似于圖5a的示例過(guò)程,并且也可使用具有多個(gè)執(zhí)行單元的多處理硬件實(shí)現(xiàn)。
該過(guò)程在方框520開(kāi)始,進(jìn)行到方框522,在那里,可生成或計(jì)算qr分解的vi值。所述vi值的生成可類(lèi)似于在圖5a的過(guò)程中聯(lián)系方框502所描述的方式。所述vi值中的至少一部分或全部可以用至少兩個(gè)多執(zhí)行單元并行生成或計(jì)算。
該過(guò)程從522進(jìn)行到方框524,在那里,可執(zhí)行qr分解的遞歸循環(huán)。γi值的計(jì)算的執(zhí)行可類(lèi)似于在圖5a的過(guò)程中參照方框504所描述的方式。
然后,該過(guò)程從方框524進(jìn)行到方框526,在那里可生成d(i)和l(i)值。d(i)和l(i)值中一者或二者的生成的執(zhí)行可類(lèi)似于前文在圖5a的過(guò)程中聯(lián)系方框508所描述的方式。所述d(i)和l(i)值中的至少一部分或全部可以用至少兩個(gè)多執(zhí)行單元并行生成。
然后,該過(guò)程從方框526進(jìn)行到方框528,在那里可根據(jù)ui、d(i)和l(i)值中的一些或全部生成或計(jì)算信號(hào)w。另外,信號(hào)w的計(jì)算方式可類(lèi)似于前文聯(lián)系圖5a的方框510所描述的方式。
然后,該過(guò)程從方框528進(jìn)行到方框530并結(jié)束。
雖然圖4、圖5a和圖5b的實(shí)施例每個(gè)都在其各自的過(guò)程中示出了具體的數(shù)字和步驟順序,但這并非意在限制。例如,步驟的順序、步驟的個(gè)數(shù)以及步驟的本身在其他實(shí)施例中都可能有所不同。圖4、圖5a和圖5b的實(shí)施例僅為示例,并非意在限制。
圖2b是代表根據(jù)本公開(kāi)的示例性處理模塊或系統(tǒng)254的方框圖。模塊或系統(tǒng)254可配合一個(gè)或多個(gè)實(shí)施例使用或在其中使用。例如,模塊254的處理可用于自適應(yīng)濾波器架構(gòu)中,包括但不限于圖1a的架構(gòu)。比如,圖1a中的處理器方框154可包括與圖2b中模塊254類(lèi)似的模塊或系統(tǒng)。附加的,示例性處理模塊或系統(tǒng)254可用于實(shí)施類(lèi)似于或等同于在圖4、5a或5b中所示出和描述的方法或過(guò)程。不過(guò),應(yīng)當(dāng)理解的是,根據(jù)本公開(kāi)的處理模塊或系統(tǒng)可用于其他架構(gòu)和其他應(yīng)用中。
參照?qǐng)D2b,處理模塊或系統(tǒng)254可包括一個(gè)或多個(gè)子模塊,例如模塊256和258。根據(jù)至少一個(gè)實(shí)施例,處理模塊或系統(tǒng)254可包括第一模塊256和第二模塊258。第一模塊256可被配置用于從濾波器接收d值以及輸入信號(hào)中的ui值。第二模塊258可被配置用于生成信號(hào)w,并包括多個(gè)執(zhí)行單元。第二模塊258還可被配置為使用所述多個(gè)執(zhí)行單元中的至少一些個(gè),根據(jù)ui值并行生成對(duì)應(yīng)的vi值,其中i=0,1,2,...,n,un=d.。在至少一個(gè)實(shí)施例中,所有vi值可并行生成。不過(guò)在其他實(shí)施例中,僅有一些vi值可并行生成。
第二模塊258還可被配置為根據(jù)vi值遞歸生成對(duì)應(yīng)的γi值。對(duì)應(yīng)值d(i)和l(i)可根據(jù)γi值和si值,使用所述多個(gè)執(zhí)行單元中的至少一些并行生成,其中si值為ui值的共軛或復(fù)共軛。附加的,第二模塊258可根據(jù)ui、d(i)和l(i)值生成信號(hào)w。信號(hào)w可以輸出,例如供濾波器接收。
雖然處理模塊或系統(tǒng)254被示出為具有兩個(gè)模塊256和258,但這并非旨在限制。模塊254可具有更少或更多的模塊或子模塊。進(jìn)一步的,雖然上述功能被描述為由兩個(gè)子模塊256和258中的一個(gè)執(zhí)行,但這也并非旨在限制。
本公開(kāi)所描述的方法、裝置和系統(tǒng)可用于或配合任意計(jì)算系統(tǒng)或裝置,包括但不限于用戶設(shè)備、移動(dòng)設(shè)備、節(jié)點(diǎn)b、基站、網(wǎng)元、傳輸點(diǎn)、機(jī)器、芯片等。例如,圖6是一個(gè)可配合本公開(kāi)的方法和裝置使用的處理系統(tǒng)600的方框圖。具體的裝置既可以利用圖示的所有組件,也可以僅用組件的一個(gè)子集,且不同裝置的集成度可以不同。此外,一個(gè)裝置還可以包含某個(gè)組件的多個(gè)實(shí)例,例如多個(gè)處理單元、處理器、存儲(chǔ)器、發(fā)送器、接收器等。所述處理系統(tǒng)600可以包括處理單元,所述處理單元可以配備一個(gè)或多個(gè)輸入/輸出裝置,例如揚(yáng)聲器、麥克風(fēng)、鼠標(biāo)、觸摸屏、小鍵盤(pán)、鍵盤(pán)、打印機(jī)、顯示器或諸如此類(lèi)。所述處理系統(tǒng)可以包括處理器610、存儲(chǔ)器620、大容量存儲(chǔ)裝置630、視頻適配器640和連接著總線660的i/o接口650中的一個(gè)或多個(gè)。在至少一個(gè)實(shí)施例中,處理器610可以是多核或眾核處理器,或具有多個(gè)執(zhí)行單元的任意其他處理器,例如用于執(zhí)行本公開(kāi)的方法中的一個(gè)或多個(gè)。
所述總線660可以是若干種總線架構(gòu)中的一種或幾種,包括存儲(chǔ)器總線或存儲(chǔ)控制器、外圍總線、視頻總線或諸如此類(lèi)。所述存儲(chǔ)器620可以包括任意類(lèi)型的系統(tǒng)存儲(chǔ)器,如靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、同步dram(sdram)、只讀存儲(chǔ)器(rom)或它們的組合或諸如此類(lèi)。在一個(gè)實(shí)施例中,存儲(chǔ)器可以包含開(kāi)機(jī)時(shí)所用的rom、以及執(zhí)行程序時(shí)存儲(chǔ)程序和數(shù)據(jù)的dram。
所述大容量存儲(chǔ)裝置630可以包括任何類(lèi)型的、被配置用于存儲(chǔ)數(shù)據(jù)、程序和其他信息、并使得這些數(shù)據(jù)、程序和其他信息能夠通過(guò)總線訪問(wèn)的存儲(chǔ)裝置。所述大容量存儲(chǔ)裝置630可以包括,例如,一個(gè)或多個(gè)固態(tài)驅(qū)動(dòng)器、硬盤(pán)驅(qū)動(dòng)器、磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器等等。
所述視頻適配器640和i/o接口650提供將外部輸入和輸出裝置耦合到處理系統(tǒng)的接口。正如示出的,所述輸入和輸出裝置的示例包括耦合到視頻適配器的顯示器642,以及耦合到i/o接口的鼠標(biāo)/鍵盤(pán)/打印機(jī)652。也可將其他裝置耦合到處理系統(tǒng),并且可以利用更多或更少的接口卡。例如,可以用諸如通用串行總線(usb)(未示出)等串聯(lián)接口為打印機(jī)提供接口。
處理系統(tǒng)600也包含一個(gè)或多個(gè)網(wǎng)絡(luò)接口670,具體可包括有線連接(如以太網(wǎng)線等)、和/或無(wú)線鏈接,以訪問(wèn)節(jié)點(diǎn)或不同的網(wǎng)絡(luò)。網(wǎng)絡(luò)接口670可允許處理系統(tǒng)通過(guò)網(wǎng)絡(luò)與遠(yuǎn)程單元或系統(tǒng)通信。例如,網(wǎng)絡(luò)接口670可以通過(guò)一個(gè)或多個(gè)發(fā)送器/發(fā)射天線和一個(gè)或多個(gè)接收器/接收天線來(lái)提供無(wú)線通信。在一個(gè)實(shí)施例中,處理系統(tǒng)600可連接到一個(gè)或多個(gè)網(wǎng)絡(luò),例如示出為網(wǎng)絡(luò)672的局域網(wǎng)或廣域網(wǎng),來(lái)進(jìn)行數(shù)據(jù)處理和與遠(yuǎn)程裝置如其他處理系統(tǒng)、互聯(lián)網(wǎng)、遠(yuǎn)程存儲(chǔ)設(shè)施等通信。
圖7示出了通信裝置或系統(tǒng)700的實(shí)施例的方框圖,所述裝置或系統(tǒng)可等價(jià)于前文所討論的一個(gè)或多個(gè)裝置(如用戶設(shè)備、節(jié)點(diǎn)b、基站、網(wǎng)元、傳輸點(diǎn)、機(jī)器、芯片等)。所述通信裝置700可包括一個(gè)或多個(gè)處理器704,例如多核或眾核處理器,或任意其他多執(zhí)行單元處理器或處理系統(tǒng)。通信裝置700還可包括存儲(chǔ)器706、蜂窩或其他無(wú)線接口710、附加無(wú)線接口712和附加接口714,其可按(或不按)圖7所示布置。處理器704可以是任意能夠執(zhí)行計(jì)算和/或其他與處理有關(guān)的任務(wù)的組件,且存儲(chǔ)器706可以是任意能夠存儲(chǔ)用于處理器704的程序和/或指令的組件。蜂窩接口710可以是允許通信裝置700用蜂窩或其他無(wú)線信號(hào)進(jìn)行通信的任何組件或組件的集合,并可用于在蜂窩或蜂窩的其他連接或其他網(wǎng)絡(luò)上接收和/或發(fā)送信號(hào)。附加無(wú)線接口712可以是允許通信裝置700通過(guò)一個(gè)或多個(gè)其他無(wú)線協(xié)議,如wi-fi或藍(lán)牙協(xié)議或控制協(xié)議,進(jìn)行通信的任何組件或組件的集合。裝置700可使用蜂窩接口710和/或附加無(wú)線接口712與任意無(wú)線啟用的組件如基站、傳輸點(diǎn)、網(wǎng)元、中繼、移動(dòng)設(shè)備、機(jī)器等進(jìn)行通信。附加接口714可以是允許通信裝置700通過(guò)包括有線線路協(xié)議的附加協(xié)議進(jìn)行通信的任何組件或組件的集合。在實(shí)施例中,附加接口714可允許裝置700與另一個(gè)組件如回傳網(wǎng)絡(luò)組件進(jìn)行通信。
通過(guò)前述實(shí)施例的描述,本公開(kāi)的教示可以僅用硬件實(shí)現(xiàn),或用軟件和硬件的組合實(shí)現(xiàn)。軟件或其他用于實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)可執(zhí)行指令,或其一個(gè)或多個(gè)部分,可存儲(chǔ)在任何適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)之上。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是有形的或暫時(shí)性/非暫時(shí)性介質(zhì),如光的(如cd、dvd、藍(lán)光等)、磁的、硬盤(pán)的、易失性或非易失性的、固態(tài)的或本領(lǐng)域公知的其他任意類(lèi)型的存儲(chǔ)介質(zhì)。
此外,雖然在多核處理器和眾核處理器的上下文中描述了實(shí)施例,但本公開(kāi)的范圍并非旨在限制于這種處理器。本公開(kāi)的教示可用于或應(yīng)用于其他應(yīng)用中和其他領(lǐng)域中。因此,本公開(kāi)的教示可一般地應(yīng)用于其他類(lèi)型的具有多個(gè)執(zhí)行單元的處理系統(tǒng)。
本領(lǐng)域技術(shù)人員將理解本公開(kāi)的附加特征和優(yōu)點(diǎn)。
本文描述的并在附圖中示出的特定實(shí)施例的結(jié)構(gòu)、特征、附件和替代方案旨在一般性地并在相容的范圍之內(nèi)適用于本公開(kāi)的所有教示,包括本文中描述和示出的所有實(shí)施例。換言之,特定實(shí)施例的結(jié)構(gòu)、特征、附件和替代方案并非旨在限定于該特定實(shí)施例,除非確有如此表示。
此外,前文提供的詳細(xì)描述用于讓本領(lǐng)域技術(shù)人員能夠制作或使用符合本公開(kāi)的一個(gè)或多個(gè)實(shí)施例。對(duì)本領(lǐng)域技術(shù)人員而言,那些實(shí)施例的各種修改將是顯而易見(jiàn)的,且在不背離本文所提供的教示的精神或范圍的情況下,本文所定義的通用原則可應(yīng)用于其他實(shí)施例。故此,本方法、系統(tǒng)和/或裝置并非旨在限制于于此所公開(kāi)的實(shí)施例。本權(quán)利要求的范圍不應(yīng)局限于這些實(shí)施例,而應(yīng)以符合本說(shuō)明書(shū)整體的方式加以最寬泛的解讀。以單數(shù)提及的元素,如使用“一個(gè)”、“一”等冠詞,并非旨在表示“一個(gè)且僅有一個(gè)”,除非明確如此說(shuō)明,否則應(yīng)指“一個(gè)或更多個(gè)”。凡與本公開(kāi)全篇所描述的各種實(shí)施例的元素在結(jié)構(gòu)上和功能上等價(jià)的,無(wú)論是已經(jīng)為本領(lǐng)域技術(shù)人員所知曉或?qū)?lái)獲知,均旨在包含于本權(quán)利要求書(shū)的元素之中。
此外,本公開(kāi)任何內(nèi)容均非旨在認(rèn)可其為現(xiàn)有技術(shù)或公知常識(shí)。附加的,本申請(qǐng)中所援引或表明的任意文件均非認(rèn)可此類(lèi)文件作為現(xiàn)有技術(shù)而可用,也不認(rèn)可任何參考形成了本領(lǐng)域公知常識(shí)中的一部分。此外,本文所公開(kāi)的任何內(nèi)容,無(wú)論此種公開(kāi)是否在權(quán)利要求書(shū)中明確記載,均非旨在貢獻(xiàn)給大眾。