Flynns Classification

27
Flynn’s Classification Of Flynn’s Classification Of Computer Architectures Computer Architectures In 1966, Michael Flynn proposed a classification for computer architectures based on the number of instruction steams and data streams (Flynn’s Taxonomy). Flynn uses the Flynn uses the stream concept stream concept for for describing a machine's structure describing a machine's structure A stream simply means a sequence of A stream simply means a sequence of items (data or instructions). items (data or instructions). The classification of computer The classification of computer architectures based on the number of architectures based on the number of instruction steams and data streams instruction steams and data streams (Flynn’s Taxonomy). (Flynn’s Taxonomy).

description

Flynns Classification

Transcript of Flynns Classification

Page 1: Flynns Classification

Flynn’s Classification Of Computer Flynn’s Classification Of Computer ArchitecturesArchitectures

In 1966, Michael Flynn proposed a classification for computer architectures based on the number of instruction steams and data streams (Flynn’s Taxonomy).

Flynn uses the Flynn uses the stream conceptstream concept for describing a for describing a machine's structuremachine's structure

A stream simply means a sequence of items (data or A stream simply means a sequence of items (data or instructions). instructions).

The classification of computer architectures based on The classification of computer architectures based on the number of instruction steams and data streams the number of instruction steams and data streams (Flynn’s Taxonomy).(Flynn’s Taxonomy).

Page 2: Flynns Classification

Flynn’s Taxonomy SISD: Single instruction single data – Classical von Neumann architecture SIMD: Single instruction multiple data MISD: Multiple instructions single data – Non existent, just listed for completeness MIMD: Multiple instructions multiple data – Most common and general parallel machine

Flynn Classification Of Flynn Classification Of Computer architecturesComputer architectures

Page 3: Flynns Classification

SISDSISD SISDSISD ( (SSinge-inge-IInstruction stream, nstruction stream, SSinge-inge-DData ata

stream)stream) SISD corresponds to the traditional mono-SISD corresponds to the traditional mono-

processor ( von Neumann computer). A single processor ( von Neumann computer). A single data stream is being processed by one data stream is being processed by one instruction streaminstruction stream OR OR

A single-processor computer (uni-processor) in A single-processor computer (uni-processor) in which a single stream of instructions is which a single stream of instructions is generated from the program.generated from the program.

Page 4: Flynns Classification

SISDSISD

where CU= Control Unit, PE= Processing Element, M= Memory

Page 5: Flynns Classification

SIMDSIMD SIMD SIMD ((SSingle-ingle-IInstruction stream, nstruction stream, MMultiple-ultiple-

DData streams)ata streams) Each instruction is executed on a different set Each instruction is executed on a different set

of data by different processors of data by different processors i.e multiple multiple processing units of the same type process on processing units of the same type process on multiple-data streams. multiple-data streams.

This group is dedicated to array processing This group is dedicated to array processing machines. machines.

Sometimes,  vector processors can also be Sometimes,  vector processors can also be seen as a part of this group.seen as a part of this group.

Page 6: Flynns Classification

SIMDSIMD

where CU= Control Unit, PE= Processing Element, M= Memory

Page 7: Flynns Classification

MISDMISD MISDMISD ( (MMultiple-ultiple-IInstruction streams, nstruction streams, SSinge-inge-

DData stream)ata stream) Each processor executes a different sequence Each processor executes a different sequence

of instructions.of instructions. In case of MISD computers, multiple In case of MISD computers, multiple

processing units operate on one single-data processing units operate on one single-data stream . stream .

In practice, this kind of organization has never In practice, this kind of organization has never been usedbeen used

Page 8: Flynns Classification

MISDMISD

where CU= Control Unit, PE= Processing Element, M= Memory

Page 9: Flynns Classification

MIMDMIMD MIMDMIMD ( (MMultiple-ultiple-IInstruction streams, nstruction streams,

MMultiple-ultiple-DData streams)ata streams) Each processor has a separate program. An instruction stream is generated from each

