CN101076777A - 可编程信号处理电路和收缩译码方法 - Google Patents
可编程信号处理电路和收缩译码方法 Download PDFInfo
- Publication number
- CN101076777A CN101076777A CNA200580042799XA CN200580042799A CN101076777A CN 101076777 A CN101076777 A CN 101076777A CN A200580042799X A CNA200580042799X A CN A200580042799XA CN 200580042799 A CN200580042799 A CN 200580042799A CN 101076777 A CN101076777 A CN 101076777A
- Authority
- CN
- China
- Prior art keywords
- operand
- bit metric
- instruction
- contraction
- bit
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 44
- 238000000034 method Methods 0.000 title claims description 23
- 230000008602 contraction Effects 0.000 claims description 125
- 238000013519 translation Methods 0.000 claims description 57
- 230000015572 biosynthetic process Effects 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 15
- 230000014509 gene expression Effects 0.000 claims description 7
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 50
- 239000002131 composite material Substances 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010572 single replacement reaction Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
- H04L1/0069—Puncturing patterns
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- 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/30018—Bit or string instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/64—Circuits for processing colour signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Executing Machine-Instructions (AREA)
- Communication Control (AREA)
- Circuits Of Receivers In General (AREA)
Abstract
一种可编程信号处理电路包括指令处理电路(23、24、26),指令处理电路(23、24、26)有一个指令集包括收缩译码指令。所述指令处理电路(23、24、26)以如下方式形成收缩译码结果:从一个比特度量操作数中复制出若干个比特度量;然后,将一个或多个预定的比特度量值插入所述收缩译码结果中源自所述比特度量操作数的所述若干个比特度量之间。所述指令处理电路(23、24、26)使所复制的比特度量彼此间在所述收缩译码结果中的相对位置与所复制的比特度量彼此间在所述比特度量操作数中的相对位置相比以容纳所插入的一个或多个预定比特度量值所需要的程度而发生改变。
Description
发明领域
本发明涉及可编程信号处理电路和对纠错码进行收缩译码的方法。
背景技术
DVB(数字视频广播)标准规定了如何传输经过编码的电视信号。为了对这些信号进行译码,需要执行多个步骤,包括:在纠错译码之前对传输信号进行“收缩译码(de-puncturing)”。收缩译码和收缩编码是互补的,而收缩编码是在纠错码(ECC)编码之后且在发射之前进行的。收缩编码涉及的是如何从选定的位置剔除比特,从而减少需要传输的比特的数量。此举应以仍能在用ECC进行译码期间恢复出编码数据的程度为限。DVB标准定义了必须将这些收缩编码比特从哪些位置剔除出去。
译码期间,在根据ECC对数据进行译码之前,即,通常在对数据进行Viterbi译码之前,再在这些位置插入预定的比特值。这种类型的收缩译码的已知实现方案通常使用专用硬件电路,该专用硬件电路接收输入比特流,在输出该输入流的比特的同时,检测输入流何时抵达收缩编码位置,并在该位置向输出流插入新的比特。然后,经过收缩译码的流传送到专用硬件,从而执行Viterbi译码。或者,也可以将经过收缩译码的流分成多个块,每个块都有预定数量的比特可以一起存储在可编程处理器的寄存器中,处理器可使用这些操作数来执行Viterbi译码。
另一种实现方案也需要使用可编程信号处理电路来执行收缩译码。但是,由于收缩译码的比特处理特性,这种方案一般需要执行相当大量的指令。这提高了对电路的速度要求并增加了功耗,因为必须得执行很多指令。这在VLIW(超长指令字)实施方案中尤其成问题,因为装载超长指令字的功耗非常之大。
发明内容
本发明的一个目的是:减少用可编程信号处理电路执行收缩译码所需的指令执行循环次数。
本发明的一个目的是:提供一种可以使用可编程指令来执行收缩译码的收缩译码方法,其中,所述可编程指令的寄存器操作数包含有多个预定的比特。
本发明的一个目的是:提供一种收缩译码方法,其中,收缩编码流中从操作数寄存器复制到收缩译码结果寄存器的比特的数量变化可以在开销很小的情况下通过可编程信号处理器来处理,可编程信号处理器使用的寄存器具有标准的宽度。
本发明的一个目的是:降低在DVB传输系统中用可编程信号处理电路执行收缩译码所需的指令执行循环次数。
本发明的一个目的是:提供一种可编程信号处理电路,从而降低执行收缩译码所需的指令执行循环次数。
本发明的一个目的是:在对数据流进行收缩译码时降低向可编程信号处理电路的程序循环中必须装载的指令的数量。
本发明的一个目的是:提供一种用可编程信号处理电路执行收缩译码的高效方法。
本发明提供了一种如权利要求1所述的可编程信号处理电路。该可编程信号处理电路有一个指令集包括收缩译码指令。根据收缩译码指令,指令处理电路以如下方式形成所述收缩译码结果:从一个比特度量操作数中复制出若干个比特度量,并将一个或多个预定比特度量值插入所述收缩译码结果中源自所述比特度量操作数的所述若干个比特度量之间,使所述复制的若干个比特度量彼此间在所述收缩译码结果中的相对位置与所述复制的若干个比特度量彼此间在所述比特度量操作数中的相对位置相比发生一定程度的改变,从而容纳所插入的一个或多个预定比特度量值。“比特度量”一词指的是由一个或多个比特构成的组,其代表单个传输比特所对应的接收信息。
通过提供专用的指令来形成可以在收缩编码位置处设置预定比特度量值的结果,就可以用可编程处理器高速地执行收缩译码。在一个实施例中,该收缩译码指令有另一个操作数,用于控制将预定的比特度量值插入什么位置。当然,为了定义不同的插入位置,也可以提供不同的收缩译码指令。
有各种不同的实施例可用于插入预定的比特模式值。在第一实施例中,所述指令处理电路包括至少一个用于此目的的比特度量复用电路。复用电路选择向收缩译码结果中的比特度量字段提供预定的比特度量值或者来自该比特度量操作数的一个比特度量,这取决于模式操作数指明是否应当将一个比特度量从所述比特度量操作数复制到所述收缩译码结果的所述部分,并取决于所述模式操作数指示的应当复制到所述收缩译码结果的其它部分中的预定比特度量值的个数,所述收缩译码结果的所述其它部分位于所述收缩译码结果的所述部分之前。该实施例将延时量降到最低。通常会使用多个这样的复用电路,每个复用电路对应着收缩译码结果中的一个相应比特度量位置。作为一种替代方式,可控移位电路也可用来选择将哪些比特度量传递到所述收缩译码结果的字段。在这种情况下,替换电路可在移位后替换预定比特度量值,或者,预定比特度量值可以是在预期收缩编码模式的控制下使用适当的移位值选择的移位数据的一部分。
在其它实施例中,提供了收缩译码指令或其它指令来形成寄存器中的队列,该队列结果将用作下次执行收缩译码指令的比特度量操作数。该队列结果包含的比特度量未曾用于形成收缩译码结果。使用该队列结果是因为考虑了这样的事实:来自比特度量操作数的依赖于收缩编码模式的可变个数的比特度量不复制到收缩译码结果中。剩余的比特度量可以有选择性地复制到队列结果中,以供将来用作比特操作数。该队列结果可用于累积比特度量操作数中的比特度量,直到它单独或者与另一比特度量操作数合起来包含足够多的比特度量可形成收缩译码结果。优选情况下,该可编程处理器的指令集提供收缩译码指令,信号处理器据此形成队列结果和收缩译码结果。这减少了对寄存器组的访问,并给指令集中的其它指令留出了更多的空间。或者,也可以提供特定的队列结果形成指令,它使用模式操作数和比特度量操作数来形成队列结果。
在另一个实施例中,收缩译码指令或其它指令接收其它的比特度量操作数,后者包含具有预定个数的比特度量的比特度量流的一块。队列长度码操作数用于指明比特度量操作数中比特度量的个数,而队列结果是通过纳入某些比特度量而形成的,根据该模式操作数,这些比特度量不会响应于收缩译码指令而复制到收缩译码结果中,所以,个数取决于模式操作数的比特度量与来自其它比特度量操作数的比特度量一起组合到该队列结果中。
优选情况下,收缩译码指令或其它指令产生的队列长度结果指明队列结果中比特度量的个数,以用于将来执行收缩译码指令。优选情况下,增加队列长度,从而:只有队列结果中的空间足以把来自其它比特度量操作数的所有比特度量全部复制到队列结果中时,除了来自该比特度量操作数且未被用在收缩译码结果中的比特度量之外,还加入来自其它比特度量操作数的比特度量。如果否,则用相同的其它比特度量操作数重复该收缩译码指令或其它指令。这样,就易于适应输入流和输出流之间的速率差。
在另一个实施例中,除了收缩译码模式之外,在模式操作数中还提供长度值。该长度值可响应于收缩译码指令或其它指令,控制从其它比特度量操作数复制到队列结果中的比特度量的个数。这降低了排队过程中的延时。
在另一个实施例中,该收缩译码指令或其它指令需要其它的比特度量操作数,后者包含来自比特度量流的具有预定数量的比特度量的一块。收缩译码结果形成方式为:将来自比特度量操作数的个数取决于模式操作数的比特度量复制到收缩译码结果中,如果比特度量操作数中的比特度量的所述个数能提供足够多的副本用在收缩译码结果中的话。这样可以用预定数量的比特度量高速地产生有效的收缩译码结果。当比特度量的个数不够时,优选产生一个标志结果,以防止使用该收缩译码结果。在这种情况下,该比特度量操作数的所有比特度量和其它比特操作数中尽可能多的比特度量复制到队列结果中,从而可以稍后产生有效的收缩译码结果。
附图说明
下面将结合附图对本发明的这些和其它目的以及有益方面进行描述,附图示出了本发明的非限制性示例。
图1示出了一个信号接收机装置;
图2示出了一个可编程的信号处理电路;
图3示出了一个收缩译码功能单元;
图4示出了一个操作数更新电路;
图5示出了一个收缩译码电路;
图6示出了另一个收缩译码功能单元;
图7示出了又一个收缩译码功能单元;
图8示出了一个辅助结果计算电路。
具体实施方式
图1所示的信号接收机装置为,例如DVB(数字视频广播)接收机装置。该装置包括串联在一起的前端10、数字信号处理电路12和后端14。前端10有一个输入端用于接收视频广播信号。在工作过程中,前端10接收视频广播信号,并从该信号中获取数字信息。数字信号处理电路12接收数字信息,并处理数字信息,以形成视频数据信号。数字信号处理电路向后端14提供视频数据信号,后端14可以,例如,为相连的视频显示屏(未显示)生成显示数据,或者,为相连的视频记录设备(未显示)生成存储数据。后端14可以包含用于此目的的视频显示屏和/或记录设备。
数字信号处理电路12包括一个可编程的信号处理电路,它编制有程序,可执行如下操作:解调(使用数字信号采样去重建数据项,后者曾被用于调制采样信号)和按照纠错码(ECC)对解调出来的数据项进行译码。
本发明涉及在数字信号处理电路12中对数据进行收缩译码。在译码之前,数字信号处理电路12先对数据进行收缩译码。收缩译码是在发射机端执行的收缩编码的逆过程。ECC已编码数据的选定比特是不传输的,从而减小传输数据的数据速率。在接收端使用接收信号按照ECC进行纠错之前,先用缺省值替换未传输的比特。
图2示出了数字信号处理电路12中的一个可编程的信号处理电路。可编程的信号处理电路包括指令发出单元20、寄存器组22、多个功能单元23、24、26和数据存储器28。指令发出单元20存储着数字信号处理电路所用的程序,它能够在程序执行期间获取由程序流确定的指令。指令发出单元20有多个操作控制输出端连接到功能单元24、26,用于提供由指令的操作码确定的控制信号,操作码标识必须由功能单元23、24、26执行的操作。指令发出单元20有多个寄存器选择输出端连接到寄存器组22的端口,用于提供选择信号,选择信号指明哪些寄存器包含指令的操作数以及必须将指令的结果存储到哪些寄存器中。指令包含有控制这些选择信号的字段。寄存器组22的输出端口连接到功能单元23、24、26,用于从选定的寄存器提供操作数,寄存器组22的输入端口连接到功能单元23、24、26,用于接收指令的执行结果。
虽然图中用单线表示提供控制码、寄存器选择码、操作数和结果的通信接线,但应当明白的是,在实际实现这些接线时,可以使用多条并行的导线。单线可表示提供多个寄存器选择码或提供多个操作数或返回多个结果的接线。此外,虽然仅仅给出了三个功能单元23、24、26,其中的每个功能单元都有其自己的接线通往指令发出单元20和寄存器组22,但应当明白的是,在实际中可能存在较多的功能单元,或者,如果多个不同功能单元的功能合到共享通往寄存器组22的公共接线的一个功能单元中,则可能存在较少的功能单元。
这些功能单元定义了一个“指令集”,它包括可由处理器执行的各种指令。本申请中所用的“指令”是指程序的基本单元,其选择的操作将由各功能单元完成。指令是程序的“原子”,程序的“原子”无法再细分成可用作指令的单元。通常,每条指令有单个操作码,用于标识该指令。众所周知,设计可编程处理器一般都是先从规定指令集开始的,在规定好指令集之后,熟练的技术人员就能有足够的信息如何去选择处理器的至少一种实现方式。
第一功能单元23是存储器访问功能单元,它与数据存储器28相连。该存储器访问功能单元23能够执行“加载”和“存储”指令,指令中的操作数指明了数据存储器28中位置的地址。数据存储器28也可连接到前端10(未显示)和/或后端14(未显示),以便接收信号数据和发送视频数据。第二功能单元24(它实际上可包括一组功能单元)用于执行传统的指令,如ADD、SHIFT等ALU指令。虽然图中没有显示,但还可以有其它功能单元,例如,从而可以并行地执行多条指令,或者可以执行不同的指令(例如,从前端10(未显示)输入的信号数据和/或输出到后端14(未显示)的视频数据)。
在对收到的数据进行处理期间,借助于每个接收比特对应的多个操作数比特(例如,4个操作数比特),这些功能单元的操作数一般代表了收到的信号的各比特,从而给出所收到比特值的确定性。这样的多个操作数比特可称为“比特度量”。但是,在不偏离本发明的情况下,单个操作数比特可用来表示收到的一个比特。在这种情况下,“比特度量”指的是单个这样的比特。
可编程指令处理器的程序用于对信号数据进行收缩译码。专用的第三功能单元26用于执行收缩译码指令。在一个实施例中,由该收缩译码功能单元26执行的此类指令可表示成:
DEPUNCTURE R1,R2,R3,R4,R5,R6
采用这种表示法,R1、R2等表示寄存器选择码,用于标识寄存器组22中提供操作数和写入指令结果的寄存器。但是,本申请中描述的指令用口语化表述就是:R1等“是”寄存器。这应当是很容易理解的,意思是说,R1等表示用于标识寄存器组22中的寄存器的选择码。更口语化一些可以说,R1等“是操作数”。这应当是很容易理解的,意思是说,R1等表示用于标识寄存器组22中包含该操作数的寄存器的选择码。
采用这种表示法,DEPUNCTURE表示用于识别该指令的操作码,R1、R2是包含接收比特对应的比特度量的操作数寄存器。R3是包含长度码的操作数寄存器。R4是包含模式码的操作数寄存器。R5是结果寄存器,其中将会写入来自寄存器R1(可选地,还有R2)的比特度量以及还有插入的缺省比特度量。R6是结果寄存器,其中将会写入来自寄存器R1和R2的其它比特度量。
当执行该指令时,来自寄存器R1(可选地,还有R2)的比特度量,还有插入的缺省比特度量,被复制到寄存器R5中。根据这些操作数,来自寄存器R1、R2的其余比特度量的一部分输出到寄存器R6中。寄存器R6的用途是,在寄存器R6充当操作数寄存器R1的情况下,该指令可以重复执行。
图3示出了收缩译码功能单元26的一个实施例。收缩译码功能单元包括操作数组合电路30、收缩译码电路32和操作数更新电路34。收缩译码功能单元有四个用于从寄存器R1、R2、R3、R4接收操作数数据的操作数输入端36a-d和两个用于向寄存器R5、R5输出结果的结果输出端38、39。
操作数组合电路30形成的输出信号包含N个连续的比特度量,其中有L个比特度量是根据输入端36a的操作数R1获得的,有N-L个比特度量是根据输入端36b的操作数R2获得的,L是由来自操作数输入端36c的长度码控制的。
图4示出了操作数组合电路30的一个实施例。在该实施例中,使用的是移位电路40和OR电路42。第一操作数输入端36a连到OR电路42的第一输入端,第二操作数输入端36b连到移位电路40的输入端,移位电路40的输出端连接OR电路42的第二输入端。第三操作数输入端36c连到移位电路40的控制输入端。OR电路42的输出和移位电路40的一部分输出形成操作数组合电路的输出。
移位电路40实现为,例如,公知的桶式移位电路,它有并行的输入端,其中,最高有效输入端从第二操作数输入端36b并行地接收M比特操作数的M个比特(例如,M=32),而M个较低有效输入端接收逻辑值零。移位电路40有2*M个并行的输出端,它们将输入信号移位了L比特度量位置的副本输出到较低有效位置(即,如果一个比特度量用四个比特表示,则所用的移位是4*L个比特)。移位量由第三操作数输入端36c控制。在L个最高有效比特度量位置上,移位电路40输出逻辑零。OR电路42对来自第一操作数输入端36a的M个输入比特和移位电路40的M个最高有效输出比特进行逐位的逻辑求或,移位电路40的M个较低有效输出比特直接馈入操作数组合电路30的输出端。
应当明白的是,可能有很多其它实现方式也能达到相同的功能。举一个简单的例子,如果电路在第一操作数R1中的未用位置包括逻辑值“1”,则可使用逐位AND电路来取代OR电路42。可以使用信号的逆变版本等等。
收缩译码电路32采用这些比特度量从操作数组合电路30输出的顺序,把比特度量的副本从操作数组合电路30的输出端输出到收缩译码电路32的输出端。在输出顺序的比特度量之间,收缩译码电路32在选定位置插入缺省比特度量,这由来自第四操作数输入端36d的操作数进行控制。
图5示出了收缩译码电路32的一个实施例。该实施例包括多个复用电路50和一系列的加法器电路52。多个加法器电路52形成一串,其中除第一个加法器电路52之外,其余每个加法器电路52的第一输入端连到前一加法器电路52的输出端,这些加法器电路的第二输入端从第四操作数输入端36d接收各自相应的比特。每个复用电路50有第一输入端54连到缺省的比特度量信源,并且有一个或多个第二比特度量输入端连到操作数组合电路30的相应比特度量输出端(虽然图中划的是单线,但应当理解的是,每条线可表示多条数据导线,例如,四条数据导线提供一个比特度量的各个相应比特)。每个复用电路50有一个控制输入端,用于从第四操作数输入端36d接收相应的比特。加法器电路52的输出端连到复用电路50的其它相应控制输入端。
在工作时,来自第四操作数输入端36d的操作数的相应比特对应于由用于在收缩译码电路32的输出端输出比特度量的一个或多个比特构成的相应组。来自第四操作数输入端36d的操作数的各个相应比特表明:对应的组应当包括缺省比特度量还是来自操作数组合电路30的比特度量。复用电路50使用来自第四操作数输入端36d的这些比特,控制是让缺省比特度量通过,还是让来自操作数组合电路30的比特度量通过。此外,加法器电路52的输出控制让来自操作数组合电路30的哪个比特度量通过。每个复用电路50让来自最高有效位置的比特度量通过,在结果输出端39与较高有效输出比特相连的任何其它复用电路50不让来自最高有效位置的比特度量通过。复用电路50可编号为i=0、1、2....,复用电路50的编号越高,所连接的输出端的重要性就越低。类似地,来自第四操作数输入端36d的比特Bj可以用数字j来编号,而来自操作数组合电路30的比特度量Mk可以用数字k来编号。按照这种表示法,加法器电路52控制编号为i的复用电路50让比特度量Mk通过,如果其编号k等于比特Bj(j<i)之和的话。
应当理解的是,图5仅仅给出了收缩译码电路的一个可能实施例。举另一个例子,可使用一串可控的移位电路,其中,每个移位电路由来自该模式的相应比特控制。在该替代方案中,来自操作数组合电路30的数据施加到该串的开始。收缩译码输出39的各个部分(第一部分除外)可控地接收缺省的比特度量值或来自该串中相应移位寄存器的值。如果延时不成问题,这种方案是可行的,但应当理解的是,复用实现方式的优点在于一般将会有较小的延时。复用电路可用任何公知方式来实现,例如,实现成多个逻辑电路,其逻辑功能对应于复用功能(将数据从选定输入端复制到输出端)或开关电路等。
操作数更新电路34产生的结果用作第一操作数输入端36a的后继操作数。在一个实施例中,操作数更新电路34是移位电路,它产生结果的方式为:将操作数组合电路30的输出信号移位到更重要的位置。移位量由操作数组合电路30的比特度量的个数控制,后者是由收缩译码电路32输出的,也就是说,移位量对应于来自第四操作数输入端36d的操作数的内容。因此,第一结果开始于收缩译码电路32未响应于该指令而输出的最重要比特度量。优选情况下,除了指明将缺省比特度量必须插入何处的比特之外,第四操作数输入端36d的操作数还包括一个数字,它表示收缩译码电路32使用的来自操作数组合电路30的比特度量的个数。这降低了最小的可能指令循环长度。或者,可以根据指明将缺省比特度量必须插入何处的比特来计算该数字,例如使用加法器电路52。
对一串比特度量进行收缩译码的程序优选包括处于一个循环中的DEPUNCTURE指令,从而使得图3的收缩译码功能单元重复地执行DEPUNCTURE操作。这样的循环中的指令的例子是:
repeat
DEPUNCTURER1,R2,R3,R4,R5,R1
....计算下一个R3值的指令
....加载新输入的保护值R7
STORE A1++,R5
LOAD A2++,R4
IF R7 LOAD A3++,R2
在这次循环中,来自结果输出端38的结果存在寄存器R1中,寄存器R1用作操作数寄存器R1,向第一操作数输入端36a提供操作数。寄存器R5中的收缩译码输出存储在存储器中,地址来自地址寄存器A1。该循环中包括一条指令,用于从地址寄存器A2确定的位置开始把连续的收缩编码模式加载到寄存器R4中。还包括另一条指令,用于把新的第二操作数加载到寄存器R2中。受保护的加载指令用于此目的,这意味着,只有保护寄存器R7中的标志置位时,才完全执行该指令。
此外,还包括用于更新R3中的长度值和计算寄存器R7中的保护值的指令。在一个实施例中,新的长度值L′通过下式计算:
L′=L+I-M
其中,L是先前的长度值,它表示来自第一操作数输入端36a的操作数中曾经存在的比特度量的个数(正如来自第三操作数输入端36c的操作数所示)。I是来自第二操作数输入端36b的操作数中的比特度量的个数。M取决于寄存器R4中的模式。M是来自操作数组合电路30输出端的比特度量的个数,未被用于形成收缩译码电路32的结果。如果L′大于寄存器R1中可存储的比特度量的最大个数,则这些指令根据下式设置R3:
L′=L-M
在这种情况下,将R7中的标志置位,从而抑制向寄存器R2装载新值以用作第二操作数。
计算长度值并更新所输入的操作数的这种方法的效果在于:比特收缩译码结果写入结果寄存器R5的输出速率可能不同于装载新寄存器值的输入速率。
在另一实施例中,收缩译码功能单元还响应于DEPUNCTURE指令而计算新的长度值和/或寄存器R7的标志。这只需要很小的操作数开销,因为收缩译码功能单元的操作数输入端已经有了该计算所需的所有信息,所以不需要其它操作数。收缩译码功能单元用于此目的的优点在于:该计算无需加载其它指令,也不必占用其它功能单元。
例如,这些计算可以通过添加比较器电路和计算电路来实现,比较器电路用于比较L+I-M和填入结果中的比特度量的最大个数。比较器电路输出寄存器R7的标志,计算电路根据标志的值,计算并输出L+I-M或L-M。采用这样的改进型收缩译码功能单元和相应的改进型DEPUNCTURE指令,程序循环的一个例子如下:
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R7,R3
STORE A1++,R5
LOAD A2++,R4
IF R7LOAD A3++,R2
在此情况下,DEPUNCTURE指令产生另外两个结果,并将其分别写入寄存器R7、R3中。R7接收标志,R3接收更新后的长度。
应当理解的是,也可以定义多条不同的指令来执行DEPUNCTURE指令的各个部分。例如,可以定义一个纯粹的DEPUNCTURE指令,它仅仅形成收缩译码结果R5,可以定义一个OPERAND UPDATE指令,它形成更新后的操作数R1,可以定义一个辅助指令AUX,它形成另外的结果。在此情况下,程序循环可实现成:
repeat
DEPUNCTURE R1,R2,R3,R4,R5
UPDATE OPERAND R1,R2,R3,R4,R1
AUX R3,R4,R3,R7
STORE A1++,R5
LOAD A2++,R4
IF R7 LOADA3++,R2
也可以采用其它替代方式,其中,这三个新指令可结对合成单个指令。可以提供单个功能单元来执行这些指令中的三个或两个。或者,也可以提供三个不同的功能单元来执行这些指令中的每一个。如果使用VLIW或超标量处理器,则其优点在于:指令可以同时执行,从而可以降低循环所需的指令周期的数量。
本发明的可编程处理电路的一个应用示例是DVB译码。在DVD译码期间,可采用不同的收缩编码模式。例如,对于通过ECC编码而加倍的流来说,可以使用速率为1/2、2/3、3/4、5/6或7/8的收缩编码模式。下表列出了在编码期间可使用的收缩编码模式。
速率 | 收缩编码模式 |
1/2 | 11 |
2/3 | 1101 |
3/4 | 110110 |
5/6 | 1101100110 |
7/8 | 11010101100110 |
对比特流使用具有选定速率的收缩编码模式,该模式中的连续符号对应于该比特流中的连续比特。在收缩编码模式中,“1”表示对应的比特保留在该流中,而“0”则表示对应的比特应省略。当比特流长于该模式的长度时,重复该模式。
在所得的流传输出去之后,计算与所传输比特相对应的比特度量。本发明的程序使用DEPUNCTURE指令,在省略了比特的地方插入缺省比特度量,所产生的每个结果都包含预定数量的比特度量(是收到的或插入的)。
下面以举例的方式讨论每个结果包含8个比特度量的情形。下表列出了可在对该流进行收缩译码的程序的寄存器R4中使用的模式。
速率 | 模式1 | 模式2 | 模式3 | 模式4 | 模式5 |
1/2 | 11111111 | 11111111 | 11111111 | 11111111 | 11111111 |
2/3 | 11011101 | 11011101 | 11011101 | 11011101 | 11011101 |
3/4 | 11011011 | 01101101 | 10110110 | 11011011 | 01101101 |
5/6 | 11011001 | 10110110 | 01101101 | 10011011 | 01100110 |
7/8 | 11010101 | 10011011 | 01010110 | 01101101 | 10110101 |
连续的列显示了在连续调用DEPUNCTURE指令期间可使用的连续模式。可以看出,对于1/2速率和2/3速率编码,重复使用了相同的模式,因为结果中比特度量的个数N(在本例中N=8)等于基本收缩编码模式的整数倍。对于其它速率则并非如此,因此,对于这些速率而言,连续指令调用使用了不同的模式,每个模式包含对应基本模式的重复的N比特块。对于3/4速率编码,模式在三次指令调用之后重复。对于5/6速率编码,模式在五次指令调用之后重复。对于7/8速率编码,模式在七次指令调用之后重复(模式循环的一部分未显示在该表中)。优选情况下,(例如,在存储器访问单元中)使用模地址计算来计算装载这些模式的地址,其中,地址重复周期对于该特定速率来说是适合的。
在另一实施例中,可以为寄存器R7计算预测性的标志值,从而判断L+I-M是否会小于或等于该循环下次执行的MAX(填入结果中的比特度量的最大个数)。在此情况下,寄存器R2中的操作数的加载指令的执行可以延缓,直到实际使用该操作数为止。此外,DEPUNCTURE指令的定义和执行该指令的收缩译码功能单元可以做进一步的修改,从而将该标志值用作该指令的另一操作数。在此情况下,当标志表明没有加载任何新操作数时,收缩译码功能单元可以用缺省值(例如,逻辑零)替换来自寄存器R2的操作数。这样做的优点在于寄存器R2的值并不重要,所以,如果LOAD指令未完全执行,可以容忍该寄存器中的未定义值。也就是说,调用该指令可以采取如下形式:
DEPUNCTURE R1,R2,R3,R4,R7,R5,R1
这里,标志寄存器R7用作输入端,以控制是否用缺省值替换R2的内容。
预测性的标志值可通过循环中的其它指令来计算,但优选情况下,预测性的标志值由收缩译码功能单元来计算。在此情况下,DEPUNCTURE指令采取如下形式:
DEPUNCTURE R1,R2,R3,R4,R7,R5,R1,R7,R3
为了计算预测性的标志值,需要知道根据寄存器R4中的未来模式值会使用来自输入操作数R1的比特度量的数目的有关信息。优选情况下,该信息和当前模式值一起包括在寄存器R4中,但是,也可将其它操作数用于此目的。
在对调制信息进行译码期间,理想情形是,所使用的操作数R2中比特度量的个数小于写入R5的结果中可包含的比特度量的最大个数。因此,有必要加载多个操作数,然后才能有足够的比特度量可用于形成R5中的结果。在一个实施例中,这由收缩译码功能单元来实现,所以,借助于DEPUNCTURE指令的连续执行,可以经由寄存器R2提供这些操作数。为此,收缩译码功能单元有另一个结果输出端,用于指示收缩译码结果是否有效。使用这种收缩译码功能单元执行的DEPUNCTURE指令的程序循环的一个例子采取如下形式:
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R8
计算R3和R7的新值的指令
IF R8 STOREA1++,R5
IF R8 LOADA2++,R4
IF R7 LOAD A3++,R2
在该循环中,R5的STORE指令的执行受来自寄存器R8的标志的保护,所以,只有标志的值合适时,存储指令才会完全执行。类似地,用于将模式载入R4的LOAD指令的执行受来自寄存器R8的标志的保护,所以,只有标志的值合适时,存储指令才会完全执行。标志由DEPUNCTURE指令的执行来置位。
图6示出了可用于执行此类DEPUNCTURE指令的收缩译码功能单元的一个实施例。其中添加了一个计算/比较器电路60,它的输出端连接到收缩译码功能单元的结果输出端62。计算/比较器电路60计算在该程序示例中将写入R8的标志。计算/比较器电路60判断是否有:
L+I<M
也就是说,第一操作数输入端36a的比特度量的个数L和第二操作数输入端36的比特度量的个数I之和是否小于结果输出端39要输出的比特度量的个数M。如果是,那么,将结果输出端62的输出标志设为能防止R5的存储指令结束的值。这样做的效果在于:在程序循环的多次迭代中,DEPUNCTURE指令的执行仅仅扩展寄存器R1中比特度量的个数,直到比特度量的个数足以在寄存器R5中产生有效结果为止。
当然,如何修改收缩译码功能单元以使之能响应于DEPUNCTURE指令而提供R8的输出结果可以与如何进行修改以便能在收缩译码功能单元中响应于DEPUNCTURE指令而计算R3和/或R7可以结合起来。在这种情况下,可以使用具有较多操作数的DEPUNCTURE指令的不同版本。在这种情况下,用于计算这些值的不同指令可以从循环中省掉。程序循环可以具有以下形式:
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R3,R7,R8
IF R8 STORE A1++,R5
IF R8 LOAD A2++,R4
IF R7 LOAD A3++,R2
在DVB译码操作中,例如,最好为3/4速率收缩译码提供四个比特度量。在这种情况下,如果使用具有N=8个比特度量的结果,则需要加载两个第二操作数,然后才能产生有效的收缩译码结果。下表列出了这种情况下指令调用结果和各种操作数采用的编号的示例。
调用编号 | R3(R1中比特度量的个数) | R4(收缩译码模式) | R7(加载新的操作数) | R8(输出有效) |
1 | 0 | 11011011 | 真 | 假 |
2 | 4 | = | 真 | 真 |
3 | 2 | 01101101 | 真 | 真 |
4 | 1 | 10110110 | 真 | 真 |
5 | 0 | 11011011 | 真 | 假 |
6 | 4 | = | 真 | 真 |
7 | 2 | 01101101 | 真 | 假 |
等等 |
在其它实施例中,收缩译码功能单元处理操作寄存器R2中可编程数量I的比特度量。就DVB译码而言,例如,对于不同的调制方案,解调操作产生不同数量的比特度量。因此,最好使比特度量的个数适应。例如,为了对BPSK调制信号进行解调,每个操作数可以使用I=2个比特度量;为了对16QAM调制信号进行解调,每个操作数可以使用I=4个比特度量;为了对64QAM调制信号进行解调,每个操作数可以使用I=6个比特度量;为了对256QAM调制信号进行解调,每个操作数可以使用I=8个比特度量。在下表所示的例子中,对于速率=5/6的收缩译码操作,每个第二操作数中使用I=6个比特度量。
调用编号 | R3(R1中比特度量的个数) | R4(收缩译码模式) | R7(加载新的操作数) | R8(输出有效) |
1 | 0 | 11011001 | 真 | 假 |
2 | 1 | 10110110 | 真 | 真 |
3 | 2 | 01101101 | 真 | 真 |
4 | 3 | 10011011 | 真 | 真 |
5 | 4 | 01100110 | 真 | 假 |
6 | 6 | 11011001 | 真 | 真 |
7 | 7 | 10110110 | 真 | 假 |
8 | 8 | 01101101 | 真 | 真 |
9 | 4 | 10011011 | 假 | 真 |
10 | 5 | 01100110 | 真 | 真 |
11 | 7 | 11011001 | 真 | 真 |
等等 |
在第一个实施例中,DEPUNCTURE指令的操作码可指明个数I。在该第一实施例中,收缩译码功能单元执行具有不同操作码值的多种指令,例如,这些指令可用符号表示为DEPUNCTURE2、DEPUNCTURE4、DEPUNCTURE6、DEPUNCTURE8。在该第一实施例中,收缩译码功能单元根据操作码选择I的值,上面已经描述了收缩译码功能单元的功能。在该程序中,根据操作数R2中产生的比特度量的个数,使用这些指令中选定的指令。
在第二个实施例中,第二操作数R2中产生的比特度量的个数I可以由DEPUNCTURE指令的其它操作数中的数据指明。在该第二个实施例中,收缩译码功能单元从用于接收其它操作数的输入端获取值I,上面已经描述了收缩译码功能单元的功能。在该程序中,根据操作数R2中产生的比特度量的个数,使用选定的操作数值。在该第二个实施例中,单个循环可处理多个操作数,其中,比特度量的个数在该循环期间改变,例如,这取决于传输块中对应数据的位置。
在第三个实施例中,例如,借助于指明可用比特度量值序列结尾的特定比特度量值,第二操作数R2中的比特度量的个数I可以编在操作数R2自身中。在该第三实施例中,收缩译码功能单元根据第二操作数R2的内容确定I的值,上面已经描述了收缩译码功能单元的功能。
图7示出了收缩译码功能单元的一个实施例,它既能使用其它操作数来确定操作数R2中的比特度量的个数,还能计算R3、R7和R8。在该实施例的收缩译码功能单元中,增加了一个辅助结果计算电路70,还有附加的结果输出端72、74和附加的操作数输入端76、78。第一附加操作数输入端76用于提供操作数R9,以指明第二操作数输入端36b上比特度量的个数I。第二附加操作数输入端78用于提供操作数R7,以指明第二操作数输入端36b上的比特度量是否有效。第一附加结果输出端72用于提供长度码R3,以指明结果输出端38的结果中比特度量的个数,该长度码以后可用作第三操作数输入端36c的输入。第二附加结果输出端74用于提供标志R7,以指明是否需要新的第二操作数R2。
图8示出了辅助结果计算电路70的一个实施例。在该实施例中,辅助结果计算电路70包括:加法器电路80、减法器电路82、比较器电路84、复用电路86、零替换电路88和另一比较器电路89。
加法器电路80从第三操作数输入端36c接收操作数(指明第一操作数输入端36a的操作数中比特度量的个数L)并经由零替换电路88从第一附加操作数输入端76接收操作数(指明第二操作数输入端36b的操作数中比特度量的个数I),零替换电路88由第二附加操作数输入端78控制。第一加法器电路80输出来自第三操作数输入端36c的操作数L和来自第一附加操作数输入端76的操作数I之和,除非第二附加操作数输入端78表明第二操作数是无效的,在此情形下,第一加法器电路80输出来自第三操作数输入端36c的操作数L。
减法器电路82接收来自加法器电路80的结果和来自第四操作数输入端36d的操作数。减法器电路82根据来自第四操作数输入端36d的模式,形成来自加法器电路80的输出(I+L或L)和应加入结果中的比特度量的个数M之差。(优选情况下,该第四操作数单独包含该个数,从而可以立即使用该个数,但是,也可以使用附加的加法器电路根据模式计算出该个数)。
比较器电路84判断来自减法器电路82的差值是正的还是负的。在标志输出端62输出比较结果,以指明是否可以使用来自结果输出端39的输出。
复用电路86将来自加法器电路80的输出和来自减法器电路的输出(L+I-M和L+I或L-M和L)作为输入予以接收,并将来自比较器电路84的输出作为控制输入予以接收,如果输出不是负数的话,就让来自减法器电路82的输出信号通过,否则让来自加法器电路80的输出通过。复用电路86的输出提供给附加结果输出端72,以指明结果输出端38的比特度量的个数L′。
另一比较器电路89接收来自复用电路86输出端的输入L′、来自第四操作数输入端36d和第一附加操作数输入端76的I(后者表示第二操作数输入端36b的操作数中比特度量的个数)。在这里,我们假设,来自第四操作数输入端36d的操作数表明根据第四操作数输入端36d的下一未来值的模式应加入结果的比特度量的个数M′。类似地,我们假设,根据第一附加操作数输入端76的下一未来操作数值的比特度量的个数I′将等于当前值I。
另一比较器电路89检测在下次执行DEPUNCTURE指令时是否有足够的空间能将第二操作数输入端36b的第二操作数中的I′个比特度量加入结果输出端39的结果中,即,L′+I′-M′是否不超过结果输出端38的结果中可包含的比特度量的最大个数MAX(例如,MAX=8个比特度量)。该比较结果用于控制第二操作数的新值的加载。
此外,输出到输出端62的标志值也提供给操作数更新电路34。操作数更新电路34执行移位操作,从组合后的第一和第二操作数中移出M个比特度量,但是,如果标志值表明L+I-M(或L-M)不是正的,则这种移位受到抑制。此外,来自第二附加操作数输入端78的信号提供给操作数组合电路30,从而确保来自第一操作数的比特度量不会受到第二操作数的影响,如果来自第二附加操作数输入端78的信号表明第二操作数无效的话。
当然,应当理解的是,本发明不限于图8所示的实施例。例如,等效的结果可用很多其它电路来计算。此外,如果不使用预测性标志,则可以省略第二附加操作数输入端78和零替换电路88。在这种情况下,另一比较器电路89可检测L+I-M是否不超过比特度量的最大个数MAX,而复用电路86输出L+I-M、L+I或L-M。在这种情况下,当L+I至少等于M并且L+I-M不大于最大个数MAX时,输出L+I-M。如果L+I小于M并且L+I不大于MAX,则输出L+I。如果L+I-M大于MAX并且L至少等于M,则输出L-M。
虽然在上面描述的多个实施例中分离的操作数输入端用于提供不同的操作数,但应当明白的是,有些操作数可以在共享的操作数输入端一并提供,并且/或者,可以将有些结果一并提供给共享的结果输出端。降低操作数输入端的个数是很有益的,因为这减小了所需的电路规模。例如,在一个实施例中,在第三操作数输入端36c提供的长度码可以在第一操作数输入端36a跟第一操作数一起提供。在这种情况下,提供这些操作数的结果输出端38和62也最好合并起来。这样会降低第一操作数中可包含的比特度量的最大个数,但在有些应用中,该最大数量可能是根本就不需要。
再举一个例子,来自第一附加操作数输入端76的长度码可以在第二操作数输入端36b和第二操作数一起提供。这同样会降低第二操作数中可包含的比特度量的最大个数,但这在有些应用中未必就是缺点,例如,如果最大值是根本就不需要的,那就不是缺点。类似地,标志值可以和其它结果合并起来,如果这并不影响其使用的话。例如,当结果起保护作用时并且当收缩译码功能单元从操作数中存在长度码之处合适地提取长度码时,如果受保护的执行不依赖于该长度码的存在,那么,指明收缩译码输出是否有效的结果标志可以和剩余比特度量的长度码合并在一起。
再举一个例子,收缩译码功能单元的上述任何一个实施例都可以分成多个功能单元,每个功能单元执行不同的指令,从而执行所示DEPUNCTURE指令的操作的相应部分。例如,可提供不同的功能单元来执行指令,以便分别执行图7中辅助结果计算电路70和收缩译码功能单元的剩余部分的操作。再举一个例子,可以提供不同的功能模块来执行用以计算收缩译码结果(在输出端39)的指令和计算下一个第一操作数(在输出端38)。在VLIW体系结构中,这些功能单元可以并行地执行指令,其运行速度基本上与用单个指令来启动所有操作时相同,但是却能对该循环中其它指令进行更灵活的调度。
此外,虽然上面举的例子中缺省的比特度量值是插在收缩比特的位置处,但应当理解的是,DEPUNCTURE指令也可以对要插入的比特度量值做出定义,例如,其形式为DEPUNCTURE指令的操作数中的单个替换值,可用于所有插入,或者,其形式为多个替换值,可用于各个相应的收缩位置。可为收缩译码功能单元提供附加的操作数输入端,以用于提供替换值,或者,收缩译码功能单元可从一个或多个上述操作数(例如,在模式操作数R4中)中提取出该值或这些值。这些替换比特度量被称作“预定的”比特度量,因为它们仅仅依赖该程序,而不依赖寄存器R1、R2中提供的接收数据。
此外,虽然本发明描述了对比特度量流(其中的每个比特度量代表单个比特)进行收缩译码的处理,但应当明白的是,本发明也适用于每个比特度量代表多比特码符号(例如,两比特的符号)的收缩译码。
为了能给功能单元提供足够多的操作数并写入足够多的结果,通常提供一个专用的发起槽(issue slot),它从指令发出电路提供DEPUNCTURE指令给该功能单元,并且,足够多的读和写端口最好对应于该发起槽。在一个实施例中,其它功能单元也可连到该发起槽,以用于当未向收缩译码功能单元发出指令时向这样的功能单元发出指令。多个这样的功能单元甚至可以并行连接到该发起槽,连接到读和写端口的相应组,以便当未向收缩译码功能单元发出指令时高效地利用这些端口。
当使用VLIW体系结构时,可以发出多条和DEPUNCTURE指令并行的指令。因此,一次通过该程序循环所需的指令周期的个数可以降低。若数据彼此相关,则DEPUNCTURE指令可降低指令的个数,这样就可以将该循环的更多指令并入相同的VLIW指令,从而使该循环所需的指令周期的个数可以保持较小。这样做易于缓存该循环的指令,从而提高执行速度。
Claims (24)
1、一种可编程信号处理电路,包括:
操作数存储电路(22);
指令处理电路(23、24、26),用于执行对所述操作数存储电路(22)中的操作数位置和结果位置进行寻址的指令,所述指令处理电路(23、24、26)的指令集包括收缩译码指令,所述指令处理电路(23、24、26)有操作数输入端(36a)和结果输出端(39),所述操作数输入端(36a)用于从所述收缩译码指令指示的比特度量操作数位置接收比特度量操作数,所述结果输出端(39)用于将收缩译码结果写入所述收缩译码指令指示的结果位置,所述指令处理电路(23、24、26)以如下方式形成所述收缩译码结果:
从所述比特度量操作数中复制出若干个比特度量;
在所述收缩译码结果中,将一个或多个预定的比特度量值插入源自所述比特度量操作数的所述若干个比特度量之间;
使所述复制的若干个比特度量彼此间在所述收缩译码结果中的相对位置与所述复制的若干个比特度量彼此间在所述比特度量操作数中的相对位置相比,以容纳所述插入的一个或多个预定比特度量值所需要的程度而发生改变。
2、如权利要求1所述的可编程信号处理电路,包括:
至少一个比特度量复用电路(50),它有多个输入端、一个输出端和一个控制输入端(36d),所述多个输入端连接到所述操作数输入端(36a),所述操作数输入端(36a)用于从所述比特度量操作数内的相应位置接收多个相应的比特度量,所述输出端连接到所述结果输出端(39),所述结果输出端(39)用于提供所述收缩译码结果的一部分,所述控制输入端(36d)用于接收从所述收缩译码指令确定的信息中导出的控制信号,以控制必须在什么位置插入预定比特模式值,
所述比特度量复用电路(50)根据所述收缩译码指令确定的所述信息是否指明应当将一个比特度量从所述比特度量操作数复制到所述收缩译码结果的所述部分,并根据所述模式操作数指示的应当插入所述收缩译码结果的其它部分中的预定比特度量值的个数,选择是输出所述预定的比特度量值还是输出源自所述比特度量操作数的一个比特度量,其中,所述收缩译码结果的所述其它部分在逻辑上位于所述收缩译码结果的所述部分之前。
3、如权利要求1所述的可编程信号处理电路,包括:
可控移位电路,它连接在所述操作数输入端(36a)和所述结果输出端(39)之间,所述结果输出端(39)用于提供所述收缩译码结果的一部分,所述可控移位电路有一个用于接收控制信号的控制输入端,所述控制信号是从所述收缩译码指令确定的信息中导出的,用于控制预定比特模式值必须插在什么位置,
所述控制信号根据所述收缩译码指令确定的所述信息所指示的应当插入所述收缩译码结果的其它部分中的预定比特度量值的个数,控制所述可控移位电路的移位量,其中,所述收缩译码结果的所述其它部分位于所述收缩译码结果的所述部分之前。
4、如权利要求1所述的可编程信号处理电路,其中,所述指令处理电路(23、24、26)有另一个操作数输入端(26d)用于接收所述收缩译码指令的模式操作数,所述模式操作数确定了可编程的收缩译码模式,所述指令处理电路(23、24、26)根据所述模式操作数中确定的经过编程的收缩译码模式,控制在所述收缩译码结果中将所述预定比特度量值插入介于源自所述比特度量操作数的所述比特度量之间的什么位置。
5、如权利要求1所述的可编程信号处理电路,其中,所述指令集包括多条收缩译码指令,每条收缩译码指令定义了在所述收缩译码结果中所述预定比特度量值必须插入介于所述比特度量操作数的所述若干个比特度量之间的相应不同位置或位置组合。
6、如权利要求1所述的可编程信号处理电路,其中,所述收缩译码指令还有其它的比特度量操作数,如果所述比特度量操作数中的比特度量的个数不够形成所述收缩译码结果,则所述指令处理电路(23、24、26)将源自所述比特度量操作数和所述其它比特度量操作数的输入端(36a、b)的比特度量复制到所述收缩译码结果中。
7、如权利要求6所述的可编程信号处理电路,其中,所述指令处理电路响应于所述收缩译码指令或队列指令而以如下方式形成队列结果:
将源自所述多个操作数且未包括在所述收缩译码结果中的比特度量复制到所述队列结果中;以及
将所述队列结果中的所述比特度量安排用作将来执行所述收缩译码指令期间的比特度量操作数。
8、如权利要求6所述的可编程信号处理电路,其中,所述收缩译码指令有一个长度操作数,用于指明所述比特度量操作数中存在的比特度量的个数,所述指令处理电路(23、24、26)根据所述长度操作数,控制将要从所述比特度量操作数复制到所述收缩译码结果中的比特度量的最大个数。
9、如权利要求6所述的可编程信号处理电路,其中,所述指令处理电路(23、24、26)根据所述比特度量操作数和所述其它比特度量操作数中是否存在着形成所述收缩译码结果所需的最少个数的比特度量,形成输出有效结果,所述指令处理电路(23、24、26)将所述输出有效结果写入所述操作数存储电路(22)中。
10、如权利要求6所述的可编程信号处理电路,其中,所述指令处理电路(23、24、26)响应于所述收缩译码指令或队列指令而以如下方式形成队列结果,以便将其用作将来执行所述收缩译码指令期间的比特度量操作数:
将源自所述比特度量操作数和所述其它比特度量操作数且未复制到所述收缩译码结果中的比特度量复制到所述队列结果中,所述指令处理电路(23、24、26)将所述队列结果写入所述操作数存储电路(22)中。
11、如权利要求10所述的可编程信号处理电路,其中,所述指令处理电路(23、24、26)生成指示信息,以表明形成所述收缩译码结果所需的比特度量的个数是否不超过所述比特度量操作数和所述其它比特度量操作数中可用的比特度量的个数之和,所述指令处理电路(23、24、26)将所述指示信息写入所述操作数存储电路(22)中。
12、如权利要求1所述的可编程信号处理电路,其中,所述指令处理电路(23、24、26)生成指示信息,以表明在所述比特度量操作数中是否有形成所述收缩译码结果所需个数的比特度量,所述指令处理电路(23、24、26)将所述指示信息写入所述操作数存储电路(22)中。
13、如权利要求1所述的可编程信号处理电路,其中,所述收缩译码指令还有其它的比特度量操作数,所述指令处理电路响应于所述收缩译码指令而以如下方式形成队列结果,以便将其用作将来执行所述收缩译码指令期间的比特度量操作数:
将所述比特度量操作数的比特度量和所述其它比特度量操作数的至少一个其它比特度量复制到所述队列结果中,所述指令处理电路(23、24、26)将所述队列结果写入所述操作数存储电路(22)中。
14、如权利要求13所述的可编程信号处理电路,其中,所述收缩译码指令指明所述其它比特度量操作数中比特度量的比特度量数,所述指令处理电路响应于所述收缩译码指令而在一个结果中指明所述其它比特度量操作数的所有比特度量是否已经被复制到所述队列结果中。
15、如权利要求1所述的可编程信号处理电路,其编制有一个程序,用于对输入度量流执行收缩译码处理,所述程序包括:
一条或多条指令,用于将所述流的连续块载入操作数存储位置;
含有比特度量操作数的收缩译码指令,用于选择所述操作数存储位置。
16、一种用于对经过收缩编码处理的数据流进行纠正的方法,所述方法包括:
接收表示所述数据流的信号;
从所述数据流中导出比特度量流;
让可编程指令处理器重复地执行收缩译码指令;
提供用于执行所述收缩译码指令的比特度量操作数,每个比特度量操作数包含源自所述比特度量流的多个相应比特度量;
响应于所述收缩译码指令的执行而以如下方式形成收缩译码结果:
在所述收缩译码结果的至少一部分中,将预定的比特度量值插在介于源自所述比特度量操作数的选定比特度量对之间,
使所复制的若干个比特度量彼此间在所述收缩译码结果中的相对位置与所复制的若干个比特度量彼此间在所述比特度量操作数中的相对位置相比,以容纳所述插入的一个或多个预定比特度量值所需的程度而发生改变;
使用由所述可编程指令处理器译码出的指令,对所述收缩译码结果中经过纠错的数据进行译码。
17、如权利要求15所述的方法,所述方法包括:
将所述收缩译码指令的连续不同模式操作数提供给可编程指令执行单元,以便相应地执行所述收缩译码指令;以及
在每个收缩译码指令的模式操作数的控制下,在执行所述收缩译码指令期间选择介于所述比特度量之间的位置来插入所述预定的比特度量值。
18、如权利要求17所述的方法,所述方法包括:
响应于所述收缩译码指令或其它指令,形成队列结果,除了所述比特度量操作数、所述模式操作数和队列长度码之外,所述收缩译码指令或其它指令还接收其它比特度量操作数,所述其它比特度量操作数包含源自具有预定个数的比特度量的所述比特度量流的一块,所述队列长度码指明了所述比特度量操作数中比特度量的个数,所述队列结果是响应于所述收缩译码指令或所述其它指令而以如下方式形成的:
将个数取决于模式操作数的比特度量放入所述队列结果中,根据所述模式操作数,在执行所述收缩译码指令期间,个数取决于模式操作数的比特度量不会从所述比特度量操作数中所述个数的比特度量被复制到所述收缩译码结果中,个数取决于模式操作数的比特度量在所述队列结果中与源自其它比特度量操作数的比特度量进行合并;
将所述队列结果用作以后执行所述收缩译码指令的比特度量操作数。
19、如权利要求18所述的方法,包括:
假设除了源自所述比特度量操作数的未用在所述收缩译码结果中的比特度量之外,所述队列结果中还有足够的空间能将源自所述其它比特度量操作数的所有比特度量复制到所述队列结果中,则计算队列长度结果,以指示所述队列结果中比特度量的个数,并且,将所述队列结果中比特度量的个数设为所述比特度量操作数中比特度量的个数减去已经从所述比特度量操作数复制到所述收缩译码结果中的比特度量的个数;
用相同的其它比特度量操作数和相应的不同模式值和连续的队列结果重复执行所述收缩译码指令或所述其它指令,直到所述队列结果中有足够的空间能将所述其它比特度量操作数的所有比特度量复制到所述队列结果中为止。
20、如权利要求18所述的方法,包括:
除所述模式操作数中的收缩译码模式之外,还提供长度值;以及
响应于所述收缩译码指令或所述其它指令,使用所述长度值来控制从所述其它比特度量操作数复制到所述队列结果中的比特度量值的个数。
21、如权利要求17所述的方法,包括:
除所述比特度量操作数、所述模式操作数和队列长度码之外,还提供其它的比特度量操作数,作为执行所述收缩译码指令的操作数,所述其它比特度量操作数包含具有预定个数的比特度量的所述比特度量流的一块,所述队列长度码指明所述比特度量操作数中比特度量的个数,所述收缩译码结果以如下方式形成:
如果所述比特度量操作数中比特度量的个数足够提供用在所述收缩译码结果中的充足副本,则将个数取决于模式操作数的比特度量从所述比特度量操作数放入所述收缩译码结果中。
22、如权利要求21所述的方法,所述方法包括:
响应于所述收缩译码指令或其它指令,形成队列结果,所述其它指令除了接收所述比特度量操作数、所述模式操作数和队列长度码之外,还接收所述其它比特度量操作数,所述队列结果是以如下方式形成的:
将个数取决于模式操作数的比特度量放入所述队列结果中,根据所述模式操作数,这些比特度量不会根据所述比特度量操作数或所述其它比特度量操作数中所述个数的比特度量被收缩译码操作使用,源自所述比特度量操作数的个数取决于所述模式操作数的比特度量和源自所述其它比特度量操作数的比特度量在所述队列结果中进行合并;
将所述队列结果用作以后执行所述收缩译码指令的比特度量操作数。
23、如权利要求22所述的方法,其中,用相同的模式操作数和连续的其它比特度量操作数,重复执行所述收缩译码指令或其它指令,直到所述比特度量操作数和所述其它比特度量操作数合起来所包含的比特度量足够在所述收缩译码指令的执行期间为所述相同模式操作数形成所述收缩译码结果为止。
24、如权利要求22所述的方法,包括:
使用具有不同预定个数的比特度量的块,执行所述收缩译码指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04106559 | 2004-12-14 | ||
EP04106559.0 | 2004-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101076777A true CN101076777A (zh) | 2007-11-21 |
Family
ID=36090861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200580042799XA Pending CN101076777A (zh) | 2004-12-14 | 2005-12-13 | 可编程信号处理电路和收缩译码方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7853860B2 (zh) |
EP (1) | EP1839127B1 (zh) |
JP (1) | JP4949268B2 (zh) |
KR (1) | KR101167225B1 (zh) |
CN (1) | CN101076777A (zh) |
AT (1) | ATE395661T1 (zh) |
DE (1) | DE602005006854D1 (zh) |
WO (1) | WO2006064463A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283572A (zh) * | 2013-07-03 | 2015-01-14 | 展讯通信(上海)有限公司 | 卷积码译码器输入信息的控制方法和装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE395661T1 (de) * | 2004-12-14 | 2008-05-15 | Koninkl Philips Electronics Nv | Programmierbare signalverarbeitungsschaltung und depunktierverfahren |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151904A (en) * | 1990-09-27 | 1992-09-29 | The Titan Corporation | Reconfigurable, multi-user viterbi decoder |
JPH09261081A (ja) * | 1996-03-22 | 1997-10-03 | Kenwood Corp | デパンクチャード回路 |
US6005897A (en) * | 1997-12-16 | 1999-12-21 | Mccallister; Ronald D. | Data communication system and method therefor |
JP2000004215A (ja) * | 1998-06-16 | 2000-01-07 | Matsushita Electric Ind Co Ltd | 送受信システム |
JP2000068862A (ja) * | 1998-08-19 | 2000-03-03 | Fujitsu Ltd | 誤り訂正符号化装置 |
DE19935785A1 (de) * | 1999-07-29 | 2001-02-08 | Siemens Ag | Verfahren und Einrichtung zur Erzeugung eines ratenkompatiblen Codes |
US6684366B1 (en) * | 2000-09-29 | 2004-01-27 | Arraycomm, Inc. | Multi-rate codec with puncture control |
JP2002217744A (ja) * | 2001-01-23 | 2002-08-02 | Nec Corp | データ復号装置 |
JP3629241B2 (ja) * | 2002-01-30 | 2005-03-16 | 松下電器産業株式会社 | レートマッチング装置及びレートマッチング方法 |
US7284185B2 (en) * | 2004-10-08 | 2007-10-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Puncturing/depuncturing using compressed differential puncturing pattern |
ATE395661T1 (de) * | 2004-12-14 | 2008-05-15 | Koninkl Philips Electronics Nv | Programmierbare signalverarbeitungsschaltung und depunktierverfahren |
-
2005
- 2005-12-13 AT AT05824324T patent/ATE395661T1/de not_active IP Right Cessation
- 2005-12-13 DE DE602005006854T patent/DE602005006854D1/de active Active
- 2005-12-13 US US11/721,053 patent/US7853860B2/en not_active Expired - Fee Related
- 2005-12-13 EP EP05824324A patent/EP1839127B1/en not_active Not-in-force
- 2005-12-13 JP JP2007546276A patent/JP4949268B2/ja not_active Expired - Fee Related
- 2005-12-13 WO PCT/IB2005/054204 patent/WO2006064463A2/en active Application Filing
- 2005-12-13 KR KR1020077013189A patent/KR101167225B1/ko active IP Right Grant
- 2005-12-13 CN CNA200580042799XA patent/CN101076777A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283572A (zh) * | 2013-07-03 | 2015-01-14 | 展讯通信(上海)有限公司 | 卷积码译码器输入信息的控制方法和装置 |
CN104283572B (zh) * | 2013-07-03 | 2017-04-26 | 展讯通信(上海)有限公司 | 卷积码译码器输入信息的控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4949268B2 (ja) | 2012-06-06 |
US7853860B2 (en) | 2010-12-14 |
EP1839127A2 (en) | 2007-10-03 |
ATE395661T1 (de) | 2008-05-15 |
JP2008523762A (ja) | 2008-07-03 |
WO2006064463A2 (en) | 2006-06-22 |
KR101167225B1 (ko) | 2012-07-24 |
DE602005006854D1 (de) | 2008-06-26 |
KR20070095891A (ko) | 2007-10-01 |
WO2006064463A3 (en) | 2006-12-21 |
US20090287911A1 (en) | 2009-11-19 |
EP1839127B1 (en) | 2008-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10985903B2 (en) | Power side-channel attack resistant advanced encryption standard accelerator processor | |
KR101603751B1 (ko) | 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법 | |
CN102096609B (zh) | 可编程循环冗余校验(crc)计算的指令集架构 | |
US8024551B2 (en) | Pipelined digital signal processor | |
CN1820246A (zh) | 执行饱和或不执行饱和地累加多操作数的处理器还原单元 | |
CN101042639A (zh) | 乘法器 | |
CN1120414C (zh) | 去交错装置 | |
CN1764881A (zh) | 协助处理密码消息的指令 | |
CN1522405A (zh) | 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法 | |
US9304898B2 (en) | Hardware-based array compression | |
CN1663172A (zh) | 为aes rijndael分组密码产生轮次密钥 | |
CN101075213A (zh) | 只读存储器数据修补电路和方法、及其嵌入式系统 | |
CN116186747A (zh) | 自适应哈希加密方法、非易失性可读存储介质及电子设备 | |
US8832412B2 (en) | Scalable processing unit | |
CN1105350C (zh) | 能够减少转移故障的具有小尺寸电路的流水线处理器 | |
US8707013B2 (en) | On-demand predicate registers | |
CN1806225A (zh) | 在具有多指令集的数据处理设备内的指令编码 | |
CN101076777A (zh) | 可编程信号处理电路和收缩译码方法 | |
CN101076778A (zh) | 可编程信号处理电路和交织方法 | |
CN1716182A (zh) | 地址创建器和算术电路 | |
US20140351555A1 (en) | Digital signal processor and method for addressing a memory in a digital signal processor | |
CN1300391A (zh) | 运算处理装置 | |
CN1147083C (zh) | 用于l位输入数字数据块到l位输出数据块的加密变换的方法 | |
CN117811737A (zh) | 一种数据处理方法、装置及电子设备 | |
CN117134923A (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 |