專利名稱:數(shù)字信號(hào)處理器,濾波處理方法和記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于進(jìn)行數(shù)字信號(hào)處理器(此后稱為DSP)中兩個(gè)數(shù)據(jù)表之間的“對(duì)積求和”(sum-of-product)處理(此后稱為濾波處理)的技術(shù)。
通常,DSP具有兩個(gè)分別布置在不同位置并與各自的獨(dú)立數(shù)據(jù)總線連接的存儲(chǔ)器(X存儲(chǔ)器和Y存儲(chǔ)器),并在進(jìn)行計(jì)算處理的同時(shí)對(duì)這兩個(gè)存儲(chǔ)器進(jìn)行存取。
其中,通過(guò)重復(fù)對(duì)積求和計(jì)算來(lái)實(shí)現(xiàn)濾波處理。因此,常用的DSP包括一種以硬件形式實(shí)現(xiàn)的機(jī)理,用于在存取數(shù)據(jù)后重復(fù)對(duì)積求和計(jì)算或進(jìn)行地址相加。常規(guī)DSP的基本結(jié)構(gòu)與本發(fā)明的一個(gè)實(shí)施例中所描述的DSP(
圖1)的基本結(jié)構(gòu)相同,將在對(duì)本發(fā)明優(yōu)選實(shí)施例的詳細(xì)描述中對(duì)其進(jìn)行專門解釋。下面將參照?qǐng)D1,7和8對(duì)常規(guī)DSP的操作進(jìn)行說(shuō)明。
圖7是顯示常規(guī)DSP中進(jìn)行的濾波處理的流程圖。當(dāng)處理開(kāi)始時(shí),控制器18分別在數(shù)據(jù)指針寄存器12和13中設(shè)置存儲(chǔ)在X存儲(chǔ)器3和/或Y存儲(chǔ)器4中的要進(jìn)行濾波的兩個(gè)數(shù)據(jù)表各自的頭地址(步驟D1)。當(dāng)根據(jù)所設(shè)置地址存取任意一個(gè)數(shù)據(jù)表時(shí),控制器18在地址相加值寄存器14中設(shè)置所要增加到該地址的值,以便讀出隨后的數(shù)據(jù)(步驟D2)。
控制器18通過(guò)X數(shù)據(jù)總線5和/或Y數(shù)據(jù)總線6分別從存儲(chǔ)在X存儲(chǔ)器3和/或Y存儲(chǔ)器4中的兩個(gè)數(shù)據(jù)表讀出頭數(shù)據(jù)(步驟D3)。然后,控制器18在寄存器19中設(shè)置濾波處理過(guò)程中重復(fù)進(jìn)行對(duì)積求和計(jì)算的次數(shù)(步驟D4),并控制對(duì)積求和計(jì)算單元(包括對(duì)積求和單元11和寄存器單元10)以便使用兩個(gè)數(shù)據(jù)表進(jìn)行濾波處理(步驟D5)。
在步驟D5的濾波處理過(guò)程中,在到達(dá)了所設(shè)置的次數(shù)(步驟D5a)之前,控制器18重復(fù)以下操作進(jìn)行對(duì)積求和計(jì)算處理;從X存儲(chǔ)器3和/或Y存儲(chǔ)器4中存儲(chǔ)的兩個(gè)數(shù)據(jù)表讀取數(shù)據(jù);和增加該數(shù)據(jù)的地址。在必要時(shí),控制器18向數(shù)據(jù)表中寫(xiě)入數(shù)據(jù)(步驟D5b)。當(dāng)根據(jù)寄存器19中設(shè)置的次數(shù)(步驟D5a),重復(fù)進(jìn)行了計(jì)算處理、讀取數(shù)據(jù)、地址相加和寫(xiě)入數(shù)據(jù)的操作時(shí),該濾波處理結(jié)束。
如上所述,當(dāng)使用DSP進(jìn)行濾波處理時(shí),如果分別將兩個(gè)數(shù)據(jù)表相互分離地存儲(chǔ)在X存儲(chǔ)器3和Y存儲(chǔ)器4中,在步驟D3和D5b中對(duì)兩個(gè)數(shù)據(jù)表的寫(xiě)入數(shù)據(jù)操作和讀出數(shù)據(jù)操作可以在一個(gè)時(shí)鐘周期內(nèi)并行進(jìn)行。但是,該兩個(gè)數(shù)據(jù)表被存儲(chǔ)在X存儲(chǔ)器和Y存儲(chǔ)器中的一個(gè)中,如圖8所示,對(duì)兩個(gè)數(shù)據(jù)表的寫(xiě)入數(shù)據(jù)操作和讀出數(shù)據(jù)操作是在兩個(gè)時(shí)鐘周期內(nèi)進(jìn)行的。因此,濾波處理的規(guī)模越大,其所需的時(shí)間越長(zhǎng)。
在這種情況下,在常規(guī)DSP中,事先分別在X存儲(chǔ)器和Y存儲(chǔ)器中布置所要濾波的數(shù)據(jù)表,以便獲得可能的高速濾波處理。但是,在以這種方式布置數(shù)據(jù)表的情況下,用于濾波處理的算法依賴于對(duì)X存儲(chǔ)器3和Y存儲(chǔ)器4的區(qū)分。這樣所造成的缺陷是,在不改變算法的情況下無(wú)法在兩個(gè)存儲(chǔ)器之間傳送數(shù)據(jù)表,并且無(wú)法在X存儲(chǔ)器和Y存儲(chǔ)器中靈活地布置數(shù)據(jù)表。
在現(xiàn)今的多媒體處理中,濾波處理的規(guī)模已越來(lái)越大,并且存在以多種機(jī)理來(lái)進(jìn)行濾波處理的趨勢(shì)。例如,在稱為CELP(碼激勵(lì)線性預(yù)測(cè))的語(yǔ)音壓縮處理中,編碼器中包括有解碼器中的算法,以便進(jìn)行預(yù)測(cè)處理,從而共同使用多個(gè)濾波器。
因此,在很多情況下,在一個(gè)專用濾波處理的例程中可能要訪問(wèn)多個(gè)數(shù)據(jù)表。在近年來(lái),傾向于在一個(gè)實(shí)時(shí)OS(操作系統(tǒng))上進(jìn)行多個(gè)多媒體處理。因此,更加需要能夠在動(dòng)態(tài)地將數(shù)據(jù)布置在X存儲(chǔ)器3和Y存儲(chǔ)器4中的同時(shí),高效地使用有限數(shù)量的存儲(chǔ)器資源。
因此本發(fā)明的一個(gè)目的是提供一種數(shù)字信號(hào)處理器,一種濾波方法,和一種存儲(chǔ)該方法的計(jì)算機(jī)可讀記錄介質(zhì),其中能夠高速進(jìn)行濾波處理以及靈活地布置所要濾波的數(shù)據(jù)表。
根據(jù)本發(fā)明的第一方面,提供一種數(shù)字信號(hào)處理器,其具有能夠并行存取的兩個(gè)存儲(chǔ)器(3,4),并且所要濾波的兩個(gè)數(shù)據(jù)表被存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)中的任意一個(gè)中,該數(shù)字信號(hào)處理器包括表確定裝置(18),用于確定兩個(gè)數(shù)據(jù)表是否都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中;存儲(chǔ)區(qū)分配裝置(18),用于當(dāng)表確定裝置確定出兩個(gè)數(shù)據(jù)表僅存儲(chǔ)在兩個(gè)存儲(chǔ)區(qū)(3,4)之一時(shí)分配一存儲(chǔ)區(qū),以便將兩個(gè)數(shù)據(jù)表之一復(fù)制到兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中;第一表復(fù)制裝置(18),用于將兩個(gè)數(shù)據(jù)表之一復(fù)制到由存儲(chǔ)區(qū)分配裝置(18)分配的存儲(chǔ)區(qū)中;和濾波處理裝置(10,11,15,16,18),用于使用由第一表復(fù)制裝置(18)復(fù)制的一個(gè)數(shù)據(jù)表和僅由兩個(gè)存儲(chǔ)器(3,4)中的一個(gè)存儲(chǔ)的兩個(gè)數(shù)據(jù)表中的另一個(gè)數(shù)據(jù)表,進(jìn)行濾波處理。
在上述數(shù)字信號(hào)處理器中,當(dāng)所要濾波的兩個(gè)數(shù)據(jù)表僅存儲(chǔ)在兩個(gè)存儲(chǔ)器中的一個(gè)時(shí),將一個(gè)數(shù)據(jù)表復(fù)制到另一個(gè)存儲(chǔ)器中所分配的存儲(chǔ)區(qū)。因此,所要濾波的兩個(gè)數(shù)據(jù)表被分別存儲(chǔ)在該兩個(gè)存儲(chǔ)器中。然后,濾波處理裝置可以并行地存取在不同存儲(chǔ)器中存儲(chǔ)的兩個(gè)數(shù)據(jù)表,并進(jìn)行濾波處理。這使得進(jìn)行濾波處理所需的時(shí)間減少。
在這種數(shù)字信號(hào)處理器中,無(wú)需為了獲得高速的濾波處理而將所要濾波的兩個(gè)數(shù)據(jù)表事先存儲(chǔ)在不同的存儲(chǔ)器中。因此,可以靈活地將所要濾波的數(shù)據(jù)表存儲(chǔ)在任意一個(gè)存儲(chǔ)器中,或同時(shí)存儲(chǔ)在兩個(gè)存儲(chǔ)器中。
根據(jù)本發(fā)明的第二方面,提供了一種記錄有程序的計(jì)算機(jī)可讀記錄介質(zhì)(20),該程序用于對(duì)控制器進(jìn)行控制以執(zhí)行以下步驟寫(xiě)確定步驟(步驟A8a),用于在濾波處理步驟(步驟A4-A8)中確定是否進(jìn)行寫(xiě)處理以將數(shù)據(jù)寫(xiě)入濾波處理中復(fù)制到存儲(chǔ)區(qū)的數(shù)據(jù)表中;和第二表復(fù)制步驟(步驟A10),用于將該存儲(chǔ)區(qū)中寫(xiě)入了數(shù)據(jù)的數(shù)據(jù)表復(fù)制到兩個(gè)存儲(chǔ)器(3,4)之一中的原始存儲(chǔ)區(qū)中。
因此,如果獨(dú)立于數(shù)字信號(hào)處理器提供上述的計(jì)算機(jī)可讀記錄介質(zhì),可以將常規(guī)使用的數(shù)字信號(hào)處理器定制為本發(fā)明的數(shù)字信號(hào)處理器。
通過(guò)下面的詳細(xì)說(shuō)明和附圖可以對(duì)本發(fā)明的以上目的以及其它目的和優(yōu)點(diǎn)有更清楚的理解,在附圖中圖1是顯示根據(jù)本發(fā)明一個(gè)實(shí)施例的DSP的結(jié)構(gòu)的方框圖;圖2是顯示根據(jù)本發(fā)明的實(shí)施例的濾波處理的流程圖;圖3是專門顯示圖2的濾波處理中包含的存儲(chǔ)器分配處理的流程圖;圖4是解釋存儲(chǔ)器分配處理的圖;圖5是專門顯示圖2的濾波處理中包含的存儲(chǔ)器釋放處理的流程圖;圖6是顯示根據(jù)本發(fā)明實(shí)施例,在兩個(gè)存儲(chǔ)器之間處理并行載入和存儲(chǔ)操作時(shí),進(jìn)行對(duì)積求和計(jì)算的時(shí)鐘周期數(shù)目的示意圖;圖7是顯示常規(guī)濾波處理的流程圖;和圖8是顯示根據(jù)常規(guī)方法,在一個(gè)存儲(chǔ)器中處理載入和存儲(chǔ)操作時(shí),進(jìn)行對(duì)積求和計(jì)算的時(shí)鐘周期數(shù)目的示意圖。
下面將參照附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明。
圖1是根據(jù)該實(shí)施例的DSP的結(jié)構(gòu)的方框圖。如圖所示,該DSP具有分別布置在不同位置的X存儲(chǔ)器3和Y存儲(chǔ)器4。X存儲(chǔ)器3和Y存儲(chǔ)器4分別連接到各自的數(shù)據(jù)總線(即X數(shù)據(jù)總線5和Y數(shù)據(jù)總線6)。在由稍后所述的計(jì)算單元進(jìn)行的計(jì)算過(guò)程中,可以同時(shí)地和并行地存取X存儲(chǔ)器3和Y存儲(chǔ)器4。
X存儲(chǔ)器3在其預(yù)定存儲(chǔ)區(qū)中分別存儲(chǔ)兩個(gè)數(shù)據(jù)表A和B。每個(gè)數(shù)據(jù)表A和B具有所要濾波的“n”個(gè)表單元。該數(shù)目“n”對(duì)應(yīng)于后面所述的濾波處理的重復(fù)次數(shù)。
Y存儲(chǔ)器4具有存儲(chǔ)區(qū)4A,如稍后所述,該存儲(chǔ)區(qū)被分配用來(lái)復(fù)制另一個(gè)數(shù)據(jù)表的數(shù)據(jù)內(nèi)容,并在完成濾波處理后將數(shù)據(jù)內(nèi)容從中釋放。
作為對(duì)積求和計(jì)算單元的該DSP還包括寄存器單元10,其包括分別用于存儲(chǔ)從數(shù)據(jù)表A和B讀出的數(shù)據(jù)的寄存器7和8,用于存儲(chǔ)代表對(duì)積求和計(jì)算的前一結(jié)果的數(shù)據(jù)的寄存器9,和用于設(shè)置對(duì)積求和計(jì)算的重復(fù)次數(shù)的寄存器19;對(duì)積求和單元11,用于將寄存器7存儲(chǔ)的數(shù)據(jù)和寄存器8存儲(chǔ)的數(shù)據(jù)相乘,并將所得的乘積和寄存器9存儲(chǔ)的所有數(shù)據(jù)相加。
此外,該DSP具有地址單元16,其包括用于存取X存儲(chǔ)器3和Y存儲(chǔ)器4的數(shù)據(jù)指針寄存器12和13。另外,該DSP具有地址相加值寄存器14和用于在存取數(shù)據(jù)后進(jìn)行地址相加的地址加法器15。在DSP的這種結(jié)構(gòu)中,寄存器單元10和地址單元16通過(guò)主總線17相互連接。
該DSP包括具有ROM 20、RAM 21和CPU 22的控制器18。ROM20可以可拆卸地連接到控制器18,從而可以在需要時(shí)用另一個(gè)ROM進(jìn)行替換。ROM 20可以是能夠在其上任意進(jìn)行數(shù)據(jù)讀/寫(xiě)的任何其它形式的介質(zhì),例如閃速存儲(chǔ)器等等。CPU 21執(zhí)行存儲(chǔ)在ROM 20中的程序(參見(jiàn)稍后描述的流程圖),而使用RAM 21作為其工作區(qū),使得控制器18能夠控制DSP中的各個(gè)部分。
下面將參照?qǐng)D2的流程圖對(duì)根據(jù)該實(shí)施例由DSP進(jìn)行的濾波處理進(jìn)行說(shuō)明。以下示例性說(shuō)明所針對(duì)的情況是,兩個(gè)數(shù)據(jù)表A和B都存儲(chǔ)在X存儲(chǔ)器3中,數(shù)據(jù)表B被復(fù)制到Y(jié)存儲(chǔ)器4中的預(yù)定存儲(chǔ)區(qū)4A以便進(jìn)行濾波處理。
控制器18確定是否對(duì)應(yīng)于DSP中設(shè)置的算法設(shè)置了所要濾波的數(shù)據(jù)表的存儲(chǔ)類型。換句話說(shuō),其確定兩個(gè)數(shù)據(jù)表是否被分別存儲(chǔ)在X存儲(chǔ)器3和Y存儲(chǔ)器4中(步驟A1)。在此例中,數(shù)據(jù)表A和B都存儲(chǔ)在X存儲(chǔ)器3中,因此流程前進(jìn)到步驟A2。
在步驟A2,控制器18在未存儲(chǔ)所要濾波的數(shù)據(jù)表的Y存儲(chǔ)器4中分配預(yù)定存儲(chǔ)區(qū)4A。將在稍后對(duì)該“存儲(chǔ)器分配”處理進(jìn)行專門說(shuō)明。在分配了Y存儲(chǔ)器4中的存儲(chǔ)區(qū)4A之后,控制器18將作為X存儲(chǔ)器3中存儲(chǔ)的兩個(gè)數(shù)據(jù)表之一的數(shù)據(jù)表B復(fù)制到Y(jié)存儲(chǔ)器4中的存儲(chǔ)區(qū)4A中(步驟A3)。
然后,控制器18分別在數(shù)據(jù)指針寄存器12和13中,設(shè)置X存儲(chǔ)器3中存儲(chǔ)的數(shù)據(jù)表A的頭地址和Y存儲(chǔ)器4中的存儲(chǔ)區(qū)4A中存儲(chǔ)的數(shù)據(jù)表B的頭地址(步驟A4)。而且,控制器18在地址相加值寄存器14中設(shè)置地址相加值(步驟A5),其代表了用于存取數(shù)據(jù)表中存儲(chǔ)的下一個(gè)數(shù)據(jù)所需的地址。
根據(jù)分別存儲(chǔ)在數(shù)據(jù)指針寄存器12和13中的地址,控制器18通過(guò)X數(shù)據(jù)總線5從X存儲(chǔ)器3讀出數(shù)據(jù)表A的頭數(shù)據(jù),并通過(guò)Y數(shù)據(jù)總線6從Y存儲(chǔ)器4讀出數(shù)據(jù)表B的頭數(shù)據(jù)。由于數(shù)據(jù)總線5和6是相互獨(dú)立設(shè)置的,因此控制器18能夠并行地從數(shù)據(jù)表A和B讀取數(shù)據(jù),并且所讀出的數(shù)據(jù)分別存儲(chǔ)在寄存器7和8中。此后,地址加法器15分別將存儲(chǔ)在數(shù)據(jù)指針寄存器12和13中的值與存儲(chǔ)在地址相加值寄存器14中的值相加,并將所得結(jié)果回寫(xiě)到數(shù)據(jù)指針寄存器12中(步驟A6)。
而且,控制器18在寄存器19中設(shè)置在濾波處理中對(duì)積求和計(jì)算所要重復(fù)的次數(shù)(步驟A7)。在設(shè)置完該次數(shù)之后,控制器18控制寄存器單元10、對(duì)積求和單元11、地址單元16和地址加法器15,以便在由硬件執(zhí)行循環(huán)處理的情況下,使用數(shù)據(jù)表A和B進(jìn)行濾波處理(步驟A8)。
在步驟A8的濾波處理中,控制器18確定濾波處理過(guò)程中是否要在數(shù)據(jù)表B中進(jìn)行寫(xiě)數(shù)據(jù)操作(步驟A8a),此處的數(shù)據(jù)表B已經(jīng)被復(fù)制到Y(jié)存儲(chǔ)器4中的存儲(chǔ)區(qū)4A中。當(dāng)確定要進(jìn)行寫(xiě)數(shù)據(jù)操作時(shí),控制器18設(shè)置一預(yù)定寫(xiě)標(biāo)志,并且流程前進(jìn)到步驟A8c。反之,當(dāng)確定不進(jìn)行寫(xiě)數(shù)據(jù)操作時(shí),則不設(shè)置預(yù)定標(biāo)志而使流程前進(jìn)到步驟A8c。
在到達(dá)寄存器19中設(shè)置的次數(shù)之前(步驟A8c),包括寄存器單元10和對(duì)積求和單元11的對(duì)積求和計(jì)算單元執(zhí)行以下處理計(jì)算對(duì)積求和,從X存儲(chǔ)器3和Y存儲(chǔ)器4讀出數(shù)據(jù),進(jìn)行存儲(chǔ)在數(shù)據(jù)指針寄存器12和13中的地址的加法,以及在需要時(shí)將數(shù)據(jù)寫(xiě)入數(shù)據(jù)表A和B(步驟A8d)。
具體地說(shuō),對(duì)積求和計(jì)算單元將存儲(chǔ)在寄存器8中的數(shù)據(jù)與存儲(chǔ)在寄存器7中的數(shù)據(jù)相乘,將存儲(chǔ)在寄存器9中的數(shù)據(jù)與所得乘積相加,并將所得結(jié)果回寫(xiě)到寄存器9中。從X存儲(chǔ)器3和Y存儲(chǔ)器4讀出數(shù)據(jù),以及對(duì)設(shè)置在數(shù)據(jù)指針寄存器12和13中的地址進(jìn)行加法的處理與步驟6A中相同。
如果進(jìn)行對(duì)積求和計(jì)算的次數(shù)達(dá)到了寄存器19中設(shè)置的次數(shù)(A8c),則控制器18確定步驟A2中是否實(shí)現(xiàn)了存儲(chǔ)器中預(yù)定存儲(chǔ)區(qū)的分配(步驟A9)。在該實(shí)施例中,已在Y存儲(chǔ)器4中分配了存儲(chǔ)區(qū)4A以便復(fù)制數(shù)據(jù)表B,因此流程前進(jìn)到步驟A10。
在步驟A10中,根據(jù)是否設(shè)置了寫(xiě)標(biāo)志,控制器18檢查在步驟A8d中是否在已被復(fù)制到存儲(chǔ)區(qū)4A中的數(shù)據(jù)表B中進(jìn)行了寫(xiě)數(shù)據(jù)操作。在進(jìn)行了寫(xiě)操作的情況下,控制器18將已被復(fù)制到Y(jié)存儲(chǔ)器4中的存儲(chǔ)區(qū)4A中的數(shù)據(jù)表B復(fù)制到X存儲(chǔ)器3中的某存儲(chǔ)區(qū),即數(shù)據(jù)表B原來(lái)所被存儲(chǔ)的存儲(chǔ)區(qū)。
控制器18將步驟A2中所分配的存儲(chǔ)區(qū)4A從Y存儲(chǔ)器4中釋放(步驟A11)。稍后將對(duì)該“存儲(chǔ)器釋放”處理進(jìn)行專門說(shuō)明。然后,流程結(jié)束,并且使用數(shù)據(jù)表A和B的濾波處理終止。
與上述例子不同,在所要濾波的兩個(gè)數(shù)據(jù)表被分別存儲(chǔ)在X存儲(chǔ)器3和Y存儲(chǔ)器4中的情況下,流程從步驟A1直接前進(jìn)到步驟A4。此外,在兩個(gè)數(shù)據(jù)表被分別存儲(chǔ)在它們的原始存儲(chǔ)器中的狀態(tài)下,從步驟A4直至A8執(zhí)行濾波處理。在此情況下,不在步驟A2中進(jìn)行存儲(chǔ)器分配處理,因此一旦步驟A9中的確定終止,則該流程圖的濾波處理結(jié)束。
下面將參照?qǐng)D3所示的流程圖和圖4所示的解釋圖對(duì)步驟A2中的“存儲(chǔ)器分配”處理進(jìn)行專門說(shuō)明??刂破?8確定Y存儲(chǔ)器4中連續(xù)存儲(chǔ)區(qū)的大小是否大于等于所要分配的存儲(chǔ)區(qū)4A的大小,即數(shù)據(jù)表B的大小(步驟B1)。在連續(xù)存儲(chǔ)區(qū)的大小大于等于所要分配的存儲(chǔ)區(qū)的大小的情況下,流程前進(jìn)到步驟B3。
反之,在連續(xù)自由存儲(chǔ)區(qū)的大小小于所要分配的存儲(chǔ)區(qū)的大小的情況下,控制器18執(zhí)行一定處理,以在Y存儲(chǔ)器4中準(zhǔn)備一大小足夠用于數(shù)據(jù)表B的自由存儲(chǔ)區(qū)。在該處理過(guò)程中,控制器18通過(guò)壓縮處理(compaction process)來(lái)聚集例如Y存儲(chǔ)器4中不連續(xù)的自由存儲(chǔ)區(qū),或?qū)存儲(chǔ)器4中存儲(chǔ)的無(wú)需用于濾波處理的數(shù)據(jù)復(fù)制到X存儲(chǔ)器3中(步驟B2),然后流程前進(jìn)到步驟B3。
在步驟B3中,控制器18設(shè)置Y存儲(chǔ)器4中的一自由存儲(chǔ)區(qū)的頭地址(在被分配之前該自由存儲(chǔ)區(qū)的地址中的頭地址),其將作為一個(gè)參數(shù)被從該子例程發(fā)送到主例程。即,控制器18設(shè)置該自由存儲(chǔ)區(qū)的頭地址作為要在Y存儲(chǔ)器4中分配的存儲(chǔ)區(qū)4A的頭地址。
而且,控制器18在將該自由存儲(chǔ)區(qū)分配作為存儲(chǔ)區(qū)4A之前,從其中減去所分配的存儲(chǔ)區(qū)4A的大小,并將所得值設(shè)置為Y存儲(chǔ)器4中一新自由存儲(chǔ)區(qū)的大小(步驟B4)。然后,控制器18更新Y存儲(chǔ)器4中該自由存儲(chǔ)區(qū)的頭地址,并且該存儲(chǔ)器分配處理的流程圖結(jié)束,返回圖2中所示的主例程。
下面將參照?qǐng)D5所示的流程圖對(duì)步驟A11的“存儲(chǔ)器釋放”處理進(jìn)行專門說(shuō)明??刂破?8將Y存儲(chǔ)器4中當(dāng)前自由存儲(chǔ)區(qū)的大小與在步驟A2中已分配的存儲(chǔ)區(qū)4A的大小相加,并將所得結(jié)果設(shè)置為Y存儲(chǔ)器4中自由存儲(chǔ)區(qū)的大小(步驟C1)。此后,控制器18更新Y存儲(chǔ)器4的自由存儲(chǔ)區(qū)的頭地址(步驟C2),并且該流程圖的存儲(chǔ)器釋放處理結(jié)束,返回圖2中所示的主例程。
對(duì)于如上所述根據(jù)該實(shí)施例的DSP,在所要濾波的兩個(gè)數(shù)據(jù)表A和B都被存儲(chǔ)在X存儲(chǔ)器3中的情況下,將數(shù)據(jù)表B復(fù)制到例如Y存儲(chǔ)器4中的存儲(chǔ)區(qū)4A中,然后進(jìn)行濾波處理。因此,在步驟A6或步驟A8d中,可以并行地進(jìn)行從X存儲(chǔ)器3讀取數(shù)據(jù)表A中存儲(chǔ)的數(shù)據(jù)和從Y存儲(chǔ)器4讀取數(shù)據(jù)表B中存儲(chǔ)的數(shù)據(jù)。因此,如圖6所示,讀取以上數(shù)據(jù)僅需一個(gè)時(shí)鐘周期。
對(duì)數(shù)據(jù)表的復(fù)制會(huì)增加濾波處理所需的時(shí)間周期。但是,例如在形成數(shù)據(jù)表的單元數(shù)目被設(shè)置為80并且所進(jìn)行的計(jì)算次數(shù)是240的情況下,與在兩個(gè)數(shù)據(jù)表被存儲(chǔ)在同一存儲(chǔ)器的狀態(tài)下進(jìn)行濾波處理的情形相比,根據(jù)該實(shí)施例的DSP的速度性能如下所示得以改善(1)在僅從數(shù)據(jù)表讀取數(shù)據(jù)的情況下{(240×2)-(80+249)}/(240×2)≈33%(2)在向數(shù)據(jù)表寫(xiě)入數(shù)據(jù)的情況下{(240×2)-(80×2+249)}/(240×2)≈17%因此,根據(jù)該實(shí)施例的DSP能夠使用兩個(gè)數(shù)據(jù)表以高速執(zhí)行濾波處理。另外,存儲(chǔ)在數(shù)據(jù)表中的所要計(jì)算的數(shù)據(jù)量越大,其速度差別越明顯。在所要濾波的兩個(gè)數(shù)據(jù)表最初相互分離地分別處于X存儲(chǔ)器3和Y存儲(chǔ)器4中的情況下,常規(guī)情況中同樣可以以高速進(jìn)行濾波處理。
此外,在根據(jù)該實(shí)施例的DSP中,即使在所要濾波的兩個(gè)數(shù)據(jù)表事先沒(méi)有相互分離地分別處于X存儲(chǔ)器3和Y存儲(chǔ)器4中的情況下,濾波處理所需的時(shí)間也明顯減少。因此,無(wú)需考慮數(shù)據(jù)表在存儲(chǔ)器中的布置方式,可以靈活地將數(shù)據(jù)表布置在X存儲(chǔ)器3和Y存儲(chǔ)器4中。
在上述實(shí)施例中,對(duì)于存儲(chǔ)在X存儲(chǔ)器3中的數(shù)據(jù)表A和B,將數(shù)據(jù)表B復(fù)制到Y(jié)存儲(chǔ)器4中所分配的存儲(chǔ)區(qū)4A中,從而進(jìn)行濾波處理。類似地,對(duì)于存儲(chǔ)在Y存儲(chǔ)器4中的兩個(gè)數(shù)據(jù)表,可以將其中之一復(fù)制到X存儲(chǔ)器3中所分配的存儲(chǔ)區(qū)中,從而進(jìn)行濾波處理。
在上述實(shí)施例中,在由硬件執(zhí)行的循環(huán)處理(步驟A8)的開(kāi)始要確定在所復(fù)制的數(shù)據(jù)表B中是否要進(jìn)行寫(xiě)數(shù)據(jù)操作。當(dāng)確定要進(jìn)行寫(xiě)操作時(shí),則設(shè)置寫(xiě)標(biāo)志(步驟A8b)。應(yīng)注意,當(dāng)不經(jīng)過(guò)步驟A8b的處理而在步驟A8d中進(jìn)行數(shù)據(jù)表B中的寫(xiě)數(shù)據(jù)操作時(shí),也可以設(shè)置寫(xiě)標(biāo)志??梢栽诓襟EA10之前的任何其它步驟確定在數(shù)據(jù)表B中是否進(jìn)行寫(xiě)數(shù)據(jù)操作。
在上述實(shí)施例中,CPU 22執(zhí)行存儲(chǔ)在ROM 22中的程序,使得控制器18能夠控制DSP中的各個(gè)部分并進(jìn)行濾波處理。存儲(chǔ)有程序的這種ROM 20可以與DSP分離地配送和出售。此外,包含在控制器18中的由CPU執(zhí)行的程序可以存儲(chǔ)在計(jì)算機(jī)可讀記錄介質(zhì)上,例如磁盤或光盤這樣的除了ROM芯片以外的介質(zhì),并且可以配送、出售,和載入控制器18的存儲(chǔ)器(例如閃速存儲(chǔ)器)中。通過(guò)用任何其它記錄介質(zhì)代替ROM 20或者將程序重新載入到控制器18中的存儲(chǔ)器中,能夠?qū)⒊R?guī)使用的DSP定制為本發(fā)明的DSP。
在不偏離本發(fā)明精神和范圍的情況下,可以有各種實(shí)施例和改變。上述實(shí)施例僅用于例示本發(fā)明,并不限制本發(fā)明的范圍。本發(fā)明的范圍應(yīng)由所附權(quán)利要求而不是實(shí)施例來(lái)表示。在本發(fā)明權(quán)利要求的等價(jià)范圍內(nèi)可以進(jìn)行各種修改,這些修改應(yīng)被認(rèn)為屬于本發(fā)明的范圍之內(nèi)。
本申請(qǐng)以1999年5月17日申請(qǐng)的日本專利申請(qǐng)No.H11-135348為基礎(chǔ),包括說(shuō)明書(shū),權(quán)利要求,附圖和摘要。該在先申請(qǐng)的內(nèi)容被包含在本申請(qǐng)中作為參考。
權(quán)利要求
1.一種數(shù)字信號(hào)處理器,具有兩個(gè)能夠并行存取的存儲(chǔ)器(3,4),所要濾波的兩個(gè)數(shù)據(jù)表被存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)中的任意一個(gè)中,所述處理器包括表確定裝置(18),用于確定兩個(gè)數(shù)據(jù)表是否都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中;存儲(chǔ)區(qū)分配裝置(18),用于當(dāng)所述表確定裝置確定兩個(gè)數(shù)據(jù)表僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中時(shí),分配一存儲(chǔ)區(qū),以便將兩個(gè)數(shù)據(jù)表之一復(fù)制到兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中;第一表復(fù)制裝置(18),用于將兩個(gè)數(shù)據(jù)表之一復(fù)制到由存儲(chǔ)區(qū)復(fù)制裝置(18)分配的存儲(chǔ)區(qū)中;和濾波處理裝置(10,11,15,16,18),用于使用由所述第一表復(fù)制裝置(18)復(fù)制的一個(gè)數(shù)據(jù)表和僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中的兩個(gè)數(shù)據(jù)表中的另一個(gè)數(shù)據(jù)表,進(jìn)行濾波處理。
2.根據(jù)權(quán)利要求1的數(shù)字信號(hào)處理器,還包括存儲(chǔ)器釋放裝置(18),用于當(dāng)由所述存儲(chǔ)區(qū)分配裝置(18)在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中分配了存儲(chǔ)區(qū),并由所述濾波處理裝置(10,11,15,16,18)進(jìn)行了濾波處理后,釋放所分配的存儲(chǔ)區(qū)。
3.根據(jù)權(quán)利要求1的數(shù)字信號(hào)處理器,還包括寫(xiě)確定裝置(18),用于確定在由所述濾波處理裝置(10,11,15,16,18)進(jìn)行的濾波處理中,是否進(jìn)行了將數(shù)據(jù)寫(xiě)入被復(fù)制到存儲(chǔ)區(qū)中的數(shù)據(jù)表中的寫(xiě)處理;和第二復(fù)制裝置(18),用于將被復(fù)制到存儲(chǔ)區(qū)中并被寫(xiě)入數(shù)據(jù)的數(shù)據(jù)表復(fù)制到兩個(gè)存儲(chǔ)器(3,4)之一中的原始存儲(chǔ)區(qū)中。
4.根據(jù)權(quán)利要求1的數(shù)字信號(hào)處理器,其中當(dāng)所述表確定裝置(18)確定兩個(gè)數(shù)據(jù)表被分別存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)中時(shí),所述濾波處理裝置(10,11,15,16,18)使用存儲(chǔ)在存儲(chǔ)器中的每個(gè)數(shù)據(jù)表進(jìn)行濾波處理。
5.一種數(shù)字信號(hào)處理器,包括兩個(gè)存儲(chǔ)器(3,4),可并行存取,其中的任意一個(gè)存儲(chǔ)器存儲(chǔ)所要濾波的兩個(gè)數(shù)據(jù)表;濾波處理器(10,11),通過(guò)各自的總線(5,6)分別連接到所述兩個(gè)存儲(chǔ)器(3,4),并對(duì)包含在兩個(gè)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行濾波處理;地址提供器(15,16),順序地提供用于對(duì)兩個(gè)存儲(chǔ)器(3,4)讀/寫(xiě)數(shù)據(jù)的地址;和控制器(18),控制所述濾波處理器(10,11)和所述地址提供器(15,16),其中所述控制器(18)控制以下操作,當(dāng)確定兩個(gè)數(shù)據(jù)表都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中時(shí),在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)中分配一存儲(chǔ)區(qū),該存儲(chǔ)區(qū)用于復(fù)制兩個(gè)數(shù)據(jù)表之一,將兩個(gè)數(shù)據(jù)表之一復(fù)制到所分配的存儲(chǔ)區(qū)中,和控制所述地址提供器(15,16)以便順序地提供所復(fù)制的數(shù)據(jù)表的地址和存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中的兩個(gè)數(shù)據(jù)表中的另一個(gè)數(shù)據(jù)表的地址,以及控制所述濾波處理器(10,11)以進(jìn)行濾波處理。
6.根據(jù)權(quán)利要求5的數(shù)字信號(hào)處理器,其中當(dāng)在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中分配了存儲(chǔ)區(qū),并完成了濾波處理后,所述控制器(18)釋放所分配的存儲(chǔ)區(qū)。
7.根據(jù)權(quán)利要求5的數(shù)字信號(hào)處理器,其中所述控制器(18)確定是否在濾波處理中復(fù)制到存儲(chǔ)區(qū)中的數(shù)據(jù)表中進(jìn)行了寫(xiě)數(shù)據(jù)處理;和所述控制器(18)在確定進(jìn)行了將數(shù)據(jù)寫(xiě)入所復(fù)制的數(shù)據(jù)表的寫(xiě)處理后,進(jìn)行控制以將存儲(chǔ)區(qū)中被寫(xiě)入數(shù)據(jù)的數(shù)據(jù)表復(fù)制到兩個(gè)存儲(chǔ)器(3,4)之一中的原始存儲(chǔ)區(qū)。
8.一種數(shù)字信號(hào)處理器中的濾波處理方法,該數(shù)字信號(hào)處理器具有兩個(gè)能夠并行存取的存儲(chǔ)器(3,4)和用于對(duì)所要濾波的兩個(gè)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行濾波處理的濾波處理器(10,11),其中該兩個(gè)數(shù)據(jù)表可以存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)中的任何一個(gè)中,所述方法包括確定兩個(gè)數(shù)據(jù)表是否都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中;當(dāng)確定兩個(gè)數(shù)據(jù)表都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中時(shí),在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)中分配一用于復(fù)制兩個(gè)數(shù)據(jù)表之一的存儲(chǔ)區(qū);將兩個(gè)數(shù)據(jù)表之一復(fù)制到所分配的存儲(chǔ)區(qū);使用所復(fù)制的數(shù)據(jù)表和存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中的兩個(gè)數(shù)據(jù)表中的另一個(gè)數(shù)據(jù)表,控制所述濾波處理器(10,11)以進(jìn)行濾波處理。
9.根據(jù)權(quán)利要求8的濾波處理方法,還包括如下步驟當(dāng)在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中分配了存儲(chǔ)區(qū),并完成了濾波處理后,釋放所分配的存儲(chǔ)區(qū)。
10.根據(jù)權(quán)利要求8的濾波處理方法,還包括確定在濾波處理中是否在復(fù)制到存儲(chǔ)區(qū)中的數(shù)據(jù)表中進(jìn)行了寫(xiě)入數(shù)據(jù)的寫(xiě)處理;和當(dāng)確定在所復(fù)制的數(shù)據(jù)表中進(jìn)行了寫(xiě)入數(shù)據(jù)的寫(xiě)處理時(shí),將被寫(xiě)入數(shù)據(jù)的數(shù)據(jù)表復(fù)制到兩個(gè)存儲(chǔ)器(3,4)之一中的原始存儲(chǔ)區(qū)。
11.一種存儲(chǔ)有程序的計(jì)算機(jī)可讀記錄介質(zhì)(20),該程序用于控制數(shù)字信號(hào)處理器,該數(shù)字信號(hào)處理器具有兩個(gè)能夠并行存取的存儲(chǔ)器(3,4)和用于對(duì)所要濾波的兩個(gè)數(shù)據(jù)表中包含的數(shù)據(jù)進(jìn)行濾波處理的濾波處理器(10,11),其中兩個(gè)數(shù)據(jù)表可以存儲(chǔ)在兩個(gè)存儲(chǔ)器中的任何一個(gè)中,所述記錄介質(zhì)(20)存儲(chǔ)的程序用于控制所述數(shù)字信號(hào)處理器的計(jì)算機(jī)以執(zhí)行以下步驟表確定步驟(步驟A1),用于確定兩個(gè)數(shù)據(jù)表是否都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中;存儲(chǔ)區(qū)分配步驟(步驟A2),用于當(dāng)所述表確定步驟(步驟A1)中確定兩個(gè)數(shù)據(jù)表都僅存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中時(shí),分配一存儲(chǔ)區(qū),以便將兩個(gè)數(shù)據(jù)表之一復(fù)制到兩個(gè)存儲(chǔ)器中的另一個(gè)存儲(chǔ)器中;第一表復(fù)制步驟(步驟A3),用于將兩個(gè)數(shù)據(jù)表之一復(fù)制到所述存儲(chǔ)區(qū)分配步驟(A2)中分配的存儲(chǔ)區(qū)中;和濾波處理步驟(步驟A4-A8),用于使用在所述第一表復(fù)制步驟(步驟A3)中復(fù)制的兩個(gè)數(shù)據(jù)表中的一個(gè)數(shù)據(jù)表和存儲(chǔ)在兩個(gè)存儲(chǔ)器(3,4)之一中的兩個(gè)數(shù)據(jù)表中的另一個(gè)數(shù)據(jù)表,控制所述濾波處理器(10,11)以進(jìn)行濾波處理。
12.根據(jù)權(quán)利要求11的計(jì)算機(jī)可讀記錄介質(zhì)(20),其中所述濾波處理步驟(步驟A4-A8)包括控制所述數(shù)字信號(hào)處理器中包含的地址單元(16),以便順序地輸出用于存取兩個(gè)數(shù)據(jù)表的地址;和根據(jù)利用從地址單元(16)順序輸出的地址從兩個(gè)數(shù)據(jù)表讀出的數(shù)據(jù),控制所述濾波處理器(10,11)以進(jìn)行濾波處理。
13.根據(jù)權(quán)利要求11的計(jì)算機(jī)可讀記錄介質(zhì)(20),其上記錄的程序還用于控制控制器執(zhí)行以下步驟存儲(chǔ)器釋放步驟(步驟A11),用于當(dāng)在所述存儲(chǔ)區(qū)分配步驟(步驟A2)中在兩個(gè)存儲(chǔ)器(3,4)中的另一個(gè)存儲(chǔ)器中分配了用于數(shù)據(jù)表的存儲(chǔ)區(qū),并在所述濾波處理步驟(步驟A4-A8)中完成了濾波處理后,釋放所分配的存儲(chǔ)區(qū)。
14.根據(jù)權(quán)利要求11的計(jì)算機(jī)可讀記錄介質(zhì)(20),其上記錄的程序還用于控制控制器執(zhí)行以下步驟寫(xiě)確定步驟(步驟A8a),用于確定在所述濾波處理步驟(步驟A4-A8)中在濾波處理中是否進(jìn)行了將數(shù)據(jù)寫(xiě)入被復(fù)制到存儲(chǔ)區(qū)中的數(shù)據(jù)表中的寫(xiě)處理;和第二表復(fù)制步驟(步驟A10),用于將在存儲(chǔ)區(qū)內(nèi)的被寫(xiě)入數(shù)據(jù)的數(shù)據(jù)表復(fù)制到兩個(gè)存儲(chǔ)器(3,4)之一中的原始存儲(chǔ)區(qū)。
全文摘要
在DSP中,在寄存器單元(10)和對(duì)積求和單元(11)進(jìn)行對(duì)積求和計(jì)算的過(guò)程中,可以相互并行地和同時(shí)地存取X存儲(chǔ)器(3)和Y存儲(chǔ)器(4)。當(dāng)控制器(18)確定所要濾波的數(shù)據(jù)表A和B都被存儲(chǔ)在X存儲(chǔ)器(3)中時(shí),其在Y存儲(chǔ)器(4)中分配一存儲(chǔ)區(qū)(4a),并將數(shù)據(jù)表B復(fù)制到該存儲(chǔ)區(qū)(4a)。控制器(18)控制包含寄存器單元(10)和對(duì)積求和單元(11)的對(duì)積求和計(jì)算單元,以執(zhí)行對(duì)積求和計(jì)算處理(濾波處理)。
文檔編號(hào)H03H17/02GK1274128SQ0010753
公開(kāi)日2000年11月22日 申請(qǐng)日期2000年5月17日 優(yōu)先權(quán)日1999年5月17日
發(fā)明者三棲勝哉 申請(qǐng)人:日本電氣株式會(huì)社