Follow TV Tropes

Following

Useful Notes / Flynn's Taxonomy
aka: Vector Unit

Go To

Flynn's Taxonomy is a pretty simple classification of how computers process data. You have data and instructions. How many of each can the processor handle at once? Your options are "just one" or "more than one", leading to four combinations.

Single Instruction, Single Data (SISD)

A processor that can only do only one thing at a time from start to finish. Most computers up until the late 1980s were like this.

Single Instruction, Multiple Data (SIMD)

Commonly called a vector processor, this type takes multiple pieces of data and does the same operation to all of them.

Common applications include digital signal processors (DSP) and graphics processors. The major issue with SIMD processing is that it requires processing that doesn't rely on the results of some previous step for optimal performance. For example, when processing videos, frames tend to not be reliant on each other when being processed, so SIMD can handle this type of work easily. One type of processing that SIMD doesn't perform well in would be general applications, like running web browser, as there's many points in the processing flow that require data from a previous step. A web page needs the HTML to know the page structure and what else to grab, the CSS to know how to present it, and JavaScript to know how to make it interactive, if needed.

Another issue is it can tickle the way programmers write for SIMD applications. Instead of, for example, writing a loop to add values in an array one by one, one can tell the program to add the values at once.

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.

Multiple Instructions, Single Data (MISD)

A rare type in consumer, server, and supercomputer spaces, due to its limited throughput, but more common in safety critical systems.

One major example is multiple redundant systems on aircraft and spacecraft where safety is paramount. However, once these computers are done with the task, they can't save the processed data unless they agree on the answer. For instance, the British Rail Solid State Interlocking system ran logic through three parallel processors, which then voted to determine the final output. Though sometimes, the redundancy is there for the sake of redundancy: one computer is designated the main computer where its results are used regardless of the other results, with the other computers only contributing if the main one goes down.

Another version of this could be two independent machines working on one piece of data, such as two people working a page in TV Tropes. However, this creates a problem: when one person saves then the other, the previous person's data is overwritten. Hence why when editing the page is locked. This problem is called a race condition.

Multiple Instructions, Multiple Data (MIMD)

A flexible type of processor that can can do multiple things on multiple sets of data independently, but at other times can become a SIMD processor. A modern, multicore CPU is the most common example of this type of processor. The multiple cores allow for multitasking of various programs. But if the user needs raw power, a program can take as many cores as they can to dedicate itself to processing data.

The modern GPU also fits this category as its shader units can work on any type of data. A GPU can do geometry work, pixel coloring, physics, and even generic computing, but it can focus on one of these tasks purely if needed, like a SIMD processor.


Top