DISPATCH MECHANISM FOR DISPATCHING INSTURCTIONS FROM A HOST PROCESSOR TO A CO-PROCESSOR
First Claim
1. A method for dispatching instructions of an executable image from a host processor to a heterogeneous co-processor in a multi-processor system, wherein said host processor and said heterogeneous co-processor have different instruction sets, the method comprising:
- writing, by said host processor, an address of instructions of said executable image to a designated portion of memory;
detecting, by said co-processor, said address of said instructions in the designated portion of memory; and
executing, by said co-processor, said instructions.
10 Assignments
0 Petitions
Accused Products
Abstract
A dispatch mechanism is provided for dispatching instructions of an executable from a host processor to a heterogeneous co-processor. According to certain embodiments, cache coherency is maintained between the host processor and the heterogeneous co-processor, and such cache coherency is leveraged for dispatching instructions of an executable that are to be processed by the co-processor. For instance, in certain embodiments, a designated portion of memory (e.g., “UCB”) is utilized, wherein a host processor may place information in such UCB and the co-processor can retrieve information from the UCB (and vice-versa). The UCB may thus be used to dispatch instructions of an executable for processing by the co-processor. In certain embodiments, the co-processor may comprise dynamically reconfigurable logic which enables the co-processor'"'"'s instruction set to be dynamically changed, and the dispatching operation may identify one of a plurality of predefined instruction sets to be loaded onto the co-processor.
126 Citations
25 Claims
-
1. A method for dispatching instructions of an executable image from a host processor to a heterogeneous co-processor in a multi-processor system, wherein said host processor and said heterogeneous co-processor have different instruction sets, the method comprising:
-
writing, by said host processor, an address of instructions of said executable image to a designated portion of memory; detecting, by said co-processor, said address of said instructions in the designated portion of memory; and executing, by said co-processor, said instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for issuing instructions of an executable file for processing by a co-processor, the method comprising:
-
monitoring, by the co-processor, an issue memory structure; writing, by a host processor, to a command memory structure an address of instructions of the executable file to be processed by the co-processor; writing, by the host processor, a predefined value to the issue memory structure for triggering processing of the instructions; and responsive to detecting said predefined value in the issue memory structure, said co-processor processing the instructions of the executable file. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method comprising:
-
processing instructions of an executable image by a multi-processor system that comprises a host processor having a first instruction set and a heterogeneous co-processor having a second instruction set that is different than said first instruction set, wherein the executable image comprises at least one segment of instructions for the first instruction set and at least one segment of instructions for the second instruction set; maintaining cache coherency between the at least one host processor and the at least one heterogeneous co-processor; writing to a command memory structure, by the host processor, a virtual address of a first instruction of the at least one segment of instructions for the second instruction set; and triggering the co-processor to begin execution of said at least one segment of instructions for the second instruction set at the virtual address by said host processor writing a value to an issue memory structure. - View Dependent Claims (19, 20)
-
-
21. A multi-processor system comprising:
-
a plurality of processors comprising at least a host processor and a heterogeneous co-processor, wherein the host processor and heterogeneous co-processor each process a portion of instructions of an executable file; a command memory structure to which said host processor identifies instructions of the executable file that are to be processed by the co-processor; and an issue memory structure that indicates which of said plurality of processors possesses ownership of said command memory structure. - View Dependent Claims (22, 23, 24)
-
-
25. A multi-processor system comprising:
-
at least one host processor having a first instruction set and comprising a first main memory; at least one heterogeneous co-processor having a second instruction set that is different than said first instruction set and comprising a second main memory, wherein said first main memory and said second main memory are in a common global physical memory space; said at least one host processor and said at least one heterogeneous co-processor each comprising a respective local cache, wherein cache coherency is maintained between the at least one host processor and at least one heterogeneous co-processor; and a designated portion of at least one of said first main memory and said second main memory to which the at least one host processor stores identification of instructions of an executable for processing by said at least one heterogeneous co-processor.
-
Specification