EE 360N - Computer Architecture, Fall 2008

Unique Numbers 16885, 16890, 16895, 16900

Course Title:

Computer Architecture

Instructor:

Derek Chiou (http://www.ece.utexas.edu/~derek)

Office:

540 Engineering Sciences Building (ENS)

Phone:

512.232.7722

Email Address:

derek at ece period utexas period edu

Instructor Office Hours:

M 6:30pm to 7:30pm (after class), T 2PM-3PM, and by appointment

 

Teaching Assistants:

Gene Wu (gene.y.wu@gmail.com)

Doe Hyun Yoon (doehyun.yoon@gmail.com)

 

 

 

Course Home Page:

On Blackboard

Course 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

  • implementing the processor (in a basic sense)
  • improving the performance and useability of the processor
  • measuring and understanding tradeoffs between performance, usability and design complexity

A separate handout contains a list of subjects to be covered along with dates for all assignments, quizzes and the final exam.

What I expect: I expect you to learn the material.  To assist you in that goal, I will assign problems almost every lecture 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 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, the TAs and I will not 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). 

Meeting Info:

The course consists of three hours of lecture and a 1.5 hour discussion section each week. Lectures will generally take place MW, from 5:00pm to 6:30pm, in ENS 127, with an occasional lecture at some other time at the convenience of the class. A list of topics we hope to cover can be found in the Course Syllabus.  Currently, there are four discussion sections scheduled: TH 3:30PM-5PM in BEN 1.106, TH 5PM-6:30PM in ETC 2.102, F 11PM-12:30PM in ENS 145 and F 12:30PM-2PM in ENS 116.   Discussion sections will start the week of September 1st.  Students are free to attend any discussion section(s) they choose.

Textbook:

There is no required textbook for the course. I will make available as appropriate copies of notes I will use throughout the course.


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.

 

John Hennessey and David Patterson.  Computer Architecture: A Quantitative Approach.  2006. ISBN 0123704901.


The following textbooks are also good in their own way.


Harvey G. Cragon, Computer Architecture and Implementation, Cambridge University Press, 2000, ISBN 0521651689, 0521657059

Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Computer Organization, 5th Edition, McGraw Hill, 2001, ISBN 0072320869

Andrew Tanenbaum, Structured Computer Organization, 5th Edition, Prentice Hall, 2005, ISBN 0131485210

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.

Additional course resources:

As noted above, class handouts will be supplied when necessary to supplement the concepts discussed in lecture. Other information will be downloadable from the course home page.

Homework policy:

Problems will be assigned at almost every lecture. Students will also have exactly one week to complete a problem once it is assigned. Students will be encouraged to form study groups of two (no more than two) to work homework problems. Only one copy of a problem per group should be turned in.

Lab policy:

Most students say the labs are the MOST important component to learning the material, so please treat them as such.  There are 6 labs.  Later labs tend to depend on earlier labs.  We will not hand out lab solutions, so BE SURE TO DO THEM AND DO THEM RIGHT.  Otherwise, you'll wind up having to do them anyways.

Late policy:

No extensions will be given for completing the programming labs or problem sets, except that each student will be allowed 4 flexible slip days for the labs. A student may divide his/her slip days across labs in any way he/she wishes to extend deadlines for the labs. (The exception: you can not use any slip days on the final lab, which is due on the last class day.)  Slip days will be tracked at the granularity of a day; if an assignment is 1 day and 1 minute late, it consumes two slip days.

Cheating:

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. If you cheat, you violate the soul of the University, which we take very seriously, and will deal with it harshly. Our standard penalty is a letter to the Dean (in the form of a cheating form), a drop of one letter grade for your final grade, and a 0 on the thing you cheated on.  It is NOT worth it to cheat.  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. 

Exams and Final policy:

There will be two exams in class, the first on October 15, the second on November 17. There will be a final exam during the normal final exam period, tentatively (the registrar releases the final schedule three weeks before finals period) scheduled for Friday, December 12th from 7PM-10PM. All exams are open book where “book” means any sort of paper-based product (book, magazine, handouts, old problem sets, old tests, etc.), but nothing else including anything electronic (laptop, cell phone, calculator, etc.) or anything biological (your roommate, husband, your hamster, another professor, etc.)  is allowed.   Exams are designed to test your ability to apply what you have learned and not your memory (though a good memory almost never hurts).

Grading mechanics:

Nominally, grades are based on the following percentages:
Problem sets: 9% total (divided amongst all of the points from each problem)

Scribing lecture: 1% (will discuss in class)
Programming Lab Experiments: 30% (5% each, times 6 labs)
Midterms: 30% (14% + 1% each, two midterms)
Final exam: 25% (23% + 2%)
My subjective evaluation of your work including a visit to me in the first 2 weeks of class: 5%

Policy: Problem sets and programming assignments are due on the date and at the time specified.
Make-up exams will be given only in extraordinary situations. Excused absence from an exam must be obtained in advance except under very rare circumstances.

Infrastructure:

We will be using Blackboard as much as possible to distribute course materials (lecture notes, assignments, etc.), host the discussion board, etc.

 

The MEC Common Evaluation form will be used to evaluate the instructor in this course.

Additional details

The deadline for dropping without possible academic penalty is September 24th.  Last day to drop with Dean’s approval is October 22th.

Allegations of Scholastic Dishonesty will be dealt with according to the procedures outlined in Appendix C, Chapter 11, of the General Information Bulletin,http://www.utexas.edu/student/registrar/catalogs

  

.

The University of Texas at Austin provides, upon request, appropriate academic adjustments for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4241 TDD, or the College of Engineering Director of Students with Disabilities, 471-4321.