Flynn's Classificaton is the most popular taxonomy of computer architecture, proposed by Michael J.Flynn in 1966 based on number of instruction and data. It is based on the notion of a stream of information .
There are two types of Instructions flow into a processor Data Stream It is defined as the sequence of data including inputs,partial,or temporary results,called by instruction stream. Instruction Stream It is defined as the sequence of instruction executed by the processing unit
Flynn's Classification Single Multiple SIMD MISD MIMD SISD
An SISD computing is a Uni-processor machine which is capable of executing a single instruction, operating on a single data stream. Single instruction : only one instruction stream is being acted on by, the CPU during any clock cycle. Single data: only one data stream is being used as input during any one clock cycle. SISD (Single Instruction Single Data)
Conventional single processor Von-Neumann computer are classified as SISD system. Instruction are executed sequentially but may be overlapped in their execution stages (Pipelining). Most SISD Uni-processor system are pipelined. SISD computers may have more than functional units, all under the supervision of control unit.
It's a serial(non-parallel) computer. Instruction are executed sequentially but may be overlapped in their execution stages (Pipelining). Most SISD Uni-processor system are pipelined. Examples-single CPU workstation, Minicomputers, Mainframes, CDC-6600
CU MM PU
load A C = A + B store C A = B * 2 store A load B TIME Single Instruction Single Data
Advantages It requires less power. Simplicity It is relatively easy to design and implement . Disadvantages This architecture cant take advantage of parallelism to speed up computation. They struggle to handle multiple task simultaneously
SIMD (Single Instruction Multiple Data) SIMD represents single-instruction multiple-data streams. The SIMD model of parallel computing includes two parts such as a front-end computer of the usual Von-Neumann style. 1.The processor array is a collection of identical synchronized processing elements adequate for simultaneously implementing the same operation on various data. 2. Each processor in the array has a small amount of local memory where the distributed data resides while it is being processed in parallel. 3.The processor array is linked to the memory bus of the front end so that the front end can randomly create the local processor memories as if it were another memory.
A single instruction is executed on multiple different data streams. These instructions can be performed sequentially, taking advantage of pipelining, or in parallel using multiple processors. Modern GPUs, containing Vector processors and array processors, are commonly SIMD systems. Common usage: Graphics Processing Units when performing vector and array operations. Scientific processing
SIMD Architecture Diagram Instruction Pool Data Pool PU PU PU PU
Advantages Disadvantages Same operation on multiple elements can be performed using one instruction only. Processing speed is higher than SISD architecture. It requires large register which results in large area and large power. The cost is higher than SISD architecture.
An MISD computing system is capable of execution different instruction on different PUs but all of them operating on the same dataset. Multiple instruction : Each processing unit may have different instruction stream. Single data: Every processing unit can operate on a same element. M ISD (Multiple Instruction Single Data)
Machines built using the MISD model are practically not useful is most of the applicaton, a few machine are built, but none of them are available commercially because they are highly specialized. Example: Systolic Arrays, Space Shuttle flight control system
Instructionl PU PU PU PU Data MISD Architecture Diagram
prev instruction load A(1) C(1) = A(1) * 1 Store C(1) next instruction prev instruction C(n) = A(1) / n load A(1) C(2) = A(1) + 2 Store C(2) next instruction prev instruction load A(1) Store C(n) next instruction P1 P3 P2
Advantages Disadvantages There is complex communication between number of cores of processor. The cost is higher than SISD architecture. Excellent for situation where fault tolerance is critical.
MIMD (Multiple Instruction Multiple Data) An MIMD system is a Multiprocessor machine which is capable of executing multiple instructions on multiple data sets. Each process in the MIMD model has separate instruction and data streams. Machines built using this model are capable to any kind of application. MIMD machines doesn’t rely on other processes.
Types of MIMD System Shared-Memory MIMD Distributed-Memory MIMD
Shared-Memory MIMD Tightly coupled Multiprocessor Systems. All the processes are connected to a single global memory, and they all have access to it. The communication between processes in this model takes place through the shared memory. Data stored in the global memory by one process is visible to all other processes.
Shared-Memory MIMD Shared Memory PE2 PE1 PEn CU1 CU2 CUn IS IS IS DS DS DS
Distributed-Memory MIMD Loosely coupled Multiprocessor Systems All processes have a local memory. The communication between processes is done through an interconnection network. The network connecting processes can be configured in accordance with the requirement.
Distributed-Memory MIMD Interconnection Network PE CU M PE CU M PE CU M
Shared-Memory Distributed-Memory Easier to program. Complex to program. Harder to extend. Easier to extend. Less tolerant to failures. More tolerant to failures. Failures affect the entire system. Failures only affect a single process and its memory and can be easily isolated. Processes can lead to memory contention. No memory contention.