Dataflow Architecture
A dataflow architecture is a computer architecture in which instructions execute not in program-counter order but in data-dependency order: an instruction fires when all of its input operands are available, and its result propagates to all instructions that depend on it. This is the physical realization of the data-flow paradigm that SSA form makes visible in compilers. The classic dataflow machine, proposed by Jack Dennis and others in the 1970s, represented programs as directed graphs of operators and tokens, with tokens flowing along edges and triggering execution when they arrived at a node.
The architecture eliminates the program counter as the central locus of control, replacing sequential execution with parallel, demand-driven firing. This makes dataflow machines naturally parallel: any two instructions with disjoint data dependencies can execute simultaneously without explicit synchronization. The cost is the overhead of token matching, the complexity of memory management in a fine-grained parallel setting, and the difficulty of handling side effects and control-dependent operations.
Modern dataflow architectures survive not as general-purpose CPUs but as specialized accelerators: GPUs are coarse-grained dataflow machines, and TPUs schedule matrix multiplications in data-dependency order. The von Neumann architecture won the general-purpose war, but dataflow won every battle that mattered for throughput.