Module 5
PROCESSOR, CONTROL UNIT AND PARALLELISM
FLYNN'S CLASSIFICATION
1. Single Instruction Stream, Single Data Stream (SISD)
2. Single Instruction Stream, Multiple Data Stream (SIMD)
3. Multiple Instruction Stream, Single Data Stream (MISD)
4. Multiple Instruction Stream, Multiple Data Stream (SISD)
SISD SIMD
MISD MIMD
SINGLE PROGRAM, MULTIPLE DATA (SPMD)
Hardware Multithreading
Multithreading allows multiple threads to share the functional units of a single processor in an
overlapping [Link] permit this sharing, the processor must duplicate the independent state of each
thread.
[Link] grained multithreading -
Switches between threads on every clock
cycle in a round-robin fashion.
[Link]-grained multithreading -
Switches to another thread when the current
one encounters a long-latency event, such
as a cache miss
[Link] multithreading -
multiple threads in the same clock cycle
● superscalar with no multithreading
● superscalar with coarse-grained
multithreading
● superscalar with fine-grained
multithreading
● superscalar with simultaneous
multithreading
MULTI-CORE PROCESSORS & OTHER SHARED MEMORY MULTIPROCESSORS
● A system with multiple CPUs “sharing” the same main memory is called multiprocessor.
● In a multiprocessor system all processes on the various CPUs share a unique logical
address space, which is mapped on a physical memory that can be distributed among the
processors.
● Each process can read and write a data item simply using load and store operations, and process
communication is through shared memory.
● It is the hardware that makes all CPUs access and use the same main memory.
● Since all CPUs share the address space, only a single instance of the operating system is
required.
● On the contrary, in systems with no shared memory, each CPU must have its own copy of the
operating system, and processes can only communicate through message passing.
● Symmetric multiprocessing, (SMP) - a scheduler running on every processor
● “ready to run” processes can be inserted into a single queue, that can be accessed by every
scheduler, alternatively there can be a “ready to run” queue for each processor.
● A distinct feature in multiprocessor systems is load balancing.
● With a single “ready-to-run” queue, load balancing is usually automatic: if a processor is idle, its
scheduler will pick a process from the shared queue and will start it on that processor.
Caches and memory in multiprocessors
Memory (and the memory hierarchy) in multiprocessors poses two
different problems:
● Coherency: whenever the address space is shared – the same
memory location can have multiple instances (cached data) at
different processors
● Consistency: whenever different access times can be seen by
processors – write operations from different processors require
some model for guaranteeing a sound, consistent behaviour ( the
when issue – namely, the ordering of writes)
MESSAGE PASSING MULTIPROCESSORS
Message passing is defined as communication between multiple processors
by explicitly sending and receiving information. It has two kinds of routine such as,
● Send message routine
● Receive message routine
Both routines are used by a processor in machines with private memories to pass
a message to another processors
CLUSTERS
● Clustered systems are similar to
parallel systems as they both have
multiple CPUs.
● The difference is that clustered
systems are created by two or
more individual computer systems
merged together.
● They have independent computer
systems with a common storage
and the systems work together.
WAREHOUSE SCALE COMPUTERS
● A warehouse-scale computer (WSC) is a cluster comprised of
tens of thousands of servers.
● The construction cost may incur the building, electrical and
cooling infrastructure, the servers, and the networking equipment
that houses 50,000 to 100,000 servers.
● It requires innovation in power distribution, cooling, monitoring,
and operations.
● A WSC can be used to provide internet services.
○ search - Google
○ social networking - Facebook
○ video sharing - YouTube
○ online sales – Amazon
○ cloud computing services and many more applications
● The most popular framework for batch processing in a WSC is
Map-Reduce and its open-source twin Hadoop.