A data processing system architecture is based upon a hardware engine that
includes a plurality of functional units and data routing units that
interconnect the functional units. The hardware engine performs
operations and computations on data as the data traverses paths through
the functional units under control of software. The functional units
include logic resources, examples of which are flip-flops, latches,
arithmetic logic units, random access memory, and the like. The routing
units are responsive to the software control signals that are turned on
or off to steer the data through these resources. Operations and
computations are accomplished according to the steering of the data
through the functional units that control the functions performed.