專利名稱::包括復(fù)數(shù)短乘法器和獨(dú)立的矢量加載單元的具有集群式simd微體系結(jié)構(gòu)的可編程數(shù)字信...的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字信號(hào)處理器,更具體地說,涉及可編程數(shù)字信號(hào)處理器微體系結(jié)構(gòu)。io
背景技術(shù):
在很短的時(shí)期內(nèi),無線設(shè)備特別移動(dòng)電話的使用顯著地增加。無線設(shè)備的這種世界范圍的增長導(dǎo)致大量新興無線電標(biāo)準(zhǔn)和無線產(chǎn)品的匯聚。反過來這也引起人們對(duì)軟件定義無線電(SDR,SoftwareDefinedRadio)的不斷增加的興趣。15如SDR論壇所述,SDR是能夠?qū)崿F(xiàn)用于無線網(wǎng)絡(luò)和用戶終端的可重構(gòu)系統(tǒng)結(jié)構(gòu)的硬件和軟件技術(shù)的匯集。對(duì)于建立可以利用軟件升級(jí)來增強(qiáng)的多模式、多頻帶、多功能無線設(shè)備的問題,SDR提供有效的和相對(duì)廉價(jià)的解決方案。因而,SDR可以被認(rèn)為可在無線工業(yè)內(nèi)的寬范圍領(lǐng)域應(yīng)用的使能技術(shù)。20許多無線通信設(shè)備使用包括一個(gè)或多個(gè)數(shù)字信號(hào)處理器(DSP)的無線電收發(fā)機(jī)。無線電中使用的一類DSP是基帶處理器(BBP),基帶處理器可以處理與接收無線電信號(hào)的處理和準(zhǔn)備發(fā)射信號(hào)相關(guān)的許多信號(hào)處理功能。例如,BBP可以提供調(diào)制和解調(diào),以及信道編碼和同步功能。許多常規(guī)BBP由僅支持一種無線電標(biāo)準(zhǔn)專用集成電路(ASIC)器件25實(shí)現(xiàn)。在很多情況下,ASICBBP可以提供優(yōu)異的性能。但是,ASIC解決方案可以被限于在設(shè)計(jì)片上(on-chip)硬件的無線電標(biāo)準(zhǔn)內(nèi)操作。為了提供SDR解決方案,在無線電基帶處理器中可能需要增加靈活性,以滿足入市時(shí)間、成本和產(chǎn)品壽命的要求。為了處理諸如無線局域網(wǎng)(LAN)、第三/第四代移動(dòng)電話以及數(shù)字視頻廣播這些需求應(yīng)用的要求,在基帶處理器中可能需要大程度的并行性。為此,已經(jīng)提出了典型地基于高度復(fù)雜的、很長指令字(VLIW)和/或多處理器核心機(jī)器的各種可編程BBP(PBBP)解決方案。當(dāng)與它們的ASIC配對(duì)物相比時(shí),這些常規(guī)PBBP解決方案可能具有諸如增加管芯面5積和可能限制性能的缺點(diǎn)。因此,最好是有一種可以支持大量不同的調(diào)制技術(shù)、帶寬和機(jī)動(dòng)性要求以及也可以具有可接受的面積和功耗的可編程DSP結(jié)構(gòu)。
發(fā)明內(nèi)容io本發(fā)明公開了包括集群式單指令多數(shù)據(jù)(SIMD)微體系結(jié)構(gòu)的可編程數(shù)字信號(hào)處理器的各個(gè)實(shí)施例。在一個(gè)實(shí)施例中,數(shù)字信號(hào)處理器包括多個(gè)加速器單元、處理器核心和復(fù)數(shù)計(jì)算單元。每個(gè)所述加速器單元可以被配置來執(zhí)行一個(gè)或多個(gè)專用功能。所述處理器核心包括可以被配置來執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元。所述復(fù)數(shù)計(jì)算單元可以包括復(fù)數(shù)運(yùn)15算邏輯單元執(zhí)行流水線和矢量加載單元,所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線可以包括被配置來執(zhí)行復(fù)矢量指令的一個(gè)或多個(gè)數(shù)據(jù)路徑。此外,每個(gè)數(shù)據(jù)路徑可以包括復(fù)數(shù)短乘加器單元,其可以被配置來將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+/-1}的數(shù)集中的值。所述矢量加載單元可以被配置來使得每個(gè)時(shí)鐘周期取出復(fù)矢量指令,以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)20行流水線中的任意數(shù)據(jù)路徑使用。在一個(gè)具體實(shí)施方式中,每個(gè)復(fù)數(shù)短乘加器可以被配置來通過執(zhí)行二的補(bǔ)碼運(yùn)算(two,s(:011^^1116的將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+"}的數(shù)集中的值而無需乘法器。在另一具體實(shí)施方式中,所述矢量加載單元可以包括配置來存儲(chǔ)從25在先時(shí)鐘周期過程中執(zhí)行的取操作得到的數(shù)據(jù)的存儲(chǔ)器。所述數(shù)據(jù)可以被所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)在后續(xù)時(shí)鐘周期過程中路徑使用。還在另一具體實(shí)施方式中,所述復(fù)數(shù)計(jì)算單元可以執(zhí)行單指令多數(shù)據(jù)(SIMD)指令。圖1是包括可編程基帶處理器的多模式無線通信設(shè)備的一個(gè)實(shí)施例的框圖;5圖2是圖1的可編程基帶處理器的一個(gè)實(shí)施例的框圖;圖3圖示了圖2的處理器核心的一個(gè)實(shí)施例的指令發(fā)出流水線的視圖;圖4圖示了圖2的處理器核心的一個(gè)實(shí)施例的更詳細(xì)方面的框圖;圖5是說明圖2的處理器核心的集群式SIMD控制路徑的一個(gè)實(shí)施例的更詳細(xì)方面的視圖;io圖6是圖4所示的復(fù)ALU的復(fù)短MAC數(shù)據(jù)路徑的一個(gè)實(shí)施例的視圖;圖7是圖4所示的復(fù)MAC單元的示例性數(shù)據(jù)路徑的一個(gè)實(shí)施例的視圖。盡管本發(fā)明很容易進(jìn)行各種改進(jìn)和替換形式,但是通過附圖中的例子示出了其具體實(shí)施例,并將在此詳細(xì)描述。但是,應(yīng)該理解,附圖及15其詳細(xì)描述并不是要限制發(fā)明為所公開的特定形式,相反,其意圖是涵蓋落入由所附權(quán)利要求限定的本發(fā)明的精神和范圍內(nèi)的所有修改、等效及替換。注意,該標(biāo)題僅僅用于編制并不意味著用來限制或解釋說明書或權(quán)利要求書。此外,注意,在本申請(qǐng)中以自由意味(即,具有潛在做某事、能夠做某事)而非強(qiáng)制意味(即,必須)使用單詞"可以"。措詞20"包括"及其派生詞意味著"包括但不限于"。措詞"連接"意味著"直接或間接地連接",以及措詞"耦合"意味著"直接或間接地耦合"。具體實(shí)施方式現(xiàn)在轉(zhuǎn)向圖1,其示出了包括可編程基帶處理器的多模式無線通信25設(shè)備的一個(gè)實(shí)施例的框圖。在所示的實(shí)施例中,從功能和硬件角度示出了無線電通信系統(tǒng)的一些基本部分。更具體地說,多模式無線通信設(shè)備100包括接收子系統(tǒng)110和發(fā)射子系統(tǒng)120,它們都被耦合到一個(gè)或多個(gè)天線125。注意到,在各個(gè)實(shí)施例中,多模式無線通信設(shè)備可以是手持式移動(dòng)電話設(shè)備等。還注意,具有包括數(shù)字和字母的參考標(biāo)識(shí)符的元件可以適合地僅由數(shù)字指示。接收子系統(tǒng)110包括耦合于天線125和模數(shù)轉(zhuǎn)換器(ADC)140之間部分RF前端130。ADC140被耦合到可編程基帶處理器(PBBP)145A,可編程基帶處理器(PBBP)145A又被耦合到(多個(gè))應(yīng)用處理器150。5發(fā)射子系統(tǒng)120包括耦合到PBBP145B的(多個(gè))應(yīng)用處理器160,PBBP145B耦合到數(shù)模轉(zhuǎn)換器(DAC)170。DAC170也耦合到部分RF前端130。注意到,PBBP145A和145B可以由一個(gè)可編程處理器實(shí)現(xiàn),在某些實(shí)施例中,它們可以被制造在一個(gè)集成電路上。也要注意到,在某些實(shí)施例中,ADC140和DAC170可以由PBBP145A的一部分實(shí)現(xiàn)。進(jìn)一io步注意,在其他實(shí)施例中,通信設(shè)備100可以在一個(gè)集成電路上實(shí)現(xiàn)。PBBP145在發(fā)射子系統(tǒng)120和接收子系統(tǒng)110中執(zhí)行許多功能。在發(fā)射子系統(tǒng)120內(nèi),PBBP145B可以將數(shù)據(jù)從應(yīng)用源轉(zhuǎn)變?yōu)檫m于無線電信道的格式。例如,發(fā)射子系統(tǒng)120可以執(zhí)行諸如信道編碼、數(shù)字調(diào)制和符號(hào)整形的功能。信道編碼指使用不同的方法用于誤碼校正(例如,15巻積編碼)和誤碼檢測(例如,利用循環(huán)冗余碼(CRC))。數(shù)字調(diào)制是指將比特流映射到復(fù)采樣流的處理。數(shù)字調(diào)制中的第一(有時(shí)是唯一的)步驟是將各組比特映射到特定的信號(hào)星座圖上,如二進(jìn)制相移鍵控(BPSK)、四相移相鍵控(QPSK)或正交調(diào)幅(QAM)。將各組比特映射到無線電信號(hào)的振幅和相位有各種方法。在某些情況下,可以應(yīng)用第二20步驟,域轉(zhuǎn)換。在正交頻分多路復(fù)用(OFDM)系統(tǒng)(即,在大量相鄰頻率上同時(shí)發(fā)送信息的調(diào)制方法)中,該步驟可以使用逆快速傅里葉變換(IFFT)。在諸如碼分多址(CDMA)的擴(kuò)頻系統(tǒng)中,例如,(通過每個(gè)活動(dòng)用戶分配單個(gè)"碼"使得多個(gè)用戶共享射頻(RF)譜的"擴(kuò)頻"方法),每個(gè)符號(hào)與包括{0,+/-1}+{0,+/"}的擴(kuò)頻序列相乘。最后的步驟是符號(hào)25整形,該符號(hào)整形使用數(shù)字帶通濾波器將方波轉(zhuǎn)變?yōu)橄迬盘?hào)。由于信道編碼和映射功能典型地在比特級(jí)上操作(不在字級(jí)上),它們通常不適合于在可編程處理器中實(shí)施。但是,如下面將更詳細(xì)描述,在PBBP145的各種實(shí)施例中,可以利用一個(gè)或多個(gè)專用硬件加速器來實(shí)現(xiàn)這些功能等。PBBP145可以執(zhí)行如同步、信道均衡、解調(diào)以及前向糾錯(cuò)的這種功能。例如,接收子系統(tǒng)uo可以從失真模擬基帶信號(hào)恢復(fù)符號(hào)并將它們轉(zhuǎn)換為具有可接受的誤碼率(BER)的比特流,用于在應(yīng)用處理器150中運(yùn)行的應(yīng)用程序。同步可以分為幾個(gè)步驟。第一步驟可以包括檢測輸入信號(hào)或幀,并5且有時(shí)被稱為"能量檢測"。與此相關(guān),也可以進(jìn)行諸如天線選擇和增益控制的操作。下一步是符號(hào)同步,旨在找出輸入符號(hào)的精確定時(shí)。所有前述操作典型地基于復(fù)自相差或復(fù)互相關(guān)。在很多情況下,可能需要接收子系統(tǒng)110對(duì)無線電信道中的缺陷進(jìn)行某種補(bǔ)償。該補(bǔ)償稱為信道均衡。在OFDM系統(tǒng)中,信道均衡可以涉io及在執(zhí)行FFT之后每個(gè)子載波的簡單縮放和旋轉(zhuǎn)。在CDMA系統(tǒng)中,"耙式(mke)"接收機(jī)常常用來將以不同路徑延遲來自多個(gè)信號(hào)路徑的輸入信號(hào)合并。在某些系統(tǒng)中,可以使用最小均方(LMS)自適濾波器。類似于同步,信道估計(jì)和均勻化中包含的大多數(shù)操作可以采用基于巻積的算法。這些算法通常不足以類似到能夠共享相同的固定硬件。但是它們15可以在諸如PBBP145的可編程DSP處理器上有效地實(shí)現(xiàn)。解調(diào)可以看成是調(diào)制的相反操作。解調(diào)典型地涉及在OFDM系統(tǒng)中執(zhí)行FFT以及在DSSS/CDMA系統(tǒng)中執(zhí)行擴(kuò)頻序列或"解擴(kuò)"的相關(guān)分析。解調(diào)的最后步驟可以是根據(jù)信號(hào)星座圖將復(fù)符號(hào)轉(zhuǎn)變?yōu)楸忍?。類似于信道編碼,去交織和信道解碼不適合于固件實(shí)現(xiàn)方式。然而,如下面20更詳細(xì)地描述,可以用于巻積碼的Viterbi或Turbo解碼,是可以由一個(gè)或多個(gè)硬件加速器實(shí)現(xiàn)的要求非常高的功能??删幊袒鶐幚砥黧w系結(jié)構(gòu)圖2圖示了圖1的可編程基帶處理器的一個(gè)實(shí)施例的框圖。PBBP145可以通過提供動(dòng)態(tài)可重構(gòu)性以多個(gè)運(yùn)行模式(即,前導(dǎo)碼接收、有效載25荷接收和傳輸)和不同的數(shù)據(jù)率支持不同的無線電標(biāo)準(zhǔn)。為了實(shí)現(xiàn)期望的可重構(gòu)性,PBBP145的各個(gè)實(shí)施例可以包括通過控制處理器核心之間的互連來管理DSP流程的中央處理器核心、多個(gè)存儲(chǔ)器單元以及使用內(nèi)部網(wǎng)絡(luò)的各種硬件加速器。參考圖2,PBBP145包括處理器核心146以及復(fù)數(shù)計(jì)算單元2卯。PBBP145還包括標(biāo)以0至n的多個(gè)數(shù)據(jù)存儲(chǔ)器單元,其中n可以是任意數(shù)目。PBBP145還包括標(biāo)以0至m的多個(gè)硬件加速器,其中m可以是任意數(shù)目。此外,PBBP145包括耦合于處理器核心146和復(fù)數(shù)計(jì)算單元290、以及每個(gè)數(shù)據(jù)存儲(chǔ)器和加速器之間的網(wǎng)絡(luò)互連250。此外,PBBP1455包括分別標(biāo)有220和215的整數(shù)存儲(chǔ)器單元和系數(shù)存儲(chǔ)器單元,它們都通過網(wǎng)絡(luò)互連250耦合到處理器核心146和復(fù)數(shù)計(jì)算單元290。最后,PBBP145包括介質(zhì)訪問層(MAC)接口單元225,其被耦合于網(wǎng)絡(luò)互連250和諸如應(yīng)用處理器150和160的主機(jī)(Host)/MAC處理器之間。在所示的實(shí)施例中,處理器核心146包括整數(shù)執(zhí)行單元260,其被io耦合到控制寄存器CR265和網(wǎng)絡(luò)互連250。整數(shù)執(zhí)行單元260包括ALU261、乘加器單元262和一組寄存器外存儲(chǔ)器(RF)263。在一個(gè)實(shí)施例中,整數(shù)執(zhí)行單元260可以用作例如被配置來執(zhí)行16位整數(shù)指令的精減指令集控制器(RISC)。注意到,在其他實(shí)施例中,整數(shù)執(zhí)行單元260可以被配置來執(zhí)行不同大小的整數(shù)指令,例如8位或32位指令。15在各個(gè)實(shí)施例中,復(fù)數(shù)計(jì)算單元290可以包括多個(gè)集群式單指令多數(shù)據(jù)(SIMD)執(zhí)行流水線。由此,在圖2所示的實(shí)施例中,復(fù)數(shù)計(jì)算單元290包括SIMD簇流水線295A和SIMD簇流水線295B。SIMD簇流水線295A包括復(fù)乘加器(CMAC)單元270和耦合到CMAC270的矢量控制器275A。此外,SIMD簇流水線295A包括都耦合到CMAC270的20矢量加載單元(VLU)284A和矢量存儲(chǔ)單元(VSU)283A。SIMD簇流水線295B包括耦合到矢量控制器275B的復(fù)數(shù)運(yùn)算邏輯單元(CALU)280。SIMD簇流水線295B還包括都耦合到CALU280VSU283D和VLU284B。在所示的實(shí)施例中,CALU280被顯示為四路復(fù)ALU,該四路復(fù)合ALU可以包括四個(gè)獨(dú)立的數(shù)據(jù)路徑,每個(gè)數(shù)據(jù)路徑具有復(fù)數(shù)短乘加器25(CSMAC)(圖4所示)。如下面更詳細(xì)地描述,CALU280可以執(zhí)行矢量指令。在一個(gè)實(shí)施例中,CALU280尤其適于執(zhí)行復(fù)矢量指令。此外,CALU280的每個(gè)獨(dú)立的數(shù)據(jù)路徑可以同時(shí)執(zhí)行復(fù)矢量指令。CMAC270可以被優(yōu)化以進(jìn)行復(fù)矢量運(yùn)算。也就是,在一個(gè)實(shí)施例中,CMAC270可以被配置為將所有數(shù)據(jù)轉(zhuǎn)換為復(fù)數(shù)數(shù)據(jù)。此外,CMAC270可以包括可以同時(shí)或分別運(yùn)行的多個(gè)數(shù)據(jù)路徑。在一個(gè)實(shí)施例中,CMAC270可以包括四個(gè)復(fù)數(shù)數(shù)據(jù)路徑,該數(shù)據(jù)路徑包括乘法器、加法器和累加寄存器(在圖2中都沒有示出)。因此,CMAC270可以被稱為四路CMAC數(shù)據(jù)路徑。除乘法和加法之外,CMAC270也可以執(zhí)行舍入5和縮放操作并支持飽和。在一個(gè)實(shí)施例中,CMAC270操作可以被分為多流水線步驟。此外,在一個(gè)時(shí)鐘周期中,四個(gè)復(fù)數(shù)數(shù)據(jù)路徑中的每一個(gè)都可以計(jì)算復(fù)數(shù)乘法和累加。在N/4時(shí)鐘周期中,CMAC270(即,四個(gè)數(shù)據(jù)路徑一同)可以在N-元矢量上執(zhí)行運(yùn)算,以支持復(fù)矢量計(jì)算(例如,復(fù)數(shù)巻積、共軛復(fù)數(shù)巻積和復(fù)矢量點(diǎn)積)。此外,CMAC270也可以io支持累加器寄存器中存儲(chǔ)的復(fù)值運(yùn)算(例如,復(fù)數(shù)加法、減法、共軛等)。例如,在一個(gè)時(shí)鐘周期中,CMAC270可以計(jì)算復(fù)數(shù)乘法如(AR+jAI)*(BR+jBI),以及在一個(gè)時(shí)鐘周期中,計(jì)算復(fù)數(shù)累加,并支持復(fù)矢量計(jì)算(例如,復(fù)數(shù)巻積、共軛復(fù)數(shù)巻積和復(fù)矢量點(diǎn)積)。在一個(gè)實(shí)施例中,如上所述,PBBP145可以包括多個(gè)集群式SIMD15執(zhí)行流水線。更具體地說,上面描述的數(shù)據(jù)路徑可以被一起分組為SIMD簇,其中每個(gè)簇可以執(zhí)行不同的任務(wù),而每個(gè)時(shí)鐘周期,簇內(nèi)的每個(gè)數(shù)據(jù)路徑可以在多個(gè)數(shù)據(jù)上執(zhí)行單個(gè)指令。具體地說,四路CALU280和四路CMAC270可以用作獨(dú)立的SIMD簇,例如其中CALU280可以平行執(zhí)行諸如四個(gè)不同編碼的四相關(guān)運(yùn)算或解擴(kuò)運(yùn)算的四個(gè)并行運(yùn)算,而20CMAC270執(zhí)行兩個(gè)并行基-2FFT蝶形運(yùn)算或一個(gè)基-4FFT蝶形運(yùn)算。注意到,盡管CALU280和CMAC270被顯示為四路單元,但是可以認(rèn)為,在其他實(shí)施例中,它們每個(gè)都可以包括任何數(shù)量的單元。因此,在這種實(shí)施例中,PBBP145根據(jù)需要可以包括任何數(shù)量的SIMD簇。下面結(jié)合圖5的說明更詳細(xì)地描述用于集群式SIMD操作的控制路徑。25指令集體系結(jié)構(gòu)在一個(gè)實(shí)施例中,用于處理器核心146的指令集體系結(jié)構(gòu)可以包括三類復(fù)合指令。第一類指令是RISC指令,其對(duì)16位整數(shù)運(yùn)算數(shù)進(jìn)行運(yùn)算。RISC-指令類包括大多數(shù)面向控制的指令以及可以在處理器核心146的整數(shù)執(zhí)行單元260內(nèi)執(zhí)行。下一類指令是DSP指令,其對(duì)具有實(shí)部和虛部的復(fù)數(shù)值數(shù)據(jù)進(jìn)行運(yùn)算。DSP指令可以在一個(gè)或多個(gè)S1MD簇上執(zhí)行。第三類指令是矢量指令。矢量指令可以認(rèn)為是DSP指令的延伸,因?yàn)樗鼈儗?duì)大數(shù)據(jù)集進(jìn)行運(yùn)算并可以利用高級(jí)的尋址模式和矢量支持。下面在表1中示出介紹矢量指令的示例性列表。極少例外并注意,該矢量5指令對(duì)復(fù)數(shù)數(shù)據(jù)類型進(jìn)行運(yùn)算。表1復(fù)矢量指令30的示例性列表<table>tableseeoriginaldocumentpage13</column></row><table>如下面結(jié)合圖5的描述更詳細(xì)地描述,指令格式可以根據(jù)指令的類別包括各種字段。例如,在一個(gè)實(shí)施例中,RISC指令可以包括單元字段、操作碼字段和變?cè)侄?,并且矢量指令可以附加地包括矢量大小字段。許多基帶接收算法可以分解成在多個(gè)任務(wù)之間幾乎不具有反向依賴5性的任務(wù)鏈。該屬性不僅允許在SIMD執(zhí)行單元上并行執(zhí)行不同的任務(wù),它也可以利用上述指令集體系開發(fā)。由于矢量運(yùn)算典型地對(duì)大矢量進(jìn)行運(yùn)算,每個(gè)時(shí)鐘周期可以發(fā)出一個(gè)指令,由此減小控制路徑的復(fù)雜性,此外,由于矢量SIMD指令在長矢量上運(yùn)行,在矢量運(yùn)算過程中可以執(zhí)行許多RISC指令。因而,在一個(gè)實(shí)施例中,處理器核心146可以是每個(gè)io時(shí)鐘周期發(fā)出單指令的機(jī)器(SIMT),并且每個(gè)SIMD簇和整數(shù)執(zhí)行單元可以以流水線方式在每個(gè)時(shí)鐘周期執(zhí)行一指令。因此,PBBP145可以被認(rèn)為并行運(yùn)行兩個(gè)線程。第一線程包括程序流和使用整數(shù)執(zhí)行單,元260的混雜處理。第二線程包括在SIMD簇上執(zhí)行的復(fù)矢量指令。圖3圖示了圖2的可編程基帶處理器的一個(gè)實(shí)施例的指令執(zhí)行流水線。共同地參15考圖2和圖3,圖3的左列表示時(shí)間(在執(zhí)行時(shí)鐘周期中)。剩余列表示復(fù)數(shù)SIMD簇(例如,CMAC270和CALU280的一個(gè)數(shù)據(jù)路徑)和整數(shù)執(zhí)行單元260的執(zhí)行流水線以及其指令的發(fā)出。更具體地說,在第一時(shí)鐘周期中,復(fù)矢量指令(例如,CVL.256)被發(fā)出到CMAC270。如圖所示,矢量指令可以用很多周期完成。在下一個(gè)時(shí)鐘周期中,發(fā)出矢量20指令到CALU280。在下一個(gè)時(shí)鐘周期中,發(fā)出整數(shù)指令到整數(shù)執(zhí)行單元260。在下幾個(gè)周期中,在矢量指令被執(zhí)行的同時(shí),可以發(fā)出任何數(shù)量的整數(shù)指令到整數(shù)執(zhí)行單元260。注意到,盡管未示出,但是剩余的SIMD簇也可以以類似方式同時(shí)執(zhí)行指令。注意到,在一個(gè)實(shí)施例中,為了提供控制流同步和控制數(shù)據(jù)流,可25以使用"空閑"指令來停止控制流,直到完成給定的矢量運(yùn)算。例如,通過相應(yīng)的SIMD執(zhí)行單元執(zhí)行某一個(gè)矢量指令,可以允許通過整數(shù)執(zhí)行單元260執(zhí)行"空閑"指令。"空閑"指令可以暫停整數(shù)執(zhí)行單元260,直到整數(shù)執(zhí)行單元260從相應(yīng)的SIMD執(zhí)行單元接收諸如標(biāo)記的指示。硬件加速器如上所述的,為了提供支持各種無線電標(biāo)準(zhǔn)的多模式,可以通過與可編程核心結(jié)合使用的專用硬件加速器來提供許多基帶功能。例如,在一個(gè)實(shí)施例中,可以使用圖2的加速器0至m來實(shí)現(xiàn)一種或更多以下功能抽取電路/濾波器、用于CDMA和DSSS調(diào)制方案的RAKE功能(例5女口,四"指"RAKE)、用于OFDM調(diào)制方案和IEEE802.11b的基-4FFT/改進(jìn)的韋氏變換、解映射器(demapper)、巻積/Turbo編碼器-維特比(Viterbi)/Turbo解碼器、可配置塊交織器、可配置加擾器以及CRC加速器。注意到,在其他實(shí)施例中,可以使用加速器O至m實(shí)現(xiàn)其他數(shù)目和類型的功能。10在一個(gè)實(shí)施例中,抽取電路/濾波器加速器可以包括可配置的濾波器,例如可以用于諸如IEEE802.11a及其他標(biāo)準(zhǔn)的有限脈沖響應(yīng)(FIR)濾波器。耙式加速器可以包括用于延遲路徑存儲(chǔ)的本地復(fù)數(shù)存儲(chǔ)器、解擴(kuò)碼發(fā)生器和可以執(zhí)行多路徑搜索和信道估計(jì)功能的匹配濾波器(都沒有示出)?;?4FFT/改進(jìn)的韋氏變換(FFT/MWT)加速器可以包括基-415蝶形(未示出)和靈活的地址發(fā)生器(未示出)。在一個(gè)實(shí)施例中,F(xiàn)FT/MWT加速器可以在54時(shí)鐘周期中執(zhí)行64-點(diǎn)FFT,以及在18時(shí)鐘周期中執(zhí)行支持正EE802.11b標(biāo)準(zhǔn)的改進(jìn)韋氏變換。巻積/Turbo編碼器-維特比解碼器加速器可以包括可配置的維特比解碼器和Turbo編碼器/解碼器,以提供對(duì)巻積和turbo糾錯(cuò)碼的支持。在一個(gè)實(shí)施例中,可以通過20維特比算法執(zhí)行巻積碼的解碼,而Turbo碼可以通過利用軟輸出維特比算法解碼。在OFDM情況下,在不同的頻率當(dāng)中,可配置塊交織器加速器可以用來重排數(shù)據(jù)以及時(shí)擴(kuò)展相鄰數(shù)據(jù)位。此外,加擾器加速器可以用來以偽隨機(jī)數(shù)據(jù)對(duì)數(shù)據(jù)進(jìn)行加擾,以保證發(fā)送的數(shù)據(jù)流中的1和0的均勻分布。CRC加速器可以包括線性反饋移位寄存器(未示出)或用于25產(chǎn)生CRC的其他算法。存儲(chǔ)器單元為了有效地利用處理器核心146的SIMD體系結(jié)構(gòu),存儲(chǔ)器管理和分配可能是重要因素。因而,數(shù)據(jù)存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)包括幾個(gè)相對(duì)小的數(shù)據(jù)存儲(chǔ)器單元(例如,DMO-DMn)。在一個(gè)實(shí)施例中,數(shù)據(jù)存儲(chǔ)器DMO-DMn可以用于存儲(chǔ)處理過程中的復(fù)數(shù)數(shù)據(jù)。這些存儲(chǔ)器的每一個(gè)可以被實(shí)現(xiàn)以具有任意數(shù)目(例如,四個(gè))的交織存儲(chǔ)器區(qū)塊,該交替存儲(chǔ)器區(qū)塊可以允許并行訪問任意數(shù)目(例如,四個(gè))的連續(xù)地址(矢量元素)。此外,數(shù)據(jù)存儲(chǔ)器DMO-DMn的每一個(gè)可以包括地址生成單元5(例如,DM0的地址生成單元201),地址生成單元可以被配置來執(zhí)行模量選址以及FFT選址。此外,每個(gè)DMO-DMn可以經(jīng)由網(wǎng)絡(luò)互連250連接到任意加速器和連接到處理器核心146。系數(shù)存儲(chǔ)器215可以用于存儲(chǔ)FFT和濾波器系數(shù)、査詢表及未被加速器處理的其他數(shù)據(jù)。整數(shù)存儲(chǔ)器220可以用作存儲(chǔ)用于MAC接口225的比特流的包緩沖器。系數(shù)存儲(chǔ)器io215和整數(shù)存儲(chǔ)器220都經(jīng)由網(wǎng)絡(luò)互連250耦合到處理器核心146。網(wǎng)絡(luò)網(wǎng)絡(luò)連接250被配置來互連數(shù)據(jù)路徑、存儲(chǔ)器、加速器和外部接口。因此,在一個(gè)實(shí)施例中,網(wǎng)絡(luò)互連250可以類似于交叉開關(guān)來工作,其中可以從一個(gè)輸入(寫-)端口至一個(gè)輸出(讀-)端口建立連接,以及在15MxM結(jié)構(gòu)中,任意輸入端口可以被連接到任意輸出端口。盡管在某些實(shí)施例中,某些存儲(chǔ)器和某些計(jì)算單元之間的連接可能不是必需的。因而,網(wǎng)絡(luò)互連250可以被優(yōu)化,以允許某些特定的配置,因此簡化網(wǎng)絡(luò)互連250。有了諸如網(wǎng)絡(luò)互連250的互連可以消除判優(yōu)器和選址邏輯的需要,因此減小網(wǎng)絡(luò)和加速器接口的復(fù)雜性,同時(shí)仍然允許許多并發(fā)通信。注20意到,在一個(gè)實(shí)施例中,網(wǎng)絡(luò)互連250可以使用多路復(fù)用器或組合邏輯結(jié)構(gòu)如與-或(And-Or)結(jié)構(gòu)來實(shí)現(xiàn)。但是,可以想到,在其他實(shí)施例中,網(wǎng)絡(luò)互連250可以根據(jù)需要使用任意類型的物理結(jié)構(gòu)來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)互連250可以以兩個(gè)子網(wǎng)絡(luò)實(shí)現(xiàn)。第一子網(wǎng)絡(luò)可以用于基于抽樣的傳送和第二子網(wǎng)絡(luò)可以是用于基于位的傳送的串25行網(wǎng)絡(luò)。兩種網(wǎng)絡(luò)的劃分可以提高網(wǎng)絡(luò)的吞吐量,由于基于位的傳送可能另外需要與網(wǎng)絡(luò)的數(shù)據(jù)寬度不相待的大數(shù)據(jù)塊的冗長成幀(framing)和解幀(de-framing)。在這種實(shí)施例中,每個(gè)子網(wǎng)絡(luò)可以被實(shí)現(xiàn)為由處理器核心146配置的獨(dú)立交叉開關(guān)。網(wǎng)絡(luò)互連250也可以被配置來允許具有相關(guān)功能的加速器直接互相連接成鏈,并與數(shù)據(jù)存儲(chǔ)器連接。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)互連250可以使得數(shù)據(jù)在加速器單元之間無縫地流動(dòng),而不用處理器核心146介入,由此使得僅在網(wǎng)絡(luò)連接的創(chuàng)建和損壞過程中需要在網(wǎng)絡(luò)中牽涉到處理器核心146。如上所述,將所有單元(例如,存儲(chǔ)器,加速器等)連接到所有其5他單元可以不是必需的,并且網(wǎng)絡(luò)互連250可以被優(yōu)化,以僅允許某些配置。在那些實(shí)施例中,網(wǎng)絡(luò)互連250可以被稱為"部分網(wǎng)絡(luò)"。為了在這部分網(wǎng)絡(luò)之間傳送數(shù)據(jù),一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)器單元內(nèi)的幾個(gè)存儲(chǔ)塊(例如,DMO)可以被分配給雙方的子網(wǎng)絡(luò)。這些存儲(chǔ)塊可以被用作任務(wù)之間的乒乓緩沖器。通過在計(jì)算元件之間"交換"存儲(chǔ)塊可以避免昂io貴的存儲(chǔ)器移動(dòng)。該策略可以提供有效的和可預(yù)測的數(shù)據(jù)流,無需昂貴的存儲(chǔ)器移動(dòng)操作。圖4圖示了圖2的可編程基帶處理器的實(shí)施例的另一方面。注意到,與圖2中的元件對(duì)應(yīng)的元件為清楚簡單其見以相同的數(shù)字標(biāo)記。在圖4的實(shí)施例中,處理器核心146包括被耦合到整數(shù)10執(zhí)行單元260的程序15控制單元310。如上所述,整數(shù)執(zhí)行單元260包括ALU261、獨(dú)立的乘法器累加單元262和一組寄存器外存儲(chǔ)器(RF)263。復(fù)數(shù)計(jì)算單元290包括CMAC執(zhí)行單元291和CALU執(zhí)行單元292。CMAC執(zhí)行單元291包括耦合到矢量加載單元284A的矢量控制器275A,矢量加載單元284A又被耦合到CMAC單元270。CMAC單元270也被耦合到矢量存儲(chǔ)單元20283A。CALU執(zhí)行單元292包括被耦合到矢量加載單元284B的矢量控制器275B,矢量加載單元284B又被耦合到CMAC單元270。CMAC單元270也被耦合到矢量存儲(chǔ)單元283B。注意到,在一個(gè)實(shí)施例中,CMAC執(zhí)行單元291和CALU執(zhí)行單元292可分別對(duì)應(yīng)于SIMD簇流水線295A和295B。25在所示的實(shí)施例中,CALU280包括四個(gè)數(shù)據(jù)路徑。類似地,CMAC270也包括四個(gè)數(shù)據(jù)路徑,其包括標(biāo)有CMAC276A至276D的四個(gè)CMAC單元。下面結(jié)合圖7的說明進(jìn)一步描述CMAC數(shù)據(jù)路徑的實(shí)施例。由于連同地址和編碼發(fā)生器一起,CALU280可以是用于諸如耙指式處理的功能的主要部件,通過用累加器實(shí)現(xiàn)4-路CALU,可以同時(shí)執(zhí)行四個(gè)不同編碼的四個(gè)并行相關(guān)運(yùn)算或解擴(kuò)。通過增加僅僅能乘以{0,+/-1}+{0,+/力的簡單或"短"復(fù)數(shù)乘法器到累加器單元,就能實(shí)現(xiàn)這些運(yùn)算。因此,在一個(gè)實(shí)施例中,CALU280包括標(biāo)有285A至285D的四個(gè)不同的CSMAC數(shù)據(jù)路徑。在圖6中示出了示例性CSMAC數(shù)據(jù)路徑5(例如,CSMAC285A)。注意到,盡管在CALU280和CMAC270內(nèi)示出了四個(gè)數(shù)據(jù)路徑,但是可以想到,在其他實(shí)施例中可以使用任意數(shù)目的數(shù)據(jù)路徑。在一個(gè)實(shí)施例中,可以從指令字、解擾編碼發(fā)生器或從OVSF編碼發(fā)生器的任何一個(gè)控制CSMAC285。所有子單元可以由矢量控制器275Aio和275B控制,矢量控制器275A和275B控制可以被配置來管理加載和存儲(chǔ)順序、編碼生成和硬件回路計(jì)數(shù)。為了緩和存儲(chǔ)器接口,可以采用矢量加載單元284和矢量存儲(chǔ)單元283。由此,在所示實(shí)施例中,VLU284包括存儲(chǔ)器281,以緩和存儲(chǔ)器接口和減小網(wǎng)絡(luò)250上取出存儲(chǔ)器數(shù)據(jù)的數(shù)目。例如,如果從存儲(chǔ)器讀15取四個(gè)連續(xù)的數(shù)據(jù)項(xiàng),那么VLU284在某些情況下僅執(zhí)行單個(gè)讀取操作就可以減小存儲(chǔ)器取出的數(shù)目達(dá)3/4。由于CMAC執(zhí)行單元291包括多個(gè)CMAC單元,因此可以執(zhí)行幾個(gè)并行CMAC操作。因而,每個(gè)CMAC單元對(duì)于每個(gè)操作可以使用一個(gè)系數(shù)和一個(gè)輸入數(shù)據(jù)項(xiàng)。因此,用于這類任務(wù)的存儲(chǔ)器帶寬可以是大20的。但是,指令集可以通過在本地存儲(chǔ)大量先前數(shù)據(jù)項(xiàng)來利用矢量加載單元284內(nèi)的存儲(chǔ)器281。通過重新排序該數(shù)據(jù)存取圖形,可以減小存儲(chǔ)器訪問率。在一個(gè)實(shí)施例中,VLU284可以用作存儲(chǔ)器(例如,DMO-n)、網(wǎng)絡(luò)互連250以及執(zhí)行單元(例如,與CMAC執(zhí)行單元相關(guān)聯(lián)的VLU284A25和與CALU執(zhí)行單元相關(guān)聯(lián)的VLU284B)之間的接口。在一個(gè)實(shí)施例中,VLU284可以使用兩種不同的模式加載數(shù)據(jù)。在第一模式中,可以從存儲(chǔ)器塊加載多個(gè)數(shù)據(jù)項(xiàng)。在另一種模式中,數(shù)據(jù)可以先加載一個(gè)數(shù)據(jù)項(xiàng),然后被分配到給定簇中的SIMD數(shù)據(jù)路徑。當(dāng)通過SIMD簇處理連續(xù)數(shù)據(jù)時(shí),后一模式可以來減小存儲(chǔ)器訪問的數(shù)目。圖5圖示了諸如圖2和圖4的PBBP145的集群式SIMD處理器的示例性控制路徑的視圖。PBBP145包括處理器核心146,處理器核心146包括由RISC數(shù)據(jù)路徑510表示的RISC型執(zhí)行單元,并以及由SIMD數(shù)據(jù)路徑#0525和SIMD數(shù)據(jù)路徑#11535表示的數(shù)字SIMD數(shù)據(jù)路徑。為5了在多數(shù)據(jù)路徑上提供控制,控制路徑硬件500包括耦合到程序計(jì)數(shù)器502的程序流控制501,程序計(jì)數(shù)器502又被耦合到程序存儲(chǔ)器(PM)503。PM503被耦合到多路復(fù)用器504、單元-字段提取508、SIMD控制520和SIMD控制530。多路復(fù)用器504被耦合到指令寄存器505,指令寄存器505被耦合到指令解碼器506。指令解碼器506被進(jìn)一步耦合到控io制信號(hào)寄存器(CSR)507,控制信號(hào)寄存器(CSR)507又被耦合到RISC數(shù)據(jù)路徑510的剩余部分。類似地,每個(gè)SIMD控制單元520和530包括各自的指令寄存器(例如,522,532)、指令解碼器(例如,523,533)以及CSR(例如,524,534),這些元件被耦合到它們各自的SIMD簇(例如,525和535)。注意到,圖5所示的至少一些電路可以是圖4的程序15控制單元310的一部分。例如,在一個(gè)實(shí)施例中,程序流動(dòng)控制501、指令寄存器505、解碼器506、控制單元507、單元字段提取508以及發(fā)出控制509可以是圖4的程序控制單元310的一部分。如上所述,該指令格式可以包括單元字段。在一個(gè)實(shí)施例中,指令字的單元字段可以包括三個(gè)位,該三個(gè)位表示要向其發(fā)出指令的單元(例20如,整數(shù)執(zhí)行單元,或SIMD路徑弁—1-4)。更具體地說,單元字段可以提供能夠使發(fā)出控制單元509確定向哪個(gè)指令解碼器/執(zhí)行單元發(fā)出指令的信息。然后執(zhí)行單元內(nèi)的每個(gè)指令解碼器可以對(duì)該單元指定的剩余字段進(jìn)行解碼。這意味著,根據(jù)需要在執(zhí)行單元之間可以具有不同組織和尺寸的剩余字段。在一個(gè)實(shí)施例,在指令字的剩余位被發(fā)送給各自的指令25寄存器/解碼器之前,該單元-字段提取單元508可以刪除或去除單元字段。在一個(gè)實(shí)施例中,在每個(gè)時(shí)鐘周期中,可以從PM503取出一個(gè)指令。該指令字中的單元字段可以從指令字提取,并用來控制向哪個(gè)控制單元分配指令。例如,如果單元字段是"OOO",那么該指令可以被分配給RISC數(shù)據(jù)-路徑。這可能使得發(fā)出控制單元509允許指令字經(jīng)過多路復(fù)用器504進(jìn)入用于RISC數(shù)據(jù)路徑的"指令寄存器"505中,而該周期沒有新的指令加載到SIMD控制單元中。然而,如果單元字段保持任意其他值,那么發(fā)出控制單元509可以允許指令字通往用于相應(yīng)的SIMD控制單元的"指令寄存器"522,532并使得NOP指令被發(fā)送給RISC數(shù)據(jù)路徑指令5寄存器。在一個(gè)實(shí)施例中,當(dāng)一指令被分配給SIMD執(zhí)行單元時(shí),來自該指令字的矢量長度字段可以被提取并存儲(chǔ)在相應(yīng)的SIMD控制單元(例如,520,530)的計(jì)數(shù)寄存器(例如,521,531)中。該計(jì)數(shù)寄存器可以用來記錄相應(yīng)矢量指令中的矢量長度。當(dāng)相應(yīng)的SIMD執(zhí)行單元已經(jīng)完成10矢量運(yùn)算時(shí),矢量控制器275可以將信號(hào)(標(biāo)記)發(fā)送到程序流控制501,以指示該單元準(zhǔn)備接收新的指令。對(duì)應(yīng)于每個(gè)SIMD控制單元520,530的矢量控制器可以附加地創(chuàng)建用于執(zhí)行單元內(nèi)的開始結(jié)束狀態(tài)的控制信號(hào)。這種控制信號(hào)例如可以控制用于CSMAC運(yùn)算的VLU284,也可以管理單只(odd)矢量長度。15如上所述,在諸如CDMA系統(tǒng)中的許多基帶處理算法中,例如從天線接收的復(fù)數(shù)數(shù)據(jù)序列用"(解)擴(kuò)編碼"相乘。因此,可能需要以元素為單位的將復(fù)矢量乘以(和累加)解擴(kuò)編碼,該解擴(kuò)編碼可以是僅僅包含來自以下集合的數(shù)字的復(fù)矢量{0,+/-1}+{0,+/-i}。然后累加該復(fù)數(shù)乘法的結(jié)果。在某些常規(guī)可編程處理器中,該功能可以通過執(zhí)行幾個(gè)算20術(shù)指令或通過一個(gè)完全實(shí)現(xiàn)的CMAC單元來執(zhí)行。但是,使用可編程處理器內(nèi)的N路(Nway)CSMAC單元(例如,CSMAC285A-D),可以減小該硬件成本。圖6是圖4所示的復(fù)ALU的四路CSMAC單元的示例性數(shù)據(jù)路徑的視圖。注意到,圖6的CSMAC285可以說明圖4的CSMAC285A至285D25的任意一個(gè)。CSMAC285包括反相器601A和601B、標(biāo)有603A至603D的四個(gè)多路復(fù)用器。此外,CSMAC285包括標(biāo)有602和604A,604B,606A和606B的幾個(gè)加法器。此外,CSMAC285包括兩個(gè)保護(hù)單元606A和606B,兩個(gè)累加寄存器607A和607B,以及兩個(gè)舍入/飽和單元608A禾卩608B。在一個(gè)實(shí)施例中,CSMAC285經(jīng)由VLU284接收矢量數(shù)據(jù)。該實(shí)部與虛部沿著獨(dú)立的路徑,如圖所示。根據(jù)將乘以輸入矢量數(shù)據(jù)的解擴(kuò)編碼,多路復(fù)用器603A至603D可以允許相應(yīng)的實(shí)部與虛部和它們的補(bǔ)碼或反碼傳給加法器604A和604B(它們?cè)诖讼嗉?,有時(shí)利用載體。由此,5根據(jù)該運(yùn)算,CSMAC285可以利用二的補(bǔ)碼(two,scomplement)有效地將各自的實(shí)部與虛部乘以(O,+/-1}+{0,+/-i}。保護(hù)單元605A和605B可以被配置限制加法器604A和604B的結(jié)果。例如,當(dāng)諸如溢流的條件存在時(shí),該結(jié)果可以根據(jù)需要限制為提供最大或最小(即,飽和)值。與累加寄存器607A和607B結(jié)合的加法器606A和606B可以累加各個(gè)結(jié)果,io各個(gè)結(jié)果可以被傳給舍入/飽和單元,并繼續(xù)傳給VSU283B以發(fā)送到數(shù)據(jù)存儲(chǔ)器。因此,從上面的描述,不使用常規(guī)乘法器。代之以,執(zhí)行二的補(bǔ)碼加法,由此節(jié)省管芯面積和功率。因此,諸如CSMAC285A-D的四路CSMAC可以由可以在可編程環(huán)境中執(zhí)行四個(gè)并行CSMAC操作的面積高15效的四路CSMAC單元實(shí)現(xiàn)。該增強(qiáng)的四路CSMAC單元執(zhí)行矢量乘法的速度比單個(gè)單元快四倍,或者能夠用四個(gè)不同系數(shù)矢量乘以相同的矢量。后一操作可以用來在CDMA系統(tǒng)中實(shí)現(xiàn)"多碼解擴(kuò)"。如上所述,VLU284可以根據(jù)需要復(fù)制CSMAC285的所有數(shù)據(jù)-路徑當(dāng)中的一個(gè)數(shù)據(jù)項(xiàng)或系數(shù)項(xiàng)。當(dāng)用不同的內(nèi)部產(chǎn)生的系數(shù)(例如,使用OVSF編碼)20乘以相同的數(shù)據(jù)項(xiàng)時(shí),該復(fù)制模式尤其有用。圖7是圖4所示的復(fù)MAC單元數(shù)據(jù)路徑的一個(gè)實(shí)施例的視圖。注意至IJ,圖7的CMAC276可以說明圖4的CMAC276A至276D的任意一個(gè)。CMAC276包括標(biāo)有701A至701D的四個(gè)多位乘法器,多位乘法器701A至701D被耦合到四個(gè)各自的結(jié)果寄存器702A至702D。此外,25CMAC276包括標(biāo)有703,704,709A,709B,710A和710B的六個(gè)全力口法器。此外,CMAC276包括多路復(fù)用器705,706,707和708,以及累加寄存器ACRR711A和ACIR711B。在所示的實(shí)施例中,乘法器701A可以將操作碼A的實(shí)部乘以操作碼C的實(shí)部,同時(shí)乘法器701B可以將操作碼A的虛部乘以操作碼C的虛部。此外,乘法器701C可以將操作碼A的實(shí)部乘以操作碼C的虛部,以及乘法器701D可以將操作碼A的虛部乘以操作碼C的實(shí)部。結(jié)果可以分別存儲(chǔ)在結(jié)果寄存器702A-702D中。加法器703可以對(duì)乘法器702A和702B的結(jié)果執(zhí)行加法和減法,而5加法器704可以對(duì)乘法器702C和702D的結(jié)果執(zhí)行加法和減法。多路復(fù)用器705和707可以根據(jù)操作碼的值允許乘法器/加法器旁通。根據(jù)正在執(zhí)行的功能,多路復(fù)用器706和708可以選擇性地向累加部分提供值,該累加部分包括加法器709A、709B、710A和710B,以及累加寄存器ACRR711A和ACIR711B。ACRR711A是用于實(shí)數(shù)據(jù)的累加寄存器,ioACIR711B是用于虛數(shù)據(jù)的累加寄存器。在一個(gè)實(shí)施例中,CMAC276可以每個(gè)時(shí)鐘周期執(zhí)行一次復(fù)值相乘-累加運(yùn)算(例如,基-2FFT蝶形運(yùn)算)。特別對(duì)諸如相關(guān)運(yùn)算、FFT、或絕對(duì)最大值搜索之類的運(yùn)算進(jìn)行優(yōu)化,例如可以對(duì)復(fù)矢量(例如,復(fù)值同相(I)和求積分(Q)對(duì))執(zhí)行這些運(yùn)算。如上所述,處理器核心14615具有特殊類別的多周期矢量定向指令,其能夠與CALU和RISC/整數(shù)指令并行執(zhí)行。在一個(gè)實(shí)施例中,復(fù)矢量指令可以是16位長,其可以有效利用程序存儲(chǔ)器。然而,可以預(yù)期在其他實(shí)施例中該指令長度可以是任意位數(shù)。在一個(gè)實(shí)施例中,當(dāng)執(zhí)行復(fù)數(shù)乘法或巻積時(shí),當(dāng)加法器703執(zhí)行減20法和加法器704執(zhí)行加法時(shí),可以執(zhí)行普通復(fù)數(shù)計(jì)算。當(dāng)加法器703執(zhí)行加法和加法器704執(zhí)行減法時(shí),可以執(zhí)行復(fù)數(shù)共軛計(jì)算。此外,當(dāng)對(duì)點(diǎn)積乘法和矢量旋轉(zhuǎn)執(zhí)行普通復(fù)數(shù)或復(fù)數(shù)共軛乘法時(shí),ACRR711A和ACIR711B的迭代循環(huán)可以被中斷,并且在將結(jié)果向矢量存儲(chǔ)器以自然長度發(fā)送之前,加法器710A和加法器710B可以用于執(zhí)行舍入運(yùn)算。同25樣,當(dāng)執(zhí)行用于復(fù)數(shù)濾波器的復(fù)數(shù)巻積、復(fù)數(shù)自相關(guān)運(yùn)算以及復(fù)數(shù)互相關(guān)運(yùn)算時(shí),加法器710A和加法器710B分別可以提供實(shí)部和虛部的加或減累加。在一個(gè)實(shí)施例中,當(dāng)執(zhí)行FFT或IFFT計(jì)算時(shí),CMAC276數(shù)據(jù)路徑可以給出(流水線的)每個(gè)時(shí)鐘周期一個(gè)蝶形計(jì)算,(即,每個(gè)時(shí)鐘周期兩點(diǎn)FFT計(jì)算)。為了執(zhí)行FFT,加法器709A和加法器709B執(zhí)行減法,并加法器710A和加法器710B的ACRR及ACIR迭代循環(huán)被中斷。此外,加法器710A和加法器710B執(zhí)行加法運(yùn)算。在一個(gè)實(shí)施例中,為了執(zhí)行與上面描述的基帶同步和數(shù)據(jù)接收相關(guān)5的各種操作,可以在CMAC276上執(zhí)行以下指令CMUL.n:對(duì)結(jié)果進(jìn)行舍入的普通復(fù)數(shù)乘法,并執(zhí)行n步的非重疊循環(huán)。操作碼可以從OPA和OPB端口提供。結(jié)果以自然長度復(fù)數(shù)數(shù)據(jù)格式提供在端口C上。CCMUL.n:對(duì)結(jié)果進(jìn)行舍入的復(fù)數(shù)共軛乘法,并執(zhí)行n步的非重疊io循環(huán)。操作碼可以從OPA和OPB端口提供。結(jié)果以具有自然長度復(fù)數(shù)數(shù)據(jù)格式提供在端口C上。CMAC.n:普通復(fù)數(shù)乘法和累加,非重疊循環(huán)地執(zhí)行n步。操作碼可以從OPA和OPB端口提供。結(jié)果的實(shí)部可以被存儲(chǔ)在ACRR711A中,以及虛部可以被存儲(chǔ)在ACIR711B中。15CCMAC.n:復(fù)數(shù)共軛乘法和累加,非重疊循環(huán)執(zhí)行n步。操作碼可以從OPA和OPB端口提供。結(jié)果的實(shí)部可以存儲(chǔ)在ACRR711A中,以及虛部可以存儲(chǔ)在ACIR711B中。FFT.m.n:大小為n的FFT變換的第m步基于普通按序?qū)ぶ?,?fù)數(shù)數(shù)據(jù)可以從端口A和端口B取出,并且復(fù)數(shù)系數(shù)可以從端口C取出;20復(fù)數(shù)數(shù)據(jù)結(jié)果可以利用位反射尋址發(fā)送到端口D。注意到,上面描述的PBBP145的體系結(jié)構(gòu)和微體系結(jié)構(gòu)的靈活特性可以對(duì)多種無線電標(biāo)準(zhǔn)和這些標(biāo)準(zhǔn)內(nèi)多種操作模式提供支持。盡管已經(jīng)相當(dāng)詳細(xì)地描述了以上實(shí)施例,但是一旦完全理解上述公開,大量變形和改進(jìn)對(duì)所屬領(lǐng)域的技術(shù)人員來說是顯而易見的。這里意25圖是要將下列權(quán)利要求書解釋為包含所有這種變形和改進(jìn)。權(quán)利要求1.一種數(shù)字信號(hào)處理器,其包括多個(gè)加速器單元,每個(gè)所述加速器單元被配置為執(zhí)行一個(gè)或多個(gè)專用功能;以及被耦合到所述多個(gè)加速器單元的處理器核心,其中所述處理器核心包括被配置為執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元;以及被耦合到所述多個(gè)加速器單元的復(fù)數(shù)計(jì)算單元,其中所述復(fù)數(shù)計(jì)算單元包括復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線,所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線包括一個(gè)或多個(gè)數(shù)據(jù)路徑,其中每個(gè)數(shù)據(jù)路徑被配置來執(zhí)行復(fù)矢量指令,并且每個(gè)數(shù)據(jù)路徑包括復(fù)數(shù)短乘加器單元,所述復(fù)數(shù)短乘加器單元被配置來將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+/-i}的數(shù)集中的值;以及被耦合到各復(fù)數(shù)短乘加器單元的矢量加載單元,其中所述矢量加載單元被配置來每個(gè)時(shí)鐘周期取出復(fù)數(shù)數(shù)據(jù)項(xiàng)以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑使用。2.如權(quán)利要求1所述的處理器,其中每個(gè)復(fù)數(shù)短乘加器單元被配置來通過執(zhí)行二的補(bǔ)碼運(yùn)算將復(fù)數(shù)數(shù)據(jù)值乘以包括(O,+/-1}+{0,+/力的數(shù)20集中的值而無需乘法器。3.如權(quán)利要求1所述的處理器,其中所述矢量加載單元包括存儲(chǔ)器,所述存儲(chǔ)器被配置來存儲(chǔ)從先時(shí)鐘周期中執(zhí)行的取出操作得到的數(shù)據(jù),以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑在后續(xù)時(shí)鐘周期中使用。4.如權(quán)利要求1所述的處理器,其中所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線還包括被耦合到所述矢量加載單元并被配置為通過所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑來管理矢量運(yùn)算的加載和存儲(chǔ)順序的矢量控制器單元。5.如權(quán)利要求1所述的處理器,其中每個(gè)復(fù)數(shù)短乘加器數(shù)據(jù)路徑被配置為將任何數(shù)據(jù)自然地解釋為具有實(shí)部和虛部的復(fù)數(shù)值數(shù)據(jù)。6.如權(quán)利要求1所述的處理器,其中所述復(fù)矢量指令對(duì)具有實(shí)部和虛部的復(fù)數(shù)值數(shù)據(jù)進(jìn)行運(yùn)算。7.如權(quán)利要求1所述的處理器,其中所述復(fù)數(shù)計(jì)算單元被配置為執(zhí)5行單指令多數(shù)據(jù)(SIMD)指令。8.如權(quán)利要求1所述的處理器,其中所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線內(nèi)的每個(gè)數(shù)據(jù)路徑被配置為每個(gè)時(shí)鐘周期執(zhí)行單個(gè)復(fù)數(shù)運(yùn)算,所述單個(gè)復(fù)數(shù)運(yùn)算是矢量指令的一部分。9.如權(quán)利要求8所述的處理器,其中所述整數(shù)執(zhí)行單元被配置為與io所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線內(nèi)的任意數(shù)據(jù)路徑執(zhí)行任意復(fù)矢量指令同時(shí)地每個(gè)時(shí)鐘周期執(zhí)行單個(gè)指令。10.如權(quán)利要求1所述的處理器,其中所述一個(gè)或多個(gè)專用功能中的給定的各個(gè)功能與對(duì)應(yīng)于不同無線通信標(biāo)準(zhǔn)的基帶信號(hào)處理相關(guān)。11.如權(quán)利要求1所述的處理器,所述處理器還包括多個(gè)存儲(chǔ)器單元,15其中所述多個(gè)存儲(chǔ)器單元中的每一個(gè)、所述多個(gè)加速器單元的至少一部分、所述處理器核心以及所述復(fù)數(shù)計(jì)算單元被制造在單個(gè)集成電路上。12.如權(quán)利要求11所述的處理器,所述處理器還包括被配置為在所述多個(gè)存儲(chǔ)器單元、所述多個(gè)加速器單元、所述處理器核心和所述復(fù)數(shù)計(jì)算單元之間提供連接的網(wǎng)絡(luò)。13.如權(quán)利要求12所述的處理器,其中響應(yīng)于特定整數(shù)指令的執(zhí)行,所述網(wǎng)絡(luò)被配置為將所述多個(gè)存儲(chǔ)器單元中的給定存儲(chǔ)器單元耦合到所述多個(gè)加速器單元中的一個(gè)或多個(gè)。14.如權(quán)利要求1所述的處理器,其中所述多個(gè)加速器單元的至少一些加速器單元是與基帶信號(hào)處理相關(guān)的專用功能的可配置硬件實(shí)現(xiàn)。15.—種多模無線通信設(shè)備,該無線通信設(shè)備包括被配置為發(fā)射和接收射頻信號(hào)的射頻前端單元;耦合到所述射頻前端單元的可編程數(shù)字信號(hào)處理器,其中所述可編程數(shù)字信號(hào)處理器包括多個(gè)加速器單元,每個(gè)加速器單元被配置為執(zhí)行與基帶信號(hào)處理相關(guān)的一個(gè)或多個(gè)專用功能;以及處理器核心,其包括被配置為執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元;以及被耦合到所述多個(gè)加速器單元的復(fù)數(shù)計(jì)算單元,其中所述復(fù)數(shù)計(jì)算單元包括復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線,所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流5水線包括一個(gè)或多個(gè)數(shù)據(jù)路徑,其中每個(gè)數(shù)據(jù)路徑被配置為執(zhí)行復(fù)矢量指令,并且每個(gè)數(shù)據(jù)路徑包括被配置為將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+/-i}的數(shù)集中的值的復(fù)數(shù)短乘加器單元;以及被耦合到所述復(fù)數(shù)短乘加器單元的矢量加載單元,其中所述矢量加10載單元被配置為使得每個(gè)時(shí)鐘周期取出復(fù)數(shù)數(shù)據(jù)項(xiàng)以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑使用。16.如權(quán)利要求15所述的無線通信設(shè)備,其中每個(gè)復(fù)數(shù)短乘加器單元被配置為通過執(zhí)行二的補(bǔ)碼運(yùn)算將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+/"}的數(shù)集中的值而無需乘法器。17.如權(quán)利要求15所述的無線通信設(shè)備,其中所述矢量加載單元包括存儲(chǔ)器,所述存儲(chǔ)器被配置為存儲(chǔ)從在先時(shí)鐘周期中執(zhí)行的取出操作得到的數(shù)據(jù),以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑在后續(xù)時(shí)鐘周期中使用。18.如權(quán)利要求15所述的無線通信設(shè)備,其中所述復(fù)數(shù)運(yùn)算邏輯單20元執(zhí)行流水線還包括被耦合到所述矢量加載單元并被配置為通過所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑管理矢量運(yùn)算的加載和存儲(chǔ)順序的矢量控制器單元。19.如權(quán)利要求15所述的無線通信設(shè)備,其中每個(gè)復(fù)數(shù)短乘加器數(shù)據(jù)路徑被配置為將任意數(shù)據(jù)自然地解釋為具有實(shí)部和虛部的復(fù)數(shù)值數(shù)25據(jù)。20.如權(quán)利要求15所述的無線通信設(shè)備,其中所述復(fù)矢量指令對(duì)具有實(shí)部和虛部的復(fù)數(shù)值數(shù)據(jù)進(jìn)行運(yùn)算。21.如權(quán)利要求15所述的無線通信設(shè)備,其中所述復(fù)數(shù)計(jì)算單元被配置為執(zhí)行單指令多數(shù)據(jù)(SIMD)指令。22.如權(quán)利要求15所述的無線通信設(shè)備,其中所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線內(nèi)的每個(gè)數(shù)據(jù)路徑被配置為每個(gè)時(shí)鐘周期執(zhí)行單個(gè)復(fù)數(shù)運(yùn)算,所述單個(gè)復(fù)數(shù)運(yùn)算是矢量指令的一部分。23.如權(quán)利要求22所述的無線通信設(shè)備,其中所述整數(shù)執(zhí)行單元被5配置為與所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線內(nèi)的任意數(shù)據(jù)路徑執(zhí)行任意復(fù)矢量指令同時(shí)地每個(gè)時(shí)鐘周期執(zhí)行單個(gè)指令。24.如權(quán)利要求15所述的無線通信設(shè)備,其中所述一個(gè)或多個(gè)專用功能中的給定的各個(gè)功能與對(duì)應(yīng)于不同無線通信標(biāo)準(zhǔn)的基帶信號(hào)處理相關(guān)。25.如權(quán)利要求15所述的無線通信設(shè)備,所述無線通信設(shè)備還包括多個(gè)存儲(chǔ)器單元,其中多個(gè)存儲(chǔ)器單元、所述多個(gè)加速器單元的至少一部分、所述處理器核心以及所述復(fù)數(shù)計(jì)算單元被制造在一個(gè)集成電路上。26.如權(quán)利要求25所述的無線通信設(shè)備,所述無線通信設(shè)備還包括被配置為在所述多個(gè)存儲(chǔ)器單元、所述多個(gè)加速器單元、所述處理器核15心和所述復(fù)數(shù)計(jì)算單元之間提供連接的網(wǎng)絡(luò)。27.如權(quán)利要求26所述的無線通信設(shè)備,其中響應(yīng)于特定整數(shù)指令的執(zhí)行,所述網(wǎng)絡(luò)被配置為將所述多個(gè)存儲(chǔ)器單元中的給定存儲(chǔ)器單元耦合到所述多個(gè)加速器單元的一個(gè)或多個(gè)。28.如權(quán)利要求15所述的無線通信設(shè)備,其中所述多個(gè)加速器單元20的至少一些加速器單元是與基帶信號(hào)處理相關(guān)的專用功能的可配置硬件實(shí)現(xiàn)。全文摘要本發(fā)明公開了一種可具有集群式SIMD微體系結(jié)構(gòu)的可編程數(shù)字信號(hào)處理器包括,其包括多個(gè)加速器單元、處理器核心和復(fù)數(shù)計(jì)算單元。每個(gè)所述加速器單元可以被配置為執(zhí)行一個(gè)或多個(gè)專用的功能。所述處理器核心包括可以執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元。所述復(fù)數(shù)計(jì)算單元可以包括復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線以及矢量加載單元,所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線可以包括被配置為執(zhí)行復(fù)矢量指令的一個(gè)或多個(gè)數(shù)據(jù)路徑。此外,每個(gè)數(shù)據(jù)路徑可以包括可以被配置為將復(fù)數(shù)數(shù)據(jù)值乘以包括{0,+/-1}+{0,+/-i}的數(shù)集中的值的復(fù)數(shù)短乘加器單元。所述矢量加載單元可以使得每個(gè)時(shí)鐘周期取出復(fù)數(shù)數(shù)據(jù)項(xiàng)以供所述復(fù)數(shù)運(yùn)算邏輯單元執(zhí)行流水線中的任意數(shù)據(jù)路徑使用。文檔編號(hào)G06F15/78GK101238454SQ200680028816公開日2008年8月6日申請(qǐng)日期2006年8月9日優(yōu)先權(quán)日2005年8月11日發(fā)明者埃里克·特爾,安德斯·尼爾松,達(dá)克·劉申請(qǐng)人:科萊索尼克公司