[Home]
[Announcements]
[Course desc]
[Prereq]
[Grading]
[Admin info]
[Assignments]
[Slides]
[syllabus].
Course Announcements
- 10/27: Exam#2 on 11/06/08.
- 10/27: IDEA survey on 11/04/08.
- 10/20: announced early handin of assignment giving +5 bonus to grade is
10/23/08, normal handin is 10/28/08.
- 10/13: Reposted corrected
assignment 1
- 08/26: First day of classes is Thursday, August 28 (come to class
prepared to take notes).
- 08/26: No recitation for week of Aug 28.
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 2: Instruction level parallelism via multi-issue, dynamic
scheduling (Tomasulo's Algorithm) , branch prediction, superscalar and
VLIW design and speculation.
- Ch 5/AppC: Modern memory heirarchy and its affect on program
execution. We will also discuss transformations to exploit
this heirarchy.
- Ch 4: Multiprocessors and thread-level Parallelism.
- Ch 6: Storage Systems.
Prerequisites
We will be programming in a unix environment, using ANSI C and make.
Textbooks
Required:
Computer Architecture, A Quantitative Approach by Hennessy & Patterson
(fourth edition).
Recommended (background):
Computer Organization and Design, by Patterson & Hennessy (third edition).
Evaluation Criteria
The rough breakdown should be:
- 55-75% From three major exams.
- 15-40% from various projects.
- 5-10% class participation/quizzes.
For a more complete description, consult the
syllabus.
Administrative Information
Class Hours: Tuesday and Thursday, 9:30AM to 10:45AM.
Location: HSS 3.03.20.
Instructor :
Dr. Whaley.
Office Hours: Tuesday 11-12PM and Thursday 3-4PM, or by appointment.
Course recitation.
There is also a recitation that goes with this course:
Rec Hours : Thursday 11:00-11:50PM.
Location : HSS 3.02.18.
Instructor: Guo Yifeng (yguo at cs.utsa.edu
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' for the class.
- 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].