欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路的制作方法

文檔序號(hào):6510115閱讀:323來(lái)源:國(guó)知局
數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路的制作方法
【專利摘要】數(shù)據(jù)路徑電路可包括用于并行計(jì)算的數(shù)字乘法和累加電路(MAC)與數(shù)字硬件計(jì)算器。數(shù)字硬件計(jì)算器和MAC可耦合到用于接收輸入操作數(shù)的輸入存儲(chǔ)器元件。該MAC可包括數(shù)字乘法器結(jié)構(gòu),其具有耦合到加法器的部分乘積發(fā)生器以使第一和第二輸入操作數(shù)相乘并產(chǎn)生乘法結(jié)果。該數(shù)字硬件計(jì)算器可包括耦合在計(jì)算器輸入和計(jì)算器輸出寄存器之間的第一查找表。第一查找表可包括根據(jù)第一預(yù)定的數(shù)學(xué)函數(shù)映射到相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的表項(xiàng)目值。數(shù)字硬件計(jì)算器可配置成基于第一查找表計(jì)算很難計(jì)算的數(shù)學(xué)函數(shù)諸如對(duì)數(shù)函數(shù)、指數(shù)函數(shù)、除法函數(shù)和平方根函數(shù)。
【專利說(shuō)明】數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路
[0001]本發(fā)明涉及用于數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路。數(shù)據(jù)路徑電路包括配置用于并行計(jì)算的數(shù)字乘法和累加電路(MAC結(jié)構(gòu))與數(shù)字硬件計(jì)算器。數(shù)字硬件計(jì)算器和MAC都耦合到用于接收第一二輸入操作數(shù)和第二輸入操作數(shù)的輸入存儲(chǔ)器元件。該MAC可包括常規(guī)的數(shù)字乘法器結(jié)構(gòu),其具有耦合到加法器結(jié)構(gòu)的多個(gè)部分乘積發(fā)生器以使第一和第二輸入操作數(shù)相乘并產(chǎn)生乘法結(jié)果。該數(shù)字硬件計(jì)算器包括可操作地耦合在計(jì)算器輸入和計(jì)算器輸出寄存器之間的第一查找表。第一查找表包括根據(jù)第一預(yù)定的數(shù)學(xué)函數(shù)映射到多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的多個(gè)表項(xiàng)目值。數(shù)字硬件計(jì)算器可有利地配置成基于第一查找表計(jì)算很難計(jì)算的數(shù)學(xué)函數(shù)諸如對(duì)數(shù)函數(shù)、指數(shù)函數(shù)、除法函數(shù)和平方根函數(shù)。
[0002]發(fā)明背景
[0003]數(shù)字乘法器在數(shù)字信號(hào)處理器(DSP)中被廣泛使用用于二進(jìn)制數(shù)的快速乘法。許多基本DSP算法諸如FIR濾波器、IIR濾波器、卷積和快速傅立葉變換(FFT)嚴(yán)重依賴于DSP的乘法-累加性能,使數(shù)字乘法器成為DSP的主要部件。數(shù)字乘法器通常伴有加法器以形成快速乘法-累加(所謂的MAC)計(jì)算結(jié)構(gòu)。二進(jìn)制數(shù)可以用各種二進(jìn)制數(shù)格式諸如2的補(bǔ)碼、帶符號(hào)量值等表示。二進(jìn)制數(shù)可用定點(diǎn)格式或浮點(diǎn)格式表示。取決于特定應(yīng)用的格式和要求,用來(lái)表示N位被乘數(shù)(Y)的每個(gè)的位數(shù)即N和M位乘數(shù)(X)的每個(gè)的位數(shù)即M可以變化很大。用于表示N位被乘數(shù)和M位乘數(shù)的每個(gè)的位數(shù)通常介于8和56之間。這些傳統(tǒng)MAC結(jié)構(gòu)非常適于提供輸入操作數(shù)或上述基本DSP算法的變量的快速乘法和加法。
[0004]然而,大量信號(hào)處理算法需要基礎(chǔ)數(shù)學(xué)函數(shù),這些基礎(chǔ)數(shù)學(xué)函數(shù)很難計(jì)算,這些實(shí)例是對(duì)數(shù)、指數(shù)、除數(shù)和平方根。這些很難計(jì)算的函數(shù)共有難以映射到二進(jìn)制數(shù)學(xué)的共同特征,例如對(duì)數(shù)函數(shù),或者它們具有非確定性的性質(zhì)例如除法操作。在此上下文中,非確定性意味著提前預(yù)測(cè)產(chǎn)生的數(shù)學(xué)序列是非常困難或者不實(shí)際的。該事實(shí)導(dǎo)致必須搜索正確解決方案的算術(shù)電路設(shè)計(jì)。作為實(shí)例,人們可以將數(shù)字乘法器和數(shù)字除法器的數(shù)學(xué)序列的預(yù)測(cè)進(jìn)行比較。在傳統(tǒng)信號(hào)處理算法和可編程數(shù)字信號(hào)處理器的設(shè)計(jì)中,這些很難計(jì)算的數(shù)學(xué)函數(shù)的快速和有效計(jì)算已經(jīng)在很大程度上不被注意。通過(guò)使用可編程DSP的傳統(tǒng)MAC結(jié)構(gòu)的軟件例程,或者在替代方案中,通過(guò)建立專門(mén)適于計(jì)算特定類型的困難數(shù)學(xué)函數(shù)的定制數(shù)字狀態(tài)機(jī)或定制數(shù)據(jù)路徑,該方法將解決這些很難計(jì)算的數(shù)學(xué)函數(shù)。該特定數(shù)學(xué)函數(shù)可以是對(duì)數(shù)。
[0005]然而,在此類定制數(shù)字狀態(tài)機(jī)或定制數(shù)據(jù)路徑周?chē)⒌腄SP缺乏以快速和有效節(jié)能的方式運(yùn)行其它類型的很難計(jì)算的數(shù)學(xué)函數(shù)和相關(guān)聯(lián)的DSP算法的靈活性。通過(guò)適當(dāng)配置的DSP軟件,可編程DSP的傳統(tǒng)MAC結(jié)構(gòu)可以適用于運(yùn)行寬范圍的DSP算法。然而,當(dāng)運(yùn)行上述很難計(jì)算的數(shù)學(xué)函數(shù)時(shí),傳統(tǒng)MAC結(jié)構(gòu)令人遺憾地緩慢和功率低效。這是因?yàn)閭鹘y(tǒng)MAC結(jié)構(gòu)被優(yōu)化以執(zhí)行乘法、加法和減法操作,并因而通過(guò)設(shè)計(jì)不適合的操作來(lái)計(jì)算其它類型的數(shù)學(xué)函數(shù)。因此,大量的MAC周期通常被計(jì)算困難數(shù)學(xué)函數(shù)的程序例程消耗。這在傳統(tǒng)MAC結(jié)構(gòu)上強(qiáng)加了高計(jì)算負(fù)荷,通過(guò)阻斷或延遲形成所考慮的DSP算法的部分的其它數(shù)學(xué)函數(shù)而損害了可編程DSP的計(jì)算性能。
[0006]因此,存在對(duì)數(shù)據(jù)路徑電路的需要,數(shù)據(jù)路徑電路包括傳統(tǒng)的數(shù)字乘法和累加電路(MAC)與數(shù)字硬件計(jì)算器或數(shù)學(xué)加速器,MAC用于執(zhí)行有效和快速的乘法、加法和減法操作,數(shù)字硬件計(jì)算器或數(shù)學(xué)加速器用于上述很難計(jì)算的數(shù)學(xué)函數(shù)的有效和快速計(jì)算。如果(MAC)和數(shù)字硬件計(jì)算器能夠并行操作來(lái)改善數(shù)據(jù)路徑電路的計(jì)算吞吐量,那么甚至將更具吸引力。因此,為了將運(yùn)行的不同類型的數(shù)學(xué)函數(shù)的不同需要,可以優(yōu)化MAC和數(shù)字硬件計(jì)算器的硬件體系結(jié)構(gòu)或設(shè)計(jì)。
[0007]US7, 284,027涉及在用于實(shí)時(shí)DSP應(yīng)用的定點(diǎn)或浮點(diǎn)數(shù)上執(zhí)行高速算術(shù)計(jì)算的方法和電路單元。該公開(kāi)涉及用于定點(diǎn)或浮點(diǎn)復(fù)數(shù)的乘法結(jié)合快速FFT計(jì)算的定制乘法器體系結(jié)構(gòu)/拓?fù)浣Y(jié)構(gòu)。復(fù)數(shù)乘法器結(jié)構(gòu)基于數(shù)域計(jì)算通過(guò)對(duì)數(shù)加法操作來(lái)乘以復(fù)數(shù)輸入數(shù)并隨后應(yīng)用取冪以返回在線性域中的乘法結(jié)果。
[0008]US7, 539,717公開(kāi)了使用基于表格的泰勒級(jí)數(shù)近似來(lái)計(jì)算DSP應(yīng)用中的浮點(diǎn)數(shù)的對(duì)數(shù)的方法和硬件電路塊。在浮點(diǎn)輸入操作數(shù)上執(zhí)行某些預(yù)處理步驟的多個(gè)專用硬件塊耦合到浮點(diǎn)FMAD,其基于預(yù)處理壓縮值執(zhí)行浮點(diǎn)輸入操作數(shù)的對(duì)數(shù)的最終計(jì)算。專用硬件塊包括第一查找表和第二查找表,分別存儲(chǔ)與對(duì)數(shù)函數(shù)相關(guān)聯(lián)的全精度變量和壓縮變量值。

