CN101076778A - 可编程信号处理电路和交织方法 - Google Patents
可编程信号处理电路和交织方法 Download PDFInfo
- Publication number
- CN101076778A CN101076778A CNA2005800427896A CN200580042789A CN101076778A CN 101076778 A CN101076778 A CN 101076778A CN A2005800427896 A CNA2005800427896 A CN A2005800427896A CN 200580042789 A CN200580042789 A CN 200580042789A CN 101076778 A CN101076778 A CN 101076778A
- Authority
- CN
- China
- Prior art keywords
- address
- circuit
- instruction
- operand
- result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- Microcomputers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Executing Machine-Instructions (AREA)
Abstract
可编程信号处理电路用于对数据流进行(解)交织。来自信号流的数据存储在数据存储器(28)中,并且以不同的顺序被读取。可编程信号处理电路用于计算要在所述存储和/或读取中使用的地址。可编程信号处理电路有指令集,该指令集包含根据所述存储和/或读取使用过的先前地址计算地址的指令。响应于所述指令,可编程信号处理电路交换旧地址操作数的多个比特的位置,并且通过将旧地址操作数的比特进行逻辑组合来形成新地址结果的比特。通过重复执行包含用于计算地址的地址更新指令的程序循环,形成连续的地址。
Description
本发明涉及一种对信号信息进行(解)交织的方法和一种用于执行该方法的可编程信号处理电路。
DVB(数字视频广播)标准规定了已编码电视信号的传输。为了解码这些信号,必须执行许多步骤,这其中就包括传输信号的解交织。解交织包括数据单元的重排列,以使它们在输出序列中的相对位置不同于在传输期间数据单元出现在输入序列中的相对位置。一般情况下,通过把接收信号的数据单元写入存储器并且以与数据被写入的顺序不同的顺序从存储器中读取数据单元,从而执行解交织。当数据单元存储在可寻址的存储器中时,由用于这个目的的地址选择来控制解交织。
DVB标准定义了能用于此目的的地址序列。该定义包括三个序列数。第一序列数由R′i表示,其中i是区分序列中不同位置的标号。第二序列数由Ri表示,第三序列的数由Hi表示。DVB标准定义了递归算法,通过该递归算法能够根据先前的值R′i-1计算第一序列中的每个连续的值R′i。该算法包括:R′i-1的二进制表示形式的移位;增加一个比特值,该比特值是对R′i-1的二进制表示形式的选定比特进行逻辑运算而计算出来的。其次,DVB标准定义了把第一序列的值R′i映射到第二序列中的值Ri的映射。最后,DVB标准将第三序列Hi定义为从中已删除所有超过阈值的数的第二序列的副本。为了使用三种不同的块大小,DVB标准给出了这种类型的三种定义。
一般情况下,这种类型交织的已知实现方案使用专用的地址计算电路来计算第二序列的地址Ri。这样的电路包含存储第一序列R′i的当前值的寄存器、用于根据寄存器中的值产生下一个值R′i+1的第一电路和用于根据寄存器中的连续值R′i形成连续值Ri的第二电路。当必须并列地产生多个序列Ri时,需要并行的多个这样的电路,每个这样的电路都具有为各自的序列保存R′i值的寄存器。
一种可替换的实现方案使用可编程信号处理电路来计算地址Ri。在这种情况下,值R′i、Ri和Hi一般存储在可由电路的指令寻址的信号处理电路的操作数寄存器中。由于序列R′i、Ri和Hi的定义的比特处理的本性,这些值的计算一般包括大量指令的执行。作为一种可选择的方式,可以使用查询表,其中存储着预先计算出来的Hi值。然而,这需要相当大的查询表的开销。
另一个可选方案能够扩展可编程处理器的指令集,该可编程处理器具有专用指令,能计算连续的R′i值和根据R′i值计算Ri值。在这种情况中,在用于执行这些指令的可编程信号处理电路中提供一个或多个功能单元。本质上,这样的功能单元将包含来自专用电路的前述电路,以用于根据Ri计算R’i+1和根据R′i计算Ri。更确切地说,一个功能单元应该包含与逻辑电路结合的移位电路,以计算新的比特(根据R′i-1计算R′i),相同的或者另一个功能单元将提供R′到R的映射(其中包括比特交换),最后需要用比较电路来检测有效的H值。在指令中被寻址的通用寄存器能用于提供R′i,因此保存R′i的专用寄存器可从功能单元中省略。这些使得处理器的程序的编译更容易,因为这些指令独立于这些功能单元中的状态信息。然而,依旧希望能够进一步减少执行交织所需要的指令的数量。
本发明的一个目的是:减少使用可编程信号处理电路执行(解)交织所需要的指令执行循环的次数。
本发明的一个目的是:减少在DVB传输系统中使用可编程信号处理电路执行(解)交织所需要的指令执行循环的次数。
本发明的一个目的是提供一种可编程信号处理电路,该可编程信号处理电路能减少执行(解)交织所需要的指令执行循环的次数。
本发明的一个目的是提供一种使用可编程信号处理电路的高效的(解)交织方法。
在权利要求1中阐明了依照本发明的方法。在该方法中,根据所述存储和/或读取使用过的先前地址,计算在所述存储和/或读取中要使用的地址。为此目的,一个程序循环重复执行,该程序循环包含用于计算地址的地址更新指令。这样,地址本身可用于计算新地址,这意味着可以避免用于根据中间值R′计算地址Ri的额外处理时间。
支持该方法的处理器包含指令处理电路,后者的指令集包含地址更新指令。该指令处理电路包括交换电路和组合逻辑电路,该交换电路连接在它的操作数输入端和它的结果输出端之间,该交换电路根据来自相应输入位置的相应比特,控制所述新地址结果中相应的输出比特位置上的多个比特的值,其中所述输入位置是所述输出比特位置的交换,该组合逻辑电路连接在所述操作数输入端和结果输出端之间,其输入端用于从所述旧地址操作数中相应的输入比特位置接收比特,其输出端用于输出比特到所述新地址结果中的比特位置。
在另一个实施例中,作为地址更新指令的部分执行,确定由新地址结果操作数表示的数是否超过阈值。如果写入了这样的标记结果,则可以用它在程序循环中有条件地执行另外的指令。
在另一个实施例中,在程序循环的执行期间使用重复的地址循环,每次循环都有相同系列的地址用于所述存储和/或读取。当所述旧地址操作数有预定值时,通过偏离所述交换和形成用以形成新地址结果的比特,来启动循环,从而隐含地对所述地址更新指令的执行做出响应。
在指令处理电路的实施例中,提供了比较器电路,所述比较器电路的输入端连接至操作数输入端,当预定地址出现时,比较器控制比特替换电路去覆盖具有预定值的一个或多个比特。
优选情况下,指令处理电路根据由地址更新指令指定的更新信息,在不同类型的更新中做出选择。因此,指令处理电路能支持不同类型的解交织,例如对于不同的DVB块大小。
本发明的这些以及其它目的和有益的方面将从随后的示出了本发明的非限制性实例的附图描述中举例说明。
图1示出了信号接收装置;
图2示出了可编程信号处理电路;
图3示出了一种功能单元;
图4示出了另外的功能单元。
图1示出了信号接收装置,例如DVB(数字视频广播)接收装置。该装置包含串联在一起的前端10、数字信号处理电路12和后端14。前端10有一个输入端用于接收视频广播信号。在工作过程中,前端10接收视频广播信号并从该信号中获取数字信息。数字信号处理电路12接收数字信息并处理所述数字信息以形成视频数据信号。数字信号处理电路向后端14提供视频数据信号,后端14例如可以为所连接的视频显示屏(未示出)产生显示数据或为所连接的视频记录设备(未示出)产生存储数据。出于这些目的,后端14可以本身包含视频显示屏和/或记录设备。
数字信号处理电路12包括可编程信号处理电路,该可编程信号处理电路中编制有程序,其可执行如下操作:解调(使用数字信号采样去重建数据项,后者曾被用于调制采样信号)和按照纠错码(ECC)对解调出来的数据项进行译码。
解码前,数字信号处理电路12对所述数据进行解交织处理。交织用于减少面对突发错误和由干扰信号引起的错误的脆弱性,干扰信号和已解调数据项相结合会造成错误。面对这种普通错误很脆弱的数据项是分布式的,所以它们不会共同影响ECC的纠错能力,例如通过把它们分布在ECC的不同码字上。为了执行解交织,数字信号处理电路12把解调数据项写入存储器并以不同的顺序从存储器中读回所述数据项。
图2示出了数字信号处理电路12中的可编程信号处理电路。可编程信号处理电路包括:指令发布单元20,寄存器组22,多个功能单元23、24、26,数据存储器28。指令发布单元20为数字信号处理电路存储程序,并在程序执行期间获取程序流程所决定的指令。指令发布单元20的操作控制输出端连接至功能单元23、24、26,以提供由指令的操作代码所决定的控制信号,从而识别必须由功能单元23、24、26执行的操作。指令发布单元20的寄存器选择输出端连接至寄存器组22的端口,用于提供选择信号,以指示哪些寄存器包含指令的操作数以及哪些寄存器存储指令结果。指令包含控制所述选择信号的域。寄存器组22的输出端口连接至功能单元23、24、26,以从所选寄存器提供操作数,寄存器组22的输入端口连接至功能单元23、24、26,以接收指令的执行结果。
虽然图中用单线表示提供控制码、寄存器选择码、操作数和结果的通信接线,但应当明白的是,在实际实现这些接线时,可以使用多条并行的导线。单线可表示提供多个寄存器选择码或提供多个操作数或返回多个结果的接线。此外,虽然仅仅给出了三个功能单元23、24、26,其中的每个功能单元都有其自己的接线通往指令发布单元20和寄存器组22,但应当明白的是,在实际中可能存在较多的功能单元,或者,如果多个不同功能单元的功能合到共享通往寄存器组22的公共接线的一个功能单元中,则可能存在较少的功能单元。
这些功能单元定义了一个“指令集”,它包括可由处理器执行的各种指令。本申请中所用的“指令”是指程序的基本单元,其选择的操作将由各功能单元完成。指令是程序的“原子”,程序的“原子”无法再细分成可用作指令的单元。一般情况下,每条指令有单个操作码,用于标识该指令。众所周知,设计可编程处理器一般都是先从规定指令集开始的,在规定好指令集之后,熟练的技术人员就能有足够的信息知道如何去选择处理器的至少一种基本实现方式。
第一个功能单元23是存储器存取功能单元,其连接至数据存储器28。所述存储器存取功能单元23能执行“装载(LOAD)”和“存储(STORE)”指令,指令中的操作数指明了数据存储器28中的位置地址。数据存储器28还连接至前端10(未示出)和/或后端14(未示出),以接收信号数据和传送视频数据。第二个功能单元24(其实际上可包含一组功能单元)能执行常规的指令,例如ADD、SHIFT等ALU指令。尽管图中没有显示,但还可以提供更多的功能单元,例如,从而并行地执行几条指令,或执行不同的指令(例如从前端10(未示出)输入的信号数据和/或输出到后端14(未示出)的视频数据)。
可编程指令处理器的程序规定了信号数据的解交织。这通过提供给存储器存取功能单元23的装载(LOAD)和存储(STORE)指令来执行。使用由专用的地址更新功能电路26响应于专门的指令而计算出的操作数来确定在数据存储器28中装载(LOAD)和/或存储(STORE)指令为该目的而使用的地址。提供了地址更新功能单元26,以计算在解交织期间装载(LOAD)和/或存储(STORE)指令所使用的连续地址。
在一个实施例中,地址更新功能单元26所执行的一类指令可表示为:
NEXT ADDRESS R1,R2,R3
采用这种表示法,R1、R2、R3表示寄存器选择码,用于标识寄存器组22中提供操作数和写入指令结果的寄存器。然而,本申请中描述的指令通俗化表述就是:R1等“是”寄存器。这应当是很容易理解的,意思是说,R1等表示用于标识寄存器组22中的寄存器的选择码。更通俗化一些可以说,R1等“是操作数”。这应当是很容易理解的,意思是说,R1等表示用于标识寄存器组22中包含该操作数的寄存器的选择码。
采用这种表示法,NEXT_ADDRESS表示识别该指令的操作代码(op-code),R1是包含旧地址操作数值的操作数寄存器,R2是新地址结果值将被写入的第一结果寄存器,R3是标记结果将被写入的第二结果寄存器,标记结果指示新地址结果值是否有效。
在从数据存储器读取数据的程序段中,新指令的使用方式如下:
REPEAT:
IF R3LOAD R1,R4,R5
IF R3处理R5的内容的指令
NEXT ADDRESS R1,R1,R3
尽管连续地示出了该程序的指令,但是应该认识到的是,在实际中,如果使用诸如VLIW处理器之类的多发布槽处理器,则指令中的一个或更多可以并行执行。在该程序段中,在第一条指令之前的″IFR3″表示所述第一指令是受保护的指令(有条件地执行的指令)。“受保护”的含义是:只有操作数R3的标记值指示R1中的地址值有效时,指令(LOAD操作数)所指明的操作才由存储器存取功能单元23完全执行。LOAD指令的常规操作数是R1和R4。R4包含基础地址值,R1包含从所述基础地址偏移的地址,它是使用NEXT_ADDRESS指令更新的。当LOAD指令被完全执行时,从一个地址(R1和R4中的操作数之和)装载数据,并且所装载的数据被存储在R5中。
使用来自R5的装载数据的指令的完全执行也受R3中的标记值保护。所有这些指令的执行都受保护是不必要的:保护那些将会覆盖有用数据的指令的执行就足够了。
在LOAD指令的连续执行之间执行NEXT_ADDRESS指令(或每次与这种同时执行)。NEXT_ADDRESS指令的执行导致R1中的偏移地址和R3中的标记得到更新。
图3示出了用于执行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,但应该认识到的是,由这些单元的输入端和输出端表示的导线仅仅通过这些单元继续。可选择地,这些单元中的任一个或两个可以包含用于锁存数据的寄存器,例如为了流水线操作的目的。从输入单元31引出的许多比特线连接至交换电路34,该交换电路34按照如下的表提供它的输入端和输出端之间的交叉连接:
输入线# | 连接到输出线# |
0 | 10 |
1 | 7 |
2 | 4 |
3 | 0 |
4 | 1 |
5 | 11 |
6 | 9 |
7 | - |
8 | 6 |
9 | 2 |
10 | 8 |
11 | 3 |
这些连接是以如下方式选择的:根据用于DVB标准的解交织地址的定义,执行根据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造成的延迟上,这减少了指令循环的最小可能持续时间。结果比较器电路39甚至可以被设计,以使从它的接收异或电路33输出的输入端的延迟比从一个或多个保持比特的延迟更短。这进一步减少了最小指令循环持续时间。
在工作过程中,当执行一系列NEXT_ADDRESS指令时,其中每个指令的旧地址操作数是该系列中先前指令的新地址结果,该功能单元执行的指令产生一系列数,该一系列数包含能用于为解交织数据计算地址的数。响应于相同的指令,该功能单元产生另外的结果,以指示结果是否能被使用。这样就无需为该目的而执行不同的指令。
在它的旧地址操作数的值的基础上,也就是没有附加的信息指示循环是否终止,功能单元执行地址循环的初始化和重新启动。为了实现这一点,当遇到值4226时,第二比较器36b将该数重设为零,以开始数的新循环。当NEXT_ADDRESS指令使用这个零值作为旧地址操作数时,第一比较器36a检测这个值并在循环中引入第一个非零的次要比特值。可以注意到的是,为该目的仅使用旧地址操作数:没有来自该功能单元的任何保持状态信息被用于该目的。作为结果,功能单元可以执行用于产生彼此交织的不同地址系列的指令。因此,例如,具有解交织功能的不同程序线程能够同时执行,例如从而并行地解码两个DVB信号。
在举例说明的实施例中,作为不同的结果,产生了所述结果和所述另外的结果,所述不同的结果能够被写入不同的寄存器,不同的寄存器能够在指令的控制下彼此独立地进行选择。这带来了对解交织进行编程的最大灵活性。这些寄存器可以是相同的寄存器组中或者在不同的寄存器组(例如具有相互不同的比特宽度)中的寄存器。在另一个实施例(未示出)中,所述另外的结果可以插入所述结果中,例如在最重要的比特位置(举例来说,在比特数15或31)。在这种情况下,更简单的指令结果能象征性地表示为
NEXT_ADDRESS R1,R2
在这个指令中,仅需要一个结果寄存器地址R2来指示用于将包含所述结果和所述另外结果的数据写入的寄存器。当该寄存器用于LOAD或STORE指令时,存储器存取单元可以在地址确定期间忽略附加的比特。当在另外结果的控制下有条件地执行使用地址确定结果的指令时,即使在该计算中使用所述比特,也不会引起任何问题。
作为一种替代方式,所述另外结果和结果比较器39可以被完全省略。在这种情况下,需要不同的比较指令来执行解交织:
REPEAT:
IF R3LOAD R1,R4,R5
IF R3处理R5内容的指令
NEXT_ADDRESS R1,R1
COMPARE R1,#MAX,R3
在这里,#MAX是等于6048的常数,6048与R1的内容进行比较。与图3的实施例相比较,这需要在一次指令循环期间额外地占有比较器功能单元。另一方面,它简化了用于计算连续地址的功能单元的设计方案。
应该认识到的是,图3中所示的结构仅是为此目的而使用的功能单元的一个例子。将可以认识到的是,如果需要不同的地址系列,代替图3的电路,在功能单元中可以提供相对应的不同电路。例如,为了解码不同的DVB数据,定义了三个不同的块大小,每个都具有在解交织期间使用的它自己的地址系列。为了各种类型的解码,在功能单元中可以使用不同的结构。
甚至可以使用替代性的不同电路来执行相同的解交织操作。例如,在不影响所产生的数的前提下,不同单元之间的连接关系可以改变。因为交换电路35仅执行比特对比特(bit-for-bit)的连接功能,所以它可以被放置在相对于异或电路33、替换电路35或禁用电路37的任何位置。类似地,因为比较器36a、b在不同的地址上触发,所以替换电路35和禁用电路37的顺序可以交换。
而且,应该认识到,解交织能以使用不同系列地址的许多不同方式来实现,为此可以使用功能单元的不同实现方式。例如,可以用第一种实现方式来完成解交织:在多个地址处存储以固定步幅增加的地址值,以及,借助于用功能单元产生的系列确定的地址,进行装载。相同的解交织操作可以通过第二种实现方式来完成,该第二种实现方式包括:借助于用功能单元产生的系列确定的地址,进行存储,以及,装载以固定步幅增加的地址值。第一和第二执种实现方式能够用于实现相同的解交织操作。类似地,如果不增加地址值,而是使用以固定步幅减少的地址值,则可以相应地提供不同的功能单元。作为另外的替代方式,不同地产生的系列地址可以用于读取和写入两者。
在一个实施例中,功能单元具备产生多个不同地址序列的能力,由指令来选择特定的地址序列。作为例子,在DVB解码期间可以提供一个功能单元,它能用于为不同块大小产生地址。在一个实施例中,由指令的操作码来选择序列类型。这种情况下,为三种不同种类的指令提供了三个不同的操作码。这些指令的调用可以表示为:
NEXT_ADDRESS_1R1,R2,R3
NEXT_ADDRESS_2R1,R2,R3
NEXT_ADDRESS_3R1,R2,R3
每个指令导致被传递到寄存器R2的不同的计算结果以及该结果与不同数的比较,从而产生被传递到R3的另外结果。可替代地,单一类型的比较可以用于各种类型的地址计算,其中另外的操作数用于在不同的计算之间选择。
图4示出了这样的功能单元的实施例。在这个实施例中,与图3中标号相同的单元具有与图3中相同的功能。在这个实施例中,提供了操作控制输入端40和一系列复用器42a-m(仅明确地标了2个)。复用器42a-m用于在三种不同地址之间选择。复用器42a-m从控制输入端40接收控制信号,以控制让它们的三个输入信号中的哪一个通过。还提供了三个交换电路44a-c,它们连接在输入单元31和复用器42a-m的相应输入之间。为了进行DVB解码,这些交换电路的连接可以与下表中详细说明的一样:
输入线# | 44c的输出线# | 44b的输出线# | 44c的输出线# |
0 | 10 | 3 | 7 |
1 | 7 | 2 | 8 |
2 | 4 | 4 | 6 |
3 | 0 | 6 | 4 |
4 | 1 | 9 | - |
5 | 11 | 8 | 1 |
6 | 9 | - | 9 |
7 | - | 10 | 5 |
8 | 6 | 1 | 2 |
9 | 2 | 0 | 3 |
10 | 8 | 5 | - |
11 | 3 | - | - |
交换电路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的功能单元能用于产生相互交织的任何数量的系列地址,其中所述系列中的任一个可以是三种不同类型中的任一类型。
尽管上面结合特定的实施例描述了本发明,但应当理解的是,本发明不限于这些实施例。例如,尽管上面描述了在解交织中的应用(在接收后恢复原始序列),但应该认识到的是,本发明同样适用于交织(在传输前重排列序列),因为这些操作包括相同类型的处理。事实上,相同类型的功能单元既可以用于交织又可以用于相同类型编码的解交织,前者涉及依照产生的系列在地址处写入和以固定的距离在地址处读出,后者涉及以固定的距离写入地址和依照这个产生的系列从地址中读出。
Claims (10)
1.一种用于对信号进行解交织处理的方法,该方法包括:
从所述信号中提取数据;
将所提取的数据存储在数据存储器(28)中,并且,在所述存储之后,从所述数据存储器(28)中读取所存储的提取数据;
通过重复执行包含用于计算地址的地址更新指令的程序循环,根据所述存储和/或读取已经使用过的先前地址,计算在所述存储和/或读取中要使用的地址,所述地址更新指令定义了旧地址操作数和新地址结果的位置,所述新地址结果是响应于所述地址更新指令的至少一部分执行而以如下方式形成的:
交换所述旧地址操作数的多个比特的位置,并且将所述旧地址操作数的比特进行逻辑组合,从而形成所述新地址结果的一个比特。
2.根据权利要求1的方法,包括:
每次执行所述地址更新指令时,确定所述新地址结果操作数表示的数字是否超过阈值;
把标记结果写到所述地址更新指令所寻址的标记位置,该标记结果指示所述新地址结果操作数表示的数字是否超过了阈值;
使用来自所述标记位置的标记结果,在所述循环中有条件地执行将所述新地址结果用作操作数的另一指令。
3.根据权利要求1的方法,包括:
在所述程序循环执行期间,启动重复的循环,每次循环都有相同系列的地址用于所述存储和/或读取,其中,当所述旧地址操作数具有预定的值时,通过偏离所述交换和形成用以形成新地址结果的比特,隐含地对所述地址更新指令的执行做出响应。
4.根据权利要求1的方法,包括:接收DVB信号和对所述DVB信号中的数据进行解交织处理。
5.一种可编程信号处理电路,包括:
操作数存储电路(22);
指令处理电路(23、24、26),用于执行在所述操作数存储电路(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),可编程信号处理电路被编程为具有对接收数据进行解交织处理的程序,该程序包含程序循环中所述地址更新指令的调用,所述程序循环包含装载和/或存储指令,所述装载和/或存储指令对来自所述调用的新地址结果进行寻址,将其作为存储器存取操作数,以确定在所述可寻址的存储器(28)中存储器位置的地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04106549.1 | 2004-12-14 | ||
EP04106549 | 2004-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101076778A true CN101076778A (zh) | 2007-11-21 |
Family
ID=34930050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800427896A Pending CN101076778A (zh) | 2004-12-14 | 2005-12-13 | 可编程信号处理电路和交织方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8108651B2 (zh) |
EP (1) | EP1828884B1 (zh) |
JP (1) | JP4949267B2 (zh) |
KR (1) | KR101235822B1 (zh) |
CN (1) | CN101076778A (zh) |
AT (1) | ATE479143T1 (zh) |
DE (1) | DE602005023206D1 (zh) |
WO (1) | WO2006064462A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377516A (zh) * | 2011-06-22 | 2012-03-14 | 钜泉光电科技(上海)股份有限公司 | 数据处理方法及其装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006064462A2 (en) | 2004-12-14 | 2006-06-22 | Koninklijke Philips Electronics N.V. | Programmable signal processing circuit and method of interleaving |
GB201217531D0 (en) * | 2012-10-01 | 2012-11-14 | Advanced Risc Mach Ltd | ARMv7-M Asset Protection Proposal |
US9946541B2 (en) * | 2015-12-18 | 2018-04-17 | Intel Corporation | Systems, apparatuses, and method for strided access |
KR102208872B1 (ko) * | 2016-08-26 | 2021-01-28 | 삼성전자주식회사 | 디스플레이 장치 및 그 구동 방법 |
US10372452B2 (en) | 2017-03-14 | 2019-08-06 | Samsung Electronics Co., Ltd. | Memory load to load fusing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2999101B2 (ja) * | 1993-08-04 | 2000-01-17 | 松下電器産業株式会社 | インターリーブ装置 |
JPH11203106A (ja) | 1998-01-13 | 1999-07-30 | Hitachi Ltd | プロセッサ |
US6507629B1 (en) * | 1998-04-07 | 2003-01-14 | Sony Corporation | Address generator, interleave unit, deinterleave unit, and transmission unit |
JP3445525B2 (ja) | 1999-04-02 | 2003-09-08 | 松下電器産業株式会社 | 演算処理装置及び方法 |
US7073118B2 (en) * | 2001-09-17 | 2006-07-04 | Digeo, Inc. | Apparatus and method for saturating decoder values |
US7161994B2 (en) * | 2001-09-17 | 2007-01-09 | Digeo, Inc. | System and method for shared decoding |
US7251294B2 (en) * | 2001-09-17 | 2007-07-31 | Digeo, Inc. | System and method for concurrently demodulating and decoding multiple data streams |
WO2006064462A2 (en) * | 2004-12-14 | 2006-06-22 | Koninklijke Philips Electronics N.V. | Programmable signal processing circuit and method of interleaving |
US8145877B2 (en) * | 2008-03-31 | 2012-03-27 | Xilinx, Inc. | Address generation for quadratic permutation polynomial interleaving |
US8397123B2 (en) * | 2009-09-30 | 2013-03-12 | Qualcomm Incorporated | Recursive realization of polynomial permutation interleaving |
-
2005
- 2005-12-13 WO PCT/IB2005/054203 patent/WO2006064462A2/en active Application Filing
- 2005-12-13 US US11/721,052 patent/US8108651B2/en not_active Expired - Fee Related
- 2005-12-13 JP JP2007546275A patent/JP4949267B2/ja not_active Expired - Fee Related
- 2005-12-13 DE DE602005023206T patent/DE602005023206D1/de active Active
- 2005-12-13 EP EP05824323A patent/EP1828884B1/en not_active Not-in-force
- 2005-12-13 AT AT05824323T patent/ATE479143T1/de not_active IP Right Cessation
- 2005-12-13 CN CNA2005800427896A patent/CN101076778A/zh active Pending
- 2005-12-13 KR KR1020077013196A patent/KR101235822B1/ko active IP Right Grant
-
2012
- 2012-01-24 US US13/357,339 patent/US8433881B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377516A (zh) * | 2011-06-22 | 2012-03-14 | 钜泉光电科技(上海)股份有限公司 | 数据处理方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
KR101235822B1 (ko) | 2013-02-21 |
US20100039567A1 (en) | 2010-02-18 |
US8108651B2 (en) | 2012-01-31 |
EP1828884B1 (en) | 2010-08-25 |
US8433881B2 (en) | 2013-04-30 |
WO2006064462A2 (en) | 2006-06-22 |
ATE479143T1 (de) | 2010-09-15 |
JP4949267B2 (ja) | 2012-06-06 |
US20120120310A1 (en) | 2012-05-17 |
DE602005023206D1 (de) | 2010-10-07 |
EP1828884A2 (en) | 2007-09-05 |
KR20070086067A (ko) | 2007-08-27 |
JP2008523761A (ja) | 2008-07-03 |
WO2006064462A3 (en) | 2006-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685408B2 (en) | Methods and apparatus for extracting bits of a source register based on a mask and right justifying the bits into a target register | |
CN1200569C (zh) | 数字包数据网格译码器 | |
US5371864A (en) | Apparatus for concurrent multiple instruction decode in variable length instruction set computer | |
US8078836B2 (en) | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits | |
CN101076778A (zh) | 可编程信号处理电路和交织方法 | |
KR100455011B1 (ko) | 정값화처리및포화연산처리로이루어진라운딩처리를적합하게행할수있는프로세서 | |
US20110083001A1 (en) | Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture | |
JPH09106342A (ja) | 並べ換え装置 | |
US20050198054A1 (en) | Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation | |
CN1716185A (zh) | 用于单指令、多数据执行引擎的条件指令 | |
US7376813B2 (en) | Register move instruction for section select of source operand | |
US7882284B2 (en) | Compute unit with an internal bit FIFO circuit | |
CN105009075A (zh) | 具有水平置换的向量间接元素垂直寻址模式 | |
EP1941378A2 (en) | Improved pipelined digital signal processor | |
US7818540B2 (en) | Vector processing system | |
JP2001005675A (ja) | プログラム変換装置及びプロセッサ | |
US7130985B2 (en) | Parallel processor executing an instruction specifying any location first operand register and group configuration in two dimensional register file | |
US7080216B2 (en) | Data access in a processor | |
CN1472703A (zh) | 数字影像α混合的装置及方法 | |
CN102281074A (zh) | 包括可重新配置计数器的可重新配置交织器 | |
CN101076777A (zh) | 可编程信号处理电路和收缩译码方法 | |
CN86103906A (zh) | 寄存器存位的方法和装置 | |
CN1190738C (zh) | 数据处理装置及其数据读取方法 | |
CN1659593A (zh) | 累积直方图的计算方法 | |
CN1300004A (zh) | 精简指令集流水线结构的微控制器的指令定义方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |