用于數(shù)字信號處理的存儲(chǔ)器地址生成的制作方法
【專利摘要】本發(fā)明描述了用于數(shù)字信號處理的存儲(chǔ)器地址生成。在一個(gè)例子中,片上數(shù)字信號處理系統(tǒng)利用在系統(tǒng)的功能塊之間共享的片上存儲(chǔ)器空間。片上DMA控制器包括地址生成器,其可以生成讀存儲(chǔ)器地址序列和寫存儲(chǔ)器地址序列,以在片上存儲(chǔ)器和頁式存儲(chǔ)器設(shè)備之間或者在系統(tǒng)中內(nèi)部地傳輸數(shù)據(jù)項(xiàng)。地址生成器是可配置的,并可以生成非線性的讀和/或?qū)懙刂沸蛄?。這使交織/解交織操作的方面能夠作為內(nèi)部或頁式存儲(chǔ)器之間的數(shù)據(jù)傳輸?shù)囊徊糠侄粓?zhí)行。作為結(jié)果,不需要用于交織操作的專用存儲(chǔ)器。在另外的例子中,地址生成器可以被配置成生成讀和/或?qū)懙刂罚鲎x和/或?qū)懙刂房紤]了在執(zhí)行交織時(shí)特定存儲(chǔ)器設(shè)備(例如DRAM)的限制。
【專利說明】用于數(shù)字信號處理的存儲(chǔ)器地址生成
【背景技術(shù)】
[0001]數(shù)字信號處理在多種多樣的應(yīng)用程序中獲得了使用。這些應(yīng)用中的很多都是實(shí)時(shí)的,在該意義上,對于數(shù)據(jù)的處理存在時(shí)間約束,以便其對于終端用戶來說是有意義的或者有用的。這方面的一個(gè)例子是數(shù)字廣播流,例如數(shù)字電視和數(shù)字無線電。數(shù)據(jù)信號處理系統(tǒng)需要能夠足夠快速地對實(shí)時(shí)流進(jìn)行處理和解碼,以便使數(shù)據(jù)能夠像其被接收那樣快速地被輸出(除非緩沖)。
[0002]數(shù)字信號處理系統(tǒng)除了使用更加通用的數(shù)字信號處理器之外,通常還使用一個(gè)或多個(gè)專用硬件外圍設(shè)備。這些硬件外圍設(shè)備是被設(shè)計(jì)為以快速和高效方式來執(zhí)行特定的信號處理任務(wù)的處理模塊。例如,交織和解交織是通常使用硬件外圍設(shè)備來針對實(shí)時(shí)數(shù)據(jù)執(zhí)行的操作。交織和解交織是存儲(chǔ)器密集型的操作,執(zhí)行該操作的硬件外圍設(shè)備使用相關(guān)聯(lián)的專用存儲(chǔ)器設(shè)備對數(shù)據(jù)進(jìn)行重新排序。
[0003]但是,不同類型的實(shí)時(shí)數(shù)據(jù)的要求變化非常大。例如,世界范圍內(nèi)使用的各種不同的數(shù)字電視和無線標(biāo)準(zhǔn)通常具有不同結(jié)構(gòu)的實(shí)時(shí)數(shù)據(jù),例如,使用不同的類型或者參數(shù)進(jìn)行編碼、交織、均衡等等。如果數(shù)字信號處理系統(tǒng)能足夠靈活地應(yīng)用于不同的標(biāo)準(zhǔn),那么用于交織/解交織的專用存儲(chǔ)器設(shè)備必須足夠地大,以便處理具有最大存儲(chǔ)器要求的標(biāo)準(zhǔn)。結(jié)果,與交織/解交織硬件外圍設(shè)備一起使用的存儲(chǔ)器經(jīng)常是未充分利用的。
[0004]下面所描述的實(shí)施例并不限于解決已知數(shù)字信號處理系統(tǒng)的任何或者所有缺點(diǎn)的實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0005]提供該概括以便以簡化形式來介紹在下面的【具體實(shí)施方式】中進(jìn)一步描述的構(gòu)思的精華。該概括并不是旨在標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或者必要特征,也不是旨在用作幫助確定所要求保護(hù)的主題的范圍。
[0006]描述了用于數(shù)字信號處理的存儲(chǔ)器地址生成。在一個(gè)例子中,片上數(shù)字信號處理系統(tǒng)利用在系統(tǒng)的功能塊之間共享的片上存儲(chǔ)器空間。片上直接存儲(chǔ)器存取(DMA)控制器包括地址生成器,其可以生成讀存儲(chǔ)器地址序列和寫存儲(chǔ)器地址序列,以在片上存儲(chǔ)器和頁式存儲(chǔ)器設(shè)備之間或者在系統(tǒng)中內(nèi)部地傳輸數(shù)據(jù)項(xiàng)。地址生成器是可配置的,并可以生成非線性的讀和/或?qū)懙刂沸蛄?。這使交織/解交織操作的方面能夠作為內(nèi)部或頁式存儲(chǔ)器之間的數(shù)據(jù)傳輸?shù)囊徊糠侄粓?zhí)行。作為結(jié)果,不需要用于交織操作的專用存儲(chǔ)器。在另外的例子中,地址生成器可以被配置成生成讀和/或?qū)懙刂?,所述讀和/或?qū)懙刂房紤]了在執(zhí)行交織時(shí)特定存儲(chǔ)器設(shè)備(例如DRAM)的限制。
[0007]第一方面提供了一種片上數(shù)字信號處理系統(tǒng),其包括:第一存儲(chǔ)器,存儲(chǔ)以第一序列排列的多個(gè)數(shù)據(jù)項(xiàng),每個(gè)數(shù)據(jù)項(xiàng)具有第一存儲(chǔ)器上的相關(guān)聯(lián)存儲(chǔ)器地址;至少一個(gè)數(shù)字信號處理器,耦合到第一存儲(chǔ)器,并用于直接對所述第一存儲(chǔ)器進(jìn)行讀數(shù)據(jù)和寫數(shù)據(jù);以及直接存儲(chǔ)器存取控制器,耦合到所述第一存儲(chǔ)器并包括通往頁式存儲(chǔ)器設(shè)備的端口,其中,所述直接存儲(chǔ)器存取控制器被配置成將多個(gè)數(shù)據(jù)項(xiàng)直接從第一存儲(chǔ)器傳輸?shù)巾撌酱鎯?chǔ)器設(shè)備,并且其中,直接存儲(chǔ)器存取控制器還包括可配置的地址生成器,其用于通過使用多個(gè)讀模式中的選定的一個(gè)讀模式和多個(gè)寫模式中的選定的一個(gè)寫模式來在傳輸期間操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得寫到頁式存儲(chǔ)器設(shè)備的數(shù)據(jù)項(xiàng)以不同于第一序列的第二序列進(jìn)行排列。
[0008]多個(gè)讀模式中的選定的一個(gè)讀模式可以用于配置地址生成器以使直接存儲(chǔ)器存取控制器從第一存儲(chǔ)器上的非線性的存儲(chǔ)器地址序列讀取數(shù)據(jù)項(xiàng),并且多個(gè)寫模式中的選定的一個(gè)寫模式以用于配置地址生成器以使直接存儲(chǔ)器存取控制器將數(shù)據(jù)項(xiàng)寫到頁式存儲(chǔ)器設(shè)備上的線性地址序列。
[0009]多個(gè)讀模式中的選定的一個(gè)讀模式可以用于配置地址生成器以使直接存儲(chǔ)器存取控制器從第一存儲(chǔ)器上的線性存儲(chǔ)器地址序列讀取數(shù)據(jù)項(xiàng),并且多個(gè)寫模式中的選定的一個(gè)寫模式可以用于配置地址生成器以使直接存儲(chǔ)器存取控制器將數(shù)據(jù)項(xiàng)寫到頁式存儲(chǔ)器設(shè)備上的非線性地址序列。
[0010]多個(gè)讀模式中的選定的一個(gè)讀模式可以用于配置地址生成器以使直接存儲(chǔ)器存取控制器從第一存儲(chǔ)器上的非線性存儲(chǔ)器地址序列讀取數(shù)據(jù)項(xiàng),并且多個(gè)寫模式中的選定的一個(gè)寫模式可以用于配置地址生成器以使直接存儲(chǔ)器存取控制器將數(shù)據(jù)項(xiàng)寫到頁式存儲(chǔ)器設(shè)備上的非線性地址序列。
[0011]直接存儲(chǔ)器存取控制器還可以被配置成將多個(gè)數(shù)據(jù)項(xiàng)從頁式存儲(chǔ)器設(shè)備直接傳輸?shù)降谝淮鎯?chǔ)器,并且地址生成器可以用于通過使用多個(gè)讀模式中的進(jìn)一步選定的一個(gè)讀模式和多個(gè)寫模式中的進(jìn)一步選定的一個(gè)寫模式來在從頁式存儲(chǔ)器設(shè)備到第一存儲(chǔ)器的傳輸期間進(jìn)一步操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得寫到第一存儲(chǔ)器的數(shù)據(jù)項(xiàng)以不同于第一和第二序列的第三序列進(jìn)行排列。
[0012]頁式存儲(chǔ)器設(shè)備可以是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
[0013]第一存儲(chǔ)器可以是靜態(tài)隨機(jī)存取存儲(chǔ)器。
[0014]片上數(shù)字信號處理系統(tǒng)還可以包括控制處理器,用于執(zhí)行一程序,所述程序被配置成選擇多個(gè)讀模式中的一個(gè)和多個(gè)寫模式中的一個(gè)以供地址生成器使用,并向地址生成器提供這些選擇。
[0015]數(shù)字信號處理系統(tǒng)還可以包括多個(gè)硬件外圍設(shè)備,每個(gè)硬件外圍設(shè)備連接到直接存儲(chǔ)器存取控制器,并且每個(gè)硬件外圍設(shè)備被配置成經(jīng)由直接存儲(chǔ)器存取控制器從第一存儲(chǔ)器讀取數(shù)據(jù),對所述數(shù)據(jù)執(zhí)行一個(gè)或多個(gè)操作,并經(jīng)由直接存儲(chǔ)器存取控制器將數(shù)據(jù)寫到第一存儲(chǔ)器設(shè)備。
[0016]第一序列中的多個(gè)數(shù)據(jù)項(xiàng)可以被定義為排列成具有多個(gè)行和列的網(wǎng)格。
[0017]第一序列中的多個(gè)數(shù)據(jù)項(xiàng)可以被定義為排列成具有多個(gè)行和列的元素的網(wǎng)格,,每個(gè)元素包括來自第一序列的一組連續(xù)的數(shù)據(jù)項(xiàng)。
[0018]多個(gè)讀模式中的選定的一個(gè)讀模式和多個(gè)寫模式中的選定的一個(gè)寫模式可以一起配置地址生成器以操縱每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器地址,使得第二序列基于網(wǎng)格的轉(zhuǎn)置。
[0019]多個(gè)讀模式中的選定的一個(gè)讀模式和多個(gè)寫模式中的選定的一個(gè)寫模式可以一起配置地址生成器以操縱每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器地址,使得第二序列基于網(wǎng)格的轉(zhuǎn)置,其中對一個(gè)或多個(gè)列或行中的元素應(yīng)用了位置偏移。
[0020]多個(gè)讀模式中的選定的一個(gè)讀模式和多個(gè)寫模式中的選定的一個(gè)寫模式可以一起配置地址生成器,以在傳輸期間操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得第二序列等價(jià)于在第一序列上執(zhí)行的卷積解交織操作的至少一部分。
[0021]第二方面提供了使用包括可配置的地址生成器的直接存儲(chǔ)器存取控制器來在數(shù)字信號處理系統(tǒng)中執(zhí)行交織或解交織操作的方法,其中直接存儲(chǔ)器存取控制器耦合到用于存儲(chǔ)以第一序列排列的多個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器,每個(gè)數(shù)據(jù)項(xiàng)具有存儲(chǔ)器上的相關(guān)聯(lián)的地址,該方法包括:選擇地址生成器的讀模式和寫模式;在地址生成器處根據(jù)讀模式計(jì)算存儲(chǔ)器讀地址序列,并根據(jù)寫模式計(jì)算存儲(chǔ)器寫地址序列,使得在讀地址和相應(yīng)的寫地址之間存在非線性關(guān)系;使用直接存儲(chǔ)器存取控制器讀取與讀地址序列中的第一地址相關(guān)聯(lián)的數(shù)據(jù)項(xiàng);使用直接存儲(chǔ)器存取控制器將該數(shù)據(jù)項(xiàng)寫到寫地址序列中的第一地址;以及對于讀地址和寫地址序列中的每個(gè)后續(xù)的地址,重復(fù)讀取和寫入的步驟,使得數(shù)據(jù)項(xiàng)在存儲(chǔ)器上以不同于第一序列的第二序列進(jìn)行排列。
[0022]存儲(chǔ)器可以是靜態(tài)隨機(jī)存取存儲(chǔ)器。
[0023]存儲(chǔ)器可以是片上系統(tǒng)存儲(chǔ)器。
[0024]該方法還可以包括:在讀取步驟之后并且在寫入步驟之前,使用耦合到直接存儲(chǔ)器存取控制器的硬件外圍設(shè)備來對一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)執(zhí)行一個(gè)或多個(gè)操作。
[0025]該方法還可以包括:在讀取步驟之后并且在寫入步驟之前,將數(shù)據(jù)項(xiàng)存儲(chǔ)在耦合到直接存儲(chǔ)器存取控制器的頁式存儲(chǔ)器設(shè)備上。
[0026]第一序列中的多個(gè)數(shù)據(jù)項(xiàng)可以被定義為排列成具有多個(gè)行和列的網(wǎng)格。
[0027]第一序列中的多個(gè)數(shù)據(jù)項(xiàng)可以被定義為排列成具有多個(gè)行和列的元素的柵格,每個(gè)元素包括來自第一序列的一組連續(xù)的數(shù)據(jù)項(xiàng)。
[0028]讀地址和相應(yīng)的寫地址之間的非線性關(guān)系可以使得第二序列基于網(wǎng)格的轉(zhuǎn)置。
[0029]讀地址和相應(yīng)的寫地址之間的非線性關(guān)系可以使得第二序列基于網(wǎng)格的轉(zhuǎn)置,其中,對一個(gè)或多個(gè)列或行中的元素應(yīng)用了位置偏移。
[0030]根據(jù)讀模式計(jì)算存儲(chǔ)器讀地址序列的步驟可以包括:基于起始地址和預(yù)定整數(shù)的模來計(jì)算非線性讀地址序列。
[0031]根據(jù)寫模式計(jì)算存儲(chǔ)器寫地址序列的步驟可以包括:基于起始地址和預(yù)定整數(shù)的模來計(jì)算非線性寫地址序列。
[0032]根據(jù)讀模式計(jì)算存儲(chǔ)器讀地址序列的步驟可以包括:通過將連續(xù)的存儲(chǔ)器地址子序列重復(fù)預(yù)定的次數(shù)來計(jì)算非線性讀地址序列。
[0033]根據(jù)讀模式計(jì)算存儲(chǔ)器讀地址序列的步驟可以包括:通過選擇第一預(yù)定數(shù)量的連續(xù)存儲(chǔ)器地址,然后跳過一個(gè)或多個(gè)存儲(chǔ)器地址,并選擇第二預(yù)定數(shù)量的連續(xù)存儲(chǔ)器地址,來計(jì)算非線性讀地址序列。
[0034]選擇讀模式和寫模式的步驟可以由控制處理器執(zhí)行,控制處理器執(zhí)行配置數(shù)字信號處理系統(tǒng)的操作的程序。
[0035]本申請所描述的方法可以由機(jī)器可讀形式的軟件執(zhí)行,其中該軟件以例如計(jì)算機(jī)程序的形式存儲(chǔ)在有形存儲(chǔ)介質(zhì)上,計(jì)算機(jī)程序包括計(jì)算機(jī)程序代碼模塊,當(dāng)程序運(yùn)行在計(jì)算機(jī)上時(shí)并且在計(jì)算機(jī)程序可以體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上的情況下,所述計(jì)算機(jī)程序代碼模塊用于執(zhí)行本文描述的任意方法的所有步驟。有形(或非臨時(shí)性)存儲(chǔ)介質(zhì)的例子包括磁盤、指狀驅(qū)動(dòng)器、存儲(chǔ)卡等等,其不包括傳播的信號。軟件可適合于在并行處理器或者串行處理器上執(zhí)行,使得這些方法步驟可以按照任何適當(dāng)?shù)捻樞驁?zhí)行,或可以同時(shí)地執(zhí)行。
[0036]本申請承認(rèn)固件和軟件可以是有價(jià)值的可單獨(dú)交易的商品。旨在涵蓋在“啞”或標(biāo)準(zhǔn)硬件上運(yùn)行或?qū)Α皢 被驑?biāo)準(zhǔn)硬件進(jìn)行控制以執(zhí)行期望功能的軟件。還旨在涵蓋“描述”或定義硬件的配置的軟件,例如HDL (硬件描述語言)軟件,如用于設(shè)計(jì)硅芯片,或用于配置通用編程芯片,以執(zhí)行期望功能。
[0037]優(yōu)選的特征可以適當(dāng)?shù)亟M合,這對于技術(shù)人員將是顯而易見的,并且可以與本發(fā)明的任意方面進(jìn)行組合。
【專利附圖】
【附圖說明】
[0038]通過示例的方式,參照下面的附圖來描述實(shí)施例,其中:
[0039]圖1示出了可配置的數(shù)字信號處理系統(tǒng);
[0040]圖2示出了 DMA控制器的示意圖;
[0041]圖3示出了非線性地址生成過程的流程圖;
[0042]圖4示出了使用DMA控制器對兩個(gè)數(shù)據(jù)塊執(zhí)行的行-列操作的例子;以及
[0043]圖5示出了圖4的行-列操作的例子,其具有抵消DRAM設(shè)備的限制的增強(qiáng)措施。
[0044]貫穿附圖使用共同的參考數(shù)字來指示類似的特征。
【具體實(shí)施方式】
[0045]下面僅僅是通過例子的方式來描述實(shí)施例。這些例子代表了 申請人:當(dāng)前已知的將這些實(shí)施例付諸于實(shí)踐的最佳方式,雖然這些最佳方式并不是能夠?qū)崿F(xiàn)本發(fā)明的僅有的方式。描述給出了例子的功能以及用于構(gòu)造和操作例子的步驟的序列。然而,可以通過不同的例子來實(shí)現(xiàn)相同的或等同的功能和序列。
[0046]下面描述了利用通用數(shù)字信號處理器以及專用硬件外圍設(shè)備的可配置的數(shù)字信號處理系統(tǒng)。為了實(shí)現(xiàn)存儲(chǔ)器的有效使用,系統(tǒng)的不同元件能夠訪問共享的片上存儲(chǔ)器。可以通過直接存儲(chǔ)器存取(DMA)控制器將數(shù)據(jù)項(xiàng)寫入片上存儲(chǔ)器或從片上存儲(chǔ)器讀取數(shù)據(jù)項(xiàng)。在一些例子中,DMA控制器也可以具有通往另一存儲(chǔ)器設(shè)備(例如頁式存儲(chǔ)器設(shè)備)的端口。
[0047]本文中使用術(shù)語頁式存儲(chǔ)器設(shè)備來描述以下這樣的任何類型的存儲(chǔ)器設(shè)備:其中,當(dāng)某個(gè)范圍的存儲(chǔ)單元(定義頁)被激活(即,該頁被打開)時(shí),對該范圍的單元內(nèi)的多個(gè)存儲(chǔ)單元進(jìn)行讀和/或?qū)懯歉咝У摹_@旨在涵蓋例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)和其任何變形,例如同步DRAM (SDRAM)和雙數(shù)據(jù)率(DDR) SDRAM,以及使用連續(xù)存儲(chǔ)器單元的突發(fā)高效地訪問的任何存儲(chǔ)器設(shè)備。
[0048]DMA控制器具有可配置的地址生成器,其可以被配置成根據(jù)不同的模式對片上存儲(chǔ)器(和/或頁式存儲(chǔ)器設(shè)備)進(jìn)行讀取數(shù)據(jù)項(xiàng)和寫入數(shù)據(jù)項(xiàng)。不同的模式允許從存儲(chǔ)器讀取非線性(即,非連續(xù))數(shù)據(jù)項(xiàng)序列和/或向存儲(chǔ)器寫入非線性數(shù)據(jù)項(xiàng)序列。這使得能夠?qū)?shù)據(jù)項(xiàng)(例如在交織或解交織中使用的數(shù)據(jù)項(xiàng))執(zhí)行重新排序操作。這些操作是即時(shí)執(zhí)行的,同時(shí)數(shù)據(jù)項(xiàng)在存儲(chǔ)單元之間傳輸或從一個(gè)存儲(chǔ)器傳輸?shù)搅硪淮鎯?chǔ)器。這避免為了結(jié)合交織或解交織使用而在數(shù)字信號處理系統(tǒng)上包括專用(非共享)存儲(chǔ)器的需要,從而減少了芯片面積和費(fèi)用。。不同的模式也可以被配置成抵消某些類型的存儲(chǔ)器設(shè)備(例如DRAM)的性能限制。
[0049]在本文中使用與讀取/寫入數(shù)據(jù)項(xiàng)序列有關(guān)的術(shù)語“線性”,以表示讀取/寫入連續(xù)的(或鄰接的)數(shù)據(jù)項(xiàng)。相反,在本文中使用與讀取/寫入數(shù)據(jù)項(xiàng)序列有關(guān)的術(shù)語“非線性”,以表示讀取/寫入非連續(xù)的(或非鄰接的)數(shù)據(jù)項(xiàng),并且下面描述非線性序列的例子。
[0050]首先參考圖1,其示出了示例性可配置片上數(shù)字信號處理系統(tǒng)100的結(jié)構(gòu)。系統(tǒng)100包括片上存儲(chǔ)器102,其用于數(shù)據(jù)項(xiàng)的存儲(chǔ)。片上存儲(chǔ)器102可以是任何適當(dāng)形式的隨機(jī)存取存儲(chǔ)器(RAM),例如(但不限于)靜態(tài)RAM (SRAM)0
[0051]連接到片上存儲(chǔ)器102的是一個(gè)或多個(gè)數(shù)字信號處理器(DSP) 104。DSP104是可編程來對數(shù)據(jù)執(zhí)行信號處理計(jì)算(例如快速傅立葉變換和均衡)的處理器。當(dāng)不考慮通用處理器時(shí),DSP104比下面描述的硬件外圍設(shè)備是更可配置的。DSP104執(zhí)行程序代碼/指令以從片上存儲(chǔ)器102讀取數(shù)據(jù),對數(shù)據(jù)執(zhí)行信號處理操作,并將數(shù)據(jù)寫回到片上存儲(chǔ)器102。
[0052]也連接到片上存儲(chǔ)器102的是DMA控制器106,其為多個(gè)硬件外圍設(shè)備108提供對片上存儲(chǔ)器102的訪問。DMA控制器106提供多個(gè)存儲(chǔ)器訪問通道(例如DMA通道),這些通道可由硬件外圍設(shè)備108使用以實(shí)現(xiàn)從片上存儲(chǔ)器102讀數(shù)據(jù)或?qū)?shù)據(jù)寫到片上存儲(chǔ)器102。
[0053]如上所述,硬件外圍設(shè)備108是特殊的、專用固定功能硬件模塊,其配置為執(zhí)行特定的信號處理任務(wù)。例如,一個(gè)硬件外圍設(shè)備可以是專用的Viterbi解碼模塊,另一個(gè)可以是專用的Reed-Solomon解碼模塊。此外,這些硬件外圍設(shè)備還可以稱為加速器。這些硬件外圍設(shè)備中的每一個(gè)彼此之間獨(dú)立地操作。可以對硬件外圍設(shè)備進(jìn)行充分地配置,以便提供特定于它們的任務(wù)的操作參數(shù),但不能對它們進(jìn)行充分地配置來改變它們的任務(wù)(例如,不能將Viterbi模塊重新配置成Reed-Solomon模塊)。因此,與DSP104相比,硬件外圍設(shè)備更加專用于特定的任務(wù)。但是,硬件外圍設(shè)備被布置為以非常快速和高效的方式來執(zhí)行它們的特定任務(wù)。此外,通用控制處理器110也連接到片上存儲(chǔ)器102,其中通用控制處理器110可以用于初始化、配置和控制該數(shù)字信號處理系統(tǒng)的操作。
[0054]上面所描述的數(shù)字信號處理系統(tǒng)提供信號處理操作方面的靈活性。例如,該系統(tǒng)可以配置為進(jìn)行操作,使得不同的DSP104和硬件外圍設(shè)備108以任何期望的配置或者序列對數(shù)據(jù)進(jìn)行處理。每一個(gè)硬件外圍設(shè)備或DSP可以對一塊或多塊數(shù)據(jù)(本申請還將其稱為數(shù)據(jù)緩沖區(qū))進(jìn)行操作,其中所述一塊或多塊數(shù)據(jù)由系統(tǒng)的其它部件提供并存儲(chǔ)在片上存儲(chǔ)器102中,每一個(gè)硬件外圍設(shè)備或DSP生成和存儲(chǔ)由該系統(tǒng)的其它元件使用的一個(gè)或多個(gè)數(shù)據(jù)緩沖區(qū)。這使該數(shù)字信號處理系統(tǒng)能用于多種不同類型的信號,例如用于不同的廣播/電信標(biāo)準(zhǔn)。
[0055]使用片上存儲(chǔ)器102所提供的公共存儲(chǔ)空間,能減少在該片上系統(tǒng)100中提供的存儲(chǔ)器存貯的總量。在不使用公共存儲(chǔ)空間的情況下,向每一個(gè)處理元件提供其自己的專用存儲(chǔ)器。例如,每一個(gè)DSP104都可以具有它們自己的工作空間存儲(chǔ)器,通用控制處理器110具有用于存儲(chǔ)執(zhí)行代碼和數(shù)據(jù)的另一個(gè)單獨(dú)的存儲(chǔ)器,硬件外圍設(shè)備108具有單獨(dú)的輸入和輸出緩沖區(qū),并且可以使用一個(gè)或多個(gè)另外的存儲(chǔ)器來在這些處理元件之間交換數(shù)據(jù)。
[0056]由于可對該數(shù)字信號處理系統(tǒng)進(jìn)行配置,以與多個(gè)不同的標(biāo)準(zhǔn)一起使用(即,以便允許實(shí)現(xiàn)不同的通信標(biāo)準(zhǔn)),因此針對具體的標(biāo)準(zhǔn)(其中該標(biāo)準(zhǔn)對于任何給定的存儲(chǔ)器都具有最大要求),需要對這些單獨(dú)的存儲(chǔ)器中的每一個(gè)單獨(dú)地確定大小。換言之,DSP存儲(chǔ)器需要足夠的大,以便適應(yīng)對于DSP存儲(chǔ)器具有最大要求的標(biāo)準(zhǔn)。類似地,硬件外圍設(shè)備緩沖器也需要足夠的大,以便適應(yīng)對于硬件外圍設(shè)備緩沖器具有最高要求的標(biāo)準(zhǔn)(其與具有較高DSP存儲(chǔ)器要求的標(biāo)準(zhǔn)不相同)。結(jié)果,非常大量的存儲(chǔ)器通常并不被處理元件中的一些使用。
[0057]但是,如果由片上存儲(chǔ)器102提供公共存儲(chǔ)空間的話,那么可以將不同標(biāo)準(zhǔn)的存儲(chǔ)器需求作為一個(gè)整體進(jìn)行考慮(而不是它們對于系統(tǒng)的各個(gè)元件的需求)。換言之,片上存儲(chǔ)器102需要足夠的大,以便適應(yīng)這些標(biāo)準(zhǔn)的最大整體、總存儲(chǔ)器需求。這具有對標(biāo)準(zhǔn)之間的不同存儲(chǔ)器需求進(jìn)行平均的效果(例如,一種標(biāo)準(zhǔn)可能需要更多的DSP存儲(chǔ)器、但更小的緩沖器,而另一種標(biāo)準(zhǔn)可能則是相反的)。這具有只需要顯著的更低的總存儲(chǔ)器量的效果,并因此節(jié)省了硅片面積。
[0058]因此,片上存儲(chǔ)器102所提供的公共存儲(chǔ)空間可以保存該系統(tǒng)所使用的所有不同類型的數(shù)據(jù),例如,數(shù)字信號處理器工作空間、用于通用控制處理器的執(zhí)行代碼和數(shù)據(jù)、用于硬件外圍設(shè)備中的一個(gè)或多個(gè)的輸入和輸出緩沖區(qū)、用于在處理器之間交換數(shù)據(jù)的一個(gè)或多個(gè)緩沖區(qū)、以及用于該數(shù)字信號處理系統(tǒng)的其它配置數(shù)據(jù)。
[0059]圖1還示出了連接到DMA控制器106的頁式存儲(chǔ)器設(shè)備112。在一些例子中,頁式存儲(chǔ)器設(shè)備112DRAM形式的,其可提供大量的相對廉價(jià)的但易失性的存儲(chǔ)。頁式存儲(chǔ)器設(shè)備112在它不能在與片上系統(tǒng)100相同的硅上形成的意義上來講,可被考慮為外部存儲(chǔ)器,或在一些例子中,存儲(chǔ)器設(shè)備112可以是在與片上系統(tǒng)100相同的硅上形成的嵌入式DRAM的一塊,但在它不可直接由DSP訪問的意義上來講仍然在外部。頁式存儲(chǔ)器設(shè)備也可以形成例如存儲(chǔ)與數(shù)字信號處理系統(tǒng)有關(guān)的數(shù)據(jù)以及MPEG或其它視頻流相關(guān)的數(shù)據(jù)的另一共享存儲(chǔ)器空間。
[0060]現(xiàn)在參考圖2,其示出了 DMA控制器106的示意圖。DMA控制器106包括:內(nèi)部端口 202,其用于連接到片上存儲(chǔ)器102 ;以及外部端口 204,其用于連接到頁式存儲(chǔ)器設(shè)備112。DMA控制器106還包括多個(gè)外圍設(shè)備端口 206,每個(gè)外圍設(shè)備端口 206用于連接到相關(guān)聯(lián)的硬件外圍設(shè)備108。內(nèi)部端口 202、外部端口 204和外圍設(shè)備端口 206都連接到交叉線(crossbar) 208,交叉線208使這些端口中的任一個(gè)能夠連接到這些端口中的任何其它端口。
[0061]DMA控制器106還包括地址生成器210,其耦合到內(nèi)部端口 202和外部端口 204,并用于生成用于連接到內(nèi)部端口 202和外部端口 204的存儲(chǔ)器中的任一個(gè)或兩個(gè)的讀和/或?qū)懙刂沸蛄?。地址生成?10是可配置的,并可被編程為以多個(gè)不同的模式進(jìn)行操作,其例子在下文被更詳細(xì)地概述。例如,通用控制處理器110可以用于將一個(gè)或多個(gè)命令發(fā)送到地址生成器210,以便為地址生成器210選擇一個(gè)或多個(gè)操作模式。通用控制處理器110可以通過執(zhí)行一程序來選擇模式,所述程序用于根據(jù)期望標(biāo)準(zhǔn)在一個(gè)或多個(gè)模式中配置地址生成器。
[0062]通過生成讀和/或?qū)懙刂沸蛄?,地址生成器可以對存?chǔ)在連接到DMA控制器106的端口之一的存儲(chǔ)器上的數(shù)據(jù)項(xiàng)執(zhí)行非線性重新排序。例如,圖2示出了如何在傳輸?shù)巾撌酱鎯?chǔ)器設(shè)備112期間,對片上存儲(chǔ)器102上所存儲(chǔ)的第一數(shù)據(jù)項(xiàng)序列212進(jìn)行重新排序。在圖2的示例中,在片上存儲(chǔ)器102上有八個(gè)數(shù)據(jù)項(xiàng),它們存儲(chǔ)在被表示為O到7的存儲(chǔ)器地址。在其它示例中,存儲(chǔ)器地址可以從不同于零的基地址開始,和/或每一個(gè)單獨(dú)數(shù)據(jù)項(xiàng)可以比存儲(chǔ)器設(shè)備上的單個(gè)存儲(chǔ)單元更大。在該示例中,將這些數(shù)據(jù)項(xiàng)傳輸?shù)巾撌酱鎯?chǔ)器設(shè)備,但按照與第一序列212不相同的第二序列214進(jìn)行排序。為了清楚說明起見,在頁式存儲(chǔ)器設(shè)備112上,將第二序列214中的數(shù)據(jù)項(xiàng)存儲(chǔ)在被表示為O到7的存儲(chǔ)器地址,但在其它示例中,這些地址也可以從不同于零的基地址開始。
[0063]在第一例子中,地址生成器210可以生成線性讀序列[0、1、2、3、4、5、6、7],并將該讀序列提供到內(nèi)部端口 202。地址生成器210也可以生成非線性寫序列[3、6、4、1、2、7、0、5],并將其提供到外部端口 204。這使內(nèi)部端口 202首先從讀序列中的第一地址(地址O)讀取數(shù)據(jù)項(xiàng),其在本例中為數(shù)據(jù)項(xiàng)“A”。該數(shù)據(jù)項(xiàng)通過交叉線208傳遞到外部端口 204,外部端口 204將該數(shù)據(jù)項(xiàng)寫到寫序列中的第一存儲(chǔ)器地址(地址3)。這導(dǎo)致數(shù)據(jù)項(xiàng)“A”從第一序列212中的第一數(shù)據(jù)項(xiàng)被重新排序到第二序列214中的第四數(shù)據(jù)項(xiàng)。對于在讀序列中編址的每一個(gè)后續(xù)數(shù)據(jù)項(xiàng),重復(fù)該操作,每一個(gè)后續(xù)數(shù)據(jù)項(xiàng)被寫入寫序列中的相應(yīng)地址。作為該操作的結(jié)果,來自第一序列(被表示為A、B、C、D、E、F、G)的數(shù)據(jù)項(xiàng)現(xiàn)在以第二序列(G、D、E、A、C、H、B、F)存儲(chǔ)在頁式存儲(chǔ)器上。
[0064]在第二例子中,通過地址生成器210生成非線性讀序列[6、3、4、0、2、7、1、5]和線性寫序列[0、1、2、3、4、5、6、7],也可以實(shí)現(xiàn)數(shù)據(jù)項(xiàng)的相同的重新排序。在本例中,首先從片上存儲(chǔ)器上的地址6讀取數(shù)據(jù)項(xiàng)“G”,并將其寫入到頁式存儲(chǔ)器上的地址0,其后從片上存儲(chǔ)器上的地址3讀取數(shù)據(jù)項(xiàng)“D”,并將其寫入到頁式存儲(chǔ)器上的地址1,等等。類似地,在第三示例中,通過地址生成器210生成非線性讀序列以及也是非線性的寫序列,也可以實(shí)現(xiàn)對數(shù)據(jù)項(xiàng)的相同的重新排序。這種方式的一個(gè)示例可以是讀序列[0,2,4,6,I, 3,5,7]和寫序列[3,4,2,0,6,1,7,5]。
[0065]在上述例子的每個(gè)中,從第一序列到第二序列的重新排序是通過DMA控制器106在數(shù)據(jù)項(xiàng)從片上存儲(chǔ)器102到頁式存儲(chǔ)器設(shè)備112的直接傳輸期間被即時(shí)地執(zhí)行的。注意,從片上存儲(chǔ)器102到頁式存儲(chǔ)器設(shè)備112的傳輸僅僅是例子。在其它例子中,也可以通過將第一數(shù)據(jù)項(xiàng)序列從片上存儲(chǔ)器102的一部分傳輸?shù)狡洗鎯?chǔ)器102的另一部分,并在該傳輸期間操縱數(shù)據(jù)項(xiàng)的地址以形成第二數(shù)據(jù)項(xiàng)序列,來在片上系統(tǒng)內(nèi)部執(zhí)行類似的重新排列操作。還注意,也可以針對從頁式存儲(chǔ)器設(shè)備112到片上存儲(chǔ)器102的傳輸,并且也可以針對去往或來自硬件外圍設(shè)備和片上存儲(chǔ)器102或頁式存儲(chǔ)器設(shè)備112的傳輸,來執(zhí)行類似的操作。
[0066]上面的示例還示出了在執(zhí)行傳輸之前,完全地生成讀地址序列和寫地址序列。但是,這也可以與傳輸一起并發(fā)地執(zhí)行,例如,通過在對一個(gè)或多個(gè)之前數(shù)據(jù)項(xiàng)進(jìn)行讀/寫時(shí)生成一個(gè)或多個(gè)讀地址和寫地址。
[0067]現(xiàn)在參考圖3,其示出了用于使用地址生成器對數(shù)據(jù)項(xiàng)重新排序的更一般的過程的流程圖。在本例中,數(shù)據(jù)項(xiàng)是從片上存儲(chǔ)器102被讀取的,并以不同的序列被寫回到片上存儲(chǔ)器102。在其它例子中,數(shù)據(jù)可以是從頁式存儲(chǔ)器112讀取的,和/或它可以被寫到頁式存儲(chǔ)器112。在步驟300中,選擇可配置的地址生成器210的讀模式和寫模式。如上所述,可以使用一般的控制處理器110根據(jù)配置程序和傳遞到地址生成器的命令或信號來選擇讀模式和寫模式。
[0068]在步驟302中,地址生成器210根據(jù)選定的讀模式計(jì)算具有η個(gè)讀地址的序列,其中η是在該序列中傳輸?shù)臄?shù)據(jù)項(xiàng)的數(shù)量。注意,雖然η個(gè)數(shù)據(jù)項(xiàng)被傳輸,但是可能存在更多或更少的不同的數(shù)據(jù)項(xiàng)(即,一個(gè)或多個(gè)數(shù)據(jù)項(xiàng)可能被傳輸多于一次,或根本不被傳輸)。在步驟304中,地址生成器210根據(jù)選定的寫模式計(jì)算具有η個(gè)寫地址的序列。讀地址序列和寫地址序列中的一個(gè)或兩個(gè)可以被計(jì)算為非線性(即,非連續(xù)或非鄰接)序列。下面提供用于計(jì)算讀和/或?qū)懙刂沸蛄械母鞣N示例性算法。
[0069]在步驟306中,DMA控制器106依次地遍歷讀和寫序列中的η個(gè)地址中的每個(gè)地址,并在每次迭代i執(zhí)行圖3的方框內(nèi)的操作。對于第一次迭代而言,在步驟308中,DMA控制器106 (經(jīng)由內(nèi)部端口 202)從片上存儲(chǔ)器102讀取由讀序列中的第一地址尋址的數(shù)據(jù)項(xiàng)。隨后,在步驟310中,可以對讀取的數(shù)據(jù)項(xiàng)執(zhí)行一個(gè)或多個(gè)可選的操作。例如,可以將數(shù)據(jù)項(xiàng)(經(jīng)由外圍設(shè)備端口 206)提供給硬件外圍設(shè)備108以便進(jìn)行處理,或者可以將其提供給所連接的多個(gè)硬件外圍設(shè)備,使得一個(gè)外圍設(shè)備的輸出連接到另一外圍設(shè)備的輸入。在步驟312中,(經(jīng)由內(nèi)部端口 202)將數(shù)據(jù)項(xiàng)(或被一個(gè)或多個(gè)硬件外圍設(shè)備處理過的數(shù)據(jù)項(xiàng))寫回到片上存儲(chǔ)器102,寫到寫序列中的第一存儲(chǔ)器地址。隨后對于讀和寫序列中的每一個(gè)后續(xù)的第i個(gè)地址,重復(fù)步驟308到312,直到該迭代了全部η個(gè)地址為止。
[0070]注意,不需要執(zhí)行圖3中所示的步驟來使得讀出一個(gè)單獨(dú)的數(shù)據(jù)項(xiàng)隨后將其寫回,之后再讀取另一個(gè)數(shù)據(jù)項(xiàng)。相反,一些或所有數(shù)據(jù)項(xiàng)可以作為一組從片上存儲(chǔ)器102被讀取(并隨后可選地被處理),并接著作為一組被寫回到片上存儲(chǔ)器102。
[0071]作為存儲(chǔ)器傳輸操作的組成部分,圖3的過程因此使片上存儲(chǔ)器102上的數(shù)據(jù)項(xiàng)能夠被重新排序成不同的序列。這可以用于通過根據(jù)交織方案生成讀/寫地址序列來實(shí)現(xiàn)交織或解交織。使用圖3的過程,可以通過根據(jù)讀序列從其在片上存儲(chǔ)器102上的位置讀取數(shù)據(jù)項(xiàng),并根據(jù)寫序列將它們寫回片上存儲(chǔ)器102,從而以交織順序?qū)⑺鼈儗懙狡洗鎯?chǔ)器102上的不同位置,來實(shí)現(xiàn)存儲(chǔ)在片上存儲(chǔ)器102上的數(shù)據(jù)項(xiàng)的交織??商鎿Q地,可以根據(jù)讀序列從頁式存儲(chǔ)器讀取數(shù)據(jù)項(xiàng),和/或可以根據(jù)寫序列將數(shù)據(jù)項(xiàng)寫到頁式存儲(chǔ)器。下文介紹的是地址生成器210可以被配置成實(shí)現(xiàn)的幾個(gè)示例性算法或模式,以便生成讀和/或?qū)懶蛄小5刂飞善鞑幌抻谶@些模式,并且可以使用任何其它適當(dāng)?shù)牡刂飞桑@對于技術(shù)人員將是明顯的。這些示例性模式/算法也可以按任何適當(dāng)?shù)姆绞浇M合。
[0072]行-列樽式
[0073]第一種模式被稱為行-列模式。行-列模式考慮將第一序列中的數(shù)據(jù)項(xiàng)排列在具有多個(gè)行和列的一個(gè)或多個(gè)網(wǎng)格或表格中。這在圖4中示出,圖4示出了第一輸入數(shù)據(jù)項(xiàng)塊402和第二輸入數(shù)據(jù)項(xiàng)塊404,第一輸入數(shù)據(jù)項(xiàng)塊402 (只是為了說明目的)具有從O到23的連續(xù)存儲(chǔ)器地址,并且第二輸入數(shù)據(jù)項(xiàng)塊402 (也只是為了說明的目的)具有從24到47的連續(xù)存儲(chǔ)器地址。在本例中,考慮數(shù)據(jù)項(xiàng)每隔六個(gè)數(shù)據(jù)項(xiàng)具有列中斷,如圖4中的虛線所指示的。這意味著考慮將連續(xù)的存儲(chǔ)器地址沿著具有六行的網(wǎng)格的列進(jìn)行排列。
[0074]在圖4中示出了網(wǎng)格形式給出的數(shù)據(jù)項(xiàng),圖4示出了用于第一輸入數(shù)據(jù)項(xiàng)塊402的第一網(wǎng)格406和用于第二輸入數(shù)據(jù)項(xiàng)塊404的第二網(wǎng)格408。第一和第二個(gè)網(wǎng)格都具有六行和四列??梢宰⒁獾?,連續(xù)尋址的數(shù)據(jù)項(xiàng)是沿著列排列的。然而,在其它例子中,也可以給出數(shù)據(jù),使得連續(xù)的項(xiàng)替代地是沿著行排列的,在這種情況下,下面的描述仍然適用,但參考倒置的行和列。
[0075]行-列模式的目的是對每一個(gè)網(wǎng)格進(jìn)行轉(zhuǎn)置,使得當(dāng)以穿過網(wǎng)格的列的序列來排列輸入數(shù)據(jù)項(xiàng)時(shí),以穿過網(wǎng)格的行的序列來排列輸出數(shù)據(jù)項(xiàng)。例如,參見網(wǎng)格406,如果輸入數(shù)據(jù)序列的前四個(gè)數(shù)據(jù)項(xiàng)是A、B、C、D (沿著第一列讀取四個(gè)項(xiàng)),那么輸出數(shù)據(jù)序列的前四個(gè)數(shù)據(jù)項(xiàng)是A、G、M、S (沿著第一行讀取四個(gè)項(xiàng))。因此,諸如該方式的行-列操作改變了數(shù)據(jù)項(xiàng)的順序,這其取決于定義了多少個(gè)行存在于網(wǎng)格中。頻繁地執(zhí)行這種類型的操作以進(jìn)行交織和解交織。
[0076]為了實(shí)現(xiàn)行-列模式,地址生成器210生成用于導(dǎo)致行-列轉(zhuǎn)置的讀和寫序列。這可以通過生成非線性讀序列和線性寫序列(如圖4中所示,下面將更詳細(xì)地進(jìn)行描述),或者通過生成線性讀序列和非線性寫序列來實(shí)現(xiàn)。在另外的示例中,為了實(shí)現(xiàn)高效的存儲(chǔ)器存取,還可以使用非線性讀序列和非線性寫序列,如下面參照圖5所描述的。
[0077]圖4示出了非線性讀序列410的示例,可以觀察到其包括非連續(xù)的存儲(chǔ)器地址。在一個(gè)示例中,可以使用下面的偽代碼所描繪的算法,來生成該地址序列:
[0078]
【權(quán)利要求】
1.一種片上數(shù)字信號處理系統(tǒng),包括: 第一存儲(chǔ)器,其存儲(chǔ)以第一序列排列的多個(gè)數(shù)據(jù)項(xiàng),每個(gè)數(shù)據(jù)項(xiàng)具有所述第一存儲(chǔ)器上的相關(guān)聯(lián)的存儲(chǔ)器地址; 至少一個(gè)數(shù)字信號處理器,其耦合到所述第一存儲(chǔ)器,并用于直接對所述第一存儲(chǔ)器進(jìn)行數(shù)據(jù)讀取和數(shù)據(jù)寫入;以及 直接存儲(chǔ)器存取控制器,其耦合到所述第一存儲(chǔ)器,并且包括通往頁式存儲(chǔ)器設(shè)備的端口,其中,所述直接存儲(chǔ)器存取控制器被配置成將所述多個(gè)數(shù)據(jù)項(xiàng)直接從所述第一存儲(chǔ)器傳輸?shù)剿鲰撌酱鎯?chǔ)器設(shè)備,并且 其中,所述直接存儲(chǔ)器存取控制器還包括可配置的地址生成器,所述地址生成器用于通過使用多個(gè)讀模式中的選定的一個(gè)讀模式和多個(gè)寫模式中的選定的一個(gè)寫模式,來在所述傳輸期間操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得寫入所述頁式存儲(chǔ)器設(shè)備的數(shù)據(jù)項(xiàng)以不同于所述第一序列的第二序列進(jìn)行排列。
2.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器從所述第一存儲(chǔ)器上的非線性存儲(chǔ)器地址序列讀取所述數(shù)據(jù)項(xiàng),并且所述多個(gè)寫模式中的所述選定的一個(gè)寫模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器將所述數(shù)據(jù)項(xiàng)寫入所述頁式存儲(chǔ)器設(shè)備上的線性地址序列。
3.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器從所述第一存儲(chǔ)器上的線性存儲(chǔ)器地址序列讀取所述數(shù)據(jù)項(xiàng),并且所述多個(gè)寫模式中的所述選定的一個(gè)寫模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器將所述數(shù)據(jù)項(xiàng)寫入所述頁式存儲(chǔ)器設(shè)備上的非線性地址序列。
4.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器從所述第一存儲(chǔ)器上的非線性存儲(chǔ)器地址序列讀取所述數(shù)據(jù)項(xiàng),并且所述多個(gè)寫模式中的所述選定的一個(gè)寫模式用于配置所述地址生成器,以使所述直接存儲(chǔ)器存取控制器將所述數(shù)據(jù)項(xiàng)寫入所述頁式存儲(chǔ)器設(shè)備上的非線性地址序列。
5.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述直接存儲(chǔ)器存取控制器還被配置成將所述多個(gè)數(shù)據(jù)項(xiàng)直接從所述頁式存儲(chǔ)器設(shè)備傳輸?shù)剿龅谝淮鎯?chǔ)器,并且所述地址生成器還用于通過使用多個(gè)讀模式中的進(jìn)一步選定的一個(gè)讀模式和多個(gè)寫模式中的進(jìn)一步選定的一個(gè)寫模式,來在從所述頁式存儲(chǔ)器設(shè)備到所述第一存儲(chǔ)器的傳輸期間操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得寫入所述第一存儲(chǔ)器的數(shù)據(jù)項(xiàng)以不同于所述第一序列和所述第二序列的第三序列進(jìn)行排列。
6.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述頁式存儲(chǔ)器設(shè)備是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器。
7.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述第一存儲(chǔ)器是靜態(tài)隨機(jī)存取存儲(chǔ)器。
8.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),還包括:控制處理器,所述控制處理器用于執(zhí)行一程序,所述程序被配置成選擇所述多個(gè)讀模式中的所述一個(gè)讀模式和所述多個(gè)寫模式中的所述一個(gè)寫模式以供所述地址生成器使用,并將這些選擇提供給所述地址生成器。
9.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述數(shù)字信號處理系統(tǒng)還包括:多個(gè)硬件外圍設(shè)備,每個(gè)硬件外圍設(shè)備連接到所述直接存儲(chǔ)器存取控制器,并且每個(gè)硬件外圍設(shè)備被配置成經(jīng)由所述直接存儲(chǔ)器存取控制器從所述第一存儲(chǔ)器讀取數(shù)據(jù),對所述數(shù)據(jù)執(zhí)行一個(gè)或多個(gè)操作,并經(jīng)由所述直接存儲(chǔ)器存取控制器將數(shù)據(jù)寫入所述第一存儲(chǔ)器設(shè)備。
10.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述第一序列中的所述多個(gè)數(shù)據(jù)項(xiàng)被定義為排列成具有多個(gè)行和列的網(wǎng)格。
11.根據(jù)權(quán)利要求1所述的片上數(shù)字信號處理系統(tǒng),其中,所述第一序列中的所述多個(gè)數(shù)據(jù)項(xiàng)被定義為排列成具有多個(gè)行和列的元素網(wǎng)格,每個(gè)元素包括一組來自所述第一序列的連續(xù)數(shù)據(jù)項(xiàng)。
12.根據(jù)權(quán)利要求10所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式和所述多個(gè)寫模式中的所述選定的一個(gè)寫模式一起配置所述地址生成器,以操縱每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器地址,使得所述第二序列基于所述網(wǎng)格的轉(zhuǎn)置。
13.根據(jù)權(quán)利要求10所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式和所述多個(gè)寫模式中的所述選定的一個(gè)寫模式一起配置所述地址生成器,以操縱每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器地址,使得所述第二序列基于所述網(wǎng)格的轉(zhuǎn)置,其中,對一個(gè)或多個(gè)列或行的元素應(yīng)用了位置移位。
14.根據(jù)任一前述權(quán)利要求所述的片上數(shù)字信號處理系統(tǒng),其中,所述多個(gè)讀模式中的所述選定的一個(gè)讀模式和所述多個(gè)寫模式中的所述選定的一個(gè)寫模式一起配置所述地址生成器,以在所述傳輸期間操縱與每個(gè)數(shù)據(jù)項(xiàng)相關(guān)聯(lián)的存儲(chǔ)器地址,使得所述第二序列等價(jià)于對所述第一序列執(zhí) 行的卷積解交織操作的至少一部分。
15.一種使用直接存儲(chǔ)器存取控制器來在數(shù)字信號處理系統(tǒng)中執(zhí)行交織或解交織操作的方法,所述直接存儲(chǔ)器存取控制器包括可配置的地址生成器,其中,所述直接存儲(chǔ)器存取控制器耦合到用于存儲(chǔ)以第一序列排列的多個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)器,每個(gè)數(shù)據(jù)項(xiàng)具有所述存儲(chǔ)器上的相關(guān)聯(lián)的地址,所述方法包括: 選擇所述地址生成器的讀模式和寫模式; 在所述地址生成器處,根據(jù)所述讀模式計(jì)算存儲(chǔ)器讀地址序列,并根據(jù)所述寫模式計(jì)算存儲(chǔ)器寫地址序列,使得在讀地址和相應(yīng)的寫地址之間存在非線性關(guān)系; 使用所述直接存儲(chǔ)器存取控制器讀取與所述讀地址序列中的第一地址相關(guān)聯(lián)的數(shù)據(jù)項(xiàng); 使用所述直接存儲(chǔ)器存取控制器將該數(shù)據(jù)項(xiàng)寫入所述寫地址序列中的第一地址;以及 對于所述讀地址序列和所述寫地址序列中的每個(gè)后續(xù)地址,重復(fù)所述讀取步驟和所述寫入步驟,使得所述多個(gè)數(shù)據(jù)項(xiàng)在所述存儲(chǔ)器上以不同于所述第一序列的第二序列進(jìn)行排列。
16.根據(jù)權(quán)利要求15所述的方法,其中,所述存儲(chǔ)器是片上系統(tǒng)存儲(chǔ)器。
17.根據(jù)權(quán)利要求15所述的方法,還包括:在所述讀取步驟之后并且在所述寫入步驟之前,將數(shù)據(jù)項(xiàng)存儲(chǔ)在耦合到所述直接存儲(chǔ)器存取控制器的頁式存儲(chǔ)器設(shè)備上。
18.根據(jù)權(quán)利要求15所述的方法,其中,根據(jù)所述讀模式計(jì)算存儲(chǔ)器讀地址序列的步驟包括以下中的一個(gè)或多個(gè): 基于起始地址和預(yù)定整數(shù)的模來計(jì)算非線性讀地址序列; 通過將連續(xù)的存儲(chǔ)器地址子序列重復(fù)預(yù)定次數(shù)來計(jì)算非線性讀地址序列;以及通過選擇第一預(yù)定數(shù)量的連續(xù)存儲(chǔ)器地址,然后跳過一個(gè)或多個(gè)存儲(chǔ)器地址,并選擇第二預(yù)定數(shù)量的連續(xù)存儲(chǔ)器地址,來計(jì)算非線性讀地址序列。
19.根據(jù)權(quán)利要求15所述的方法,其中,根據(jù)所述寫模式計(jì)算存儲(chǔ)器寫地址序列的步驟包括:基于起始地址和預(yù)定整數(shù)的模來計(jì)算非線性寫地址序列。
20.根據(jù)權(quán)利要求15到20中的任一項(xiàng)所述的方法,其中,選擇讀模式和寫模式的步驟是由控制處理器執(zhí)行的,所述控制處理器執(zhí)行用于配置所述數(shù)字信號處理系統(tǒng)的操作的程序。`
【文檔編號】G06F13/28GK103677663SQ201310384896
【公開日】2014年3月26日 申請日期:2013年8月29日 優(yōu)先權(quán)日:2012年8月30日
【發(fā)明者】A·J·安德森 申請人:想象力科技有限公司