數(shù)字信號處理器以及基帶通信設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種具有向量執(zhí)行單元的數(shù)字信號處理器,其設(shè)置為用以執(zhí)行向量形式的多個數(shù)據(jù)的指令,包括:本地隊列(730),其設(shè)置為用以從程序存儲器接收指令并在本地隊列中保存該指令,直到滿足預(yù)定條件為止。所述本地隊列(730)配置為在某時間上從程序存儲器接收指令序列,并存儲最后的N條指令,N為整數(shù)。向量執(zhí)行單元中的向量控制器包括隊列控制裝置(732,721,744),其設(shè)置用以使本地隊列將存儲在本地隊列中的具有M條指令的序列重復(fù)K次,其中M為小于等于N的整數(shù)。由于具有程序存儲器中的IDLE命令,因此可減少向量執(zhí)行單元繼續(xù)等待的時間。
【專利說明】數(shù)字信號處理器以及基帶通信設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于SMT的數(shù)字信號處理器。
【背景技術(shù)】
[0002]多數(shù)移動通信設(shè)備使用包括一個或多個數(shù)字處理器(DSP)的射頻收發(fā)器。
[0003]這種處理器中頻繁執(zhí)行的多數(shù)功能是針對大量采樣數(shù)據(jù)而完成的。因此,采用一種稱為單指令多數(shù)據(jù)流(Single Instruction Multiple Data, SIMD)處理器的處理器,因為它可以實現(xiàn)單個指令操作多個數(shù)據(jù)項,而不是每次操作一個整數(shù)。這種處理器能夠處理向量指令,這意味著單一指令對多個數(shù)據(jù)單元執(zhí)行相同功能。因此,它們可稱為向量執(zhí)行單元。數(shù)據(jù)被分組為字節(jié)或字,并封裝為要操作的向量。
[0004]作為SIMD架構(gòu)的進(jìn)一步改進(jìn),已經(jīng)開發(fā)出單指令流多任務(wù)流(SingleInstruction Multiple Tasks, SIMT)架構(gòu)。通常,SIMT架構(gòu)中已具有與作為內(nèi)核處理器一部分的整數(shù)執(zhí)行單元相關(guān)的一個或兩個SIMD類向量執(zhí)行單元。
[0005]國際專利申請W02007/018467公開了一種根據(jù)SMT架構(gòu)的DSP,其具有包括整數(shù)處理器和程序存儲器的處理器內(nèi)核,以及與內(nèi)核連接但未集成在內(nèi)核中的兩個向量執(zhí)行單元。該向量執(zhí)行單元可以為復(fù)雜算法邏輯單元(Complex Arithmetic Logic Units, CALU)或復(fù)雜乘法累加單元(CMAC,Complex Multiply-Accumulate Units)。該內(nèi)核具有向執(zhí)行單元分配指令的程序存儲器。在W02007/018467專利文獻(xiàn)中,每一向量執(zhí)行單元具有單獨的指令解碼器。這可以有效地方式實現(xiàn)向量執(zhí)行單元的使用在彼此之間獨立,以及與處理器的其他部分之間獨立。
[0006]因此,在SMT架構(gòu)中具有若干執(zhí)行單元。通常每個時鐘周期里,可由程序存儲器向執(zhí)行單元中的一個單元發(fā)出一條指令。由于向量運算通常處理大向量,因此,在一個時鐘周期里一個向量執(zhí)行單元中接收的指令將要花費數(shù)個時鐘周期來進(jìn)行處理。因此,在隨后的時鐘周期里,可向處理器的其他計算單元發(fā)出指令。由于向量指令運行在長向量上,因此許多RISC指令可在向量操作期間執(zhí)行。
[0007]多種基帶算法可分解為更小的基帶任務(wù)鏈,其中在任務(wù)之間幾乎沒有后向依賴性。該屬性不僅容許在向量執(zhí)行單元上并行執(zhí)行不同任務(wù),它也可通過使用上述指令集架構(gòu)而加以利用。
[0008]為提供控制流同步并控制該數(shù)據(jù)流,“空閑”指令通常可用于中止控制流直到給定的向量操作完成?!翱臻e”指令將中止進(jìn)一步的指令提取直到滿足特定條件。該條件可以是向量執(zhí)行單元中的向量指令的完成。
[0009]DSP任務(wù)通常包括具有兩至三條指令的序列,下文將對其進(jìn)行更詳細(xì)地討論。這表明向量執(zhí)行單元將接收向量指令來進(jìn)行運算,并在提供的數(shù)據(jù)向量上執(zhí)行該向量指令直到整個向量完成為止。下一條指令將是處理該結(jié)果并將其存儲在存儲器中,理論上這可在對整個向量執(zhí)行計算后隨即發(fā)生。然而,向量執(zhí)行單元通常得等待幾個時鐘周期才能得到它的下一條指令,因為處理器內(nèi)核忙于等待其他向量單元完成操作,這導(dǎo)致向量執(zhí)行單元的低效利用。隨著向量執(zhí)行單元數(shù)量的增長,向量執(zhí)行單元處于非活動狀態(tài)的可能性增大。
【發(fā)明內(nèi)容】
[0010]由同一 申請人:與本申請同日提交的、名稱為“數(shù)字信號處理器和基帶通信設(shè)備”的共同未決專利申請涉及增強(qiáng)這種處理器中的并行程度。根據(jù)該共同未決專利申請,該問題是通過在每個向量執(zhí)行單元中提供本地隊列而解決的。特定向量執(zhí)行單元的本地隊列能夠存儲用于該向量執(zhí)行單元的多條命令,并將其反饋至與程序存儲器的狀態(tài)無關(guān)的向量執(zhí)行單元。
[0011]因此,根據(jù)此共同未決專利申請的處理通過提高處理器中的并行度而變得更有效。本發(fā)明基于如下認(rèn)知:在現(xiàn)有技術(shù)中,已完成向量指令的向量執(zhí)行單元通常不能立即接收下一指令。當(dāng)向量執(zhí)行單元準(zhǔn)備好接收新指令而程序存儲器中的第一條命令用于另一處于繁忙狀態(tài)的向量執(zhí)行單元時,上述情況將會發(fā)生。在此情況下,沒有一個向量執(zhí)行單元能接收新命令直到其他向量執(zhí)行單元準(zhǔn)備好接收其下一命令為止。由于為各個向量執(zhí)行單元提供本地隊列,因此可同時為向量單元提供針對一個向量單元的包括數(shù)條指令的一批指令。SYNC指令暫停從本地隊列讀取指令直到滿足條件為止,該條件通常為數(shù)據(jù)通路準(zhǔn)備好接收并執(zhí)行另一指令。這兩個特征共同使得指令序列能夠即刻發(fā)送到指令執(zhí)行單元,存儲在本地隊列中,并在向量執(zhí)行單元中依序處理,以使得向量執(zhí)行單元一旦完成一條指令就能開始下一條指令。采用這種方式,每一向量執(zhí)行單元可在最少的非活動時間情況下工作。
[0012]本發(fā)明的目的在于使處理器內(nèi)部的通信盡可能有效。
[0013]根據(jù)本發(fā)明通過在數(shù)字信號處理器中使用向量執(zhí)行單元來實現(xiàn)所述發(fā)明目的,所述向量執(zhí)行單元設(shè)置為用以執(zhí)行包括針對向量形式的多數(shù)據(jù)進(jìn)行操作的向量指令的指令,其中,向量執(zhí)行單元包括
[0014]向量控制單元(向量控制器),其設(shè)置為用以判斷指令是否為向量指令,若是,通知用以保存該向量長度的計數(shù)寄存器,所述向量控制器進(jìn)一步設(shè)置并控制指令的執(zhí)行,其中,所述向量執(zhí)行單元包括
[0015]-設(shè)置為用以接收來自程序存儲器的至少第一指令和第二指令的本地隊列,并在本地隊列中保存第二指令直到預(yù)定條件滿足為止
[0016]-所述本地隊列設(shè)置為用以在某時間從程序存儲器接收指令序列,并存儲最后的N條指令,N為整數(shù),
[0017]-其中,所述向量控制器包括設(shè)置為用以按照將存儲在本地隊列中的M條指令的序列重復(fù)K次的方式控制所述本地隊列的隊列控制裝置,其中,M為小于等于N的整數(shù)。
[0018]優(yōu)選的是,向量控制器基于從內(nèi)核接收的發(fā)出信號來控制指令的執(zhí)行?;蛘?,該發(fā)出信號可由向量執(zhí)行單元本身在本地處理。
[0019]隊列控制裝置優(yōu)選包括:
[0020]-緩沖管理器,其設(shè)置為用以記錄要重復(fù)的M條指令,以及指令應(yīng)當(dāng)重復(fù)的次數(shù)K,其中M和K為整數(shù);
[0021]-重復(fù)控制裝置,其設(shè)置為用以監(jiān)測指令序列的重復(fù)執(zhí)行,以判斷指令的重復(fù)何時
應(yīng)當(dāng)停止;
[0022]-指令計數(shù)寄存器,其設(shè)置為用以保存要重復(fù)的指令數(shù)M及其在隊列中的位置。[0023]根據(jù)本發(fā)明,本地隊列設(shè)置為例如循環(huán)緩沖器的形式,以存儲最后的N條指令,其中N為整數(shù)??膳渲脼槿我夂线m的整數(shù),例如16。向量執(zhí)行單元則具有用以將隊列中最后M條指令重復(fù)K次的重復(fù)指令,其中M和K同樣為合適的整數(shù)。K可以從控制寄存器文件、指令字或者其他來源獲取。在此情況下,向量執(zhí)行單元還包括對重復(fù)次數(shù)進(jìn)行計數(shù)到K次的重復(fù)計數(shù)器。重復(fù)功能設(shè)置為用以在停止指令重復(fù)前,遞減(或遞增)重復(fù)計數(shù)器K次。
[0024]根據(jù)本發(fā)明,由于同一指令集合可從存儲器發(fā)送一次,并在向量執(zhí)行單元中執(zhí)行多次,因此節(jié)省了控制通路中的帶寬。這與現(xiàn)有技術(shù)的解決方案相反,在現(xiàn)有技術(shù)中,每次將要執(zhí)行的時候,通過從程序存儲器中發(fā)送同一指令序列獲得指令循環(huán)。對于K值很大的情況,這尤其有利。
[0025]緩沖管理器可設(shè)置為用從控制寄存器文件中或者指令字本身獲取整數(shù)K。
[0026]在優(yōu)選實施例中,重復(fù)控制裝置為用以記錄K次重復(fù)的計數(shù)器。
[0027]根據(jù)本發(fā)明實施例的處理器特別用于數(shù)字信號處理器,特別是基帶處理器。因此,本發(fā)明還涉及一種數(shù)字信號處理器,包括:
[0028]-處理器內(nèi)核,包括配置為用以執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元;以及
[0029]-與處理器內(nèi)核分開并與之耦合的至少第一和第二向量執(zhí)行單元,其中,每一向量執(zhí)行單元分別為如上所述的向量執(zhí)行單元;
[0030]-所述數(shù)字信號處理器包括程序存儲器和發(fā)出邏輯,其中,程序存儲器設(shè)置為用以保存用于第一和第二向量執(zhí)行單元的指令,發(fā)出邏輯用于向第一和第二向量執(zhí)行單元發(fā)出包括向量指令的指令。
[0031]通常,程序存儲器可設(shè)置在處理器內(nèi)核中,并可設(shè)置為用以為整數(shù)執(zhí)行單元保存指令。
[0032]本發(fā)明還涉及一種適于多模有線和無線通信的基帶通信設(shè)備,包括:
[0033]-前端單元,設(shè)置為用以發(fā)送和/或接收通信信號;
[0034]-耦合至模擬前端單元的可編程數(shù)字信號處理器,其中可編程數(shù)字信號處理器為如上所述的數(shù)字信號處理器。
[0035]在優(yōu)選的實施例中,本文通篇提及的向量執(zhí)行單元為SIMD類向量執(zhí)行單元或者為用以操作向量數(shù)據(jù)的可編程協(xié)處理器。
[0036]根據(jù)本發(fā)明實施例的處理器對于數(shù)字信號處理器尤其是基帶處理器而言特別有用。前端單元可以為模擬前端單元,其設(shè)置為用以發(fā)送和/或接收射頻或基帶信號。
[0037]這種處理器廣泛用于不同類型的通信設(shè)備中,例如移動電話、電視接收器和線纜調(diào)制解調(diào)器。因此,基帶通信設(shè)備可設(shè)置用于無線通信網(wǎng)絡(luò)中的通信,例如作為移動電話或者移動數(shù)據(jù)通信設(shè)備。基帶通信設(shè)備也可設(shè)置用于根據(jù)其他無線標(biāo)準(zhǔn)例如藍(lán)牙或者WiFi的通信。它也可以為電視接收器、線纜調(diào)制解調(diào)器、WiFi調(diào)制解調(diào)器,或者能夠向其處理器發(fā)送基帶信號的任意其他類型的通信設(shè)備。應(yīng)該理解術(shù)語“基帶”僅指處理器內(nèi)部處理的信號。實際接收和/或發(fā)送的通信信號可以為在有線或無線連接上接收的任意合適類型的通信信號。這些通信信號通過該設(shè)備的前端單元以適當(dāng)?shù)姆绞睫D(zhuǎn)換為基帶信號。
【專利附圖】
【附圖說明】
[0038]以下通過舉例并參照附圖對本發(fā)明進(jìn)行更詳細(xì)的說明。[0039]圖1為根據(jù)本發(fā)明實施例的基帶處理器的框圖;
[0040]圖2為顯示圖1中處理器內(nèi)核的一個實施例的指令發(fā)出管線的示意圖;
[0041]圖3顯示了 SMT處理器內(nèi)的指令發(fā)出邏輯;
[0042]圖4顯示了根據(jù)現(xiàn)有技術(shù)的向量執(zhí)行單元;
[0043]圖5顯示了具有本地隊列的向量執(zhí)行單元;
[0044]圖6顯示了根據(jù)本發(fā)明總體實施例的具有本地隊列的向量執(zhí)行單元;
[0045]圖7顯示了根據(jù)本發(fā)明的本地隊列。
【具體實施方式】
[0046]圖1為根據(jù)本發(fā)明的實施例的基帶處理器PBBP500的框圖。PBBP500包括處理器內(nèi)核,其包括RISC類型的執(zhí)行單元,并用RISC數(shù)據(jù)通路510表示。PBBP還具有多個向量執(zhí)行單元520,530,各個單元分別包括向量控制單元275和SMD數(shù)據(jù)通路525,535。如本領(lǐng)域常見的,各條數(shù)據(jù)通路525,535可包括若干數(shù)據(jù)通路。例如,數(shù)據(jù)通路535通??删哂兴臈l并行的CMAC數(shù)據(jù)通路,它們共同構(gòu)成數(shù)據(jù)通路525。
[0047]為了對多個向量執(zhí)行單元進(jìn)行控制,內(nèi)核硬件500包括耦合至程序計數(shù)器502的程序流控制單元501,該程序計數(shù)器502又耦合至程序存儲器(PM)503。PM503耦合至復(fù)用器504、單元字段提取器508。復(fù)用器504耦合至指令寄存器505,其耦合至指令解碼器506。指令解碼器506進(jìn)一步耦合至控制信號寄存器(CSR)507,其又耦合至RISC數(shù)據(jù)通路510的剩余部分。
[0048]類似地,向量執(zhí)行單元520和530中的每一個還設(shè)置為用以接收來自位于內(nèi)核中的程序存儲器503的指令。向量執(zhí)行單元包括各自的向量長度寄存器521,531、指令寄存器522,532、指令解碼器523,533以及CSR524,534,它們耦合至各自的數(shù)據(jù)通路525和535。以下結(jié)合圖3將會更詳細(xì)地就與本發(fā)明相關(guān)的方面說明這些單元及其功能。
[0049]圖2為現(xiàn)有技術(shù)中處理從程序存儲器到不同向量執(zhí)行單元的指令的示例,用以說明本發(fā)明的基本問題。圖2左列表示時間(單位為執(zhí)行時鐘周期)。其余列從左向右依次表示第一和第二向量執(zhí)行單元(更確切地說是CMAC203和CALU205的數(shù)據(jù)通路)和整數(shù)執(zhí)行單元的執(zhí)行管線以及發(fā)到此處的指令。更具體地說,在第一時鐘周期內(nèi),復(fù)向量指令(如CMAC256)被發(fā)到CMAC203。如圖所示,向量指令需要多個周期來完成。在下一時鐘周期里,向量指令被發(fā)到CALU205。在下一時鐘周期里,整數(shù)指令被發(fā)到整數(shù)執(zhí)行單元510。在隨后的幾個周期內(nèi),當(dāng)執(zhí)行向量指令時,可將任意數(shù)量的整數(shù)指令發(fā)到整數(shù)執(zhí)行單元510。要注意的是,盡管圖中未示出,其余向量執(zhí)行單元也可以相似的方式同時執(zhí)行指令。
[0050]在某些情況下,“空閑(idle)”指令可包括在指令序列中,以阻止內(nèi)核程序流控制器從程序存儲器提取指令。例如,為了使程序流與向量指令的完成同步,“空閑”指令可用于將指令的提取掛起直到特定條件已滿足為止。該條件通常是涉及的向量執(zhí)行單元已執(zhí)行完在先的向量指令并能接收新的指令。在此情況下,涉及的向量執(zhí)行單元520,530的向量控制器275向程序流控制器501發(fā)送諸如標(biāo)志的指示,表示該向量執(zhí)行單元準(zhǔn)備好接收另一指令。
[0051]空閑指令可在同一時刻用于多個向量執(zhí)行單元。在此情況下,不再從程序存儲器503發(fā)送進(jìn)一步的指令,直到涉及的向量執(zhí)行單元520,530中的每一個單元已發(fā)送了指示其準(zhǔn)備好接收新指令的標(biāo)志為止。
[0052]在圖2的示例中,“空閑”指令在上述整數(shù)指令之后發(fā)出。在本示例中,空閑指令用于中止控制流直到由CMAC203執(zhí)行的向量操作完成為止。
[0053]接下來將基于具有任意數(shù)量的執(zhí)行單元的SIMT DSP來討論隨后的示例。為簡單起見,本示例中假設(shè)全部單元為CMAC向量執(zhí)行單元,但實際上不同類型的單元可混合并一起使用。
[0054]在許多基帶處理算法和程序中,算法可分解為若干DSP任務(wù),分別包括“前言(Prolog)”、向量操作和“結(jié)語(epilog)”。前言主要用于在向量操作可執(zhí)行之前清空累加器、設(shè)定尋址模式和指針以及類似操作。當(dāng)向量操作已完成時,向量操作的結(jié)果可進(jìn)一步由任務(wù)中“結(jié)語”部分的代碼處理。在SMT處理器中,通常只需要一條向量指令來完成向量操作。
[0055]以下通過根據(jù)現(xiàn)有技術(shù)的示例性任務(wù)來舉例說明一個DSP任務(wù)的典型布局:
[0056]本示例中的代碼片段執(zhí)行超過512個復(fù)數(shù)數(shù)值的復(fù)數(shù)點積運算,然后再次將結(jié)果
存儲到存儲器中。該例程要求由處理器內(nèi)核提取如下指令。
[0057]
【權(quán)利要求】
1.一種用于數(shù)字信號處理器的向量執(zhí)行單元(520,530),所述向量執(zhí)行單元設(shè)置為用以執(zhí)行包括針對向量形式的多數(shù)據(jù)進(jìn)行操作的向量指令的指令,所述向量執(zhí)行單元包括向量控制器(275,720),其設(shè)置為用以判斷指令是否為向量指令,若是,通知用以保存該向量長度的計數(shù)寄存器(531),所述向量控制器(275,720)進(jìn)一步設(shè)置并控制指令的執(zhí)行,其中,所述向量執(zhí)行單元包括 -設(shè)置為用以接收來自程序存儲器的至少第一指令和第二指令的本地隊列(730),并在本地隊列中保存第二指令直到預(yù)定條件滿足為止 -所述本地隊列(730)設(shè)置為用以同時從程序存儲器接收指令序列,并存儲最后的N條指令,N為整數(shù), -其中,所述向量控制器(275,720 )包括設(shè)置為用以按照將存儲在本地隊列(730 )中的M條指令的序列重復(fù)K次的方式控制所述本地隊列的隊列控制裝置(732,721,744),其中,M為小于等于N的整數(shù)。
2.根據(jù)權(quán)利要求1所述的向量執(zhí)行單元,其中,所述向量控制單元(275,720)設(shè)置為用以接收發(fā)出信號并基于此 發(fā)出信號控制指令的執(zhí)行。
3.根據(jù)權(quán)利要求1或2所述的向量執(zhí)行單元,其中,所述隊列控制裝置包括 -緩沖管理器(744),其設(shè)置為用以記錄要重復(fù)的M條指令,以及指令應(yīng)當(dāng)重復(fù)的次數(shù)K,其中M和K為整數(shù); -重復(fù)控制裝置(746),其設(shè)置為用以監(jiān)測指令序列的重復(fù)執(zhí)行,以判斷指令的重復(fù)何時應(yīng)當(dāng)停止; -指令計數(shù)寄存器(748),其設(shè)置為用以保存要重復(fù)的指令數(shù)M及其在隊列(901)中的位置。
4.根據(jù)權(quán)利要求3所述的向量執(zhí)行單元,其中,所述緩沖管理器(744)設(shè)置為用以從控制寄存器文件中獲取整數(shù)K。
5.根據(jù)權(quán)利要求3所述的向量執(zhí)行單元,其中,所述緩沖管理器(744)設(shè)置為用以從指令字中獲取整數(shù)K。
6.根據(jù)權(quán)利要求3-5中任一項所述的向量執(zhí)行單元,其中,所述重復(fù)控制裝置為設(shè)置用以記錄K次重復(fù)的計數(shù)器。
7.一種數(shù)字信號處理器,包括: -處理器內(nèi)核(500),其包括配置為執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元(510);以及 -與處理器內(nèi)核分開并與之I禹合的至少第一和第二向量執(zhí)行單兀(520,530),其中,每一向量執(zhí)行單元為如上述任一項權(quán)利要求所述的向量執(zhí)行單元; 所述數(shù)字信號處理器包括程序存儲器(503 )和發(fā)出邏輯(705 ),其中,程序存儲器配置為用以保存用于第一和第二向量執(zhí)行單元的指令,發(fā)出邏輯用于向所述第一和第二向量執(zhí)行單元(520,530)發(fā)出包括向量指令的指令。
8.根據(jù)權(quán)利要求7所述的數(shù)字信號處理器,其中,所述程序存儲器(503)還設(shè)置為用以為所述整數(shù)執(zhí)行單元(510)保存指令。
9.根據(jù)權(quán)利要求7或8所述的數(shù)字信號處理器,其中,所述程序存儲器(503)設(shè)置在所述處理器內(nèi)核(500)中。
10.一種適用于多模有線和無線通信的基帶通信設(shè)備,包括-配置為發(fā)送和/或接收通信信號的前端單元; -耦合至所述模擬前端單元的可編程數(shù)字信號處理器,其中所述可編程數(shù)字信號處理器為如權(quán)利要求1-6中任一項所述的數(shù)字信號處理器。
11.根據(jù)權(quán)利要求10所述的基帶通信設(shè)備,其中,所述前端單元為模擬前端單元,其設(shè)置為用以發(fā)送和/或接收射頻或基帶信號。
12.根據(jù)權(quán)利要求11所述的基帶通信設(shè)備,其中,所述基帶通信設(shè)備設(shè)置為用以用于在蜂窩通信網(wǎng)絡(luò)中的通信。
13.根據(jù)權(quán)利要求10所述的基帶通信設(shè)備,其中,所述基帶通信設(shè)備為電視接收器。
14.根據(jù)權(quán)利要求10所述的基帶通信設(shè)備,其中,所述基帶通信設(shè)備為線纜調(diào)制解調(diào)器。`
【文檔編號】G06F9/38GK103890719SQ201280051536
【公開日】2014年6月25日 申請日期:2012年9月17日 優(yōu)先權(quán)日:2011年10月18日
【發(fā)明者】安德斯·尼爾森 申請人:聯(lián)發(fā)科技瑞典有限公司