CSE 378 - Spring 2001

Machine Organization and Assembly Language Programming

Class Meetings

 
Main Lectures: EE1 125 MWF 11:30 - 12:20
Section AA: EE1 025 Th 12:30 - 1:20
Section AB: EE1 025 Th 1:30 - 2:20

Instructor

Susan Eggers, 315 Sieg Hall, 543-2118, eggers@cs
Office Hours: Tuesdays 9:30 - 10:20
Fridays 4:30 - 5:20

Teaching Assistants

Mark Seigle (seigle@cs) Jon Burns (jkburns@cs)
Office Hours: TBA

Course Goals

The purpose of this course is to give you a basic understanding of computer architecture and organization. We will cover instruction sets, addressing modes, instruction encoding, subroutine handling, machine organization, pipelining, caches and cache hierarchies, I/O and, if time allows, some short topics 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 Sloop 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 in class. 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, "I don't know!''

E-mail and WWW

We will have a class mailing list and we will communicate often through e-mail. Mark, Jon 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 Mark, Jon 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.