CSSE232 - Computer Architecture I
Rose-Hulman Institute of Technology
Computer Science and Software Engineering Department
Fall 2015-2016

Course description

Computer instruction set architecture and implementation. Specific topics include historical perspectives, performance evaluation, computer organization, instruction formats, addressing modes, computer arithmetic, single cycle and multicycle data paths, and processor control. Assembly language programming is used as a means of exploring instruction set architectures. The final project involves the complete design and implementation of a miniscule instruction set processor.

Course prerequisites

CSSE 120 or ECE 130

Technical prerequisites

We assume that students in this course are familiar with a number of topics including parameterized procedures, combinational and sequential digital logic circuits, 2's complement representation of signed integers, and hexadecimal representation. The first homework assignment is a review, which will help students assess their own skills with respect to these prerequisite topics.

Social prerequisites

We expect students in this course to:

Schedule

See the main course page for schedule details.

Schedule

Section 1 : MTRF 2 in O257, W 1-2 in O257
Section 2 : MTRF 3 in O257, W 3-4 in O257
Section 3 : MTRF 4 in O257, W 1-2 in O157

Instructors

Micah Taylor
Moench F205 - check my schedule
812-877-8396
taylormt@rose-hulman.edu

Sid Stamm
Moench F216 - check my schedule
812-877-8364
stammsl@rose-hulman.edu

I will be available from 14-16 EST and 21-23 EST online. My office hours are shared between all classes, so you may need to wait your turn. Office hour comments are public. Email me if you wish to have a private conversation. You should expect feedback on your assignments within one week of the due date.

Course objectives

This is what you will learn through this course.

Required resources

Book: Computer Organization and Design, 5th edition
D. A. Patterson and J. L. Hennessy
Morgan Kaufmann, 2013
List of known errors.

In addition, Xilinx ISE version 14.7 design tools are required for labs and the final project.

Reading

It is to your benefit to do the reading assignments before they are covered in class so we can devote class time to discussing difficult ideas and algorithms. You are responsible for all the material in the assigned sections of the book, whether explicitly discussed in class or not.

Assignments

There will be several written homework assignments. Your homework should be presented using good, style. Your name and mailbox number should appear at the top of each page. Be sure to state any assumptions that you make to solve the problem. Above all it must be legible-if the graders can't read it, you won't earn credit.

Quizzes

Daily quizzes will be given. Quizzes will be distributed at the beginning of class and will be picked up at the end of the lecture.

Laboratories

There are several labs listed on the on the schedule. Some use the SPIM Simulator. Others focus on the final project and use the Xilinx ISE tools. Lab assignments are available on the course web site. Completed labs are submitted via verification and svn.

Exams

There will be two midterm exams. Exams will be reviewed in class. You must have a passing average grade on the exams to pass the class.

Final Project

During the second half of the course you will design a miniscule instruction set computer. You will also use the Xilinx software suite to model your design, test it, debug it, assess its performance, and implement it on a Field Programmable Gate Array (FPGA). The project description and requirements can be found on the course web page. You will work in teams of four. During weeks 5-10 there will be scheduled project milestones to be delivered by each team. The project will be due in its complete and tested form during the tenth week of the quarter. The project presentations (with accompanying demonstrations) will be held during the tenth week.

You must complete the project to pass the course.

Grading

Homework and Quizzes15%
Labs and in class exercises15%
Exams30%
Project40%

Collaboration

Collaboration is encouraged on homework and laboratories. It is prohibited on quizzes and exams. When you collaborate, you must:

Working out a homework solution as a group can be acceptable collaboration if you follow the guidelines above. Each *individual* is responsible for understanding the entire solution. For homework, this means that once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently.

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly. Nor should you.

You should never look at another student's code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.

Copying is not collaboration. Plagiarism (where a student solution to an exam or assignment was copied from another student's solution, past or present, or any solution that is posted anywhere)* or other cheating will result in a score of -100% for the assignment or exam. Egregious cases will result in a grade of "F" for the course. Furthermore, such cases will also be reported to the Department Head and Dean of Students, as required by the Institute policy, to be added to the student's record and so discourage repeat offenses. More importantly, such dishonesty steals your own self-esteem and your opportunity to learn. So don't cheat!

Resources

Rose provides a number of resources to help you: