專利名稱:可編程信號處理電路和交織方法
技術領域:
本發(fā)明涉及一種對信號信息進行(解)交織的方法和一種用于執(zhí)行該方法的可編程信號處理電路。
DVB(數字視頻廣播)標準規(guī)定了已編碼電視信號的傳輸。為了解碼這些信號,必須執(zhí)行許多步驟,這其中就包括傳輸信號的解交織。解交織包括數據單元的重排列,以使它們在輸出序列中的相對位置不同于在傳輸期間數據單元出現在輸入序列中的相對位置。一般情況下,通過把接收信號的數據單元寫入存儲器并且以與數據被寫入的順序不同的順序從存儲器中讀取數據單元,從而執(zhí)行解交織。當數據單元存儲在可尋址的存儲器中時,由用于這個目的的地址選擇來控制解交織。
DVB標準定義了能用于此目的的地址序列。該定義包括三個序列數。第一序列數由R′i表示,其中i是區(qū)分序列中不同位置的標號。第二序列數由Ri表示,第三序列的數由Hi表示。DVB標準定義了遞歸算法,通過該遞歸算法能夠根據先前的值R′i-1計算第一序列中的每個連續(xù)的值R′i。該算法包括R′i-1的二進制表示形式的移位;增加一個比特值,該比特值是對R′i-1的二進制表示形式的選定比特進行邏輯運算而計算出來的。其次,DVB標準定義了把第一序列的值R′i映射到第二序列中的值Ri的映射。最后,DVB標準將第三序列Hi定義為從中已刪除所有超過閾值的數的第二序列的副本。為了使用三種不同的塊大小,DVB標準給出了這種類型的三種定義。
一般情況下,這種類型交織的已知實現方案使用專用的地址計算電路來計算第二序列的地址Ri。這樣的電路包含存儲第一序列R′i的當前值的寄存器、用于根據寄存器中的值產生下一個值R′i+1的第一電路和用于根據寄存器中的連續(xù)值R′i形成連續(xù)值Ri的第二電路。當必須并列地產生多個序列Ri時,需要并行的多個這樣的電路,每個這樣的電路都具有為各自的序列保存R′i值的寄存器。
一種可替換的實現方案使用可編程信號處理電路來計算地址Ri。在這種情況下,值R′i、Ri和Hi一般存儲在可由電路的指令尋址的信號處理電路的操作數寄存器中。由于序列R′i、Ri和Hi的定義的比特處理的本性,這些值的計算一般包括大量指令的執(zhí)行。作為一種可選擇的方式,可以使用查詢表,其中存儲著預先計算出來的Hi值。然而,這需要相當大的查詢表的開銷。
另一個可選方案能夠擴展可編程處理器的指令集,該可編程處理器具有專用指令,能計算連續(xù)的R′i值和根據R′i值計算Ri值。在這種情況中,在用于執(zhí)行這些指令的可編程信號處理電路中提供一個或多個功能單元。本質上,這樣的功能單元將包含來自專用電路的前述電路,以用于根據Ri計算R’i+1和根據R′i計算Ri。更確切地說,一個功能單元應該包含與邏輯電路結合的移位電路,以計算新的比特(根據R′i-1計算R′i),相同的或者另一個功能單元將提供R′到R的映射(其中包括比特交換),最后需要用比較電路來檢測有效的H值。在指令中被尋址的通用寄存器能用于提供R′i,因此保存R′i的專用寄存器可從功能單元中省略。這些使得處理器的程序的編譯更容易,因為這些指令獨立于這些功能單元中的狀態(tài)信息。然而,依舊希望能夠進一步減少執(zhí)行交織所需要的指令的數量。
本發(fā)明的一個目的是減少使用可編程信號處理電路執(zhí)行(解)交織所需要的指令執(zhí)行循環(huán)的次數。
本發(fā)明的一個目的是減少在DVB傳輸系統中使用可編程信號處理電路執(zhí)行(解)交織所需要的指令執(zhí)行循環(huán)的次數。
本發(fā)明的一個目的是提供一種可編程信號處理電路,該可編程信號處理電路能減少執(zhí)行(解)交織所需要的指令執(zhí)行循環(huán)的次數。
本發(fā)明的一個目的是提供一種使用可編程信號處理電路的高效的(解)交織方法。
在權利要求1中闡明了依照本發(fā)明的方法。在該方法中,根據所述存儲和/或讀取使用過的先前地址,計算在所述存儲和/或讀取中要使用的地址。為此目的,一個程序循環(huán)重復執(zhí)行,該程序循環(huán)包含用于計算地址的地址更新指令。這樣,地址本身可用于計算新地址,這意味著可以避免用于根據中間值R′計算地址Ri的額外處理時間。
支持該方法的處理器包含指令處理電路,后者的指令集包含地址更新指令。該指令處理電路包括交換電路和組合邏輯電路,該交換電路連接在它的操作數輸入端和它的結果輸出端之間,該交換電路根據來自相應輸入位置的相應比特,控制所述新地址結果中相應的輸出比特位置上的多個比特的值,其中所述輸入位置是所述輸出比特位置的交換,該組合邏輯電路連接在所述操作數輸入端和結果輸出端之間,其輸入端用于從所述舊地址操作數中相應的輸入比特位置接收比特,其輸出端用于輸出比特到所述新地址結果中的比特位置。
在另一個實施例中,作為地址更新指令的部分執(zhí)行,確定由新地址結果操作數表示的數是否超過閾值。如果寫入了這樣的標記結果,則可以用它在程序循環(huán)中有條件地執(zhí)行另外的指令。
在另一個實施例中,在程序循環(huán)的執(zhí)行期間使用重復的地址循環(huán),每次循環(huán)都有相同系列的地址用于所述存儲和/或讀取。當所述舊地址操作數有預定值時,通過偏離所述交換和形成用以形成新地址結果的比特,來啟動循環(huán),從而隱含地對所述地址更新指令的執(zhí)行做出響應。
在指令處理電路的實施例中,提供了比較器電路,所述比較器電路的輸入端連接至操作數輸入端,當預定地址出現時,比較器控制比特替換電路去覆蓋具有預定值的一個或多個比特。
優(yōu)選情況下,指令處理電路根據由地址更新指令指定的更新信息,在不同類型的更新中做出選擇。因此,指令處理電路能支持不同類型的解交織,例如對于不同的DVB塊大小。
本發(fā)明的這些以及其它目的和有益的方面將從隨后的示出了本發(fā)明的非限制性實例的附圖描述中舉例說明。
圖1示出了信號接收裝置;圖2示出了可編程信號處理電路;
圖3示出了一種功能單元;圖4示出了另外的功能單元。
圖1示出了信號接收裝置,例如DVB(數字視頻廣播)接收裝置。該裝置包含串聯在一起的前端10、數字信號處理電路12和后端14。前端10有一個輸入端用于接收視頻廣播信號。在工作過程中,前端10接收視頻廣播信號并從該信號中獲取數字信息。數字信號處理電路12接收數字信息并處理所述數字信息以形成視頻數據信號。數字信號處理電路向后端14提供視頻數據信號,后端14例如可以為所連接的視頻顯示屏(未示出)產生顯示數據或為所連接的視頻記錄設備(未示出)產生存儲數據。出于這些目的,后端14可以本身包含視頻顯示屏和/或記錄設備。
數字信號處理電路12包括可編程信號處理電路,該可編程信號處理電路中編制有程序,其可執(zhí)行如下操作解調(使用數字信號采樣去重建數據項,后者曾被用于調制采樣信號)和按照糾錯碼(ECC)對解調出來的數據項進行譯碼。
解碼前,數字信號處理電路12對所述數據進行解交織處理。交織用于減少面對突發(fā)錯誤和由干擾信號引起的錯誤的脆弱性,干擾信號和已解調數據項相結合會造成錯誤。面對這種普通錯誤很脆弱的數據項是分布式的,所以它們不會共同影響ECC的糾錯能力,例如通過把它們分布在ECC的不同碼字上。為了執(zhí)行解交織,數字信號處理電路12把解調數據項寫入存儲器并以不同的順序從存儲器中讀回所述數據項。
圖2示出了數字信號處理電路12中的可編程信號處理電路。可編程信號處理電路包括指令發(fā)布單元20,寄存器組22,多個功能單元23、24、26,數據存儲器28。指令發(fā)布單元20為數字信號處理電路存儲程序,并在程序執(zhí)行期間獲取程序流程所決定的指令。指令發(fā)布單元20的操作控制輸出端連接至功能單元23、24、26,以提供由指令的操作代碼所決定的控制信號,從而識別必須由功能單元23、24、26執(zhí)行的操作。指令發(fā)布單元20的寄存器選擇輸出端連接至寄存器組22的端口,用于提供選擇信號,以指示哪些寄存器包含指令的操作數以及哪些寄存器存儲指令結果。指令包含控制所述選擇信號的域。寄存器組22的輸出端口連接至功能單元23、24、26,以從所選寄存器提供操作數,寄存器組22的輸入端口連接至功能單元23、24、26,以接收指令的執(zhí)行結果。
雖然圖中用單線表示提供控制碼、寄存器選擇碼、操作數和結果的通信接線,但應當明白的是,在實際實現這些接線時,可以使用多條并行的導線。單線可表示提供多個寄存器選擇碼或提供多個操作數或返回多個結果的接線。此外,雖然僅僅給出了三個功能單元23、24、26,其中的每個功能單元都有其自己的接線通往指令發(fā)布單元20和寄存器組22,但應當明白的是,在實際中可能存在較多的功能單元,或者,如果多個不同功能單元的功能合到共享通往寄存器組22的公共接線的一個功能單元中,則可能存在較少的功能單元。
這些功能單元定義了一個“指令集”,它包括可由處理器執(zhí)行的各種指令。本申請中所用的“指令”是指程序的基本單元,其選擇的操作將由各功能單元完成。指令是程序的“原子”,程序的“原子”無法再細分成可用作指令的單元。一般情況下,每條指令有單個操作碼,用于標識該指令。眾所周知,設計可編程處理器一般都是先從規(guī)定指令集開始的,在規(guī)定好指令集之后,熟練的技術人員就能有足夠的信息知道如何去選擇處理器的至少一種基本實現方式。
第一個功能單元23是存儲器存取功能單元,其連接至數據存儲器28。所述存儲器存取功能單元23能執(zhí)行“裝載(LOAD)”和“存儲(STORE)”指令,指令中的操作數指明了數據存儲器28中的位置地址。數據存儲器28還連接至前端10(未示出)和/或后端14(未示出),以接收信號數據和傳送視頻數據。第二個功能單元24(其實際上可包含一組功能單元)能執(zhí)行常規(guī)的指令,例如ADD、SHIFT等ALU指令。盡管圖中沒有顯示,但還可以提供更多的功能單元,例如,從而并行地執(zhí)行幾條指令,或執(zhí)行不同的指令(例如從前端10(未示出)輸入的信號數據和/或輸出到后端14(未示出)的視頻數據)。
可編程指令處理器的程序規(guī)定了信號數據的解交織。這通過提供給存儲器存取功能單元23的裝載(LOAD)和存儲(STORE)指令來執(zhí)行。使用由專用的地址更新功能電路26響應于專門的指令而計算出的操作數來確定在數據存儲器28中裝載(LOAD)和/或存儲(STORE)指令為該目的而使用的地址。提供了地址更新功能單元26,以計算在解交織期間裝載(LOAD)和/或存儲(STORE)指令所使用的連續(xù)地址。
在一個實施例中,地址更新功能單元26所執(zhí)行的一類指令可表示為NEXT ADDRESS R1,R2,R3采用這種表示法,R1、R2、R3表示寄存器選擇碼,用于標識寄存器組22中提供操作數和寫入指令結果的寄存器。然而,本申請中描述的指令通俗化表述就是R1等“是”寄存器。這應當是很容易理解的,意思是說,R1等表示用于標識寄存器組22中的寄存器的選擇碼。更通俗化一些可以說,R1等“是操作數”。這應當是很容易理解的,意思是說,R1等表示用于標識寄存器組22中包含該操作數的寄存器的選擇碼。
采用這種表示法,NEXT_ADDRESS表示識別該指令的操作代碼(op-code),R1是包含舊地址操作數值的操作數寄存器,R2是新地址結果值將被寫入的第一結果寄存器,R3是標記結果將被寫入的第二結果寄存器,標記結果指示新地址結果值是否有效。
在從數據存儲器讀取數據的程序段中,新指令的使用方式如下REPEATIF R3LOAD R1,R4,R5IF R3處理R5的內容的指令NEXT ADDRESS R1,R1,R3
盡管連續(xù)地示出了該程序的指令,但是應該認識到的是,在實際中,如果使用諸如VLIW處理器之類的多發(fā)布槽處理器,則指令中的一個或更多可以并行執(zhí)行。在該程序段中,在第一條指令之前的″IFR3″表示所述第一指令是受保護的指令(有條件地執(zhí)行的指令)?!笆鼙Wo”的含義是只有操作數R3的標記值指示R1中的地址值有效時,指令(LOAD操作數)所指明的操作才由存儲器存取功能單元23完全執(zhí)行。LOAD指令的常規(guī)操作數是R1和R4。R4包含基礎地址值,R1包含從所述基礎地址偏移的地址,它是使用NEXT_ADDRESS指令更新的。當LOAD指令被完全執(zhí)行時,從一個地址(R1和R4中的操作數之和)裝載數據,并且所裝載的數據被存儲在R5中。
使用來自R5的裝載數據的指令的完全執(zhí)行也受R3中的標記值保護。所有這些指令的執(zhí)行都受保護是不必要的保護那些將會覆蓋有用數據的指令的執(zhí)行就足夠了。
在LOAD指令的連續(xù)執(zhí)行之間執(zhí)行NEXT_ADDRESS指令(或每次與這種同時執(zhí)行)。NEXT_ADDRESS指令的執(zhí)行導致R1中的偏移地址和R3中的標記得到更新。
圖3示出了用于執(zhí)行NEXT_ADDRESS指令的地址更新功能單元的例子。該地址更新功能單元有一個操作數輸入端30a和連接至寄存器組22(未示出)的端口的兩個結果輸出端30b、c。地址更新功能單元包含異或(exclusive OR)電路33、反向器32、交換電路34、替換電路35、比較器36a、b、禁用電路37和結果比較器39。操作數輸入端30a和輸出端30b、c一般支持N比特寬度的輸入和輸出,其中N是數字信號處理器的字大小(例如N=16比特)。一般情況下,為該目的提供并行的N條導線,但是為了清楚起見,這里示出了單條線。為了從輸入端30a和輸出端30b分出多條比特線,象征性地示出了單元31、38,但應該認識到的是,由這些單元的輸入端和輸出端表示的導線僅僅通過這些單元繼續(xù)??蛇x擇地,這些單元中的任一個或兩個可以包含用于鎖存數據的寄存器,例如為了流水線操作的目的。從輸入單元31引出的許多比特線連接至交換電路34,該交換電路34按照如下的表提供它的輸入端和輸出端之間的交叉連接
這些連接是以如下方式選擇的根據用于DVB標準的解交織地址的定義,執(zhí)行根據R反向計算R′、更新R和根據已更新的R計算新的R這三者的組合。
交換電路34的輸出端連接至禁用電路37的輸入端,禁用電路37的輸出端連接至輸出單元38。交換電路34的一個輸出端通過替換電路35連接至禁用電路37的輸入端。自輸入單元31引出的比特線12通過反向器32連接至禁用電路37的比特輸入端12。異或電路33接收來自輸入比特線1、7、8和9的輸入信號,并且把結果反饋到禁用電路37的輸出比特輸入端5。
第一比較器36a的輸入端連接至輸入端30a,它的輸出端連接至替換電路35的控制輸入端。當輸入端30a處的信號表示的數據值表示數4096時,第一比較器36a產生檢測信號。替換電路35讓來自交換電路35的輸入信號通過,除非第一比較器36a表明在輸入端30a處的數據值表示數4096。在后一種情況中,替換電路提供邏輯1。任何合適的邏輯電路或復用電路可以用于實現該功能。
第二比較器36b的輸入端連接至輸入端30a,它的輸出端連接至禁用電路37的控制輸入端。當在輸入30a處的信號表示的數據值表示數4226時,該第二比較器36b產生檢測信號。禁用電路37讓來自交換電路35和替換電路35的輸入信號通過,除非第二比較器36b表明在輸入30a處的數據值表示數4226時。在后一種情況中,替換電路在它所有的輸出端處提供邏輯零。任何合適的邏輯電路或復用電路都可以用于實現該功能。
結果比較器39比較由輸出單元38輸出的結果表示的數和數6048。結果比較器39產生另外的結果,以指示結果表示的數是否超過了6048。來自輸出單元38的結果對應于前述例子中被寫入R1的結果,并且,來自結果比較器39的另外的結果對應于前述例子中被寫入R3的結果。
可以注意到的是,盡管在該圖中結果比較器39的輸入端連接到結果輸出端30b,但是它的輸入端可以選擇性地連接到禁用電路37的輸入端,并且,就經由替換電路35通過的比特而言,甚至可以與替換電路的輸入端相連接。在這種情況下,由結果比較器39造成的延遲不加在由替換電路35和/或禁用電路37造成的延遲上,這減少了指令循環(huán)的最小可能持續(xù)時間。結果比較器電路39甚至可以被設計,以使從它的接收異或電路33輸出的輸入端的延遲比從一個或多個保持比特的延遲更短。這進一步減少了最小指令循環(huán)持續(xù)時間。
在工作過程中,當執(zhí)行一系列NEXT_ADDRESS指令時,其中每個指令的舊地址操作數是該系列中先前指令的新地址結果,該功能單元執(zhí)行的指令產生一系列數,該一系列數包含能用于為解交織數據計算地址的數。響應于相同的指令,該功能單元產生另外的結果,以指示結果是否能被使用。這樣就無需為該目的而執(zhí)行不同的指令。
在它的舊地址操作數的值的基礎上,也就是沒有附加的信息指示循環(huán)是否終止,功能單元執(zhí)行地址循環(huán)的初始化和重新啟動。為了實現這一點,當遇到值4226時,第二比較器36b將該數重設為零,以開始數的新循環(huán)。當NEXT_ADDRESS指令使用這個零值作為舊地址操作數時,第一比較器36a檢測這個值并在循環(huán)中引入第一個非零的次要比特值??梢宰⒁獾降氖?,為該目的僅使用舊地址操作數沒有來自該功能單元的任何保持狀態(tài)信息被用于該目的。作為結果,功能單元可以執(zhí)行用于產生彼此交織的不同地址系列的指令。因此,例如,具有解交織功能的不同程序線程能夠同時執(zhí)行,例如從而并行地解碼兩個DVB信號。
在舉例說明的實施例中,作為不同的結果,產生了所述結果和所述另外的結果,所述不同的結果能夠被寫入不同的寄存器,不同的寄存器能夠在指令的控制下彼此獨立地進行選擇。這帶來了對解交織進行編程的最大靈活性。這些寄存器可以是相同的寄存器組中或者在不同的寄存器組(例如具有相互不同的比特寬度)中的寄存器。在另一個實施例(未示出)中,所述另外的結果可以插入所述結果中,例如在最重要的比特位置(舉例來說,在比特數15或31)。在這種情況下,更簡單的指令結果能象征性地表示為NEXT_ADDRESS R1,R2在這個指令中,僅需要一個結果寄存器地址R2來指示用于將包含所述結果和所述另外結果的數據寫入的寄存器。當該寄存器用于LOAD或STORE指令時,存儲器存取單元可以在地址確定期間忽略附加的比特。當在另外結果的控制下有條件地執(zhí)行使用地址確定結果的指令時,即使在該計算中使用所述比特,也不會引起任何問題。
作為一種替代方式,所述另外結果和結果比較器39可以被完全省略。在這種情況下,需要不同的比較指令來執(zhí)行解交織REPEATIF R3LOAD R1,R4,R5IF R3處理R5內容的指令NEXT_ADDRESS R1,R1COMPARE R1,#MAX,R3
在這里,#MAX是等于6048的常數,6048與R1的內容進行比較。與圖3的實施例相比較,這需要在一次指令循環(huán)期間額外地占有比較器功能單元。另一方面,它簡化了用于計算連續(xù)地址的功能單元的設計方案。
應該認識到的是,圖3中所示的結構僅是為此目的而使用的功能單元的一個例子。將可以認識到的是,如果需要不同的地址系列,代替圖3的電路,在功能單元中可以提供相對應的不同電路。例如,為了解碼不同的DVB數據,定義了三個不同的塊大小,每個都具有在解交織期間使用的它自己的地址系列。為了各種類型的解碼,在功能單元中可以使用不同的結構。
甚至可以使用替代性的不同電路來執(zhí)行相同的解交織操作。例如,在不影響所產生的數的前提下,不同單元之間的連接關系可以改變。因為交換電路35僅執(zhí)行比特對比特(bit-for-bit)的連接功能,所以它可以被放置在相對于異或電路33、替換電路35或禁用電路37的任何位置。類似地,因為比較器36a、b在不同的地址上觸發(fā),所以替換電路35和禁用電路37的順序可以交換。
而且,應該認識到,解交織能以使用不同系列地址的許多不同方式來實現,為此可以使用功能單元的不同實現方式。例如,可以用第一種實現方式來完成解交織在多個地址處存儲以固定步幅增加的地址值,以及,借助于用功能單元產生的系列確定的地址,進行裝載。相同的解交織操作可以通過第二種實現方式來完成,該第二種實現方式包括借助于用功能單元產生的系列確定的地址,進行存儲,以及,裝載以固定步幅增加的地址值。第一和第二執(zhí)種實現方式能夠用于實現相同的解交織操作。類似地,如果不增加地址值,而是使用以固定步幅減少的地址值,則可以相應地提供不同的功能單元。作為另外的替代方式,不同地產生的系列地址可以用于讀取和寫入兩者。
在一個實施例中,功能單元具備產生多個不同地址序列的能力,由指令來選擇特定的地址序列。作為例子,在DVB解碼期間可以提供一個功能單元,它能用于為不同塊大小產生地址。在一個實施例中,由指令的操作碼來選擇序列類型。這種情況下,為三種不同種類的指令提供了三個不同的操作碼。這些指令的調用可以表示為NEXT_ADDRESS_1R1,R2,R3NEXT_ADDRESS_2R1,R2,R3NEXT_ADDRESS_3R1,R2,R3每個指令導致被傳遞到寄存器R2的不同的計算結果以及該結果與不同數的比較,從而產生被傳遞到R3的另外結果。可替代地,單一類型的比較可以用于各種類型的地址計算,其中另外的操作數用于在不同的計算之間選擇。
圖4示出了這樣的功能單元的實施例。在這個實施例中,與圖3中標號相同的單元具有與圖3中相同的功能。在這個實施例中,提供了操作控制輸入端40和一系列復用器42a-m(僅明確地標了2個)。復用器42a-m用于在三種不同地址之間選擇。復用器42a-m從控制輸入端40接收控制信號,以控制讓它們的三個輸入信號中的哪一個通過。還提供了三個交換電路44a-c,它們連接在輸入單元31和復用器42a-m的相應輸入之間。為了進行DVB解碼,這些交換電路的連接可以與下表中詳細說明的一樣
交換電路44a-c的輸出端連接至復用器42a-m的輸入端,來自控制輸入端40的控制信號確定輸出信號將從哪個交換電路44a-c傳遞到結果。
提供了三個異或電路43a-c,它們分別如下連接連接至比特數5對應的復用器42a-m的第一輸入端,連接至比特數7對應的復用器42a-m的第二輸入端,連接至比特數0對應的第三輸入端。提供了三個替換電路35a-c,它們分別連接如下連接至比特數7對應的復用器42a-m的第一輸入端,連接至比特數6對應的復用器42a-m的第二輸入端,連接至比特數4的第三輸入端。第一比較器電路46a控制三個替換電路35a-c,第一比較器電路46a比較輸入操作數表示的數和根據來自控制輸入端的控制信號的值當這個數分別是4096、2048和1024時,替換電路35a-c被激活。禁用電路37連接在復用器42a-m的輸出端和結果輸出端30b之間。第二比較器46b控制禁用電路37,當輸入操作數分別表示數4226、2056或1032時,禁用電路被迫輸出全零,這取決于控制輸入端40的控制信號選擇來自第一、第二、還是第三交換電路44a-c的輸出。
結果比較器39分別根據來自控制輸入40的控制信號選擇來自第一、第二、還是第三交換電路44a-c的輸出,從而分別比較所述結果和6048、3024或1512。如圖3的單一系列實施例中,提供比較器電路,對于這些電路位于復用器42a-m之前的比特,其輸入端連接至復用器42a-m的輸入端和替換電路35a-c的輸入端。
提供了反向器32a-c,它們把來自輸入單元31的各條線連接到復用器42a-m的相應線,因此,根據來自控制輸入40的控制信號,對于最重要比特,復用器讓下列信號組合之一通過(a)對于兩個最重要比特輸出,在復用器24a-m處讓邏輯零通過,并且,對于以重要性遞減順序的第三比特輸出,在復用器24a-m處讓來自輸入單元31的比特數9的倒數通過;(b)對于最重要比特輸出,在復用器24a-m處讓邏輯零通過,對于以重要性遞減順序的第二比特輸出,在復用器處讓來自輸入單元31的比特數10的倒數通過,并且,對于以重要性遞減順序的第三比特輸出,在復用器處讓來自交換電路42b的輸出通過;或者(c)對于以重要性遞減順序的第一比特輸出,在復用器處讓來自輸入單元31的比特數11的倒數通過,并且,對于以重要性遞減順序的第二和第三比特輸出,在復用器處讓來自交換電路42a的輸出通過。
可以理解的是,圖4的功能單元能用于產生相互交織的任何數量的系列地址,其中所述系列中的任一個可以是三種不同類型中的任一類型。
盡管上面結合特定的實施例描述了本發(fā)明,但應當理解的是,本發(fā)明不限于這些實施例。例如,盡管上面描述了在解交織中的應用(在接收后恢復原始序列),但應該認識到的是,本發(fā)明同樣適用于交織(在傳輸前重排列序列),因為這些操作包括相同類型的處理。事實上,相同類型的功能單元既可以用于交織又可以用于相同類型編碼的解交織,前者涉及依照產生的系列在地址處寫入和以固定的距離在地址處讀出,后者涉及以固定的距離寫入地址和依照這個產生的系列從地址中讀出。
權利要求
1.一種用于對信號進行解交織處理的方法,該方法包括從所述信號中提取數據;將所提取的數據存儲在數據存儲器(28)中,并且,在所述存儲之后,從所述數據存儲器(28)中讀取所存儲的提取數據;通過重復執(zhí)行包含用于計算地址的地址更新指令的程序循環(huán),根據所述存儲和/或讀取已經使用過的先前地址,計算在所述存儲和/或讀取中要使用的地址,所述地址更新指令定義了舊地址操作數和新地址結果的位置,所述新地址結果是響應于所述地址更新指令的至少一部分執(zhí)行而以如下方式形成的交換所述舊地址操作數的多個比特的位置,并且將所述舊地址操作數的比特進行邏輯組合,從而形成所述新地址結果的一個比特。
2.根據權利要求1的方法,包括每次執(zhí)行所述地址更新指令時,確定所述新地址結果操作數表示的數字是否超過閾值;把標記結果寫到所述地址更新指令所尋址的標記位置,該標記結果指示所述新地址結果操作數表示的數字是否超過了閾值;使用來自所述標記位置的標記結果,在所述循環(huán)中有條件地執(zhí)行將所述新地址結果用作操作數的另一指令。
3.根據權利要求1的方法,包括在所述程序循環(huán)執(zhí)行期間,啟動重復的循環(huán),每次循環(huán)都有相同系列的地址用于所述存儲和/或讀取,其中,當所述舊地址操作數具有預定的值時,通過偏離所述交換和形成用以形成新地址結果的比特,隱含地對所述地址更新指令的執(zhí)行做出響應。
4.根據權利要求1的方法,包括接收DVB信號和對所述DVB信號中的數據進行解交織處理。
5.一種可編程信號處理電路,包括操作數存儲電路(22);指令處理電路(23、24、26),用于執(zhí)行在所述操作數存儲電路(22)中對操作數和結果的位置進行尋址的指令,所述指令處理電路的指令集包括地址更新指令,所述指令處理電路(23、24、26)具有操作數輸入端(30a)和結果輸出端(30b),所述操作數輸入端(30a)從所述操作數存儲電路(22)接收所述地址更新指令的舊地址操作數,所述結果輸出端(30b)把所述地址更新指令的新地址結果寫入所述操作數存儲電路(22),所述指令處理電路(23、24、26)包括交換電路(34),其連接在所述操作數輸入端(30a)和所述結果輸出端(30b)之間,根據來自相應輸入位置的相應比特,控制所述新地址結果中相應的輸出比特位置上的多個比特的值,其中所述輸入位置是所述輸出比特位置的交換;以及組合邏輯電路(33),其連接在所述操作數輸入端(30a)和所述結果輸出端(30b)之間,其輸入端用于從所述舊地址操作數中相應的輸入比特位置接收比特,其輸出端用于輸出比特到所述新地址結果中的比特位置。
6.根據權利要求5的可編程信號處理電路,其中,所述指令處理電路(23、24、26)包括比較器電路(36a),其具有連接至所述操作數輸入端(30a)的輸入端和輸出端;與所述交換電路(34)串連的比特替換電路(35),其控制輸入端連接至所述比較器電路(36a)的輸出端,當所述比較器電路(36a)指示所述舊地址操作數包含比特值的預定組合時,所述比特替換電路(35)替換處于所述多個輸出位置之一的預定比特值。
7.根據權利要求6的可編程信號處理電路,其中,所述指令處理電路(22、24、26)包括另外的比較器電路(36b),其具有連接至所述操作數輸入端(30a)的輸入端和輸出端;與所述交換電路(34)串連的另外比特替換電路(37),其控制輸入端連接至所述另外的比較器電路(36b)的輸出端,當所述另外的比較器電路(36b)指示所述舊地址操作數包含另外的比特值的預定組合時,所述另外的比較器電路(36b)替換處于所述多個輸出位置的預定比特值。
8.根據權利要求6的可編程信號處理電路,其中,所述指令處理電路(23、24、26)包括另外的結果輸出端(30c),用于把所述地址更新指令的標記結果寫入所述操作數存儲電路(22)中;比較器電路(39),其輸入端用于接收從所述操作數輸入端(30a)獲得的信息,其輸出端連接至所述另外的結果輸出端(30c),并且根據所述信息是否指示由所述新地址結果表示的值超過了預定的值,來設置標記。
9.根據權利要求6的可編程信號處理電路,其中,所述指令處理電路(23、24、26)的輸入端(40)用于接收由所述地址更新指令指定的更新類型信息,并且,所述指令處理電路(23、24、26)根據所述更新信息選擇一種類型的更新。
10.根據權利要求6的可編程信號處理電路,包括可尋址的存儲器(28),可編程信號處理電路被編程為具有對接收數據進行解交織處理的程序,該程序包含程序循環(huán)中所述地址更新指令的調用,所述程序循環(huán)包含裝載和/或存儲指令,所述裝載和/或存儲指令對來自所述調用的新地址結果進行尋址,將其作為存儲器存取操作數,以確定在所述可尋址的存儲器(28)中存儲器位置的地址。
全文摘要
可編程信號處理電路用于對數據流進行(解)交織。來自信號流的數據存儲在數據存儲器(28)中,并且以不同的順序被讀取。可編程信號處理電路用于計算要在所述存儲和/或讀取中使用的地址??删幊绦盘柼幚黼娐酚兄噶罴撝噶罴鶕龃鎯?或讀取使用過的先前地址計算地址的指令。響應于所述指令,可編程信號處理電路交換舊地址操作數的多個比特的位置,并且通過將舊地址操作數的比特進行邏輯組合來形成新地址結果的比特。通過重復執(zhí)行包含用于計算地址的地址更新指令的程序循環(huán),形成連續(xù)的地址。
文檔編號G06F9/308GK101076778SQ200580042789
公開日2007年11月21日 申請日期2005年12月13日 優(yōu)先權日2004年12月14日
發(fā)明者P·W·F·赫勒伊特斯, M·M·G·夸克斯, I·黑爾德 申請人:皇家飛利浦電子股份有限公司