program. Each instruction operates on different data. This last machine type builds the group for the This last machine type builds the group for the

traditional multi-processors. Several traditional multi-processors. Several processing units operate on multiple-data processing units operate on multiple-data streams.streams.

Page 10: Flynns Classification

MIMD DiagramMIMD Diagram

Page 11: Flynns Classification

Processor OrganizationsProcessor Organizations

Computer Architecture ClassificationsComputer Architecture Classifications

Single Instruction,Single Instruction, Single Instruction,Single Instruction, Multiple InstructionMultiple Instruction Multiple InstructionMultiple Instruction

Single Data StreamSingle Data Stream Multiple Data StreamMultiple Data Stream Single Data StreamSingle Data Stream Multiple Data StreamMultiple Data Stream

(SISD)(SISD) (SIMD) (SIMD) (MISD) (MISD) (MIMD) (MIMD)

Uniprocessor Vector Array Shared MemoryUniprocessor Vector Array Shared Memory MulticomputerMulticomputer

Processor Processor (tightly coupled) (loosely coupled)Processor Processor (tightly coupled) (loosely coupled)

Page 12: Flynns Classification

1212

Organization of Multiprocessor Organization of Multiprocessor SystemsSystems

Flynn’s ClassificationFlynn’s Classification Was proposed by researcher Michael J. Flynn in 1966.Was proposed by researcher Michael J. Flynn in 1966. It is the most commonly accepted taxonomy of computer It is the most commonly accepted taxonomy of computer

organization.organization. In this classification, computers are classified by whether it In this classification, computers are classified by whether it

processes a single instruction at a time or multiple processes a single instruction at a time or multiple instructions simultaneously, and whether it operates on one instructions simultaneously, and whether it operates on one or multiple data sets.or multiple data sets.

Page 13: Flynns Classification

1313

Taxonomy of Computer Taxonomy of Computer ArchitecturesArchitectures

4 categories of Flynn’s classification of multiprocessor systems by their instruction and 4 categories of Flynn’s classification of multiprocessor systems by their instruction and data streamsdata streams

Simple Diagrammatic Representation

Page 14: Flynns Classification

1414

Single Instruction, Single Data Single Instruction, Single Data (SISD)(SISD)

SISD machines executes a single instruction on SISD machines executes a single instruction on individual data values using a single processor.individual data values using a single processor.

Based on traditional Von Neumann uniprocessor Based on traditional Von Neumann uniprocessor architecture, instructions are executed sequentially or architecture, instructions are executed sequentially or serially, one step after the next.serially, one step after the next.

Until most recently, most computers are of SISD Until most recently, most computers are of SISD type.type.

Page 15: Flynns Classification

1515

SISDSISDSimple Diagrammatic Representation

Page 16: Flynns Classification

1616

Single Instruction, Multiple Data Single Instruction, Multiple Data (SIMD)(SIMD)

An SIMD machine executes a single instruction on An SIMD machine executes a single instruction on multiple data values simultaneously using many multiple data values simultaneously using many processors.processors.

Since there is only one instruction, each processor Since there is only one instruction, each processor does not have to fetch and decode each instruction. does not have to fetch and decode each instruction. Instead, a single control unit does the fetch and Instead, a single control unit does the fetch and decoding for all processors.decoding for all processors.

SIMD architectures include array processors.SIMD architectures include array processors.

Page 17: Flynns Classification

1717

SIMDSIMDSimple Diagrammatic Representation

Page 18: Flynns Classification

1818

Multiple Instruction, Multiple Multiple Instruction, Multiple Data (MIMD)Data (MIMD)

MIMD machines are usually referred to as MIMD machines are usually referred to as multiprocessors or multicomputers.multiprocessors or multicomputers.

It may execute multiple instructions simultaneously, It may execute multiple instructions simultaneously, contrary to SIMD machines.contrary to SIMD machines.

Each processor must include its own control unit that Each processor must include its own control unit that will assign to the processors parts of a task or a will assign to the processors parts of a task or a separate task.separate task.

