国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      包括配置為執(zhí)行復(fù)矢量指令的集群式simd微體系結(jié)構(gòu)的可編程數(shù)字信號(hào)處理器的制作方法

      文檔序號(hào):6568499閱讀:226來(lái)源:國(guó)知局

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