Q1Computer Architecture
Question
Q.1. Explain Flynn's classification of parallel processing with necessary diagram.
Answer
Flynn's classification categorizes computer architectures into four classes based on the multiplicity of instruction and data streams: SISD (single processor), SIMD (array/vector processors), MISD (rare, pipelined redundant systems), and MIMD (multiprocessors/multicomputers).
Flynn's classification, proposed by Michael Flynn in 1966, categorizes computer architectures based on the multiplicity of instruction streams and data streams that can be processed simultaneously, yielding four fundamental classes.
SISD (Single Instruction, Single Data): the classical sequential (Von-Neumann) computer, where a single control unit fetches one instruction stream that operates on a single data stream, one operation at a time. Most traditional uniprocessor systems fall into this category, though internal pipelining can still be present.
SIMD (Single Instruction, Multiple Data): a single instruction stream is broadcast to and simultaneously executed by multiple processing elements, each operating on its own distinct data stream. This class includes array processors and vector processors, and is highly efficient for data-parallel tasks like image/signal processing and matrix operations, where the same operation must be applied uniformly across large data sets (modern GPUs extensively use SIMD-style execution).
MISD (Multiple Instruction, Single Data): multiple processing units each execute a different instruction stream but operate on the same single data stream. This category is rare in practical general-purpose computing and is mainly seen in specialized fault-tolerant systems where multiple processors perform different operations on the same data for redundancy/verification (e.g., systolic arrays or certain space-shuttle flight control computers), or in some pipelined architecture interpretations.
MIMD (Multiple Instruction, Multiple Data): multiple autonomous processors simultaneously execute different instruction streams on different data streams, representing the most general and flexible class. This includes both shared-memory multiprocessors (tightly coupled, common address space) and distributed-memory multicomputers/clusters (loosely coupled, message-passing), and represents the architecture of virtually all modern multicore CPUs and computing clusters.