Claims
- 1. A multiple execution unit processor, the processor comprising:
a memory unit storing a multiplicity of execution packets; a buffer storage unit for storing a plurality of execution packets; a dispatch unit for directing each instruction of an execution packet applied thereto to an preselected execution unit; and a program memory control unit for retrieving an execution packet from the memory unit, the program memory control 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 execution packet and any corresponding execution packet stored in the buffer storage unit are applied to the dispatch unit simultaneously, the program memory control unit having a second state wherein corresponding execution packets stored in the buffer storage unit are simultaneously applied to the dispatch unit, the program memory control unit having a third state wherein after the earliest stored execution packets in the buffer storage unit are eliminated after each application to the crossbar unit, the program memory control unit responding a interrupt signal by masking the interrupt signal when a software pipeline procedure is being implemented, the response of the program memory control unit to the masked interrupt signal is to complete the software pipeline loop procedure and removing the mask from interrupt signal in response to a first set of conditions, the response of the program memory control unit suspending operation of the software pipeline unit and removing the mask of the interrupt signal in response to the second set of conditions.
- 2. The processor as recited in claim 1 wherein the program memory control unit can operate in a fifth state, the fifth state permitting the execution of an epilog of a first software pipeline program and a prolog of a second software pipeline program to overlap.
- 3. The processor as recited in claim 1 wherein the program memory controller can operate in a fourth state, the fourth state permitting an early exit from the prolog state in response to a preselected condition.
- 4. The processor as recited in claim 1 wherein the masked interrupt signal is generated when an interrupt signal is generated and a software pipeline procedure is active.
- 5. The processor as recited in claim 4 wherein when the masked interrupt signal is generated, the software pipeline procedure is completed in when the masked interrupt is generated and the software pipeline is in an epilog state or is in an early exit state.
- 6. The processor as recited in claim 1 wherein, when the software pipeline loop procedure is in the prolog state, the software pipeline procedure will be completed when a predetermined portion of the software pipeline loop procedure has been completed.
- 7. The processor as recited in claim 1 further comprising:
a latch unit for storing an interrupt signal; and a program memory controller, the program memory controller retrieving instructions from the memory, the program memory controller distributing the retrieved instructions, the program memory controller responsive to the stored interrupt signal for preventing a second execution of instruction during a restart of the software pipeline procedure of an instruction that is labeled as an execute-once instruction.
- 8. The processor as recited in claim 1 wherein an instruction is labeled an execute once instruction by a mask instruction in the same execute packet as the execute-once instruction.
- 9. A method for preparing for the servicing of an interrupt signal by a program memory controller unit when the program memory controller unit is implementing a software pipeline procedure, the method comprising:
when the program memory controller unit is in a prolog state, completing the filling of a buffer storage unit with instruction stages; when the prolog state is complete, freezing the predicate register, restoring and freezing the initial address of the instruction set for the software pipeline procedure in the program counter; entering a special epilog state for draining the instruction stages in the buffer storage unit without parallel processing of the instruction set; and when the special epilog state is complete, providing an indicia that the program memory controller unit is ready for the interrupt identified by the interrupt signal to be processed.
- 10. The method as recited in claim 9 further comprising:
when the program memory controller is in a kernel state, completing execution of the instruction stages in the buffer storage unit currently being processed; after completion of the processing of the instruction stages currently being processed, freezing the termination condition register, restoring and freezing the initial address of the instruction set for the software pipeline loop procedure in the program counter; and continuing by entering the special epilog state.
- 11. The method as recited in claim 10 further comprising:
when the program memory controller unit is in the epilog state, completing the epilog state; and when the epilog state is complete, freezing the program counter and providing an indicia that the program memory controller unit is ready for the processing of the interrupt identified by the interrupt signal.
- 12. The method as recited in claim 10 further comprising:
when the interrupt has been processed, resuming processing at a location in the software pipeline loop program identified by the termination control register.
- 13. The method as recited in claim 1 wherein, in presence of a masked interrupt signal, when the software pipeline loop procedure meets a predetermined criterion, finishing the execution in the prolog state and in the kernel state.
- 14. A data processing unit comprising:
a central processing unit, the central processing unit including a plurality of execution units; at least one memory unit storing a multiplicity of execution packets; a data memory controller unit; a buffer storage unit for storing a plurality of execution packets; a dispatch unit coupled to the buffer storage unit for directing each instruction stage applied to the dispatch unit to an preselected execution unit; and a program memory control unit having a program counter, the program memory controller unit retrieving an execution packet identified by the program counter from the at least one 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 being applied to the dispatch buffer unit being stored therein, wherein in the first state the retrieved execution packet and any execution packet stored in the buffer storage unit are applied to the dispatch unit simultaneously, the program control memory unit having a second state wherein corresponding execution packets in sequential instruction packets in the buffer storage unit are simultaneously applied to the dispatch unit, the program memory controller unit having a third state wherein after each earliest stored execution packet in the buffer storage unit is eliminated after application to the dispatch crossbar unit, the program memory controller unit having a fourth state for preparing the program memory controller unit to process an interrupt signal.
- 15. The data processing unit as recited in claim 14 wherein the first state is a prolog state in a software pipeline procedure, the second state being a kernel state in a software pipeline procedure, the third state being an epilog state, and the fourth state being an epilog special state wherein the execution packets from the buffer storage unit are drained form the buffer storage unit without execution.
- 16. The data processing as recited in claim 14 wherein, when an interrupt signal is generated and the software pipeline loop procedure is active, the interrupt signal will be masked.
- 17. The data processing unit as recited in claim 14 the memory controller unit includes a termination condition register, the termination condition register determining the number of repetitions of the execution of for the first instruction stage, wherein the terminal condition register is frozen when the software pipeline procedure is suspended.
- 18. The data processing unit as recited in claim 15 wherein the software pipeline loop procedure in the prolog stage and the kernel stage can be completed during a masked interrupt signal in response to predetermined conditions in the status of the software pipeline loop procedure.
- 19. The data processing unit as recited in claim 15 wherein the software pipeline loop procedure is completed in the presence of a masked interrupt signal when the interrupt signal is identified in the epilog state and the early exit state.
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 Ser. No. ______ (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 Ser. No. ______ (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 Ser. No. ______ (Attorney Docket TI-34337) entitled APPARATUS AND METHOD FOR EXECUTING A NESTED LOOP PROGRAM WITH A SOFTWARE PIPELINE LOOP PROCEDURE IN A DIGITAL SIGNAL PROCESSOR, invented by Eric J. Stotzer and Michael D. Asal, filed on even date herewith, and assigned to the assignee of the present application: U.S. patent application Ser. No. ______ (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 Eric J. Stotzer and Michael D. Asal, filed on even date herewith, and assigned to the present application; and U.S. patent application Ser. No. ______ (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 |