CMPS 4210 Advanced Computer Architecture (4)
Foundations of parallelism in computer architecture. This course concentrates
on the quantitative principles of computer architecture, instruction set and
addressing design, instruction-level parallelism (ILP), compiler considerations
for parallelism, cache and memory design, multiprocessor (including multi-core
processors) and thread-level parallelism (TLP). A constant theme is how the
hardware can achieve greater efficiency by exploiting various types of
parallelism.
Prerequisite: CMPS 3240
Knowledge of a low-level (assembly) language
Basics of digital logic (e.g. adder, ALU, registers, etc.)
Basics of caches and memory design, including virtual memory
Knowledge of the functional organization of computer architecture
4 semester units. 3 units lecture (150 minutes), 1 unit lab (150 minutes).
Selected elective for CS
Computer Architecture: A Quantitative Approach, 4th edition, John Hennessy and
David Patterson, ISBN 0-12-370490-1.
None
Melissa Danforth, Marc Thomas
This course covers the following ACM/IEEE CS2013 (Computer Science)
Body of Knowledge student learning outcomes:
AR/Multiprocessing and Alternative Architectures
AR/Performance Enhancements
PD/Parallel Architecture
SF/Quantitative Evaluation
The course maps to the following performance indicators for Computer Science
(CAC/ABET):
- 3a. An ability to apply knowledge of computing and mathematics appropriate
to the discipline.
- Laboratory/homework assignments and questions on the midterms and
final require direct applications of the mathematical theory of algorithms
pertinent to computer science.
- 3c. An ability to design, implement and evaluate a computer-based system,
process, component, or program to meet desired needs.
- Embedded questions on midterms and final require direct applications
of the principles of design under constraints.
- 3i. An ability to use current techniques, skills, and tools necessary for
computing practice.
- Laboratory use of the SDE and the assignments made will address this
outcome.
Week | Chapter(s) | Topics |
1 | Chapter 1 |
Introduction to basic quantitative principles of processor design, Performance |
2 | Chapter 1 and Appendix B |
Instruction set architecture and addressing design |
3 | Chapter 5 and Appendix C |
Introduction to caches and virtual memory |
4 | Appendix A |
Pipelining: Basic concepts |
5 | Appendix A |
Pipelineing: Intermediate concepts, floating point support |
6 | Chapter 2 |
Concepts and challenges, Branch prediction |
7 | Chapter 2 |
Dynamic scheduling, Reservation stations, Register renaming |
8 | Chapter 2 |
Hardware-based speculation |
9 | Chapter 2 |
Multiple fetch and multiple issue |
10 | Chapters 2 and 3 |
Limitations on ILP, Case study |
11 | Chapter 2 |
Compiler design to exploit ILP |
12 | Chapter 4 |
Thread-level parallelism and the associated cache-coherancy and virtual
memory problems |
13 to 15 | Chapters 4 and 5 |
Memory hierarchy: coherency, synchronization, virtual memory |
Not applicable to this course.
Melissa Danforth on 31 July 2014
Approved by CEE/CS Department on [date]
Effective Fall 2016