This is an old revision of the document!
Table of Contents
Format
Expected Learning Outcomes
By the end of the course, the students is expected to be able to:
- Translate high-level programs (such as those in Java or C) to assembly language and, finally, in machine language on an instruction-by-instruction basis.
- Write and debug simple programs involving input/output routines, arithmetic operations, decisions, repetitions, and procedures directly in an assembly language such as MIPS.
- Design a prototype Arithmetic Logic Unit (ALU) from basic building blocks such as gates and flip flops using elementary logic design concepts.
- Construct the datapath and control unit of the processor using either of the: (i) single cycle implementation; (ii) multiple cycle implementation, or (iii) pipelining; and explain how computer execute programs in these implementations.
- Abstract computer hardware by building modules in a hardware description language such as Verilog.
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.