System, method and software for static and dynamic programming and configuration of an adaptive computing architecture
Abstract
The present invention provides a system, method and software for programming and configuring an adaptive computing architecture or device. The invention utilizes program constructs which correspond to and map directly to the adaptive hardware having a plurality of reconfigurable nodes coupled through a reconfigurable matrix interconnection network. A first program construct corresponds to a selected node. A second program construct corresponds to an executable task of the selected node and includes one or more firing conditions capable of determining the commencement of the executable task of the selected node. A third program construct corresponds to at least one input port coupling the selected node to the matrix interconnect network for input data to be consumed by the executable task. A fourth program construct corresponds to at least one output port coupling the selected node to the matrix interconnect network for output data to be produced by the executable task;
Claims
exact text as granted — not AI-modified1 - 53 . (canceled)
54 . A computer based system for programmatically reconfiguring an adaptive computing engine (ACE) utilizing a programming language, the ACE having a plurality of heterogeneous nodes that are reconfigurably connected across a matrix interconnection network (MIN) connection domain, the system comprising:
a module construct for receiving a plurality of program instructions and data to be processed on the ACE, the module construct configured to provide a first direct mapping from the programming language to an ACE node identifier domain; a process construct for instantiating the plurality of program instructions and data as a plurality of threads or tasks on the ACE, the process construct configured to provide a second direct mapping from the programming language to an ACE port identifier domain; and a pipe construct for providing communication between the plurality of threads or tasks, the pipe construct configured to provide a third direct mapping from the programming language to the MIN connection domain.
55 . The system of claim 54 wherein the module construct is configured to contain zero or more process constructs and zero or more pipe constructs.
56 . The system of claim 55 wherein the process construct is configured to execute when a configured set of firing conditions are met.
57 . The system of claim 56 wherein the configured set of firing conditions is selected from the group consisting of: a task identifier, a number of input ports utilized by the task, for an input port, a first counter value required to trigger the task, for an input port, an initial input counter value, a number of output ports utilized by the task, for an output port, a second counter value required to trigger the task, and for an output port, an initial output counter value.
58 . The system of claim 55 wherein a plurality of process constructs are aggregated within the module construct and configured to function cooperatively to perform at least one computation.
59 . The system of claim 54 wherein the pipe construct further comprises:
an inpipe for providing a conduit for data into the module construct; and an outpipe for providing a conduit for data out of the module construct.
60 . The system of claim 54 wherein the module construct is compiled into a single execution unit for executing on a hardware configuration of the ACE.
61 . The system of claim 54 wherein the module construct is configurable to perform an algorithm selected from the group consisting of: a radix-2 Fast Fourier Transformation (FFT), a radix-Fast Fourier Transformation (FFI′), a radix-2 Inverse Fast Fourier Transformation (IFFT), a radix4 Inverse Fast Fourier Transformation (IFFT), a one-dimensional Discrete Cosine Transformation (DCT), a multi-dimensional Discrete Cosine Transformation (DCT), a finite impulse response (FIR) filtering, a convolutional encoding, a scrambling, a puncturing, an interleaving, a modulation mapping, a Golay correlation, an OVSF code generation, a Haddamard Transformation, a Turbo Decoding, a bit correlation, a Griffiths LMS algorithm, a variable length encoding, an uplink scrambling code generation, a downlink scrambling code generation, a downlink despreading, an uplink spreading, an uplink concatenation, a Viterbi encoding, a Viterbi decoding, a cyclic redundancy coding (CRC), a complex multiplication, a data compression, a motion compensation, a channel searching, a channel acquisition, and a multipath correlation.
62 . A method for programmatically reconfiguring an adaptive computing engine (ACE) utilizing a scripting language, the ACE having a plurality of heterogeneous nodes that are reconfigurably connected across a matrix interconnection network (MIN) connection domain, the method comprising:
instantiating a module construct, the module construct having a correspondence to a selected one of the plurality of heterogeneous nodes, wherein the module construct is configured to provide a first direct mapping from the programming language to an ACE node identifier domain; instantiating a process construct, the process construct having a correspondence to an executable task of the selected one, wherein the process construct is configured to provide a second direct mapping from the programming language to an ACE port identifier domain; and instantiating a pipe construct, the pipe construct having a correspondence with at least one input port and at least one output port, the pipe construct configured to couple the selected one with the MIN connection domain, wherein the pipe construct configured to provide a third direct mapping from the programming language to the MIN connection domain.
63 . The method of claim 62 wherein the module construct is configured to contain zero or more process constructs and zero or more pipe constructs.
64 . The method of claim 63 wherein the process construct is configured to execute when a configured set of firing conditions are met.
65 . The method of claim 64 wherein the configured set of firing conditions is selected from the group consisting of: a task identifier, a number of input ports utilized by the task, for an input port, a first counter value required to trigger the task, for an input port, an initial input counter value, a number of output ports utilized by the task, for an output port, a second counter value required to trigger the task, and for an output port, an initial output counter value.
66 . The method of claim 63 wherein a plurality of process constructs are aggregated within the module construct and configured to function cooperatively to perform at least one computation.
67 . The method of claim 62 wherein the pipe construct further comprises:
an inpipe for providing a conduit for data into the module construct; and an outpipe for providing a conduit for data out of the module construct.
68 . The method of claim 62 wherein the module construct is compiled into a single execution unit for executing on a hardware configuration of the ACE.
69 . The method of claim 62 wherein the module construct is configurable to perform an algorithm selected from the group consisting of: a radix-2 Fast Fourier Transformation (FFT), a radix-Fast Fourier Transformation (FFI′), a radix-2 Inverse Fast Fourier Transformation (IFFT), a radix4 Inverse Fast Fourier Transformation (IFFT), a one-dimensional Discrete Cosine Transformation (DCT), a multi-dimensional Discrete Cosine Transformation (DCT), a finite impulse response (FIR) filtering, a convolutional encoding, a scrambling, a puncturing, an interleaving, a modulation mapping, a Golay correlation, an OVSF code generation, a Haddamard Transformation, a Turbo Decoding, a bit correlation, a Griffiths LMS algorithm, a variable length encoding, an uplink scrambling code generation, a downlink scrambling code generation, a downlink despreading, an uplink spreading, an uplink concatenation, a Viterbi encoding, a Viterbi decoding, a cyclic redundancy coding (CRC), a complex multiplication, a data compression, a motion compensation, a channel searching, a channel acquisition, and a multipath correlation.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.