專利名稱:使指令集結(jié)構(gòu)同時執(zhí)行原始和陰影數(shù)字信號處理子指令的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及處理器的指令集結(jié)構(gòu)(ISA)。更特別的,本發(fā)明涉及用于信號處理集成電路里運算的執(zhí)行的指令集結(jié)構(gòu)。
背景技術(shù):
單一芯片數(shù)字信號處理設(shè)備(DSP)相對地眾所周知。DSP與通用目的微處理器一般區(qū)別在于DSP通過包括用于執(zhí)行數(shù)字的乘法的專用乘法器和累加器(MAC)典型地支持加速算法運算。用于典型的DSP設(shè)備的指令集通常包括用于執(zhí)行新操作數(shù)的乘法以及與在累加寄存器中存儲的前一累加值的加法的MAC指令。MAC指令典型地是現(xiàn)有技術(shù)數(shù)字信號處理器中提供的唯一的指令,其中乘法后面跟隨加法的兩個DSP運算被通過一個指令的執(zhí)行實現(xiàn)。但是,當(dāng)在數(shù)據(jù)上執(zhí)行信號處理功能時經(jīng)常希望以變化的組合執(zhí)行其他DSP運算。
DSP被應(yīng)用的一個領(lǐng)域是在電信系統(tǒng)中。在電信系統(tǒng)中DSP的一個用途是數(shù)字過濾。在這種情況下DSP典型地被用指令編程以便實現(xiàn)數(shù)字或時間域中的某個過濾功能。用于典型的有限脈沖響應(yīng)(FIR)過濾器的數(shù)學(xué)算法看上去象等式Y(jié)n=h0X0+h1X1+h2X2+...+hNXN,其中hn是編號從1到N的固定過濾器系數(shù)并且Xn是數(shù)據(jù)采樣。等式Y(jié)n可以利用軟件程序被估算。但是在有些應(yīng)用中,等式必須被盡可能快地估算。這樣做的一種方式是利用硬件組件如被編程來計算等式Y(jié)n的DSP設(shè)備來執(zhí)行計算。為了進一步加快處理,想要矢量化該等式并且將計算分布在多個DSP中,因此可以更快地獲得最終結(jié)果。多個DSP并行運算來加速計算過程。這樣,各項的乘法被均衡地擴展到DSP的乘法器用于各項的同時計算。各項的加法類似地被均衡地擴展到DSP的加法器用于同時計算。在矢量化處理中,因為組合是結(jié)合的,所以處理項的順序并不重要。如果各項的處理順序被改變,對函數(shù)的矢量化處理中預(yù)計的最終結(jié)果沒有影響。
在典型的微處理器中,MAC操作需要乘法指令和加法指令來執(zhí)行乘法和加法。執(zhí)行這兩個指令需要兩個處理周期。除此之外,為典型的微處理器編寫的程序要求更大的程序存儲器以便存儲執(zhí)行MAC運算必須的額外的指令。在現(xiàn)有技術(shù)DSP設(shè)備中,如果需要執(zhí)行除了MAC DSP指令之外的DSP運算,則該運算要求在程序存儲器中編入單獨的算法指令。與單一的MAC指令相比,現(xiàn)有技術(shù)DSP中這些單獨的算法指令類似地要求增加的程序存儲器空間和處理周期來執(zhí)行運算。當(dāng)執(zhí)行DSP運算時希望減少處理周期數(shù)。還希望減少程序存儲器需求。
DSP通常被在循環(huán)中編程來連續(xù)執(zhí)行包括利用不同的操作數(shù)的MAC指令的加速的算法功能。時常地,多個算法指令被在循環(huán)中編程來在相同的數(shù)據(jù)集上運算。相同的算法指令經(jīng)常利用不同的操作數(shù)在循環(huán)中被反復(fù)執(zhí)行。除此之外,每次一個指令完成時,在取指令周期另一個指令被從在存儲器中存儲的程序中取出。在指令執(zhí)行發(fā)生之前,取指令周期要求一個或更多周期時間來訪問存儲器。因為在取指令周期電路改變了狀態(tài),能量被消耗并且因此想要減少取指令周期的數(shù)量。典型的,在循環(huán)的建立和清除運算中大約百分之二十的能量消耗可以被利用以便執(zhí)行DSP指令。典型的,其中數(shù)據(jù)的信號處理被執(zhí)行的循環(huán)執(zhí)行消耗大約百分之八十的能量消耗,其中很大一部分是因為取指令。除此之外,因為DSP設(shè)備處理的數(shù)據(jù)集通常很大,所以還要求通過避免頻繁地向存儲器中取指令來加速指令執(zhí)行。
除此之外,電話系統(tǒng)上服務(wù)的質(zhì)量通常與信號的處理速度相關(guān)。當(dāng)DSP要提供語音處理如語音壓縮、語音解壓縮以及多信道回音消除時,尤其是這樣。最近,因為以分組形式發(fā)送與數(shù)據(jù)聚合的語音用于在分組網(wǎng)上通信的要求,處理速度變得更重要。處理分組語音信號中的延遲易于導(dǎo)致接收端信號指令的下降。
想要提供語音和數(shù)據(jù)信號改進的處理來增強分組網(wǎng)上語音和數(shù)據(jù)通信的質(zhì)量。想要改善當(dāng)執(zhí)行信號處理功能時利用計算資源的效率。
發(fā)明內(nèi)容
簡要的,本發(fā)明包括如權(quán)利要求書中所述的設(shè)備、方法、指令集結(jié)構(gòu)以及系統(tǒng)。在通信系統(tǒng)的網(wǎng)關(guān)中提供了具有本發(fā)明的指令集結(jié)構(gòu)的多個應(yīng)用專用信號處理器(ASSP)以便在分組網(wǎng)上提供改善的語音和數(shù)據(jù)通信。每個ASSP包括一個串行接口、緩存以及多個核心處理器,每個同時處理語音或數(shù)據(jù)的多個信道。每個核心處理器優(yōu)選地包括至少一個精簡指令集計算機(RISC)處理器以及多個信號處理單元(SP)。每個SP包括多個算法塊來同時處理多個語音和數(shù)據(jù)通信信號采樣用于在IP、ATM、幀中繼或其他分組網(wǎng)上通信。多個信號處理單元可以并行地執(zhí)行數(shù)字信號處理算法。每個ASSP是靈活的并且簡單地通過改變控制由ASSP執(zhí)行的命令的軟件程序,可以被編程來執(zhí)行許多網(wǎng)絡(luò)功能或包括電信系統(tǒng)(如CODEC)特別是分組電信網(wǎng)中語音和數(shù)據(jù)壓縮/解壓縮的數(shù)據(jù)/語音處理功能。
ASSP的一個指令集結(jié)構(gòu)適合于包括如壓縮/解壓縮和回聲消除的音頻和語音處理的數(shù)字信號處理應(yīng)用。通過ASSP實現(xiàn)的指令集結(jié)構(gòu)適合于DSP算法結(jié)構(gòu)。本發(fā)明的ISA對DSP算法結(jié)構(gòu)的這種適應(yīng)平衡了易于實現(xiàn)、處理效率以及DSP算法的可編程性。指令集結(jié)構(gòu)可以被看作為兩個組件部分,一個(RISC ISA)對應(yīng)于RISC控制單元并且另一個(DSP ISA)對應(yīng)于信號處理單元的DSP數(shù)據(jù)路徑。RISC ISA是在寄存器文件中包括16寄存器的基于寄存器的結(jié)構(gòu),而DSP ISA是具有有效數(shù)字信號處理指令的基于存儲器的結(jié)構(gòu)。
ASSP的指令字可以是20位,或者可以被擴展到40位。40位指令字可被用于控制兩個指令串行或并行地執(zhí)行,如兩個RISC控制指令、擴展DSP指令或者兩個20位DSP指令。ASSP的指令集結(jié)構(gòu)有五種不同的指令類型來優(yōu)化DSP運算混合。有(1)使用控制寄存器(也就是模式寄存器)中的模式位的20位DSP指令,(2)具有可以取代模式寄存器的控制擴展的40位DSP指令,(3)20位二元DSP指令,(4)通過提供強大的位處理擴展20位二元DSP指令的功能的40位DSP指令,以及(5)包括一對20位二元子指令的單一40位DSP指令根據(jù)本發(fā)明的一個實施方案同時被執(zhí)行的原始DSP子指令和陰影(shadow)DSP子指令。
這些指令是用于加速該類型的核心處理器里的計算,其中D=[(Aop1 B)op2 C]并且每個“op1”和“op2”可以是三個操作數(shù)A、B、C上的乘、加、極值(最小/最大)或者其他基本的DSP運算類。加速這些計算的ASSP的ISA允許操作的不同組合的有效鏈接。
ASSP的指令集結(jié)構(gòu)的所有DSP指令是在一個周期處理能力里執(zhí)行一個指令中的兩個運算的二元DSP指令。二元DSP指令是在一個指令中兩個基本的DSP運算的組合并且包括主要DSP運算(MAIN OP)以及子DSP運算(SUB OP)。一般的,本發(fā)明的指令集結(jié)構(gòu)可被概括為組合任何一對基本的DSP運算以便提供非常強大的二元指令組合。優(yōu)選實施方案中的DSP算法指令或運算包括乘法指令(MULT)、加法指令(ADD)、也被稱為極值指令的最小/最大指令(MIN/MAX),以及空操作指令(NOP),每個有相關(guān)的運算代碼(“opcode”)。
本發(fā)明利用專用信號處理器的指令集結(jié)構(gòu)以及硬件結(jié)構(gòu)來有效地執(zhí)行這些二元DSP指令。例如,DSP指令可以利用單一指令自動處理矢量數(shù)據(jù)或標量數(shù)據(jù)并且提供合適的矢量或標量輸出結(jié)果。
在本發(fā)明的一個實施方案中,單一DSP指令包括一對子指令原始DSP子指令以及陰影DSP子指令。原始和陰影DSP子指令都是在一個指令周期中執(zhí)行兩個運算的二元DSP指令。這些DSP運算包括上述的MULT(乘)、ADD(加)MIN/MAX和NOP運算。
根據(jù)一個實施方案,每個核心處理器有多個信號處理單元(SP)。每個SP包括一個原始階段來基于當(dāng)前數(shù)據(jù)執(zhí)行原始DSP子指令以及一個陰影階段來同時基于本地存儲在每個SP的延遲數(shù)據(jù)寄存器中的延遲的數(shù)據(jù)來執(zhí)行陰影DSP子指令。每個SP包括耦合到其自己相關(guān)SP的延遲數(shù)據(jù)寄存器的陰影選擇器??刂七壿嫳焕脕砜刂泼總€SP的陰影選擇器來從延遲的數(shù)據(jù)寄存器中選擇(由陰影DSP子指令規(guī)定的)延遲的數(shù)據(jù)由SP的陰影階段使用。
這樣,本發(fā)明通過同時執(zhí)行單一DSP指令中的原始DSP子指令(基于當(dāng)前數(shù)據(jù))和陰影DSP子指令(基于延遲的本地存儲數(shù)據(jù)),因此在不增加存儲器帶寬的情況下在每個SP的每個單一指令周期執(zhí)行四個運算,有效地執(zhí)行了DSP指令。
圖1A是利用本發(fā)明的系統(tǒng)的框圖。
圖1B是在圖1A的系統(tǒng)的網(wǎng)關(guān)中利用本發(fā)明的印刷電路板的框圖。
圖2是根據(jù)本發(fā)明的一個實施方案的專用信號處理器(ASSP)的框圖。
圖3是根據(jù)本發(fā)明的一個實施方案ASSP里的核心處理器之一的實例的框圖。
圖4是在圖3的核心處理器中的RISC處理單元的框圖。
圖5A是根據(jù)本發(fā)明的一個實施方案圖3的核心處理器里的信號處理單元(SP)的實例的框圖。
圖5B是根據(jù)本發(fā)明的一個實施方案說明信號處理單元的總線結(jié)構(gòu)的圖5A的更詳細的框圖。
圖6A是根據(jù)本發(fā)明的一個實施方案說明用于采用指令集結(jié)構(gòu)(ISA)的DSP算法的程序模型的示例指令序列。
圖6B是根據(jù)本發(fā)明的一個實施方案指定ISA的不同類型的二元DSP指令的一對比特的圖表。
圖6C根據(jù)本發(fā)明的一個實施方案,列出了一組尋址指令,并且特別顯示了用于ISA的六位操作數(shù)指定符。
圖6D顯示根據(jù)本發(fā)明的一個實施方案的示例存儲器地址寄存器。
圖6E顯示根據(jù)本發(fā)明的一個實施方案由陰影DSP子指令使用的操作數(shù)的示例3位指定符。
圖6F說明根據(jù)本發(fā)明的一個實施方案的示例5位操作數(shù)指定符。
圖6G是根據(jù)本發(fā)明的一個實施方案說明二元DSP指令的置換的圖表。
圖6H和6I根據(jù)本發(fā)明的一個實施方案顯示示例20位非擴展DSP指令和40位擴展DSP指令的位圖語法,并且特別顯示單一40位擴展陰影DSP指令的20位陰影DSP子指令。
圖6J說明根據(jù)本發(fā)明的一個實施方案ISA的額外的控制指令。
圖6K列出根據(jù)本發(fā)明的一個實施方案ISA的一組擴展的控制指令。
圖6L列出根據(jù)本發(fā)明的一個實施方案ISA的一組40位DSP指令。
圖7是說明根據(jù)本發(fā)明的一個實施方案實現(xiàn)陰影DSP指令的結(jié)構(gòu)的框圖。
圖8A說明根據(jù)本發(fā)明的一個實施方案在實現(xiàn)陰影DSP指令中使用的延遲的數(shù)據(jù)值x’、x”、y’、y”。
圖8B說明根據(jù)本發(fā)明的一個實施方案在實施有限脈沖響應(yīng)(FIR)過濾器中由信號處理器單元(SP)執(zhí)行的原始階段計算和陰影階段計算。
圖8C說明根據(jù)本發(fā)明的一個實施方案的搬移控制寄存器。
圖9a說明根據(jù)本發(fā)明的一個實施方案的信號處理單元(SP2)的數(shù)據(jù)打字機(typer)和對準器(DTAB)的結(jié)構(gòu),以便從x總線中為原始階段選擇當(dāng)前數(shù)據(jù)以及選擇延遲的數(shù)據(jù)供陰影階段使用。
圖9b說明根據(jù)本發(fā)明的一個實施方案的信號處理單元(SP2)的數(shù)據(jù)打字機和對準器(DTAB)的結(jié)構(gòu),以便從y總線中為原始階段選擇當(dāng)前數(shù)據(jù)以及選擇延遲的數(shù)據(jù)供陰影階段使用。
圖10a-10d根據(jù)本發(fā)明的一個實施方案分別說明每個信號處理單元(SP0、SP1、SP2和SP3)的每個DTAB的每個陰影多路復(fù)用器的結(jié)構(gòu)。
圖11是根據(jù)本發(fā)明的一個實施方案說明用于配置信號處理單元的塊的指令解碼的框圖。
附圖中相同的參考數(shù)字和名稱指示提供類似功能的元件。參考指示符數(shù)字后面的字母表示具有該參考指示符數(shù)字的元件的一個實例。
具體實施例方式
在本發(fā)明下面的詳細描述中,提出許多特定細節(jié)以便提供對本發(fā)明的徹底理解。但是,對于本領(lǐng)域的技術(shù)人員很顯然本發(fā)明可以在沒有這些特定細節(jié)的情況下實行。在其他實例中眾所周知的方法、過程、組件和電路沒有被詳細描述以便不使得不必要地使本發(fā)明的方面變得模糊。而且,本發(fā)明將在特定實施方案中被描述但是可在硬件、軟件、固件或者其組合中實現(xiàn)。
在通信系統(tǒng)網(wǎng)關(guān)中提供了具有本發(fā)明的指令集結(jié)構(gòu)的多個專用信號處理器(ASSP)來在分組網(wǎng)上提供改善的語音和數(shù)據(jù)通信。每個ASSP包括串口、緩存和多個核心處理器,以便同時處理多個語音或數(shù)據(jù)信道。每個核心處理器優(yōu)選的包括至少一個精簡指令集計算機(RISC)處理器以及多個信號處理單元(SP)。每個SP包括多個算法塊來同時處理多個語音和數(shù)據(jù)通信信號采樣用于在IP、ATM、幀中繼或其他分組網(wǎng)上通信。多個信號處理單元可以并行執(zhí)行數(shù)字信號處理算法。每個ASSP是靈活的并且簡單地通過改變控制ASSP執(zhí)行的命令的軟件程序可以被編程來執(zhí)行許多網(wǎng)絡(luò)功能或者數(shù)據(jù)/語音處理功能,包括電信系統(tǒng)(如CODEC),特別是分組電信網(wǎng)中的語音和數(shù)據(jù)壓縮/解壓縮。
ASSP的指令集結(jié)構(gòu)適合于包括如壓縮/解壓縮和回聲消除的音頻和語音處理的數(shù)字信號處理應(yīng)用。利用ASSP實現(xiàn)的指令集結(jié)構(gòu)適合于DSP算法結(jié)構(gòu)。本發(fā)明的ISA對DSP算法結(jié)構(gòu)的這種適應(yīng)平衡了易于實現(xiàn)、處理效率以及DSP算法的可編程性。指令集結(jié)構(gòu)可以被看作為兩個組件部分,一個(RISC ISA)對應(yīng)于RISC控制單元并且另一個(DSPISA)對應(yīng)于信號處理單元的DSP數(shù)據(jù)路徑。RISC ISA是在寄存器文件中包括16寄存器的基于寄存器的結(jié)構(gòu),而DSP ISA是具有有效數(shù)字信號處理指令的基于存儲器的結(jié)構(gòu)。
ASSP的指令字可以是20位,或者可以被擴展到40位。40位指令字可被用于控制兩個指令串行或并行地執(zhí)行,如兩個RISC控制指令、擴展DSP指令或者兩個20位DSP指令。ASSP的指令集結(jié)構(gòu)有五種不同的指令類型來優(yōu)化DSP運算混合。有(1)使用控制寄存器(也就是模式寄存器)中的模式位的20位DSP指令,(2)具有可以取代模式寄存器的控制擴展的40位DSP指令,(3)20位二元DSP指令,(4)通過提供強大的位處理擴展20位二元DSP指令的功能的40位DSP指令,以及(5)包括一對20位二元子指令的單一40位擴展陰影DSP指令根據(jù)本發(fā)明的一個實施方案同時被執(zhí)行的原始DSP子指令和陰影DSP子指令。
這些指令是用于加速該類型的核心處理器里的計算,其中D=[(Aop1 B)op2 C]并且每個“op1”和“op2”可以是三個操作數(shù)A、B、C上的乘、加或極值(最小/最大)運算類。加速這些計算的ASSP的ISA允許操作的不同組合的有效鏈接。
ASSP的指令集結(jié)構(gòu)的所有DSP指令是在一個周期處理能力里執(zhí)行一個指令中的兩個運算的二元DSP指令。二元DSP指令是在一個指令中兩個DSP指令或運算的組合并且包括主DSP運算(MAIN OP)以及子DSP運算(SUB OP)。一般的,本發(fā)明的指令集結(jié)構(gòu)可被概括為組合任何一對基本的DSP運算以便提供非常強大的二元指令組合。優(yōu)選實施方案中的DSP算法運算包括乘法指令(MULT)、加法指令(ADD)、也被稱為極值指令的最小/最大指令(MIN/MAX),以及空操作指令(NOP),每個有相關(guān)的運算代碼(“opcode”)。
本發(fā)明利用專用信號處理器的指令集結(jié)構(gòu)以及硬件結(jié)構(gòu)來有效地執(zhí)行這些二元DSP指令。
在本發(fā)明的一個實施方案中,單一擴展陰影DSP指令包括一對子指令原始DSP子指令以及陰影DSP子指令。原始和陰影DSP子指令都是在一個指令周期中執(zhí)行兩個運算的二元DSP指令。這些DSP運算包括上述的MULT(乘)、ADD(加)MIN/MAX和NOP運算。
根據(jù)一個實施方案,每個核心處理器有多個信號處理單元(SP)。每個SP包括一個原始階段來基于當(dāng)前數(shù)據(jù)執(zhí)行原始DSP子指令以及一個陰影階段來同時基于本地存儲在每個SP的延遲數(shù)據(jù)寄存器中的延遲的數(shù)據(jù)執(zhí)行陰影DSP子指令。每個SP包括耦合到其自己相關(guān)SP的延遲數(shù)據(jù)寄存器的陰影選擇器。控制邏輯被利用來控制每個SP的陰影選擇器來從延遲的數(shù)據(jù)寄存器中選擇(由陰影DSP子指令規(guī)定的)延遲數(shù)據(jù)由SP的陰影階段使用。
這樣,本發(fā)明通過同時執(zhí)行利用單一DSP指令的原始DSP子指令(基于當(dāng)前數(shù)據(jù))和陰影DSP子指令(基于延遲的本地存儲數(shù)據(jù)),從而在每個SP的每個單一指令周期執(zhí)行四個運算,有效地執(zhí)行DSP指令。
現(xiàn)在參見圖1A,說明了語音和數(shù)據(jù)通信系統(tǒng)100。系統(tǒng)100包括是分組或分組交換網(wǎng),如IP、ATM或幀中繼的網(wǎng)絡(luò)101。網(wǎng)絡(luò)101允許在系統(tǒng)100的端點之間利用分組進行語音/話音和數(shù)據(jù)通信。數(shù)據(jù)可以是包括音頻、視頻、電子郵件和其他一般數(shù)據(jù)形式的任何類型。在系統(tǒng)100的每一端,當(dāng)通過網(wǎng)絡(luò)101收發(fā)時,語音或數(shù)據(jù)需要分組化。
系統(tǒng)100包括網(wǎng)關(guān)104A和104B以便將接收的信息分組化用于在網(wǎng)絡(luò)101上發(fā)送。網(wǎng)關(guān)是用于連接使用不同協(xié)議的多個網(wǎng)絡(luò)和設(shè)備的設(shè)備。語音和數(shù)據(jù)信息可以從多個不同的源以各種數(shù)字格式提供給網(wǎng)關(guān)104。
在系統(tǒng)100中,模擬語音信號在簡易老式電話系統(tǒng)(POTS)107A上由電話108收發(fā)并且耦合到公共交換電話網(wǎng)(PSTN)的交換機106A中。在交換機106A中,來自POTS 107A的模擬信號被數(shù)字化并且通過時分多路復(fù)用(TDM)被收發(fā)到網(wǎng)關(guān)104A,每個時隙表示一個信道以及到網(wǎng)關(guān)的一個DS0輸入。
在系統(tǒng)100中,數(shù)字語音信號在耦合到多個電話、傳真機或數(shù)據(jù)調(diào)制解調(diào)器的公共分組交換機(PBX)112A和112B處被收發(fā)。數(shù)字語音信號在PBX 112A和PBX 112B之間分別通過網(wǎng)關(guān)104A和104B收發(fā)。數(shù)字數(shù)據(jù)信號還可以在數(shù)字調(diào)制解調(diào)器114和網(wǎng)關(guān)104A之間直接收發(fā)。數(shù)字調(diào)制解調(diào)器114可以是數(shù)字用戶線(DSL)調(diào)制解調(diào)器或者電纜調(diào)制解調(diào)器。
數(shù)據(jù)信號還可以利用移動單元118無線地將數(shù)字信號或模擬信號收發(fā)到基站116來通過無線通信系統(tǒng)耦合到系統(tǒng)100?;?16將模擬信號轉(zhuǎn)換為數(shù)字信號或者直接將數(shù)字信號傳遞到網(wǎng)關(guān)104B。
數(shù)據(jù)可以利用調(diào)制解調(diào)器110在簡易老式電話系統(tǒng)(POTS)107B上利用調(diào)制解調(diào)器信號收發(fā)。在POTS 107B上通信的調(diào)制解調(diào)器信號傳統(tǒng)地實際上是模擬的并且耦合到公共交換電話網(wǎng)(PSTN)的交換機106B。在交換機106B,來自POTS 107B的模擬信號被數(shù)字化并且通過時分多路復(fù)用(TDM)被收發(fā)到網(wǎng)關(guān)104B,每個時隙表示一個信道和到網(wǎng)關(guān)104B的一個DS0輸入。
在網(wǎng)關(guān)104A和104B的每個,進入信號被分組化用于在網(wǎng)絡(luò)101上發(fā)送。由網(wǎng)關(guān)104A和104B從網(wǎng)絡(luò)101接收的信號被去分組化并且轉(zhuǎn)換代碼以便發(fā)送到合適的目的地。
現(xiàn)在參見圖1B,說明了網(wǎng)關(guān)104的網(wǎng)絡(luò)接口卡(NIC)130。NIC 130包括一個或多個專用信號處理器(ASSP)150A-150N。網(wǎng)關(guān)中ASSP的數(shù)量是可擴展的以便處理額外的信道。NIC 130的線路接口設(shè)備131向連接到網(wǎng)關(guān)的各種設(shè)備,包括網(wǎng)絡(luò)101提供接口。在對網(wǎng)絡(luò)101接口中,線路接口設(shè)備將數(shù)據(jù)分組化用于在網(wǎng)絡(luò)101上發(fā)送出去并且將要被ASSP設(shè)備接收的數(shù)據(jù)去除分組化。線路接口設(shè)備131處理由網(wǎng)關(guān)在接收總線134上接收的信息并且將其提供給ASSP設(shè)備。來自ASSP設(shè)備150的信息在發(fā)送總線132上通信用于發(fā)送到網(wǎng)關(guān)之外。NIC 130耦合到網(wǎng)關(guān)104里的網(wǎng)關(guān)底板/網(wǎng)絡(luò)接口總線136。橋邏輯138在總線136和NIC 130之間收發(fā)信息。橋邏輯138將NIC 130和底板/網(wǎng)絡(luò)接口總線136之間的信號收發(fā)到主機總線139上用于通信到ASSP設(shè)備150A-150N的一個或多個、主處理器140或者主機存儲器142。隨意地耦合到一個或多個ASSP設(shè)備150A到150N(一般稱為ASSP 150)的每個分別是可選的本地存儲器145A到145N(一般稱為可選本地存儲器145)。接收總線134和發(fā)送總線132上的數(shù)字數(shù)據(jù)優(yōu)選地以位寬的形式通信。雖然每個ASSP里的內(nèi)部存儲器足夠大到被用做中間結(jié)果暫存器存儲器,如果額外的存儲器空間是必要的,則可選本地存儲器145可由每個ASSP150使用。
每個ASSP 150為網(wǎng)關(guān)提供信號處理功能。因為每個ASSP可執(zhí)行不同的信號處理程序,所以提供的信號處理類型是靈活的。ASSP的典型的信號處理和相關(guān)的語音分組化功能包括(a)回聲消除;(2)視頻、音頻、以及語音/話音壓縮/解壓縮(語音/話音編碼和解碼);(c)延遲處理(分組,幀);(d)損耗處理;(e)連接性(LAN和WAN);(f)保密性(加密/解密);(g)電話接通性;(h)協(xié)議處理(保留和傳輸協(xié)議,用于IP的RSVP、TCP/IP、RTP、UDP、以及用于ATM的AAL2、AAL1、AAL5);(i)過濾;(j)無聲抑制;(k)長度處理(幀、分組);以及與通信系統(tǒng)上語音和數(shù)據(jù)通信相關(guān)的其他數(shù)字信號處理功能。每個ASSP 150可以執(zhí)行其他功能以便在分組網(wǎng)上將分組數(shù)據(jù)流中的語音和數(shù)據(jù)發(fā)送到系統(tǒng)100的不同端點。
現(xiàn)在參見圖2,說明了ASSP 150的框圖。在ASSP 150的中心是四個核心處理器200A-200D。核心處理器200A-200D的每個分別耦合到數(shù)據(jù)存儲器202A-202D和程序存儲器204A-204D。核心處理器200A-200D的每個通過多信道串口206、多信道存儲器移動引擎208、緩存210和數(shù)據(jù)存儲器202A-2021D與外部信道通信。ASSP 150還包括外部存儲器接口212來耦合到外部可選本地存儲器145。ASSP 150包括外部主機接口214用于接口到圖1B的外部主處理器140。在ASSP 150中還包括定時器216、時鐘生成器和鎖相環(huán)218、雜項控制邏輯220以及用于邊界掃描測試的聯(lián)合測試行動組(JTAG)測試接入端口222。ASSP 150還包括微控制器223以便執(zhí)行對于核心處理器200A-200D的處理時序安排以及在ASSP里數(shù)據(jù)移動的協(xié)調(diào),還有中斷控制器224來輔助中斷處理以及ASSP 150的控制。
現(xiàn)在參見圖3,說明了耦合到其相應(yīng)的數(shù)據(jù)存儲器202以及程序存儲器204的核心處理器200的框圖。核心處理器200是核心處理器200A-200D的每個的框圖。數(shù)據(jù)存儲器202和程序存儲器204指數(shù)據(jù)存儲器202A-202D和程序存儲器204A-204D的各自的一個實例。核心處理器200包括四個信號處理單元SP0 300A、SP1 300B、SP2 300C以及SP3 300D。核心處理器200還包括精簡指令集計算機(RISC)控制單元302和管道控制單元304。信號處理單元300A-300D在數(shù)據(jù)上執(zhí)行信號處理任務(wù)而RISC控制單元302和管道控制單元304執(zhí)行與由SP 300A-300D執(zhí)行的信號處理功能相關(guān)的控制任務(wù)。由RISC控制單元302提供的控制在管道層與SP 300A-300D耦合以便生成緊密集成的核心處理器200來保持在一個非常高的水平上利用信號處理單元300。而且,每個信號處理單元300A-300D通過數(shù)據(jù)總線203連接到數(shù)據(jù)存儲器202、到彼此、以及到RSIC 302用于數(shù)據(jù)(例如操作數(shù))交換。
信號處理任務(wù)在信號處理單元300A-300D里的數(shù)據(jù)路徑上被執(zhí)行。DSP算法的特性是它們是在數(shù)據(jù)流上固有的矢量運算,具有最小的臨時位置(數(shù)據(jù)重用)。因此,不使用具有請求頁面調(diào)度的數(shù)據(jù)高速緩存,因為其不能很好地起作用并且會降低操作性能。因此,在沒有發(fā)出多個負載并且將指令存儲在存儲器中的情況下,信號處理單元300A-300D被允許從數(shù)據(jù)存儲器202直接訪問矢量元素(操作數(shù)),帶來非常有效的數(shù)據(jù)處理。因此,具有可以擴展為40位指令字的20位指令字的本發(fā)明的指令集結(jié)構(gòu),通過使ISA適合DSP算法結(jié)構(gòu),比利用256位或更高的指令寬度的VLIW結(jié)構(gòu)獲得了更好的效率。適合的ISA導(dǎo)致可以調(diào)整為更高計算需要的非常緊湊并且低功率的硬件。ASSP可以提供的操作數(shù)的數(shù)據(jù)類型和數(shù)據(jù)大小可以改變。數(shù)據(jù)類型可以是實數(shù)或復(fù)數(shù)、整數(shù)值或分數(shù)值,具有不同大小的多個元素的矢量。在優(yōu)選實施方案中,數(shù)據(jù)大小是64位但是通過正確的指令編碼可以提供更大的數(shù)據(jù)大小。
現(xiàn)在參見圖4,說明了RISC控制單元302的詳細框圖。RISC控制單元302包括數(shù)據(jù)對準器和格式器402、存儲器地址生成器404、三個加法器406A-406C、算法邏輯單元(ALU)408、乘法器410、桶形移位器412、以及寄存器文件413。寄存器文件413指向開始存儲器位置,從此存儲器地址生成器404可以將地址生成到數(shù)據(jù)存儲器202中。RISC控制單元302負責(zé)將地址提供給數(shù)據(jù)存儲器,因此正確的數(shù)據(jù)流被送入信號處理單元300A-300D。RISC控制單元302是寄存具有負載的組織并且存儲指令的寄存器以便將數(shù)據(jù)移入或移出數(shù)據(jù)存儲器202。數(shù)據(jù)存儲器尋址由RISC控制單元執(zhí)行,其利用32位寄存器作為確定地址、修改后偏移、以及類型和排列域的指針。類型域允許各種正常的DSP數(shù)據(jù)被支持作為結(jié)構(gòu)中的“頭等公民“。例如,復(fù)數(shù)類型允許在存儲在存儲器中的復(fù)數(shù)數(shù)據(jù)上直接運算,去掉了許多簿記指令。這在有效地支持數(shù)據(jù)調(diào)制解調(diào)器中的QAM解調(diào)器中非常有用。
現(xiàn)在參見圖5A,說明了信號處理單元300的框圖,其代表SP300A-300D的一個實例。每個信號處理單元300包括數(shù)據(jù)打字機和對準器502、第一乘法器M1 504A、壓縮器506、第一加法器A1 510A、第二加法器A2 510B、累加寄存器512、第三加法器A3 510C、以及第二乘法器M2 504B。加法器510A-510C在結(jié)構(gòu)上是類似的并且一般稱為加法器510。乘法器504A和504B在結(jié)構(gòu)上是類似的并且一般稱為乘法器504。乘法器504A和504B的每個在其輸入階段分別有多路復(fù)用器514A和514B將來自不同總線的不同輸入多路復(fù)用到乘法器中。加法器510A、510B、510C的每個在其輸入階段也分別具有多路復(fù)用器520A、520B、520C將來自不同總線的不同輸入多路復(fù)用到加法器中。這些多路復(fù)用器和其他控制邏輯允許加法器、乘法器和信號處理單元300A-300C中的其他組件通過多路復(fù)用器正確的選擇而被靈活地互連。
在一個實施方案中,信號處理單元300有位于多路復(fù)用器522和累加器512之上的原始階段561,來基于當(dāng)前數(shù)據(jù)執(zhí)行原始DSP子指令以及位于多路復(fù)用器522和累加器512之下的陰影階段562,來基于本地存儲在數(shù)據(jù)打字機和對準器502的延遲數(shù)據(jù)寄存器里的延遲的數(shù)據(jù)同時執(zhí)行陰影DSP子指令。延遲的數(shù)據(jù)寄存器將在后面詳細討論。如前所述,根據(jù)本發(fā)明的一個實施方案的單一40位擴展陰影DSP指令包括20位二元原始DSP子指令和20位二元陰影DSP子指令。
在這個實施方案中,原始階段561的乘法器M1 504A、壓縮器506、加法器A1 510A和加法器A2 510B,以及累加器512,典型地通過數(shù)據(jù)打字機和對準器502直接從外部數(shù)據(jù)總線203接收輸入。陰影階段562的加法器510C和乘法器M2 504B,典型地從數(shù)據(jù)打字機和對準器502的延遲數(shù)據(jù)寄存器或累加器512中接收輸入。
程序存儲器204耦合到包括作為本地循環(huán)高速緩存的指令緩存的管道控制304。優(yōu)選實施方案中的指令緩存能夠保留四個指令,如每個具有20位二元原始子指令和20位二元陰影DSP子指令的四個單一40位擴展陰影DSP指令。管道控制304的指令緩存減少了在程序循環(huán)執(zhí)行期間訪問主機存儲器來取指令所消耗的能量。
現(xiàn)在參見圖5B,說明了信號處理單元300的功能塊和總線結(jié)構(gòu)的更詳細的框圖。因為在每個信號處理單元中提供了結(jié)構(gòu)和功能性,所以二元DSP指令是可能的。特別的,在每個信號處理單元中提供的結(jié)構(gòu)和功能性允許單一40位擴展陰影DSP指令的20位二元原始DSP子指令和20位二元陰影DSP子指令同時被執(zhí)行。
輸出信號通過數(shù)據(jù)打字機和對準器502在Z輸出總線532上被耦合到信號處理器300之外。輸入信號通過數(shù)據(jù)打字機和對準器502在X輸入總線531和Y輸入總線533上被耦合到信號處理器300里。在內(nèi)部,數(shù)據(jù)打字機和對準器502有不同的數(shù)據(jù)總線耦合到原始階段561的乘法器M1 504A、壓縮器506、加法器A1 510A、加法器A2 510B以及累加器寄存器AR 512的每個。數(shù)據(jù)打字機和對準器502還有兩個不同的數(shù)據(jù)總線551和552,每個耦合到陰影階段562的加法器A3 510C和乘法器M2 504B的每個。典型地,數(shù)據(jù)總線551和552將來自數(shù)據(jù)打字機和對準器502的延遲數(shù)據(jù)寄存器的輸入發(fā)送到加法器A3 510C和乘法器M2 504B。而且,輸出數(shù)據(jù)被從累加器寄存器AR 512耦合到數(shù)據(jù)打字機和對準器502。
乘法器M1 504A有總線將其輸出耦合到壓縮器506、加法器A1510A、加法器A2 510B、以及累加寄存器AR 512的輸入。壓縮器506有總線將其輸出耦合到加法器A1 510A和加法器A2 510B的輸入。加法器A1 510A有總線將其輸出耦合到累加寄存器512。加法器A2 510B有總線將其輸出耦合到累加寄存器512。累加寄存器512有總線將其輸出耦合到乘法器M2 504B、加法器A3 510C、以及數(shù)據(jù)打字機和對準器502。加法器A3 510C有總線將其輸出耦合到乘法器M2 504B、累加寄存器512。乘法器M2 504B有總線將其輸出耦合到加法器A3 510C和累加寄存器AR 512的輸入。
指令集結(jié)構(gòu)
ASSP 150的指令集結(jié)構(gòu)適合于包括音頻和語音處理,如壓縮/解壓縮和回聲消除的數(shù)字信號處理應(yīng)用。本質(zhì)上,利用ASSP 150實現(xiàn)的指令集結(jié)構(gòu)適合于DSP算法結(jié)構(gòu)。本發(fā)明的ISA對DSP算法結(jié)構(gòu)的這種適應(yīng)是易于實現(xiàn)、處理效率以及DSP算法的可編程性之間的平衡。本發(fā)明的ISA提供了數(shù)據(jù)移動運算、DSP/算法/邏輯運算、程序控制運算(如功能調(diào)用/返回、無條件/條件跳轉(zhuǎn)和分支)、以及系統(tǒng)運算(如特權(quán)、中斷/陷阱/危險處理以及存儲器管理控制)。
現(xiàn)在參見圖6A,說明了用于采用本發(fā)明的指令集結(jié)構(gòu)的DSP算法程序模型的示例指令序列600。指令序列600有外循環(huán)601和內(nèi)循環(huán)602。因為DSP算法趨于執(zhí)行重復(fù)的計算,所以內(nèi)循環(huán)602中的指令605比其他的更經(jīng)常地被執(zhí)行。指令603典型地是參數(shù)建立代碼以便設(shè)置存儲器指針,提供外循環(huán)601的準備,以及其他2×20控制指令。指令607典型地是上下文保存和功能返回指令或者其他2×20控制指令。指令603和607經(jīng)常被認為是典型地不經(jīng)常執(zhí)行的開銷指令。指令604典型地提供內(nèi)循環(huán)602的建立、通過2×20控制指令的其他控制、雙循環(huán)建立、指針備份的偏移擴展,或者陰影信號處理單元的循環(huán)陰影(例如,陰影階段的功能單元),以便減少外循環(huán)重復(fù)。指令606典型地提供內(nèi)循環(huán)602的拆卸、通過2×20控制指令的其他控制、以及信號處理單元里的數(shù)據(jù)路徑結(jié)果的組合。內(nèi)循環(huán)602里的指令605典型地提供DSP運算的內(nèi)循環(huán)執(zhí)行、在單一指令多數(shù)據(jù)執(zhí)行模式中四個信號處理單元300的控制、操作數(shù)的存儲器訪問、二元DSP運算、以及通過本發(fā)明的ISA的20/40位DSP指令的其他DSP功能性。因為指令605被經(jīng)常重復(fù),所以通過在本發(fā)明的ISA里提供包括一般二元指令和二元DSP指令的DSP指令,運算效率得到顯著改善。
ASSP 150的指令集結(jié)構(gòu)可被看作是兩個組件部分,一個(RISCISA)對應(yīng)于RISC控制單元并且另一個(DSP ISA)對應(yīng)于信號處理單元300的DSP數(shù)據(jù)路徑。RISC ISA是基于寄存器的結(jié)構(gòu),在寄存器文件413中包括十六個寄存器,而DSP ISA是具有有效數(shù)字信號處理指令的基于存儲器的結(jié)構(gòu)。ASSP的指令字典型的是20位但是可以被擴展到40位以便控制兩個RISC或DSP指令來被串行或并行地執(zhí)行,如RISC控制指令被與DSP指令、或者40位擴展RISC或者DSP指令并行執(zhí)行。
ASSP的指令集結(jié)構(gòu)有五種不同類型的指令來優(yōu)化DSP運算混合。有(1)使用控制寄存器(也就是模式寄存器)中的模式位的20位DSP指令,(2)具有可以取代模式寄存器的控制擴展的40位DSP指令,(3)20位二元DSP指令,(4)通過提供強大的位處理擴展20位二元DSP指令的功能的40位DSP指令,以及(5)包括一對20位二元子指令的單一40位擴展陰影DSP指令根據(jù)本發(fā)明的一個實施方案同時被執(zhí)行的原始DSP子指令和陰影DSP子指令。
這些指令是用于加速該類型的核心處理器里的計算,其中D=[(Aop1 B)op2 C],并且每個“op1”和“op2”可以是三個操作數(shù)A、B、C上的乘、加、極值(最小/最大)運算類。加速這些計算的ASSP的ISA允許操作的不同組合的有效鏈接。因為這些運算類型需要三個操作數(shù),所以它們對于處理器必須是可用的。但是,因為設(shè)備大小在總線結(jié)構(gòu)上加有限制,所以帶寬被限制為每個周期兩個矢量讀出和一個矢量寫入數(shù)據(jù)存儲器202。因此操作數(shù)之一,如B或C,需要來自核心處理器200的另一個源。第三個操作數(shù)可以被放入累加器512或者RISC寄存器文件413的寄存器之一。為了在核心處理器200里實現(xiàn)這一點,有兩個20位DSP指令的子類(1)由4位指定符指定的A和B,以及由1位指定符指定的C和D以及(2)由4位指定符指定的A和C,以及由1位指定符指定的B和D。
ASSP的指令總是一次從程序存儲器中取出40位,位39和19指示指令類型。取出之后,該指令被分組成每個20位的兩部分用于運算執(zhí)行。參見圖6B,在20位控制指令并行執(zhí)行的情況下(位39=0,位19=0),兩個20位部分是被同時執(zhí)行的控制指令。在20位控制指令串行執(zhí)行的情況下(位39=0,位19=1),兩個20位部分是被串行執(zhí)行的控制指令。在20位控制指令串行執(zhí)行的情況下(位39=1,位19=1),兩個20位部分是被串行執(zhí)行的DSP指令。
在40位擴展DSP指令的情況下(位39=1,位19=0),兩個20位部分形成一個擴展DSP指令并且被同時執(zhí)行。這個40位DSP指令有兩種類型1)擴展的擴展20位二元DSP指令的功能的40位DSP指令-第一個20位部分是DSP指令并且第二個20位部分擴展第一個DSP指令的功能并且提供強大的位管理指令,也就是說,其是一個具有擴展功能的在功能單元的最上面一行(也就是原始階段561)運行的40位DSP指令;以及2)陰影包括一對20位二元子指令的單一40位DSP指令同時被執(zhí)行的原始DSP子指令以及陰影DSP子指令,其中,根據(jù)本發(fā)明的一個實施方案,第一個20位部分是在功能單元的最上面一行(也就是原始階段561)執(zhí)行的二元DSP指令,而第二個20位部分也是在功能單元的最下面一行(也就是陰影階段562)執(zhí)行的二元DSP指令。在優(yōu)選實施方案中,通過將40位DSP指令的位5對于“擴展的”設(shè)置為“0”,對于“陰影”設(shè)置為“1”來形成“擴展的”和“陰影”類型之間的區(qū)別。
ASSP 150的ISA被完全判定提供執(zhí)行預(yù)測。在20位RISC控制指令字和40位擴展DSP指令字中,每個指令有兩位指定RISC控制單元302里的四個預(yù)測寄存器之一。依賴于判定寄存器的情況,指令執(zhí)行可以基于其內(nèi)容條件性地改變。
為了訪問操作數(shù),在數(shù)據(jù)存儲器202里,累加器512、RISC 302的寄存器文件413里的寄存器里、或者信號處理單元300的數(shù)據(jù)打字機和對準器502的延遲寄存器里,在DSP擴展指令中使用6位指定符來訪問存儲器和寄存器中的操作數(shù)。圖6C顯示根據(jù)本發(fā)明的一個實施方案的示例6位操作數(shù)指定符。在擴展的DSP指令中使用的六位指定符的MSB(位5)指示訪問是存儲器訪問還是寄存器訪問。在這個實施方案中,如果位5被設(shè)置為邏輯一,則其表示操作數(shù)的存儲器訪問。如果位5被設(shè)置為邏輯零,則其表示操作數(shù)的寄存器訪問。
如果位5被設(shè)置為1,則指定寄存器的內(nèi)容(rX其中X0-7)被用于獲得有效的存儲器地址并且由在指定的rX寄存器之一中指定的兩個可能的偏移之一來后修改指針域。圖6D顯示根據(jù)本發(fā)明的一個實施方案的示例存儲器地址寄存器。
如果位5被設(shè)置為0,則位4確定什么寄存器設(shè)置有想要的操作數(shù)的內(nèi)容。如果位4被設(shè)置為1,則剩余的指定位控制對寄存器文件413里的通用目的文件(r0-r15)的訪問。如果位4被設(shè)置為0,則剩余的指定位30控制對寄存器文件413里的通用文件(r0-r15)、信號處理單元300的累加器寄存器512、或者信號處理單元300的數(shù)據(jù)打字機和對準器502的延遲數(shù)據(jù)寄存器的訪問。通用文件(GPR)保留數(shù)據(jù)或存儲器地址以便允許RISC或DSP操作數(shù)訪問。RISC指令一般僅訪問GPR文件。DSP指令利用GPR作為地址訪問存儲器。
圖6E顯示僅由陰影DSP指令使用的操作數(shù)的3位指定符。應(yīng)該注意,在一個示例實施方案中,每個信號處理單元300的每個累加寄存器512包括寄存器如圖6C和6E中參考的A0、A1、T和TR。寄存器A0和A1可被用于保留乘法和算術(shù)運算的結(jié)果。T寄存器可被用于保留臨時數(shù)據(jù)和在類似格子解碼算法的最小-最大搜索中。TR寄存器記錄哪些數(shù)據(jù)值引起最大值(或者最小值)。當(dāng)在ereg域中指定值SX1、SX2、SY1和SY2時,控制邏輯在沒有搬移的情況下為每個SP的陰影階段簡單地選擇指定的延遲的數(shù)據(jù)。當(dāng)在ereg域中指定值SX1s、SX2s、SY1s、SY2s時,這些值指定在搬移控制寄存器中指定的控制,其確定控制邏輯如何控制每個信號處理單元(SP)300的數(shù)據(jù)打字機和對準器(DTAB)里的陰影選擇器,來挑選在延遲數(shù)據(jù)寄存器中保留的延遲的數(shù)據(jù)供SP的陰影階段使用,如在后面更詳細的細節(jié)中所討論的。
20位DSP指令字有四位操作數(shù)指定符可以利用RISC控制單元302的寄存器文件413里的8個地址寄存器(r0-r7)來直接訪問數(shù)據(jù)存儲器。20位DSP指令字的尋址方法是通過指定到存儲器中的指針的地址寄存器、后修改值、數(shù)據(jù)訪問類型以及有效地執(zhí)行算法所需的數(shù)據(jù)置換而規(guī)則地間接尋址的。
圖6F說明根據(jù)本發(fā)明的一個實施方案的示例5位操作數(shù)指定符,包括用于一般數(shù)據(jù)操作數(shù)的4位指定符和專用寄存器(SPR)。5位操作數(shù)指定符用于RISC指令。
應(yīng)該注意,圖6B-6F中說明的訪問寄存器和存儲器的操作數(shù)指定符的前面的位圖僅是示例,并且本領(lǐng)域的技術(shù)人員應(yīng)該理解任何數(shù)量的位圖方案、寄存器方案等可被用于實現(xiàn)本發(fā)明。
DSP指令A(yù)SSP 150主要有四類DSP指令1)乘法(MULT)控制從存儲器連接到數(shù)據(jù)總線的主乘法器的執(zhí)行。
控制舍入,乘法符號在通過地址寄存器中的類型域指定的矢量數(shù)據(jù)上運算第二運算矢量或標量模式的Add、Sub、Min、Max2)加法(ADD)控制主加法器的執(zhí)行控制輸入的絕對值,限制結(jié)果第二運算Add、add-sub、mult、mac、min、max3)極值(MIN/MAX)控制主加法器的執(zhí)行控制輸入的絕對值控制,通過T寄存器、TR寄存器記錄控制的全局或運行max/min第二運算add、sub、mult、mac、min、max4)雜類類型匹配和排列運算所有的DSP指令控制乘法器504A-504B、加法器510A-510C、壓縮器506和累加器512、每個信號處理單元300A-300D的功能單元。ASSP 150可以以矢量或者標量方式執(zhí)行這些DSP算法運算。在標量執(zhí)行中,減少或合并運算在矢量結(jié)果上執(zhí)行以便生成標量結(jié)果。在DSP應(yīng)用中通常執(zhí)行標量運算,其可以被ASSP 150有效地執(zhí)行。
二元DSP指令A(yù)SSP 150的指令集結(jié)構(gòu)的所有DSP指令是20位或40位指令字里的二元DSP指令。二元DSP指令通知ASSP在一個指令和一個周期中執(zhí)行兩個運算。
圖6G是說明二元DSP指令的置換的圖表。二元DSP指令610包括主DSP運算611(MAIN OP)和子DSP運算612(SUB OP),在一個二元指令中兩個DSP指令或運算的組合。一般,本發(fā)明的指令集結(jié)構(gòu)可以被概括為組合任意一對基本DSP運算來提供非常強大的二元指令組合。復(fù)合的DSP運算指令可以提供大量DSP算法的統(tǒng)一的加速而不僅是乘法-累加密集的過濾器。
優(yōu)選實施方案中的DSP指令或運算包括乘法指令(MULT)、加法指令(ADD)、也被稱為極值指令的最小化/最大化指令(MIN/MAX)、以及空操作指令(NOP),每個有相關(guān)的運算代碼(“opcode”)。任何兩個DSP指令可以被組合在一起來形成二元DSP指令。當(dāng)單一DSP運算想要被二元DSP指令執(zhí)行時,NOP指令被用于MAIN OP或SUB OP。通用DSP指令有許多變化,如乘法或加法的矢量和標量運算、正或負乘法、以及正或負加法(也就是減法)。
40位擴展指令字擴展的/陰影在40位指令字中,從20位指令字擴展的類型分成五類
1)取代模式寄存器中的控制位的控制和指定符擴展2)取代地址寄存器中的類型指定符的類型擴展3)取代地址寄存器中矢量數(shù)據(jù)的置換指定符的置換擴展4)替換或者擴展在地址寄存器中規(guī)定的偏移的偏移擴展5)控制信號處理單元300里的陰影階段562(也就是功能單元的較低行)以便加速塊處理的陰影DSP擴展。
在40位擴展DSP指令字(位39=1,位19=0)的情況下,執(zhí)行基于位5的值(0=擴展的/1=陰影)。如果由位5的值設(shè)置擴展指令,則第一個20位部分是DSP指令并且第二個20位部分擴展第一個DSP指令的功能,也就是其是一個在信號處理單元300里的功能DSP單元的頂行中執(zhí)行的40位DSP指令。帶有20位擴展的40位控制指令允許在指令和強大的位處理指令中規(guī)定一個大的立即值(16到20位)。
如果由位5的值設(shè)置陰影指令,則第一個20位部分是在功能單元的頂行(原始階段)上執(zhí)行的二元DSP指令,而第二個20位部分是在功能單元的第二行(陰影階段)上執(zhí)行的另一個二元DSP指令。
為有效的DSP執(zhí)行提供了包括一對20位二元子指令的單一40位陰影DSP指令原始二元DSP子指令和陰影二元DSP子指令。因為原始和DSP子指令都是二元的,所以它們每個在一個指令周期中執(zhí)行兩個DSP運算。這些DSP運算包括如前所述的MULT、ADD、MIN/MAX以及NOP運算。再次參見圖5B,第一個20位,也就是原始二元DSP子指令,控制信號處理單元300的原始階段561,其包括基于當(dāng)前數(shù)據(jù)從存儲器接口到數(shù)據(jù)總線203(例如,x總線531和y總線533)的頂功能單元(加法器510A和510B,乘法器504A,壓縮器506)。
第二個20位,也就是陰影二元DSP子指令,控制包括底功能單元(加法器510C和510D,乘法器504B)的陰影階段562,同時與原始階段561。陰影階段562使用內(nèi)部或本地數(shù)據(jù)如本地存儲在每個信號處理單元的延遲數(shù)據(jù)寄存器里的延遲的數(shù)據(jù)或者來自累加器的數(shù)據(jù)作為操作數(shù)。
原始階段561的頂功能單元通過并行通過連續(xù)的分支或部分減少了內(nèi)循環(huán)602里的內(nèi)循環(huán)周期。陰影階段562的底功能單元通過使越過連續(xù)的采樣的塊DSP算法并行而將外循環(huán)601中的外循環(huán)周期切成兩半。而且,本發(fā)明利用40位陰影DSP指令來同時執(zhí)行原始DSP子指令(基于當(dāng)前數(shù)據(jù))和陰影DSP子指令(基于延遲的本地存儲數(shù)據(jù))因此在每個信號處理單元每個單一指令周期執(zhí)行四個運算,有效地執(zhí)行了DSP指令。
通過本發(fā)明的硬件結(jié)構(gòu)也改善了有效的DSP執(zhí)行。這樣,效率以數(shù)據(jù)被提供給或來自數(shù)據(jù)存儲器202以便供給四個信號處理單元300以及其中的DSP功能單元的方式被提高。數(shù)據(jù)總線203包括兩條總線,用于X和Y源操作數(shù)的X總線531和Y總線533,以及用于結(jié)果寫的一個Z總線532。包括X總線531、Y總線533和Z總線532的所有的總線都優(yōu)選地是64位寬??偩€是單向的以便簡化物理設(shè)計以及減少數(shù)據(jù)通過時間。在優(yōu)選實施方案中,當(dāng)在20位DSP模式時,如果X和Y總線攜帶從存儲器中讀出的操作數(shù)來在信號處理單元300中并行執(zhí)行,則并行負載域可以僅訪問RISC控制單元302的寄存器文件413里的寄存器。除此之外,四個信號處理單元300A-300D并行地提供可以進行同時計算的四個并行MAC單元(乘法器504A,加法器510A,以及累加器512)。這使循環(huán)計數(shù)從執(zhí)行四個MAC最初需要的4個循環(huán)減少到僅需一個循環(huán)。
如前所述,在本發(fā)明的一個實施方案中,單一40位陰影DSP指令包括一對20位二元子指令原始二元DSP子指令和陰影二元DSP子指令。因為原始和DSP子指令都是二元的,所以它們每個在一個指令周期中執(zhí)行兩個DSP運算。這些DSP運算包括前述的MULT、ADD、MIN/MAX以及NOP運算。第一個20位部分是基于當(dāng)前數(shù)據(jù)在功能單元的最上面一行(也就是原始階段561)執(zhí)行的二元DSP指令,而第二個20位部分也是基于在信號處理單元的延遲數(shù)據(jù)寄存器里本地存儲的或者來自累加器的延遲的數(shù)據(jù)在功能單元的底行(也就是陰影階段562)上同時執(zhí)行的二元DSP指令。這樣,本發(fā)明通過利用單一40位陰影DSP指令里同時執(zhí)行原始和陰影DSP子指令,從而在每個SP的每個單一指令周期執(zhí)行四個運算,有效地執(zhí)行了DSP指令。
陰影DSP指令現(xiàn)在參見圖6H和6I,說明了示例20位非擴展和40位擴展DSP指令的位圖語法。如前面討論的,對于20位非擴展指令字,位圖語法是40位字的20位最高有效位,而對于40位擴展DSP指令,位圖語法是40位指令字。特別的,圖6H和6I一起說明了示例40位陰影DSP指令。圖6H說明20位DSP指令,并且更特別的,原始二元DSP子指令的第一個20位部分的位圖語法。圖6I說明40位擴展DSP指令的第二個20位部分的位圖語法并且更特別的,在“陰影DSP”下,說明陰影二元DSP子指令的位圖語法。注意為規(guī)定40位陰影指令,位39=1,位19=0,并且位5=1。
如圖6H所示,三個最高有效位(MSB),原始二元DSP子指令(也就是第一個20位部分)的編號37到39的位指示MAIN OP指令類型而SUB OP位于原始二元DSP子指令的尾部附近編號20到22的位處。在優(yōu)選實施方案中,MAIN OP指令代碼是對于NOP為000,對于ADD為101,對于MIN/MAX為110,并且對于MULT為100。給定DSP指令的SUB OP代碼根據(jù)選擇什么MAIN OP代碼而變化。在MULT作為MAIN OP的情況下,SUB OP是對于NOP為000,對于ADD為001或010,對于負ADD或減法為100或011,對于MIN為101或110,并且對于MAX為111。其他MAIN OP和SUB OP的位圖語法可以從圖6H中看到。
如圖6I中所示,在“控制和指定符擴展”下,控制擴展的二元DSP指令的較低20位,也就是擴展位,控制信號處理單元來為SUB OP的輸入執(zhí)行舍入、限制、絕對值,或者利用寄存器值的全局MIN/MAX運算。
特別的,如圖6I所示,在“陰影DSP”下,陰影二元DSP子指令的編號14、17和18的指令位指示MAIN OP指令類型,而SUB OP位于陰影二元DSP子指令的尾部附近編號0到2的位處。在一個實施方案中,MAIN OP指令代碼和SUB OP代碼可以與如前對于原始二元DSP子指令描述的相同的。但是,本領(lǐng)域的技術(shù)人員應(yīng)該理解,陰影DSP指令的原始和陰影DSP子指令的MAIN OP和SUB OP的指令位語法僅是示例并且可以使用大量的各種指令位語法。而且,圖6I顯示ereg1(位10-12)和ereg2(位6-8)域,如前所述,其被用于選擇由陰影階段使用的數(shù)據(jù)值,后面將更詳細地討論。
二元DSP指令的位圖語法可以被轉(zhuǎn)換成文本語法用于程序編碼。利用乘法或MULT為例,其用于乘法或MULT的文本語法是(vmu1|vmu1n).(vadd|vsub|vmax|sadd|ssub|smax)da,sx,sa,sy[,(ps0)|ps1)]“vmu1|vmu1n”域指被選擇作為MAIN OP的正矢量乘法或負矢量乘法。下一個域,“vadd|vsub|vmax|sadd|ssub|smax”,指被選擇作為SUB OP的矢量加、矢量減、矢量最大、標量加、標量減或者標量最大。下一個域,“da”,指選擇累加器里的寄存器之一用于結(jié)果的存儲。域“sx”指選擇指向存儲器中一個存儲位置的RISC寄存器文件413里的一個寄存器作為操作數(shù)的源之一。域“sa”指選擇累加器里的寄存器的內(nèi)容作為操作數(shù)的源之一。域“sy”指選擇指向存儲器中一個存儲位置的RISC寄存器文件413里的一個寄存器作為操作數(shù)的源中的另一個。域“[,(ps0)|ps1)]”指規(guī)定哪些是并行存儲控制寄存器的源目的地對的關(guān)鍵字PS0或PS1的對選擇。
圖6J說明根據(jù)本發(fā)明的一個實施方案用于ISA的額外的控制指令。圖6K說明根據(jù)本發(fā)明的一個實施方案用于ISA的一組擴展控制指令。圖6L說明根據(jù)本發(fā)明的一個實施方案用于ISA的一組40位DSP指令。
實現(xiàn)陰影DSP指令的結(jié)構(gòu)現(xiàn)在參見圖7,說明了根據(jù)本發(fā)明的一個實施方案用于實現(xiàn)單一40位擴展陰影DSP指令的結(jié)構(gòu)。圖7顯示具有分別耦合到核心處理器200(圖3)的信號處理器(SP)SP0、SP1、SP2和SP3的每個的數(shù)據(jù)打字機和對準器塊502A、502B、502C和502D的搬移控制寄存器702的控制邏輯塊700??刂七壿媺K700還耦合到每個SP的陰影階段562的多路復(fù)用器520C和514B(圖5B)。
x輸入總線531和y輸入總線533分別耦合到信號處理器SP0、SP1、SP2和SP3的每個的數(shù)據(jù)打字機和對準器塊(DTAB)502A、502B、502C和502D。每個DTAB向其各自的原始階段的功能塊(例如,圖5B的乘法器M1 504A、壓縮器506、加法器A1 510A、以及加法器A2 510B)提供x和y數(shù)據(jù)值。而且,每個SP的每個DTAB在延遲數(shù)據(jù)寄存器中存儲x和y總線的延遲的數(shù)據(jù)值x’、x”、y’以及y”,以便通過數(shù)據(jù)總線551和552(圖5B)向其各自陰影階段562的功能塊(例如加法器A3 510C和乘法器M2 504B)提供輸出。
暫時參見圖8A,x’=[SX10,SX11,SX12,SX13]以及x”=[SX20,SX21,SX22,SX23]。延遲的數(shù)據(jù)采用形式SXab其中S表示源;a=延遲;并且b=SP單元號(例如SP0、SP1、SP2、SP3)。y’和y”值是類似的形式,特別的,y’=[SY10,SY11,SY12,SY13]以及y”=[SY20,SY21,SY22,SY23]。
如圖7所示,DTAB 502A將來自x和y輸入總線的源值SX0和SY0(其中下標值表示SP號)直接輸出到SP0的原始階段561。DTAB 502A還輸出分別從延遲的數(shù)據(jù)值(x’、x”、y’以及y”)中選擇的陰影值SHX0和SHY0(其中下標值表示SP號)。這些延遲的值被存儲在延遲數(shù)據(jù)寄存器中,如將被討論的,并且被分別通過數(shù)據(jù)總線551A和552A輸出到SP0的陰影階段562。類似的,DTAB 502B將源值SX1和SY1輸出到原始階段561并且將陰影值SHX1和SHY1通過數(shù)據(jù)總線551B和552B輸出到SP1的陰影階段562;DTAB 502C通過數(shù)據(jù)總線551C和552C將源值SX2和SY2輸出到原始階段并且將陰影值SHX2和SHY2輸出到SP2的陰影階段;并且DTAB 502D將源值SX3和SY3輸出到原始階段并且將陰影值SHX3和SHY3通過數(shù)據(jù)總線551D和552D輸出到SP3的陰影階段。
如前面所討論的,根據(jù)本發(fā)明的一個實施方案的專用信號處理器(ASSP)可被用于電信系統(tǒng)來實現(xiàn)數(shù)字過濾功能。數(shù)字過濾功能的一個通用類型是具有形式Zn=x0y0+x1y1+x2y2+...+xNyN的有限脈沖響應(yīng)(FIR)過濾器,其中yn是編號從1到N的固定過濾器系數(shù)并且xn是數(shù)據(jù)采樣。
如圖8B所示,形式為Zn=x0y0+x1y1+x2y2+...+xNyN的FIR過濾器可被用于本發(fā)明。這個等式的計算可以被擴展到圖8B中所示的不同(SP)并且等式的特定部分可以在每個周期(由周期#表示)期間被計算。例如,在SP的原始階段,在周期#1SP0計算x0y0,SP1計算x1y1,SP2計算x2y2,并且SP3計算x3y3,并且在周期#2期間,SP0計算x4y4,SP1計算x5y5,SP2計算x6y6,并且SP3計算x7y7等。如前面所討論的,單一40位陰影DSP指令包括一對20位二元子指令基于當(dāng)前數(shù)據(jù)在原始階段執(zhí)行的原始二元DSP子指令以及基于在延遲數(shù)據(jù)寄存器中本地存儲的延遲的數(shù)據(jù)在陰影階段同時執(zhí)行的陰影二元DSP子指令。
如圖8B所示,在其中延遲的數(shù)據(jù)(x’、x”、y’以及y”)被存儲的周期#1和周期#2之后,陰影階段可以利用形式為Z1=x1y0+x2y1+x3y2+...+xN+1yN的本地存儲的延遲的數(shù)據(jù)同時計算FIR過濾器的下一個輸出。在這個例子中,控制邏輯700規(guī)定陰影階段將x’值向左搬移一位。如圖8B所示這個等式的計算擴展到不同SP的陰影階段并且該等式的特定部分可以在每個周期期間被計算。例如在周期#3期間SP0計算x1y0,SP1計算x2y1,SP2計算x3y2,并且SP3計算x4y3,并且在周期#4期間,SP0計算x5y4,SP1計算x6y5,SP2計算x7y6,并且SP3計算x8y7等。這樣,本發(fā)明通過利用單一40位擴展陰影DSP指令同時執(zhí)行原始DSP子指令(基于當(dāng)前數(shù)據(jù))和陰影DSP子指令(基于延遲的本地存儲數(shù)據(jù)),因此在每個單一指令周期執(zhí)行四個運算,有效地執(zhí)行了DSP指令。而且,如圖8B所示,利用原始和陰影階段FIR過濾器能夠同時計算后續(xù)周期。
如圖8B中所示的陰影階段計算利用被延遲并且被本地存儲的數(shù)據(jù)來增加SP的數(shù)字信號處理的效率。陰影階段計算的周期#3利用原始階段的周期#1的前3個x操作數(shù)(x1,x2和x3)以及原始階段的周期#2的第一個x操作數(shù)(x4)并且y操作數(shù)保持相同。因此,對于陰影階段計算,x0操作數(shù)被丟棄并且原始階段的x’操作數(shù)被簡單地“向左搬移”一位并且被重用。這個相同的“向左搬移”運算被清楚地顯示在陰影階段計算的周期#4中。
前面討論的陰影子指令的ereg1和ereg2域(圖6E和6I),為控制邏輯700指定了要被選擇的數(shù)據(jù)。對于在ereg域中規(guī)定的值SX1(表示x’),SX2(表示x”),SY1(表示y’)以及SY2(表示y”),控制邏輯為陰影階段簡單地選擇指定的延遲的數(shù)據(jù)而不搬移。而且,陰影階段可以使用如ereg域規(guī)定的來自累加器的數(shù)據(jù)(例如,A0,A1,T,TR)。
圖8C說明根據(jù)本發(fā)明的一個實施方案的搬移控制寄存器702。對于在ereg域中規(guī)定的值SX1s、SX2s、SY1s、SY2s,搬移控制寄存器702指定一個預(yù)置的搬移控制指令來命令控制邏輯700以搬移的方式選擇延遲的數(shù)據(jù)供SP 300的陰影階段562使用?;谶@個預(yù)置指令,控制邏輯700分別控制每個SP 300的每個DTAB 502的陰影選擇器來選擇存儲在延遲數(shù)據(jù)寄存器中的延遲的數(shù)據(jù)供每個SP 300的每個陰影階段562使用。
如圖8C所示,公開了控制邏輯700使用的搬移控制寄存器702的示例位圖,其中項u表示SP單元號,例如u3=SP3、u2=SP2、u1=SP1并且u0=SP0。在這個實施方案中,源被利用下列位圖表搬移
00 SP單元N+1,SX1表示將延遲的數(shù)據(jù)x’向右搬移一位。
01 SP單元N+1,SX2表示將延遲的數(shù)據(jù)x”向右搬移一位。
10 SP單元N-1,SXi表示將延遲的數(shù)據(jù)x’向左搬移一位。
11 SP單元N-1,SX2表示將延遲的數(shù)據(jù)x”向左搬移一位。
例如,如圖8B所示并且如前所述,為將延遲的數(shù)據(jù)x’向左搬移一位,下列位將被編入搬移控制寄存器702的位圖的SX1s部分的u3、u2、u1和u0位域(位0-7)10101010。類似的編碼也可被用于搬移延遲的y數(shù)據(jù)(例如,y’和y”)。
本領(lǐng)域的技術(shù)人員應(yīng)該理解,如圖8C的搬移控制寄存器的位圖中所公開的,控制邏輯可以被編程來將延遲的數(shù)據(jù)值向左或右搬移一步。而且,應(yīng)該理解,搬移控制寄存器還可以被編程來將延遲的數(shù)據(jù)向任意方向搬移任意步數(shù)(例如,一、二、三...)。除此之外,本領(lǐng)域的技術(shù)人員應(yīng)該理解,除參見圖8的如前所述的FIR過濾器之外,大量的各種塊數(shù)字過濾器可以用本發(fā)明實現(xiàn)。
圖9a說明從x總線531為原始階段561選擇當(dāng)前數(shù)據(jù)以及選擇延遲的數(shù)據(jù)供SP的陰影階段562使用的信號處理單元300的數(shù)據(jù)打字機和對準器(DTAB)502的結(jié)構(gòu)。特別的,圖9a說明SP2 300C(如圖7所示)的DTAB 502C來如原始DSP子指令所規(guī)定的選擇源值SX2用于輸出到原始階段561,以及如陰影DSP子指令規(guī)定的,從延遲的數(shù)據(jù)x’和x”選擇陰影值SHX2輸出到陰影階段562。
DTAB 502C包括主控制904,提供主控制信號以便根據(jù)原始DSP子指令來控制主多路復(fù)用器906C選擇SX2輸出到SP300C的原始階段561。主控制信號還提供數(shù)據(jù)鍵入(typing)和格式化。
DTAB 502C還包括如陰影多路復(fù)用器912C的陰影選擇器,來如由控制邏輯700生成的搬移多路復(fù)用器控制信號914所規(guī)定的,從延遲的數(shù)據(jù)x’和x”選擇陰影值SHX2??刂七壿?00與搬移控制寄存器702一起,通過生成并且向陰影多路復(fù)用器912C發(fā)送搬移多路復(fù)用器控制信號914來實現(xiàn)如前面討論的陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
根據(jù)搬移多路復(fù)用器控制信號914,陰影多路復(fù)用器912C從x’=[SX10,SX11,SX12,SX13]和x”=[SX20,SX21,SX22,SX23](如前面所談?wù)摰?中選擇規(guī)定的延遲的數(shù)據(jù)值。x’延遲的數(shù)據(jù)值被存儲在寄存器Register2x’908C中并且x”延遲的數(shù)據(jù)值被存儲在寄存器Register2x”910C中由陰影多路復(fù)用器912C訪問。而且控制延遲916C提供延遲主控制信號用于陰影多路復(fù)用器912C的正確定時。延遲的主控制信號還提供數(shù)據(jù)鍵入和格式化。
基于搬移多路復(fù)用器控制信號914,陰影多路復(fù)用器512C從延遲的數(shù)據(jù)值中選擇陰影值SHX2并且通過數(shù)據(jù)總線551C將其輸出到SP300C的陰影階段562。
應(yīng)該理解,用于選擇延遲的x數(shù)據(jù)值的SP0 300A、SP1 300B、SP2 300C和SP3 300D的DTAB 502A、502B、502C和502D分別都是如圖9a所示的相似的結(jié)構(gòu)。而且,應(yīng)該理解每個DTAB 502A、502B、502C和502D分別有陰影多路復(fù)用器912A、912B、912C和912D,這將在下面詳細討論。
圖9b說明從y總線533為原始階段561選擇當(dāng)前數(shù)據(jù)以及選擇延遲的數(shù)據(jù)供SP的陰影階段562使用的信號處理單元300的數(shù)據(jù)打字機和對準器(DTAB)502的結(jié)構(gòu)。特別的,圖9b說明SP2 300C(如圖7所示)的DTAB 502C來如原始DSP子指令所規(guī)定的選擇源值SY2用于輸出到原始階段561,以及如陰影DSP子指令規(guī)定的,從延遲的數(shù)據(jù)y’和y”選擇陰影值SHY2輸出到陰影階段562。
DTAB 502C包括主控制904(圖9a),提供主控制信號以便根據(jù)原始DSP子指令來控制主多路復(fù)用器907C選擇SY2輸出到SP300C的原始階段561。主控制信號還提供數(shù)據(jù)鍵入和格式化。
DTAB 502C還包括如陰影多路復(fù)用器913C的陰影選擇器,來如由控制邏輯700生成的搬移多路復(fù)用器控制信號915所規(guī)定的,從延遲的數(shù)據(jù)y’和y”選擇陰影值SHY2??刂七壿?00與搬移控制寄存器702一起,通過生成并且向陰影多路復(fù)用器913C發(fā)送搬移多路復(fù)用器控制信號915來實現(xiàn)如前面討論的陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
根據(jù)搬移多路復(fù)用器控制信號915,陰影多路復(fù)用器913C從y’=[SY10,SY11,SY12,SY13]和y”=[Sy20,Sy21,Sy22,Sy23](如前面所談?wù)摰?中選擇規(guī)定的延遲的數(shù)據(jù)值。y’延遲的數(shù)據(jù)值被存儲在寄存器Register2y’909C中并且y”延遲的數(shù)據(jù)值被存儲在寄存器Register2y”911C中由陰影多路復(fù)用器913C訪問。而且控制延遲916C(圖9a)提供延遲主控制信號用于陰影多路復(fù)用器913C的正確定時。主控制信號還提供數(shù)據(jù)鍵入和格式化?;诎嵋贫嗦窂?fù)用器控制信號915,陰影多路復(fù)用器513C從延遲的數(shù)據(jù)值中選擇陰影值SHY2并且通過數(shù)據(jù)總線552C將其輸出到SP 300C的陰影階段562。
應(yīng)該理解,用于選擇延遲的y數(shù)據(jù)值的SP0 300A、SP1 300B、SP2 300C和300D的DTAB 502A、502B、502C和502D分別都是如圖9b所示的相似的結(jié)構(gòu)。而且,應(yīng)該理解,每個DTAB 502A、502B、502C和502D分別有陰影多路復(fù)用器913A、913B、913C和913D。
圖10a-10d說明用于每個信號處理單元(SP)300的每個數(shù)據(jù)打字機和對準器(DTAB)502從延遲的數(shù)據(jù)寄存器(例如Registerx,908、Registerx,910)中選擇x’和x”延遲的數(shù)據(jù)由SP的陰影階段562使用的每個陰影多路復(fù)用器912的結(jié)構(gòu)。
圖10a說明SP0 300A的DTAB 502A的陰影多路復(fù)用器912A的結(jié)構(gòu)。陰影多路復(fù)用器912A可以如搬移多路復(fù)用器控制信號914所命令的(例如,向左或右搬移一位或者不搬移)來選擇延遲的x值(x’和x”),以便選擇陰影值SHX0。然后陰影值SHX0被通過數(shù)據(jù)總線551A輸出到SP 300A的陰影階段562。如前面所討論的,x’=[SX10,SX11,SX12,SX13]和x”=[SX20,SX21,SX22,SX23],其中值采用SXab的形式,其中S表示源;a=延遲;并且b=SP單元號(例如SP0、SP1、SP2、SP3)。
陰影多路復(fù)用器912A包括6-1多路復(fù)用器1000a用于如搬移多路復(fù)用器控制信號914所命令的選擇SX13、SX11、SX10、SX20、SX21、SX23之一。陰影多路復(fù)用器912A還包括多個三個多路復(fù)用器1002a、1004a、1006a分別用于選擇SX13、SX11和SX10。每個多路復(fù)用器還被連接到延遲的主控制信號用于正確的定時。延遲的主控制信號還提供數(shù)據(jù)鍵入和格式化。
替代的,3-1多路復(fù)用器1020a可被用于任意多個三個多路復(fù)用器。陰影多路復(fù)用器912A還包括另外的多個三個多路復(fù)用器1008a、1010a、1012a,分別用于選擇SX20、SX21、SX23。
基于搬移多路復(fù)用器控制信號914,陰影多路復(fù)用器912A通過6-1多路復(fù)用器1000a為陰影值SHX0選擇SX13、SX11、SX10、SX20、SX21、SX23之一來通過總線551A輸出到SP0 300A的陰影階段562。如前面所討論的,控制邏輯700與搬移控制寄存器702一起,通過生成并且向6-1多路復(fù)用器1000a發(fā)送搬移多路復(fù)用器控制信號914來實現(xiàn)陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
例如,如果陰影DSP子指令的ereg1指定SX1s,其如前面圖8B的例子中所述的,被編程為向左搬移一的延遲的數(shù)據(jù)x’,因此6-1多路復(fù)用器1000a可挑選延遲的數(shù)據(jù)值SX11作為陰影值SHX0來被輸出到陰影階段。在圖8b的例子中,在周期#3的陰影階段計算下,這個對應(yīng)于挑選X1,然后其可以被y0乘生成x1y0由SP0計算。替代的,如果ereg1被設(shè)置為SX1(表示在沒有搬移的情況下選擇延遲的數(shù)據(jù)x’),則控制邏輯700不使用搬移控制寄存器702并且通過搬移多路復(fù)用器控制信號914命令多路復(fù)用器1000a來挑選延遲的數(shù)據(jù)值SX10作為陰影值SHX0來被輸出到陰影階段。
應(yīng)該理解,如前所述,搬移多路復(fù)用器控制信號可以控制多路復(fù)用器1000a來挑選值SX13、SX11、SX21、SX23之一來如搬移控制寄存器702所編程的向左或右將x’和x”延遲的數(shù)據(jù)搬移一。而且,在其他實施方案中,搬移控制寄存器702可以被編程來將延遲的數(shù)據(jù)向任意方向搬移任意步(例如,一、二、三...)。
用于其他SP 300B、C、D的DTAB 502B、C、D選擇x’和x”延遲的數(shù)據(jù)供陰影階段562使用的其他陰影多路復(fù)用器912B、C、D的結(jié)構(gòu),如圖10b-10d中可以看到的,基本上與前面對于陰影多路復(fù)用器912A所描述的相同。因此,為簡短僅對陰影多路復(fù)用器912B、C、D簡單描述,對于本領(lǐng)域的技術(shù)人員應(yīng)該很顯然,多路復(fù)用器912A的前面的解釋應(yīng)用于陰影多路復(fù)用器912B、C、D的描述。
圖10b說明用于SP1 300B的DTAB 502B的陰影多路復(fù)用器912B的結(jié)構(gòu)。陰影多路復(fù)用器912B可以如搬移多路復(fù)用器控制信號914命令的(例如向左或右搬移一位或者不搬移)選擇延遲的x值(x’和x”),以便選擇陰影值SHX1。然后陰影值SHX1被通過數(shù)據(jù)總線551B輸出到SP 300B的陰影階段562。陰影多路復(fù)用器912B包括6-1多路復(fù)用器1000b用于如搬移多路復(fù)用器控制信號914命令的選擇SX10、SX12、SX11、SX21、SX22、SX20之一。陰影多路復(fù)用器912B還包括多個三個多路復(fù)用器1002b、1004b、1006b分別用于選擇SX10、SX12和SX11。陰影多路復(fù)用器912B還包括另外的多個三個多路復(fù)用器1008b、1010b、1012b,分別用于選擇SX21、SX22、SX20。基于搬移多路復(fù)用器控制信號914,陰影多路復(fù)用器912B通過6-1多路復(fù)用器1000b為陰影值SHX1選擇SX10、SX12、SX11、SX21、SX22、SX20之一來通過總線551B輸出到SP1 300B的陰影階段562。如前面所討論的,控制邏輯700與搬移控制寄存器702一起,通過生成并且向6-1多路復(fù)用器1000b發(fā)送搬移多路復(fù)用器控制信號914來實現(xiàn)陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
例如,如果陰影DSP子指令的ereg1指定SX1s,其如前面圖8B的例子中所述的,被編程為向左搬移一的延遲的數(shù)據(jù)x’,因此6-1多路復(fù)用器1000b可挑選延遲的數(shù)據(jù)值SX12作為陰影值SHX1來被輸出到陰影階段。在圖8b的例子中,在周期#3的陰影階段計算下,這個對應(yīng)于挑選x2,然后其可以被y1乘生成x2y1由SP1計算。替代的,如果ereg1被設(shè)置為SX1(表示在沒有搬移的情況下選擇延遲的數(shù)據(jù)x’),則控制邏輯700不使用搬移控制寄存器702并且通過搬移多路復(fù)用器控制信號914命令多路復(fù)用器1000b來挑選延遲的數(shù)據(jù)值SX11作為陰影值SHX1來被輸出到陰影階段。
圖10c說明用于SP2 300C的DTAB 502C的陰影多路復(fù)用器912C的結(jié)構(gòu)。陰影多路復(fù)用器912C可以如搬移多路復(fù)用器控制信號914命令的(例如向左或右搬移一位或者不搬移)選擇延遲的x值(x’和x”),以便選擇陰影值SHX2。然后陰影值SHX2被通過數(shù)據(jù)總線551C輸出到SP 300C的陰影階段562。陰影多路復(fù)用器912C包括6-1多路復(fù)用器1000c用于如搬移多路復(fù)用器控制信號914命令的選擇SX11、SX13、SX12、SX22、SX23、SX21之一。陰影多路復(fù)用器912C還包括多個三個多路復(fù)用器1002c、1004c、1006c分別用于選擇SX11、SX13和SX12。陰影多路復(fù)用器912C還包括另外的多個三個多路復(fù)用器1008c、1010c、1012c,分別用于選擇SX22、SX23、SX21?;诎嵋贫嗦窂?fù)用器控制信號914,陰影多路復(fù)用器912C通過6-1多路復(fù)用器1000c為陰影值SHX2選擇SX11、SX13、SX12、SX22、SX23、SX21之一來通過總線551C輸出到SP2 300C的陰影階段562。如前面所討論的,控制邏輯700與搬移控制寄存器702一起,通過生成并且向6-1多路復(fù)用器1000c發(fā)送搬移多路復(fù)用器控制信號914來實現(xiàn)陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
例如,如果陰影DSP子指令的ereg1指定SX1s,其如前面圖8B的例子中所述的,被編程為向左搬移一的延遲的數(shù)據(jù)x’,因此6-1多路復(fù)用器1000c可挑選延遲的數(shù)據(jù)值SX13作為陰影值SHX2來被輸出到陰影階段。在圖8b的例子中,在周期#3的陰影階段計算下,這個對應(yīng)于挑選x3,然后其可以被y2乘生成x3y2由SP2計算。替代的,如果ereg1被設(shè)置為SX1(表示在沒有搬移的情況下選擇延遲的數(shù)據(jù)x’),則控制邏輯700不使用搬移控制寄存器702并且通過搬移多路復(fù)用器控制信號914命令多路復(fù)用器1000c來挑選延遲的數(shù)據(jù)值SX12作為陰影值SHX2來被輸出到陰影階段。
圖10d說明用于SP3 300D的DTAB 502D的陰影多路復(fù)用器912D的結(jié)構(gòu)。陰影多路復(fù)用器912D可以如搬移多路復(fù)用器控制信號914命令的(例如向左或右搬移一位或者不搬移)選擇延遲的x值(x’和x”),以便選擇陰影值SHX3。然后陰影值SHX3被通過數(shù)據(jù)總線551D輸出到SP 300D的陰影階段562。陰影多路復(fù)用器912D包括6-1多路復(fù)用器1000d用于如搬移多路復(fù)用器控制信號914命令的選擇SX10、SX12、SX13、SX23、SX22、SX20之一。陰影多路復(fù)用器912D還包括多個三個多路復(fù)用器1002d、1004d、1006d分別用于選擇SX10、SX12和SX13。陰影多路復(fù)用器912D還包括另外的多個三個多路復(fù)用器1008d、1010d、1012d,分別用于選擇SX23、SX22、SX20?;诎嵋贫嗦窂?fù)用器控制信號914,陰影多路復(fù)用器912D通過6-1多路復(fù)用器1000d為陰影值SHX3選擇SX10、SX12、SX13、SX23、SX22、SX20之一來通過總線551D輸出到SP3 300D的陰影階段562。如前面所討論的,控制邏輯700與搬移控制寄存器702一起,通過生成并且向6-1多路復(fù)用器1000d發(fā)送搬移多路復(fù)用器控制信號914來實現(xiàn)陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
例如,如果陰影DSP子指令的ereg1指定SX1s,其如前面圖8B的例子中所述的,被編程為向左搬移一的延遲的數(shù)據(jù)x’,因此6-1多路復(fù)用器1000d可挑選延遲的數(shù)據(jù)值SX20作為陰影值SHX3來被輸出到陰影階段。因此,在這個例子中,值來自x”延遲的數(shù)據(jù)。在圖8b的例子中,在周期#3的陰影階段計算下,這個對應(yīng)于挑選x4,然后其可以被y3乘生成x4y3由SP3計算。替代的,如果ereg1被設(shè)置為SX1(表示在沒有搬移的情況下選擇延遲的數(shù)據(jù)x’),則控制邏輯700不使用搬移控制寄存器702并且通過搬移多路復(fù)用器控制信號914命令多路復(fù)用器1000d來挑選延遲的數(shù)據(jù)值SX13作為陰影值SHX3來被輸出到陰影階段。
如前所述,每個DTAB 502A、502B、502C和502D,分別有陰影多路復(fù)用器913A、913B、913C和913D,以便從延遲的數(shù)據(jù)寄存器選擇y’和y”延遲的數(shù)據(jù)供SP的陰影階段562使用。本領(lǐng)域的技術(shù)人員應(yīng)該理解,用于選擇y’和y”延遲的數(shù)據(jù)的這些陰影多路復(fù)用器的結(jié)構(gòu),與前述的參見圖10a-10d的陰影多路復(fù)用器912A、912B、912C和912D的基本上相同,并且這些陰影多路復(fù)用器功能基本上以相同的方式使用y’和y”延遲的數(shù)據(jù)代替x’和x”延遲的數(shù)據(jù)。因此,為簡短不再對其描述。
現(xiàn)在參見圖11,框圖說明用于配置信號處理單元(SP)300A-D的塊的指令解碼。包括原始DSP子指令和陰影DSP子指令的陰影DSP指令1104輸入預(yù)解碼框1102。預(yù)解碼框1102被分別耦合到每個SP的每個數(shù)據(jù)打字機和對準器框(DTAB)502A、502B、502C和502D,以便提供主控制信號來選擇源值(例如SX0、SX1、SX2、SX3等)用于根據(jù)原始DSP子指令輸出到SP 300的原始階段561。主控制信號還為源值和陰影值提供數(shù)據(jù)鍵入和格式化(例如SHX0、SHX1、SHX2、SHX3等)。
如圖11所示,控制邏輯700和搬移控制寄存器702被耦合到陰影多路復(fù)用器(912A、913A、912B、913B等),以便向陰影多路復(fù)用器提供搬移多路復(fù)用器控制信號914和915。如前面所討論的,搬移多路復(fù)用器控制信號導(dǎo)致陰影多路復(fù)用器從延遲的數(shù)據(jù)中選擇陰影值來實現(xiàn)陰影DSP子指令的被請求的延遲的數(shù)據(jù)選擇。
每個信號處理器300包括最終解碼器1110A到1110N,以及多路復(fù)用器1110A到1110N。多路復(fù)用器1110A到1110N表示圖5B中的多路復(fù)用器514A、516、520A、520B、522、520C和514B。預(yù)解碼1102由RISC控制單元302和管道控制304提供。如陰影DSP指令1104的指令被提供給預(yù)解碼1102。預(yù)解碼1102向合適的最終解碼器1110A到1110N提供關(guān)于為給定的指令如何選擇多路復(fù)用器1120A到1120N的初步信號。
返回參見圖5B,在單一40位擴展的陰影DSP指令的原始二元DSP子指令中,MAIN OP和SUB OP一般由乘法器M1 504A、壓縮器506、加法器A1 510A和加法器A2 510B的框執(zhí)行。結(jié)果被存儲在累加寄存器AR 512里的寄存器之一中。
例如,如果原始二元DSP子指令要執(zhí)行MULT和ADD,則MAIN OP的MULT運算由乘法器M1 504A執(zhí)行并且SUB OP由加法器A1 510A執(zhí)行。預(yù)解碼1102和最終解碼器1110A到1110N適當(dāng)?shù)剡x擇各自的多路復(fù)用器1120A和1120N來選擇將由乘法器M1 504A執(zhí)行的MAINOP以及將由加法器A1 510A執(zhí)行的SUB OP。在示例情況下,多路復(fù)用器514A選擇來自數(shù)據(jù)打字機和對準器502的輸入,以便使乘法器M1 504A執(zhí)行MULT運算,多路復(fù)用器520A選擇來自數(shù)據(jù)打字機和對準器502的輸出用于加法器A1 510執(zhí)行ADD運算,并且多路復(fù)用器522選擇來自加法器510A的輸出用于在累加器512中累加。MAIN OP和SUB OP可以被順序(也就是在并行字上串行執(zhí)行)地或者并行地(也就是在并行字上并行執(zhí)行)執(zhí)行。如果被順序地執(zhí)行,則MAIN OP的結(jié)果可以是SUB OP的操作數(shù)。
對于陰影DSP指令的陰影二元DSP子指令,MAIN OP和SUB OP一般由加法器A3 510C和乘法器M2 504B的框執(zhí)行。結(jié)果被存儲在累加寄存器AR 512里的寄存器之一中。
例如,如果陰影二元DSP子指令要執(zhí)行MULT和ADD,則MAIN OP的MULT運算由乘法器M2 504B執(zhí)行并且SUB OP由加法器A3 510C執(zhí)行。預(yù)解碼1102和最終解碼器1110A到1110N適當(dāng)?shù)剡x擇各自的多路復(fù)用器1120A和1120N來選擇將由乘法器M2 504B執(zhí)行的MAINOP以及將由加法器A3 510C執(zhí)行的SUB OP。在示例情況下,多路復(fù)用器514B選擇來自數(shù)據(jù)打字機和對準器502的輸入(例如陰影值SHX)以便使乘法器M2 504B執(zhí)行MULT運算,多路復(fù)用器520C選擇來自累加器512的輸出,用于加法器A3 510C執(zhí)行ADD運算,并且多路復(fù)用器522選擇來自乘法器M2 504B的輸出用于在累加器512中累加。再次,在原始階段,MAIN OP和SUB OP可以被順序(也就是在并行字上串行執(zhí)行)地或者并行地(也就是在并行字上并行執(zhí)行)執(zhí)行。如果被順序地實現(xiàn),則MAIN OP的結(jié)果可以是SUB OP的操作數(shù)。
最終解碼器1110A到1110N有其自己的控制邏輯來為信號處理單元300的每個元素正確地安排多路復(fù)用器選擇的時間以便匹配包括順序或并行執(zhí)行的MAIN OP和SUB OP如何被執(zhí)行的管道執(zhí)行。RISC控制單元302和管道控制304與最終解碼器1110A到1110N一起通過用管道輸送指令自身以及通過提供管道輸送的控制信號來管道輸送指令執(zhí)行。這使得數(shù)據(jù)路徑被每個周期的軟件指令重新配置。
如普通技術(shù)人員將認識到的,本發(fā)明有許多優(yōu)點。本發(fā)明的一個優(yōu)點是ISA適合于提供緊湊硬件以便消耗低能量,可以被調(diào)整為更高計算要求的DSP算法結(jié)構(gòu)。本發(fā)明的另一個優(yōu)點是信號處理單元直接訪問存儲器中的操作數(shù)以便減少與加載和存儲執(zhí)行相關(guān)的處理開銷。本發(fā)明的另一個優(yōu)點是提供管道輸送的指令執(zhí)行,因此指令可以被在每個周期發(fā)布。本發(fā)明的另一個優(yōu)點是信號處理單元可以按逐個周期地配置。本發(fā)明的另一個優(yōu)點是其利用允許原始DSP子指令(基于當(dāng)前數(shù)據(jù))和陰影DSP子指令(基于延遲的本地存儲數(shù)據(jù))同時執(zhí)行因此在每個單一指令周期執(zhí)行四個運算的陰影DSP指令,有效地執(zhí)行了DSP指令。
因此描述了本發(fā)明的優(yōu)選實施方案。雖然在特定實施方案中描述了本發(fā)明,但是其可以在硬件、軟件、固件或其組合中被實現(xiàn)并且在系統(tǒng)、子系統(tǒng)、其組件或子組件中被利用。當(dāng)在軟件中被實現(xiàn)時,本發(fā)明的元件基本上是執(zhí)行必需的任務(wù)的代碼段。程序或者代碼段可以被存儲在處理器可讀介質(zhì)中或者由在傳輸介質(zhì)或通信鏈路上載波中具體化的計算機數(shù)據(jù)信號發(fā)送?!疤幚砥骺勺x介質(zhì)”包括可存儲或傳送信息的任何介質(zhì)。處理器可讀介質(zhì)的例子包括電子電路、半導(dǎo)體存儲器設(shè)備、ROM、閃存、可擦除ROM(EROM)、軟盤、CD-ROM、光盤、硬盤、光纖介質(zhì)、射頻(RF)鏈路等。計算機數(shù)據(jù)信號可包括可以在如電子網(wǎng)絡(luò)信道、光纖、空氣、電磁、RF鏈路等傳輸介質(zhì)上傳播的任何信號。代碼段可以通過如互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)等的計算機網(wǎng)被下載。在任何情況下,本發(fā)明不應(yīng)該被解釋為由這些實施方案所限制,而應(yīng)該根據(jù)所附權(quán)利要求被解釋。
權(quán)利要求
1.用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理器包括至少一個信號處理單元包括基于當(dāng)前數(shù)據(jù)執(zhí)行單一數(shù)字信號處理指令的原始數(shù)字信號處理子指令的原始階段;以及基于延遲的數(shù)據(jù)同時執(zhí)行單一數(shù)字信號處理指令的陰影數(shù)字信號處理子指令的陰影階段。
2.如權(quán)利要求1的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,原始數(shù)字信號處理子指令是具有原始主運算和原始子運算的二元指令。
3.如權(quán)利要求1的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,陰影數(shù)字信號處理子指令是具有陰影主運算和陰影子運算的二元指令。
4.如權(quán)利要求1的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,原始階段包括第一個乘法器和第一個加法器;陰影階段包括第二個乘法器和第二個加法器;第一個和第二個加法器以及第一個和第二個乘法器的每個在其各自的輸入處有多路復(fù)用器,以便配置信號處理單元來分別同時執(zhí)行主和陰影數(shù)字信號處理子指令;并且至少一個信號處理單元還包括累加器,其分別具有耦合到原始階段的第一個乘法器或第一個加法器的寄存器,以便從那里向原始數(shù)字信號處理子指令提供操作數(shù)或者存儲結(jié)果,以及耦合到陰影階段的第二個乘法器或第二個加法器的寄存器,以便從那里向陰影數(shù)字信號處理子指令提供操作數(shù)或者存儲結(jié)果,所述累加器具有耦合到緩存的寄存器以便存儲由原始和陰影數(shù)字信號處理子指令分別生成的數(shù)字信號處理的輸出。
5.如權(quán)利要求4的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理單元還包括多個延遲的數(shù)據(jù)寄存器來存儲延遲的數(shù)據(jù)供陰影階段使用。
6.如權(quán)利要求5的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理單元還包括耦合到延遲的數(shù)據(jù)寄存器以便選擇延遲的數(shù)據(jù)供陰影階段使用的陰影選擇器;以及耦合到陰影選擇器以便控制延遲的數(shù)據(jù)的選擇的控制邏輯。
7.如權(quán)利要求4的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理單元還包括多個信號處理單元,每個信號處理單元有多個延遲的數(shù)據(jù)寄存器來存儲延遲的數(shù)據(jù)以及耦合到每個延遲的數(shù)據(jù)寄存器的陰影選擇器;以及耦合到每個陰影選擇器以便在從延遲的數(shù)據(jù)寄存器中選擇延遲的數(shù)據(jù)供每個信號處理單元的陰影階段使用中分別控制每個陰影選擇器的控制邏輯。
8.如權(quán)利要求2的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,原始數(shù)字信號處理子指令的原始主運算是一組乘法、加法、與最小或最大值比較以及空操作之一。
9.如權(quán)利要求8的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,原始數(shù)字信號處理子指令的原始子運算是與第一個主運算不同的一組乘法、加法、與最小或最大值比較以及空操作之一。
10.如權(quán)利要求3的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,陰影數(shù)字信號處理子指令的陰影主運算是一組乘法、加法、與最小或最大值比較以及空操作之一。
11.如權(quán)利要求10的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,陰影數(shù)字信號處理子指令的陰影子運算是與第二個主運算不同的一組乘法、加法、與最小或最大值比較以及空操作之一。
12.如權(quán)利要求4的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理器還包括精簡指令集計算機(RISC)控制單元以及管道控制器以便將原始和陰影數(shù)字信號處理子指令預(yù)編碼成多個初步指令執(zhí)行信號;以及其中至少一個信號處理單元還包括耦合到多個多路復(fù)用器的多個最終解碼器,第一個和第二個加法器以及第一個和第二個乘法器的每個有來自多個多路復(fù)用器的輸入多路復(fù)用器以便響應(yīng)耦合到其中的那些多個最終解碼器的選擇來接收操作數(shù)。
13.如權(quán)利要求12的用于執(zhí)行數(shù)字信號處理指令的信號處理器,其中,RISC控制單元包括三個加法器、存儲器地址生成器、乘法器以及桶形移位器以便將原始和陰影數(shù)字信號處理子指令預(yù)編碼成多個初步的指令執(zhí)行信號。
14.如權(quán)利要求13的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理器還包括耦合到RISC控制單元以及至少一個信號處理單元用于存儲操作數(shù)以及原始和陰影數(shù)字信號處理子指令執(zhí)行的結(jié)果的數(shù)據(jù)存儲器;以及耦合到管道控制的程序存儲器,所述程序存儲器存儲原始和陰影數(shù)字信號處理子指令用于由至少一個數(shù)字信號處理單元執(zhí)行。
15.如權(quán)利要求1的用于執(zhí)行數(shù)字信號處理指令的信號處理器,所述信號處理器還包括與外部主機接口的主機接口;向外部存儲器讀和寫數(shù)據(jù)的外部存儲器接口;控制專用信號處理器的運算的定時的時鐘和鎖相環(huán);耦合到緩存來向其中發(fā)以及從其中收數(shù)據(jù)的存儲器移動引擎;并且其中至少一個信號處理單元還包括,將操作數(shù)的位排序用于執(zhí)行的數(shù)據(jù)打字機和對準器,將操作數(shù)加在一起的第三個加法器,以及將超過兩個操作數(shù)壓縮成一對操作數(shù)的壓縮器。
16.在信號處理器中執(zhí)行數(shù)字信號處理(DSP)指令的方法,所述方法包括執(zhí)行具有原始DSP子指令以及陰影DSP子指令的單一DSP指令;存儲數(shù)據(jù)用做延遲的數(shù)據(jù);以及生成選擇信號來選擇DSP功能塊的多路復(fù)用器的輸入以便基于當(dāng)前數(shù)據(jù)來在信號處理單元的原始階段里執(zhí)行原始DSP子指令并且基于延遲的數(shù)據(jù)來在信號處理單元的陰影階段里同時執(zhí)行陰影DSP子指令。
17.如權(quán)利要求16的執(zhí)行數(shù)字信號處理(DSP)指令的方法還包括選擇延遲的數(shù)據(jù)供陰影階段使用;以及基于陰影DSP子指令來控制延遲的數(shù)據(jù)的選擇。
18.如權(quán)利要求16的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,信號處理器包括多個信號處理單元,每個信號處理單元具有多個延遲的數(shù)據(jù)寄存器來存儲延遲的數(shù)據(jù)以及耦合到每個延遲的數(shù)據(jù)寄存器的陰影選擇器,還包括從信號處理單元的延遲的數(shù)據(jù)寄存器中選擇延遲的數(shù)據(jù)供信號處理單元的陰影階段使用;以及基于陰影DSP子指令來控制延遲的數(shù)據(jù)的選擇用于供信號處理單元的陰影階段使用。
19.如權(quán)利要求16的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,原始數(shù)字信號處理子指令是具有原始主運算和原始子運算的二元指令。
20.如權(quán)利要求16的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,陰影數(shù)字信號處理子指令是具有陰影主運算和陰影子運算的二元指令。
21.如權(quán)利要求19的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,原始主運算和原始子運算是從一組乘法、加法、與最小或最大值比較以及空操作中選出的兩個不同的運算。
22.如權(quán)利要求20的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,陰影主運算和陰影子運算是從一組乘法、加法、與最小或最大值比較以及空操作中選出的兩個不同的運算。
23.如權(quán)利要求16的執(zhí)行數(shù)字信號處理(DSP)指令的方法,其中,原始階段包括第一個乘法器和第一個加法器的DSP功能塊來執(zhí)行加法、減法以及與最小值或最大值的比較,并且陰影階段包括第二個乘法器和第二個加法器的DSP功能塊來執(zhí)行加法、減法以及與最小值或最大值的比較。
24.用于在數(shù)字信號處理器(DSP)里的運算執(zhí)行的指令集結(jié)構(gòu)(ISA),所述指令集結(jié)構(gòu)包括具有兩個子指令,原始DSP子指令和陰影DSP子指令的單一DSP指令;以及加速所述類型的數(shù)字信號處理器里的計算的單一DSP指令,其中D=[(A運算一B)運算二C]其中運算一是主運算并且運算二是子運算,并且主運算和子運算是單獨的信號處理運算。
25.如權(quán)利要求24的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,原始DSP子指令是具有原始主運算和原始子運算來執(zhí)行兩個運算的二元指令。
26.如權(quán)利要求25的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,原始DSP子指令的兩個運算是DSP運算。
27.如權(quán)利要求26的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,原始DSP子指令的DSP運算是一組乘法、加法、極值以及空操作。
28.如權(quán)利要求24的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,陰影DSP子指令是具有陰影主運算和陰影子運算來執(zhí)行兩個運算的二元指令。
29.如權(quán)利要求28的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,陰影DSP子指令的兩個運算是DSP運算。
30.如權(quán)利要求29的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,陰影DSP子指令的DSP運算是一組乘法、加法、極值以及空操作。
31.如權(quán)利要求24的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,原始DSP子指令是具有原始主運算和原始子運算來執(zhí)行兩個運算的二元指令,并且,陰影DSP子指令是具有陰影主運算和陰影子運算來執(zhí)行兩個運算的二元指令,因此單一DSP指令在一個單一指令中執(zhí)行四個運算。
32.如權(quán)利要求24的用于數(shù)字信號處理器里運算的執(zhí)行的指令集結(jié)構(gòu)(ISA),其中,單一DSP指令是40位指令。
33.用于在數(shù)字信號處理器中執(zhí)行的數(shù)字信號處理(DSP)指令,所述DSP指令包括包括要在一個處理器周期中被執(zhí)行的子指令的單一DSP指令;原始DSP子指令,所述原始DSP子指令是具有原始主運算和原始子運算來執(zhí)行兩個DSP運算的二元指令;以及陰影DSP子指令是具有陰影主運算和陰影子運算來執(zhí)行兩個DSP運算的二元指令;從而單一DSP指令在一個處理器周期中執(zhí)行四個DSP運算。
34.如權(quán)利要求33的用于在數(shù)字信號處理器中執(zhí)行的數(shù)字信號處理(DSP)指令,其中,所述DSP運算是一組乘法、加法、極值以及空操作。
全文摘要
單一DSP指令包括一對子指令原始DSP子指令和陰影DSP子指令。兩個子指令是在一個周期中執(zhí)行兩個運算的二元DSP指令。DSP運算包括乘法指令(MULT)、加法指令(ADD)、最小化/最大化指令(MIN/MAX)以及否定運算(NOP)。每個信號處理單元包括基于當(dāng)前數(shù)據(jù)來執(zhí)行原始子指令的原始階段以及基于在信號處理單元的寄存器里存儲的延遲的數(shù)據(jù)來同時執(zhí)行陰影DSP子指令的陰影階段。控制邏輯被用于控制陰影選擇器來選擇延遲的數(shù)據(jù)。系統(tǒng)通過用單一DSP指令同時執(zhí)行基于當(dāng)前數(shù)據(jù)的原始DSP子指令以及基于延遲的數(shù)據(jù)的陰影DSP子指令,因此在每個單一指令執(zhí)行四個運算,來執(zhí)行DSP指令。
文檔編號G06F9/318GK1471666SQ01818138
公開日2004年1月28日 申請日期2001年8月16日 優(yōu)先權(quán)日2000年8月30日
發(fā)明者K·加納帕蒂, K 加納帕蒂, R·卡納帕蒂皮萊, 膳戀倨だ 申請人:英特爾公司