Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
First Claim
1. A system comprising:
- a manufactured processor element having a fixed instruction set that defines instructions that the processor element can execute and that is not modifiable by a consumer, and a reconfigurable co-processor, wherein said processor element is not designed to natively offload to said reconfigurable co-processor instructions of an executable file that is running on the processor element;
said reconfigurable co-processor comprising reconfigurable logic that is reconfigurable to have an entirety of any one of a plurality of predefined extended instruction sets for extending the fixed instruction set of the processor element for processing instructions of an executable file, each of said plurality of predefined extended instruction sets defining a plurality of instructions that the reconfigurable co-processor can execute, wherein said plurality of instructions comprise extended instructions that are not natively defined by the fixed instruction set of the processor element, and wherein the extended instruction sets are not embedded within said executable file;
said processor element comprises a first instruction decode logic that is operable to decode instructions of the executable file that are defined by the processor element'"'"'s fixed instruction set for execution by the processor element; and
wherein the reconfigurable co-processor comprises a second instruction decode logic that is operable to decode instructions of the executable file that are defined by the extended instruction set that the reconfigurable co-processor is configured to have for execution by the reconfigurable co-processor;
said reconfigurable co-processor sharing a common virtual and physical address space with said processor element; and
a global shared, cache coherent physical address space, whereby the processor element comprises a physical memory and a cache, and whereby the co-processor comprises a physical memory and a cache, and wherein data contained in the processor element'"'"'s cache and the co-processor'"'"'s cache are maintained in a cache coherent state.
10 Assignments
0 Petitions
Accused Products
Abstract
A multi-processor system comprises at least one host processor, which may comprise a fixed instruction set, such as the well-known x86 instruction set. The system further comprises at least one co-processor, which comprises dynamically reconfigurable logic that enables the co-processor'"'"'s instruction set to be dynamically reconfigured. In this manner, the at least one host processor and the at least one dynamically reconfigurable co-processor are heterogeneous processors having different instruction sets. Further, cache coherency is maintained between the heterogeneous host and co-processors. And, a single executable file may contain instructions that are processed by the multi-processor system, wherein a portion of the instructions are processed by the host processor and a portion of the instructions are processed by the co-processor.
-
Citations
26 Claims
-
1. A system comprising:
-
a manufactured processor element having a fixed instruction set that defines instructions that the processor element can execute and that is not modifiable by a consumer, and a reconfigurable co-processor, wherein said processor element is not designed to natively offload to said reconfigurable co-processor instructions of an executable file that is running on the processor element; said reconfigurable co-processor comprising reconfigurable logic that is reconfigurable to have an entirety of any one of a plurality of predefined extended instruction sets for extending the fixed instruction set of the processor element for processing instructions of an executable file, each of said plurality of predefined extended instruction sets defining a plurality of instructions that the reconfigurable co-processor can execute, wherein said plurality of instructions comprise extended instructions that are not natively defined by the fixed instruction set of the processor element, and wherein the extended instruction sets are not embedded within said executable file; said processor element comprises a first instruction decode logic that is operable to decode instructions of the executable file that are defined by the processor element'"'"'s fixed instruction set for execution by the processor element; and
wherein the reconfigurable co-processor comprises a second instruction decode logic that is operable to decode instructions of the executable file that are defined by the extended instruction set that the reconfigurable co-processor is configured to have for execution by the reconfigurable co-processor;said reconfigurable co-processor sharing a common virtual and physical address space with said processor element; and a global shared, cache coherent physical address space, whereby the processor element comprises a physical memory and a cache, and whereby the co-processor comprises a physical memory and a cache, and wherein data contained in the processor element'"'"'s cache and the co-processor'"'"'s cache are maintained in a cache coherent state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method comprising:
-
initiating an executable file for processing instructions of the executable file by a system, wherein the system comprises at least one host processor having a first instruction decode logic and an instruction set that defines instructions that the first instruction decode logic can decode for execution by the at least one host processor, and the system further comprising at least one dynamically reconfigurable co-processor having a second instruction decode logic, wherein said at least one host processor comprises a manufactured host processor haying a fixed instruction set that is not modifiable by a consumer, and wherein said at least one dynamically reconfigurable co-processor is not implemented on a same integrated circuit as said manufactured host processor; determining one of a plurality of fixed instruction set images to load to said at least one dynamically reconfigurable co-processor for processing a portion of the instructions of the executable file, wherein the determined instruction set image defines an instruction set having a plurality of instructions that the second instruction decode logic can decode for execution by the dynamically reconfigurable co-processor, and wherein said plurality of instructions of the determined instruction set image comprise extended instructions that are not natively defined by the instruction set of the at least one host processor, and wherein the determined instruction set image is not embedded within the executable file; when determined that the determined instruction set image is not present on the dynamically reconfigurable co-processor, loading the determined instruction set image in its entirety from persistent storage to the dynamically reconfigurable co-processor; and processing, by the system, the instructions of the executable file, wherein a first portion of the instructions of the executable file that are defined by the instruction set of the at least one host processor is decoded by the first instruction decode logic and processed by the at least one host processor and a second portion of the instructions of the executable file comprising one or more of said extended instructions defined by the determined instruction set image is decoded by the second instruction decode logic and processed by the at least one dynamically reconfigurable co-processor, wherein said processing of said second portion of the instructions by the at least one dynamically reconfigurable co-processor does not require determining on an instruction-by-instruction basis whether the dynamically reconfigurable co-processor is configured with an instruction set that defines said instructions of said second portion, and wherein said at least one host processor is not designed to natively offload said second portion of instructions in said executable file executing on said at least one host processor to said at least one dynamically reconfigurable co-processor for processing. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
Specification