Claims
- 1. A programmable system-on-a-chip controller comprising:
at least one interface module configured to receive data from or send data to an external device; at least one data bus in communication with the at least one interface module; a first processor module, in communication with the at least one data bus, configured to provide control processing and a first portion of image processing of the data received from the external device; and a second processor module, in communication with the at least one data bus, configured to provide a second portion of image processing of the data received from the external device.
- 2. The controller of claim 1, wherein the at least one interface module comprises a third processor in communication with the first processor, the third processor configured to provide I/O functionality.
- 3. The controller of claim 2, wherein the third processor provides I/O functionality for controlling the external device.
- 4. The controller of claim 3, wherein the I/O functionality controls at least one of a printer, a printer feed motor, carrier motor, position sensor, and a print head.
- 5. A method of formatting data in a local memory of a digital signal processor for use by a plurality of data processing paths comprising the steps of:
receiving data from a first external data location in a first format or a second format; storing the data in the local memory in a row configuration when the data is received in the first format, the data stored in the row configuration being accessible by each respective data processing path sequentially; and storing the data in the local memory in a column configuration when the data is received in the second format, the data stored in the column configuration being accessible by a respective one of the plurality of the data processing paths in parallel.
- 6. The method of claim 5, wherein the step of receiving data comprises receiving data from a first external data source selected from the group consisting of a camera, a scanner, a printer, a fax modem, a parallel flash memory, a serial flash memory, a DRAM, a universal serial bus host, a network device, and an IEEE 1394 device.
- 7. The method of claim 5, wherein the received data is stored in both the row configuration and the column configuration in the local memory.
- 8. The method of claim 5, wherein the step of receiving data from an external data location comprises receiving data through a direct memory access module.
- 9. The method of claim 8, where the step of receiving data further comprises receiving data by at least one of inverting, byte swapping, and word swapping.
- 10. The method of claim 5 further comprising the step of formatting the data, by the direct memory access module, in either the first format or the second format.
- 11. The method of claim 10 wherein the step of formatting the data comprises setting a bit field by a programmer, the bit field being indicative of whether to format the data in the first format or the second format.
- 12. The method of claim 5 further comprising the step of transferring a portion of the data stored in the row configuration to a single one of the plurality of data paths during a clock cycle.
- 13. The method of claim 12 further comprising the step of repeating the step of transferring a portion of the data stored in the row configuration to a single one of the plurality of data paths during a clock cycle for each of the plurality of data processing paths.
- 14. The method of claim 13 further comprising the step of processing, by each of the data processing paths, the data in each of the plurality of processing paths to thereby generate processed data.
- 15. The method of claim 14, wherein the step of processing comprising processing the data in a size selected from the group consisting of byte, word, and longword.
- 16. The method of claim 14 further comprising the step of updating at least one address register associated with each respective data processing path.
- 17. The method of claim 16, wherein the step of updating comprising incrementing or decrementing at least one address register associated with each respective data processing path by a size selected from the group consisting of a byte, a word, and a longword.
- 18. The method of claim 14 further comprising the step of transferring the processed data to a second external data location in either the first format or the second format.
- 19. The method of claim 5 further comprising the step of transferring a portion of the data stored in each respective column of the column configuration to a corresponding data processing path of the plurality of data processing paths in parallel during a clock cycle.
- 20. The method of claim 19 further comprising the step of processing, by each data processing paths, the data received from the respective column of the column configuration.
- 21. The method of claim 20, wherein the step of processing comprises processing the data in a size selected from the group consisting of a byte, a word, and a longword.
- 22. The method of claim 20 further comprising the step of updating at least one address register associated with each respective data processing path.
- 23. The method of claim 22, wherein the step of updating comprises incrementing or decrementing at least one address register associated with each respective data processing path by a size selected from the group consisting of a byte, a word, and a longword.
- 24. The method of claim 20 further comprising the step of transferring the processed data to a second external data location in either the first format or the second format.
- 25. The method of claim 5, wherein the step of receiving data from an external location comprises receiving data from an external location in a longword size.
- 26. The method of claim 5 further comprising the steps of broadcasting the data to the local memory when the data is received in the first format; and storing the broadcast data in the local memory in the column configuration.
- 27. A method of processing data by a digital signal processor comprising the steps of:
fetching a single fixed-length instruction word, the instruction word comprising at least two independent instructions; decoding the instruction word to generate an operation instruction and an I/O instruction, the I/O instruction being disposed in an unused bit field of the operation instruction; and issuing the operation instruction and I/O instruction in parallel.
- 28. The method of claim 27 further comprising the step of encoding a fixed-length instruction word, the instruction word comprising the operation instruction and the I/O instruction.
- 29. The method of claim 27, wherein the T/O instruction is at least one of a read instruction and a write instruction.
- 30. The method of claim 27 further comprising the step of stalling the execution of the operation instruction when data to be processed by the operation instruction is not available.
- 31. A digital signal processor core comprising:
a crossbar switch; a local memory in communication with the crossbar switch, the local memory being configured to store data received from an external memory in a first format or a second format, the first format being a row format and the second format being a column format; and a plurality of data processing paths in communication with the crossbar switch, each one of the plurality of data processing paths being able to sequentially access any portion of the local memory when the data is stored in the first format or a respective subset of the local memory in parallel when the data is stored in the second format via the crossbar switch.
- 32. The digital signal processor of claim 31 further comprising a direct memory access module in communication with the local memory configured to format the data to be stored in the local memory in either the first format or the second format.
- 33. The digital signal processor of claim 31 further comprising at least one address register unit associated with each of a respective one of the plurality of data processing paths.
- 34. The digital signal processor of claim 33, wherein each of the address registers comprises a local memory address of data to be processed by the respective data processing path.
- 35. The digital signal processor of claim 35, wherein the at least one address register is configured to be incremented by a data size selected from the group consisting of a byte, a word, and a longword.
- 36. The digital signal processor of claim 31 further comprising a decode module in communication with the plurality of data processing paths, the decode module being configured to decode an instruction word into an operation instruction and an I/O instruction.
- 37. The digital signal processor of claim 36, wherein the I/O instruction is disposed in an unused bit field of the operation instruction.
- 38. The digital signal processor of claim 31, wherein each of the plurality of data processing paths comprises a register file module, an extractor module, a multiplier module, an arithmetic logic unit module, and an inserter module, each of the modules being configured to provide data processing on the data stored in the local memory.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application Serial No. 60/302,138, filed on Jun. 28, 2001, the entire disclosure of which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60302138 |
Jun 2001 |
US |