0% found this document useful (0 votes)
0 views4 pages

Midterm - Study Guide

The study guide for CSC 521 - Advanced Computer Architecture covers foundational concepts, computational models, execution models, and parallel processing essentials. It includes topics such as instruction-level parallelism, VLIW vs. superscalar architectures, and various programming techniques for parallelism. Additionally, it features sample questions for assessment, including true/false, multiple choice, and short answer formats.

Uploaded by

Braincain007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views4 pages

Midterm - Study Guide

The study guide for CSC 521 - Advanced Computer Architecture covers foundational concepts, computational models, execution models, and parallel processing essentials. It includes topics such as instruction-level parallelism, VLIW vs. superscalar architectures, and various programming techniques for parallelism. Additionally, it features sample questions for assessment, including true/false, multiple choice, and short answer formats.

Uploaded by

Braincain007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

CSC 521 - Advanced Computer Architecture

Study Guide

Topics
I. Foundations of Computer Systems

1. Computer Architecture vs. Computer Organization


2. Programmer’s vs. Implementer’s view
3. Functional specification vs. hardware realization

II. Computational Models

1. Von Neumann Architecture


2. Harvard Architecture
3. Parallel Models (Flynn’s Taxonomy)
4. Other Models

III. Execution Models

1. Sequential vs. Parallel Execution


2. Parallel Execution Types
3. Advanced Execution Techniques

IV. Parallel Processing Essentials

1. Why Parallelism?
2. Concurrency vs. Parallelism
3. Available vs. Utilized Parallelism
i. Functional vs. Data parallelism
4. Techniques
• Pipelining (Stages)
• Multithreading
• SIMD/CUDA/GPU acceleration

V. Programming for Parallelism

1. Low-Level APIs
2. High-Level Models
3. Functional Programming & Parallelism

1
VI. Instruction-Level Parallelism (ILP)

1. 1. What is the purpose of ILP?


2. Different Dependency issues
i. RAW, WAR, WAW
ii. Branching
iii. Hardware unit conflicts
3. Instruction Scheduling

VII. VLIW vs. Superscalar Architectures

1. Properties of VLIW (Very Long Instruction Word)


2. Superscalar Processors

VIII. Other Topics

1. MESI Protocol
2. Register Renaming
3. Intel & ARM Microarchitecture
4. Edge AI & Heterogeneous Computing
5. Quantum and Neuromorphic Computing

2
Sample Questions

True/False & Multiple Choice

1. T F : Thread-level parallelism is most commonly used in distributed GPU


systems.

2. T F : Register renaming helps eliminate control dependencies in CPUs.

3. In Flynn’s Taxonomy, which model executes different instructions on different


data?

a. SIMD
b. SISD
c. MIMD
d. MISD

4. In pipelining, which stage comes after “Execute”?

a. Fetch
b. Decode
c. Memory
d. Write-back

5. The VLIW architecture relies on the for instruction scheduling.

a. Hardware
b. Compiler
c. Operating system
d. Scheduler thread

3
Short Answer

1. Differentiate between functional parallelism and data parallelism with one ex-
ample each.

2. Explain briefly why parallelism is very hard to achieve with our current systems.

Assembly Coding

1. Convert the following code into an ASM program, do not use the MUL in-
struction:
def multiply (a , b , c ) :
result = a * b * c
return result

print ( multiply (5 , 6 , -3) ) # should return -90

2. Write an Assembly program that will print out the word ‘success’ if the RAX
register contains a positive value and ‘failure’ if the RAX register contains a
negative value.

You might also like