浮點(diǎn)復(fù)數(shù)向量第一級(jí)fft計(jì)算方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,尤其涉及一種浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著數(shù)字通信技術(shù)的快速發(fā)展,對(duì)數(shù)字信號(hào)處理能力的要求也越來(lái)越高,向量運(yùn)算利用硬件的并行性,可以大大加速數(shù)字信號(hào)的處理過(guò)程,越來(lái)越多地運(yùn)用于數(shù)字通信領(lǐng)域中。
[0003]正交頻分復(fù)用(OrthogonalFrequency Divis1n Multiplexing,OFDM)技術(shù)通過(guò)將信道分成若干正交的子信道,減少了信道間的相互干擾,可以使各個(gè)子載波在頻段上有部分重疊,從而提高帶寬利用率,因此在現(xiàn)代通信中得到廣泛應(yīng)用。復(fù)數(shù)包含互不相干的實(shí)部與虛部,正適合用來(lái)表示正交的I (Inphase)路和Q (Quadrature)路的數(shù)據(jù),因此在正交頻分復(fù)用的應(yīng)用中,很多數(shù)據(jù)是采用復(fù)數(shù)形式記錄的。
[0004]向量運(yùn)算的特點(diǎn)是可同時(shí)對(duì)多個(gè)數(shù)據(jù)進(jìn)行同一運(yùn)算操作,提高了運(yùn)算的執(zhí)行效率。在數(shù)字信號(hào)處理中,快速傅里葉變換(FFT)有著非常重要的地位,第一級(jí)FFT運(yùn)算是整個(gè)FFT計(jì)算過(guò)程的開始,采用傳統(tǒng)的向量運(yùn)算方式,不能充分發(fā)揮向量運(yùn)算的優(yōu)越性、執(zhí)行效率低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。為此,本發(fā)明的第一方面的目的在于提出一種執(zhí)行效率高、成本低的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng)。
[0006]本發(fā)明第二方面的目的在于提出一種浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算方法。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明第一方面實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng),包括:向量寄存器組,所述向量寄存器組包括至少兩個(gè)向量寄存器,每個(gè)所述向量寄存器用于存儲(chǔ)多個(gè)浮點(diǎn)復(fù)數(shù);至少兩個(gè)浮點(diǎn)加減法器,用于對(duì)所述浮點(diǎn)復(fù)數(shù)進(jìn)行加減法運(yùn)算;多個(gè)數(shù)據(jù)選擇器,用于從所述向量寄存器組獲取所述浮點(diǎn)復(fù)數(shù),并將所述浮點(diǎn)復(fù)數(shù)傳遞至所述浮點(diǎn)加減法器;控制器,用于接收第一級(jí)FFT運(yùn)算操作指令,并根據(jù)所述指令控制所述數(shù)據(jù)選擇器從所述向量寄存器組中獲取兩組所述浮點(diǎn)復(fù)數(shù),控制所述浮點(diǎn)加減法器進(jìn)行加減法運(yùn)算以獲取浮點(diǎn)復(fù)數(shù)向量;以及將所述浮點(diǎn)復(fù)數(shù)向量進(jìn)行組合以生成最終的運(yùn)算結(jié)果并將所述運(yùn)算結(jié)果存儲(chǔ)至所述向量寄存器,其中,所述兩組浮點(diǎn)復(fù)數(shù)具有第一預(yù)定位數(shù),所述浮點(diǎn)復(fù)數(shù)向量具有第二預(yù)定位數(shù)。
[0008]根據(jù)本發(fā)明實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng),利用了傳統(tǒng)的浮點(diǎn)加減法器,通過(guò)數(shù)據(jù)選擇器提供給浮點(diǎn)加減法器與傳統(tǒng)浮點(diǎn)向量運(yùn)算不同的數(shù)據(jù)和不同的加減操作而實(shí)現(xiàn)浮點(diǎn)復(fù)數(shù)的第一級(jí)FFT運(yùn)算,節(jié)省了硬件資源,執(zhí)行效率高。
[0009]在一些示例中,所述數(shù)據(jù)選擇器還用于提取每個(gè)所述浮點(diǎn)復(fù)數(shù)的實(shí)部和虛部,并分別將用于運(yùn)算的兩個(gè)所述浮點(diǎn)復(fù)數(shù)的所述實(shí)部?jī)蓛梢唤M和所述虛部?jī)蓛梢唤M交叉?zhèn)鬟f至兩個(gè)所述浮點(diǎn)加減法器。
[0010]在一些示例中,所述實(shí)部和所述虛部在所述向量寄存器中的保存位置為固定的。
[0011]在一些示例中,所述向量寄存器的數(shù)目與所述浮點(diǎn)加減法器的數(shù)目相等,所述數(shù)據(jù)選擇器的數(shù)目為所述向量寄存器的數(shù)目的兩倍。
[0012]在一些示例中,每個(gè)所述浮點(diǎn)加減法器的結(jié)構(gòu)相同且與所述浮點(diǎn)加減法器對(duì)應(yīng)的每個(gè)所述數(shù)據(jù)選擇器的結(jié)構(gòu)相同。
[0013]在一些示例中,所述浮點(diǎn)復(fù)數(shù)的數(shù)據(jù)類型為單精度,所述浮點(diǎn)加減法器根據(jù)所述第一級(jí)FFT運(yùn)算操作指令和所述操作類型進(jìn)行加/減法運(yùn)算。
[0014]本發(fā)明第二方面實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算方法,包括以下步驟:
[0015]接收第一級(jí)FFT運(yùn)算操作指令,并根據(jù)所述指令獲取兩組浮點(diǎn)復(fù)數(shù),所述兩組浮點(diǎn)復(fù)數(shù)具有第一預(yù)定位數(shù);
[0016]根據(jù)所述指令,對(duì)所述兩組浮點(diǎn)復(fù)數(shù)進(jìn)行浮點(diǎn)加減法運(yùn)算以獲取的浮點(diǎn)復(fù)數(shù)向量,所述浮點(diǎn)復(fù)數(shù)向量具有第二預(yù)定位數(shù),所述第二預(yù)定位數(shù)是所述第一預(yù)定位數(shù)的2倍;
[0017]將所述浮點(diǎn)復(fù)數(shù)向量進(jìn)行組合以生成最終的運(yùn)算結(jié)果并保存所述運(yùn)算結(jié)果。
[0018]根據(jù)本發(fā)明實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算方法,利用了傳統(tǒng)的浮點(diǎn)加減法器,通過(guò)數(shù)據(jù)選擇器提供給浮點(diǎn)加減法器與傳統(tǒng)浮點(diǎn)向量運(yùn)算不同的數(shù)據(jù)和不同的加減操作而實(shí)現(xiàn)浮點(diǎn)復(fù)數(shù)的第一級(jí)FFT運(yùn)算,節(jié)省了硬件資源,執(zhí)行效率高。
[0019]在一些示例中,所述方法還包括分別提取每個(gè)所述浮點(diǎn)復(fù)數(shù)的實(shí)部和虛部,并將用于運(yùn)算的兩個(gè)所述浮點(diǎn)復(fù)數(shù)的所述實(shí)部部分和所述虛部部分分別進(jìn)行加減運(yùn)算。
[0020]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【附圖說(shuō)明】
[0021]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng)的結(jié)構(gòu)框圖;
[0022]圖2是本發(fā)明一個(gè)實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng)的運(yùn)算過(guò)程示意圖;
[0023]圖3是本發(fā)明一個(gè)實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算的結(jié)果示意圖;
[0024]圖4是本發(fā)明另一個(gè)實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算的結(jié)果示意圖;和
[0025]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算方法流程圖。
【具體實(shí)施方式】
[0026]在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“中心”、“縱向”、“橫向”、“長(zhǎng)度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”、“順時(shí)針”、“逆時(shí)針”、“軸向”、“徑向”、“周向”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。
[0027]此外,術(shù)語(yǔ)“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本發(fā)明的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。
[0028]在本發(fā)明中,除非另有明確的規(guī)定和限定,術(shù)語(yǔ)“安裝”、“相連”、“連接”、“固定”等術(shù)語(yǔ)應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過(guò)中間媒介間接相連,可以是兩個(gè)元件內(nèi)部的連通或兩個(gè)元件的相互作用關(guān)系,除非另有明確的限定。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語(yǔ)在本發(fā)明中的具體含義。
[0029]在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過(guò)中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
[0030]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0031]參見圖1,本發(fā)明第一方面實(shí)施例的浮點(diǎn)復(fù)數(shù)向量第一級(jí)FFT計(jì)算系統(tǒng)10,包括:向量寄存器組100、至少兩個(gè)浮點(diǎn)加減法器200、多個(gè)數(shù)據(jù)選擇器300和控制器400。
[0032]向量寄存器組100包括至少兩個(gè)向量寄存器101,每個(gè)向量寄存器101用于存儲(chǔ)多個(gè)浮點(diǎn)復(fù)數(shù)。每個(gè)浮點(diǎn)復(fù)數(shù)包含一個(gè)作為實(shí)部的浮點(diǎn)數(shù)和一個(gè)作為虛部的浮點(diǎn)數(shù)。每個(gè)浮點(diǎn)數(shù)既可以單精度浮點(diǎn)也可是雙精度浮點(diǎn)。至少兩個(gè)浮點(diǎn)加減法器200用于對(duì)浮點(diǎn)復(fù)數(shù)進(jìn)行加減法運(yùn)算。多個(gè)數(shù)據(jù)選擇器300用于從向量寄存器組100獲取浮點(diǎn)復(fù)數(shù),并將浮點(diǎn)復(fù)數(shù)傳遞至浮點(diǎn)加減法器200。控制器400用于接收第一級(jí)FFT運(yùn)算操作指令,并根據(jù)指令控制數(shù)據(jù)選擇器300從向量寄存器組100獲取兩組浮點(diǎn)復(fù)數(shù),控制浮點(diǎn)加減法器200對(duì)該兩組浮點(diǎn)復(fù)數(shù)進(jìn)行加減法運(yùn)算以獲取浮點(diǎn)復(fù)數(shù)向量;控制器400還用于將浮點(diǎn)復(fù)數(shù)向量進(jìn)行組合以生成最終的運(yùn)算結(jié)果并將運(yùn)算結(jié)果存儲(chǔ)至向量寄存器101。其中,該兩組浮點(diǎn)復(fù)數(shù)具有第一預(yù)定位數(shù),浮點(diǎn)復(fù)數(shù)向量具有第二預(yù)定位數(shù)。第二預(yù)定位數(shù)為第一預(yù)定位數(shù)的2倍。
[0033]具體地,在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)控制器400接收到第一級(jí)FFT運(yùn)算操作指令后,控制器400控制數(shù)據(jù)選擇器300從向量寄存器組100中獲取第一預(yù)定位數(shù)的兩組浮點(diǎn)復(fù)數(shù)。數(shù)據(jù)選擇器300分別提取出兩組浮點(diǎn)復(fù)數(shù)中每個(gè)浮點(diǎn)復(fù)數(shù)的實(shí)部和虛部。每個(gè)浮點(diǎn)復(fù)數(shù)的實(shí)部和虛部保存在同一個(gè)向量寄存器101中,實(shí)部和虛部的保存位置是固定的,在本發(fā)明的示例中沒(méi)有設(shè)置專門的標(biāo)志位來(lái)表示實(shí)部或虛部保存在向量寄存器101中的位置。對(duì)實(shí)部和虛部的讀取可以同時(shí)進(jìn)行,也可是先后讀出。數(shù)據(jù)選擇器300將從兩個(gè)向量寄存器101中讀取出兩個(gè)不同復(fù)浮點(diǎn)復(fù)數(shù)的實(shí)部送到同一個(gè)浮點(diǎn)加減法器200中,再將相同的兩個(gè)寄存器101中的兩個(gè)不同浮點(diǎn)復(fù)數(shù)的虛部送到另一個(gè)浮點(diǎn)加減法器200中。通過(guò)這種交叉?zhèn)鬟f的方式既保證了實(shí)數(shù)部分與實(shí)