CSSE232 - Computer Architecture I

Rose-Hulman Institute of Technology

Computer Science and Software Engineering Department

Winter 2020-2021

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 132 or (CSSE 120 and ECE 233)

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 09:00 online, W 08:00 - 09:50 in O259
Section 2 : MTRF 10:00 online, W 10:00 - 11:50 in O259

Instructors

JP Mellor
Moench F228
812-877-8085
mellor@rose-hulman.edu

Robert Williamson - Robert's schedule
Moench F205
williarj@rose-hulman.edu

Course objectives

This is what you will learn through this course.

  1. Apply the principle of abstraction in analysis and design problems.
  2. Given the syntax and semantics for an assembly language, design, implement, test, and debug simple programs in that language that involve arithmetic operations, input and output, various control structures (including selection, iteration, and recursive procedures), and interrupts.
  3. Design an instruction set architecture that is appropriate for a given application, taking into consideration key computer organization design principles.
  4. Design a hardware implementation of an instruction set architecture, and use modern computer aided design tools to model, simulate, test, and debug that implementation.
  5. Analyze the performance of an instruction set architecture and implementation in terms of metrics such as CPU execution time, instruction count, cycles per instruction (CPI), clock frequency, throughput, and response time.

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.

Homework 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. These will be administered via Moodle in conjunction with recorded lectures.

Laboratory Assignments

There are several labs listed on the on the schedule. Some use the Mars MIPS 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 git.

Exams

There will be two midterm exams. You must have a passing (D or higher) average grade on the exams to pass the class.

In the case where we cannot hold in-person examinations, a multi-part online substitute will be administered. In this case, to pass the class you must have a passing average on the multi-part substitute and submit a good-faith attempt on all parts.

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 optionally 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 final week.

You must complete the project to pass the course.

Grading

Homework and Quizzes 15%
Labs and in-class exercises 15%
Exams 30%
Project 40%

Student Engagement Policy

The cumulative nature, complexity, and fast pace of the course make engagement in course material a necessity. There are also important benefits to be gained from entering into classroom discussion, learning to express one’s own ideas, and learning from the ideas of others. We expect regular engagement in course content. This includes completing the following on time: daily quizzes, video lessons, attending virtual classes, and participating during in-class labs, activities, and discussions.

We will permit make-up work to be done when a student has legitimate conflicting obligations, such as illness, quarantine, or emergency. These conflicts do not excuse the student from course responsibilities. The student is responsible for informing the instructor of any legitimate issues and making arrangements for make-up work, if permitted, as soon as possible. Whenever possible, the student must discuss unavoidable absences with instructors in advance. A lack of engagement may result in the student receiving a failing grade for the course.

Collaboration

Collaboration is encouraged on homework, quizzes, and laboratories. It is prohibited on exams. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. In all cases, each individual is responsible for understanding and writing out the entire solution. For example, on homework, this means that once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently. Copying is not collaboration.

Any kind of plagiarism or cheating will result in a severe penalty in the course and Student Affairs will be notified. See this page for details.

Most importantly, any actions that reduce your ability or your opportunity to learn can be considered academic misconduct. Make sure you learn!

Resources

Rose provides a number of resources to help you:

Concerns or Feedback

If you have any concerns about any course matters, you should tell someone. You can email your instructor, speak to your instructor, or leave anonymous feedback in Moodle. You can also contact the department head, Student Affairs, or another Rose employee you feel comfortable with.

While you are more than welcome to consult any member of our department if you have concerns, we realize it's helpful to have a few names to start with. If you have a concern and are not sure where to go, the following CSSE faculty have volunteered to be help out with any concerns you may have: Amanda Stouder (F222) and Kim Tracy (D216).