A flexible data pipeline structure for accommodating software computational instructions for varying program applications, having, in combination, a programmable embedded processor with reconfigurable pipeline stages the order and length of which varies in response to varying program application instructions;
- the processor including program memory for storing application instructions from a compiler;
- instruction fetch and decode units connected to the program memory;
- a switch matrix selectively interconnecting pluralities of mathematical execution units and memory units and controlled by a switch control unit fed by the instruction decode unit;
- the switch matrix providing full access switching with any allowable connections between two units, and with the switch matrix connecting to a DMA.