Claims
- 1. A method for development of an adaptive computing integrated circuit and corresponding configuration information, the configuration information for providing an operating mode to the adaptive computing integrated circuit, the method comprising:
(a) selecting an algorithm for performance by the adaptive computing integrated circuit; (b) determining a plurality of adaptive computing descriptive objects; (c) scheduling the algorithm with the plurality of adaptive computing descriptive objects to produce a scheduled algorithm and a selected adaptive computing circuit version; and (d) from the scheduled algorithm and the selected adaptive computing circuit version, generating the configuration information for the performance of the algorithm by the adaptive computing integrated circuit, the adaptive computing integrated circuit corresponding to the selected adaptive computing circuit version.
- 2. The method of claim 1, further comprising:
converting the selected adaptive computing circuit version to a hardware description language for fabrication to form the adaptive computing integrated circuit.
- 3. The method of claim 1, wherein step (c) further comprises:
generating a plurality of adaptive computing circuit versions from the plurality of adaptive computing descriptive objects; scheduling the algorithm with the plurality of adaptive computing descriptive objects of each of the plurality of adaptive computing circuit versions; and using a selection parameter of a plurality of selection parameters, selecting an adaptive computing circuit version, of the plurality of adaptive computing circuit versions, to form the selected adaptive computing circuit version.
- 4. The method of claim 3, wherein the plurality of selection parameters comprises at least two of the following selection parameters: power consumption, speed of operation, latency, bandwidth requirements, a competing operating mode, and versatility for a plurality of operating modes.
- 5. The method of claim 1, wherein step (a) further comprises:
profiling the algorithm for performance on the adaptive computing integrated circuit.
- 6. The method of claim 5, wherein the profiling is based upon a plurality of data parameters, the plurality of data parameters comprising at least two of the following parameters: data location for static data; data type; input data size; output data size; data source location; data destination location; data pipeline length; locality of reference; distance of data movement; speed of data movement; data access frequency; number of data load/stores; cache usage; register usage; memory usage, and data persistence.
- 7. The method of claim 1, wherein step (a) further comprises:
profiling the algorithm for performance on a processor.
- 8. The method of claim 1, further comprising:
compiling the configuration information into an adaptive computing integrated circuit bit file.
- 9. The method of claim 8, further comprising:
loading the adaptive computing integrated circuit bit file into the adaptive computing integrated circuit.
- 10. The method of claim 9, wherein the loading occurs from a location remote to the adaptive computing integrated circuit.
- 11. The method of claim 9, wherein the loading occurs as a download from a network.
- 12. The method of claim 1, further comprising:
generating a plurality of versions of configuration information, each configuration information version corresponding to a selection parameter of a plurality of selection parameters.
- 13. The method of claim 12, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 14. The method of claim 1, further comprising:
compiling the configuration information into a plurality of versions of adaptive computing integrated circuit bit files, each bit file version corresponding to a selection parameter of a plurality of selection parameters.
- 15. The method of claim 14, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 16. The method of claim 1, wherein step (c) further comprises:
scheduling the algorithm over time according to a one to one (1:1) correspondence between a plurality of algorithmic elements comprising the algorithm and the plurality of adaptive computing descriptive objects forming the selected adaptive computing circuit version.
- 17. The method of claim 1, wherein step (c) further comprises:
generating timing information within the configuration information, the timing information directing a configuration prior to an arrival of corresponding operand data.
- 18. The method of claim 1, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects comprises a description of a function, an input for the function, and an output for the function.
- 19. The method of claim 18, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects further comprises a description of a memory resource for the function, an input for the memory resource, an output for the memory resource, and a connection between the function and the memory resource.
- 20. The method of claim 1, wherein a selected adaptive computing descriptive object, of the plurality of adaptive computing descriptive objects, describes a function of a plurality of functions, the plurality of functions comprising at least two of the following functions: a plurality of linear operations, a plurality of non-linear operations, a plurality of finite state machine operations, a plurality of control sequences, a plurality of bit level manipulations, memory, and memory management.
- 21. A method for providing a selected operating mode of an adaptive circuit, the method comprising:
(a) producing a plurality of configuration information versions for the adaptive circuit; (b) selecting a configuration information version of the plurality of configuration information versions; and (c) providing the selected configuration information version for use in the adaptive circuit, the selected configuration information version providing the selected operating mode of the adaptive circuit.
- 22. The method of claim 21, wherein step (b) further comprises:
selecting the configuration information version using a plurality of selection parameters, the plurality of selection parameters comprising at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive circuit version of a plurality of adaptive circuit versions.
- 23. The method of claim 21, wherein step (a) further comprises:
selecting an algorithm for performance by the adaptive circuit; determining a plurality of adaptive computing descriptive objects; scheduling the algorithm with the plurality of adaptive computing descriptive objects to produce a scheduled algorithm and a selected adaptive circuit version; and from the scheduled algorithm and the selected adaptive circuit version, generating the plurality of configuration information versions for the performance of the algorithm by the adaptive circuit, the adaptive circuit corresponding to the selected adaptive circuit version.
- 24. The method of claim 23, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects comprises a description of a function, an input for the function, an output for the function, a description of a memory resource for the function, an input for the memory resource, an output for the memory resource, and a connection between the function and the memory resource.
- 25. The method of claim 24, wherein a selected adaptive computing descriptive object, of the plurality of adaptive computing descriptive objects, describes a function of a plurality of functions, the plurality of functions comprising at least two of the following functions: a plurality of linear operations, a plurality of non-linear operations, a plurality of finite state machine operations, a plurality of control sequences, a plurality of bit level manipulations, memory, and memory management.
- 26. A system for development of an adaptive computing integrated circuit and corresponding configuration information, the configuration information for providing an operating mode to the adaptive computing integrated circuit, the system comprising:
a scheduler, the scheduler capable of scheduling a selected algorithm with a plurality of adaptive computing descriptive objects to produce a scheduled algorithm and a selected adaptive computing circuit version; a memory coupled to the scheduler, the memory capable of storing the plurality of adaptive computing descriptive objects and a plurality of adaptive computing circuit versions; and a compiler coupled to the scheduler, the compiler capable of generating the configuration information, from the scheduled algorithm and the selected adaptive computing circuit version, for the performance of the algorithm by the adaptive computing integrated circuit, the adaptive computing integrated circuit corresponding to the selected adaptive computing circuit version.
- 27. The system of claim 26, further comprising:
a hardware description generator coupled to the scheduler, the hardware description generator capable of converting the selected adaptive computing circuit version to a hardware description language for fabrication to form the adaptive computing integrated circuit.
- 28. The system of claim 26, wherein the scheduler is further capable of generating a plurality of adaptive computing circuit versions from the plurality of adaptive computing descriptive objects; scheduling the algorithm with the plurality of adaptive computing descriptive objects of each of the plurality of adaptive computing circuit versions; and using a selection parameter of a plurality of selection parameters, selecting an adaptive computing circuit version, of the plurality of adaptive computing circuit versions, to form the selected adaptive computing circuit version.
- 29. The system of claim 28, wherein the plurality of selection parameters comprises at least two of the following selection parameters: power consumption, speed of operation, latency, bandwidth requirements, a competing operating mode, and versatility for a plurality of operating modes.
- 30. The system of claim 26, further comprising:
a profiler coupled to the scheduler, the profiler capable of profiling the algorithm for performance on the adaptive computing integrated circuit.
- 31. The system of claim 30, wherein the profiling is based upon a plurality of data parameters, the plurality of data parameters comprising at least two of the following data parameters: data location for static data; data type; input data size; output data size; data source location; data destination location; data pipeline length; locality of reference; distance of data movement; speed of data movement; data access frequency; number of data load/stores; cache usage; register usage; memory usage, and data persistence.
- 32. The system of claim 30, wherein the profiler is further capable of profiling the algorithm for performance on a processor.
- 33. The system of claim 26, wherein the compiler is further capable of compiling the configuration information into an adaptive computing integrated circuit bit file.
- 34. The system of claim 33, further comprising:
a configuration information provider, the configuration information provider capable of loading the adaptive computing integrated circuit bit file into the adaptive computing integrated circuit.
- 35. The system of claim 34, wherein the loading occurs from a location remote to the adaptive computing integrated circuit.
- 36. The system of claim 34, wherein the loading occurs as a download from a network.
- 37. The system of claim 26, wherein the scheduler is further capable of generating a plurality of versions of configuration information, each configuration information version corresponding to a selection parameter of a plurality of selection parameters.
- 38. The system of claim 37, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 39. The system of claim 26, wherein the compiler is further capable of compiling the configuration information into a plurality of versions of adaptive computing integrated circuit bit files, each bit file version corresponding to a selection parameter of a plurality of selection parameters.
- 40. The system of claim 39, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 41. The system of claim 26, wherein the scheduler is further capable of scheduling the algorithm over time according to a one to one (1:1) correspondence between a plurality of algorithmic elements comprising the algorithm and the plurality of adaptive computing descriptive objects forming the selected adaptive computing circuit version.
- 42. The system of claim 26, wherein the scheduler is further capable of generating timing information within the configuration information, the timing information directing a configuration prior to an arrival of corresponding operand data.
- 43. The system of claim 26, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects comprises a description of a function, an input for the function, and an output for the function.
- 44. The system of claim 43, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects further comprises a description of a memory resource for the function, an input for the memory resource, an output for the memory resource, and a connection between the function and the memory resource.
- 45. The system of claim 26, wherein a selected adaptive computing descriptive object, of the plurality of adaptive computing descriptive objects, describes a function of a plurality of functions, the plurality of functions comprising at least two of the following functions: a plurality of linear operations, a plurality of non-linear operations, a plurality of finite state machine operations, a plurality of control sequences, a plurality of bit level manipulations, memory, and memory management.
- 46. A tangible medium storing machine-readable software for development of an adaptive computing integrated circuit and corresponding configuration information, the configuration information for providing an operating mode to the adaptive computing integrated circuit, the tangible medium storing machine-readable software comprising:
first software for selecting an algorithm for performance by the adaptive computing integrated circuit; second software for determining a plurality of adaptive computing descriptive objects; third software for scheduling the algorithm with the plurality of adaptive computing descriptive objects to produce a scheduled algorithm and a selected adaptive computing circuit version; and fourth software for generating the configuration information, from the scheduled algorithm and the selected adaptive computing circuit version, for the performance of the algorithm by the adaptive computing integrated circuit, the adaptive computing integrated circuit corresponding to the selected adaptive computing circuit version.
- 47. The tangible medium storing machine-readable software of claim 46, further comprising:
fifth software for converting the selected adaptive computing circuit version to a hardware description language for fabrication to form the adaptive computing integrated circuit.
- 48. The tangible medium storing machine-readable software of claim 46, wherein the third software further comprises software for generating a plurality of adaptive computing circuit versions from the plurality of adaptive computing descriptive objects; for scheduling the algorithm with the plurality of adaptive computing descriptive objects of each of the plurality of adaptive computing circuit versions; and for selecting an adaptive computing circuit version, of the plurality of adaptive computing circuit versions, using a selection parameter of a plurality of selection parameters, to form the selected adaptive computing circuit version.
- 49. The tangible medium storing machine-readable software of claim 48, wherein the plurality of selection parameters comprises at least two of the following selection parameters: power consumption, speed of operation, latency, bandwidth requirements, a competing operating mode, and versatility for a plurality of operating modes.
- 50. The tangible medium storing machine-readable software of claim 46, further comprising:
sixth software for profiling the algorithm for performance on the adaptive computing integrated circuit.
- 51. The tangible medium storing machine-readable software of claim 50, wherein the profiling is based upon a plurality of data parameters, the plurality of data parameters comprising at least two of the following data parameters: data location for static data; data type; input data size; output data size; data source location; data destination location; data pipeline length; locality of reference; distance of data movement; speed of data movement; data access frequency; number of data load/stores; cache usage; register usage; memory usage, and data persistence.
- 52. The tangible medium storing machine-readable software of claim 46, further comprising:
seventh software for profiling the algorithm for performance on a processor.
- 53. The tangible medium storing machine-readable software of claim 46, further comprising:
eighth software for compiling the configuration information into an adaptive computing integrated circuit bit file.
- 54. The tangible medium storing machine-readable software of claim 53, further comprising software for loading the adaptive computing integrated circuit bit file into the adaptive computing integrated circuit.
- 55. The tangible medium storing machine-readable software of claim 54, wherein the software for loading provides for loading occurring from a location remote to the adaptive computing integrated circuit.
- 56. The tangible medium storing machine-readable software of claim 54, wherein the software for loading provides for loading occurring as a download from a network.
- 57. The tangible medium storing machine-readable software of claim 46, further comprising:
ninth software for generating a plurality of versions of configuration information, each configuration information version corresponding to a selection parameter of a plurality of selection parameters.
- 58. The tangible medium storing machine-readable software of claim 57, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 59. The tangible medium storing machine-readable software of claim 46, further comprising:
tenth software for compiling the configuration information into a plurality of versions of adaptive computing integrated circuit bit files, each bit file version corresponding to a selection parameter of a plurality of selection parameters.
- 60. The tangible medium storing machine-readable software of claim 59, wherein the plurality of selection parameters comprises at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive computing circuit version of a plurality of adaptive computing circuit versions.
- 61. The tangible medium storing machine-readable software of claim 46, wherein the third software further comprises software for scheduling the algorithm over time according to a one to one (1:1) correspondence between a plurality of algorithmic elements comprising the algorithm and the plurality of adaptive computing descriptive objects forming the selected adaptive computing circuit version.
- 62. The tangible medium storing machine-readable software of claim 46, wherein the third software further comprises software for generating timing information within the configuration information, the timing information directing a configuration prior to an arrival of corresponding operand data.
- 63. The tangible medium storing machine-readable software of claim 46, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects comprises a description of a function, an input for the function, and an output for the function.
- 64. The tangible medium storing machine-readable software of claim 63, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects further comprises a description of a memory resource for the function, an input for the memory resource, an output for the memory resource, and a connection between the function and the memory resource.
- 65. The tangible medium storing machine-readable software of claim 46, wherein a selected adaptive computing descriptive object, of the plurality of adaptive computing descriptive objects, describes a function of a plurality of functions, the plurality of functions comprising at least two of the following functions: a plurality of linear operations, a plurality of non-linear operations, a plurality of finite state machine operations, a plurality of control sequences, a plurality of bit level manipulations, memory, and memory management.
- 66. A system for providing a selected operating mode of an adaptive circuit, the system comprising:
means for producing a plurality of configuration information versions for the adaptive circuit; means for selecting a configuration information version of the plurality of configuration information versions; and means for providing the selected configuration information version for use in the adaptive circuit, the selected configuration information version providing the selected operating mode of the adaptive circuit.
- 67. The system of claim 66, wherein the means for selecting further comprises:
means for selecting the configuration information version using a plurality of selection parameters, the plurality of selection parameters comprising at least two of the following selection parameters: a competing operating mode, versatility for a plurality of operating modes, a selected operational feature set of a plurality of operational feature sets, selected operating conditions of a plurality of operating conditions, and a selected adaptive circuit version of a plurality of adaptive circuit versions.
- 68. The system of claim 66, wherein the means for producing a plurality of configuration information versions further comprises:
means for selecting an algorithm for performance by the adaptive circuit; means for determining a plurality of adaptive computing descriptive objects; means for scheduling the algorithm with the plurality of adaptive computing descriptive objects to produce a scheduled algorithm and a selected adaptive circuit version; and means for generating the plurality of configuration information versions, from the scheduled algorithm and the selected adaptive circuit version, for the performance of the algorithm by the adaptive circuit, the adaptive circuit corresponding to the selected adaptive circuit version.
- 69. The system of claim 68, wherein each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects comprises a description of a function, an input for the function, an output for the function, a description of a memory resource for the function, an input for the memory resource, an output for the memory resource, and a connection between the function and the memory resource.
- 70. The system of claim 69, wherein a selected adaptive computing descriptive object, of the plurality of adaptive computing descriptive objects, describes a function of a plurality of functions, the plurality of functions comprising at least two of the following functions: a plurality of linear operations, a plurality of non-linear operations, a plurality of finite state machine operations, a plurality of control sequences, a plurality of bit level manipulations, memory, and memory management.
- 71. A method for development of an adaptive computing integrated circuit and corresponding configuration information, the configuration information for providing an operating mode to the adaptive computing integrated circuit, the method comprising:
selecting an algorithm for performance by the adaptive computing integrated circuit; profiling the algorithm for performance on the adaptive computing integrated circuit; determining a plurality of adaptive computing descriptive objects, each adaptive computing descriptive object of the plurality of adaptive computing descriptive objects including a description of a function, an input for the function, and an output for the function; generating a plurality of adaptive computing circuit versions from the plurality of adaptive computing descriptive objects; scheduling the algorithm with the plurality of adaptive computing descriptive objects of each of the plurality of adaptive computing circuit versions to form a plurality of scheduled algorithms; using a selection parameter of a plurality of selection parameters, selecting an adaptive computing circuit version, of the plurality of adaptive computing circuit versions, to form the selected adaptive computing circuit version; selecting a scheduled algorithm of the plurality of scheduled algorithms, the selected scheduled algorithm corresponding to the selected adaptive computing circuit version; converting the selected adaptive computing circuit version to a hardware description language for fabrication to form the adaptive computing integrated circuit; and from the selected scheduled algorithm and the selected adaptive computing circuit version, generating the configuration information and compiling the configuration information into an adaptive computing integrated circuit bit file for the performance of the algorithm by the adaptive computing integrated circuit.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to Paul L. Master et al., U.S. patent application Ser. No. 09/815,122, entitled “Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements”, filed Mar. 22, 2001, commonly assigned to QuickSilver Technology, Inc., and incorporated by reference herein, with priority claimed for all commonly disclosed subject matter (the “first related application”).
[0002] This application is also related to Eugene Hogenauer, U.S. patent application Ser. No. 09/872,397, entitled “Method and System for Scheduling in an Adaptable Computing Engine”, filed May 31, 2001, commonly assigned to QuickSilver Technology, Inc., and incorporated by reference herein, with priority claimed for all commonly disclosed subject matter (the “second related application”).
[0003] This application is further related to Paul L. Master et al., U.S. patent application Ser. No. 09/997,987, entitled “Apparatus, Method, System and Executable Module For Configuration and Operation Of Adaptive Integrated Circuitry Having Fixed, Application Specific Computational Elements”, filed Nov. 30, 2001, commonly assigned to QuickSilver Technology, Inc., and incorporated by reference herein, with priority claimed for all commonly disclosed subject matter (the “third related application”).