📜 Course Description
Instructor: Professor Maggie Delano
Pronouns: they/them
Office: Singer 233
Office hours: by appointment (email me if none of those times work)
Email: [email protected]
Lecture: Tu/Th 2:40pm–3:55pm
Lab: Mondays 1:15pm-4pm in Singer 221
Natural Sciences and engineering practicum.
1.0 credit
This course covers the physical and logical design of a computer. Topics include current microprocessors, CPU design, RISC and CISC, pipelining, superscalar processing, caching, virtual memory, assembly and machine language, and multiprocessors. Labs cover performance analysis via simulation and microprocessor design using CAD tools.
Prerequisite: ENGR 015, CPSC 031, or CPSC 035
🎓 Learning Objectives and Outcomes
In this course, you will:
- Learn about and apply principles of computer architecture concepts through a combination of interactive textbook problems and lectures
- Complete seven hands on labs exploring the basics of programming in MIPS assembly and in Verilog, including performance characterization and optimization
- Prototype a single cycle processor from scratch
- Design and prototype an assembly or Verilog based final project
By the end of this course, you should be able to:
- Discuss why learning Computer Architecture is valuable for computer scientists and engineers, even if they do not build the hardware itself
- Use benchmarks and other information about processors to choose a processor for a given task
- Prototype, characterize, and optimize the performance of digital circuits using Verilog
- List the different execution steps for a computer processor and discuss software and hardware strategies for optimizing code size and performance
- Describe the differences between reduced instruction set computer architectures (RISC) and complex instruction set computer architectures (CISC), and give examples of CPUs using each type
📚 Required Texts
Required Texts