Claims
- 1. A digital signal processor, comprising
a digital data bus connected to a digital data memory storing digital data to be manipulated by said digital signal processor, said digital data including a table of data beginning at a base address within said memory, a program control unit fetching a plurality of instructions comprising a program for said digital signal processor, and responding to said instructions by generating command signals controlling operations of other units of said digital signal processor; a register file storing digital data; at least one logic unit connected to said program control unit and said register file and responding to command signals to perform digital data processing upon data in said register file; and an address generator unit connected to said digital data bus, said register file and said program control unit and responding to command signals to retrieve and store data from and to said digital data memory to and from said register file via said digital data bus, said address generator comprising a base address register storing digital signals representative of said base address of said table, an index register storing digital signals representative of an address of a desired data entry in said table relative to said base address, and a concatenator for concatenating digital signals stored in said base address register to digital signals stored in said index register to generate an address of said desired data entry in said table in said memory.
- 2. The digital signal processor of claim 1 wherein said table has a number of entries equal to two raised to a positive integer power.
- 3. The digital signal processor of claim 2 wherein said concatenator selects a number of digital signals from said index register for concatenation to said digital signals from said base register, said number of digital signals being equal to said positive integer power.
- 4. The digital signal processor of claim 2 wherein said concatenator truncates a number of less-significant digital signals from the digital signals in base address registers and concatenates the remaining digital signals from said base address register to said digital signals from said index register, said number of digital signals truncated from the digital signals in said base address register being, equal to said positive integer power.
- 5. The digital signal processor of claim 4 wherein said concatenator selects a number of digital signals from said index register for concatenation to said digital signals from said base register, said number of digital signals selected from said index register being equal to said positive integer power.
- 6. The digital signal processor of claim 1 further comprising an adder connected to said index register and having an increment/decrement input for receiving digital signals representing a positive increment or negative decrement value to be added to said digital signals stored in said index register, said adder receiving digital signals from said index register, adding said increment or decrement value to said digital signals from said index register, and storing digital signals representing the resulting sum in said index register.
- 7. The digital signal processor of claim 6 further comprising a limiter connected to said adder, said limiter detecting whether said sum produced by said adder is less than zero, and if so storing in said index register digital signals representing a value of zero.
- 8. The digital signal processor of claim 6 further comprising a limiter connected to said adder, said limiter detecting whether said sum produced by said adder is greater than a length of said table in said memory, and if so storing in said index register digital signals representing a value equal to said length of said table.
- 9. The digital signal processor of claim 8 wherein said limiter detects whether said sum produced by said adder is less than zero, and if so stores in said index register digital signals representing a value of zero.
- 10. A digital signal processor, comprising
a program control unit fetching a plurality of instructions comprising a program for said digital signal processor, and decoding said instructions by generating command signals controlling operations of other units of said digital signal processor; a register file storing digital data; a shift/logical unit connected to said program control unit and to said register file and responding to command signals to perform digital data processing upon data in said register file, said shift/logical unit comprising: a logic circuit responding to command signals to perform digital data manipulations including AND and exclusive OR operations upon data in said register file, a shifter for barrel shifting digital signals stored in said resister file, and an XOR gate for performing an exclusive OR of a first and a second digital signal respectively selected from digital signals stored in a first and a second register of said register file.
- 11. The digital signal processor of claim 10 wherein said program control unit is responsive to a CRC instruction to perform part of a cyclic redundancy check operation by generating command signals to said register file and to said shift/logical unit. Wherein in response to said CRC instruction,
said XOR gate performs an exclusive OR digital signals selected from said first and second registers, said logic circuit generates a logical AND of digital signals in said first register and digital signals of a predetermined mask, said shifter concatenates digital signals output from said logical unit to digital signals from said second register, and shifts the concatenated string of digital signals by one place, and said register file stores digital signals output from said shifter into said first and said second registers.
- 12. The digital signal processor of claim 11 wherein in further response to said CRC instruction,
said logic circuit generates an exclusive OR of digital signals in said first register and cyclic redundancy check parameter, and stores resulting digital signals in said first register.
- 13. A digital signal processor, comprising
a program control unit fetching a plurality of instructions comprising a program for said digital signal processor, and decoding said instructions by generating command signals controlling operations of other units of said digital signal processor; a digital data bus connected to a digital data memory storing digital data to be manipulated by said digital signal processor, a register file storing digital data; an address generator unit connected to said digital data bus, said register file and to said program control unit and responding to command signals to retrieve and store data from and to said digital data memory to and from said register file via said digital data bus; a shift/logical unit connected to said program control unit and to said register file and responding to command signals to perform digital data processing upon data in said register file, said shift/logical unit comprising: a short adder for computing the absolute value of a difference between the binary value of digital signals stored in a first register of said register file and the binary value of digital signals stored in a second register of said register file, and a shifter shifting digital signals stored in a third register of said register file into a fourth register of said register file, said shifter being connected to said short adder for shifting a number of bits identified by an output of said short adder.
- 14. The digital signal processor of claim 13 wherein said program control unit is responsive to an unpacking instruction to perform part of a variable length code unpacking operation by generating command signals to said register file, address generator unit and shift/logical unit, wherein in response to said unpacking instruction,
said short adder computes the absolute value of the difference between the binary value of digital signals stored in said first register and the binary value of digital signals stored in said second register, and
when the binary value of digital signals stored in said first register is less than or equal to the binary value of digital signals stored in said second register, said short adder stores the absolute value of the difference in said second register, and outputs the digital signals stored in said first register to said shifter, or when the binary value of digital signals stored in said first register is greater than the binary value of digital signals stored in said second register, said short adder stores the absolute value of the difference in said first register, and outputs the digital signals stored in said second register to said shifter; said shifter shifts a number of digital signals stored in said third register into said fourth register, said number being equal to the value output from said short adder.
- 15. The digital signal processor of claim 14 wherein in further response to said unpacking instruction when the binary value of digital signals stored in said first register is less than or equal to the binary value of digital signals stored in said second register,
said address generator unit retrieves digital signals from said digital data memory via said data bus, and stores said digital signals in said third register, and new digital signals are stored in said first register, said new digital signals having a value indicative of the number of digital signals retrieved from memory and stored in said third register.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority under 35 U.S.C. 119(e) to provisional U.S. patent application Ser. No. 60/060,710, which is hereby incorporated by reference herein in its entirety.
Divisions (1)
|
Number |
Date |
Country |
| Parent |
09115187 |
Jul 1998 |
US |
| Child |
09906021 |
Jul 2001 |
US |