Multicore, Coherence & Thread-Level Parallelism

Flynn's taxonomy

/ flinz tax-ON-uh-mee /

When people first tried to organize the zoo of parallel computers, they needed a simple map. Flynn's taxonomy is that map: it sorts machines along two questions. How many instruction streams are running at once — one or many? And how many data streams are they working on — one or many? Two yes/no questions give four boxes, and almost every computer architecture drops into one of them.

The four classes. SISD (single instruction, single data) is the plain old uniprocessor: one instruction stream chewing on one data stream, like a single cook following one recipe. SIMD (single instruction, multiple data) runs one instruction across many data elements at once — one command, 'add 1 to all of these' — which is how vector units and GPUs crunch arrays. MISD (multiple instruction, single data) is the odd one out, several instruction streams on the same data; it is rare in practice, sometimes cited for redundant fault-tolerant systems. MIMD (multiple instruction, multiple data) is the general parallel computer: many independent instruction streams, each on its own data — which is exactly what a multicore processor is.

Keep two honest caveats. First, the taxonomy is a coarse map, not a law: real chips mix categories — a multicore (MIMD) where each core has a SIMD vector unit is both at once. Second, MIMD is the home of multicore and thread-level parallelism, the subject of this field, while SIMD is the separate data-parallel world of vectors and GPUs covered elsewhere. The value of Flynn's four boxes is orientation: when someone says 'this is a SIMD machine' or 'a MIMD cluster,' you instantly know the shape of how it runs.

Sorting four machines: a 1980s single-core PC is SISD; a GPU adding two arrays elementwise is SIMD; a fault-tolerant flight controller running the same input through three different programs to vote on the answer is loosely MISD; a modern 8-core server running eight different programs is MIMD.

Two questions — how many instruction streams, how many data streams — sort the parallel-computing zoo into four labels.

Flynn's taxonomy is a useful sketch, not a precise classification: modern processors are hybrids (MIMD cores with SIMD units), and the categories say nothing about memory model, coherence, or how fast a machine actually is.

Also called
SISD/SIMD/MISD/MIMDFlynn classificationFlynn 分類法