US20120120310A1 - Programmable Signal Processing Circuit And Method of Interleaving - Google Patents
Programmable Signal Processing Circuit And Method of Interleaving Download PDFInfo
- Publication number
- US20120120310A1 US20120120310A1 US13/357,339 US201213357339A US2012120310A1 US 20120120310 A1 US20120120310 A1 US 20120120310A1 US 201213357339 A US201213357339 A US 201213357339A US 2012120310 A1 US2012120310 A1 US 2012120310A1
- Authority
- US
- United States
- Prior art keywords
- address
- circuit
- instruction
- operand
- processing circuit
- 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.)
- Granted
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
Definitions
- the invention relates to a method of (de-)interleaving signal information and a to a programmable signal processing circuit for implementing such a method.
- the DVB (Digital Video Broadcast) standard provides for transmission of encoded television signals. To decode these signals a number of steps have to be performed, which include de-interleaving of the transmitted signals. De-interleaving involves rearrangement of data units, so that they their relative position in an output sequence differs from that in an input sequence in which the data units occur during transmission. De-interleaving is typically implemented by writing of data units of the received signal into a memory and reading of the data units from the memory in a sequence other than the sequence in which that data was written. When the data units are stored in an addressable memory, de-interleaving is controlled by the selection of addresses that are used for this purpose.
- the DVB standard defines an address sequence that can be used for this purpose.
- the definition involves three sequences of numbers.
- the numbers of the first sequence are denoted by R′ i , wherein i is an index that distinguishes different positions in the sequence.
- the numbers of the second sequence are denoted by R i and the numbers of the third sequence are denoted by H i .
- the DVB standard defines a recursive algorithm by which each successive value R′ i in the first sequence can be computed from a preceding value R′ i ⁇ 1 . This algorithm involves a shift of the binary representation of R′ i ⁇ 1 and the addition of a bit value that is computed as a logic function of selected ones of the bits of the binary representation of R′ i ⁇ 1 .
- the DVB standard defines a mapping that maps values R′ 1 of the first sequence to values R i in the second sequence.
- the DVB standard defines the third sequence H i as a copy of the second sequence from which all numbers have been omitted that exceed a threshold value.
- the DVB standard gives three definitions of this type, for use with three different block sizes.
- a dedicated address computation circuit for computing the addresses R i of the second sequence.
- Such a circuit contains a register that stores a current value of R′ i of the first sequence, a first circuit for generating a next value R′ i+1 from the value in the register and a second circuit for forming successive values R i from successive values R′ i in the register.
- a plurality of sequences R i has to be generated in parallel, a plurality of such circuits is needed in parallel, each with a register that holds the R′ i value for a respective sequence.
- An alternative implementation involves the use of a programmable signal processing circuit to compute the addresses Ri.
- the values R′ i , R i and H i are typically stored in operand registers of the signal processing circuit that are addressed by the instructions of the circuit. Due to the bit-manipulation nature of the definition of the series R′ i , R i and H i the computation of these values typically involves execution of a considerable number of instructions.
- a look-up table may be used, wherein precomputed H i values are stored. However this requires the overhead of a look-up table of considerable size.
- one or more functional units are provided in the programmable signal processing circuit for executing these instructions.
- such functional units would contain the earlier described circuitry from the dedicated circuit for computing R′ i+1 from R i and for computing R i from R′ i . That is, one functional unit should contain a shifting circuit in combination with a logic circuit to compute a new bit (computation of R′i from R′i ⁇ 1), the same or another functional unit would provide for mapping of R′ to R (which involves a bit permutation) and finally a comparison circuit is needed to detect valid H values.
- a general purpose register that is addressed in the instruction can be used for supplying R′ i., so that a dedicated register to hold R′ i , can be omitted from the functional units. This facilitates compilation of programs for the processor, since the instructions are independent of state information in the functional units. However, it is still desirable to be able to reduce the number of instructions that is needed to perform interleaving even further.
- a method according to the invention is set forth in claim 1 .
- addresses for use in said storing and/or reading are computed from preceding addresses that have been used for said storing and/or reading.
- repeated execution of a program loop is used that contains an address update instruction for computing the addresses.
- the addresses themselves are used to compute new addresses, which means that it is avoided that additional processing time is used for for computing addresses R i from intermediate values R′.
- a processor that supports the method contains an instruction processing circuit with an instruction set that contains an address update instruction.
- the instruction processing circuit comprises a permutation circuit coupled between its operand input and its result output, arranged to controls values of a plurality of bits at respective output bit positions in the new address result dependent on respective bits from respective input positions that are a permutation of the output bit positions, and a combinatorial logic circuit coupled between the operand input and the result output, with inputs coupled to receive bits from respective input bit positions in the old address operand and an output coupled to output a bit to a bit position in the new address result.
- repeated address cycles are used during execution of the program loop, each of a same series of addresses for use in said storing and/or reading.
- the cycles are started implicitly in response to execution of the address update instruction by deviating from said permuting and forming of the bit to form the new address result when the old address operand has a predetermined value.
- a comparator circuit is provided with an input coupled to the operand input and the comparator controls a bit substitution circuit to overwrite one or more bits with predetermined bit values when a predetermined address occur.
- the instruction processing circuit selects between different types of update dependent on the update information that is specified by the address update instruction.
- different types of de-interleaving for example for different DVB block sizes can be supported by the instruction processing circuit.
- FIG. 1 shows signal receiver apparatus
- FIG. 2 shows a programmable signal processing circuit
- FIG. 3 shows a functional unit
- FIG. 4 shows a further functional unit
- FIG. 1 shows a signal receiver apparatus, such as a DVB (Digital Video Broadcast) receiver apparatus.
- the apparatus contains a front end 10 , a digital signal processing circuit 12 and a back end 14 connected in cascade.
- Front end 10 has an input for receiving a video broadcast signal.
- front end 10 receives the video broadcast signal and retrieves digital information from the signal.
- Digital signal processing circuit 12 receives the digital information and processes the digital information to form a video data signal.
- Digital signal processing circuit supplies the video data signal to back end 14 , which may generate, for example, display data for a connected video display screen (not shown) or storage data for a connected video recording device (not shown).
- Back end 14 may contain a video display screen and/or recording device itself for these purposes.
- Digital signal processing circuit 12 comprises a programmable signal processing circuit that is programmed with a program to perform such operations as demodulation (using digital signal samples to reconstruct data items that have been used to modulate the sampled signal) and decoding of demodulated data items according to an Error Correcting Code (FCC).
- demodulation using digital signal samples to reconstruct data items that have been used to modulate the sampled signal
- FCC Error Correcting Code
- digital signal processing circuit 12 Prior to decoding digital signal processing circuit 12 de-interleaves the data. Interleaving is used to reduce the vulnerability to burst errors and errors due to interfering signals that cause errors in combinations of demodulated data items. Data items that are vulnerable to such common errors are distributed so that they do not jointly affect the error correction capability of the ECC, e.g. by distributing them over different code words of the ECC. To implement de-interleaving, digital signal processing circuit 12 writes the demodulated data items into a memory and reads the data items back from the memory in a different sequence.
- FIG. 2 shows a programmable signal processing circuit from digital signal processing circuit.
- the programmable signal processing circuit comprises an instruction issue unit 20 , a register file 22 , a plurality of functional units 23 , 24 , 26 and a data memory 28 .
- Instruction issue unit 20 stores a program for the digital signal processing circuit, and is arranged to retrieve the instructions as determined by program flow during execution of the program.
- Instruction issue unit 20 has operation control outputs coupled to functional units 24 , 26 for supplying control signals that are determined by the operation codes of the instructions, which identify the operations that must be executed by the functional units 23 , 24 , 26 .
- Instruction issue unit 20 has register selection outputs coupled to ports of register file 22 , for supplying selection signals that indicate the registers that contain operands of the instructions and the registers wherein results of the instructions must be stored.
- the instructions contain fields that control the selection signals.
- Output ports of register file 22 are coupled to the functional units 23 , 24 , 26 for supplying operands from the selected registers and input ports of register file 22 are coupled to the functional units 23 , 24 , 26 to receive results of execution of the instructions.
- a single line may represent connections for supplying a plurality of register selection codes, or for supplying a plurality of operands or for returning a plurality of results.
- three functional units 23 , 24 , 26 are shown, each with its own connections to instruction issue unit 20 and register file 22 it will be appreciated that in practice more functional units may be present, or fewer, if the functions of different functional units are grouped into a functional units that share common connections to register file 22 .
- the functional units define an “instruction set” that consists of all types of instructions that can be executed by the processor.
- “instructions” are the basic units of the program that select operations that will be performed by individual functional units.
- Instructions are the “atoms” of the program that cannot be split further into units that can serve as instructions.
- each instruction has a single op code (operation code) that identifies the instruction.
- design of a programmable processor typically starts from the specification of the instruction set, the specification of the instruction set providing the skilled person sufficient information to select at least a basic implementation of the processor.
- a first functional unit 23 is a memory access functional unit that is coupled to data memory 28 .
- This memory access functional unit 23 is designed to execute “LOAD” and “STORE” instructions, with operands that specify addresses of locations in data memory 28 .
- Data memory 28 may also be coupled to front end 10 (not shown) and/or back end 14 (not shown) for receiving signal data and transmitting video data.
- a second functional unit 24 (which may in fact contain a group of functional unit) is designed to execute conventional instructions, such as ALU instructions like ADD, SHIFT etc.
- further functional units may be present, for example so that several instructions can be executed in parallel, or different instructions can be executed (e.g. input of signal data from front end 10 (not shown) and/or output of video data to back end 14 (not shown)).
- the program of the programmable instruction processor provides for de-interleaving of signal data. This is implemented by means of LOAD and STORE instructions that are supplied to memory access functional unit 23 .
- the addresses in data memory 28 that are used by the LOAD and/or STORE instructions for this purpose are determined using operands that are computed by a specialized address update functional unit 26 in response to specialized instructions.
- Address update functional unit 26 is provided for computing successive addresses for use by LOAD and/or STORE instructions during de-interleaving.
- instructions of the type that are executed by address update functional unit 26 can be denoted by
- R 1 , R 2 , R 3 denote register selection codes that identify registers in register file 22 that are used to provide operands and to write results of the instruction.
- R 1 etc. denotes a selection code that identifies a register in register file 22 .
- R 1 etc. is an operand.
- R 1 etc. denotes a selection code that identifies a register in register file 22 that contains the operand.
- NEXT ADDRESS denotes the op-code that identifies the instruction
- R 1 is an operand register that contains an old address operand value
- R 2 is a first result register into which the new address result value will be written
- R 3 is a second result register into which a flag result will be written to indicate whether the new address result value is valid.
- the new instruction can be used in the following way in a program part that reads data from data memory:
- the instructions of this program are shown in series, it should be appreciated that in practice one or more of the instructions may be executed in parallel if a multi issue slot processor such as a VLIW processor is used.
- the “IF R 3 ” that precedes the first instruction indicates that this first instruction is a guarded instruction (a conditionally executed instruction).
- guarded is meant that the operation indicated by the instruction (a LOAD operation) will be executed completely by memory access functional unit 23 only if the operand R 3 has a flag value that indicates that the address value in R 1 is valid.
- the normal operands of the LOAD instruction are R 1 and R 4 .
- R 4 contains a base address value and R 1 contains the address offset from that base address that is updated with the NEXT ADDRESS instruction.
- the NEXT_ADDRESS instruction is executed between successive executions of the LOAD instruction (or each time simultaneously with such an execution). Execution of the NEXT_ADDRESS instruction results in an update of the offset address in R 1 and the flag in R 3 .
- FIG. 3 shows an example of an address update functional unit for executing the NEXT_ADDRESS instruction.
- the address update functional unit has an operand input 30 a and two result outputs 30 b,c coupled to ports of register file 22 (not shown).
- the address update functional unit contains an exclusive OR circuit 33 , an inverter 32 , a permutation circuit 34 , a substitution circuit 35 , comparators 36 a,b a disable circuit 37 and a result comparator 39 .
- Units 31 , 38 are shown symbolically for splitting out individuals bit lines from the input 30 a and output 30 b , but it should be appreciated that the conductors that are represented by the inputs and outputs of these units just run on through these units. Alternatively, any one or both of these units may contain a register, to latch data e.g. for pipelining purposes.
- a number of the bit lines from input unit 31 are coupled to permutation circuit 34 , which provides cross-connections between its inputs and outputs according to the following table
- permutation circuit 34 The outputs of permutation circuit 34 are coupled to inputs of disable circuit 37 , which in turn has outputs coupled to output unit 38 .
- One of the outputs of permutation circuit 34 is coupled to an input of disable circuit 37 via substitution circuit 35 .
- Bit line number 12 from input unit 31 is coupled to bit input number 12 of disable circuit 37 via inverter 32 .
- Exclusive OR circuit 33 receives input signals from input bit lines numbers 1 , 7 , 8 and 9 and feeds a result to output bit input number 5 of disable circuit 37 .
- a first comparator 36 a has an input coupled to input 30 a and an output coupled to a control input of substitution circuit 35 .
- This first comparator 36 a is arranged to generate a detection signal when the data value represented by the signal at input 30 a represents the number 4096.
- Substitution circuit 35 is arranged to pass its input signal from permutation circuit 35 unless first comparator 36 a signals that the data value at input 30 a represents the number 4096. In the latter case substitution circuit supplies a logic 1 instead. Any suitable logic circuit or multiplexing circuit may be used to realize this function.
- a second comparator 36 b as an input coupled to input 30 a and an output coupled to a control input of disable circuit 37 .
- This second comparator 36 b is arranged to generate a detection signal when the data value represented by the signal at input 30 a represents the number 4226.
- Disable circuit 37 is arranged to pass its input signals from permutation circuit 35 and substitution circuit 35 unless second comparator 36 b signals that the data value at input 30 a represents the number 4226. In the latter case substitution circuit supplies logic zero's at all its outputs. Any suitable logic circuit or multiplexing circuit may be used to realize this function.
- Result comparator 39 compares the number that is represented by the result that is output from output unit 38 with the number 6048. Result comparator 39 produces a further result that indicates whether the number that is represented by the result exceeds 6048.
- the result from output unit 38 corresponds to the result that is written to R 1 in the preceding examples and the further result from result comparator 39 corresponds to the result that is written to R 3 in the preceding examples.
- result comparator 39 may even be designed so that the delay from its input that receives the output of exclusive OR circuit 33 is shorter than that from one or more of the remaining bits. This reduces the minimum instruction cycle duration even further.
- Initialization and restart of the cycle of addresses is performed by the functional unit on the basis of the value of its old address operand, i.e. without additional information to indicate whether the cycle has ended.
- second comparator 36 b causes the number to be reset to zero, to start a new cycle of numbers.
- the NEXT_ADDRESS instruction uses this zero value as old address operand, its result is 4096.
- first comparator 36 a detects this value and introduces the first non-zero less significant bit value in the cycle. It may be noted that only the old address operand is used for this purpose: no retained state information from the functional unit is used for this purpose.
- the functional unit may be used to execute instructions for generating different address series interleaved with one another.
- different program threads with de-interleaving functions can execute concurrently, for example to decode two DVB signals in parallel.
- the result and the further results are produced as separate results, that can be written to separate registers that can be selected independently of one another under control of the instructions.
- These registers may be registers in the same register file, or in separate register files (with mutually different bit-widths for example).
- the further result may be inserted in the result, for example at the most significant bit position (e.g. at bit number 15 or 31 ). In this case a simpler instruction results, which can be symbolically represented by
- the further result and result comparator 39 may be omitted altogether. In this case execution of a separate comparison instruction is needed to perform de-interleaving:
- #MAX is a constant equal to 6048 with which the content of R 1 is compared. Compared to the embodiment of FIG. 3 this requires additional occupation of a comparator functional unit for an instruction cycle. On the other hand it simplifies the design of the functional unit for computation of the successive addresses.
- FIG. 3 is only one example of a functional unit that can be used for this purpose. It will be understood that if a different address series is needed, a correspondingly different circuit may be provided in the functional unit, instead of the circuit of FIG. 3 .
- a different address series is needed, a correspondingly different circuit may be provided in the functional unit, instead of the circuit of FIG. 3 .
- three different block sizes have been defined, each with its own series of addresses for use during de-interleaving.
- a different structure may be used in the functional unit.
- de-interleaving can be realized in many different ways in which different series of addresses may be used, for which a different implementation of the functional unit may be used.
- de-interleaving can be realized with a first implementation by storing at addresses with address values that increment with fixed steps and loading using addresses determined using a series generated by the functional unit.
- the same de-interleaving operation may be realized by a second implementation that comprises storing using addresses determined using a series generated by a functional unit, and loading with address values that increment with fixed steps.
- the first and second implementation can be used to realize the same de-interleaving operation.
- a correspondingly different functional unit may be provided.
- differently generated series of addresses may be used both for reading and writing.
- the functional unit is designed to combine the ability to generate a plurality of different address sequences, the specific address sequence being selected by the instruction.
- one functional unit may be provided that can be used for generation of addresses for different block sizes during DVB decoding.
- the type of sequence is selected by the operation code of the instruction. This case three different operation codes are provided, for three different kinds of instruction. Invocations of these instructions may be represented by
- Each instruction results in a different computation of the result that is passed to register R 2 and a comparison of that result with a different number, to produce a further result that is passed to R 3 .
- a single type of comparison may be used for each type of address computation, wherein a further operand is used to select between the different computation.
- FIG. 4 shows an embodiment of such a functional unit.
- the units that have the same numbers as in FIG. 3 have the same function as in FIG. 3 .
- an operation control input 40 and a series of multiplexers 42 a - m (only two labelled explicitly) is provided.
- Multiplexers 42 a - m are used to select between three different addresses.
- Multiplexers 42 a - m receive a control signal from control input 40 , to control which of their three input signals will be passed.
- Three permutation circuits 44 a - c are provided, which connect between input unit 31 and respective inputs of multiplexers 42 a - m .
- the connections of these permutation circuits may be as specified in the following table
- the outputs of the permutation circuits 44 a - c are coupled to inputs of the multiplexers 42 a - m , the control signal from control input 40 determining from which permutation circuit 44 a - c the output signals will be passed to the result.
- Three exclusive OR circuits 43 a - c are provided, with outputs coupled to a first input of a multiplexer 42 a - m for bit number 5 , a second input of a multiplexer 42 a - m for bit number 7 and a third input for bit number 0 respectively.
- Three substitution circuits 35 a - c are provided, coupled to a first input of a multiplexer 42 a - m for bit number 7 , a second input of a multiplexer 42 a - m for bit number 6 and a third input for bit number 4 respectively.
- substitution circuits 35 a - c are controlled by a first comparator circuit 46 a that compares the number represented by the input operand with a value that depends on the control signal from control input: substitution circuits 35 a - c are activated when this number is 4096, 2048 and 1024 respectively.
- Disable circuit 37 is coupled between the outputs of multiplexers 42 a - m and result output 30 b .
- Disable circuit 37 is controlled by second comparator 46 b , which forces an all zero output of disable circuit when the input operand represents the number 4226, 2056 or 1032 respectively, dependent on whether the control signal from control input 40 selects outputs from first, second or third permutation circuit 44 a - c respectively.
- Result comparator 39 compares the result with 6048, 3024 or 1512 respectively, dependent on whether the control signal from control input 40 selects outputs from first, second or third permutation circuit 44 a - c respectively.
- a comparator circuit may be provided with inputs coupled to the inputs of multiplexers 42 a - m , and to the input of substitution circuits 35 a - c for the bits where these circuits precede the multiplexers 42 a - m.
- Inverters 32 a - c are provided that couple respective lines from input unit 31 to respective ones of multiplexers 42 a - m , so that, dependent on the control signal from control input 40 either one of the following combinations of signals are passed by the multiplexers for the most significant bits:
- the functional unit of FIG. 4 can be used to generate any number of series of addresses interleaved with one another, where any of the series may be of any one of three different types.
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)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
- The invention relates to a method of (de-)interleaving signal information and a to a programmable signal processing circuit for implementing such a method.
- The DVB (Digital Video Broadcast) standard provides for transmission of encoded television signals. To decode these signals a number of steps have to be performed, which include de-interleaving of the transmitted signals. De-interleaving involves rearrangement of data units, so that they their relative position in an output sequence differs from that in an input sequence in which the data units occur during transmission. De-interleaving is typically implemented by writing of data units of the received signal into a memory and reading of the data units from the memory in a sequence other than the sequence in which that data was written. When the data units are stored in an addressable memory, de-interleaving is controlled by the selection of addresses that are used for this purpose.
- The DVB standard defines an address sequence that can be used for this purpose. The definition involves three sequences of numbers. The numbers of the first sequence are denoted by R′i, wherein i is an index that distinguishes different positions in the sequence. The numbers of the second sequence are denoted by Ri and the numbers of the third sequence are denoted by Hi. The DVB standard defines a recursive algorithm by which each successive value R′i in the first sequence can be computed from a preceding value R′i−1. This algorithm involves a shift of the binary representation of R′i−1 and the addition of a bit value that is computed as a logic function of selected ones of the bits of the binary representation of R′i−1. Next, the DVB standard defines a mapping that maps values R′1 of the first sequence to values Ri in the second sequence. Finally, the DVB standard defines the third sequence Hi as a copy of the second sequence from which all numbers have been omitted that exceed a threshold value. The DVB standard gives three definitions of this type, for use with three different block sizes.
- Known implementations of this type of interleaving typically use a dedicated address computation circuit for computing the addresses Ri of the second sequence. Such a circuit contains a register that stores a current value of R′i of the first sequence, a first circuit for generating a next value R′i+1 from the value in the register and a second circuit for forming successive values Ri from successive values R′i in the register. When a plurality of sequences Ri has to be generated in parallel, a plurality of such circuits is needed in parallel, each with a register that holds the R′i value for a respective sequence.
- An alternative implementation involves the use of a programmable signal processing circuit to compute the addresses Ri. In this case, the values R′i, Ri and Hi are typically stored in operand registers of the signal processing circuit that are addressed by the instructions of the circuit. Due to the bit-manipulation nature of the definition of the series R′i, Ri and Hi the computation of these values typically involves execution of a considerable number of instructions. As an alternative, a look-up table may be used, wherein precomputed Hi values are stored. However this requires the overhead of a look-up table of considerable size.
- Another alternative could be to expand the instruction set of the programmable processor with special instructions for performing the computation of successive R′i values and the computation of Ri values from the R′i values. In this case one or more functional units are provided in the programmable signal processing circuit for executing these instructions. In essence such functional units would contain the earlier described circuitry from the dedicated circuit for computing R′i+1 from Ri and for computing Ri from R′i. That is, one functional unit should contain a shifting circuit in combination with a logic circuit to compute a new bit (computation of R′i from R′i−1), the same or another functional unit would provide for mapping of R′ to R (which involves a bit permutation) and finally a comparison circuit is needed to detect valid H values. A general purpose register that is addressed in the instruction can be used for supplying R′i., so that a dedicated register to hold R′i, can be omitted from the functional units. This facilitates compilation of programs for the processor, since the instructions are independent of state information in the functional units. However, it is still desirable to be able to reduce the number of instructions that is needed to perform interleaving even further.
- Among others, it is an object of the invention to reduce the number of instruction execution cycles that is needed to perform (de-) interleaving with a programmable signal processing circuit.
- Among others, it is an object of the invention to reduce the number of instruction execution cycles that is needed to perform (de-) interleaving with a programmable signal processing circuit in a DVB transmission system.
- Among others, it is an object of the invention to provide for a programmable signal processing circuit that makes it possible to reduce the number of instruction execution cycles that is needed to perform (de-) interleaving.
- Among others, it is an object of the invention to provide for an efficient method of (de-) interleaving using a programmable signal processing circuit.
- A method according to the invention is set forth in claim 1. In this method addresses for use in said storing and/or reading are computed from preceding addresses that have been used for said storing and/or reading. For this purpose repeated execution of a program loop is used that contains an address update instruction for computing the addresses. In this way the addresses themselves are used to compute new addresses, which means that it is avoided that additional processing time is used for for computing addresses Ri from intermediate values R′.
- A processor that supports the method contains an instruction processing circuit with an instruction set that contains an address update instruction. The instruction processing circuit comprises a permutation circuit coupled between its operand input and its result output, arranged to controls values of a plurality of bits at respective output bit positions in the new address result dependent on respective bits from respective input positions that are a permutation of the output bit positions, and a combinatorial logic circuit coupled between the operand input and the result output, with inputs coupled to receive bits from respective input bit positions in the old address operand and an output coupled to output a bit to a bit position in the new address result.
- In a further embodiment it is determined as part of execution of the address update instruction whether a number represented by the new address result operand exceeds a threshold value. If so a flag result is written that is used in the program loop to condition execution of a further instruction.
- In another embodiment repeated address cycles are used during execution of the program loop, each of a same series of addresses for use in said storing and/or reading. The cycles are started implicitly in response to execution of the address update instruction by deviating from said permuting and forming of the bit to form the new address result when the old address operand has a predetermined value.
- In embodiments of the instruction processing circuit a comparator circuit is provided with an input coupled to the operand input and the comparator controls a bit substitution circuit to overwrite one or more bits with predetermined bit values when a predetermined address occur.
- Preferably, the instruction processing circuit selects between different types of update dependent on the update information that is specified by the address update instruction. Thus, different types of de-interleaving, for example for different DVB block sizes can be supported by the instruction processing circuit.
- These and other objects and advantageous aspects of the invention will be illustrated from description of the following figures that show non-limitative examples of the invention.
-
FIG. 1 shows signal receiver apparatus -
FIG. 2 shows a programmable signal processing circuit -
FIG. 3 shows a functional unit -
FIG. 4 shows a further functional unit -
FIG. 1 shows a signal receiver apparatus, such as a DVB (Digital Video Broadcast) receiver apparatus. The apparatus contains afront end 10, a digitalsignal processing circuit 12 and aback end 14 connected in cascade.Front end 10 has an input for receiving a video broadcast signal. Inoperation front end 10 receives the video broadcast signal and retrieves digital information from the signal. Digitalsignal processing circuit 12 receives the digital information and processes the digital information to form a video data signal. Digital signal processing circuit supplies the video data signal to backend 14, which may generate, for example, display data for a connected video display screen (not shown) or storage data for a connected video recording device (not shown). Backend 14 may contain a video display screen and/or recording device itself for these purposes. - Digital
signal processing circuit 12 comprises a programmable signal processing circuit that is programmed with a program to perform such operations as demodulation (using digital signal samples to reconstruct data items that have been used to modulate the sampled signal) and decoding of demodulated data items according to an Error Correcting Code (FCC). - Prior to decoding digital
signal processing circuit 12 de-interleaves the data. Interleaving is used to reduce the vulnerability to burst errors and errors due to interfering signals that cause errors in combinations of demodulated data items. Data items that are vulnerable to such common errors are distributed so that they do not jointly affect the error correction capability of the ECC, e.g. by distributing them over different code words of the ECC. To implement de-interleaving, digitalsignal processing circuit 12 writes the demodulated data items into a memory and reads the data items back from the memory in a different sequence. -
FIG. 2 shows a programmable signal processing circuit from digital signal processing circuit. The programmable signal processing circuit comprises aninstruction issue unit 20, aregister file 22, a plurality offunctional units data memory 28.Instruction issue unit 20 stores a program for the digital signal processing circuit, and is arranged to retrieve the instructions as determined by program flow during execution of the program.Instruction issue unit 20 has operation control outputs coupled tofunctional units functional units Instruction issue unit 20 has register selection outputs coupled to ports ofregister file 22, for supplying selection signals that indicate the registers that contain operands of the instructions and the registers wherein results of the instructions must be stored. The instructions contain fields that control the selection signals. Output ports ofregister file 22 are coupled to thefunctional units register file 22 are coupled to thefunctional units - Although single lines are shown to indicate communication connections for supplying control codes, register selection codes, operands and results, it will be appreciated that in practice many conductors will be used in parallel in the implementation of such connections. A single line may represent connections for supplying a plurality of register selection codes, or for supplying a plurality of operands or for returning a plurality of results. Furthermore, although three
functional units instruction issue unit 20 and registerfile 22 it will be appreciated that in practice more functional units may be present, or fewer, if the functions of different functional units are grouped into a functional units that share common connections to registerfile 22. - The functional units define an “instruction set” that consists of all types of instructions that can be executed by the processor. As used herein, “instructions” are the basic units of the program that select operations that will be performed by individual functional units. Instructions are the “atoms” of the program that cannot be split further into units that can serve as instructions. Typically, each instruction has a single op code (operation code) that identifies the instruction. As is well known, design of a programmable processor typically starts from the specification of the instruction set, the specification of the instruction set providing the skilled person sufficient information to select at least a basic implementation of the processor.
- A first
functional unit 23 is a memory access functional unit that is coupled todata memory 28. This memory accessfunctional unit 23 is designed to execute “LOAD” and “STORE” instructions, with operands that specify addresses of locations indata memory 28.Data memory 28 may also be coupled to front end 10 (not shown) and/or back end 14 (not shown) for receiving signal data and transmitting video data. A second functional unit 24 (which may in fact contain a group of functional unit) is designed to execute conventional instructions, such as ALU instructions like ADD, SHIFT etc. Although not shown, further functional units may be present, for example so that several instructions can be executed in parallel, or different instructions can be executed (e.g. input of signal data from front end 10 (not shown) and/or output of video data to back end 14 (not shown)). - The program of the programmable instruction processor provides for de-interleaving of signal data. This is implemented by means of LOAD and STORE instructions that are supplied to memory access
functional unit 23. The addresses indata memory 28 that are used by the LOAD and/or STORE instructions for this purpose are determined using operands that are computed by a specialized address updatefunctional unit 26 in response to specialized instructions. Address updatefunctional unit 26 is provided for computing successive addresses for use by LOAD and/or STORE instructions during de-interleaving. - In one embodiment instructions of the type that are executed by address update
functional unit 26 can be denoted by -
NEXT_ADDRESS R1,R2,R3 - In this denotation R1, R2, R3 denote register selection codes that identify registers in
register file 22 that are used to provide operands and to write results of the instruction. However, instructions will be described herein colloquially by saying that R1 etc. “is” a register. This should be understood to mean that R1 etc. denotes a selection code that identifies a register inregister file 22. Even more colloquially it will be said that R1 etc. “is an operand”. This should also be understood to mean that R1 etc. denotes a selection code that identifies a register inregister file 22 that contains the operand. - In this denotation NEXT ADDRESS denotes the op-code that identifies the instruction, R1 is an operand register that contains an old address operand value, R2 is a first result register into which the new address result value will be written, and R3 is a second result register into which a flag result will be written to indicate whether the new address result value is valid.
- The new instruction can be used in the following way in a program part that reads data from data memory:
-
REPEAT: IF R3 LOAD R1, R4, R5 IF R3 instructions that process the content of R5 NEXT_ADDRESS R1, R1, R3 - Although the instructions of this program are shown in series, it should be appreciated that in practice one or more of the instructions may be executed in parallel if a multi issue slot processor such as a VLIW processor is used. In this program part the “IF R3” that precedes the first instruction indicates that this first instruction is a guarded instruction (a conditionally executed instruction). By guarded is meant that the operation indicated by the instruction (a LOAD operation) will be executed completely by memory access
functional unit 23 only if the operand R3 has a flag value that indicates that the address value in R1 is valid. The normal operands of the LOAD instruction are R1 and R4. R4 contains a base address value and R1 contains the address offset from that base address that is updated with the NEXT ADDRESS instruction. When the LOAD instruction is executed completely, data is loaded from an address that is the sum of the operands in R1 and R4 and the loaded data is stored in R5. - Complete execution of instructions that use the loaded data from R5 is also guarded by the flag value in R3. It is not necessary that execution of all of these instructions is guarded: it suffices to guard execution of instructions that would otherwise overwrite useful data.
- The NEXT_ADDRESS instruction is executed between successive executions of the LOAD instruction (or each time simultaneously with such an execution). Execution of the NEXT_ADDRESS instruction results in an update of the offset address in R1 and the flag in R3.
-
FIG. 3 shows an example of an address update functional unit for executing the NEXT_ADDRESS instruction. The address update functional unit has anoperand input 30 a and tworesult outputs 30 b,c coupled to ports of register file 22 (not shown). The address update functional unit contains an exclusive ORcircuit 33, aninverter 32, apermutation circuit 34, asubstitution circuit 35,comparators 36 a,b a disablecircuit 37 and aresult comparator 39. Theoperand input 30 a and theoutputs 30 b,c typically support N bit wide input and output, wherein N is a word size of the digital signal processor (N=16 bits for example). Typically N conductors are provided in parallel for this purpose, but for the sake of clarity single lines are shown.Units input 30 a andoutput 30 b, but it should be appreciated that the conductors that are represented by the inputs and outputs of these units just run on through these units. Alternatively, any one or both of these units may contain a register, to latch data e.g. for pipelining purposes. A number of the bit lines frominput unit 31 are coupled topermutation circuit 34, which provides cross-connections between its inputs and outputs according to the following table -
input line # connected to output line # 0 10 1 7 2 4 3 0 4 1 5 11 6 9 7 — 8 6 9 2 10 8 11 3 - These connections have been selected so that, in terms of the definition of the de-interleaving addresses for the DVB standard, a combination is performed of a reverse computation of R′ from R, an update of R′ and a computation of a new R from the updated R′.
- The outputs of
permutation circuit 34 are coupled to inputs of disablecircuit 37, which in turn has outputs coupled tooutput unit 38. One of the outputs ofpermutation circuit 34 is coupled to an input of disablecircuit 37 viasubstitution circuit 35.Bit line number 12 frominput unit 31 is coupled to bitinput number 12 of disablecircuit 37 viainverter 32. Exclusive ORcircuit 33 receives input signals from input bit lines numbers 1, 7, 8 and 9 and feeds a result to output bit input number 5 of disablecircuit 37. - A
first comparator 36 a has an input coupled to input 30 a and an output coupled to a control input ofsubstitution circuit 35. Thisfirst comparator 36 a is arranged to generate a detection signal when the data value represented by the signal atinput 30 a represents the number 4096.Substitution circuit 35 is arranged to pass its input signal frompermutation circuit 35 unlessfirst comparator 36 a signals that the data value atinput 30 a represents the number 4096. In the latter case substitution circuit supplies a logic 1 instead. Any suitable logic circuit or multiplexing circuit may be used to realize this function. - A
second comparator 36 b as an input coupled to input 30 a and an output coupled to a control input of disablecircuit 37. Thissecond comparator 36 b is arranged to generate a detection signal when the data value represented by the signal atinput 30 a represents the number 4226. Disablecircuit 37 is arranged to pass its input signals frompermutation circuit 35 andsubstitution circuit 35 unlesssecond comparator 36 b signals that the data value atinput 30 a represents the number 4226. In the latter case substitution circuit supplies logic zero's at all its outputs. Any suitable logic circuit or multiplexing circuit may be used to realize this function. -
Result comparator 39 compares the number that is represented by the result that is output fromoutput unit 38 with the number 6048.Result comparator 39 produces a further result that indicates whether the number that is represented by the result exceeds 6048. The result fromoutput unit 38 corresponds to the result that is written to R1 in the preceding examples and the further result fromresult comparator 39 corresponds to the result that is written to R3 in the preceding examples. - It may be noted that, although the input of
result comparator 39 is shown connected to resultoutput 30 b, its input may alternatively be connected to the input of disablecircuit 37, and with respect to the bit that passes viasubstitution circuit 35 even with the input of the substitution circuit. In this case, the delay caused byresult comparator 39 does not add onto the delay caused bysubstitution circuit 35 and/or disablecircuit 37, which reduces the minimum possible duration of the instruction cycle.Result comparator circuit 39 may even be designed so that the delay from its input that receives the output of exclusive ORcircuit 33 is shorter than that from one or more of the remaining bits. This reduces the minimum instruction cycle duration even further. - In operation, when a series of NEXT_ADDRESS instructions is executed wherein each instruction has an old address operand that is the new address result of a preceding instruction in the series, instruction executions by the functional unit generate a series of numbers that contains numbers that can be used to compute addresses for de-interleaving data. In response to the same instructions the functional unit generates further results that indicate whether the results can be used. This avoids the need to execute separate instructions for this purpose.
- Initialization and restart of the cycle of addresses is performed by the functional unit on the basis of the value of its old address operand, i.e. without additional information to indicate whether the cycle has ended. To realize this. when the value 4226 is encountered,
second comparator 36 b causes the number to be reset to zero, to start a new cycle of numbers. When the NEXT_ADDRESS instruction uses this zero value as old address operand, its result is 4096. When the NEXT_ADDRESS instruction uses this result as old address operandfirst comparator 36 a detects this value and introduces the first non-zero less significant bit value in the cycle. It may be noted that only the old address operand is used for this purpose: no retained state information from the functional unit is used for this purpose. As result, the functional unit may be used to execute instructions for generating different address series interleaved with one another. Thus, for example, different program threads with de-interleaving functions can execute concurrently, for example to decode two DVB signals in parallel. - In the illustrated embodiment, the result and the further results are produced as separate results, that can be written to separate registers that can be selected independently of one another under control of the instructions. This results in maximum flexibility for programming de-interleaving. These registers may be registers in the same register file, or in separate register files (with mutually different bit-widths for example). In another embodiment (not shown), the further result may be inserted in the result, for example at the most significant bit position (e.g. at bit number 15 or 31). In this case a simpler instruction results, which can be symbolically represented by
-
NEXT_ADDRESS R1, R2 - In this instruction only one result register address R2 is needed to indicate a register for writing data that contains both the result and the further result. When this register is used for a LOAD or STORE instruction the memory access unit may be arranged to ignore the additional bit during address determination. Even if the bit is used in this computation, it need not cause any problems, when the instructions that use the result for address determination are executed conditionally under control of the further result.
- As an alternative, the further result and result
comparator 39 may be omitted altogether. In this case execution of a separate comparison instruction is needed to perform de-interleaving: -
REPEAT: IF R3 LOAD R1, R4, R5 IF R3 instructions that process the content of R5 NEXT_ADDRESS R1, R1 COMPARE R1, #MAX, R3 - Herein #MAX is a constant equal to 6048 with which the content of R1 is compared. Compared to the embodiment of
FIG. 3 this requires additional occupation of a comparator functional unit for an instruction cycle. On the other hand it simplifies the design of the functional unit for computation of the successive addresses. - It should be appreciated that the structure that has been shown in
FIG. 3 is only one example of a functional unit that can be used for this purpose. It will be understood that if a different address series is needed, a correspondingly different circuit may be provided in the functional unit, instead of the circuit ofFIG. 3 . For example, for decoding different DVB data, three different block sizes have been defined, each with its own series of addresses for use during de-interleaving. For each type of decoding a different structure may be used in the functional unit. - Alternative different circuits may even be used to implement the same de-interleaving operation. For example, without affecting the generated numbers, the connections between various units may be varied. Since
permutation circuit 35 merely performs a bit-for-bit connection function, it may be placed anywhere relative to exclusive ORcircuit 33,substitution circuit 35 or disablecircuit 37. Similarly, becausecomparators 36 a,b trigger on different addresses, the sequence ofsubstitution circuit 35 and disablecircuit 37 may be exchanged. - Furthermore, it should be realized that de-interleaving can be realized in many different ways in which different series of addresses may be used, for which a different implementation of the functional unit may be used. For example, de-interleaving can be realized with a first implementation by storing at addresses with address values that increment with fixed steps and loading using addresses determined using a series generated by the functional unit. The same de-interleaving operation may be realized by a second implementation that comprises storing using addresses determined using a series generated by a functional unit, and loading with address values that increment with fixed steps. The first and second implementation can be used to realize the same de-interleaving operation. Similarly if, instead of increasing address value, address values are used that decrease with fixed step, a correspondingly different functional unit may be provided. As a further alternative differently generated series of addresses may be used both for reading and writing.
- In an embodiment the functional unit is designed to combine the ability to generate a plurality of different address sequences, the specific address sequence being selected by the instruction. By way of example, one functional unit may be provided that can be used for generation of addresses for different block sizes during DVB decoding. In one embodiment the type of sequence is selected by the operation code of the instruction. This case three different operation codes are provided, for three different kinds of instruction. Invocations of these instructions may be represented by
-
NEXT_ADDRESS_1 R1, R2, R3 NEXT_ADDRESS_2 R1, R2, R3 NEXT_ADDRESS_3 R1, R2, R3 - Each instruction results in a different computation of the result that is passed to register R2 and a comparison of that result with a different number, to produce a further result that is passed to R3. Alternatively, a single type of comparison may be used for each type of address computation, wherein a further operand is used to select between the different computation.
-
FIG. 4 shows an embodiment of such a functional unit. In this embodiment the units that have the same numbers as inFIG. 3 have the same function as inFIG. 3 . In this embodiment anoperation control input 40 and a series of multiplexers 42 a-m (only two labelled explicitly) is provided. Multiplexers 42 a-m are used to select between three different addresses. Multiplexers 42 a-m receive a control signal fromcontrol input 40, to control which of their three input signals will be passed. Three permutation circuits 44 a-c are provided, which connect betweeninput unit 31 and respective inputs of multiplexers 42 a-m. For DVB decoding the connections of these permutation circuits may be as specified in the following table -
output line # output line # output line # input line # of 44c of 44b of 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 — — - The outputs of the permutation circuits 44 a-c are coupled to inputs of the multiplexers 42 a-m, the control signal from
control input 40 determining from which permutation circuit 44 a-c the output signals will be passed to the result. - Three exclusive OR circuits 43 a-c are provided, with outputs coupled to a first input of a multiplexer 42 a-m for bit number 5, a second input of a multiplexer 42 a-m for bit number 7 and a third input for
bit number 0 respectively. Threesubstitution circuits 35 a-c are provided, coupled to a first input of a multiplexer 42 a-m for bit number 7, a second input of a multiplexer 42 a-m for bit number 6 and a third input for bit number 4 respectively. The threesubstitution circuits 35 a-c are controlled by afirst comparator circuit 46 a that compares the number represented by the input operand with a value that depends on the control signal from control input:substitution circuits 35 a-c are activated when this number is 4096, 2048 and 1024 respectively. Disablecircuit 37 is coupled between the outputs of multiplexers 42 a-m and resultoutput 30 b. Disablecircuit 37 is controlled bysecond comparator 46 b, which forces an all zero output of disable circuit when the input operand represents the number 4226, 2056 or 1032 respectively, dependent on whether the control signal fromcontrol input 40 selects outputs from first, second or third permutation circuit 44 a-c respectively. -
Result comparator 39 compares the result with 6048, 3024 or 1512 respectively, dependent on whether the control signal fromcontrol input 40 selects outputs from first, second or third permutation circuit 44 a-c respectively. As in the single series embodiment ofFIG. 3 , a comparator circuit may be provided with inputs coupled to the inputs of multiplexers 42 a-m, and to the input ofsubstitution circuits 35 a-c for the bits where these circuits precede the multiplexers 42 a-m. -
Inverters 32 a-c are provided that couple respective lines frominput unit 31 to respective ones of multiplexers 42 a-m, so that, dependent on the control signal fromcontrol input 40 either one of the following combinations of signals are passed by the multiplexers for the most significant bits: - (a) logic zeros at the
multiplexers 24 a-m for the two most significant bit outputs, and the inverse of bit number 9 frominput unit 31 at themultiplexer 24 a-m for the third bit output in order of decreasing significance - (b) a logic zero at the multiplexer 24 a for the most significant bit output, the inverse of
bit number 10 frominput unit 31 at the multiplexer for the second bit output in order of decreasing significance and an output from permutation circuit 42 b at the multiplexer for the third bit output in order of decreasing significance; or - (c) the inverse of bit number 11 from
input unit 31 at the multiplexer for the first bit output in order of decreasing significance and outputs frompermutation circuit 42 a at the multiplexers for the second and third bit outputs in order of decreasing significance. - As will be appreciated the functional unit of
FIG. 4 can be used to generate any number of series of addresses interleaved with one another, where any of the series may be of any one of three different types. - Although the invention has been described with respect to specific embodiments, it will be appreciated that the invention is not limited to these embodiments. For example, although an application to de-interleaving has been described (recovering an original sequence upon reception), it should be appreciated that the invention may be applied to interleaving as well (rearranging a sequence before transmission), since these operations involve the same type of processing. In fact, the same type of functional unit may be used both for interleaving and for de-interleaving of the same type of code, the one involving writing at addresses according to a generated series and reading at addresses at fixed distances, the other involving writing to addresses at fixed distances and reading from addresses according to this generated series.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/357,339 US8433881B2 (en) | 2004-12-14 | 2012-01-24 | Programmable signal processing circuit and method of interleaving |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04106549 | 2004-12-14 | ||
EP04106549 | 2004-12-14 | ||
EP04106549.1 | 2004-12-14 | ||
PCT/IB2005/054203 WO2006064462A2 (en) | 2004-12-14 | 2005-12-13 | Programmable signal processing circuit and method of interleaving |
US72105209A | 2009-09-28 | 2009-09-28 | |
US13/357,339 US8433881B2 (en) | 2004-12-14 | 2012-01-24 | Programmable signal processing circuit and method of interleaving |
Related Parent Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/721,052 Continuation US8108651B2 (en) | 2004-12-14 | 2005-12-13 | Programmable signal processing circuit and method of interleaving |
PCT/IB2005/054203 Continuation WO2006064462A2 (en) | 2004-12-14 | 2005-12-13 | Programmable signal processing circuit and method of interleaving |
US72105209A Continuation | 2004-12-14 | 2009-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120120310A1 true US20120120310A1 (en) | 2012-05-17 |
US8433881B2 US8433881B2 (en) | 2013-04-30 |
Family
ID=34930050
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/721,052 Expired - Fee Related US8108651B2 (en) | 2004-12-14 | 2005-12-13 | Programmable signal processing circuit and method of interleaving |
US13/357,339 Expired - Fee Related US8433881B2 (en) | 2004-12-14 | 2012-01-24 | Programmable signal processing circuit and method of interleaving |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/721,052 Expired - Fee Related US8108651B2 (en) | 2004-12-14 | 2005-12-13 | Programmable signal processing circuit and method of interleaving |
Country Status (8)
Country | Link |
---|---|
US (2) | US8108651B2 (en) |
EP (1) | EP1828884B1 (en) |
JP (1) | JP4949267B2 (en) |
KR (1) | KR101235822B1 (en) |
CN (1) | CN101076778A (en) |
AT (1) | ATE479143T1 (en) |
DE (1) | DE602005023206D1 (en) |
WO (1) | WO2006064462A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11521535B2 (en) * | 2016-08-26 | 2022-12-06 | Samsung Electronics Co., Ltd. | Display device and driving method therefor |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101235822B1 (en) | 2004-12-14 | 2013-02-21 | 실리콘 하이브 비.브이. | Programmable Signal Processing Circuits and Interleaving Methods |
CN102377516A (en) * | 2011-06-22 | 2012-03-14 | 钜泉光电科技(上海)股份有限公司 | Data processing method and device |
GB201217531D0 (en) * | 2012-10-01 | 2012-11-14 | Advanced Risc Mach Ltd | ARMv7-M Asset Protection Proposal |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US9946541B2 (en) * | 2015-12-18 | 2018-04-17 | Intel Corporation | Systems, apparatuses, and method for strided access |
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 (en) | 1993-08-04 | 2000-01-17 | 松下電器産業株式会社 | Interleave device |
JPH11203106A (en) | 1998-01-13 | 1999-07-30 | Hitachi Ltd | Processor |
US6507629B1 (en) | 1998-04-07 | 2003-01-14 | Sony Corporation | Address generator, interleave unit, deinterleave unit, and transmission unit |
JP3445525B2 (en) | 1999-04-02 | 2003-09-08 | 松下電器産業株式会社 | Arithmetic processing device and method |
US7251294B2 (en) * | 2001-09-17 | 2007-07-31 | Digeo, Inc. | System and method for concurrently demodulating and decoding multiple data streams |
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 |
KR101235822B1 (en) * | 2004-12-14 | 2013-02-21 | 실리콘 하이브 비.브이. | Programmable Signal Processing Circuits and Interleaving Methods |
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 KR KR1020077013196A patent/KR101235822B1/en active IP Right Grant
- 2005-12-13 US US11/721,052 patent/US8108651B2/en not_active Expired - Fee Related
- 2005-12-13 EP EP05824323A patent/EP1828884B1/en not_active Not-in-force
- 2005-12-13 CN CNA2005800427896A patent/CN101076778A/en active Pending
- 2005-12-13 AT AT05824323T patent/ATE479143T1/en not_active IP Right Cessation
- 2005-12-13 JP JP2007546275A patent/JP4949267B2/en not_active Expired - Fee Related
- 2005-12-13 WO PCT/IB2005/054203 patent/WO2006064462A2/en active Application Filing
- 2005-12-13 DE DE602005023206T patent/DE602005023206D1/en active Active
-
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 |
---|---|---|---|---|
US11521535B2 (en) * | 2016-08-26 | 2022-12-06 | Samsung Electronics Co., Ltd. | Display device and driving method therefor |
Also Published As
Publication number | Publication date |
---|---|
US20100039567A1 (en) | 2010-02-18 |
US8108651B2 (en) | 2012-01-31 |
WO2006064462A2 (en) | 2006-06-22 |
JP2008523761A (en) | 2008-07-03 |
KR101235822B1 (en) | 2013-02-21 |
US8433881B2 (en) | 2013-04-30 |
EP1828884B1 (en) | 2010-08-25 |
WO2006064462A3 (en) | 2006-09-14 |
JP4949267B2 (en) | 2012-06-06 |
KR20070086067A (en) | 2007-08-27 |
ATE479143T1 (en) | 2010-09-15 |
DE602005023206D1 (en) | 2010-10-07 |
EP1828884A2 (en) | 2007-09-05 |
CN101076778A (en) | 2007-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8433881B2 (en) | Programmable signal processing circuit and method of interleaving | |
US6865667B2 (en) | Data processing system having redirecting circuitry and method therefor | |
JP3976082B2 (en) | VLIW processor commands of different width | |
US4539684A (en) | Automatic frame synchronization recovery utilizing a sequential decoder | |
US6877090B2 (en) | Branch predictor suitable for multi-processing microprocessor | |
KR100455011B1 (en) | Processor which can favorably execute a rounding process composed of positive conversion and saturated calculation processing | |
US7529918B2 (en) | System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor | |
JP3594506B2 (en) | Microprocessor branch instruction prediction method. | |
EP1157329A1 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
US5724422A (en) | Encrypting and decrypting instruction boundaries of instructions in a superscalar data processing system | |
US6073228A (en) | Modulo address generator for generating an updated address | |
US5848288A (en) | Method and apparatus for accommodating different issue width implementations of VLIW architectures | |
US7139897B2 (en) | Computer instruction dispatch | |
US7853860B2 (en) | Programmable signal and processing circuit and method of depuncturing | |
US5832257A (en) | Digital signal processing method and system employing separate program and data memories to store data | |
US8332620B2 (en) | System, method and computer program product for executing a high level programming language conditional statement | |
US8006066B2 (en) | Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit | |
WO2002039272A1 (en) | Method and apparatus for reducing branch latency | |
US20080320283A1 (en) | Programmable Data Processor for a Variable Length Encoder/Decoder | |
US12265827B2 (en) | Forming constant extensions in the same execute packet in a VLIW processor | |
US6954889B2 (en) | Circuit for modifying stored data | |
WO2002042897A2 (en) | Data processing apparatus | |
US6983360B2 (en) | Program loading mechanism through a single input data path |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILOCON HIVE B.V.;REEL/FRAME:028883/0689 Effective date: 20120803 Owner name: INTEL BENELUX B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILOCON HIVE B.V.;REEL/FRAME:028883/0689 Effective date: 20120803 Owner name: INTEL BENELUX B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICON HIVE B.V.;REEL/FRAME:028883/0689 Effective date: 20120803 |
|
AS | Assignment |
Owner name: INTEL BENELUX B. V., NETHERLANDS Free format text: "SILOCON HIVE B.V." SHOULD BE SPELLED "SILICON HIVE B.V" ASSIGNEE:"INTEL CORPORATION" SHOULD BE REMOVED. RECORDED ON REEL/FRAME:028883/0689 (502045456);ASSIGNOR:SILICON HIVE B. V.;REEL/FRAME:029405/0885 Effective date: 20120803 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEL BENELUX B.V.;REEL/FRAME:031926/0502 Effective date: 20131210 |
|
CC | Certificate of correction | ||
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20170430 |