Announcements :

  • Please see Blackboard for complete list of announcements
  • First HW under Assignments→Problem Sets and first surveys under Assignments→Surveys.


Vital Information

Class lectures will be held on Mondays, Wednesdays, and Fridays 2:00pm - 3:00pm in ENS 127. There are currently 2 TA sessions scheduled and you may go to either one. Please check this page and Blackboard for announcements regarding TA sessions.

Th 6:30 - 8:00pmENS 306
F 12:30 - 2:00pmRLM 5.122

Please check the class web page on Blackboard frequently for updates, reading material, assignments, lecture notes, and feedback.

Instructors

Instructors Mailing List

sp12_ee460n@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. Only email us individually if your email is of a personal nature.

Professor:

Mattan Erez
ENS 538
mattan.erez@mail.utexas.edu
512–471–7846
Office Hours: Monday 3 - 4, Wednesday 10 - 11, or by appointment.

Teaching Assistants

The class only received an allotment of 30 hours of teaching assistant support. This has a few implications:

  1. The TAs will not be entirely equal with one TA having a greater share of the TA duties.
  2. The TAs are likely to be overloaded and therefore will count the hours they spend on class. If the devote more than their allotted times, they may not be able to answer all questions they get in email or extend their office hours.
  3. Because of the limited resources, the TAs may be forced to cut off help sessions with certain students if many other students are waiting for help.

Class TAs:

Dan Zhang (20-hr TA)
ENS 507 dzhang50@hotmail.com (but use sp12_ee460n@utlists.utexas.edu)
Office hours: Mon. 3;30 - 5pm and Tue. 4 - 5:30pm.

Jee Ho Ryoo (10-hr TA)
ENS 631
jr45842@utexas.edu (but use sp12_ee460n@utlists.utexas.edu)
Office hours: Wed. 3:30 - 5pm and Thur. 3:30 - 5pm.


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 usability of the processor
  • Measuring and understanding tradeoffs between performance, usability and design complexity

The syllabus contains a list of subjects that will most likely 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 three 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 prerequisites are EE 319K and EE312, 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 when he taught the course in the past, which will closely reflect the material covered this semester (although organized based on two lectures per week). 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, or if you have suggestions for improvement.

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


Class Policies

  • Class attendance and participation: Students are not required to attend classes, but past experience has shown that skipping classes will probably hurt your grade. I strongly encourage you to actively participate in class, and your contribution to the entire class will be taken into account in your final grade.
  • Collaboration: Group work is strongly encouraged in studying for exams, asking questions in office hours, and preparing problem sets. 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).
  • 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 more than two slip days on the final lab, which is due two days before the last class day.) Slip days will be tracked at the granularity of a day; if an assignment is 1 minute late, it is one day late.
  • Problem Sets (10% of final grade): Problems will be assigned at almost every lecture. Students will have roughly one week to complete a problem once it is assigned. The writeup will be due before class on the Wednesday following its assignment. In other words, the problems from three lectures will be handed in together (stapled together) before class on the following Friday. Students are encouraged to form study groups of two (no more than four) to work on homework problems. Only one copy of a problem per group should be turned in. Note that because of limited TA resources assigned this semester we reserve the right to only grade in detail a subset of the problems assigned every week (but we will grade every homework handed in in some fashion).
  • Labs (30% of final grade, 5% per lab): Most students say the labs are the MOST important component to learning the material, so please treat them as such. There are 6 labs and 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. Labs due dates are available here, and will be re-iterated as necessary.
  • Midterms (27% of final grade): The class will tentatively have three in-class midterms. Each midterm will contribute 9% to your final grade. 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 electronic anything (laptop, cell phone, calculator, etc.) or biological anything (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).
  • Final Exam (25% of final grade): The final exam will be held at the time alloted by the registrar, tentatively May 15, 9am-12pm. The final exam will contribute 25% to your final grade. The exam will be open book where “book” means any sort of paper-based product (book, magazine, handouts, old problem sets, old tests, etc.), but nothing else including electronic anything (laptop, cell phone, calculator, etc.) or biological anything (your roommate, husband, your hamster, another professor, etc.) is allowed. The exam is designed to test your ability to apply what you have learned and not your memory (though a good memory almost never hurts).
  • Subjective Evaluation (6% of final grade): The instructors will subjectively evaluate each student based largely on interest shown in the material and contributions made to the class. Contributions include asking good questions, correcting mistakes or suggesting concrete improvements to lecture, slides, or the class notes], …
  • Feedback (2% of final grade): Candid and frank (anonymous) feedback and criticism regarding the choice of topics, pace, workload, etc …, will be greatly appreciated by the instructors and will positively impact the class. To encourage it, I will publish many surveys on Blackboard. Filling all of them in will account for 2% of the final grade. Blackboard allows me to track who filled one in without associating answers with specific students.
  • Extracurricular Research: I do not provide opportunities for extra credit in the class, but I strongly encourage interested students to pursue further ideas and research related to class. If you are such a student, please see me about working together towards these goals.
  • Policy summary:
Component% of final grade
Problem sets10%
Labs30% (5% per lab)
Midterms27% (9% per midterm)
Final exam25%
Subjective evaluation6%
Feedback2%


Academic Dishonesty Policy

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 and our honor code see: http://registrar.utexas.edu/catalogs/gi09-10/ch01/.


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 Office of the Dean of Students at 471–6259, 471–4641 TTY (http://www.utexas.edu/diversity/ddce/ssd/) or the College of Engineering Director of Students with Disabilities at 471–4382.


Tentative syllabus

(topics that will most likely be covered at some point in the semester)

  • What is Architecture, Tradeoffs
  • Instruction Set Architecture, LC-3b ISA
  • Assemblers: Translating Assembly Language to ISA
  • Microarchitecture: Detailed LC-3b implementation
  • Physical memory, unaligned access, interleaving, SRAM, DRAM
  • Virtual memory, page tables, TLB, VAX model, PowerPC model, contrast with segmentation
  • Cache memory
  • Interrupts/Exceptions
  • Performance Improvement. Metrics, Pipelining.
  • Branch prediction
  • Out-of-order execution
  • Vector processing
  • Measurement Methodology
  • Intro to Multiprocessing, Interconnection networks, Amdahl’s Law, Consistency models
  • Cache coherency
  • Alternative Models of Concurrency: SIMD, MIMD, VLIW, dataflow, etc.
  • State-of-the-art Microprocessor


Important Dates (Tentative)