EE460N Fall 2021 Descriptor

Last updated 25-Aug-2021

Vital Information

Class lectures will be held on Tuesday and Thursday 2:00pm - 3:30pm in ETC 2.108 and on Zoom. Some dates Zoom only — watch for announcements

Please check this page and Canvas for announcements regarding TA sessions.

Instructors

Instructors’ Mailing List

We will use Piazza in this class — Piazza enables all students to see questions and answers, which is important for both fairness and efficiency.

Please search Piazza (through Canvas) before posting a new question. Only email us individually if your email is of a personal nature. You should be able to post anonymously to Piazza so that only truly personal stuff will go through email. Remember, there are no stupid questions — just poor explanations.

Professor

Mattan Erez
mattan.erez@utexas.edu
Office Hours: (See pinned post in Piazza for Zoom link)
TBA — wear a mask if you come to my office or meet me via Zoom

Teaching Assistant


@utexas.edu
Office hours: , and by appointment.
Location: Zoom

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

  1. The TAs are likely to be overloaded and therefore will count the hours they spend on class. If they devote more than their allotted times, they may not be able to answer all questions they get or extend their office hours.
  2. 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.
  3. Office hours are subject to change, based on schedules and needs.

Remember to use Piazza and only email when it’s personal.

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)
  • Interactions of hardware and software
  • Improving the performance and usability of the processor
  • Taking advantage of parallelism
  • 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, which will require you to work hard. 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 assess how well you have learned the material, I will provide two mid-term exams and a final exam. The exams serve three critical roles: (1) to let me assess how well I am teaching, (2) to let you assess how well you are learning, and (3) to differentiate between those of you who internalized the material better from those of you who didn’t. 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. Also, part of your grade will be the instructors’ subjective evaluation of your work. An important part of this evaluation is how much we feel you contributed back to class in terms of asking good questions, pointing out mistakes or concepts that were poorly explained, and participating in Piazza discussions.

The class is meant to be challenging. It will take you time to do the assignments, labs, and study for exams. This is an advanced elective so I also expect you to be able to think for yourselves and some aspects (especially exam questions and some labs) should be intellectually challenging rather than “just follow the instructions”. I expect you to try hard and ask me or the TAs questions after you have thought things through.

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 (with the exception of Lab 1 and Lab 2 that can be done in pairs) must be your own individual work and are subject to the cheating policy (see below). This also applies to all test cases you need to create to test your design.


Prerequisites

The only formal prerequisites are EE 319K and EE312, with a grade of C or higher. It is also assumed that the you actually can program in 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. The extra grad lab will require the ability to understand and program some simple C++ as well.


Reading Material

There is no required textbook for the course. I will make available as appropriate copies of slides/notes that I will use throughout the course (though I plan to mostly use the blackboard during lecture). 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. If you feel like you must buy a book, I recommend you buy this one.

  • John Hennessey and David Patterson, Computer Architecture: A Quantitative Approach.

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

