EE460N -- Computer Architecture

Fall 2010
Course Descriptor and Syllabus

Vital Information

Class lectures will generally be held on Mondays and Wednesdays 5:00pm - 6:30pm in ENS 127. There are currently 2 TA sessions scheduled and you may go to any of the sessions. Please check this page and Blackboard for announcements regarding TA sessions.

TATimeRoom
TBD  Th 3:30-5:00pm RLM 5.116
TBD  Th 5:00-6:30pm RLM 6.126

Please check the class web page on Blackboard frequently for updates, reading material, assignments, lecture notes, and feedback.
 
Instructors
Instructors Mailing List:
Fa10_E460N@utlists.utexas.edu will reach all course instructors. Please use this list rather than Blackboard so that all instructors are up to date on questions.

Professor:
Mattan Erez
ENS 538
mattan.erez@mail.utexas.edu
471-7846
Office Hours: T 4:30 - 5:30pm and W 3:00 - 4:00pm, or by appointment.

TAs (office hours in LRC lab on 5th floor of ENS):
TBA
 
Overview
You have written at least a few programs in at least one high-level (well, whatever level you want to call C) language (since that is a prerequisite to the class), and you've compiled them into an executable and run those on a computer.  How do those executables execute?   Are there microscopic pixies in your computer that read your program and turn microscopic wheels and levers to execute that program for you?   An oracle that guesses the answer?  What magic takes an executable and performs trillions of tasks that run your executable on your inputs (and hopefully does the right thing?)

This class covers many of the concepts that implement that execution magic, more commonly called computer architecture.  We start by learning the machine language that a computer exposes to the user and how one can use that language to express algorithms in the form of machine language (or the more human-readable form of machine language called assembly language) programs.  We then learn how a simple hardware-based machine language interpreter (generally called a processor) is structured.  We use that as a launching point to explore

The syllabus contains a list of subjects to be covered along with dates for all assignments and the exams.


 
What I Expect
I expect you to learn the material.  To assist you in that goal, I will assign problems almost every lecture (due weekly) to help you learn the material and programming assignments (to let you practice the material). To prove that you have learned the material, I will provide two mid-term exams and a final exam.  I hope to cover most of the material one should expect in an introduction to computer architecture and organization, but I expect to not read to you from any textbook. You should consider my lectures and the corresponding treatments in various textbooks as different approaches to learning the same material. 

I will not take attendance, and attendance will not be considered in the grading.  However, do not expect me or the TAs to repeat a lecture/discussion section that you missed unless you have a very good reason for not attending that lecture/discussion section.

I encourage you to study in groups, and to come to my office in groups. That usually will result in all of you understanding the material better. You are encouraged to ask questions after you have thought about the material. You are encouraged to challenge assumptions. Computer Science and Engineering deals with "nature" that is man-made (person-made, actually, but that is awkward) and so we the people may have made it wrong.

If you are part of a study group, you will need to turn in only one copy of a solution to a problem set for the entire group (thus a serious incentive to be part of a study group). The front page should contain the names of all members of the study group who have contributed to the solution. Each student will receive the same grade for that problem set.

Although I encourage you to study together, examinations and programming assignments must be your own individual work and are subject to the cheating policy (see below). 

Prerequisites
The only formal prerequisite is EE 319K, with a grade of C or higher. It is also assumed that the student has facility in the programming language C, or is willing and able to pick up the small differences from C++ that will be needed to complete the six programming lab assignments.
Reading Material

There is no required textbook for the course. I will make available as appropriate copies of slides/notes I will use throughout the course. In addition, Prof. Derek Chiou has made available a collection of notes taken during Spring 2010, which will closely reflect the material covered this semester. Note that these are just notes and not an official text. Please let us know if anything in these notes seems wrong or is not clear.

I have not yet found a perfect textbook for computer architecture.  The following textbook is often considered the standard graduate architecture textbook and is good to have a reference.

The following textbooks are also good in their own way.

Class Policies
Cheating and Academic Dishonesty Policy
We strongly encourage you to form a study group, and to work together on the problem sets and study together to prepare for each exam. However collaboration is not permitted on the programming lab assignments (unless otherwise stated), the two mid-terms and final exam. The programs you write and the examinations you take MUST be your own work. Providing information to another student where prohibited, or obtaining information from another student where prohibited is considered cheating. This includes the exchange of any information during an examination and any code that is part of a solution to a programming assignment. Allowing another student to read something on your paper during an examination is considered cheating. In fact, leaving information unprotected so it can be compromised by another student is considered cheating. This includes sheets of paper lying about in your home, and computer files that are not properly protected. In addition, referring to code and programs of other current OR PAST students in the class will be considered cheating. If you cheat, you violate the soul of the University, which we take very seriously, and will deal with in the harshest possible way: it will be reported and the offender will, at a minimum, lose one letter grade. If you have any question as to what is permitted and what is not, ask the instructor or a TA FIRST. If you don't ask first, and you do something that is not allowed, the response "I thought it was okay" is not an acceptable justification. I am embarrassed to have to bother all of you with this paragraph, since for most of you, this paragraph is totally unnecessary.
Plagiarism or any form of academic dishonesty (cheating includes, but is not limited to, copying another student's work, bringing notes into a test and copying material directly from a book, article or web site without including appropriate references, falsifying data, and doing someone's work) is a violation of University rules and may result in failing the class or may incur even steeper penalties. For University policies see: http://registrar.utexas.edu/catalogs/gi09-10/ch01/index.html.
College of Engineering Drop/Add Policy
The Dean must approve adding or dropping courses after the fourth class day of the semester.
Students with Disabilities
The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Division of Diversity and Community Engagement, Services for Students with Disabilities, 471-6259, http://www.utexas.edu/diversity/ddce/ssd/
Tentative syllabus (topics that will most likely be covered at some point in the semester)
Important Dates (tentative)