CS 315 Computer ArchitectureWe have a class mailing list: cs315@cs.usfca.edu You can subscribe here: https://cs.usfca.edu/mailman/listinfo/cs315 Course Website: http://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 StaffInstructor: Greg BensonEmail: 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 TopicsComputer 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:
Prerequisites
Computer Organization and Design: The Hardware/Software Interface, 4th Ed. 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 ExamsIn 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 HomeworkUse 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.
These formatting rules are intended help expedite the grading process, thereby reducing the time it takes to return your homework.
PoliciesAll assignments will be worth 100 points. Grading will be done on an absolute scale:
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 AttendanceAssignments 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 ExamsMake-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 ClassYou 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. 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 PageWhen 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. |