RTUEE / EC / EEEYr 2022 · Sem 52022

Q5Computer Architecture

Question

10 marks

Q.5. Explain Flynn's classification with suitable examples.

Answer

Flynn's classification (SISD, SIMD, MISD, MIMD) categorizes computers by instruction/data stream multiplicity: SISD is a standard uniprocessor, SIMD applies one instruction across many data elements (e.g., GPUs), MISD is a rare redundant/fault-tolerant design, and MIMD covers general multiprocessors/clusters.

Flynn's classification scheme organizes computer architectures into four categories based on whether the machine can process single or multiple instruction streams, and single or multiple data streams, simultaneously.

SISD (Single Instruction, Single Data): the conventional sequential computer, exemplified by a basic single-core processor executing a traditional program — one instruction is fetched and executed on one data item at a time by a single control unit and single processing unit, e.g. an old-generation single-core desktop CPU running a simple program without any internal parallel execution units.

SIMD (Single Instruction, Multiple Data): one control unit broadcasts a single instruction simultaneously to multiple processing elements, each of which applies that same operation to its own distinct data element in lock-step. A canonical example is adding two large arrays element-by-element: a SIMD machine can perform many of the additions simultaneously in a single instruction cycle, rather than looping through elements sequentially. Modern GPU compute cores and CPU vector extensions (such as AVX/SSE 'single instruction, multiple data' instructions used for multimedia and scientific computation) are practical, widely-deployed examples of the SIMD model.

MISD (Multiple Instruction, Single Data): multiple processing units, each executing a different instruction stream, all operate upon the identical single data stream. This is the rarest and least commercially implemented class; a conceptual example is a fault-tolerant flight-control system where several processors, each running a differently-implemented algorithm, independently process the very same sensor data stream, and their results are cross-checked/voted upon to detect hardware or software errors — used in some space-shuttle and safety-critical avionics computer designs, though no significant general-purpose commercial computer uses this model.

These four classes are frequently visualized on a simple two-by-two grid, with instruction-stream multiplicity (single/multiple) on one axis and data-stream multiplicity (single/multiple) on the other, making it easy to see how each class represents one specific combination of these two independent design dimensions.

MIMD (Multiple Instruction, Multiple Data): multiple independent processors, each with its own instruction stream, operate on their own independent data streams, representing the most general and now-dominant class of parallel computer. An example is a modern multicore server or a computing cluster, where different cores/nodes can simultaneously execute entirely different programs (or different parts of the same parallel program) on different data — MIMD systems are further subdivided into shared-memory multiprocessors (e.g., a typical multicore desktop CPU with cores sharing a common RAM) and distributed-memory multicomputers/clusters (e.g., a supercomputer or cloud-computing cluster where each node has private memory and nodes communicate via message passing over a network).

Practical significance of the classification: Flynn's taxonomy remains valuable today primarily as a conceptual framework for reasoning about how a given algorithm's structure should be matched to appropriate hardware — a data-parallel algorithm with a uniform, regular computation pattern (such as applying the same filter to every pixel of an image) is naturally suited to SIMD hardware for maximum efficiency, while an algorithm composed of genuinely independent, heterogeneous sub-tasks (such as running a web server alongside a database alongside a background batch job) is naturally suited to MIMD hardware. Understanding this classification helps both hardware architects design appropriately specialized processing units and software developers choose the right parallelization strategy (vectorization for SIMD-friendly code versus multithreading/multiprocessing for MIMD-friendly code) for their specific computational problem.

Back to Paper