• / 15
  • 下載費用:30 金幣  

數字信號處理器的數據路徑電路.pdf

關 鍵 詞:
數字信號 處理器 數據 路徑 電路
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310396061.X

申請日:

2013.09.04

公開號:

CN103677736A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||著錄事項變更IPC(主分類):G06F 7/533變更事項:發明人變更前:米卡埃爾·莫爾滕森變更后:米卡埃爾·莫爾滕森 J·G·伯恩斯坦|||實質審查的生效IPC(主分類):G06F 7/533申請日:20130904|||公開
IPC分類號: G06F7/533 主分類號: G06F7/533
申請人: 亞德諾半導體股份有限公司
發明人: 米卡埃爾·莫爾滕森
地址: 丹麥阿勒魯德
優先權: 2012.09.04 US 61/696,619
專利代理機構: 中國國際貿易促進委員會專利商標事務所 11038 代理人: 劉倜
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310396061.X

授權公告號:

|||||||||

法律狀態公告日:

2017.09.05|||2014.07.02|||2014.04.23|||2014.03.26

法律狀態類型:

授權|||著錄事項變更|||實質審查的生效|||公開

摘要

數據路徑電路可包括用于并行計算的數字乘法和累加電路(MAC)與數字硬件計算器。數字硬件計算器和MAC可耦合到用于接收輸入操作數的輸入存儲器元件。該MAC可包括數字乘法器結構,其具有耦合到加法器的部分乘積發生器以使第一和第二輸入操作數相乘并產生乘法結果。該數字硬件計算器可包括耦合在計算器輸入和計算器輸出寄存器之間的第一查找表。第一查找表可包括根據第一預定的數學函數映射到相應數學函數結果的表項目值。數字硬件計算器可配置成基于第一查找表計算很難計算的數學函數諸如對數函數、指數函數、除法函數和平方根函數。

權利要求書

權利要求書
1.  一種用于數字信號處理器的數據路徑電路,其包括:
輸入存儲器元件,其用于存儲第一輸入操作數和第二輸入操作數,
數字乘法和累加電路與數字硬件計算器,其被配置用于并行計算;
所述數字乘法和累加電路包括:
第一輸入端和第二輸入端,其均連接到所述輸入存儲器元件,用于分別接收所述第一輸入操作數和所述第二輸入操作數;
多個部分乘積發生器,其被配置用于產生所述第一輸入操作數或所述第二輸入操作數的多個部分乘積;
加法器結構,其被配置成接收和組合所述多個部分乘積以產生乘法結果;
算術邏輯單元,其被配置用于接收所述乘法結果并向其加入第一變量以計算累加的乘法結果;
第一累加器,其耦合到所述算術邏輯單元并被配置用于接收和操縱所述累加的乘法結果;
所述數字硬件計算器包括連接到所述第一輸入操作數和所述第二輸入操作數中的一個的計算器輸入端和用于存儲計算的計算器結果的計算器輸出寄存器,
第一查找表,其可操作地耦合在所述計算器輸入端和所述計算器輸出寄存器之間,
其中所述第一查找表包括根據第一預定的數學函數映射到多個相應數學函數結果的多個表項目值。

2.  根據權利要求1所述的數據路徑電路,其中所述第一輸入操作數包括N位被乘數且所述第二輸入操作數包括M位乘數;
所述多個部分乘積發生器適用于選擇所述N位被乘數的各自的部分乘積,其中每個部分乘積選自根據預定的編碼方案由與所述M位乘數的預定位集相關的所述N位被乘數計算的一組部分乘積結果;M和N的每個表示正整數。

3.  根據權利要求1所述的數據路徑電路,其中所述第一預定的數學函數選自{對數函數、指數函數、除法函數、平方根函數}的組。

4.  根據權利要求1所述的數據路徑電路,其中所述第一查找表包括將各自的N-1多個表項目值映射到所述相應數學函數結果的N維;
其中N為大于2的正整數。

5.  根據權利要求1所述的數據路徑電路,其中所述數字硬件計算器包括內插器,所述內插器被配置用于:
從所述第一查找表讀取第一數學函數結果和第二數學函數結果,
將內插操作應用到所述第一數學函數結果和所述第二數學函數結果以產生內插的數學函數結果。

6.  根據權利要求1所述的數據路徑電路,其中所述第一查找表包括存儲所述多個表項目值和所述多個相應數學函數結果的掩模可編程只讀存儲器(ROM)和可合成只讀存儲器(ROM)中的一個。

7.  根據權利要求1所述的數據路徑電路,其中所述查找表包括存儲所述多個表項目值和所述多個相應數學函數結果的可讀和可寫存儲器;由此支持運行時對所述第一預定的數學函數的改變。

8.  根據權利要求7所述的數據路徑電路,其中所述可讀和可寫存儲器包括選自{RAM、EPROM、EEPROM、快閃式存儲器、數據寄存器}的組的存儲器元件。

9.  根據權利要求1所述的數據路徑電路,包括多路復用器,其被配置成選擇性地將所述數學函數結果和所述第一輸入操作數或所述第二輸入操作數的一個傳送到所述算術邏輯單元作為所述第一變量。