I will occasionally assign research papers for reading. Most will be optional reading, but some may be required. More will be required reading for those registered to EE382N.1


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 (other than Lab 1 and Lab 2, which can be done in pairs) must be your own individual work and are subject to the cheating policy (see below).
  • Late Policy: No extensions will be given for completing problem sets late. Programming labs will have slack days in lieu of special requests. Each student will be allowed 5 flexible slip (slack) 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 by up to 2 days max per lab. Slip days will be tracked at the granularity of a day; if a lab assignment is 1 minute late, it is one day late. We will automatically track late submissions. Slack days cannot be used for Labs 0 - 1.
  • Problem Sets (10% of final grade): There will be weekly problem sets assigned throughout the course. Students are encouraged to form study groups of two or three (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 will likely only grade in detail a subset of the problems assigned every week (we will grade the same subset, possibly just 1, randomly-chosen problem from every homework handed in). Before assigning final grades, the worse homework for each student will be dropped. This drop policy should cover any and all requests for late submissions so we will not be accepting late submissions. Homework due dates will be announced on the course schedule and during class. Note that many homework problems are chosen from prior-year exams — they may seem easier than your own exams, but they really aren’t.
  • Programming 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 regular programming 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. Lab regrading: for only Lab 3 and Lab 4, we will allow regrading. In the lab instructions we will describe how this will be done and the deadlines involved. Briefly, after submitting Lab 3, you will get a chance to fix all your mistakes and apply for regrading (you’ll need to fix your mistakes because Lab 4 relies on a correct Lab 3); your final Lab 3 grade will be 60% of your initial submission grade and 40% of your resubmission grade (and won’t be lower than your initial submission). Same for Lab 4 because Lab 5 depends on it.
  • Midterms (28% of final grade): The class will tentatively have two in-class midterms. Each midterm will contribute 14% 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 (24% of final grade): The final exam will be held at the time alloted by the registrar, tentatively Dec 11, 7 - 10pm. The final exam will contribute 24% 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 (4% 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 (0% 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.
  • 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 programming lab)
Midterms28% (14% per midterm)
Final exam24%
Subjective evaluation8%


Academic Dishonesty Policy

Plagiarism or any form of academic dishonesty (cheating includes, but is not limited to, copying another student’s work, bringing disallowed items into a test, copying material directly from a book, article or web site without including appropriate references, falsifying data, and doing someone else’s work for them) is a violation of University rules and may result in failing the class or may incur even steeper penalties. If it’s not clear, this includes asking someone who previously took this course or a similar one, for their work, code, etc., or using their work without their knowledge. For University policies and our honor code see: http://deanofstudents.utexas.edu/sjs/spot_honorcode.php. We take the Honor’s Code seriously and expect you to as well. We think it’s your responsibility to ensure that you and your fellow students strictly adhere to this code and will do what we can to help (including checking for cheating when appropriate).

We take this very seriously and you should too. It saddens me to say this, but I encounter some cheating almost every semester and it’s bad for everyone. It sets a bad atmosphere and attitude between students, it is painful for me to deal with, and it often leads to the cheating students failing the class (you are far better off not submitting an assignment or lab than attempting to cheat). If you are not sure whether something constitutes cheating or not, ask me! Asking after someone catches you is not OK. For example, searching the web for solutions to the labs, copying solutions blindly, or engaging someone to perform work for you are all clearly cheating. Yes, material and solutions can easily be found, but that doesn’t mean that using them isn’t cheating — it most definitely is.


College of Engineering Drop/Add Policy

The Dean must approve adding or dropping courses after the fourth class day of the semester.


Food Pantry and Career Clothes Closet

UT Outpost (UA9 Building, 2609 University Avenue) is equipped with a food pantry, and a career clothing closet, to ensure every Longhorn has access to professional clothes for job and internship interviews. Emergencies and financial hardships can interfere with student success beyond the classroom, and this program will serve as an additional resource for students. This resource is from Student Emergency Services in the Office of the Dean of Students.


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://diversity.utexas.edu/disability/) or the College of Engineering Director of Students with Disabilities at 471–4382.


Mental Health Counseling

College can be stressful and sometimes we need a little help. Luckily, we have a wealth of resources and dedicated people ready to assist you, and treatment does work. The Counseling and Mental Health Center (CMHC) provides counseling, psychiatric, consultation, and prevention services that facilitate student academic and life goals and enhance their personal growth and well-being. CMHC counselors are available Monday-Friday 8am-5pm by phone (512–471–3515) and Zoom videoconference. They are no longer available for in-person meetings due to social spacing and other precautions to reduce exposure to the coronavirus.
Alternatively, you can talk to Ms. Jeni Wade, LCSW right here in the College of Engineering. Ms. Wade is our Care Counselor and she can be reached at 512–471–8396.
If you are experiencing a mental health crisis (e.g. depression or anxiety), please call the Mental Health Center Crisis line at 512–471-CALL(2255). Call even if you aren’t sure you’re in a full-blown crisis, but sincerely need help. Staff are there to help you.


Religious Holy Days

A student who misses classes or other required activities, including examinations, for the observance of a religious holy day should inform the instructor as far in advance of the absence as possible so that arrangements can be made to complete an assignment within a reasonable period after the absence. A reasonable accommodation does not include substantial modification to academic standards, or adjustments of requirements essential to any program of instruction. Students and instructors who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the Office for Inclusion and Equity. The University does not maintain a list of religious holy days.


Absence for Military Service

In accordance with section 51.9111 of the Texas Education Code, a student is excused from attending classes or engaging in other required activities, including exams, if he or she is called to active military service of a reasonably brief duration. The maximum time for which the student may be excused has been defined by the Texas Higher Education Coordinating Board as ``no more than 25 percent of the total number of class meetings or the contact hour equivalent (not including the final examination period) for the specific course or courses in which the student is currently enrolled at the beginning of the period of active military service.’‘ The student will be allowed a reasonable time after the absence to complete assignments and take exams.


COVID-19

We will all need to make adjustments to benefit from in-person class interactions in a safe and healthy manner. Our protections against spreading COVID-19 include vaccinations, face coverings, social distancing, and staying at home if showing any symptoms. For the benefit of everyone:

  • Please follow current CDC guidelines and City of Austin guidelines and wear a face covering (over nose and mouth) while indoors, including during class. I cannot enforce this, but highly encourage you to. In fact, I will be wearing a mask unless I am comfortable taking mine off so that you can see my lips while I speak---I will only feel comfortable doing that if all of you are wearing a mask.
  • I encourage you to get vaccinated ASAP if you haven’t already. The vaccines are safe and effective.
  • More information is available at Protect Texas Together.
  • Class COVID19 policies will be kept up to date on a Google Doc and also in the Class Resources module on Canvas.


Safety Information

If you have concerns about the safety or behavior of students, TAs, Professors, or others, call the Behavorial Concerns Advice Line at 512–232–5050. Your call can be anonymous. If something doesn’t feel right, it probably isn’t. Trust your instincts and share your concerns.

Occupants of buildings are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside.

  • Familiarize yourself with all exit doors of each classroom and building you may occupy. The nearest exit door may not be the one you used when entering the building.
  • Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class.
  • In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, UT Austin Police * Department, or Fire Prevention Services.
  • Information regarding emergency evacuation routes and emergency procedures can be found at http://www.utexas.edu/emergency.

For more information, please see http://www.utexas.edu/safety.


Sanger Learning Center

More than one-third of undergraduates use the Sanger Learning Center each year to improve their academic performance. All students are welcome to join their classes and workshops and make appointments for their private learning specialists, peer academic coaches, and tutors. Please visit http://www.utexas.edu/ugs/slc or call 512–471–3614 (JES A332).


Title IX Reporting

Title IX is a federal law that protects against sex and gender-based discrimination, sexual harassment, sexual assault, sexual misconduct, dating/domestic violence and stalking at federally funded educational institutions. UT Austin is committed to fostering a learning and working environment free from discrimination in all its forms where all students, faculty, and staff can learn, work, and thrive. When sexual misconduct occurs in our community, the university can:

  1. Intervene to prevent harmful behavior from continuing or escalating.
  2. Provide support and remedies to students and employees who have experienced harm or have become involved in a Title IX investigation.
  3. Investigate and discipline violations of the university’s relevant policies.

Faculty members and certain staff members are considered `Responsible Employees or `Mandatory Reporters, which means that they are required to report violations of Title IX to the Title IX Coordinator at UT Austin. I am a Responsible Employee and must report any Title IX related incidents that are disclosed in writing, discussion, or one-on-one. Before talking with me, or with any faculty or staff member about a Title IX related incident, be sure to ask whether they are a responsible employee. If you want to speak with someone for support or remedies without making an official report to the university, email advocate@austin.utexas.edu. For more info about reporting options and resources, visit https://titleix.utexas.edu/campus-resources or contact the Title IX Office at titleix@austin.utexas.edu.


Campus Carry

`The University of Texas at Austin is committed to providing a safe environment for students, employees, university affiliates, and visitors, and to respecting the right of individuals who are licensed to carry a handgun as permitted by Texas state law.’‘ For more information, please see http://campuscarry.utexas.edu/students.


Land Acknowledgment

I would like to acknowledge that we are meeting on the Indigenous lands of Turtle Island, the ancestral name for what now is called North America. Moreover, I would like to acknowledge the Alabama-Coushatta, Caddo, Carrizo/Comecrudo, Coahuiltecan, Comanche, Kickapoo, Lipan Apache, Tonkawa and Ysleta Del Sur Pueblo, and all the American Indian and Indigenous Peoples and communities who have been or have become a part of these lands and territories in Texas. (Pronounciation guide)


References

This course syllabus follows guidance provided by Prof. Brian Evans and uses wording suggested by Prof. Mary Steinhardt and the Faculty Innovation Center (https://facultyinnovate.utexas.edu/effective-syllabus) at UT Austin. The above Land Acknowledgment was drafted by a faculty Committee on Land Acknowledgment and passed by the UT Austin Faculty Council on September 21, 2020.


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


Tentative schedule (likely to change at this point)