CSSE232 - Computer Architecture I

Rose-Hulman Institute of Technology

Computer Science and Software Engineering Department

Fall 2022-2023

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 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, W 08:00 - 09:50 in O159
Section 2 : MTRF 10:00, W 10:00 - 11:50 in O159
Section 3 : MTRF 11:00 in O159, W 10:00 - 11:50 in O169
Section 4 : MTRF 14:00, W 13:00 - 14:50 in O159
Section 5 : MTRF 15:00, W 15:00 - 16:50 in O159

Instructors

Mohammad Nourredine
Moench F214
noureddi@rose-hulman.edu

Sid Stamm - check my schedule
Moench D221 812-877-8396
stammsl@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 RISC-V Edition, 2nd edition
D. A. Patterson & J. L. Hennessy
Morgan Kaufmann, 2021 ISBN 978-0-12-820331-6

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 to help you focus on the material we cover. Quizzes will be distributed at the beginning of class and will be picked up at the end of the lecture.

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, where you have the opportunity to demonstrate your own mastery of the material. 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 (and a team) will design a miniscule instruction set computer to demonstrate your ability to apply the concepts from this class. You will use the provided 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 that will help you stay on track to complete the project. 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).