CPUs Solve a Narrow Class of Problems
June 18, 2021

Compute-architecture noteOriginally posted 2021-06-18; rewritten here around execution shape and reconfigurable datapaths.

Included: sequential control, spatial datapaths, explicit timing, FPGA fabric, and where a CPU abstraction stops being the right shape.

Sequential Control Is a Shape

A CPU is an enormously useful execution shape: instruction pointer, registers, memory, cache hierarchy, interrupts, operating system, toolchain. It is also a shape with consequences. Work is usually expressed as a sequence, even when the problem has local concurrency, fixed timing, bit-level dataflow, or many independent state updates.

That mismatch matters when the machine must scale without becoming opaque. More threads, workers, or queues can help, but they do not remove the underlying assumption that the main unit of expression is still software running on a sequential core.

When the Shape Fights the Problem

Some problems are clearer as placed behavior: a pipeline stage, a routing cell, a local accumulator, a clocked boundary, a bit-serial datapath, or a small reconfigurable region with explicit inputs and outputs. FPGAs are useful because they let the computation occupy space instead of only time.

The useful split is straightforward: CPUs handle broad control well, while some problems need a datapath, a fabric, or a local rule before adding another software layer makes sense.

Useful Scope

CPUs remain the right place for operating systems, orchestration, general control, files, networks, and large parts of application logic. Reconfigurable hardware earns its place when locality, timing, parallel state, and custom data movement are the real constraints.