10.  根據權利要求1所述的數據路徑電路,其包括:
壓縮器函數,其被插入到所述輸入存儲器元件和所述第一查找表之間,所述壓縮器函數被配置成將壓縮器輸入值的數值范圍映射到較小的壓縮器輸出值的數值范圍;
多路復用器,其被配置成選擇性地將所述第一輸入操作數和所述第二輸入操作數中的一個以及所述第一輸入操作數和所述第二輸入操作數中的一個的相應的壓縮值傳送到所述第一查找表的輸入端。

11.  根據權利要求1所述的數據路徑電路,其中所述數字硬件計算器還包括:
第二查找表,其可操作地耦合在所述第一查找表的輸出端和所述計算器輸出寄存器之間;
所述第二查找表包括根據第二預定的數學函數映射到多個相應數學函數結果的多個表項目值。

12.  根據權利要求11所述的數據路徑電路,其中所述數字硬件計算器被配置用于計算下列函數的至少一個:
負雅可比對數函數,min*(x,y)=Min(x,y)–ln(1+e(-|x-y|)以及
最大值-對數函數,max*=max(x,y)+ln(1+e e(-|x-y|));
其中x等于所述第一輸入操作數、y等于所述第二輸入操作數,所述第一預定的數學函數包括指數函數且所述第二預定的數學函數包括對數函數。

13.  根據權利要求1所述的數據路徑電路,其中由所述數字乘法和累加電路運行的計算周期在時間上與由所述數字硬件計算器運行的計算周期至少部分重疊。

14.  根據權利要求2所述的數據路徑電路,其中所述預定編碼方案包括選自{基-8和基-16、基-32、基-64、基-128)布斯編碼的組的布斯編碼方案。

15.  根據權利要求1所述的數據路徑電路,其中所述第一輸入操作數和所述第二輸入操作數的每個、所述多個表項目值、所述多個相應數學函數結果用選自{2的補碼、帶符號量值、冗余二進制帶符號數字量、進位保留}的組的常見二進制數格式來表示。

16.  一種數字信號處理器電路組件,其包括:
數字信號處理器,其包括:
根據權利要求1所述的數據路徑電路,
可讀和可寫數據存儲器空間,其用于存儲所述第一查找表;
非易失性存儲器,其存儲:
用于在所述數字信號處理器上運行的數字信號處理算法的一組可運行程序指令,
包括所述多個表項目值和所述多個相應數學函數結果的查找表數據內容。

17.  一種產生用于根據權利要求16所述的數字信號處理器電路組 件的所述查找表數據的方法,所述方法包括以下步驟:
選擇用于所述數字信號處理器的數字信號處理算法,選擇將制成表的所述數字信號處理算法的數學函數,
選擇所述第一查找表的最小表項目值、最大表項目值和表步長值,
通過基于所述選擇的數學函數、所述最小表項目值、所述最大表項目值和所述表步長值計算所述多個表項目值和所述多個相應數學函數結果而產生所述查找表數據內容,
將所述查找表數據內容寫入到所述非易失性存儲器的地址空間。

說明書

說明書數字信號處理器的數據路徑電路
本發明涉及用于數字信號處理器的數據路徑電路。數據路徑電路包括配置用于并行計算的數字乘法和累加電路(MAC結構)與數字硬件計算器。數字硬件計算器和MAC都耦合到用于接收第一二輸入操作數和第二輸入操作數的輸入存儲器元件。該MAC可包括常規的數字乘法器結構,其具有耦合到加法器結構的多個部分乘積發生器以使第一和第二輸入操作數相乘并產生乘法結果。該數字硬件計算器包括可操作地耦合在計算器輸入和計算器輸出寄存器之間的第一查找表。第一查找表包括根據第一預定的數學函數映射到多個相應數學函數結果的多個表項目值。數字硬件計算器可有利地配置成基于第一查找表計算很難計算的數學函數諸如對數函數、指數函數、除法函數和平方根函數。
發明背景
數字乘法器在數字信號處理器(DSP)中被廣泛使用用于二進制數的快速乘法。許多基本DSP算法諸如FIR濾波器、IIR濾波器、卷積和快速傅立葉變換(FFT)嚴重依賴于DSP的乘法-累加性能,使數字乘法器成為DSP的主要部件。數字乘法器通常伴有加法器以形成快速乘法-累加(所謂的MAC)計算結構。二進制數可以用各種二進制數格式諸如2的補碼、帶符號量值等表示。二進制數可用定點格式或浮點格式表示。取決于特定應用的格式和要求,用來表示N位被乘數(Y)的每個的位數即N和M位乘數(X)的每個的位數即M可以變化很大。用于表示N位被乘數和M位乘數的每個的位數通常介于8和56之間。這些傳統MAC結構非常適于提供輸入操作數或上述基本DSP算法的變量的快速乘法和加法。
然而,大量信號處理算法需要基礎數學函數,這些基礎數學函數很難計算,這些實例是對數、指數、除數和平方根。這些很難計算的函數共有難以映射到二進制數學的共同特征,例如對數函數,或者它們具有非確定性的性質例如除法操作。在此上下文中,非確定性意味著提前預測產生的數學序列是非常困難或者不實際的。該事實導致必須搜索正確解決方案的算術電路設計。作為實例,人們可以將數字乘法器和數字除法器的數學序列的預測進行比較。在傳統信號處理算法和可編程數字信號處理器的設計中,這些很難計算的數學函數的快速和有效計算已經在很大程度上不被注意。通過使用可編程DSP的傳統MAC結構的軟件例程,或者在替代方案中,通過建立專門適于計算特定類型的困難數學函數的定制數字狀態機或定制數據路徑,該方法將解決這些很難計算的數學函數。該特定數學函數可以是對數。
然而,在此類定制數字狀態機或定制數據路徑周圍建立的DSP缺乏以快速和有效節能的方式運行其它類型的很難計算的數學函數和相關聯的DSP算法的靈活性。通過適當配置的DSP軟件,可編程DSP的傳統MAC結構可以適用于運行寬范圍的DSP算法。然而,當運行上述很難計算的數學函數時,傳統MAC結構令人遺憾地緩慢和功率低效。這是因為傳統MAC結構被優化以執行乘法、加法和減法操作,并因而通過設計不適合的操作來計算其它類型的數學函數。因此,大量的MAC周期通常被計算困難數學函數的程序例程消耗。這在傳統MAC結構上強加了高計算負荷,通過阻斷或延遲形成所考慮的DSP算法的部分的其它數學函數而損害了可編程DSP的計算性能。
因此,存在對數據路徑電路的需要,數據路徑電路包括傳統的數字乘法和累加電路(MAC)與數字硬件計算器或數學加速器,MAC用于執行有效和快速的乘法、加法和減法操作,數字硬件計算器或數學加速器用于上述很難計算的數學函數的有效和快速計算。如果(MAC)和數字硬件計算器能夠并行操作來改善數據路徑電路的計算吞吐量,那么甚至將更具吸引力。因此,為了將運行的不同類型的數學函數的 不同需要,可以優化MAC和數字硬件計算器的硬件體系結構或設計。
US7,284,027涉及在用于實時DSP應用的定點或浮點數上執行高速算術計算的方法和電路單元。該公開涉及用于定點或浮點復數的乘法結合快速FFT計算的定制乘法器體系結構/拓撲結構。復數乘法器結構基于數域計算通過對數加法操作來乘以復數輸入數并隨后應用取冪以返回在線性域中的乘法結果。
US7,539,717公開了使用基于表格的泰勒級數近似來計算DSP應用中的浮點數的對數的方法和硬件電路塊。在浮點輸入操作數上執行某些預處理步驟的多個專用硬件塊耦合到浮點FMAD,其基于預處理壓縮值執行浮點輸入操作數的對數的最終計算。專用硬件塊包括第一查找表和第二查找表,分別存儲與對數函數相關聯的全精度變量和壓縮變量值。
發明內容
本發明的第一方面涉及一種用于數字信號處理器諸如由可運行程序指令控制的軟件可編程數字信號處理器的數據路徑電路。數據路徑電路包括用于存儲第一和第二輸入操作數的輸入存儲器元件例如輸入寄存器。數據路徑電路此外包括配置用于并行計算的數字乘法和累加電路和數字硬件計算器。所述數字乘法和累加電路包括:
第一輸入端和第二輸入端,其均連接到所述輸入存儲器元件,用于分別接收所述第一輸入操作數和所述第二輸入操作數;
多個部分乘積發生器,其被配置用于產生所述第一輸入操作數或所述第二輸入操作數的多個部分乘積;
加法器結構,其被配置成接收和組合所述多個部分乘積以產生乘法結果;
算術邏輯單元,其被配置用于接收所述乘法結果并向其加入第一 變量以計算累加的乘法結果;
第一累加器,其耦合到所述算術邏輯單元并被配置用于接收和操縱所述累加的乘法結果。所述數字硬件計算器包括連接到所述第一輸入操作數和所述第二輸入操作數中的一個的計算器輸入端和用于存儲計算的計算器結果的計算器輸出寄存器。所述數字硬件計算器的第一查找表可操作地耦合在所述計算器輸入端和所述計算器輸出寄存器之間。第一查找表包括根據第一預定的數學函數映射到多個相應數學函數結果的多個表項目值。
包含在本數據路徑電路中的數字硬件計算器向數據路徑電路提供了很多益處。這些尤為明顯,如果數字硬件計算器被配置成計算多個先前討論的很難計算的數學函數諸如對數函數、指數函數、除法函數和平方根函數中的一個。這些算術函數或者難以映射到二進制數學電路例如對數函數,或者是非確定性的例如除法函數。然而,這些很難計算的數學函數可以用徑直的方式以期望的精度映射到查找表。通過選擇表項目值的數量或表的大小,可以達到期望的精度水平。此外,精度可通過在相關的數學函數結果之間應用公知的表內插方案來改善。因此,對于所考慮的特定類型的算術操作,提供并行操作數字乘法和累加電路(MAC結構)與數字硬件計算器允許DSP算法的數學計算被分割成在數據路徑電路的最佳計算硬件上同時運行的單獨部分或程序例程。在這種方式下,本數據路徑電路能夠在MAC結構上運行傳統的乘法-累加操作用于FIR濾波器、IIR濾波器等,MAC結構對這些類型的計算是有效的。同時,數學函數像先前所討論的對數、除法、指數、平方根等可以在適當配置的數字硬件計算器上有效地運行。特定DSP算法的數學函數在數據路徑電路的不同計算硬件資源之間的這種分割導致相當大的功率節省和許多DSP算法的更快運行,其利用乘法、加法和減法操作與上面討論的困難的數學函數的混合。因此,數字硬件計算器可適用于支持基于貝葉斯或概率計算的非常有用的DSP算法的全部類型的有效計算。這類有用的DSP算法包括通常基于維特比算法的隱馬爾可夫模型(HMM),維特比算法又嚴重依 賴于對數函數的計算。
此外,通過在本數據路徑電路中維持傳統的MAC結構,有利于現有的DSP硬件構件、現有的可運行DSP程序例程和現有的編程模型/結構的重新使用。傳統的MAC結構是高度復雜的數字電路構件或結構,其基于幾十年的R&D及伴隨的體系結構改進以小芯片面積消耗、密集的電路布局和低功耗來提供快速乘法和加法操作。同時,通過將很難計算的數學函數的計算引導至數字硬件計算器以便改善計算吞吐量或性能和降低數據路徑電路的功耗,新DSP軟件可以利用本數據路徑體系結構的優點。對于特定DSP算法,算術操作在MAC結構和數字硬件計算器之間的分割可以在實現DSP算法的可運行代碼或程序例程產生期間由適當配置的編譯器執行。
通常,第一輸入操作數可包括N位被乘數且第二輸入操作數可包括M位乘數,其中M和N的每個表示正整數,其是第一和第二輸入操作數的各自字長。N和M的值可相同或它們可不同。N和M的每個的值可例如落在8位和64位之間。數字乘法器優選地包括編碼方案以減少部分乘積發生器的數量。根據此類實施方案,所述多個部分乘積發生器適用于選擇所述N位被乘數的各自的部分乘積,其中每個部分乘積選自根據預定的編碼方案諸如布斯編碼由與所述M位乘數的預定位集相關的所述N位被乘數計算的一組部分乘積結果。技術人員將明白,取決于數字乘法器的尺寸和復雜性,可應用不同基數的布斯編碼諸如選自{基-4、基-8和基-16、基-32、基-64、基-128}布斯編碼的組的布斯編碼方案。
二進制數諸如第一和第二輸入操作數在本數據路徑電路中優選地用常見的二進制數格式諸如選自{2的補碼、帶符號量值、冗余二進制帶符號數字、進位保留}的組的格式來表示。
在本發明的一些實施方案中,第一查找表可具有2-維結構,即將每個單一表項目值映射到單一相應的數學函數結果。然而,在其它實 施方案中,第一查找表可具有N維結構,其中N是大于2的正整數。在后種實施方案中,所述第一查找表包括將各自的N-1多個表項目值映射到所述相應數學函數結果的N維。這對于計算許多算術操作諸如除法是非常有用的,在除法中被除數或分子可以是第一輸入操作數并且除數或分母是第二輸入操作數。映射此類除法函數的查找表可由3維表格形成,其中每對輸入操作數根據除法操作映射到單一相應的數學函數結果。
在另一有用的實施方案中,數字硬件計算器包括用于表格內插的內插器。內插器被配置用于從第一查找表讀取第一和第二數學函數結果并將內插操作應用到第一和第二數學函數結果以產生內插的數學函數結果。如果相關輸入操作數的值或其它變量不能精確地匹配任一表項目值,那么內插器可應用于在第一查找表的表項目中填充間隙或通常改善數學函數結果的準確度。技術人員將理解,不同類型的內插操作或方案可通過內插器應用,諸如樣條內插或包括線性內插(它是多項式內插的特殊情況)的多項式內插。同樣,取決于第一預定的數學函數的復雜性和任何特定應用的準確度要求,內插函數可包括將除上述第一和第二數學函數結果外的附加的數學函數結果。
取決于在用于制造數據路徑電路的半導體工藝中可用的應用和存儲器選項,不同類型的存儲器元件可用于存儲第一查找表的多個表項目和多個數學函數結果的各自值,即表數據。在一個實施方案中,查找表可被制造為存儲表格數據的掩模可編程或可合成ROM。查找表在ROM中的實現通常消耗最小的半導體芯片面積并導致與查找表中讀取操作有關的低功耗。另一方面,由第一查找表映射的預定的數學函數必須在數據路徑電路的設計時進行選擇并在此后保持固定,這在一些情況下限制了靈活性。
在替代和同樣有利的實施方案中,查找表包括存儲表格數據內容的可讀和可寫存儲器元件。在此實施方案中,所述可讀和可寫存儲器優選地包括選自{RAM、EPROM、EEPROM、快閃式存儲器、數據 寄存器}的組的存儲器元件。技術人員將理解,查找表可包括上面所列類型的可讀和可寫存儲器元件的組合。使用可讀和可寫存儲器元件用于存儲表格數據允許第一預定的數學函數在運行時改變,結合產生用于包括本數據路徑電路的DSP設備的可運行程序例程或代碼。預定的數學函數因此可通過代碼研發者或程序員借助于適當的編程工具或環境諸如或SigmaStudioTM根據編程DSP算法的性質來選擇。因此,對于包括大量對數函數計算的DSP算法,查找表可被配置成映射相關對數函數諸如ln(x)、log10(x)、log2(x)等。然而,當在不同DSP應用中運行其它類型的DSP算法時,同一數據路徑電路的查找表可被配置成映射完全不同的預定的數學函數諸如平方根或除法函數。然而,通過選擇可讀和可寫存儲器類型用于存儲第一查找表,數字硬件計算器提供非常靈活的數學計算引擎或協處理器。此性質允許同一數據路徑電路通過將第一查找表的表格數據內容簡單地修改成所考慮的預定的數學函數而在各種類型DSP算法中加速數學計算。
在本數據路徑電路的另一有利的實施方案中,多路復用器被配置成選擇性地將所述數學函數結果和所述第一輸入操作數或所述第二輸入操作數的一個傳送到所述MAC結構的所述算術邏輯單元作為所述第一變量。多路復用器用于使數字硬件計算器與MAC結構緊密集成,使得來自很難計算的函數的數學函數結果可以直接注入算術邏輯單元而沒有任何時間延遲或沒有對暫存器、寄存器或存儲器移動操作等的任何需要。多路復用器優選地具有耦合到輸入存儲器元件的第一輸入端和耦合到保持數學函數結果的數字硬件計算器的輸出寄存器的第二輸入端。在這種方式下,第一變量的源頭可以用通過適當地控制多路復用器的選擇輸入端的邏輯狀態以靈活方式來選擇。
技術人員將理解,數字硬件計算器可包括插在第一查找表前面的各種預處理函數,用于預處理第一和第二輸入操作數或其它輸入變量。同樣,后處理函數諸如先前討論的內插器,可插在第一查找表之后以在計算器輸出寄存器中存儲最終的數學結果之前進一步處理所 產生的數學函數結果。在一個實施方案中,壓縮器函數插在所述輸入存儲器元件和所述第一查找表之間。所述壓縮器函數被配置成將壓縮器輸入值的數值范圍映射到較小的壓縮器輸出值的數值范圍。多路復用器此外被配置成選擇性地將所述第一輸入操作數和所述第二輸入操作數中的一個以及所述第一輸入操作數和所述第二輸入操作數的相應的壓縮值傳送到所述查找表的輸入端。在可用于減少第一查找表的尺寸的表格查找之前,壓縮器函數可用于減少第一和/或第二輸入操作數或其它輸入變量的數值范圍。
在一些實施方案中,本數據路徑電路可包括除了第一查找表外的一個或多個另外的查找表。這些另外的查找表優選地適用于映射各自的另外的很難計算的數學函數。這允許通過數字硬件計算器計算與先前討論的基本函數像上面討論的對數、除法、指數、平方根相比的高階數學函數。根據一個此類實施方案,數字硬件計算器包括可操作地耦合在所述第一查找表的輸出端和所述計算器輸出寄存器之間的第二查找表。所述第二查找表包括根據第二預定的數學函數映射到多個相應數學函數結果的多個表項目值。這后一種實施方案可以例如被配置為計算高階數學函數如:
負雅可比對數函數,min*(x,y)=Min(x,y)–ln(1+e(-|x-y|)以及
最大值-對數函數,max*=max(x,y)+ln(1+e e(-|x-y|));
其中x可等于所述第一輸入操作數且y等于所述第二輸入操作數。第一預定的數學函數可包括用于基于查找表計算1+e(-|x-y|的指數函數;第二預定的數學函數可包括自然對數函數,使得自然對數采用在第一查找表的輸出端提供的數學函數結果。
技術人員將明白,術語“并行計算”,如應用于數字乘法和累加電路與數字硬件計算器的各自的算術計算的,意味著這些算術計算可同時運行而不是相繼運行。如可選地陳述的,術語‘并行計算’意味著當數字乘法和累加電路與數字硬件計算器均操作時由數字乘法和累加 電路運行的計算周期在時間上與由數字硬件計算器運行的計算周期至少部分重疊。因此,數據路徑電路被配置成使得數學函數操作、數字硬件計算器與數字乘法和累加電路可完全獨立地運行。MAC結構和數字硬件計算器的同時計算能力并不意味著各自的計算具有相同的周期時間或被放置在數據路徑電路的公共流水線級。數字硬件計算器可例如具有比數字乘法和累加電路長的周期時間,以便傳遞各自的累加乘法結果的多個MAC操作可與數字硬件計算器的單一周期同時執行,反之亦然。可選地,適當數量的停頓周期可插入MAC結構的流水線中直到數字硬件計算器通過傳遞計算器結果已經完成其計算周期。
如上所述,所述第一輸入操作數和所述第二輸入操作數的每個、所述多個表項目值、所述多個相應數學函數結果以及優選地所述數據路徑電路的所有其它變量優選地用選自{2的補碼、帶符號量值、冗余二進制帶符號數字量、進位保留}的組的常見二進制數格式來表示。
本發明的第二方面涉及一種數字信號處理器電路組件,其包括:
數字信號處理器,其包括:
根據其上述實施方案的任一項的數據路徑電路,
可讀和可寫數據存儲器空間,其用于存儲所述第一查找表;
非易失性存儲器,其存儲:
用于在所述數字信號處理器上運行的數字信號處理算法的一組可運行程序指令,
查找表數據,其包括所述多個表項目值和所述多個相應數學函數結果。
非易失性存儲器可隨所述數字信號處理器集成在公共半導體襯 底上。可選地,非易失性存儲器可包括單獨的集成電路例如串行EEPROM或快閃式存儲器。串行EEPROM或快閃式存儲器和數字信號處理器可安裝在共享載體諸如印刷電路板上并耦合用于通過共享數據總線和各自的數據端口或接口交換數據。
根據本發明的第三方面,提供了一種產生用于上述數字信號處理器電路組件的所述查找表數據內容的方法,所述方法包括步驟:
選擇用于所述數字信號處理器的數字信號處理算法,選擇將制成表的所述數字信號處理算法的數學函數,
選擇所述第一查找表的最小表項目值、最大表項目值和表步長值,
通過基于所述選擇的數學函數、所述最小表項目值、所述最大表項目值和所述表步長值計算所述多個表項目值和所述多個相應數學函數結果而產生所述查找表數據內容,
將所述查找表數據內容寫入到所述非易失性存儲器的地址空間。
根據本發明的方法,查找表存儲在DSP的先前討論的可讀和可寫存儲器類型中,其優選地被安排在DSP的數據存儲器中。表格數據內容可結合DSP源代碼的開發在適當的基于PC或工作站的軟件工具或代碼開發環境中進行選擇或定義。軟件工具可例如適用于基于程序員或用戶說明諸如表大小、最小和最大表項目值、二進制數格式等來計算適當的表格值。表項目值和伴隨的數學函數結果可由利用PC或工作站的計算資源的軟件工具來計算并隨后被寫入和存儲于非易失性存儲器的地址空間。表項目值和伴隨的數學函數結果可通過編程端口或接口從PC或工作站傳送到數字信號處理器(DSP)。在編程后的DSP電路初始化或上電時,表項目值和伴隨的數學函數結果可在運行DSP算法期間被讀入或轉移到DSP的可讀和可寫存儲器空間諸如數據RAM空間或數據寄存器堆,以允許在DSP上運行數字信號處 理算法期間快速訪問表格數據內容。
附圖說明
本發明的優選實施方案將結合附圖進行更詳細地描述,在附圖中:
圖1是根據本發明的第一實施方案的用于數字信號處理器的數據路徑電路的示意圖;以及
圖2是圖1上描繪的數據路徑電路的數字硬件計算器的示意圖。
具體實施方式
圖1是數據路徑電路100的示意圖,它尤其適合于集成于數字信號處理器中,其中常見的實時信號處理算法需要快速計算復雜的數學函數。然而,普通技術人員將明白,本數據路徑電路100還可以被集成在傳統的微處理器設計例如數學硬件加速器或協處理器中。
數據路徑電路100包括輸入存儲器元件或塊102,例如輸入數據寄存器或RAM位置,其被配置用于存儲至少第一和第二輸入操作數。第一和第二輸入操作數可用定點或浮點格式表示并且數據路徑電路適用于每種類型的數字格式。技術人員將明白,輸入存儲器元件120可被配置成存儲一個或多個附加的輸入操作數。數據路徑電路100包括數字乘法和累加電路(MAC結構)與數字硬件計算器104,兩者都被配置用于接收第一和第二輸入操作數并且在這些操作數上運行并行計算。MAC結構包括傳統的數字乘法器106(包括多個部分乘積發生器)和合適的加法器結構,被配置用于輸入存儲器元件120中保持的第一和第二輸入操作數的乘法并提供乘法結果。技術人員將理解,數字乘法器可以是與多種類型的傳統的數字乘法器體系結構的任一項大致相同的設計或結構。在一個實施方案中,加法器結構可包括進位傳輸加法器或進位保留加法器。數字乘法器可包括部分乘積發生器的布斯(Booth)編碼例如基-4或基-8布斯編碼。當尺寸取決于第一和第 二輸入操作數的所選擇的字長時,傳統的數字乘法器106的尺寸可變化很大。取決于特定應用的要求,這些字長可以變化很大,并且可相同或不同。第一和第二輸入操作數的每個的字長可例如落在8位和64位之間。第一和第二輸入操作數優選用常見的二進制數格式諸如選自{2的補碼、帶符號量值、冗余二進制帶符號數字量、進位保留}的組的格式來表示。
由數字乘法器106產生的乘法結果通過適當的內部數據總線被傳送到算術邏輯單元110,其配置成將乘法結果加到第一變量。第一變量在多路復用器108的多路復用器輸出端提供。算術邏輯單元110的輸出是累加的乘法結果,其被傳遞到耦合算術邏輯單元的第一累加器112的輸入端,如圖所示。第一累加器112被配置成接收、臨時存儲和操縱累加的乘法結果,其通常表示特定DSP算法在運行下的中間結果。操縱累加的乘法結果可涉及多種類型的算術操作,諸如舍位、舍入、向左或向右調整等。技術人員將明白,數字乘法器106和算術邏輯單元110優選地被設計成具有傳統MAC結構。數字乘法器106可被配置成使N位被乘數即第一輸入操作數與M位乘數即第二輸入操作數相乘。數字乘法器106優選地包括多個部分乘積發生器,其適用于選擇N位被乘數的各自的部分乘積,其中每個部分乘積選自根據預定的編碼方案諸如布斯編碼由與所述M位乘數的預定位集相關的所述N位被乘數計算的一組部分乘積結果。傳統MAC結構有利地支持現有的DSP硬件構件、DSP代碼和編程模型/結構的重新使用。本MAC結構的傳統結構從而提供向后兼容性,允許快速移植現有的現場驗證的DSP軟件和算法并優化其運行。
多路復用器108與MAC結構以有利的方式緊密集成,使得第一變量的源頭可以通過控制多路復用器108的選擇輸入端S0的邏輯狀態以靈活方式來選擇。取決于S0的邏輯狀態,由數字硬件計算器104計算的數學函數結果或者保持在輸入存儲器元件102中的第一輸入操作數和第二輸入操作數中的一個通過多路復用器108的多路復用器輸出端傳送到算術邏輯單元110。同樣,保持在輸入存儲器元件102 中的任何其它相關的操作數或變量可被傳送到算術邏輯單元110。因此,在S0的一個狀態中,MAC結構能夠快速計算:
F=(x*y)+z;其中z表示選擇輸入端S0的第一邏輯狀態中的第三輸入操作數。在S0的第二、相對的邏輯狀態中,數字硬件計算器104被配置成快速計算函數如:
F=(x*y)+ln(z)或
F=(x*y)+ln(x)或
F=(x*y)+e(z)或
F=∫cosx dx=sinx+C或
F=∫tanx dx=-ln|cosx|+C
在其它實施方案中,數字硬件計算器104被配置成基于查找表210來計算概率函數。概率函數可包括二項式函數。
數字硬件計算器104優選地包括可操作地耦合在計算器輸入端和計算器輸出端之間的一個或多個查找表。計算器輸入端優選地耦合到至少第一和第二輸入操作數,而且還可耦合到其它輸入操作數或附加的數據寄存器,用于接收相關的輸入操作數或變量。數字硬件計算器104的輸出端耦合到第二累加器114,如果需要,用于操縱來自數字硬件計算器104的計算的計算器結果。數字硬件計算器104被配置成在輸入操作數上執行某些算術操作,以便基于一個或多個查找表有效地計算一個或多個很難計算的數學函數諸如對數函數、指數函數、除法函數和平方根函數,如下面進一步詳細描述的。
圖2是根據優選實施方案的數據路徑電路的數字硬件計算器104的示意圖。數字硬件計算器104從輸入存儲器元件102接收輸入操作數并可通過多路復用器204、MUX-2將未處理的輸入操作數傳送到 查找表210的項目。在替代方案中,輸入操作數可首先被傳送到任選的壓縮器函數202并且輸入操作數的經處理或經壓縮的值被傳送到查找表210的項目。由對數/線性選擇函數208控制的邏輯選擇信號被應用至多路復用器204的選擇輸入端,并從而控制輸入操作數以上面何種格式傳送給查找表210。壓縮器函數將輸入操作數的數值范圍例如用于帶符號16位整數表示的+32768--32767映射成較小數值范圍的壓縮器輸出值。輸入操作數或變量的數值范圍的這種減小可以提高由表示預定數學函數的查找表輸出的數學函數結果的準確度。或對于給定輸出的數學函數結果的準確度,壓縮操作可相反地減小所需的表項目值的數量和表的大小,例如對數壓縮器函數將導致大量表項目在0.0和1.0之間,對于更大表項目值,表項目的數量減少。該特征允許算術函數如平方根函數映射到比線性步驟在表項目之間要求的小的查找表。取決于預定的數學函數的特性、輸入操作數的數值范圍和特定DSP算法強加的準確度要求,查找表210的尺寸將自然地變化。在若干示例性2維表格實施方案中,查找表包括256和4096個單獨的表項目之間,諸如在512和1024之間的項目,與相應數量的數學函數結果。
在上文提及的一些實施方案中,查找表210可具有2-維結構,即將單一表項目值映射到單一相應的數學函數結果。然而,技術人員將明白,某些類型的預定數學函數可能需要兩個或多個輸入操作數映射到單一相應的數學函數結果。例如,對于除法操作,其中被除數或者分子可以是第一輸入操作數并且除數或分母是第二輸入操作數。這種查找表可以被認為是3維表格,其中每對輸入操作數根據除法操作映射到單一相應的數學函數結果。
保持在查找表210中的數值可以存儲在不同類型的存儲器元件中,這取決于用于數據路徑電路100的集成的半導體工藝中可用的應用和存儲器選項。在一個實施方案中,查找表210可被設計或制造成存儲多個表項目值和多個相應的數學函數結果的直接(掩模)或可合成的ROM。查找表在ROM中的實現通常使用最小的半導體芯片面 積并導致與表讀取操作有關的低功耗。另一方面,由查找表210映射的數學函數必須在數據路徑電路100的設計時進行選擇并在此后保持固定,這限制了靈活性。
在替代和同樣有利的實施方案中,查找表210被存儲在存儲多個表項目值和多個相應的數學函數結果的可讀和可寫存儲器類型諸如RAM、EPROM或EEPROM、快閃式存儲器、寄存器等中。這個實施方案允許預定的數學函數在運行時改變,結合產生用于包括本數據路徑電路100的DSP設備的可運行程序指令或代碼。根據所編程的DSP算法的性質,可因此用合適的編程工具選擇預定的數學函數。因此,對于包括大量對數函數計算的DSP算法,查找表可被配置為映射相關對數函數諸如ln(x)、log10(x)、log2(x)等。然而,當運行其它類型的DSP算法時,同一數據路徑電路的查找表可被重新配置為映射完全不同的預定的數學函數,諸如以上討論的平方根或除法函數中的一個。通過使用可讀和可寫存儲器類型用于存儲查找表,數字硬件計算器104被轉換為非常靈活的數學計算引擎或協處理器。此性質允許同一數據路徑電路104通過簡單地修改查找表的內容在大量不同的DSP算法中加速數學計算。表項目值和伴隨的數學函數結果可結合DSP源代碼的開發在適當的軟件工具或環境中進行選擇或定義。軟件工具可例如適用于基于用戶說明諸如表的大小、最小和最大表項目值、二進制數格式等來計算適當的表格值。表項目值和伴隨的數學函數結果可被下載到能夠訪問DSP電路的非易失性數據存儲器空間用于存儲。在DSP電路初始化或上電時,表項目值和伴隨的數學函數結果可被讀入或轉移到易失性數據存儲器區如RAM區或寄存器堆,在運行DSP算法期間保持查找表104的數據內容以允許快速訪問表格內容。圖2中描繪的數字硬件計算器104包括內插器212,如果輸入操作數或壓縮輸入操作數的值不能精確地匹配任一表項目值,那么內插器212可方便地用于在查找表210表項目中填充間隙或通常改善數學函數結果的準確度。內插器212被配置用于從查找表210讀取或接收第一和第二數學函數結果。第一和第二數學函數結果優選地對應 于輸入操作數的值之上和之下的最接近的數學函數結果。內插器212被配置成將內插操作或函數應用到第一和第二數學函數結果以產生內插的數學函數結果。技術人員將理解,不同類型的內插操作或方案可被應用諸如樣條內插或包括線性內插(它是多項式內插的特殊情況)的多項式內插。同樣,取決于預定的數學函數的復雜性和任何特定應用的準確度要求,內插函數可將附加的數學函數結果利用到上述第一和第二數學函數結果。對于多維查找表,內插器可以是雙線性(N=3)或三線性(N=4)內插器。對于查找表的每個額外維數,內插器要求兩個附加的數學函數結果作為輸入,使得雙線性內插器利用來自查找表的四個數學函數結果并且三線性查找表要求來自查找表的六個數學函數結果。
由內插操作產生的數學函數結果被傳送到可設置的輸出限制器214的第一輸入端。可設置的輸出限制器214被配置成處理內插數學函數結果的邊界條件,例如通過將結果舍位到數學函數結果的預定的可允許的數值范圍。如通過數據總線或線205所示的,可設置的輸出限制器214還可以適于直接從MUX2的輸出端接收第二輸入以確定查找表210的上限和/或下限是否已經被超過。此外,可設置的輸出限制器214可被配置成確定如何已經超過上限和/或下限。該信息可應用于確定如何以最佳方式限制輸出。
受限的和/或內插的數學函數結果最后臨時存儲在輸出寄存器216中。輸出寄存器優選地耦合到圖1上描繪的MAC結構中的多路復用器108的輸入端,使得存儲的數學函數結果可以直接注入MAC結構。因此,數字硬件計算器104可被用來計算第一和/或第二輸入操作數的很難計算的數學函數,同時其中此數字乘法器106計算相同輸入操作數或不同輸入操作數的乘積。在這種方式下,DSP算法的數學計算可分成不同部分或段,所述不同部分或段在數據路徑電路的特定計算硬件資源即數字硬件計算器104或MAC結構上并行運行,其最適于所考慮的特定類型的數學函數。在這種方式下,用于FIR濾波器計算等的傳統乘法-累加操作可在MAC結構上計算,而函數如先前 討論的對數、指數、平方根等可在數字硬件計算器104上計算。DSP算法在MAC結構和數字硬件計算器104之間的這種分割會導致相當大的功率節省和更快的DSP算法運行,DSP算法使用傳統的乘法-累加計算和上面討論的很難計算的數學函數的混合。用于特定DSP算法的不同類型數學操作之間的分割可以例如在實現所考慮的DSP算法的可運行代碼產生期間由適當配置的編譯器工具執行。編譯器工具或環境可以配置成將一個或多個很難計算的數學函數引導至數字硬件計算器104。可以用多種方法來進行哪種很難計算的數學函數引導至數字硬件計算器104的決定。在一種情況中,這個決定可以基于用戶的干預做出。在其它情況下,該決定可以基于很難計算的數學函數的內部優先級表。在另一實施方案中,DSP電路上DSP算法的函數模擬可應用于確定在DSP電路上哪一種或哪些種數學函數消耗最大數量的計算周期。

關于本文
本文標題:數字信號處理器的數據路徑電路.pdf
鏈接地址:http://www.pqsozv.live/p-6180825.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影