Syllabus: CS 361 - Introduction to Computer Architecture
Course Description:
This course introduces fundamental concepts of computer architecture. It covers processor design, memory systems, performance messurament, and assembely programming. Students will gain practical experience by working on a semester-long project in C/C++ programming, which involves creating software that simulates architectural features and behaviour for performance evaluation.
Prerequisites:
At least C in CS/EET 122
Textbook:
Computer Organization and Design RISC-V Edition: The Hardware Software Interface, Patterson and Hennessey, Morgan Kaufmann, ISBN-13: 978-0128122754, ISBN-10: 0128122757
Course Learning Objectives:
- Understand the structure of computer systems.
- Explain the concepts in instruction set architecture.
- Describe the organization and function of each element of a memory hirerachy, and their performance and tradeoffs.
- Analyze the behavior of pipelined CPU data path and control.
- Analyze behavior and performance of memory hierarchies with different cache designs.
- Create software that demonstrates hardware behaviour and performance (e.g. processor and cache memory) and evaluate the effects of software change.
Course Topics:
- Operations of the Computer Hardware
- Operands of the Computer Hardware
- Pipelined datapath and control
- Out of order execution
- The basic of caches
- Memory hierarchy and virtual memory
- Modern processor design
Course Grading
| Project |
60% |
| Labs/Quizzes/Homeworks |
15% |
| Exams |
25% |