Recent site activity

Syllabus

CS 315 Computer Architecture

We have a class mailing list: cs315@cs.usfca.edu

Lecture: Tue and Thu 9:55am-11:40am, Harney 510
Lab: Wed 10:30am-12:15pm, Harney 530 and 535

Final: Tuesday, May 17th at 10:00am in Harney 510

Staff

Instructor: Greg Benson
Email: benson@usfca.edu
Phone: 415.422.5066
Office: Harney 533
Office Hours: Mon 2:10pm-3:00pm, Wed 1:10pm-2:00pm, and by appointment

Teaching Assistant: Nara Bayarsaikhan
Email: nbayarsaikhan@cs.usfca.edu
Office: Harney 535
Office Hours: Wed 5:00pm-7:00pm, Fri 1:00pm-2:00pm, and by appointment

Course Objectives and Topics

Computer architecture refers to the organization of the hardware that executes computer programs.  The processor (or CPU) is perhaps the most complicated and most important part of a computer system.  As such, its design has a large impact on the performance and proper execution of computer programs.  This course examines the design and implementation of computer processors at the digital logic level.

We will look at both the interface to the hardware (the machine language of a processor) and different ways this interface is implemented.  An important aspect of processor design is number and data representation.  Almost all modern processors are built using digital logic.  Using just a few fundamental building blocks (logic gates) we can construct complex processors.  In this course you will gain some experience with building parts of a processor using a computer-aided digital design tool.

The design of a processor and related subsystems such as main memory and cache memory can greatly affect the performance and power utilization of computer systems.  In addition to implementing a basic processor we will investigate strategies for improving performance using pipelining, multiple issue, multi-threading, and multiple cores.  We will also discuss how to design processors to conserve power and work in constrained systems such as mobile devices.  Time permitting we will also cover GPUs (Graphics Processing Units).

Our focus will be on the MIPS architecture.  We will learn MIPS assembly language and the MIPS instruction set format.  Ultimately, will will build processors that can run MIPS machine code.   We will be learning how to design digital circuits using schematic entry as well as using a hardware description language (HDL).   We will be using Xilinx ISE Webpack for our digital design work and Verilog as our HDL.
  
Learning Outcomes

On completion of this course the student should be able to accomplish the following:
  • Understand and manipulate different machine representations of numbers and data.
  • Write MIPS assembly language programs.
  • Quantitatively evaluate and compare the performance of different computer processors.
  • Understand and design computer instruction sets suitable for machine interpretation.
  • Construct arbitrary digital circuits for performing computation.
  • Design and implement a working computer processor using schematic entry, hardware description languages, and contemporary computer aided design tools.
  • Understand the issues and trade-offs in different performance enhancements for computer processors such as cache memory.

Prerequisites

  • CS 220 C and Parallel Programming with a grade of C or better, or
  • CS 221 C and Systems Programming with a grade of C or better.
  • Good C programming skills.

Course Materials

Required book:

Digital Design and Computer Architecture
David Money Harris and Sarah L. Harris
Morgan Kaufman Publishers, Inc., 2007
ISBN-13: 978-0123704979

Optional book:

Computer Organization and Design: The Hardware/Software Interface, 4th Ed.
David A. Patterson and John L. Hennessy
Morgan Kaufmann Publishers, Inc., 2008
ISBN-13: 978-0123744937

I will provide notes and other online resources.  In general I will make lecture notes available before each class period.  It is your responsibility to regularly check the class web page and the class mailing list for updates.

Software:

For the projects we will be using the following software:

Assignments and Exams

In this class you will have homework assignments, projects, and exams.  Tentatively, you will have 5 written homework assignments.  This are generally problems from the book.  Tentatively, there will 5 projects.  For the projects you will need to submit you solutions to your subversion repository.  Please create a project directory called cs315.  You should name project submission as follows: prj0, pr1, etc.

There will be two midterms and a final.  The purpose of the exams will be to assess your understanding of the topics covered in class and in the assignments.  The material covered on the exams will be based on the assigned reading, information presented in lecture, and what you learn by doing the assignments.  The exams will be open book and open notes.  Sharing of materials with your neighbor will not be permitted.  Be sure to come prepared to the exams with your book and notes.

Format for Submitted Homework

Use the following format for homework you submit.  Papers that deviate from this format will NOT be graded, and the student will receive no credit for the homework.
  • Arrange your answers in the order they problems are assigned.
  • Do not use red pen or red pencil.
  • Write legibly; avoid excessive erasures.
  • Use proper English grammar and punctuation.
These formatting rules are intended help expedite the grading process, thereby reducing the time it takes to return your homework.

Grading

Breakdown

 Homework (5) 10%
 Projects (5) 50%
 Midterms (2) 20%
 Final 20%

Policies

All assignments will be worth 100 points.  Grading will be done on an absolute scale:

 Min A-
 90%
 Min B-
 80%
 Min C-
 70%
 Min D-
 60%

If you score 90% or higher will be guaranteed an A-.  For some assignments and exams the Min values may be lowered depending on the level of difficulty.  The Min values will never be raised.

Conciseness and neatness of your solutions are considered in the grading of assignments and exams.  While being neat won't necessarily improve your score, being messy will certainly lower your score.

Only turn in what you intend to have graded.

Due Dates and Attendance

Assignments must be turned in on time to receive credit.  Except in the most extreme situations, late assignments will not be accepted.  If you cannot complete an assignment by the due date, hand in whatever you have done in order to receive partial credit.

Class attendance is not required, but it is highly recommended.  Please show up on time to class.

Regrades

In general, papers to be considered for regrades must be turned in no later than one week after the graded papers were made available, not from when the student picked up her or his paper.  However, at the end of the semester, papers to be considered for regrades must be turned in earlier, as will be announced.  Similarly, any misrecorded grades must be reported within a week of their posting, except as will be announced at the end of the semester. 

Missed Exams

Make-up or early exams will not be given except in the most extreme situations.  If you must miss an exam due to extreme illness, etc. contact the instructor (email is fine) or leave a message with the Department of Computer Science office (415.422.6530) before the exam.

Laptop Usage in Class

You may use your laptop during class as long as you are using it in order to take notes or to look up information regarding the lecture content.  Please do not user your laptop for any other activity such as to read or compose email, to use instant messaging software, or to play games.  This is very disruptive to me and the other students in the class, not to mention that it will distract you from learning the material.  If I have reason to believe you are not using your laptop in a productive way I will ask you not to use it in class.

Cheating and Plagiarism

Each student is to do his or her own work on the homeworks and projects.  It is fine to talk with others about general approaches used to solve the assignments or simply to understand the problem statement, but each student is to develop his or her own solution; collaborative efforts are not allowed.

In addition, using solutions from any other source is forbidden.  In particular, using solutions (either instructors' or other students') from previous offerings of this course is not allowed.  To summarize: all homeworks and labs are to be individual and original efforts.

If you are caught cheating or plagiarizing (e.g., collaboration, copying on exams, cutting and pasting text) I will assign you a F for the course and you will be reported to the Dean.

Email, Mailing List, and Course Web Page

When you email the instructor, TA, or the mailing list, be sure to email from an account to which we can directly reply.

Clarifications, changes, etc. regarding the class and assignments will be posted to the class web page class mailing list.  Also check your email and website frequently.