Claims
- 1. A multiple execution unit processor, the processor comprising:
a memory unit storing a plurality of execution packets; a buffer storage unit for storing the execution packets; a dispatch unit for directing each instruction of and execution packet applied thereto to an preselected execution unit; and a program memory control unit for retrieving execution packets from the memory unit, the program memory unit having a first state wherein an execution packet from the memory unit is applied to the dispatch unit and to the buffer storage unit, the execution packet applied to the execution unit being stored therein, wherein in the first state the retrieved instruction stage and any instruction stage stored in the buffer storage unit are applied to the dispatch unit simultaneously, the program control memory unit having a second state wherein the execution packets stored in the buffer storage unit are simultaneously applied to the dispatch unit, the program control memory unit having a third state implemented after a selected execution packet has been executed a predetermined number of times, wherein in the third state after the earliest stored execution packet in the buffer storage unit is eliminated after each application of the stored execution packets to the crossbar unit, wherein the processor uses the three instruction states to executes an inner loop of a nested-loop instruction set.
- 2. The processor as recited in claim 1 wherein the program memory control unit can operate in a fourth state, the fourth state permitting the execution of an epilog of an execution of the inner instruction set, the outer instruction set and the next execution of the inner instruction set to overlap.
- 3. The processor as recited in claim 1 wherein the execution of the nested-loop instruction set includes executing an outer loop of instruction stages a second predetermined number of times, the execution of the nested instruction set including executing the inner loop instruction set a predetermined number of times for each execution of the outer instruction set.
- 4. The processor as recited in claim 3 wherein the inner loop execution packets are stored in the buffer storage unit during execution of the outer loop instruction stages.
- 5. The processor as recited in claim 4 further comprising a second buffer storage unit, wherein the outer loop instruction stages are stored in the second buffer storage unit.
- 6. A method of executing a nested-loop set of instruction stages, the execution including the execution of outer loop instruction stages a first plurality of times, the execution of the nested loop of instructions including execution of inner loop instruction stages a second plurality of times for each execution of the outer loop of instruction stages, the method comprising:
using a software pipeline procedure to execute the inner loop instruction stages for each execution of the inner loop instructions the second plurality of times.
- 7. The method as recited in claim 9 further comprising:
storing the inner loop instruction stages in a buffer storage unit during the execution of the outer loop instruction set.
- 8. The method as recited in claim 7 further comprising:
storing the outer loop instruction stages in a buffer memory unit during execution of the inner loop instruction stages.
- 9. The method as recited in claim 8 wherein storing the outer loop instruction stage includes executing the outer loop instruction stages in a new sequence, the outer loop instruction stages executed after execution of the inner loop instruction stages being executed in the sequence before the execution of the outer loop instruction stages executed before the execution of the inner loop instruction stages in the new sequence.
- 10. The method as recited in claim 6 further comprising;
overlapping execution of the epilog of the inner loop instruction set and the execution of the outer loop instruction stages.
- 11. The method as recited in claim 6 comprising:
overlapping the execution of the prolog of an inner loop instruction set with execution of the outer loop instruction set.
- 12. A digital signal processor, the processor executing nested loop instructions stages, the nested loop instruction stages including a set of outer instruction stages and a set of inner instruction stages, the processor comprising:
multiple execution units; and a program controller unit, the program controller unit capable of performing a software pipeline loop procedure, the program controller unit including: a buffer memory unit, the buffer memory unit storing instruction stages during a prolog state of the program controller unit; a sequential register file for storing a indicia indicating the presence of an instruction stored in a location in the buffer storage unit, the location of a stored instruction in the buffer memory unit corresponding to a location of the indicia in the sequential register file, the indicia determining to which execution unit the instruction is to be directed; wherein the buffer memory unit stores the execution packets for the inner instruction set stages during execution of the outer instruction set.
- 13. The processor as recited in claim 12 wherein the program memory controller includes a second buffer storage unit, the second buffer storage unit storing the outer instruction stages during execution of the inner instruction stages.
- 14. The processor as recited in claim 12 wherein the out instruction set is stored in sequential order, the post inner nested loop outer loop instruction being stored first, the per inner nested loop outer nest loop instructions be stored next.
- 15. The processor as recited in claim 12 wherein execution of the epilog of the inner and execution of the outer loop instruction stages can overlap.
- 16. the processor as recited in claim 12 wherein the execution of the outer loop instruction set and the execution of the inner loop instruction set overlap.
RELATED APPLICATION
[0001] This application claims priority from provisional patent application No. 60/342,706 entitled APPARATUS AND METHOD FOR A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Eric J. Stotzer, Steve D. Krueger, and Timothy D. Anderson, filed on Dec. 20, 2001, and assigned to the assignee of the present Application: and provisional patent application No. 60/342,728 entitled APPARATUS AND METHOD FOR IMPROVED EXECUTION OF A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Timothy D. Anderson, Michael D. Asal, and Eric J. Stotzer, filed on Dec. 20, 2001, and assigned to the assignee of the present Application:
[0002] U.S. patent application Ser. No. 09/855,140 (Attorney Docket TI-25737) entitled LOOP CACHE MEMORY AND CACHE CONTROLLER FOR PIPELINED MICROPROCESSORS, invented by Richard H. Scales, filed on May 14, 2001, and assigned to the assignee of the present Application: U.S. patent application (Attorney Docket TI-33895), entitled APPARATUS AND METHOD FOR A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Eric J. Stotzer, Steve D. Krueger, and Timothy D. Anderson, filed on even date herewith, and assigned to the assignee of the present Application: U.S. patent application (Attorney Docket TI-33896), entitled APPARATUS AND METHOD FOR IMPROVED EXECUTION OF A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Timothy D. Anderson, Michael D. Asal, and Eric J. Stotzer, filed on even date herewith, and assigned to the assignee of the present Application: U.S. patent application (Attorney Docket TI-34336), entitled APPARATUS AND METHOD FOR PROCESSING AN INTERRUPT IN A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Eric J. Stotzer, Steve D. Krueger, Timothy D. Anderson, and Michael D. Asal filed on even date herewith, and assigned to the assignee of the present Application: and U.S. patent application (Attorney Docket TI-34565), entitled APPARATUS AND METHOD FOR RESOLVOING AN INSTRUCTION CONFLICT IN A SOFTWARE PIPELINE NESTED LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Michael D. Asal and Eric J. Stotzer, filed on even date herewith, and assigned to the assignee of the present application; U.S. patent application (Attorney Docket TI-34335) entitled APPARATUS AND METHOD FOR EXITING FROM A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Elana D Granston, Eric J. Stotzer Steve D. Krueger, and Timothy D. Anderson, filed on even date herewith and assigned to the assignee of the present application are related applications.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60342706 |
Dec 2001 |
US |
|
60342728 |
Dec 2001 |
US |