RGPV · CSE · Semester 6
Advanced Computer Architecture
2 source papers · 32 distinct questions · 5 syllabus units
32 matching questions
Unit 1Parallel Computer Models & Networks7
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
Unit 2Processors & Memory Hierarchy5
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
Unit 3Pipelining & Scheduling7
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
14 marks
1 / 2 papers
14 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
Unit 4Cache Coherence & Multithreading7
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
Unit 5Parallel Programming6
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
1 / 2 papers
7 marks
Unit 1 · Question 1 / 32
Compare multiprocessors and multicomputers in terms of architecture and use cases.
My revision status
Sign in to track this question across devices.
Source evidence
Appeared in 1 of 2 available papers. Historical frequency, not an exam prediction.
- 2025 · juneQ1b · 7 marks
Reviewed answer not published yet
Use the syllabus and available unit material below to guide your preparation.
Syllabus context
Parallel Computer Models & Networks
Flynn’s Classification, System Attributes to Performance, Parallel computer models - Multiprocessors and multicomputers, Multivector and SIMD Computers. Data and resource dependences, Hardware and software parallelism, Program partitioning and scheduling, Grain size and latency, Control flow, data flow and Demand driven mechanisms. Static interconnection networks, Dynamic interconnection Networks: Bus Systems, Crossbar Switch, Multiport Memory, Multistage and Combining Networks.
Read unit notes · Unreviewed
As an RGPV University Professor, I understand the critical need for a concise yet comprehensive cheat sheet during those final, high-stakes hours. This document distills the core concepts of Unit 1, Advanced Computer Architecture, focusing on your high-priority topics. Master these, and you'll be well-prepared.
RGPV Advanced Computer Architecture - Unit 1 Cheat Sheet
-
Hardware Parallelism
- Definition: Hardware parallelism refers to the ability of a computer system to execute multiple operations or tasks simultaneously at the physical hardware level. This inherent concurrency is designed into the processor and memory hierarchy to boost computational throughput and efficiency. It's distinct from software parallelism, which relies on programming constructs to expose parallel tasks.
- Levels of Hardware Parallelism:
- Instruction-Level Parallelism (ILP): This exploits parallelism within a single instruction stream. Techniques like pipelining (overlapping instruction execution stages), superscalar execution (issuing multiple instructions per clock cycle to independent execution units), Very Long Instruction Word (VLIW) architectures (compiler groups independent instructions into a single long instruction), and out-of-order execution (reordering instructions to avoid stalls) are used to achieve ILP. The goal is to keep functional units busy and improve the instructions per cycle (IPC) rate.
- Data-Level Parallelism (DLP): This involves performing the same operation on multiple data items simultaneously. It's highly effective for applications with large, regular data sets. Single Instruction, Multiple Data (SIMD) architectures, such as vector processors and modern Graphics Processing Units (GPUs), are prime examples. Processors often include SIMD instruction sets (e.g., Intel's SSE, AVX; ARM's NEON) to accelerate multimedia and scientific computations.
- Thread-Level Parallelism (TLP): This involves executing multiple independent threads (sequences of instructions) concurrently. Modern multicore processors are the most common example, where each core can execute a separate thread. Simultaneous Multithreading (SMT), like Intel's Hyper-Threading, allows a single physical core to present itself as multiple logical cores, sharing execution resources but maintaining separate architectural states, thus improving resource utilization.
- Request-Level Parallelism (RLP): This is typically found in distributed systems where multiple independent requests (e.g., web queries) are processed in parallel by different servers or nodes. While often managed at a higher system level, the underlying hardware must support the concurrent execution of these independent tasks.
-
Coherence and Locality
- Coherence:
- Definition: In a shared-memory multiprocessor system, cache coherence ensures that all processors maintain a consistent view of memory, especially when multiple processors have cached copies of the same data block. Without coherence, a processor might read stale data from its cache if another processor has modified its own cached copy of the same data.
- Problem: When a data block is present in multiple caches, and one processor modifies its local copy, other caches hold an outdated (incoherent) version.
- Solutions: Cache coherence protocols are mechanisms to enforce consistency. The two main types are snoopy protocols (for bus-based systems) and directory-based protocols (for scalable, non-bus-based systems). These protocols typically use states (e.g., Modified, Exclusive, Shared, Invalid - MESI protocol) to track the status of cache blocks and dictate actions upon reads/writes.
- Types of Coherence Actions: Write-invalidate (most common, invalidates other copies on write) and write-update (updates other copies on write).
- Locality:
- Definition: Locality refers to the tendency of a processor to access the same data or instructions repeatedly within a short period (temporal locality) or to access data/instructions that are physically close to recently accessed ones (spatial locality). Exploiting locality is fundamental to the effectiveness of cache memory.
- Temporal Locality: If a particular memory location is accessed, it is likely to be accessed again in the near future. Examples include loop variables, stack pointers, and frequently called functions. Caches exploit this by keeping recently accessed data closer to the CPU.
- Spatial Locality: If a particular memory location is accessed, it is likely that nearby memory locations will be accessed soon. This is common in array traversals, sequential instruction fetches, and data structures. Caches exploit this by fetching entire cache blocks (or lines) when a miss occurs, bringing in surrounding data.
- Impact: High locality significantly reduces the average memory access time by increasing the cache hit rate, thereby improving overall system performance. Programmers and compilers often optimize code to enhance locality.
- Coherence:
-
Snoopy Protocols
- Context: Snoopy protocols are a class of cache coherence protocols primarily used in bus-based shared-memory multiprocessors. They are well-suited for systems where all processors can observe all memory transactions on a common bus.
- Mechanism: Each cache controller "snoops" or monitors the shared bus for all memory requests and responses from other processors. When a processor issues a read or write request for a memory block, all other cache controllers see this request.
- How it Works:
- Write Operation: When a processor wants to write to a data block that it has cached, it first checks the block's state. If it's in a shared state, the processor broadcasts a "write invalidate" signal on the bus. All other caches holding a copy of that block then invalidate their copies, ensuring that only one valid, modified copy exists. The writing processor then updates its local copy.
- Read Operation: If a processor requests a block that is not in its cache (a cache miss), it broadcasts a "read request" on the bus. Other caches snoop this request. If another cache has a modified copy of that block, it will supply the data directly to the requesting cache (or write it back to main memory first), and then potentially change its own block state (e.g., from Modified to Shared).
- States: Snoopy protocols typically define states for each cache block to manage consistency. A common example is the MESI protocol:
- Modified (M): The block is present only in this cache and has been modified (dirty). The main memory copy is stale.
- Exclusive (E): The block is present only in this cache and is clean (matches main memory).
- Shared (S): The block is present in multiple caches and is clean (matches main memory).
- Invalid (I): The block is not valid; it must be fetched from memory or another cache.
- Advantages: Relatively simple to implement and understand for small to medium-sized multiprocessor systems.
- Disadvantages: The shared bus becomes a bottleneck as the number of processors increases, due to increased traffic from coherence messages. This limits scalability.
-
Data-Parallel Model
- Definition: The data-parallel model is a programming and architectural paradigm where the same operation is applied simultaneously to multiple data items. It is inherently tied to SIMD (Single Instruction, Multiple Data) architectures.
- Core Idea: Instead of processing one data element at a time, a single instruction operates on an entire collection of data elements (e.g., an array or vector) in parallel. The parallelism is often implicit, meaning the programmer specifies the operation on the data structure, and the underlying hardware or compiler handles the parallel execution.
- Characteristics:
- Uniform Operations: Best suited for computations where the same set of operations needs to be performed on a large number of independent data elements.
- Global Synchronization: All processing elements typically execute the same instruction in lock-step, though masking can allow conditional execution for individual elements.
- Implicit Parallelism: The programmer often thinks in terms of operations on entire data structures rather than individual elements, simplifying parallel programming for suitable tasks.
- Examples:
- Vector Operations: Adding two vectors element-wise (
C = A + B), multiplying a matrix by a vector, or performing dot products. - Image Processing: Applying a filter (e.g., blur, sharpen) to every pixel in an image, where the same filter kernel is applied across the entire image.
- Scientific Simulations: Many numerical methods, such as solving partial differential equations or performing Monte Carlo simulations, involve repetitive calculations on large data grids.
- Multimedia Encoding/Decoding: Operations like applying transformations (e.g., Discrete Cosine Transform in JPEG) or performing pixel manipulations.
- Vector Operations: Adding two vectors element-wise (
- Hardware Support: Vector processors (e.g., Cray-1), array processors, modern GPUs (which are highly parallel SIMD machines), and CPUs with SIMD instruction sets (e.g., Intel's SSE/AVX, ARM's NEON) are designed to efficiently execute data-parallel workloads.
-
Flynn's Classification of Parallel Computers with Examples and Performance Impact
-
Context: Proposed by Michael J. Flynn in 1966, this classification categorizes computer architectures based on the number of instruction streams (IS) and data streams (DS) they can process concurrently. It provides a fundamental framework for understanding the capabilities and limitations of different parallel systems.
-
The Four Categories:
- SISD (Single Instruction, Single Data):
- Description: This is a traditional, sequential computer architecture. A single control unit fetches one instruction at a time, which operates on a single data item. There is no inherent parallelism at the instruction or data stream level.
- Example: Early personal computers, older mainframes, and most uniprocessor systems without explicit parallel hardware features.
- Performance Impact: Performance is limited by the speed of the single processor and sequential execution. No direct benefits from parallel processing.
- SIMD (Single Instruction, Multiple Data):
- Description: A single control unit fetches and decodes one instruction, which is then executed by multiple processing elements (PEs) simultaneously. Each PE operates on a different data item from its own data stream. All PEs perform the same operation in lock-step.
- Example: Vector processors (e.g., Cray-1), array processors (e.g., ILLIAC IV), GPUs (Graphics Processing Units), and CPUs utilizing SIMD instruction sets like Intel's SSE/AVX or ARM's NEON.
- Performance Impact: Highly efficient for data-parallel tasks (e.g., vector arithmetic, image processing, scientific simulations on regular grids). Performance scales well with the number of PEs for suitable workloads. However, it performs poorly on tasks with irregular data access patterns or significant control-flow divergence (branches).
- MISD (Multiple Instruction, Single Data):
- Description: Multiple processing units operate on the same data stream, but each unit executes a different instruction stream. This means different operations are performed concurrently on the same data.
- Example: This category has seen very few practical, general-purpose implementations. Some theoretical models or specialized fault-tolerant systems (e.g., redundant systems where multiple processors perform the same task and compare results) or certain types of pipelined architectures (where different stages are seen as different instructions operating on the same data flowing through the pipeline) are sometimes cited.
- Performance Impact: Not widely adopted for general-purpose computing due to its limited applicability. Its niche use cases often involve redundancy or specialized data transformations.
- MIMD (Multiple Instruction, Multiple Data):
- Description: This is the most flexible and widely used parallel architecture. Multiple independent processors, each with its own control unit, execute different instruction streams on different data streams concurrently. Processors can work on entirely different tasks or cooperate on a single large task.
- Example: Multicore CPUs (e.g., Intel Core i7, AMD Ryzen), shared-memory multiprocessors, distributed-memory multicomputers (e.g., HPC clusters, supercomputers), and most modern cloud computing environments.
- Performance Impact: Extremely versatile, capable of exploiting both data parallelism and task parallelism. It is the dominant architecture for general-purpose parallel computing. Performance depends heavily on efficient task decomposition, load balancing, communication overhead (in distributed systems), and synchronization mechanisms (in shared-memory systems).
- SISD (Single Instruction, Single Data):
-
Impact on System Performance Evaluation:
- Workload Suitability: Flynn's classification helps in matching the right architecture to a specific application workload. SIMD is ideal for highly regular, data-intensive tasks, while MIMD is suitable for general-purpose, complex, and irregular parallel problems.
- Scalability Potential: It indicates the potential for performance scaling. SIMD performance scales with the size of the data and the number of processing elements. MIMD systems can scale by adding more independent processors, but communication and synchronization overheads become critical.
- Programming Model Implications: The classification guides the choice of programming models. SIMD often uses vectorizing compilers or specialized APIs. MIMD systems use shared-memory APIs (e.g., OpenMP, Pthreads) or message-passing interfaces (e.g., MPI).
- Identification of Bottlenecks: It helps identify potential performance bottlenecks. For SIMD, it's often the lack of data parallelism or control-flow divergence. For MIMD, it can be communication latency, synchronization overhead, or load imbalance.
- Architectural Design Choices: It informs the design of new parallel systems, guiding decisions about memory organization, interconnection networks, and processor types based on target applications.
-
graph TD
A[Flynn's Classification] --> B{Instruction Stream};
B -- Single --> C{Data Stream};
B -- Multiple --> D{Data Stream};
C -- Single --> SISD[SISD: Single Instruction, Single Data];
C -- Multiple --> SIMD[SIMD: Single Instruction, Multiple Data];
D -- Single --> MISD[MISD: Multiple Instruction, Single Data];
D -- Multiple --> MIMD[MIMD: Multiple Instruction, Multiple Data];
SISD --> E[Traditional Uniprocessors];
SIMD --> F[Vector Processors, GPUs, SSE/AVX];
MISD --> G[Specialized Fault-Tolerant Systems];
MIMD --> H[Multicore CPUs, Clusters, Supercomputers];
-
Compare Multiprocessors and Multicomputers
- Multiprocessors (Shared Memory Systems):
- Architecture: Consist of multiple independent processing units (CPUs or cores) that share a single, global address space. All processors can directly access all memory locations.
- Memory Organization:
- Uniform Memory Access (UMA): All processors have equal access time to any memory location. Typically implemented with a shared bus, limiting scalability.
- Non-Uniform Memory Access (NUMA): Memory is physically distributed among processors, but logically accessible by all. Access time varies; local memory access is faster than remote. More scalable than UMA.
- Communication: Implicitly through shared memory. Processors communicate by writing to and reading from shared variables. Data transfer is handled by the hardware.
- Synchronization: Achieved using hardware-supported primitives like locks, semaphores, barriers, and atomic operations to protect critical sections and ensure data consistency.
- Scalability: UMA systems are limited by the bandwidth of the shared bus. NUMA systems offer better scalability but introduce complexity due to varying memory access latencies.
- Programming Model: Relatively easier to program as all data is globally accessible. Common APIs include Pthreads and OpenMP.
- Use Cases: Workstations, departmental servers, moderate-scale parallel applications where frequent data sharing is required, and latency is critical.
- Multicomputers (Distributed Memory Systems):
- Architecture: Composed of multiple independent computers (nodes), each with its own private memory, CPU(s), and I/O devices. There is no global shared memory; each node has its own local address space.
- Memory Organization: Each processor can only directly access its own local memory. Access to data on other nodes requires explicit communication.
- Communication: Explicitly through message passing over an interconnection network (e.g., Ethernet, InfiniBand, custom interconnects). Processors send and receive messages to exchange data.
- Synchronization: Achieved through message passing protocols, where messages themselves can carry synchronization information. Message Passing Interface (MPI) is the de-facto standard.
- Scalability: Highly scalable, as memory and processing power can be added by simply adding more nodes. Limited primarily by the latency and bandwidth of the interconnection network.
- Programming Model: More complex than shared-memory programming due to the need for explicit data distribution and message passing. Requires careful data decomposition and load balancing.
- Use Cases: High-Performance Computing (HPC) clusters, supercomputers, large-scale scientific simulations, cloud computing environments, and applications requiring massive parallelism.
- Multiprocessors (Shared Memory Systems):
-
SIMD Organization and its Applications in Vector Processing
- SIMD Organization:
- Single Control Unit: At the core of a SIMD machine is a single control unit responsible for fetching and decoding instructions. This unit generates control signals for all processing elements.
- Multiple Processing Elements (PEs): A set of identical, synchronized processing elements (often simple ALUs with associated registers and local memory). Each PE is capable of performing the same operation.
- Shared Instruction Stream: All PEs receive the same instruction from the control unit simultaneously. They execute this instruction in parallel, but on different data.
- Separate Data Streams: Each PE operates on a distinct data element from its own local data memory or a partitioned segment of a shared data memory. This allows for parallel processing of multiple data items.
- Masking/Conditioning: To handle conditional operations (e.g.,
if (A[i] > 0) C[i] = B[i]), SIMD architectures often include a masking mechanism. This allows individual PEs to be enabled or disabled based on a condition, so they either perform the operation or remain idle. - Vector Registers: In dedicated vector processors, data is loaded into vector registers, which can hold multiple data elements (a vector). A single vector instruction then operates on all elements within these registers.
- Applications in Vector Processing:
- Vector Processing: SIMD is the foundational architecture for vector processing. A single vector instruction (e.g.,
VADD V1, V2, V3to add two vectorsV2andV3element-wise and store the result inV1) is broadcast to all PEs. Each PE then performs its part of the operation (e.g.,V1[i] = V2[i] + V3[i]) concurrently. This significantly speeds up operations on large arrays or vectors. - Image and Video Processing: Operations like applying filters (convolution), pixel manipulations, color space conversions, image compression/decompression, and computer vision tasks (e.g., edge detection) are inherently data-parallel. GPUs, with their massive SIMD parallelism, are exceptionally good at these.
- Scientific Computing and Numerical Analysis: Many scientific workloads involve extensive matrix operations (multiplication, inversion), signal processing (FFT), and solving large systems of equations. These are highly amenable to SIMD execution.
- Multimedia Applications: Audio processing, 3D graphics rendering (vertex and pixel shading), and encoding/decoding of audio/video streams heavily leverage SIMD instructions found in modern CPUs (e.g., Intel's SSE/AVX, ARM's NEON) for accelerated performance.
- Cryptography: Certain cryptographic algorithms involve repetitive bit-wise operations on large blocks of data, which can be parallelized using SIMD.
- Machine Learning: The training and inference phases of neural networks involve vast numbers of matrix multiplications and element-wise activation functions, making SIMD architectures (especially GPUs) the workhorses of modern AI.
- Vector Processing: SIMD is the foundational architecture for vector processing. A single vector instruction (e.g.,
- SIMD Organization:
Emergency 3-Line Answer
Parallel architectures leverage Flynn's classification (SISD, SIMD, MISD, MIMD) to categorize systems based on instruction/data streams, with MIMD being dominant for general-purpose computing due to its flexibility. Hardware parallelism (ILP, DLP, TLP) and data-parallel models (SIMD) enhance performance by concurrent execution, while cache coherence (e.g., Snoopy protocols) and locality ensure data consistency and efficient memory access in shared-memory systems. Multiprocessors share memory for easier programming but limited scalability, whereas multicomputers use distributed memory and message passing for high scalability in HPC.