It has two subclasses: Shared memory and distributed It has two subclasses: Shared memory and distributed memorymemory

Page 19: Flynns Classification

1919

MIMD MIMD Simple Diagrammatic Representation(Shared Memory)

Simple Diagrammatic Representation(DistributedMemory)

Page 20: Flynns Classification

2020

Multiple Instruction, Single Data Multiple Instruction, Single Data (MISD)(MISD)

This category does not actually exist. This This category does not actually exist. This category was included in the taxonomy for the category was included in the taxonomy for the sake of completeness. sake of completeness.

Page 21: Flynns Classification

2121

Flynn’s TaxonomyFlynn’s Taxonomy Flynn classified by data and control streams in 1966Flynn classified by data and control streams in 1966

SIMD SIMD Data Level Parallelism Data Level Parallelism MIMD MIMD Thread Level Parallelism Thread Level Parallelism MIMD popular because MIMD popular because

Flexible: N pgms and 1 multithreaded pgmFlexible: N pgms and 1 multithreaded pgm Cost-effective: same MPU in desktop & MIMDCost-effective: same MPU in desktop & MIMD

Single Instruction Single Data (SISD)

(Uniprocessor)

Single Instruction Multiple Data SIMD

(single PC: Vector, CM-2)

Multiple Instruction Single Data (MISD)

(????)

Multiple Instruction Multiple Data MIMD

(Clusters, SMP servers)

Page 22: Flynns Classification

Instruction and Data StreamsInstruction and Data Streams An alternate classificationAn alternate classification

Data Streams

Single Multiple

Instruction Streams

Single SISD:Intel Pentium 4

SIMD: SSE instructions of x86

Multiple MISD:No examples today

MIMD:Intel Xeon e5345

SPMD: Single Program Multiple Data A parallel program on a MIMD computer Conditional code for different processors

Page 23: Flynns Classification

SIMDSIMD

Operate element wise on vectors of dataOperate element wise on vectors of data E.g., MMX and SSE instructions in x86E.g., MMX and SSE instructions in x86

Multiple data elements in 128-bit wide registersMultiple data elements in 128-bit wide registers All processors execute the same instruction at All processors execute the same instruction at

the same timethe same time Each with different data address, etc.Each with different data address, etc.

Simplifies synchronizationSimplifies synchronization Reduced instruction control hardwareReduced instruction control hardware Works best for highly data-parallel applicationsWorks best for highly data-parallel applications

Page 24: Flynns Classification

Vector ProcessorsVector Processors

Highly pipelined function unitsHighly pipelined function units Stream data from/to vector registers to unitsStream data from/to vector registers to units

Data collected from memory into registersData collected from memory into registers Results stored from registers to memoryResults stored from registers to memory

Example: Vector extension to MIPSExample: Vector extension to MIPS 32 32 × 64-element registers (64-bit elements)× 64-element registers (64-bit elements) Vector instructionsVector instructions

lvlv, , svsv: load/store vector: load/store vector addv.daddv.d: add vectors of double: add vectors of double addvs.daddvs.d: add scalar to each element of vector of double: add scalar to each element of vector of double

Significantly reduces instruction-fetch bandwidthSignificantly reduces instruction-fetch bandwidth

Page 25: Flynns Classification

Vector vs. ScalarVector vs. Scalar

Vector architectures and compilersVector architectures and compilers Simplify data-parallel programmingSimplify data-parallel programming Explicit statement of absence of loop-carried Explicit statement of absence of loop-carried

dependencesdependences Reduced checking in hardwareReduced checking in hardware

Regular access patterns benefit from interleaved and Regular access patterns benefit from interleaved and burst memoryburst memory

Avoid control hazards by avoiding loopsAvoid control hazards by avoiding loops More general than ad-hoc media extensions (such More general than ad-hoc media extensions (such

as MMX, SSE)as MMX, SSE) Better match with compiler technologyBetter match with compiler technology

Page 26: Flynns Classification
Page 27: Flynns Classification