Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
First Claim
1. An apparatus comprising:
- a storage device to store a plurality of programs, and a first and second plurality of ordered execution control blocks, each or said first and second plurality of execution control blocks comprising location information of a corresponding one of said plurality of programs;
a driver program to store said first and second plurality of execution control blocks in said storage device;
an execution control program to cause said plurality of programs to be executed in order in accordance to said first plurality of ordered execution control blocks until a predefined condition is met, then in order in accordance to said second plurality of execution control blocks until an execution control block is reached which instructs the execution control program to return to processing said first plurality of execution control blocks; and
a host and an auxiliary processor both coupled to share said storage device, said host processor to execute said driver program, said auxiliary processor to execute said execution control program and said plurality of programs.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for using a driver program, executing on a host processor, to control the execution of programs on an auxiliary processor is described. The host processor and auxiliary processor share a storage device. In this storage device, the driver program stores a number of ordered execution control blocks, each containing location information of a corresponding program and execution information for controlling the execution flow on the auxiliary processor. An execution control program, executing on the auxiliary processor, processes the execution control blocks in the order maintained by the driver program. The auxiliary processor processes each execution control block and executes its'"'"' corresponding program, taking the action specified by the execution information. In this manner, the driver program indirectly controls the execution of programs on the auxiliary processor.
38 Citations
28 Claims
-
1. An apparatus comprising:
-
a storage device to store a plurality of programs, and a first and second plurality of ordered execution control blocks, each or said first and second plurality of execution control blocks comprising location information of a corresponding one of said plurality of programs; a driver program to store said first and second plurality of execution control blocks in said storage device; an execution control program to cause said plurality of programs to be executed in order in accordance to said first plurality of ordered execution control blocks until a predefined condition is met, then in order in accordance to said second plurality of execution control blocks until an execution control block is reached which instructs the execution control program to return to processing said first plurality of execution control blocks; and a host and an auxiliary processor both coupled to share said storage device, said host processor to execute said driver program, said auxiliary processor to execute said execution control program and said plurality of programs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-implemented method comprising:
-
storing a first and second plurality of execution control blocks in a storage device responsive to executing a driver program on a host processor, each execution control block in said first and second plurality of execution control blocks containing location information of at least one of a plurality of programs, said first and second plurality of execution control blocks each having an order; executing programs from said plurality of programs on an auxiliary processor in accordance with said order of said first plurality of execution control blocks until a predetermined interrupt, wherein said storage device is shared by said host and auxiliary processor; and executing programs from said plurality of programs on said auxiliary processor in accordance with said order of said second plurality of execution control blocks until an execution control block is reached which indicates said auxiliary processor is to return to processing said first plurality of execution control blocks. - View Dependent Claims (17, 18, 19)
-
-
20. A machine readable medium having stored thereon data representing a set of one or more sequences of instructions, which when executed by an auxiliary processor, cause said auxiliary processor to perform the following:
-
retrieving a first and second plurality of execution control blocks from a storage device, said first and second plurality of execution control blocks each having been stored in a manner indicating an order by a host processor executing a driver program, each execution control block of said first and second plurality of execution control blocks comprising location information of at least one of a plurality of programs; executing programs of said plurality of programs on said auxiliary processor in accordance with said order of said first plurality of execution control blocks until a predetermined interrupt, each program in said plurality of programs including one or more sequences of executable instructions, wherein said storage device is shared by said host and auxiliary processor; and executing programs of said plurality of programs on said auxiliary processor in accordance with said order of said second plurality of execution control blocks until a control block is reached which indicates said auxiliary processor is to return to processing said first plurality of execution control blocks. - View Dependent Claims (21, 22)
-
-
23. An apparatus comprising:
-
a host and auxiliary processor coupled to share a memory, wherein said auxiliary processor is for video processing of a screen display; said memory to store a plurality of programs, and a first and second plurality or ordered execution control blocks, each of said first and second plurality of execution control blocks comprising location information of a corresponding one of said plurality of programs, each of said ordered execution control blocks including execution information indicating one of a plurality of states, said plurality of states including a wait state, a continue state, and a return state; a driver program, for execution by said host processor, to store said first and second plurality of execution control blocks in said storage device; an execution control program, for execution by said auxiliary processor, to cause programs of said plurality of programs to be executed in order in accordance to said first plurality of ordered execution control blocks until one or a horizontal and vertical blank interrupt, then in order in accordance to said second plurality of ordered execution control blocks until an execution control block is reached whose execution information indicates a return state instructing said execution control program to return to processing said first plurality of ordered execution control blocks, said wait state to indicate said auxiliary processor should pause execution of said execution control program, said continue state to indicate said auxiliary processor should continue execution of said execution control program. - View Dependent Claims (24, 25, 26)
-
-
27. An apparatus comprising:
-
a storage device to store one or more sequences of executable instructions corresponding to a first plurality of programs to be executed, and a first plurality of ordered execution blocks corresponding it said first plurality of programs, each of said first plurality of execution control blocks comprising location information of said corresponding one of said first plurality of programs in said storage device; a driver program to generate and store said first plurality of corresponding execution control blocks in said storage device; an execution control program to cause said first plurality of programs to be executed in order in accordance with said first plurality of ordered execution control blocks; and a host and an auxiliary processor both coupled to said storage device, said host processor to execute said driver program, said auxiliary processor to execute said execution control program and said first plurality of programs.
-
-
28. A machine-readable medium having stored thereon data representing a set of one or more sequences of instructions, which when executed by an auxiliary processor, cause said auxiliary processor to perform the following:
-
retrieving a plurality of execution control blocks from a storage device, said plurality of execution control blocks each having been generated and stored in an order by a host processor executing a driver program, each of said plurality of execution control blocks comprising location information of at least one of a plurality of programs; and executing programs of said plurality of programs on said auxiliary processor in accordance with said order of said plurality of execution control blocks, each program in said plurality of programs including one or more sequences of executable instructions, wherein said storage device is shared by said host and auxiliary processor.
-
Specification