Claims
- 1. A method for processing digital signal information using a processor having a first datapath connected in cascade to a second datapath, comprising the steps of:
executing a first SIMD instruction in the first datapath; and executing a second SIMD instruction in the second datapath concurrently with the first SIMD instruction.
- 2. The method of claim 1, wherein the first datapath and the second datapath each includes its own register file.
- 3. The method of claim 2, wherein executing the first SIMD instruction includes loading vector information into the register file of the first datapath.
- 4. The method of claim 2, further comprising the step of transferring the results of an operation performed in the first datapath to the register file of the second datapath.
- 5. The method of claim 4, wherein the results transferred to the register file of the second datapath are operated upon in the second datapath.
- 6. The method of claim 4, wherein the results transferred to the register file of the second datapath are zero-extended or sign-extended to have a bit-length equal to the width of the second datapath.
- 7. The method of claim 2, further comprising the step of transferring results of an operation performed in the second datapath to the register file of the second datapath.
- 8. The method of claim 2, further comprising the step of transferring results of an operation performed in the second datapath to memory.
- 9. The method of claim 2, further comprising the step of transferring results of an operation performed in the second datapath to the register file of the first datapath.
- 10. The method of claim 2, wherein data transferred to memory or to the register file of the first datapath is size reduced.
- 11. The method of claim 10, wherein the size reduction includes at least one of saturation, rounding, truncation, and bit extraction.
- 12. The method of claim 2, wherein at least one of the register files is organized as a plurality of register banks.
- 13. The method of claim 2, wherein at least one of the register files is organized as a wide register.
- 14. The method of claim 2, wherein at least one of the register files is organized as a register file with arbitrary addressing of its elements.
- 15. The method of claim 14, wherein the arbitrary addressing is accomplished using a pointer register having a plurality of pointers, each of the pointers pointing to an element of the register file.
- 16. The method of claim 15, wherein operands of a SIMD instruction are specified using the pointer register.
- 17. The method of claim 15, wherein result data to be stored is specified using the pointer register.
- 18. The method of claim 2, further comprising the steps of:
combining a plurality of values into a single result using dedicated hardware; and placing the single result into a dedicated register.
- 19. The method of claim 1, wherein the width of the first datapath differs from the width of the second datapath.
- 20. The method of claim 19, wherein the width of the first datapath is less than the width of the second datapath.
- 21. The method of claim 20, wherein the width of the first datapath is 16 bits and the width of the second datapath is 40 bits.
- 22. A digital signal processor, comprising:
a first datapath for executing a first SIMD instruction; and a second datapath coupled to the first datapath for executing a second SIMD instruction concurrently with the first SIMD instruction.
- 23. The digital signal processor of claim 22, wherein the first datapath and the second datapath each includes its own register file.
- 24. The digital signal processor of claim 23, wherein vector information is stored in the register file of the first datapath.
- 25. The digital signal processor of claim 23, wherein results of an operation performed in the first datapath are transferred to the register file of the second datapath.
- 26. The digital signal processor of claim 25, wherein the results transferred to the register file of the second datapath are operated upon in the second datapath.
- 27. The digital signal processor of claim 25, wherein the results transferred to the register file of the second datapath are zero-extended or sign-extended to have a bit-length equal to the width of the second datapath.
- 28. The digital signal processor of claim 23, wherein results of an operation performed in the second datapath are placed in the register file of the second datapath.
- 29. The digital signal processor of claim 23, wherein results of an operation performed in the second datapath are transferred to memory.
- 30. The digital signal processor of claim 23, wherein results of an operation performed in the second datapath are transferred to the register file of the first datapath.
- 31. The digital signal processor of claim 23, wherein a size reduction unit is connected to the register file of the second datapath for reducing bit length of data transferred to memory or to the register file of the first datapath.
- 32. The digital signal processor of claim 31, wherein the size reduction unit is configured to perform at least one of saturation, rounding, truncation, and bit extraction.
- 33. The digital signal processor of claim 23, wherein at least one of the register files is organized as a plurality of register banks.
- 34. The digital signal processor of claim 23, wherein at least one of the register files is organized as a wide register.
- 35. The digital signal processor of claim 23, wherein at least one of the register files is organized as a register file with arbitrary addressing of its elements.
- 36. The digital signal processor of claim 35, wherein the arbitrary addressing is accomplished by a using a pointer register having a plurality of pointers, each of the pointers pointing to an element of the register file.
- 37. The digital signal processor of claim 36, wherein operands of a SIMD instruction are specified using the pointer register.
- 38. The digital signal processor of claim 36, wherein result data to be stored is specified using the pointer register.
- 39. The digital signal processor of claim 23, wherein dedicated hardware is used to combine a plurality of values into a single result placed into a dedicated register.
- 40. The digital signal processor of claim 22, wherein the width of the first datapath differs from the width of the second datapath.
- 41. The digital signal processor of claim 40, wherein the width of the first datapath is less than the width of the second datapath.
- 42. The digital signal processor of claim 41, wherein the width of the first datapath is 16 bits and the width of the second datapath is 40 bits.
- 43. A program storage device readable by a machine, tangibly embodying a program of instructions executable on the machine to perform method steps for processing digital signal information using a processor having a first datapath connected in cascade to a second datapath, the method steps comprising:
executing a first SIMD instruction in the first datapath; and executing a second SIMD instruction in the second datapath concurrently with the first SIMD instruction.
- 44. A method for processing vectors, comprising the steps of:
loading a vector; accessing arbitrary portions of the vectors; and performing a specified operation using the accessed portions of the vector.
- 45. A system for processing operations that use data vectors each comprising a plurality of data elements comprising:
a vector data file comprising a plurality of storage elements for storing data elements of the data vectors; a pointer array coupled by a bus to the vector data file, the pointer array including a plurality of entries wherein each entry identifies at least one storage element in the vector data file; and the at least one storage element for storing a least one data element of the data vectors, wherein for a least one particular entry in the pointer array, the at least one storage element identified by the particular entry has an arbitrary starting address in the vector data file.
- 46. A method for processing operations that use data vectors each comprising a plurality of data elements, the method comprising the steps of:
providing a vector data file comprising a plurality of storage elements for storing data elements of the data vectors, and providing a pointer array having a plurality of entries, wherein each entry identifies at least one storage element in the vector data file for storing at lease one data element of the data vectors, wherein for a least one particular entry in the pointer array, the at least one storage element identified by the particular entry has an arbitrary starting address in the vector data file.
- 47. A system for processing operations that use data vectors each comprising a plurality of data elements comprising:
a vector data file comprising a plurality of storage elements for storing data elements of the data vectors; a pointer array coupled by a bus to the vector data file, the pointer array including a plurality of entries wherein each entry identifies at least one storage element in the vector data file; and the at least one storage element for storing at least one data element of the data vectors, wherein for at least one particular entry in the pointer array, the at least one storage element identified by the particular entry has an arbitrary starting address in the vector data file.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 09/514,497 filed Feb. 29, 2000, the disclosure therein in its entirety is incorporated-by-reference herein. This application claims priority benefits to Provisional Application Serial No. 60/391,778 on Jun. 26, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60391778 |
Jun 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09514497 |
Feb 2000 |
US |
Child |
10456793 |
Jun 2003 |
US |