Useful Notes: Flynn's Taxonomy
aka: Vector Unit
Flynn's Taxonomy is a pretty simple classification of how computers process data. You have data, instructions, one or more. So it breaks it down into four categories.
Single Instruction, Single Data (SISD)A processor that can only do one job at a time from start to finish. Early computers were like this until the advent of pipelining.
Single Instruction, Multiple Data (SIMD)Commonly called a vector processor, this type takes multiple pieces of datum and does the same operation to all of them. Common applications include digital signal processors (DSP) and graphics processors. The problem with SIMD style processing is that it tickles the way programmers write code. Instead of writing a loop to add numbers from two arrays one by one, you tell the program to take the numbers from two arrays at once and add them together. The other issue is that a lot of algorithms don't necessary benefit from SIMD style computing, especially when some parts of the data stream rely on the results of another not in sequence. Some examples include:
- A Multi-Core Processor in a properly threaded task.
- The PlayStation 2's VU0 and VU1, which were the forefront of the graphics and other math related tasks. The graphical part would be sent off to its Emotion Engine for further processing.
- Supercomputers that crunch a ton of data.