向量處理器中的數(shù)據(jù)提取系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及向量處理器中的數(shù)據(jù)提取。
【背景技術(shù)】
[0002]技術(shù)的進(jìn)步己產(chǎn)生較小且較強(qiáng)大的計(jì)算裝置。舉例來(lái)說(shuō),當(dāng)前存在多種便攜式個(gè)人計(jì)算裝置,包含無(wú)線計(jì)算裝置,例如便攜式無(wú)線電話、個(gè)人數(shù)字助理(PDA)和尋呼裝置,其體積小,重量輕,且易于由用戶攜帶。更具體來(lái)說(shuō),例如蜂窩電話和因特網(wǎng)協(xié)議(IP)電話等便攜式無(wú)線電話可經(jīng)由無(wú)線網(wǎng)絡(luò)傳達(dá)語(yǔ)音和數(shù)據(jù)包。而且,此類無(wú)線電話可以處理可執(zhí)行指令,包含軟件應(yīng)用程序,例如可用以接入因特網(wǎng)的網(wǎng)絡(luò)瀏覽器應(yīng)用程序。因此,這些無(wú)線電話可包含強(qiáng)大的計(jì)算能力。
[0003]例如無(wú)線電話等一些裝置可包含向量處理器。向量處理器在數(shù)據(jù)操作中作為一個(gè)單元處置數(shù)據(jù)元素群組方面可能較為高效。舉例來(lái)說(shuō),N元素向量處理器可以通過(guò)在源寄存器與存儲(chǔ)器之間一次移動(dòng)N個(gè)元素來(lái)執(zhí)行存儲(chǔ)器加載和存儲(chǔ)操作,或者向量處理器可以作為一個(gè)操作對(duì)N個(gè)元素執(zhí)行N個(gè)數(shù)學(xué)運(yùn)算(例如,加法、乘法)。假設(shè)單個(gè)數(shù)據(jù)元素是大小為32位的字,則向量處理器的源寄存器的大小可以是N個(gè)字。
[0004]在存儲(chǔ)器系統(tǒng)中,可以通過(guò)字的地址來(lái)參考字。舉例來(lái)說(shuō),字a(j)存儲(chǔ)在地址j處,字a(j+l)存儲(chǔ)在地址j+Ι處,以此類推。包含向量處理器的存儲(chǔ)器系統(tǒng)可以設(shè)計(jì)成對(duì)準(zhǔn)存儲(chǔ)器,使得N個(gè)字的群組[a(j+N_l),...,a(j+l),a(j)]在地址j處開始存儲(chǔ),以便滿足j模N = O這個(gè)特性。這被稱作對(duì)準(zhǔn)向量存儲(chǔ)器存取。為了說(shuō)明,在4字向量處理器中,只有在尋址[a(3),a(2),a(l),a(0)]或[a (7),a (6),a (5),a (4)]時(shí),加載和存儲(chǔ)操作才可以是有效的。
[0005]當(dāng)在向量處理器中實(shí)施操作時(shí),可能需要在所述操作中反映上述對(duì)準(zhǔn)存儲(chǔ)器結(jié)構(gòu)(即,操作可能需要符合固定存儲(chǔ)器結(jié)構(gòu))。但是,許多操作不是規(guī)律性的,并且可能不太符合大小為N的固定存儲(chǔ)器,從而導(dǎo)致低效的實(shí)施方案。舉例來(lái)說(shuō),正交頻分多路復(fù)用(OFDM)系統(tǒng)中使用的許多操作對(duì)非連續(xù)的數(shù)據(jù)元素進(jìn)行操作。在OFDM系統(tǒng)中,發(fā)射頻譜劃分成子載波。為了利用頻率分集,在特定時(shí)間點(diǎn),僅僅將子載波的一個(gè)子集指派給一個(gè)發(fā)射。所選子載波總體上是非連續(xù)的,并且因此,處理是對(duì)非連續(xù)數(shù)據(jù)元素發(fā)生的。舉例來(lái)說(shuō),如果子載波用索引i存儲(chǔ)于線性陣列A中(即,A(i)),則為了獲得信道估計(jì),可以向由每隔兩個(gè)子載波組成的一組數(shù)據(jù)元素(例如4(1),六(1+3),六(1+6),...)應(yīng)用導(dǎo)頻處理。作為另一實(shí)例,OFDM操作可能需要從任意起始索引提取12或6個(gè)樣本的連續(xù)群組。
[0006]因此,將希望的是增強(qiáng)在N字向量處理器上實(shí)施不是規(guī)律性的操作的效率。
【發(fā)明內(nèi)容】
[0007]向量處理器中的數(shù)據(jù)提取可以使用置換網(wǎng)絡(luò)將數(shù)據(jù)元素重新排序,使得可以作為單個(gè)操作的一部分將所述重新排序的數(shù)據(jù)元素存儲(chǔ)到存儲(chǔ)器??梢曰诳刂萍拇嫫鲗?shù)據(jù)元素復(fù)制到源寄存器和重新排序,其中所述控制寄存器可以含有對(duì)應(yīng)于所選的數(shù)據(jù)元素在源寄存器中的位置的索引。可以使用控制寄存器按任何順序選擇數(shù)據(jù)元素。替代地,可以使用位掩碼選擇數(shù)據(jù)元素,其中所述位掩碼中的每一位指示是否要將源寄存器中的對(duì)應(yīng)數(shù)據(jù)元素復(fù)制到存儲(chǔ)器??梢允褂梦谎诖a來(lái)進(jìn)行順序數(shù)據(jù)提取。可以從多個(gè)寄存器復(fù)制所選的數(shù)據(jù)元素并且將其拼接在一起??梢曰谖磳?duì)準(zhǔn)的存儲(chǔ)指針將所選的數(shù)據(jù)元素復(fù)制到存儲(chǔ)器。所述未對(duì)準(zhǔn)的存儲(chǔ)指針可以指示斷言的存儲(chǔ)操作,其中可以基于未對(duì)準(zhǔn)的存儲(chǔ)指針將所選的數(shù)據(jù)元素的第一組復(fù)制到存儲(chǔ)器中的第一行,并且可以基于未對(duì)準(zhǔn)的存儲(chǔ)指針將所選的數(shù)據(jù)元素的第二組復(fù)制到存儲(chǔ)器中的下一行。
[0008]在特定實(shí)施例中,向量處理器中的一種數(shù)據(jù)提取方法包含將至少一個(gè)數(shù)據(jù)元素復(fù)制到置換網(wǎng)絡(luò)的源寄存器。所述方法還包含將所述源寄存器的多個(gè)數(shù)據(jù)元素重新排序,用所述重新排序的數(shù)據(jù)元素填充所述置換網(wǎng)絡(luò)的目的地寄存器,以及將所述重新排序的數(shù)據(jù)元素從所述目的地寄存器復(fù)制到存儲(chǔ)器。所得的數(shù)據(jù)元素可以采用任何任意順序。
[0009]在另一個(gè)特定實(shí)施例中,具有對(duì)準(zhǔn)存儲(chǔ)器的向量處理器中的數(shù)據(jù)提取方法包含將至少一個(gè)數(shù)據(jù)元素復(fù)制到置換網(wǎng)絡(luò)的源寄存器。所述方法還包含使用位掩碼來(lái)確定是否從源寄存器選擇一或多個(gè)數(shù)據(jù)元素,并且,響應(yīng)于確定選擇一或多個(gè)數(shù)據(jù)元素,用所選的一或多個(gè)順序數(shù)據(jù)元素填充置換網(wǎng)絡(luò)的目的地寄存器。所述方法進(jìn)一步包含根據(jù)指示斷言的存儲(chǔ)操作的未對(duì)準(zhǔn)存儲(chǔ)指針將所選的一或多個(gè)數(shù)據(jù)元素從目的地寄存器復(fù)制到存儲(chǔ)器。
[0010]在另一個(gè)特定實(shí)施例中,向量處理器中的一種數(shù)據(jù)提取方法包含將至少一個(gè)數(shù)據(jù)元素從兩個(gè)或更多個(gè)第一寄存器復(fù)制到寄存器以用作置換網(wǎng)絡(luò)的輸入,其中復(fù)制所述至少一個(gè)數(shù)據(jù)元素是基于第一控制寄存器,所述第一控制寄存器針對(duì)寄存器的每一位置,指示要使用兩個(gè)或更多個(gè)第一寄存器中的哪一個(gè)來(lái)填充寄存器的位置。所述方法還包含使用第二控制寄存器選擇寄存器的數(shù)據(jù)元素,其中第二控制寄存器指示寄存器的對(duì)應(yīng)于寄存器中的數(shù)據(jù)元素的位置的索引,以及用所選的數(shù)據(jù)元素填充置換網(wǎng)絡(luò)的目的地寄存器。所述方法進(jìn)一步包含將所選的數(shù)據(jù)元素從目的地寄存器復(fù)制到存儲(chǔ)器。
[0011 ] 在另一個(gè)特定實(shí)施例中,一種計(jì)算機(jī)可讀媒體存儲(chǔ)指令,所述指令在由處理器執(zhí)行時(shí),致使所述處理器將至少一個(gè)數(shù)據(jù)元素復(fù)制到置換網(wǎng)絡(luò)的源寄存器。所述指令在由所述處理器執(zhí)行時(shí),還致使所述處理器將源寄存器的多個(gè)數(shù)據(jù)元素重新排序,并且用重新排序的數(shù)據(jù)元素填充置換網(wǎng)絡(luò)的目的地寄存器。所述指令在由所述處理器執(zhí)行時(shí),進(jìn)一步致使所述處理器將重新排序的數(shù)據(jù)元素從目的地寄存器復(fù)制到存儲(chǔ)器。
[0012]在另一個(gè)特定實(shí)施例中,一種設(shè)備包含經(jīng)配置以接收至少一個(gè)數(shù)據(jù)元素的源寄存器、目的地寄存器和置換網(wǎng)絡(luò)。所述置換網(wǎng)絡(luò)經(jīng)配置以將所述源寄存器的多個(gè)數(shù)據(jù)元素重新排序,并且用重新排序的數(shù)據(jù)元素填充所述目的地寄存器。
[0013]所揭示的實(shí)施例中的至少一個(gè)所提供的一個(gè)特定優(yōu)點(diǎn)是在N字向量處理器上的單個(gè)操作中例如基于OFDM數(shù)據(jù)提取模式實(shí)現(xiàn)非連續(xù)數(shù)據(jù)元素的數(shù)據(jù)提取。
[0014]本發(fā)明的其它方面、優(yōu)點(diǎn)和特征將在審閱整個(gè)申請(qǐng)案之后變得顯而易見(jiàn),所述整個(gè)申請(qǐng)案包含以下部分:【附圖說(shuō)明】、【具體實(shí)施方式】和權(quán)利要求書。
【附圖說(shuō)明】
[0015]圖1是向量處理器、置換網(wǎng)絡(luò)和控制寄存器的特定說(shuō)明性實(shí)施例的圖;
[0016]圖2是圖1的向量處理器的特定說(shuō)明性實(shí)施例和數(shù)據(jù)提取的第一階段處的位掩碼的框圖;
[0017]圖3是圖1的向量處理器的特定說(shuō)明性實(shí)施例和數(shù)據(jù)提取的第二階段處的圖2的位掩碼的框圖;
[0018]圖4是圖1的向量處理器的特定說(shuō)明性實(shí)施例和數(shù)據(jù)提取的第三階段處的圖2的位掩碼的框圖;
[0019]圖5是數(shù)據(jù)的順序提取的特定說(shuō)明性實(shí)施例的框圖;
[0020]圖6是具有使用多個(gè)位掩碼的向量拼接的圖5的順序提取的特定說(shuō)明性實(shí)施例的框圖;
[0021]圖7是具有使用第二控制寄存器的向量拼接的圖5的順序提取的特定說(shuō)明性實(shí)施例的框圖;
[0022]圖8是向量處理器中的數(shù)據(jù)提取方法的特定說(shuō)明性實(shí)施例的流程圖;
[0023]圖9是向量處理器中的數(shù)據(jù)提取方法的第二說(shuō)明性實(shí)施例的流程圖;
[0024]圖10是向量處理器中的數(shù)據(jù)提取方法的第三說(shuō)明性實(shí)施例的流程圖;以及
[0025]圖11是包含具有例如圖1的置換網(wǎng)絡(luò)等置換網(wǎng)絡(luò)的向量處理器的無(wú)線裝置的框圖。
【具體實(shí)施方式】
[0026]圖1是向量處理器100的特定說(shuō)明性實(shí)施例的框圖。向量處理器100可包含置換網(wǎng)絡(luò)108,置換網(wǎng)絡(luò)108從一或多個(gè)源寄存器(例如,說(shuō)明性源寄存器104)接收數(shù)據(jù),并且向一或多個(gè)目的地寄存器(例如,說(shuō)明性目的地寄存器110)輸出數(shù)據(jù)。一或多個(gè)控制寄存器(例如,說(shuō)明性控制寄存器106)可以控制置換網(wǎng)絡(luò)108的操作。舉例來(lái)說(shuō),置換網(wǎng)絡(luò)108可以用重新排序的方式在目的地寄存器110中存儲(chǔ)來(lái)自源寄存器104的數(shù)據(jù),其中通過(guò)控制寄存器106來(lái)定義置換網(wǎng)絡(luò)108所應(yīng)用的具體的重新排序模式。
[0027]在一個(gè)特定實(shí)施例中,源寄存器104可以從例如存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器(RAM))或寄存器等數(shù)據(jù)源接收數(shù)據(jù)。舉例來(lái)說(shuō),在圖1中,置換網(wǎng)絡(luò)108的源寄存器104從第一寄存器102接收數(shù)據(jù)。類似地,雖然圖1中未圖示,但是目的地寄存器110可以向目的地輸出數(shù)據(jù),所述目的地例如是存儲(chǔ)器(例如,RAM)或寄存器(例如,向量處理器100的第一寄存器102或另一寄存器)??梢栽谥鹱止?jié)、逐半字、逐字和/或逐雙字的基礎(chǔ)上將數(shù)據(jù)元素存儲(chǔ)到第一寄存器102中和從第一寄存器102復(fù)制數(shù)據(jù)元素。
[0028]置換網(wǎng)絡(luò)108可操作以將源寄