A system whereby a data flow language written in relatively high-level
description is compiled to a hardware definition. The hardware definition
is then used to configure data flow in a target processing system at
execution time, or run time. In a preferred embodiment, the target
processing system includes a Reduced-Instruction Set Computer (RISC)
processor in communication with a finite state machine (FSM), shared
memory, on-board memory, and other resources. The FSM is primarily used
for accelerating matrix operations and is considered the target machine
to be configured according to the dataflow definition. The RISC processor
serves as a co-processor to an external central processing unit (CPU)
that is a host processor for executing application code. Other
embodiments can use aspects of the invention in any other processing
architecture. A dataflow language is used to define interconnections
among hardware elements in the matrix datapath and controlled by FSM at
run time and, thus, to determine hardware functionality at run time. The
interconnectivity between the matrix datapath components, elements or
resources, is capable of changing every clock cycle to optimize preferred
calculations. The dataflow language is used to describe the optimized
functions to an application programmer. The dataflow language is also
compiled to a hardware definition that is used to create aspects of the
desired functionality in silicon.