[Home]
[Announcements]
[Course desc]
[Prereq]
[Grading]
[Admin info]
[Assignments]
[Slides]
[syllabus].
Course Announcements
- 11/30 : Final exam is held Wednesday, Dec 7 at 1:30 - 4:15PM.
- 11/15 : Asg 2 help: cache size, block size and associativity may
be assumed to be a power of two. Prefer that any cache is
handled dynamically, but if needed, students may assume
at most 4*1024*1024 = 4194304 blocks in cache.
- 10/27 : Exam #2 on Wednesday (11/2). Assignment 2 resubmission due
Monday by noon.
- 10/03 : Announcement that an open-book assignment will probably be given
and completed in class on Friday 10/07/05. The assignment will
be open book,
and require the student to fill in a Tomasulo's timing table
as we have done in class (i.e., a table like that shown on
slide 41, but possibily multi-issue).
- 9/23 : Assignment due date moved to Monday 9/26 (before class).
If handed in by Wednesday before class, will be graded with -10
for being late. Any assignments not handed in by then are graded
as 0.
- 9/14 : Appendix A lecture finished, first exam confirmed for Monday 9/19.
Next week's recitations will not have quizzes.
- 9/09 : First asg given, first exam tentatively scheduled for
Monday, 9/19. Exam date may change based on lecture progress.
Exam will cover Chapter 1 and Appendix A.
- 8/31 : No classes Monday Sep 5 (Labor day), so M recitation should go to
W recitation instead.
- 8/26 : No recitation second week (7/29 & 7/30).
- 7/22 : First day of class is Wednesday 7/24 (come to class prepared to
take notes).
- 7/22 : No recitation this week (7/22 - 7/26).
Course Description
In this course you should learn how your computer operates at the
hardware level, and how this information may be utilized in optimization.
This includes how program instructions are executed within the processing
elements, as well as how modern heirarchial memories affect program
execution. Understanding these basic concepts is critical in any
performance-critical programming and design, including Operating Systems,
compilers, and high performance computing.
Topics of interest include (but are not limited to) the following:
- Ch 1: Terminology and trends in Computer Architecture; how to
measure computer performance and predict optimization gains, etc.
- App A: Understanding pipelining. In particular, speedups and
slowdowns from it, how to handle hazards in the pipe, handling interrupts
with varying length instructions, etc.
- Ch 3: Instruction level parallelism via multi-issue, dynamic
scheduling (Tomasulo's Algorithm) , branch prediction, superscalar and
VLIW design and speculation.
- Ch 4: Transformations to enhance ILP: scheduling, loop unrolling
dependence ameliorating techniques, software pipelining.
Further info on superscalar and VLIW designs.
- Ch 5: Modern memory heirarchy and its affect on program execution.
We will also discuss transformations to exploit this heirarchy.
If time allows, we will also cover chapters 2 (ISA design), 6 (multiprocessing)
and 7 (I/O).
Prerequisites
We will be programming in a unix environment, using ANSI C and make.
Textbooks
Required:
Computer Architecture, A Quantitative Approach by Hennessy & Patterson
(third edition).
Recommended (background):
Computer Organization and Design, by Patterson & Hennessy (third edition).
Evaluation Criteria
This is the first time to teach the class, so this may be modified during
the semester. The rough breakdown should be:
- 55-60% From three major exams.
- 30-40% from various projects.
- 5-10% class participation/quizzes.
For a more complete description, consult the
syllabus.
Administrative Information
Class Hours: Monday, Wednesday, and Friday 1PM to 1:50PM.
Location : HSS 2.02.04.
Instructor : Dr. Whaley.
Office Hours: MWF, 2-3PM.
There is also a recitation that goes with this course:
Rec Hours : M or W 12-12:50PM.
Location : SB 1.02.04.
Instructor: TBA.
NOTE : There is no recitation for the first week (Aug 22-26).
Students with disabilities:
If you have a physical, psychological, medical or learning disability that
may impact on your ability to carry out assigned course work, I would urge
that you contact University Disability Services (DS),
Multidisciplinary Studies Building, Room 2.03.18,
210-458-4157 (Voice), 210-458-4981 (TTY), 210-458-4980 (Fax),
homepage: http://www.utsa.edu/disability/.
Please bring a letter to me from the DS indicating your need for academic
accommodations within the first week of class. The syllabus and other class
materials can be made available in alternative format upon request.
Academic Integrity:
Remember that the goal of programming or written assignments is to enhance your
programming skills and understanding of the topics under discussion.
Thus indulging in academic dishonesty results in poor understanding of the
material as well as being unfair to other students.
In case you have any questions about whether an act of collaboration
may be construed as academic dishonesty, please clarify the issue with the
instructor before you collaborate.
Academic dishonesty can result in a grade of 'F'.
- It is understandable that discussing a problem with other people may
lead to more insight into the issues involved. Thus discussing a problem in
assignments/homeworks in a general way with other people is fine. However,
discussing the solutions to the problem or showing/examining actual
code is NOT acceptable.
- Every student must write his/her own code and homework. Showing your
code or homework to members of other teams, giving it to them, or making it
accessible to them (e.g., by making the files world-readable) is academic
dishonesty.
- You are responsible for ensuring that your code/documentation/results
are adequately protected and not accessible to other teams. Change permissions
of your working directory to 0700 ('chmod 0700 <directory>).
- Consulting code from a textbook, or from the Internet, in order to
understand specific aspects of your assignment is fine. However, copying
entire code or large parts of such code will be considered academic dishonesty.
If you borrow small parts of code from these sources, you must acknowledge
this in your submission and additionally you must clearly understand and be
able to explain how the code works. If you cannot explain your own code
in detail, it will be graded as zero.
[Home]
[Announcements]
[Course desc]
[Prereq]
[Grading]
[Admin info]
[syllabus].