📜 Course Description
Instructor: Professor Maggie Delano
Pronouns: she/her/they/them
Office: Remote
Office hours: by appointment (email me if none of those times work)
Email: [email protected]
Lecture: Tu/Th 11:45am-1pm
Lab: self-scheduled
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
By the end of this course, you will be able to:
- Discuss why learning Computer Architecture is valuable for computer scientists and engineers, along with ethical considerations when designing computer hardware
- Use benchmarks and information about processors to choose a specific processor for a given task
- Write and optimize programs in MIPS Assembly for code size and execution speed
- Implement and compare the execution speed and size of multiple methods for implementing fixed and floating point arithmetic operations using Verilog
- List the different execution steps for a computer processor, build a single cycle processor using Verilog, and write simple MIPS assembly code to test the processor for all instruction types
- Describe how a single cycle processor can be modified to enable pipelining, and discuss potential hazards and how to minimize them through both hardware and software
- Describe the differences between reduced instruction set computer architectures (RISC) and complex instruction set computer architectures (CISC), and give examples of microprocessor families using each type
- Discuss the affordances of multiprocessors, along with the challenges (e.g. coherence, communication costs)
- Describe the memory hierarchy, including the hardware of different types of memory, caches and virtual memory, error detection and correction, and how to write efficient programs given memory constraints
📚 Required Texts
Required Texts
We will be using a required electronic and interactive textbook called a zyBook. The zyBook can be purchased through the Swarthmore bookstore using TAP credit or directly from zyBook.
If you have purchased the book from the bookstore: