This is an old revision of the document!
Table of Contents
Format
Expected Learning Outcomes
By the end of the course, you are expected to be able to:
- Translate a given high-level program to assembly/machine language
- Represent numbers, characters, and other forms of data in binary
- Express logic using assembly language instructions
- Utilize registers, the stack, the heap, and the data segment to store data
- Encode assembly language instructions in machine language format
- Build a CPU out of basic building blocks such as gates and flip-flops
- Build the ALU using gates and Verilog
- Design the CPU's datapath and control
- Implement a pipeline and handle its hazards
- Augment the CPU with a cache
- Assess the end-to-end performance
- Identify the key performance drivers and their physical limits
- Compare and contrast the RISC and CISC approaches
- Compute the throughput of a pipelined CPU for a given code fragment
- Analyze the effect of a cache of a given specs on the system's performance
Activities
- Labs
The labs focus on technology. They are self-contained and enable you to learn the MIPS assembly and machine languages and explore the CPU datapath and control through Verilog.
- Lectures
The lectures focus on concepts, principles, and the big-picture. Certain MIPS-specific details are also covered to demonstrate complex ideas or to compare and contrast implementations.
- Quizzes and Games
Some lectures will include pop quizzes or games such as Jeopardy aimed at reviewing and discussing ideas, uncovering fallacies, and avoiding pitfalls. These activities are intended for active-learning, not assessment.
- Assigned Readings
The lecture notes (linked to from the Weekly Schedule) include assigned readings from the textbook and from selected articles. These are integral parts of the learning experience of this course.
- Forum
You are strongly encouraged to contribute to this group. By simply framing an issue into a question, you help sharpen the learning focus for yourself and for others. And by answering a question or engaging in a discussion, you sharpen your ability to prove a point or assess one.