Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
First Claim
1. A method for processing data comprising:
- initiating an executable file on a manufactured host processor of a system, said manufactured host processor having a predefined instruction set that is fixed such that it is not modifiable by a consumer, wherein the executable file contains native instructions that are natively supported by the host processor'"'"'s predefined instruction set and extended instructions that are not natively supported by the host processor'"'"'s predefined instruction set, wherein said extended instructions are present in the executable file as data to be stored to a memory by one or more of said native instructions;
configuring an application engine of a co-processor of the system, at system run-time, to fully possess a selected one of a plurality of different application-specific personalities, wherein the co-processor has an existing virtual memory and instruction decode infrastructure that is common across all of the plurality of different application-specific personalities, and wherein each of the plurality of different application-specific personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the fixed instruction set of the host processor; and
processing the instructions of the executable file, wherein said native instructions of the executable file are processed by the host processor and said extended instructions of the executable file are processed by the co-processor, and wherein said host processor unknowingly dispatches said extended instructions of the executable file to the co-processor as a result of executing one or more native instructions of the executable file for writing the extended instructions to a designated portion of said memory that is accessible by said co-processor.
11 Assignments
0 Petitions
Accused Products
Abstract
A co-processor is provided that comprises one or more application engines that can be dynamically configured to a desired personality. For instance, the application engines may be dynamically configured to any of a plurality of different vector processing instruction sets, such as a single-precision vector processing instruction set and a double-precision vector processing instruction set. The co-processor further comprises a common infrastructure that is common across all of the different personalities, such as an instruction decode infrastructure, memory management infrastructure, system interface infrastructure, and/or scalar processing unit (that has a base set of instructions). Thus, the personality of the co-processor can be dynamically modified (by reconfiguring one or more application engines of the co-processor), while the common infrastructure of the co-processor remains consistent across the various personalities.
-
Citations
44 Claims
-
1. A method for processing data comprising:
-
initiating an executable file on a manufactured host processor of a system, said manufactured host processor having a predefined instruction set that is fixed such that it is not modifiable by a consumer, wherein the executable file contains native instructions that are natively supported by the host processor'"'"'s predefined instruction set and extended instructions that are not natively supported by the host processor'"'"'s predefined instruction set, wherein said extended instructions are present in the executable file as data to be stored to a memory by one or more of said native instructions; configuring an application engine of a co-processor of the system, at system run-time, to fully possess a selected one of a plurality of different application-specific personalities, wherein the co-processor has an existing virtual memory and instruction decode infrastructure that is common across all of the plurality of different application-specific personalities, and wherein each of the plurality of different application-specific personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the fixed instruction set of the host processor; and processing the instructions of the executable file, wherein said native instructions of the executable file are processed by the host processor and said extended instructions of the executable file are processed by the co-processor, and wherein said host processor unknowingly dispatches said extended instructions of the executable file to the co-processor as a result of executing one or more native instructions of the executable file for writing the extended instructions to a designated portion of said memory that is accessible by said co-processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for processing data comprising:
-
at least one manufactured host processor having a predefined instruction set that is fixed such that it is not modifiable by a consumer; a co-processor comprising; at least one application engine having at least one configurable function unit that is configurable at system run-time to fully possess any of a plurality of different application-specific personalities, wherein each of the plurality of different application-specific personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the instruction set of the host processor, and a virtual memory and instruction decode infrastructure common to all the plurality of different application-specific personalities; and wherein said manufactured host processor and said co-processor are operable to execute an executable file that contains both native instructions that are natively supported by the host processor'"'"'s instruction set and extended instructions that are not natively supported by the host processor'"'"'s instruction set, wherein said extended instructions are present in the executable file as data to be written to a memory by one or more of said native instructions, whereby said native instructions of the executable file are processed by the host processor and said host processor unknowingly dispatches extended instructions of the executable file to the co-processor for processing as a result of said host processor executing one or more native instructions of the executable file for writing the extended instructions to a designated portion of said memory that is accessible by said co-processor. - View Dependent Claims (13, 14)
-
-
15. A co-processor comprising:
-
a system interface infrastructure for interfacing with a manufactured host processor that has a predefined instruction set that is fixed such that the predefined instruction set is not modifiable by a consumer, at least one application engine having at least one configurable function unit that is configurable at system run-time to fully possess any of a plurality of different, mutually-exclusive application-specific vector processing personalities, wherein each of the plurality of application-specific vector processing personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the fixed instruction set of the host processor; a co-processor infrastructure common to all the plurality of different application-specific vector processing personalities; and wherein said co-processor is operable with said manufactured host processor to execute an executable file that contains both native instructions that are natively supported by the host processor'"'"'s instruction set and extended instructions that are not natively supported by the host processor'"'"'s instruction set, wherein said extended instructions are present in the executable file as data to be written to a memory by one or more of said native instructions, whereby said native instructions of the executable file are processed by the host processor and said extended instructions of the executable file are processed by the co-processor. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A system comprising:
-
a host processor having a predefined fixed instruction set; and a co-processor, said co-processor including at least one configurable function unit that is configurable at system run-time to fully possess any of a plurality of different, mutually-exclusive vector processing personalities, wherein each of the plurality of different vector processing personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the predefined fixed instruction set of the host processor, and a virtual memory and instruction decode infrastructure that is common to all the plurality of different vector processing personalities; wherein an executable file executing on said host processor contains both native instructions that are natively supported by the host processor'"'"'s instruction set and extended instructions that are not natively supported by the host processor'"'"'s instruction set, and wherein said extended instructions are present in the executable file as data to be written by one or more of said native instructions to a memory that is accessible by said co-processor. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A system comprising:
-
a manufactured host processor having a predefined fixed instruction set that is not modifiable by a consumer; a dynamically reconfigurable co-processor comprising reconfigurable function units that can be dynamically configured, at system run-time, to fully possess any selected one of a plurality of different, mutually-exclusive vector processing personalities for performing corresponding operations of the selected vector processing personality, wherein each of the plurality of different vector processing personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the fixed instruction set of the host processor; said dynamically reconfigurable co-processor further comprising an infrastructure that is common to all the plurality of different vector processing personalities; wherein said dynamically reconfigurable co-processor is operable with said manufactured host processor to execute an executable file that contains both native instructions that are natively supported by the host processor'"'"'s instruction set and extended instructions that are not natively supported by the host processor'"'"'s instruction set, wherein said extended instructions are present in the executable file as data to be loaded to a memory by one or more of said native instructions; and wherein the executable file contains native instructions that when executed by the host processor causes the host processor to unknowingly dispatch said extended instructions to said co-processor by loading the extended instructions to a pre-designated portion of said memory that is accessible by said co-processor. - View Dependent Claims (31, 32, 33)
-
-
34. A method comprising:
-
initiating an executable file on a manufactured host processor that has a predefined instruction set that is fixed such that it is not modifiable by a consumer, wherein the executable file contains native instructions that are natively supported by the host processor'"'"'s predefined instruction set and extended instructions that are not natively supported by the host processor'"'"'s predefined instruction set, wherein said extended instructions are present in the executable file as data to be written by one or more of said native instructions to a designated portion of a memory that is accessible by a reconfigurable co-processor; configuring said reconfigurable co-processor to fully possess a selected one of a plurality of different, mutually-exclusive vector processing personalities for processing a portion of the instructions of the executable file, wherein each of the plurality of different predefined vector processing personalities comprises an extended instruction set having extended instructions that are not natively supported by the host processor'"'"'s instruction set, thereby extending the fixed instruction set of the host processor; processing the instructions of the executable file, wherein said native instructions of the executable file are processed by the host processor and said extended instructions of the executable file are processed by the reconfigurable co-processor. - View Dependent Claims (35, 36)
-
-
37. A method comprising:
-
initiating an executable file on a manufactured host processor that has a predefined instruction set that is fixed such that it is not modifiable by a consumer, wherein the executable file contains native instructions that are natively supported by the host processor'"'"'s predefined instruction set and extended instructions that are not natively supported by the host processor'"'"'s predefined instruction set, wherein said extended instructions are present in the executable file as data to be written by one or more of said native instructions to a memory; determining one of a plurality of different, mutually-exclusive vector processing personalities to load to a dynamically reconfigurable co-processor for processing a portion of the instructions of the executable file, wherein the determined vector processing personality defines an extended instruction set that comprises instructions for performing vector oriented operations that are not natively supported by the host processor'"'"'s predefined instruction set, thereby extending the host processor'"'"'s instruction set; when determined that the determined vector processing personality is not present on the dynamically reconfigurable co-processor, fully loading, at system run-time, the determined vector processing personality to the dynamically reconfigurable co-processor; and processing the instructions of the executable file, wherein the native instructions of the executable file are processed by the host processor and the extended instructions of the executable file are processed by the dynamically reconfigurable co-processor, wherein said host processor unknowingly dispatches said extended instructions of the executable file to the co-processor as a result of executing one or more native instructions of the executable file for writing the extended instructions to a designated portion of said memory that is accessible by said co-processor. - View Dependent Claims (38, 39)
-
-
40. A system comprising:
-
a manufactured host processor implemented on a first integrated circuit and comprising a predefined fixed instruction set that is not modifiable by a consumer; and a co-processor implemented external to said first integrated circuit and comprising reconfigurable logic for dynamically reconfiguring the co-processor to possess any of a plurality of different vector processing personalities, wherein each of said plurality of different vector processing personalities comprises an extended instruction set providing extended instructions not natively supported by the host processor'"'"'s instruction set, thereby extending the host processor'"'"'s instruction set; and wherein said manufactured host processor and said co-processor are operable to execute an executable file that contains both native instructions that are natively supported by the host processor'"'"'s instruction set and extended instructions that are not natively supported by the host processor'"'"'s instruction set, wherein said extended instructions are present in the executable file as data to be written by one or more of said native instructions to a memory, whereby said host processor unknowingly dispatches said extended instructions of the executable file to the co-processor as a result of executing one or more native instructions of the executable file for writing the extended instructions to a designated portion of said memory that is accessible by said co-processor. - View Dependent Claims (41, 42, 43, 44)
-
Specification