數(shù)字信號處理器及基帶通信設備的制作方法
【專利摘要】為了提高效率,數(shù)字信號處理器(200)包括向量執(zhí)行單元(203,205),其設置為用以執(zhí)行要對向量形式的多個數(shù)據(jù)進行操作的指令,所述向量執(zhí)行單元包括向量控制器(720),其設置為用以判斷指令是否為向量指令,若是,則通知設置為用以保存向量長度的計數(shù)寄存器(732),所述向量控制器進一步設置為用以接收發(fā)出信號并基于該發(fā)出信號控制指令的執(zhí)行,所述向量執(zhí)行單元的特征在于,其包括本地隊列(730),其中本地隊列設置為用以從程序存儲器接收指令并在本地隊列中保存該指令,直到滿足預定條件為止;向量控制器包括設置為用以控制所述本地隊列的隊列控制裝置(732,721)。
【專利說明】數(shù)字信號處理器及基帶通信設備
【技術領域】
[0001]本發(fā)明涉及基于SMT的數(shù)字信號處理器。
【背景技術】
[0002]多數(shù)移動通信設備使用包括一個或多個數(shù)字處理器(DSP)的射頻收發(fā)器。
[0003]目前,為了提高性能和可靠性,多數(shù)移動終端使用一種稱為基帶處理器(BBP)的DSP,其用于執(zhí)行與處理接收的無線電信號和準備用于發(fā)射的信號相關的多種信號處理功能。有利的是將這些功能與主處理器分開,因為這種功能具有高度的定時依賴性,并且可能需要實時操作系統(tǒng)。所希望地是,這種基帶處理器要盡可能的靈活以適應不斷發(fā)展的標準并使硬件能重復使用?;诖耍验_發(fā)了可編程基帶處理器PBBP。
[0004]這種處理器中頻繁執(zhí)行的多數(shù)功能是針對大量采樣數(shù)據(jù)而完成的。因此,采用一種稱為單指令多數(shù)據(jù)流(Single Instruction Multiple Data, SIMD)處理器的處理器,因為它可以實現(xiàn)單個指令操作多個數(shù)據(jù)項,而不是一次操作一個數(shù)據(jù)項。
[0005]作為SIMD架構的進一步改進,已經(jīng)開發(fā)出單指令流多任務流(SingleInstruction Multiple Tasks, SIMT)架構。通常,SIMT架構中已具有與作為內(nèi)核處理器一部分的整數(shù)執(zhí)行單元相關的一個或兩個SIMD類向量執(zhí)行單元。
[0006]國際專利申請W02007/018467公開了一種根據(jù)SMT架構的DSP,其具有包括整數(shù)處理器和程序存儲器的處理器內(nèi)核,以及與內(nèi)核連接但未集成在內(nèi)核中的兩個向量執(zhí)行單元。該向量執(zhí)行單元可以為復雜算法邏輯單元(Complex Arithmetic Logic Units, CALU)或復雜乘法累加單元(CMAC,Complex Multiply-Accumulate Units)。該內(nèi)核具有向執(zhí)行單元分配指令的程序存儲器。在WO 2007/018467專利文獻中,每一向量執(zhí)行單元具有單獨的指令解碼器。這可以有效地方式實現(xiàn)向量執(zhí)行單元的使用在彼此之間獨立,以及與處理器的其他部分之間獨立。
[0007]用于SMT處理器的指令集架構通??砂ㄈ惢旌现噶睢?br>
[0008]-RISC指令,其操作16位整數(shù)操作數(shù)。RISC指令類包括大多數(shù)面向控制的指令,并可在處理器內(nèi)核的整數(shù)執(zhí)行單元中執(zhí)行。
[0009]-DSP指令,其處理具有實部和虛部的復值數(shù)據(jù)。該DSP指令可在一個或多個SMD集群上執(zhí)行。
[0010]-向量指令。向量指令可視為DSP指令的擴展,因為其操作大數(shù)據(jù)集并使用先進的尋址模式和向量支持。
[0011]因此,SIMT架構在提供任務級和SMD向量計算的性能的同時還具有足夠的RISC控制靈活性。
[0012]因此,在SMT架構中具有若干執(zhí)行單元。通常每個時鐘周期里,可由程序存儲器向執(zhí)行單元中的一個單元發(fā)出一條指令。由于向量運算通常處理大向量,因此,在一個時鐘周期里一個向量執(zhí)行單元中接收的指令將要花費數(shù)個時鐘周期來進行處理。因此,在隨后的時鐘周期里,可向處理器的其他計算單元發(fā)出指令。由于向量指令運行在長向量上,因此許多RISC指令可與向量操作同時執(zhí)行。
[0013]多種基帶算法可分解為更小的基帶任務鏈,其中在任務之間幾乎沒有后向依賴性。該屬性不僅容許在向量執(zhí)行單元上并行執(zhí)行不同任務,它也可通過使用上述指令集架構而加以利用。
[0014]為提供控制流同步并控制該數(shù)據(jù)流,“空”指令通??捎糜谥兄箍刂屏髦钡浇o定的向量操作完成?!翱铡敝噶顚⒅兄惯M一步的指令提取直到滿足特定條件。該條件可以是向量執(zhí)行單元中的向量指令的完成。
[0015]DSP任務通常包括具有一至十條指令的序列,下文將對其進行更詳細地討論。這表明向量執(zhí)行單元將接收向量指令來進行運算,并在提供的數(shù)據(jù)向量上執(zhí)行該向量指令直到整個向量完成為止。下一條指令將是處理該結果并將其存儲在存儲器中,理論上這可在對整個向量執(zhí)行計算后隨即發(fā)生。然而,向量執(zhí)行單元通常得等待幾個時鐘周期才能得到它的下一條指令,因為處理器內(nèi)核忙于等待其他向量單元完成操作,這導致向量執(zhí)行單元的低效利用。隨著系統(tǒng)中向量執(zhí)行單元數(shù)量的增長,向量執(zhí)行單元處于非活動狀態(tài)的可能性增大。
【發(fā)明內(nèi)容】
[0016]本發(fā)明的目的在于使SMT架構中的向量指令的處理更有效率。
[0017]根據(jù)本發(fā)明通過在數(shù)字信號處理器中使用向量執(zhí)行單元來實現(xiàn)所述發(fā)明目的,所述向量執(zhí)行單元設置為用以執(zhí)行包括針對向量形式的多數(shù)據(jù)進行操作的向量指令的指令,其中,向量執(zhí)行單元包括向量控制器,其設置為用以判斷指令是否為向量指令,若是,通知用以保存該向量長度的計數(shù)寄存器,所述向量控制器進一步設置為用以控制指令的執(zhí)行,所述向量執(zhí)行單元的特征在于其包括設置為用以接收來自程序存儲器的至少第一指令和第二指令的本地隊列,并在本地隊列中保存第二指令直到預定條件滿足為止,并且該向量控制器包括設置為用以控制本地隊列的隊列控制裝置。
[0018]優(yōu)選的是,向量控制器基于從內(nèi)核接收的發(fā)出信號來控制指令的執(zhí)行。或者,該發(fā)出信號可由向量執(zhí)行單元本身在本地處理。
[0019]由于為各個向量執(zhí)行單元提供本地隊列,因此可同時為向量單元提供針對一個向量單元的包括數(shù)條指令的一批指令。為使本地隊列中的指令與向量指令的執(zhí)行同步,提供稱為SYNC指令的指令,其將暫停從本地隊列讀取指令直到滿足條件為止,該條件通常為數(shù)據(jù)通路準備好接收并執(zhí)行另一指令。這兩個特征共同使得指令序列能夠即刻發(fā)送到指令執(zhí)行單元,存儲在本地隊列中,并在向量執(zhí)行單元中依序處理,以使得向量執(zhí)行單元一旦完成一條指令就能開始下一條指令。采用這種方式,每一向量執(zhí)行單元可在最少的非活動時間情況下工作。
[0020]由于向量執(zhí)行單元可彼此更加獨立地工作,因此通過增加處理器的并行性,可使根據(jù)本發(fā)明的數(shù)據(jù)處理更有效。本發(fā)明基于如下認知:現(xiàn)有技術中已完成向量指令的向量執(zhí)行單元通常不能立即接收下一指令,因為全部向量執(zhí)行單元從同一隊列(即處理器內(nèi)核中的程序存儲器)中接收其命令。當向量執(zhí)行單元準備好接收新指令而程序存儲器中的第一條命令用于另一處于繁忙狀態(tài)的向量執(zhí)行單元時,上述情況將會發(fā)生。在此情況下,沒有一個向量執(zhí)行單元能接收新命令直到其他向量執(zhí)行單元準備好接收其下一命令為止。[0021 ] 在一優(yōu)選實施例中,向量執(zhí)行單元進一步包括:
[0022]-指令寄存器,設置為用以接收和存儲指令;
[0023]-指令解碼器,設置為用以對存儲在指令寄存器中的指令進行解碼;
[0024]-由指令解碼器控制的多個數(shù)據(jù)通路。
[0025]本地隊列優(yōu)選配置為暫停指令的讀取直到數(shù)據(jù)通路準備好接收并執(zhí)行另一指令。這將優(yōu)化向量指令中的隊列處理,以及該向量執(zhí)行單元所屬的處理器中的指令的整體處理。
[0026]隊列控制裝置優(yōu)選包括設置為用以保存涉及隊列的狀態(tài)信息(例如隊列的排滿程度)的隊列控制器,并控制從本地隊列到向量執(zhí)行單元的指令的發(fā)送以便執(zhí)行。隊列控制器也可設置為用以在新指令發(fā)送到隊列且隊列是排滿的情況下產(chǎn)生錯誤信息。
[0027]隊列控制裝置可設置為用以發(fā)出特定信號,該特定信號命令本地隊列暫停從本地隊列讀取指令直到特定條件例如數(shù)據(jù)通路準備好接收新指令這一條件滿足為止。
[0028]向量控制器優(yōu)選設置為用以使得要發(fā)送至數(shù)字信號處理器的程序流控制單元的信號來指示該單元準備好接收新指令。該信號的發(fā)送可基于從指令解碼器發(fā)送到向量控制器的關于任意給定時刻執(zhí)行的指令的信息。該信號也可基于當前隊列中指令的數(shù)量,例如,隊列中是否還存在用于更多指令的空間。
[0029]本發(fā)明還涉及一種數(shù)字信號處理器,包括:
[0030]-處理器內(nèi)核,包括配置為用以執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元;以及
[0031]-與處理器內(nèi)核分開并與之耦合的至少第一和第二向量執(zhí)行單元,其中,每一向量執(zhí)行單元分別為如上所述的向量執(zhí)行單元;
[0032]-所述數(shù)字信號處理器包括程序存儲器和發(fā)出邏輯,其中,程序存儲器設置為用以保存用于第一和第二向量執(zhí)行單元的指令,發(fā)出邏輯用于向第一和第二向量執(zhí)行單元發(fā)出包括向量指令的指令。
[0033]如上所述,該數(shù)字處理器能夠使其向量執(zhí)行單元實現(xiàn)更多的并發(fā)使用。
[0034]通常,程序存儲器設置在處理器內(nèi)核中,并設置為用以為整數(shù)執(zhí)行單元保存指令。
[0035]本發(fā)明還涉及一種適于多模有線和無線通信的基帶通信設備,包括:
[0036]-前端單元,設置為用以發(fā)送和/或接收通信信號;
[0037]-耦合至模擬前端單元的可編程數(shù)字信號處理器,其中可編程數(shù)字信號處理器為如上所述的數(shù)字信號處理器。
[0038]在優(yōu)選的實施例中,本文通篇提及的向量執(zhí)行單元為SIMD類向量執(zhí)行單元或者為用以操作向量數(shù)據(jù)的可編程協(xié)處理器。
[0039]本地隊列可以為具有期望長度如4至8條指令的先入先出(FIFO)隊列。它也可以為任意其他類型的合適隊列。
[0040]根據(jù)本發(fā)明實施例的處理器對于數(shù)字信號處理器尤其是基帶處理器而言特別有用。前端單元可以為模擬前端單元,其設置為用以發(fā)送和/或接收射頻或基帶信號。
[0041]這種處理器廣泛用于不同類型的通信設備中,例如移動電話、電視接收器和線纜調制解調器。因此,基帶通信設備可設置用于蜂窩通信網(wǎng)絡的通信,例如作為移動電話或者移動數(shù)據(jù)通信設備?;鶐ㄐ旁O備也可設置用于根據(jù)其他無線標準例如藍牙或者WiFi的通信。它也可以為電視接收器、線纜調制解調器、WiFi調制解調器,或者能夠向其處理器發(fā)送基帶信號的任意其他類型的通信設備。應該理解術語“基帶”僅指處理器內(nèi)部處理的信號。實際接收和/或發(fā)送的通信信號可以為在有線或無線連接上接收的任意合適類型的通信信號。這些通信信號通過該設備的前端單元以適當?shù)姆绞睫D換為基帶信號。
【專利附圖】
【附圖說明】
[0042]以下通過舉例并參照附圖對本發(fā)明進行更詳細的說明。
[0043]圖1為包括基帶處理器的典型移動終端的系統(tǒng)概圖;
[0044]圖2顯示了 SIMT架構的示例;
[0045]圖3為根據(jù)本發(fā)明實施例的基帶處理器的框圖;
[0046]圖4為顯示圖2中處理器內(nèi)核的一個實施例的指令發(fā)出管線的示意圖;
[0047]圖5顯示了 SMT處理器內(nèi)的指令發(fā)出邏輯;
[0048]圖6顯示了根據(jù)現(xiàn)有技術的SMT單元;
[0049]圖7顯示了具有本發(fā)明總體實施例的附加特征的SMT單元;
[0050]圖8顯示了根據(jù)本發(fā)明優(yōu)選實施例的SIMT單元;
[0051]圖9顯示了根據(jù)本發(fā)明實施例的本地隊列的工作原理。
【具體實施方式】
[0052]圖1顯示了包括將作為本發(fā)明主題的基帶處理器3的示例性移動終端I。如本領域常見的,終端I包括用于接收和發(fā)射通信信號的裝置。在本示例中,該裝置包括連接到模擬前端單元7上的天線5,該模擬前端單元7包括針對接收方向的模數(shù)轉換器ADC,以及針對發(fā)射方向的數(shù)模轉換器DAC。模擬前端單元7連接到基帶處理器3上。如本領域常見的,基帶處理器3通常包括(但不是必需)前向糾錯(FEC)處理器9,以實現(xiàn)諸如交織、維特比解碼等糾錯功能?;鶐幚砥?通常又連接到MAC單元11上,而該MAC單元11又連接到應用處理器13上。
[0053]終端I通常具有(但不必需)將基帶處理器、MAC單元11和應用處理器13進行互連的總線和存儲子系統(tǒng)15。該終端還包括用于用戶輸入/輸出的外圍接口 17,通常包括鍵盤、攝像頭接口以及用于連接到其他單元的接口如USB接口。
[0054]如本領域技術人員將會理解的,所述模擬前端可設置為用以處理包括射頻信號、基帶信號以及其他信號的任意類型的輸入和輸出信號,并向基帶處理器3提供基帶信號。
[0055]圖2顯示了根據(jù)SMT架構的基帶處理器200的示例。處理器200包括控制器內(nèi)核201、第一向量執(zhí)行單元203以及第二向量執(zhí)行單元205,以下將對其詳細討論。如圖1中描述的FEC單元206連接至片上網(wǎng)絡。當然,在具體實現(xiàn)中FEC單元206可包括幾個不同的單元。
[0056]主機接口單元207提供到圖1所示的主機處理器的連接(圖2未示出)。如果MAC處理器按圖1所示那樣提供,那么將該MAC處理器連接在主機接口單元207與主機處理器之間。數(shù)字前端單元209以現(xiàn)有技術公知的方式提供到圖1所示的ADC/DAC單元的連接。
[0057]如本領域常見的,控制器內(nèi)核201包括程序存儲器211以及指令發(fā)出邏輯和多環(huán)境支持功能。針對各個支持的執(zhí)行環(huán)境或者線程,其包括程序計數(shù)器、堆棧指針和寄存器文件(在圖2中未明確示出)。通常支持2-3個線程。[0058]控制器核心201也包括整數(shù)執(zhí)行單元212,該整數(shù)執(zhí)行單元包括寄存器文件RF、內(nèi)核整數(shù)存儲器ICM、乘法器單元MUL以及算術邏輯/移位單元(ALSU, Arithmetic andLogic/Shift Unit)。ALSU也可實現(xiàn)為兩個單兀,算術單兀(Arithmetic Unit)和邏輯移位單元(Logic and Shift Unit)。這些單元是本領域中已知的,因此未在圖2中示出。
[0059]本示例中的第一向量執(zhí)行單元203為CMAC向量執(zhí)行單元,包括向量控制器213、向量載入/存儲單元215以及多個數(shù)據(jù)通路217。第一向量執(zhí)行單元的向量控制器通過發(fā)出邏輯連接至控制器內(nèi)核201的程序存儲器211,以接收與來自程序存儲器的指令相關的發(fā)出信號。如上所述,發(fā)出邏輯對指令字解碼以獲得發(fā)出信號并將該發(fā)出信號做為單獨的信號發(fā)送至向量執(zhí)行單元。也可使向量執(zhí)行單元的向量控制器在本地生成發(fā)出信號。在本示例中,發(fā)出信號是由向量控制器基于指令字以與發(fā)布邏輯中相同的方式而產(chǎn)生的。
[0060]第二向量執(zhí)行單元205為包括向量控制器223、向量載入/存儲單元225以及多個數(shù)據(jù)通路227的CALU向量執(zhí)行單元。第二向量執(zhí)行單元的向量控制器223也通過發(fā)出邏輯連接至控制器內(nèi)核201的程序存儲器211,以接收與來自程序存儲器的指令相關的發(fā)出信號。
[0061]數(shù)據(jù)通路217,227和向量載入/存儲單元215,225的功能將在下文中討論。
[0062]向量執(zhí)行單元可設置為任意數(shù)量,包括僅CMAC單元、僅CALU單元或者適當數(shù)量的各種類型單元。也可具有除了 CALU和CMAC之外的其他類型的向量執(zhí)行單元。如上所述,向量執(zhí)行單元是能夠處理向量指令的處理器,這意味著單個指令完成對多個數(shù)據(jù)單元的同一功能。數(shù)據(jù)可以為復數(shù)或實數(shù),并且其被分組為字節(jié)或字,進而封裝為由向量執(zhí)行單元操作的向量。在本文中,雖然CALU和CMAC用作示例,但應注意的是向量執(zhí)行單元可用于針對數(shù)據(jù)向量完成任合合適的功能。
[0063]為使多個向量操作同時發(fā)生,處理器優(yōu)選具有分布式存儲系統(tǒng),其中存儲器分為多個存儲體,在圖2中表示為第O存儲體230至第N存儲體231。各個存儲體230,231分別具有各自的復數(shù)存儲器232,233,以及地址生成單元AGU234,235。由于可并行進行多地址計算,因此這種設置結合片上網(wǎng)絡提高了存儲系統(tǒng)的功效和處理器的處理容量。圖2中的PBBP也包括一個或多個整數(shù)存儲體238,其包括存儲器239和地址生成單元240。
[0064]如本領域已知的,通??蛇B接若干加速器242,因為其能有效實施諸如信道編碼和交織的某些基帶功能。這種加速器在本領域中是公知的,因此這里不再贅述。加速器是可配置的以根據(jù)多種不同標準重復使用。
[0065]片上網(wǎng)絡244連接控制器內(nèi)核201、數(shù)字前端單元209、主機接口單元207、向量執(zhí)行單元203,205、存儲體230,232、整數(shù)存儲體238和加速器242。
[0066]各個向量執(zhí)行單元203,205包括向量載入/存儲單元215,225,其設置為用作網(wǎng)絡端口和向量執(zhí)行單元的數(shù)據(jù)通路之間的接口。執(zhí)行單元203,205通常通過網(wǎng)絡244連接至存儲體230,231,但是也可支持到其他單元如加速器242和其他向量執(zhí)行單元的連接。載入功能用于從連接到網(wǎng)絡244的其他單元(例如從存儲體)提取數(shù)據(jù),而存儲功能用于通過網(wǎng)絡244將數(shù)據(jù)從執(zhí)行單元203,205存儲到例如存儲單元230,231中。數(shù)據(jù)也可從其他向量執(zhí)行單元獲取,和/或計算結果可轉發(fā)至其他向量執(zhí)行單元以進行進一步處理。各個向量執(zhí)行單元還包括向量控制器213,223,其設置為用以接收來自程序存儲器PM211的指令。向量載入單元215,225可采用兩種不同模式載入數(shù)據(jù)。在第一種模式中,如上所述,可從多個存儲體230,232或其他來源加載多個數(shù)據(jù)項。在另一種模式中,一次可加載一個數(shù)據(jù)項,然后分發(fā)至給定執(zhí)行單元中的SMD數(shù)據(jù)通路。后一模式可在執(zhí)行單元處理連續(xù)數(shù)據(jù)時用于減少訪問存儲器的次數(shù)。
[0067]在圖示的實施例中,如本領域常見的,第二向量執(zhí)行單元205顯示為包括四條獨立的數(shù)據(jù)通路227的四路復雜ALU,每條通路具有復雜短乘法器-累加器(CSMAC,complexshort multiplier-accumulator)。CALU205可執(zhí)行向量指令,在下文中將作更詳細的描述。在一個實施例中,CALU205尤其適于執(zhí)行復向量指令。CALU205的獨立數(shù)據(jù)通路227中的每個通路還可同時執(zhí)行復向量指令。
[0068]第一向量執(zhí)行單元203顯示為具有可同時運行或分別運行的四條復數(shù)據(jù)通路的四路CMAC。四條復數(shù)據(jù)通路包括乘法器、加法器和累加寄存器(圖2中未全部示出)。因此,在本實施例中,CMAC203可稱為四路CMAC數(shù)據(jù)通路。除乘法和加法外,CMAC203還可執(zhí)行取整和比例操作并支持飽和度,如本領域中已知的那樣。
[0069]在一個實施例中,CAMC203操作可劃分為多個管線步驟。另外,四條復數(shù)據(jù)通路217中的各條通路可在一個時鐘周期內(nèi)計算復數(shù)乘法和累加。CMAC203 (即四條數(shù)據(jù)通路一起)可在N/4時鐘周期內(nèi)執(zhí)行N元向量的操作,以支持復向量計算(例如復卷積、共軛復卷積和復向量的點積)。進一步地,CMAC203也可支持對累加器寄存器中存儲的復數(shù)值的操作(例如復數(shù)加法、減法、共軛等)。例如,CMAC203可在一個時鐘周期內(nèi)計算諸如(AR+JAI)*(BR+JBI)的復數(shù)乘法以及在一個時鐘周期內(nèi)計算復數(shù)累加,并支持復向量計算(例如復數(shù)卷積、共軛復數(shù)卷積和復向量的點積)。
[0070]在一個實施例中,針對處理器內(nèi)核201的指令集架構可包括三類復合指令。第一類指令為RISC指令,其對16位整數(shù)操作數(shù)進行操作。RISC指令類包括大多數(shù)面向控制的指令,并且可在處理器內(nèi)核201的整數(shù)執(zhí)行單元212中執(zhí)行。下一類指令為DSP指令,其處理具有實數(shù)部分和虛數(shù)部分的復值數(shù)據(jù)。該DSP指令可在一個或多個向量執(zhí)行單元203,205上執(zhí)行。第三類指令為向量指令。向量指令可認為是DSP指令的擴展,因為其操作大數(shù)據(jù)集并使用先進的尋址模式和向量支持。向量指令可處理復數(shù)或實數(shù)數(shù)據(jù)類型。
[0071]圖3為根據(jù)本發(fā)明的實施例的基帶處理器PBBP200的框圖。PBBP200包括處理器內(nèi)核,其包括RISC類型的執(zhí)行單元,并用RISC數(shù)據(jù)通路510表示。PBBP還具有多個向量執(zhí)行單元520,530,各個單元分別包括向量控制單元275和SMD數(shù)據(jù)通路525,535。如本領域常見的,各條數(shù)據(jù)通路525,535可包括若干數(shù)據(jù)通路。例如,數(shù)據(jù)通路535通??删哂兴臈l并行的CMAC數(shù)據(jù)通路,它們共同構成數(shù)據(jù)通路525。
[0072]為了對多個向量執(zhí)行單元進行控制,內(nèi)核硬件500包括耦合至程序計數(shù)器502的程序流控制單元501,該程序計數(shù)器502又耦合至程序存儲器(PM)503。PM503耦合至復用器504、單元字段提取器508。復用器504耦合至指令寄存器505,其耦合至指令解碼器506。指令解碼器506進一步耦合至控制信號寄存器(CSR)507,其又耦合至RISC數(shù)據(jù)通路510的剩余部分。
[0073]類似的,向量執(zhí)行單元520和530中的每一個還設置為用以接收來自位于內(nèi)核的程序存儲器503的指令。向量執(zhí)行單元包括各自的向量長度寄存器521,531、指令寄存器522,532、指令解碼器523,533以及CSR524,534,它們耦合至各自的數(shù)據(jù)通路525和535。以下結合圖5將會更詳細地就與本發(fā)明相關的方面說明這些單元及其功能。[0074]圖4為現(xiàn)有技術中處理從程序存儲器到不同向量執(zhí)行單元的指令的示例,用以說明本發(fā)明的基本問題。圖4左列表示時間(單位為執(zhí)行時鐘周期)。其余列從左向右依次表示第一和第二向量執(zhí)行單元(更確切地說是CMAC203和CALU205的數(shù)據(jù)通路)和整數(shù)執(zhí)行單元的執(zhí)行管線以及發(fā)到此處的指令。更具體地說,在第一時鐘周期內(nèi),復向量指令(如CMAC256)被發(fā)到CMAC203。如圖所示,向量指令需要多個周期來完成。在下一時鐘周期里,向量指令被發(fā)到CALU205。在下一時鐘周期里,整數(shù)指令被發(fā)到整數(shù)執(zhí)行單元510。在隨后的幾個周期內(nèi),當執(zhí)行向量指令時,可將任意數(shù)量的整數(shù)指令發(fā)到整數(shù)執(zhí)行單元510。要注意的是,盡管圖中未示出,其余向量執(zhí)行單元也可以相似的方式同時執(zhí)行指令。
[0075]在某些情況下,“空閑(idle)”指令可包括在指令序列中,以阻止內(nèi)核程序流控制器從程序存儲器提取指令。例如,為了使程序流與向量指令的完成同步,“空閑”指令可用于將指令的提取掛起直到特定條件已滿足為止。該條件通常是涉及的向量執(zhí)行單元已執(zhí)行完在先的向量指令并能接收新的指令。在此情況下,涉及的向量執(zhí)行單元520,530的向量控制器275向程序流控制器501發(fā)送諸如標志的指示,表示該向量執(zhí)行單元準備好接收另一指令。
[0076]空閑指令可在同一時刻用于多個向量執(zhí)行單元。在此情況下,不再從程序存儲器503發(fā)送進一步的指令,直到涉及的向量執(zhí)行單元520,530中的每一個單元已發(fā)送了指示其準備好接收新指令的標志為止。
[0077]在圖4的示例中,“空閑”指令在上述整數(shù)指令之后發(fā)出。在本示例中,空閑指令用于中止控制流直到由CMAC203執(zhí)行的向量操作完成為止。
[0078]接下來將基于具有任意數(shù)量的執(zhí)行單元的SIMT DSP來討論隨后的示例。為簡單起見,本示例中假設全部單元為CMAC向量執(zhí)行單元,但實際上不同類型的單元可混合并一起使用。
[0079]在許多基帶處理算法和程序中,算法可分解為若干DSP任務,分別包括“前言(Prolog)”、向量操作和“結語(epilog)”。前言主要用于在向量操作可執(zhí)行之前清空累加器、設定尋址模式和指針以及類似操作。當向量操作已完成時,向量操作的結果可進一步由任務中“結語”部分的代碼處理。在SMT處理器中,通常只需要一條向量指令來完成向量操作。
[0080]以下通過根據(jù)現(xiàn)有技術的示例性任務來舉例說明一個DSP任務的典型布局:
[0081]本示例中的代碼片段執(zhí)行超過512個復數(shù)數(shù)值的復數(shù)點積運算,然后再次將結果
存儲到存儲器中。該例程要求由處理器內(nèi)核提取如下指令。
[0082]
【權利要求】
1.一種用于數(shù)字信號處理器(200)的向量執(zhí)行單元(203,205,520,530),所述向量執(zhí)行單元設置為用以執(zhí)行指令,所述指令包括要對向量形式的多個數(shù)據(jù)進行操作的向量指令,所述向量執(zhí)行單元包括向量控制器(720,720’),其設置為用以判斷指令是否為向量指令,若是,通知設置為用以保存向量長度的計數(shù)寄存器(721),所述向量控制器(720,720’)進一步設置為用以控制指令的執(zhí)行, 所述向量執(zhí)行單元的特征在于 -其包括本地隊列(730),所述本地隊列設置為用以從程序存儲器接收至少第一和第二指令,并在本地隊列中保存所述第二指令直到滿足預定條件,以及 -所述向量控制器(720,720’)包括設置為用以控制所述本地隊列的隊列控制裝置(732,721)。
2.根據(jù)權利要求1所述的向量執(zhí)行單元,其中,所述向量執(zhí)行單元進一步設置為用以接收發(fā)出信號并基于所述發(fā)出信號控制指令的執(zhí)行。
3.根據(jù)權利要求1或2所述的向量執(zhí)行單元,其中,所述向量執(zhí)行單元進一步包括 -指令寄存器(722),其設置為用以接收并存儲指令, -指令解碼器(723 ),其設置為用以解碼存儲在指令寄存器中的指令, -由所述指令解碼器控制的多條數(shù)據(jù)通路。
4.根據(jù)上述權利要求中任一項所述的向量執(zhí)行單元,其中,所述本地隊列(730)設置為用以暫停指令的讀取直到所述數(shù)據(jù)通路準備好接收并執(zhí)行另一指令為止。
5.根據(jù)上述權利要求中任一項所述的向量執(zhí)行單元,其中,所述隊列控制裝置(732)包括隊列控制器,其設置為用以保存與隊列相關的如本地隊列(730)的排滿程度的狀態(tài)信息,并用以控制從本地隊列(730)到向量執(zhí)行單元(203,205, 520, 530)的指令的發(fā)送以便執(zhí)行。
6.根據(jù)權利要求5所述的向量執(zhí)行單元,其中,所述隊列控制器設置為,如果新指令發(fā)送至該隊列并且該隊列是排滿的,則生成錯誤信息。
7.根據(jù)權利要求6所述的向量執(zhí)行單元,其中,所述隊列控制裝置(732)設置為用以發(fā)出特定信號,該特定信號指示本地隊列暫停從本地隊列中讀取指令直到滿足條件為止。
8.根據(jù)上述權利要求中任一項所述的向量執(zhí)行單元,其中,所述向量控制器(720,720’)設置為用以產(chǎn)生將要發(fā)送至所述數(shù)字信號處理器的程序流控制器(703)的信號,以指示該單元準備好接收新的指令。
9.根據(jù)上述權利要求中任一項所述的向量執(zhí)行單元,其中,所述指令解碼器(723)設置為用以向所述向量控制器(720,720’)通知任意給定時刻正在執(zhí)行的指令。
10.根據(jù)上述權利要求中任一項所述的向量執(zhí)行單元,其中,本地隊列(730)為先進先出隊列。
11.一種數(shù)字信號處理器(200),其中,包括: -處理器內(nèi)核(201),包括配置為用以執(zhí)行整數(shù)指令的整數(shù)執(zhí)行單元(212);以及 -與處理器內(nèi)核(201)分開并與其連接的至少第一和第二向量執(zhí)行單元(203,205,520,530),其中每個向量執(zhí)行單元(203,205)為根據(jù)以上任一項權利要求所述的向量執(zhí)行單元; -所述數(shù)字信號處理器包括程序存儲器(211)和發(fā)出邏輯,其中,程序存儲器配置為用以保存用于第一和第二向量執(zhí)行單元(203,205)的指令,發(fā)出邏輯用于向所述第一和第二向量執(zhí)行單元發(fā)出包括向量指令的指令。
12.根據(jù)權利要求11所述的數(shù)字信號處理器,其中,所述程序存儲器(211)還設置為用以為所述整數(shù)執(zhí)行單元(212)保存指令。
13.根據(jù)權利要求11或12所述的數(shù)字信號處理器,其中,所述程序存儲器(211)設置在所述處理器內(nèi)核(201)中。
14.一種適用于多模有線和無線通信的基帶通信設備,包括 -配置為發(fā)送和/或接收通信信號的前端單元(7); -耦合至所述模擬前端單元的可編程數(shù)字信號處理器(3),其中所述可編程數(shù)字信號處理器為如權利要求9-12中任一項所述的數(shù)字信號處理器。
15.根據(jù)權利要求14所述的基帶通信設備,其中,前端單元(7)為模擬前端單元,其設置為用以發(fā)送和/或接收射頻或基帶信號。
16.根據(jù)權利要求14或15所述的基帶通信設備,其中,所述基帶通信設備用于如蜂窩通信網(wǎng)絡的無線通信網(wǎng)絡中的通信。
17.根據(jù)權利要求14所述的基帶通信設備,其中,所述基帶通信設備為電視接收器。
18.根據(jù)權利 要求14所述的基帶通信設備,其中,所述基帶通信設備為線纜調制解調器。
【文檔編號】G06F9/30GK103890718SQ201280051515
【公開日】2014年6月25日 申請日期:2012年9月17日 優(yōu)先權日:2011年10月18日
【發(fā)明者】安德斯·尼爾森 申請人:聯(lián)發(fā)科技瑞典有限公司