740 likes | 1.85k Views
Flynn’s Taxonomy of Computer Architectures Source: Wikipedia. Michael Flynn 1966 CMPS 5433 – Parallel Processing. Flynn’s Taxonomy . Proposed in 1966 General 4 category system Does not clearly classify all models in use today There are combinations, also. Four Categories - Terminology.
E N D
Flynn’s Taxonomyof Computer ArchitecturesSource: Wikipedia Michael Flynn 1966 CMPS 5433 – Parallel Processing
Flynn’s Taxonomy • Proposed in 1966 • General 4 category system • Does not clearly classify all models in use today • There are combinations, also.
Four Categories - Terminology • S = Single • I = Instruction Stream • M = Multiple • D = Data Stream • SISD • SIMD • MISD • MIMD
SISD • Single Instruction, Single Data stream • A sequential computer which exploits no parallelism in either the instruction or data streams. Examples of SISD architecture are the traditional single processor machines like a PC (currently manufactured PC's have multiple processors) or old mainframes.
SIMD • Single Instruction, Multiple Data streams • Exploits multiple data streams against a single instruction stream to perform operations which may be naturally parallelized. • For example, an array processor or GPU. • Typical for splitting large data sets.
NOTE: Front-end processor • ONE processor starts the program • It sends code to the other processors • In diagrams, the front-end is represented by which sends code to individual PU’s which execute the remaining code. Instruction Pool PU
SIMD Code • Each processor executes the same code • Code may be variable based on processor id • Example: Sum elements of array A for each Pi, i = 0 to 9 // “executed” by front-end Ti = 0 for j = 0 to 9 // Pi sums its segment Ti = Ti + A[i * 10 + j]
MISD • Multiple Instruction, Single Data stream • Multiple instructions operate on a single data stream. Uncommon architecture which is generally used for fault tolerance. • Systolic Array: process data & pass on to next PU • Examples include the Space Shuttle flight control computer. • Least common
MIMD • Multiple Instruction, Multiple Data streams • Multiple autonomous processors simultaneously executing different instructions on different data. • May send results to central location. • Distributed systems – can be shared memory space or distributed memory space.