AUTOMATED CONFIGURATION OF A PROCESSING SYSTEM USING DECOUPLED MEMORY ACCESS AND COMPUTATION
First Claim
1. A method for automatic configuration of processing hardware for an application defined by a plurality of programming instructions of a high level language that include at least one stream description, descriptive of data access locations, at least one data access thread definition, and at least one computation thread definition, the method comprising:
- compiling the plurality of programming instructions of the application to produce a description of a data flow between the at least one data access thread and the at least one computational thread;
configuring at least one stream access device operable to access data in accordance with the at least one stream description;
configuring, in the processing hardware, at least one data path device operable to process data in accordance with the at least one computation thread definition; and
configuring, in the processing hardware, one or more data channels operable to connect the at least one data path device and the at least one stream access device in accordance with the description of the data flow.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for automatic configuration of processor hardware from an application program that has stream descriptor definitions, descriptive of memory access locations, data access thread definitions having a stream descriptor and a data channel source or sink as parameters, and computation thread definitions having a function pointer, a data channel source and a data channel sink as parameters. The application program is compiled to produce a description of the data flow between the threads as specified in the application program. The hardware is configured to have streaming memory interface devices operable to access a memory in accordance with the stream descriptor definitions, data path devices operable to process data in accordance with the computation thread definitions and data channels operable to connect the data path devices and streaming memory interface devices in accordance with the description of the data flow.
67 Citations
24 Claims
-
1. A method for automatic configuration of processing hardware for an application defined by a plurality of programming instructions of a high level language that include at least one stream description, descriptive of data access locations, at least one data access thread definition, and at least one computation thread definition, the method comprising:
-
compiling the plurality of programming instructions of the application to produce a description of a data flow between the at least one data access thread and the at least one computational thread; configuring at least one stream access device operable to access data in accordance with the at least one stream description; configuring, in the processing hardware, at least one data path device operable to process data in accordance with the at least one computation thread definition; and configuring, in the processing hardware, one or more data channels operable to connect the at least one data path device and the at least one stream access device in accordance with the description of the data flow. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for automatic configuration of processing hardware, the system comprising:
-
an application program interface (API) tool comprising; a data access thread class; a computation thread class a stream descriptor data type; the API tool operable to enable a programmer to produce an application program that defines data access threads, computation threads, stream descriptors and data movement between the threads; a compiler operable to compile the application program to produce a description of data flow referencing the data access threads, the computation threads and stream descriptors of the application program; a hardware description generator operable to generate a hardware description and executable code dependent upon the description of the data flow; and a configuration element operable to configure the processing hardware in accordance with the hardware description. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A method for automatic configuration of a processing system for execution of an application, the method comprising:
-
generating a plurality of programming instructions of a high level language to define the application, the plurality of programming instructions including at least one data access thread definition dependent upon a software class template for a data access thread, each data access thread having a stream descriptor and one of a data channel source and a data channel sink as parameters; at least one computation thread definitions dependent upon a software class template for a computation thread;
each computation thread definition having a function pointer, a data channel source and a data channel sink as parameters; andat least one stream descriptor definitions, descriptive of memory access locations, compiling the plurality of programming instructions of the application to produce a description of a data flow between the at least one data access thread and the at least one computational thread; configuring at least one stream access module operable to access a memory in accordance with the at least one stream descriptor definition; configuring, in the processing system, at least one data path module operable to process data in accordance with the at least one computation thread definition; and configuring, in the processing system, one or more data channels operable to connect the at least one data path module and the at least one streaming memory interface module accordance with the description of the data flow. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification