CSE 378 - Autumn 2002
Machine Organization and Assembly Language Programming
Class Meetings
Main Lectures: |
JHN 064 |
MWF 11:30 - 12:20 |
Section AA: |
MOR 116 |
Th 9:30 - 10:20 |
Section AB: |
EE1 042 |
Th 12:30 - 1:20 |
Instructor
Susan Eggers, 315 Sieg Hall, 543-2118, eggers@cs
Office Hours: Tuesdays 1:30 - 2:20, Fridays 1:30 - 2:20
Teaching Assistants
Evan Wellbourne, evan@cs
Office Hours: Tuesday 9:30-10:20, 226a Sieg Hall and Thursday 1:30-2:20,
226b Sieg Hall
Dustin Barnes
Office Hours: Mon 2:30-3:20, Thursday 11:30-12:20, 226b Sieg Hall - or
by appointment
Course Goals
The purpose of this course is to give you a basic understanding of computer
architecture and microarchitecture. We will cover instruction sets, addressing
modes, instruction encoding, subroutine handling, machine organization, pipelining,
caches and cache hierarchies, and, if time allows, some short topics, such
as multithreaded processors, at the end. We will use the MIPS R2000 as
our primary example, learning both a subset of the MIPS assembly language
and its R2000 microarchitectural components.
The lectures on these topics are primarily taken from the text, but I
often present the material with a slant that is different from the book. The
lectures will emphasize the concepts; the discussion sections will concentrate
on specific examples of the concepts and explain the homework assignments.
To get the most out of the lectures, you should read the appropriate chapters
before their topics are discussed in class. This is important
-- you will need to have made one pass through the basics, i.e., the reading
in the book, to get the most out of the lecture.
Text
- D. Patterson and J. Hennessy:
- Computer Organization & Design: The Hardware/Software Interface
(2nd Edition, 1998)
Homework
There will be homework assignments every week (well, almost every week).
They will be either assembly language programming assignments (which you
will simulate on a MIPS simulator, called SPIM), processor implementation
assignments (which you will simulate on a simulator called SMOK) and problems
from the book. The purpose of all the assignments is to give you a chance
to apply the concepts learned in lecture; in addition, the programming assignments
will provide practice in assembly language programming. You can discuss the
assignments with each other, but you should do the actual work by yourselves.
Please hand in your assignments on the due date just before class starts.
Late assignments will not be accepted.
Grading
Grading will be something like homework 40%; midterm 25%; final exam 35%,
but keep in mind that these percentages are approximate. The final exam
will look like a big midterm and will be heavily biased toward the material
we discuss in the second half of the course.
Class Participation
Class participation is strongly encouraged. Don't be afraid to ask questions:
dumb questions do not exist. If I ask you a question and you don't know
the answer, just say so. I will certainly answer some of your questions also
by saying, "I don't know!''
E-mail and WWW
We will have a class mailing list and we will communicate often through
e-mail. Evan, Dustin and I will be mailing out assignments and clarifications
of the assignments, if needed. Everyone should subscribe to
the CSE 378 mailing list by sending a message reading "subscribe cse378"
to majordomo@cs.
Feel free to send Evan, Dustin or me questions. We will forward questions
and answers to the whole class if appropriate. (But if you have questions
that need a detailed or long explanation, it would be much easier if you
came to our office hours.)
We will be using the World Wide Web as well. All the lecture slides, the
assignments, as well as other information you will need, will be in our course
Web site. Check the CSE378
home page regularly.