Flynn's taxonomy
overview
classification of computer architectures (1966)
-
since the rise of CPUs
-
a multiprogramming context evolved as an extension of the system
4 initial classifications based upon the number of concurrent instruction streams
- and datastreams available in the architecture
-
background
Bandwidth is an expression of time-rate of occurence
-
computational or execution bandwidth
- is the number of instructions processed per second
-
storage bandwidth
- is the retrieval rate of operand and operation memory words (words/second)
Latency or latent period is the total time associated with processing
-
of a data unit at a phase in the computing process
-
the ratio of the number of simulataneous instructions being processed
-
to this constrained multiplicity is called the Confluence
- or concurrence of the system
-
to this constrained multiplicity is called the Confluence
-
the ratio of the number of simulataneous instructions being processed
single instruction stream, single data stream SISD
-
sequential computer which exploits no parallelism in either the instruction or datastreams
-
single control unit (CU) fetches a single instruction stream (IS) from memory
-
CU generates appropriate control signals to direct a single processing element (PE) to operate on a single data stream (DS) one operation at a time
-
single instruction stream, multiple data streams SIMD
-
a single instruction is simultaneously applied to different data streams
-
instructions can be executed sequentially (pipelining)
-
or in parallel by multiple functional units
SIMD is broken down into 3 categories
array processor known as SIMT
-
recieves same instruction
-
but each parallel processing unit
- has its own distinct memory and register file
-
but each parallel processing unit
pipelined processor
-
recieves the same instruction
-
but then read data from a central resource
-
each processes fragments of that data
- then writes back results to same central resource
-
each processes fragments of that data
-
but then read data from a central resource
associative processor
-
recieves the same instruction
-
but in addition a register value
-
from the CU is also broadcast to each PU
-
in each PU an independent decision is made
-
based on data local to the unit
- comparing against the broadcast value
- as to whether perform the broadcast instruction, or to skip it
-
based on data local to the unit
-
in each PU an independent decision is made
-
from the CU is also broadcast to each PU
-
but in addition a register value
-
recieves same instruction
-
-
instructions can be executed sequentially (pipelining)
multiple instruction streams, single data stream
-
uncommon architecture
- generally used for fault tolerance
-
heterogeneous system operate on the same data stream
- and must agree on the result
e.g. Space Shuttle Flight Control Computer
multiple instruction streams, multiple data streams
-
includes multi-core superscalar processors
-
and distributed systems
- using either one shared memory space or a distributed memory space
-
and distributed systems