【發(fā)明內(nèi)容】

[0009]本發(fā)明的第一方面涉及一種用于數(shù)字信號(hào)處理器諸如由可運(yùn)行程序指令控制的軟件可編程數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路。數(shù)據(jù)路徑電路包括用于存儲(chǔ)第一和第二輸入操作數(shù)的輸入存儲(chǔ)器元件例如輸入寄存器。數(shù)據(jù)路徑電路此外包括配置用于并行計(jì)算的數(shù)字乘法和累加電路和數(shù)字硬件計(jì)算器。所述數(shù)字乘法和累加電路包括:
[0010]第一輸入端和第二輸入端,其均連接到所述輸入存儲(chǔ)器元件,用于分別接收所述第一輸入操作數(shù)和所述第二輸入操作數(shù);
[0011]多個(gè)部分乘積發(fā)生器,其被配置用于產(chǎn)生所述第一輸入操作數(shù)或所述第二輸入操作數(shù)的多個(gè)部分乘積;
[0012]加法器結(jié)構(gòu),其被配置成接收和組合所述多個(gè)部分乘積以產(chǎn)生乘法結(jié)果;
[0013]算術(shù)邏輯單元,其被配置用于接收所述乘法結(jié)果并向其加入第一變量以計(jì)算累加的乘法結(jié)果;
[0014]第一累加器,其耦合到所述算術(shù)邏輯單元并被配置用于接收和操縱所述累加的乘法結(jié)果。所述數(shù)字硬件計(jì)算器包括連接到所述第一輸入操作數(shù)和所述第二輸入操作數(shù)中的一個(gè)的計(jì)算器輸入端和用于存儲(chǔ)計(jì)算的計(jì)算器結(jié)果的計(jì)算器輸出寄存器。所述數(shù)字硬件計(jì)算器的第一查找表可操作地耦合在所述計(jì)算器輸入端和所述計(jì)算器輸出寄存器之間。第一查找表包括根據(jù)第一預(yù)定的數(shù)學(xué)函數(shù)映射到多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的多個(gè)表項(xiàng)目值。
[0015]包含在本數(shù)據(jù)路徑電路中的數(shù)字硬件計(jì)算器向數(shù)據(jù)路徑電路提供了很多益處。這些尤為明顯,如果數(shù)字硬件計(jì)算器被配置成計(jì)算多個(gè)先前討論的很難計(jì)算的數(shù)學(xué)函數(shù)諸如對(duì)數(shù)函數(shù)、指數(shù)函數(shù)、除法函數(shù)和平方根函數(shù)中的一個(gè)。這些算術(shù)函數(shù)或者難以映射到二進(jìn)制數(shù)學(xué)電路例如對(duì)數(shù)函數(shù),或者是非確定性的例如除法函數(shù)。然而,這些很難計(jì)算的數(shù)學(xué)函數(shù)可以用徑直的方式以期望的精度映射到查找表。通過(guò)選擇表項(xiàng)目值的數(shù)量或表的大小,可以達(dá)到期望的精度水平。此外,精度可通過(guò)在相關(guān)的數(shù)學(xué)函數(shù)結(jié)果之間應(yīng)用公知的表內(nèi)插方案來(lái)改善。因此,對(duì)于所考慮的特定類型的算術(shù)操作,提供并行操作數(shù)字乘法和累加電路(MAC結(jié)構(gòu))與數(shù)字硬件計(jì)算器允許DSP算法的數(shù)學(xué)計(jì)算被分割成在數(shù)據(jù)路徑電路的最佳計(jì)算硬件上同時(shí)運(yùn)行的單獨(dú)部分或程序例程。在這種方式下,本數(shù)據(jù)路徑電路能夠在MAC結(jié)構(gòu)上運(yùn)行傳統(tǒng)的乘法-累加操作用于FIR濾波器、IIR濾波器等,MAC結(jié)構(gòu)對(duì)這些類型的計(jì)算是有效的。同時(shí),數(shù)學(xué)函數(shù)像先前所討論的對(duì)數(shù)、除法、指數(shù)、平方根等可以在適當(dāng)配置的數(shù)字硬件計(jì)算器上有效地運(yùn)行。特定DSP算法的數(shù)學(xué)函數(shù)在數(shù)據(jù)路徑電路的不同計(jì)算硬件資源之間的這種分割導(dǎo)致相當(dāng)大的功率節(jié)省和許多DSP算法的更快運(yùn)行,其利用乘法、加法和減法操作與上面討論的困難的數(shù)學(xué)函數(shù)的混合。因此,數(shù)字硬件計(jì)算器可適用于支持基于貝葉斯或概率計(jì)算的非常有用的DSP算法的全部類型的有效計(jì)算。這類有用的DSP算法包括通常基于維特比算法的隱馬爾可夫模型(HMM),維特比算法又嚴(yán)重依賴于對(duì)數(shù)函數(shù)的計(jì)算。
[0016]此外,通過(guò)在本數(shù)據(jù)路徑電路中維持傳統(tǒng)的MAC結(jié)構(gòu),有利于現(xiàn)有的DSP硬件構(gòu)件、現(xiàn)有的可運(yùn)行DSP程序例程和現(xiàn)有的編程模型/結(jié)構(gòu)的重新使用。傳統(tǒng)的MAC結(jié)構(gòu)是高度復(fù)雜的數(shù)字電路構(gòu)件或結(jié)構(gòu),其基于幾十年的R&D及伴隨的體系結(jié)構(gòu)改進(jìn)以小芯片面積消耗、密集的電路布局和低功耗來(lái)提供快速乘法和加法操作。同時(shí),通過(guò)將很難計(jì)算的數(shù)學(xué)函數(shù)的計(jì)算引導(dǎo)至數(shù)字硬件計(jì)算器以便改善計(jì)算吞吐量或性能和降低數(shù)據(jù)路徑電路的功耗,新DSP軟件可以利用本數(shù)據(jù)路徑體系結(jié)構(gòu)的優(yōu)點(diǎn)。對(duì)于特定DSP算法,算術(shù)操作在MAC結(jié)構(gòu)和數(shù)字硬件計(jì)算器之間的分割可以在實(shí)現(xiàn)DSP算法的可運(yùn)行代碼或程序例程產(chǎn)生期間由適當(dāng)配置的編譯器執(zhí)行。
[0017]通常,第一輸入操作數(shù)可包括N位被乘數(shù)且第二輸入操作數(shù)可包括M位乘數(shù),其中M和N的每個(gè)表示正整數(shù),其是第一和第二輸入操作數(shù)的各自字長(zhǎng)。N和M的值可相同或它們可不同。N和M的每個(gè)的值可例如落在8位和64位之間。數(shù)字乘法器優(yōu)選地包括編碼方案以減少部分乘積發(fā)生器的數(shù)量。根據(jù)此類實(shí)施方案,所述多個(gè)部分乘積發(fā)生器適用于選擇所述N位被乘數(shù)的各自的部分乘積,其中每個(gè)部分乘積選自根據(jù)預(yù)定的編碼方案諸如布斯編碼由與所述M位乘數(shù)的預(yù)定位集相關(guān)的所述N位被乘數(shù)計(jì)算的一組部分乘積結(jié)果。技術(shù)人員將明白,取決于數(shù)字乘法器的尺寸和復(fù)雜性,可應(yīng)用不同基數(shù)的布斯編碼諸如選自{基_4、基-8和基-16、基-32、基-64、基-128}布斯編碼的組的布斯編碼方案。
[0018]二進(jìn)制數(shù)諸如第一和第二輸入操作數(shù)在本數(shù)據(jù)路徑電路中優(yōu)選地用常見(jiàn)的二進(jìn)制數(shù)格式諸如選自{2的補(bǔ)碼、帶符號(hào)量值、冗余二進(jìn)制帶符號(hào)數(shù)字、進(jìn)位保留}的組的格式來(lái)表示。
[0019]在本發(fā)明的一些實(shí)施方案中,第一查找表可具有2-維結(jié)構(gòu),即將每個(gè)單一表項(xiàng)目值映射到單一相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果。然而,在其它實(shí)施方案中,第一查找表可具有N維結(jié)構(gòu),其中N是大于2的正整數(shù)。在后種實(shí)施方案中,所述第一查找表包括將各自的N-1多個(gè)表項(xiàng)目值映射到所述相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的N維。這對(duì)于計(jì)算許多算術(shù)操作諸如除法是非常有用的,在除法中被除數(shù)或分子可以是第一輸入操作數(shù)并且除數(shù)或分母是第二輸入操作數(shù)。映射此類除法函數(shù)的查找表可由3維表格形成,其中每對(duì)輸入操作數(shù)根據(jù)除法操作映射到單一相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果。
[0020]在另一有用的實(shí)施方案中,數(shù)字硬件計(jì)算器包括用于表格內(nèi)插的內(nèi)插器。內(nèi)插器被配置用于從第一查找表讀取第一和第二數(shù)學(xué)函數(shù)結(jié)果并將內(nèi)插操作應(yīng)用到第一和第二數(shù)學(xué)函數(shù)結(jié)果以產(chǎn)生內(nèi)插的數(shù)學(xué)函數(shù)結(jié)果。如果相關(guān)輸入操作數(shù)的值或其它變量不能精確地匹配任一表項(xiàng)目值,那么內(nèi)插器可應(yīng)用于在第一查找表的表項(xiàng)目中填充間隙或通常改善數(shù)學(xué)函數(shù)結(jié)果的準(zhǔn)確度。技術(shù)人員將理解,不同類型的內(nèi)插操作或方案可通過(guò)內(nèi)插器應(yīng)用,諸如樣條內(nèi)插或包括線性內(nèi)插(它是多項(xiàng)式內(nèi)插的特殊情況)的多項(xiàng)式內(nèi)插。同樣,取決于第一預(yù)定的數(shù)學(xué)函數(shù)的復(fù)雜性和任何特定應(yīng)用的準(zhǔn)確度要求,內(nèi)插函數(shù)可包括將除上述第一和第二數(shù)學(xué)函數(shù)結(jié)果外的附加的數(shù)學(xué)函數(shù)結(jié)果。
[0021]取決于在用于制造數(shù)據(jù)路徑電路的半導(dǎo)體工藝中可用的應(yīng)用和存儲(chǔ)器選項(xiàng),不同類型的存儲(chǔ)器元件可用于存儲(chǔ)第一查找表的多個(gè)表項(xiàng)目和多個(gè)數(shù)學(xué)函數(shù)結(jié)果的各自值,即表數(shù)據(jù)。在一個(gè)實(shí)施方案中,查找表可被制造為存儲(chǔ)表格數(shù)據(jù)的掩??删幊袒蚩珊铣蒖OM。查找表在ROM中的實(shí)現(xiàn)通常消耗最小的半導(dǎo)體芯片面積并導(dǎo)致與查找表中讀取操作有關(guān)的低功耗。另一方面,由第一查找表映射的預(yù)定的數(shù)學(xué)函數(shù)必須在數(shù)據(jù)路徑電路的設(shè)計(jì)時(shí)進(jìn)行選擇并在此后保持固定,這在一些情況下限制了靈活性。
[0022]在替代和同樣有利的實(shí)施方案中,查找表包括存儲(chǔ)表格數(shù)據(jù)內(nèi)容的可讀和可寫(xiě)存儲(chǔ)器元件。在此實(shí)施方案中,所述可讀和可寫(xiě)存儲(chǔ)器優(yōu)選地包括選自{RAM、EPR0M、EEPR0M、快閃式存儲(chǔ)器、數(shù)據(jù)寄存器}的組的存儲(chǔ)器元件。技術(shù)人員將理解,查找表可包括上面所列類型的可讀和可寫(xiě)存儲(chǔ)器元件的組合。使用可讀和可寫(xiě)存儲(chǔ)器元件用于存儲(chǔ)表格數(shù)據(jù)允許第一預(yù)定的數(shù)學(xué)函數(shù)在運(yùn)行時(shí)改變,結(jié)合產(chǎn)生用于包括本數(shù)據(jù)路徑電路的DSP設(shè)備的可運(yùn)行程序例程或代碼。預(yù)定的數(shù)學(xué)函數(shù)因此可通過(guò)代碼研發(fā)者或程序員借助于適當(dāng)?shù)木幊坦ぞ呋颦h(huán)境諸如VisualDSP++?或SigmaStudio?根據(jù)編程DSP算法的性質(zhì)來(lái)選擇。因此,
對(duì)于包括大量對(duì)數(shù)函數(shù)計(jì)算的DSP算法,查找表可被配置成映射相關(guān)對(duì)數(shù)函數(shù)諸如In(X)、1glO (X)、log2(x)等。然而,當(dāng)在不同DSP應(yīng)用中運(yùn)行其它類型的DSP算法時(shí),同一數(shù)據(jù)路徑電路的查找表可被配置成映射完全不同的預(yù)定的數(shù)學(xué)函數(shù)諸如平方根或除法函數(shù)。然而,通過(guò)選擇可讀和可寫(xiě)存儲(chǔ)器類型用于存儲(chǔ)第一查找表,數(shù)字硬件計(jì)算器提供非常靈活的數(shù)學(xué)計(jì)算引擎或協(xié)處理器。此性質(zhì)允許同一數(shù)據(jù)路徑電路通過(guò)將第一查找表的表格數(shù)據(jù)內(nèi)容簡(jiǎn)單地修改成所考慮的預(yù)定的數(shù)學(xué)函數(shù)而在各種類型DSP算法中加速數(shù)學(xué)計(jì)算。
[0023]在本數(shù)據(jù)路徑電路的另一有利的實(shí)施方案中,多路復(fù)用器被配置成選擇性地將所述數(shù)學(xué)函數(shù)結(jié)果和所述第一輸入操作數(shù)或所述第二輸入操作數(shù)的一個(gè)傳送到所述MAC結(jié)構(gòu)的所述算術(shù)邏輯單元作為所述第一變量。多路復(fù)用器用于使數(shù)字硬件計(jì)算器與MAC結(jié)構(gòu)緊密集成,使得來(lái)自很難計(jì)算的函數(shù)的數(shù)學(xué)函數(shù)結(jié)果可以直接注入算術(shù)邏輯單元而沒(méi)有任何時(shí)間延遲或沒(méi)有對(duì)暫存器、寄存器或存儲(chǔ)器移動(dòng)操作等的任何需要。多路復(fù)用器優(yōu)選地具有耦合到輸入存儲(chǔ)器元件的第一輸入端和耦合到保持?jǐn)?shù)學(xué)函數(shù)結(jié)果的數(shù)字硬件計(jì)算器的輸出寄存器的第二輸入端。在這種方式下,第一變量的源頭可以用通過(guò)適當(dāng)?shù)乜刂贫嗦窂?fù)用器的選擇輸入端的邏輯狀態(tài)以靈活方式來(lái)選擇。
[0024]技術(shù)人員將理解,數(shù)字硬件計(jì)算器可包括插在第一查找表前面的各種預(yù)處理函數(shù),用于預(yù)處理第一和第二輸入操作數(shù)或其它輸入變量。同樣,后處理函數(shù)諸如先前討論的內(nèi)插器,可插在第一查找表之后以在計(jì)算器輸出寄存器中存儲(chǔ)最終的數(shù)學(xué)結(jié)果之前進(jìn)一步處理所產(chǎn)生的數(shù)學(xué)函數(shù)結(jié)果。在一個(gè)實(shí)施方案中,壓縮器函數(shù)插在所述輸入存儲(chǔ)器元件和所述第一查找表之間。所述壓縮器函數(shù)被配置成將壓縮器輸入值的數(shù)值范圍映射到較小的壓縮器輸出值的數(shù)值范圍。多路復(fù)用器此外被配置成選擇性地將所述第一輸入操作數(shù)和所述第二輸入操作數(shù)中的一個(gè)以及所述第一輸入操作數(shù)和所述第二輸入操作數(shù)的相應(yīng)的壓縮值傳送到所述查找表的輸入端。在可用于減少第一查找表的尺寸的表格查找之前,壓縮器函數(shù)可用于減少第一和/或第二輸入操作數(shù)或其它輸入變量的數(shù)值范圍。
[0025]在一些實(shí)施方案中,本數(shù)據(jù)路徑電路可包括除了第一查找表外的一個(gè)或多個(gè)另外的查找表。這些另外的查找表優(yōu)選地適用于映射各自的另外的很難計(jì)算的數(shù)學(xué)函數(shù)。這允許通過(guò)數(shù)字硬件計(jì)算器計(jì)算與先前討論的基本函數(shù)像上面討論的對(duì)數(shù)、除法、指數(shù)、平方根相比的高階數(shù)學(xué)函數(shù)。根據(jù)一個(gè)此類實(shí)施方案,數(shù)字硬件計(jì)算器包括可操作地耦合在所述第一查找表的輸出端和所述計(jì)算器輸出寄存器之間的第二查找表。所述第二查找表包括根據(jù)第二預(yù)定的數(shù)學(xué)函數(shù)映射到多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的多個(gè)表項(xiàng)目值。這后一種實(shí)施方案可以例如被配置為計(jì)算高階數(shù)學(xué)函數(shù)如:
[0026]負(fù)雅可比對(duì)數(shù)函數(shù),min*(x,y)=Min(x, y) - ln(l+eHxnr|)以及
[0027]最大值-對(duì)數(shù)函數(shù),max*=max(x, y)+In (1+e eHx-yl));
[0028]其中X可等于所述第一輸入操作數(shù)且I等于所述第二輸入操作數(shù)。第一預(yù)定的數(shù)學(xué)函數(shù)可包括用于基于查找表計(jì)算l+eHx_yl的指數(shù)函數(shù);第二預(yù)定的數(shù)學(xué)函數(shù)可包括自然對(duì)數(shù)函數(shù),使得自然對(duì)數(shù)采用在第一查找表的輸出端提供的數(shù)學(xué)函數(shù)結(jié)果。
[0029]技術(shù)人員將明白,術(shù)語(yǔ)“并行計(jì)算”,如應(yīng)用于數(shù)字乘法和累加電路與數(shù)字硬件計(jì)算器的各自的算術(shù)計(jì)算的,意味著這些算術(shù)計(jì)算可同時(shí)運(yùn)行而不是相繼運(yùn)行。如可選地陳述的,術(shù)語(yǔ)‘并行計(jì)算’意味著當(dāng)數(shù)字乘法和累加電路與數(shù)字硬件計(jì)算器均操作時(shí)由數(shù)字乘法和累加電路運(yùn)行的計(jì)算周期在時(shí)間上與由數(shù)字硬件計(jì)算器運(yùn)行的計(jì)算周期至少部分重疊。因此,數(shù)據(jù)路徑電路被配置成使得數(shù)學(xué)函數(shù)操作、數(shù)字硬件計(jì)算器與數(shù)字乘法和累加電路可完全獨(dú)立地運(yùn)行。MAC結(jié)構(gòu)和數(shù)字硬件計(jì)算器的同時(shí)計(jì)算能力并不意味著各自的計(jì)算具有相同的周期時(shí)間或被放置在數(shù)據(jù)路徑電路的公共流水線級(jí)。數(shù)字硬件計(jì)算器可例如具有比數(shù)字乘法和累加電路長(zhǎng)的周期時(shí)間,以便傳遞各自的累加乘法結(jié)果的多個(gè)MAC操作可與數(shù)字硬件計(jì)算器的單一周期同時(shí)執(zhí)行,反之亦然??蛇x地,適當(dāng)數(shù)量的停頓周期可插入MAC結(jié)構(gòu)的流水線中直到數(shù)字硬件計(jì)算器通過(guò)傳遞計(jì)算器結(jié)果已經(jīng)完成其計(jì)算周期。
[0030]如上所述,所述第一輸入操作數(shù)和所述第二輸入操作數(shù)的每個(gè)、所述多個(gè)表項(xiàng)目值、所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果以及優(yōu)選地所述數(shù)據(jù)路徑電路的所有其它變量?jī)?yōu)選地用選自{2的補(bǔ)碼、帶符號(hào)量值、冗余二進(jìn)制帶符號(hào)數(shù)字量、進(jìn)位保留}的組的常見(jiàn)二進(jìn)制數(shù)格式來(lái)表示。
[0031]本發(fā)明的第二方面涉及一種數(shù)字信號(hào)處理器電路組件,其包括:
[0032]數(shù)字信號(hào)處理器,其包括:
[0033]根據(jù)其上述實(shí)施方案的任一項(xiàng)的數(shù)據(jù)路徑電路,
[0034]可讀和可寫(xiě)數(shù)據(jù)存儲(chǔ)器空間,其用于存儲(chǔ)所述第一查找表;
[0035]非易失性存儲(chǔ)器,其存儲(chǔ):
[0036]用于在所述數(shù)字信號(hào)處理器上運(yùn)行的數(shù)字信號(hào)處理算法的一組可運(yùn)行程序指令,
[0037]查找表數(shù)據(jù),其包括所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果。
[0038]非易失性存儲(chǔ)器可隨所述數(shù)字信號(hào)處理器集成在公共半導(dǎo)體襯底上??蛇x地,非易失性存儲(chǔ)器可包括單獨(dú)的集成電路例如串行EEPROM或快閃式存儲(chǔ)器。串行EEPROM或快閃式存儲(chǔ)器和數(shù)字信號(hào)處理器可安裝在共享載體諸如印刷電路板上并耦合用于通過(guò)共享數(shù)據(jù)總線和各自的數(shù)據(jù)端口或接口交換數(shù)據(jù)。
[0039]根據(jù)本發(fā)明的第三方面,提供了一種產(chǎn)生用于上述數(shù)字信號(hào)處理器電路組件的所述查找表數(shù)據(jù)內(nèi)容的方法,所述方法包括步驟:
[0040]選擇用于所述數(shù)字信號(hào)處理器的數(shù)字信號(hào)處理算法,選擇將制成表的所述數(shù)字信號(hào)處理算法的數(shù)學(xué)函數(shù),
[0041]選擇所述第一查找表的最小表項(xiàng)目值、最大表項(xiàng)目值和表步長(zhǎng)值,
[0042]通過(guò)基于所述選擇的數(shù)學(xué)函數(shù)、所述最小表項(xiàng)目值、所述最大表項(xiàng)目值和所述表步長(zhǎng)值計(jì)算所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果而產(chǎn)生所述查找表數(shù)據(jù)內(nèi)容,
[0043]將所述查找表數(shù)據(jù)內(nèi)容寫(xiě)入到所述非易失性存儲(chǔ)器的地址空間。
[0044]根據(jù)本發(fā)明的方法,查找表存儲(chǔ)在DSP的先前討論的可讀和可寫(xiě)存儲(chǔ)器類型中,其優(yōu)選地被安排在DSP的數(shù)據(jù)存儲(chǔ)器中。表格數(shù)據(jù)內(nèi)容可結(jié)合DSP源代碼的開(kāi)發(fā)在適當(dāng)?shù)幕赑C或工作站的軟件工具或代碼開(kāi)發(fā)環(huán)境中進(jìn)行選擇或定義。軟件工具可例如適用于基于程序員或用戶說(shuō)明諸如表大小、最小和最大表項(xiàng)目值、二進(jìn)制數(shù)格式等來(lái)計(jì)算適當(dāng)?shù)谋砀裰?。表?xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可由利用PC或工作站的計(jì)算資源的軟件工具來(lái)計(jì)算并隨后被寫(xiě)入和存儲(chǔ)于非易失性存儲(chǔ)器的地址空間。表項(xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可通過(guò)編程端口或接口從PC或工作站傳送到數(shù)字信號(hào)處理器(DSP)。在編程后的DSP電路初始化或上電時(shí),表項(xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可在運(yùn)行DSP算法期間被讀入或轉(zhuǎn)移到DSP的可讀和可寫(xiě)存儲(chǔ)器空間諸如數(shù)據(jù)RAM空間或數(shù)據(jù)寄存器堆,以允許在DSP上運(yùn)行數(shù)字信號(hào)處理算法期間快速訪問(wèn)表格數(shù)據(jù)內(nèi)容。
【專利附圖】

【附圖說(shuō)明】
[0045]本發(fā)明的優(yōu)選實(shí)施方案將結(jié)合附圖進(jìn)行更詳細(xì)地描述,在附圖中:
[0046]圖1是根據(jù)本發(fā)明的第一實(shí)施方案的用于數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路的示意圖;以及
[0047]圖2是圖1上描繪的數(shù)據(jù)路徑電路的數(shù)字硬件計(jì)算器的示意圖。
【具體實(shí)施方式】
[0048]圖1是數(shù)據(jù)路徑電路100的示意圖,它尤其適合于集成于數(shù)字信號(hào)處理器中,其中常見(jiàn)的實(shí)時(shí)信號(hào)處理算法需要快速計(jì)算復(fù)雜的數(shù)學(xué)函數(shù)。然而,普通技術(shù)人員將明白,本數(shù)據(jù)路徑電路100還可以被集成在傳統(tǒng)的微處理器設(shè)計(jì)例如數(shù)學(xué)硬件加速器或協(xié)處理器中。
[0049]數(shù)據(jù)路徑電路100包括輸入存儲(chǔ)器元件或塊102,例如輸入數(shù)據(jù)寄存器或RAM位置,其被配置用于存儲(chǔ)至少第一和第二輸入操作數(shù)。第一和第二輸入操作數(shù)可用定點(diǎn)或浮點(diǎn)格式表示并且數(shù)據(jù)路徑電路適用于每種類型的數(shù)字格式。技術(shù)人員將明白,輸入存儲(chǔ)器元件120可被配置成存儲(chǔ)一個(gè)或多個(gè)附加的輸入操作數(shù)。數(shù)據(jù)路徑電路100包括數(shù)字乘法和累加電路(MAC結(jié)構(gòu))與數(shù)字硬件計(jì)算器104,兩者都被配置用于接收第一和第二輸入操作數(shù)并且在這些操作數(shù)上運(yùn)行并行計(jì)算。MAC結(jié)構(gòu)包括傳統(tǒng)的數(shù)字乘法器106(包括多個(gè)部分乘積發(fā)生器)和合適的加法器結(jié)構(gòu),被配置用于輸入存儲(chǔ)器元件120中保持的第一和第二輸入操作數(shù)的乘法并提供乘法結(jié)果。技術(shù)人員將理解,數(shù)字乘法器可以是與多種類型的傳統(tǒng)的數(shù)字乘法器體系結(jié)構(gòu)的任一項(xiàng)大致相同的設(shè)計(jì)或結(jié)構(gòu)。在一個(gè)實(shí)施方案中,加法器結(jié)構(gòu)可包括進(jìn)位傳輸加法器或進(jìn)位保留加法器。數(shù)字乘法器可包括部分乘積發(fā)生器的布斯(Booth)編碼例如基-4或基-8布斯編碼。當(dāng)尺寸取決于第一和第二輸入操作數(shù)的所選擇的字長(zhǎng)時(shí),傳統(tǒng)的數(shù)字乘法器106的尺寸可變化很大。取決于特定應(yīng)用的要求,這些字長(zhǎng)可以變化很大,并且可相同或不同。第一和第二輸入操作數(shù)的每個(gè)的字長(zhǎng)可例如落在8位和64位之間。第一和第二輸入操作數(shù)優(yōu)選用常見(jiàn)的二進(jìn)制數(shù)格式諸如選自{2的補(bǔ)碼、帶符號(hào)量值、冗余二進(jìn)制帶符號(hào)數(shù)字量、進(jìn)位保留}的組的格式來(lái)表示。
[0050]由數(shù)字乘法器106產(chǎn)生的乘法結(jié)果通過(guò)適當(dāng)?shù)膬?nèi)部數(shù)據(jù)總線被傳送到算術(shù)邏輯單元110,其配置成將乘法結(jié)果加到第一變量。第一變量在多路復(fù)用器108的多路復(fù)用器輸出端提供。算術(shù)邏輯單元110的輸出是累加的乘法結(jié)果,其被傳遞到耦合算術(shù)邏輯單元的第一累加器112的輸入端,如圖所示。第一累加器112被配置成接收、臨時(shí)存儲(chǔ)和操縱累加的乘法結(jié)果,其通常表示特定DSP算法在運(yùn)行下的中間結(jié)果。操縱累加的乘法結(jié)果可涉及多種類型的算術(shù)操作,諸如舍位、舍入、向左或向右調(diào)整等。技術(shù)人員將明白,數(shù)字乘法器106和算術(shù)邏輯單元110優(yōu)選地被設(shè)計(jì)成具有傳統(tǒng)MAC結(jié)構(gòu)。數(shù)字乘法器106可被配置成使N位被乘數(shù)即第一輸入操作數(shù)與M位乘數(shù)即第二輸入操作數(shù)相乘。數(shù)字乘法器106優(yōu)選地包括多個(gè)部分乘積發(fā)生器,其適用于選擇N位被乘數(shù)的各自的部分乘積,其中每個(gè)部分乘積選自根據(jù)預(yù)定的編碼方案諸如布斯編碼由與所述M位乘數(shù)的預(yù)定位集相關(guān)的所述N位被乘數(shù)計(jì)算的一組部分乘積結(jié)果。傳統(tǒng)MAC結(jié)構(gòu)有利地支持現(xiàn)有的DSP硬件構(gòu)件、DSP代碼和編程模型/結(jié)構(gòu)的重新使用。本MAC結(jié)構(gòu)的傳統(tǒng)結(jié)構(gòu)從而提供向后兼容性,允許快速移植現(xiàn)有的現(xiàn)場(chǎng)驗(yàn)證的DSP軟件和算法并優(yōu)化其運(yùn)行。
[0051]多路復(fù)用器108與MAC結(jié)構(gòu)以有利的方式緊密集成,使得第一變量的源頭可以通過(guò)控制多路復(fù)用器108的選擇輸入端SO的邏輯狀態(tài)以靈活方式來(lái)選擇。取決于SO的邏輯狀態(tài),由數(shù)字硬件計(jì)算器104計(jì)算的數(shù)學(xué)函數(shù)結(jié)果或者保持在輸入存儲(chǔ)器元件102中的第一輸入操作數(shù)和第二輸入操作數(shù)中的一個(gè)通過(guò)多路復(fù)用器108的多路復(fù)用器輸出端傳送到算術(shù)邏輯單元HO。同樣,保持在輸入存儲(chǔ)器元件102中的任何其它相關(guān)的操作數(shù)或變量可被傳送到算術(shù)邏輯單元110。因此,在SO的一個(gè)狀態(tài)中,MAC結(jié)構(gòu)能夠快速計(jì)算:
[0052]F=(x*y)+z;其中z表示選擇輸入端SO的第一邏輯狀態(tài)中的第三輸入操作數(shù)。在SO的第二、相對(duì)的邏輯狀態(tài)中,數(shù)字硬件計(jì)算器104被配置成快速計(jì)算函數(shù)如:
[0053]F=(x*y)+ln(z)或
[0054]F=(x*y)+ln(x)或
[0055]F=(x*y)+e(z)或
[0056]F= / cosx dx=sinx+C 或
[0057]F= f tanx dx=_ln|cosx|+C
[0058]在其它實(shí)施方案中,數(shù)字硬件計(jì)算器104被配置成基于查找表210來(lái)計(jì)算概率函數(shù)。概率函數(shù)可包括二項(xiàng)式函數(shù)。
[0059]數(shù)字硬件計(jì)算器104優(yōu)選地包括可操作地耦合在計(jì)算器輸入端和計(jì)算器輸出端之間的一個(gè)或多個(gè)查找表。計(jì)算器輸入端優(yōu)選地耦合到至少第一和第二輸入操作數(shù),而且還可耦合到其它輸入操作數(shù)或附加的數(shù)據(jù)寄存器,用于接收相關(guān)的輸入操作數(shù)或變量。數(shù)字硬件計(jì)算器104的輸出端耦合到第二累加器114,如果需要,用于操縱來(lái)自數(shù)字硬件計(jì)算器104的計(jì)算的計(jì)算器結(jié)果。數(shù)字硬件計(jì)算器104被配置成在輸入操作數(shù)上執(zhí)行某些算術(shù)操作,以便基于一個(gè)或多個(gè)查找表有效地計(jì)算一個(gè)或多個(gè)很難計(jì)算的數(shù)學(xué)函數(shù)諸如對(duì)數(shù)函數(shù)、指數(shù)函數(shù)、除法函數(shù)和平方根函數(shù),如下面進(jìn)一步詳細(xì)描述的。[0060]圖2是根據(jù)優(yōu)選實(shí)施方案的數(shù)據(jù)路徑電路的數(shù)字硬件計(jì)算器104的示意圖。數(shù)字硬件計(jì)算器104從輸入存儲(chǔ)器元件102接收輸入操作數(shù)并可通過(guò)多路復(fù)用器204、MUX-2將未處理的輸入操作數(shù)傳送到查找表210的項(xiàng)目。在替代方案中,輸入操作數(shù)可首先被傳送到任選的壓縮器函數(shù)202并且輸入操作數(shù)的經(jīng)處理或經(jīng)壓縮的值被傳送到查找表210的項(xiàng)目。由對(duì)數(shù)/線性選擇函數(shù)208控制的邏輯選擇信號(hào)被應(yīng)用至多路復(fù)用器204的選擇輸入端,并從而控制輸入操作數(shù)以上面何種格式傳送給查找表210。壓縮器函數(shù)將輸入操作數(shù)的數(shù)值范圍例如用于帶符號(hào)16位整數(shù)表示的+32768—32767映射成較小數(shù)值范圍的壓縮器輸出值。輸入操作數(shù)或變量的數(shù)值范圍的這種減小可以提高由表示預(yù)定數(shù)學(xué)函數(shù)的查找表輸出的數(shù)學(xué)函數(shù)結(jié)果的準(zhǔn)確度?;?qū)τ诮o定輸出的數(shù)學(xué)函數(shù)結(jié)果的準(zhǔn)確度,壓縮操作可相反地減小所需的表項(xiàng)目值的數(shù)量和表的大小,例如對(duì)數(shù)壓縮器函數(shù)將導(dǎo)致大量表項(xiàng)目在
0.0和1.0之間,對(duì)于更大表項(xiàng)目值,表項(xiàng)目的數(shù)量減少。該特征允許算術(shù)函數(shù)如平方根函數(shù)映射到比線性步驟在表項(xiàng)目之間要求的小的查找表。取決于預(yù)定的數(shù)學(xué)函數(shù)的特性、輸入操作數(shù)的數(shù)值范圍和特定DSP算法強(qiáng)加的準(zhǔn)確度要求,查找表210的尺寸將自然地變化。在若干不例性2維表格實(shí)施方案中,查找表包括256和4096個(gè)單獨(dú)的表項(xiàng)目之間,諸如在512和1024之間的項(xiàng)目,與相應(yīng)數(shù)量的數(shù)學(xué)函數(shù)結(jié)果。
[0061]在上文提及的一些實(shí)施方案中,查找表210可具有2-維結(jié)構(gòu),即將單一表項(xiàng)目值映射到單一相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果。然而,技術(shù)人員將明白,某些類型的預(yù)定數(shù)學(xué)函數(shù)可能需要兩個(gè)或多個(gè)輸入操作數(shù)映射到單一相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果。例如,對(duì)于除法操作,其中被除數(shù)或者分子可以是第一輸入操作數(shù)并且除數(shù)或分母是第二輸入操作數(shù)。這種查找表可以被認(rèn)為是3維表格,其中每對(duì)輸入操作數(shù)根據(jù)除法操作映射到單一相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果。
[0062]保持在查找表210中的數(shù)值可以存儲(chǔ)在不同類型的存儲(chǔ)器元件中,這取決于用于數(shù)據(jù)路徑電路100的集成的半導(dǎo)體工藝中可用的應(yīng)用和存儲(chǔ)器選項(xiàng)。在一個(gè)實(shí)施方案中,查找表210可被設(shè)計(jì)或制造成存儲(chǔ)多個(gè)表項(xiàng)目值和多個(gè)相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果的直接(掩模)或可合成的ROM。查找表在ROM中的實(shí)現(xiàn)通常使用最小的半導(dǎo)體芯片面積并導(dǎo)致與表讀取操作有關(guān)的低功耗。另一方面,由查找表210映射的數(shù)學(xué)函數(shù)必須在數(shù)據(jù)路徑電路100的設(shè)計(jì)時(shí)進(jìn)行選擇并在此后保持固定,這限制了靈活性。
[0063]在替代和同樣有利的實(shí)施方案中,查找表210被存儲(chǔ)在存儲(chǔ)多個(gè)表項(xiàng)目值和多個(gè)相應(yīng)的數(shù)學(xué)函數(shù)結(jié)果的可讀和可寫(xiě)存儲(chǔ)器類型諸如RAM、EPROM或EEPR0M、快閃式存儲(chǔ)器、寄存器等中。這個(gè)實(shí)施方案允許預(yù)定的數(shù)學(xué)函數(shù)在運(yùn)行時(shí)改變,結(jié)合產(chǎn)生用于包括本數(shù)據(jù)路徑電路100的DSP設(shè)備的可運(yùn)行程序指令或代碼。根據(jù)所編程的DSP算法的性質(zhì),可因此用合適的編程工具選擇預(yù)定的數(shù)學(xué)函數(shù)。因此,對(duì)于包括大量對(duì)數(shù)函數(shù)計(jì)算的DSP算法,查找表可被配置為映射相關(guān)對(duì)數(shù)函數(shù)諸如ln(X) Uogltl(X) Uog2(X)等。然而,當(dāng)運(yùn)行其它類型的DSP算法時(shí),同一數(shù)據(jù)路徑電路的查找表可被重新配置為映射完全不同的預(yù)定的數(shù)學(xué)函數(shù),諸如以上討論的平方根或除法函數(shù)中的一個(gè)。通過(guò)使用可讀和可寫(xiě)存儲(chǔ)器類型用于存儲(chǔ)查找表,數(shù)字硬件計(jì)算器104被轉(zhuǎn)換為非常靈活的數(shù)學(xué)計(jì)算引擎或協(xié)處理器。此性質(zhì)允許同一數(shù)據(jù)路徑電路104通過(guò)簡(jiǎn)單地修改查找表的內(nèi)容在大量不同的DSP算法中加速數(shù)學(xué)計(jì)算。表項(xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可結(jié)合DSP源代碼的開(kāi)發(fā)在適當(dāng)?shù)能浖ぞ呋颦h(huán)境中進(jìn)行選擇或定義。軟件工具可例如適用于基于用戶說(shuō)明諸如表的大小、最小和最大表項(xiàng)目值、二進(jìn)制數(shù)格式等來(lái)計(jì)算適當(dāng)?shù)谋砀裰怠1眄?xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可被下載到能夠訪問(wèn)DSP電路的非易失性數(shù)據(jù)存儲(chǔ)器空間用于存儲(chǔ)。在DSP電路初始化或上電時(shí),表項(xiàng)目值和伴隨的數(shù)學(xué)函數(shù)結(jié)果可被讀入或轉(zhuǎn)移到易失性數(shù)據(jù)存儲(chǔ)器區(qū)如RAM區(qū)或寄存器堆,在運(yùn)行DSP算法期間保持查找表104的數(shù)據(jù)內(nèi)容以允許快速訪問(wèn)表格內(nèi)容。圖2中描繪的數(shù)字硬件計(jì)算器104包括內(nèi)插器212,如果輸入操作數(shù)或壓縮輸入操作數(shù)的值不能精確地匹配任一表項(xiàng)目值,那么內(nèi)插器212可方便地用于在查找表210表項(xiàng)目中填充間隙或通常改善數(shù)學(xué)函數(shù)結(jié)果的準(zhǔn)確度。內(nèi)插器212被配置用于從查找表210讀取或接收第一和第二數(shù)學(xué)函數(shù)結(jié)果。第一和第二數(shù)學(xué)函數(shù)結(jié)果優(yōu)選地對(duì)應(yīng)于輸入操作數(shù)的值之上和之下的最接近的數(shù)學(xué)函數(shù)結(jié)果。內(nèi)插器212被配置成將內(nèi)插操作或函數(shù)應(yīng)用到第一和第二數(shù)學(xué)函數(shù)結(jié)果以產(chǎn)生內(nèi)插的數(shù)學(xué)函數(shù)結(jié)果。技術(shù)人員將理解,不同類型的內(nèi)插操作或方案可被應(yīng)用諸如樣條內(nèi)插或包括線性內(nèi)插(它是多項(xiàng)式內(nèi)插的特殊情況)的多項(xiàng)式內(nèi)插。同樣,取決于預(yù)定的數(shù)學(xué)函數(shù)的復(fù)雜性和任何特定應(yīng)用的準(zhǔn)確度要求,內(nèi)插函數(shù)可將附加的數(shù)學(xué)函數(shù)結(jié)果利用到上述第一和第二數(shù)學(xué)函數(shù)結(jié)果。對(duì)于多維查找表,內(nèi)插器可以是雙線性(N=3)或三線性(N=4)內(nèi)插器。對(duì)于查找表的每個(gè)額外維數(shù),內(nèi)插器要求兩個(gè)附加的數(shù)學(xué)函數(shù)結(jié)果作為輸入,使得雙線性內(nèi)插器利用來(lái)自查找表的四個(gè)數(shù)學(xué)函數(shù)結(jié)果并且三線性查找表要求來(lái)自查找表的六個(gè)數(shù)學(xué)函數(shù)結(jié)果。
[0064]由內(nèi)插操作產(chǎn)生的數(shù)學(xué)函數(shù)結(jié)果被傳送到可設(shè)置的輸出限制器214的第一輸入端??稍O(shè)置的輸出限制器214被配置成處理內(nèi)插數(shù)學(xué)函數(shù)結(jié)果的邊界條件,例如通過(guò)將結(jié)果舍位到數(shù)學(xué)函數(shù)結(jié)果的預(yù)定的可允許的數(shù)值范圍。如通過(guò)數(shù)據(jù)總線或線205所示的,可設(shè)置的輸出限制器214還可以適于直接從MUX2的輸出端接收第二輸入以確定查找表210的上限和/或下限是否已經(jīng)被超過(guò)。此外,可設(shè)置的輸出限制器214可被配置成確定如何已經(jīng)超過(guò)上限和/或下限。該信息可應(yīng)用于確定如何以最佳方式限制輸出。
[0065]受限的和/或內(nèi)插的數(shù)學(xué)函數(shù)結(jié)果最后臨時(shí)存儲(chǔ)在輸出寄存器216中。輸出寄存器優(yōu)選地耦合到圖1上描繪的MAC結(jié)構(gòu)中的多路復(fù)用器108的輸入端,使得存儲(chǔ)的數(shù)學(xué)函數(shù)結(jié)果可以直接注入MAC結(jié)構(gòu)。因此,數(shù)字硬件計(jì)算器104可被用來(lái)計(jì)算第一和/或第二輸入操作數(shù)的很難計(jì)算的數(shù)學(xué)函數(shù),同時(shí)其中此數(shù)字乘法器106計(jì)算相同輸入操作數(shù)或不同輸入操作數(shù)的乘積。在這種方式下,DSP算法的數(shù)學(xué)計(jì)算可分成不同部分或段,所述不同部分或段在數(shù)據(jù)路徑電路的特定計(jì)算硬件資源即數(shù)字硬件計(jì)算器104或MAC結(jié)構(gòu)上并行運(yùn)行,其最適于所考慮的特定類型的數(shù)學(xué)函數(shù)。在這種方式下,用于FIR濾波器計(jì)算等的傳統(tǒng)乘法-累加操作可在MAC結(jié)構(gòu)上計(jì)算,而函數(shù)如先前討論的對(duì)數(shù)、指數(shù)、平方根等可在數(shù)字硬件計(jì)算器104上計(jì)算。DSP算法在MAC結(jié)構(gòu)和數(shù)字硬件計(jì)算器104之間的這種分割會(huì)導(dǎo)致相當(dāng)大的功率節(jié)省和更快的DSP算法運(yùn)行,DSP算法使用傳統(tǒng)的乘法-累加計(jì)算和上面討論的很難計(jì)算的數(shù)學(xué)函數(shù)的混合。用于特定DSP算法的不同類型數(shù)學(xué)操作之間的分割可以例如在實(shí)現(xiàn)所考慮的DSP算法的可運(yùn)行代碼產(chǎn)生期間由適當(dāng)配置的編譯器工具執(zhí)行。編譯器工具或環(huán)境可以配置成將一個(gè)或多個(gè)很難計(jì)算的數(shù)學(xué)函數(shù)引導(dǎo)至數(shù)字硬件計(jì)算器104??梢杂枚喾N方法來(lái)進(jìn)行哪種很難計(jì)算的數(shù)學(xué)函數(shù)引導(dǎo)至數(shù)字硬件計(jì)算器104的決定。在一種情況中,這個(gè)決定可以基于用戶的干預(yù)做出。在其它情況下,該決定可以基于很難計(jì)算的數(shù)學(xué)函數(shù)的內(nèi)部?jī)?yōu)先級(jí)表。在另一實(shí)施方案中,DSP電路上DSP算法的函數(shù)模擬可應(yīng)用于確定在DSP電路上哪一種或哪些種數(shù)學(xué)函數(shù)消耗最大數(shù)量的計(jì)算周期。
【權(quán)利要求】
1.一種用于數(shù)字信號(hào)處理器的數(shù)據(jù)路徑電路,其包括:
輸入存儲(chǔ)器元件,其用于存儲(chǔ)第一輸入操作數(shù)和第二輸入操作數(shù), 數(shù)字乘法和累加電路與數(shù)字硬件計(jì)算器,其被配置用于并行計(jì)算; 所述數(shù)字乘法和累加電路包括: 第一輸入端和第二輸入端,其均連接到所述輸入存儲(chǔ)器元件,用于分別接收所述第一輸入操作數(shù)和所述第二輸入操作數(shù); 多個(gè)部分乘積發(fā)生器,其被配置用于產(chǎn)生所述第一輸入操作數(shù)或所述第二輸入操作數(shù)的多個(gè)部分乘積; 加法器結(jié)構(gòu),其被配置成接收和組合所述多個(gè)部分乘積以產(chǎn)生乘法結(jié)果; 算術(shù)邏輯單元,其被配置用于接收所述乘法結(jié)果并向其加入第一變量以計(jì)算累加的乘法結(jié)果; 第一累加器,其耦合到所述算術(shù)邏輯單元并被配置用于接收和操縱所述累加的乘法結(jié)果; 所述數(shù)字硬件計(jì)算器包括連接到所述第一輸入操作數(shù)和所述第二輸入操作數(shù)中的一個(gè)的計(jì)算器輸入端和用于存儲(chǔ)計(jì)算的計(jì)算器結(jié)果的計(jì)算器輸出寄存器, 第一查找表,其可操作地耦合在所述計(jì)算器輸入端和所述計(jì)算器輸出寄存器之間,其中所述第一查找表包括根據(jù)第一預(yù)定的數(shù)學(xué)函數(shù)映射到多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的多個(gè)表項(xiàng)目值。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述第一輸入操作數(shù)包括N位被乘數(shù)且所述第二輸入操作數(shù)包括M位乘數(shù); 所述多個(gè)部分乘積發(fā)生器適用于選擇所述N位被乘數(shù)的各自的部分乘積,其中每個(gè)部分乘積選自根據(jù)預(yù)定的編碼方案由與所述M位乘數(shù)的預(yù)定位集相關(guān)的所述N位被乘數(shù)計(jì)算的一組部分乘積結(jié)果;M和N的每個(gè)表示正整數(shù)。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述第一預(yù)定的數(shù)學(xué)函數(shù)選自{對(duì)數(shù)函數(shù)、指數(shù)函數(shù)、除法函數(shù)、平方根函數(shù)}的組。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述第一查找表包括將各自的N-1多個(gè)表項(xiàng)目值映射到所述相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的N維; 其中N為大于2的正整數(shù)。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述數(shù)字硬件計(jì)算器包括內(nèi)插器,所述內(nèi)插器被配置用于: 從所述第一查找表讀取第一數(shù)學(xué)函數(shù)結(jié)果和第二數(shù)學(xué)函數(shù)結(jié)果, 將內(nèi)插操作應(yīng)用到所述第一數(shù)學(xué)函數(shù)結(jié)果和所述第二數(shù)學(xué)函數(shù)結(jié)果以產(chǎn)生內(nèi)插的數(shù)學(xué)函數(shù)結(jié)果。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述第一查找表包括存儲(chǔ)所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的掩??删幊讨蛔x存儲(chǔ)器(ROM)和可合成只讀存儲(chǔ)器(ROM)中的一個(gè)。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述查找表包括存儲(chǔ)所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的可讀和可寫(xiě)存儲(chǔ)器;由此支持運(yùn)行時(shí)對(duì)所述第一預(yù)定的數(shù)學(xué)函數(shù)的改變。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)路徑電路,其中所述可讀和可寫(xiě)存儲(chǔ)器包括選自{RAM、EPROM、EEPROM、快閃式存儲(chǔ)器、數(shù)據(jù)寄存器}的組的存儲(chǔ)器元件。
9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,包括多路復(fù)用器,其被配置成選擇性地將所述數(shù)學(xué)函數(shù)結(jié)果和所述第一輸入操作數(shù)或所述第二輸入操作數(shù)的一個(gè)傳送到所述算術(shù)邏輯單元作為所述第一變量。
10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其包括: 壓縮器函數(shù),其被插入到所述輸入存儲(chǔ)器元件和所述第一查找表之間,所述壓縮器函數(shù)被配置成將壓縮器輸入值的數(shù)值范圍映射到較小的壓縮器輸出值的數(shù)值范圍; 多路復(fù)用器,其被配置成選擇性地將所述第一輸入操作數(shù)和所述第二輸入操作數(shù)中的一個(gè)以及所述第一輸入操作數(shù)和所述第二輸入操作數(shù)中的一個(gè)的相應(yīng)的壓縮值傳送到所述第一查找表的輸入端。
11.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述數(shù)字硬件計(jì)算器還包括: 第二查找表,其可操作地耦合在所述第一查找表的輸出端和所述計(jì)算器輸出寄存器之間; 所述第二查找表包括根據(jù)第二預(yù)定的數(shù)學(xué)函數(shù)映射到多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的多個(gè)表項(xiàng)目值。
12.根據(jù)權(quán)利要求11所述的數(shù)據(jù)路徑電路,其中所述數(shù)字硬件計(jì)算器被配置用于計(jì)算下列函數(shù)的至少一個(gè): 負(fù)雅可比對(duì)數(shù)函數(shù),min*(x,y) =Min(x,y) -ln(l+eHx_yl)以及 最大值-對(duì)數(shù)函數(shù),max*=max(x, y)+ln(l+e eHx-yl)); 其中X等于所述第一輸入操作數(shù)、y等于所述第二輸入操作數(shù),所述第一預(yù)定的數(shù)學(xué)函數(shù)包括指數(shù)函數(shù)且所述第二預(yù)定的數(shù)學(xué)函數(shù)包括對(duì)數(shù)函數(shù)。
13.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中由所述數(shù)字乘法和累加電路運(yùn)行的計(jì)算周期在時(shí)間上與由所述數(shù)字硬件計(jì)算器運(yùn)行的計(jì)算周期至少部分重疊。
14.根據(jù)權(quán)利要求2所述的數(shù)據(jù)路徑電路,其中所述預(yù)定編碼方案包括選自{基-8和基-16、基-32、基-64、基-128)布斯編碼的組的布斯編碼方案。
15.根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路,其中所述第一輸入操作數(shù)和所述第二輸入操作數(shù)的每個(gè)、所述多個(gè)表項(xiàng)目值、所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果用選自{2的補(bǔ)碼、帶符號(hào)量值、冗余二進(jìn)制帶符號(hào)數(shù)字量、進(jìn)位保留}的組的常見(jiàn)二進(jìn)制數(shù)格式來(lái)表示。
16.一種數(shù)字信號(hào)處理器電路組件,其包括: 數(shù)字信號(hào)處理器,其包括: 根據(jù)權(quán)利要求1所述的數(shù)據(jù)路徑電路, 可讀和可寫(xiě)數(shù)據(jù)存儲(chǔ)器空間,其用于存儲(chǔ)所述第一查找表; 非易失性存儲(chǔ)器,其存儲(chǔ): 用于在所述數(shù)字信號(hào)處理器上運(yùn)行的數(shù)字信號(hào)處理算法的一組可運(yùn)行程序指令, 包括所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果的查找表數(shù)據(jù)內(nèi)容。
17.—種產(chǎn)生用于根據(jù)權(quán)利要求16所述的數(shù)字信號(hào)處理器電路組件的所述查找表數(shù)據(jù)的方法,所述方法包括以下步驟: 選擇用于所述數(shù)字信號(hào)處理器的數(shù)字信號(hào)處理算法 ,選擇將制成表的所述數(shù)字信號(hào)處理算法的數(shù)學(xué)函數(shù), 選擇所述第一查找表的最小表項(xiàng)目值、最大表項(xiàng)目值和表步長(zhǎng)值, 通過(guò)基于所述選擇的數(shù)學(xué)函數(shù)、所述最小表項(xiàng)目值、所述最大表項(xiàng)目值和所述表步長(zhǎng)值計(jì)算所述多個(gè)表項(xiàng)目值和所述多個(gè)相應(yīng)數(shù)學(xué)函數(shù)結(jié)果而產(chǎn)生所述查找表數(shù)據(jù)內(nèi)容, 將所述查找表數(shù)據(jù)內(nèi)容寫(xiě)`入到所述非易失性存儲(chǔ)器的地址空間。
【文檔編號(hào)】G06F7/533GK103677736SQ201310396061
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2013年9月4日 優(yōu)先權(quán)日:2012年9月4日
【發(fā)明者】米卡埃爾·莫爾滕森 申請(qǐng)人:亞德諾半導(dǎo)體股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
通江县| 恩施市| 宣威市| 广丰县| 东丰县| 钟山县| 莒南县| 靖宇县| 会昌县| 松潘县| 巴里| 郁南县| 纳雍县| 玛沁县| 大新县| 广汉市| 宝兴县| 乐都县| 汉寿县| 芒康县| 揭阳市| 安福县| 华阴市| 修水县| 定陶县| 铜川市| 宁乡县| 开原市| 保康县| 威信县| 恭城| 承德县| 津南区| 兰坪| 务川| 宜丰县| 元阳县| 昌吉市| 龙南县| 岐山县| 浪卡子县|