Computer Science 371 Systems I: Computer Organization and Architecture

Dr. Stephen Bloch office 112 Alumnæ Hall phone 877-4483

                  email sbloch@panther.adelphi.edu

office hours 11–12 TTh, 1–4 W, or by appointment

August 30, 1994

1 Subject Matter

This course should be useful for several types of students. Those who plan to specialize in designing computer hardware can use this course as a basis for more advanced study; those primarily interested in writing computer software can make better-informed decisions about software design; and those who just want to understand how a computer works can gain this understanding, along with an appreciation for “the human story” of how people have developed computers to their current state.

I assume, in all three cases, that students have a year or two of programming experience in a high-level language and exposure to the basic notions of assembler language. By the end of the semester, you should have a much more detailed understanding of assembler language (at least that for the MIPS machine we’ll study), as well as knowing how simple Boolean gates are combined to perform arithmetic and logical operations, how a processor carries out multi-step operations, and how pipelining and hierarchical memory work to enhance computer performance.

2 Textbooks

This course will involve reading assignments and homework exercises from the textbook Computer Organization & Design: the Hardware/Software Interface by John Hennessy and David Patterson. This book is required. I may also give out other reading assignments by email or in journals.

I hope to cover chapters 1–8, and Appendices A and B, of the textbook. Chapter 1 should be largely review, chapter 2 is relatively nontechnical, and we’ll probably skip parts of chapters 6 and 8. I don’t intend to treat parallelism (chapter 9) in any depth because it’ll be more fully treated in CSC 372.

3 Grading

As I write this (a week before classes start), I envision five homework assignments, each worth 10% of the semester grade, a midterm worth 20%, and a final exam worth 30%. I may change this somewhat as the semester unfolds.

Exams must be taken at the scheduled time, unless arranged in advance or prevented by a documented medical or family emergency. If you have three or more exams scheduled on the same date, or a religious holiday that conflicts with an exam or assignment due date, please notify me in writing within the first two weeks of the semester in order to receive due consideration. Exams not taken without one of the above excuses will be recorded with a grade of 0.

Homework and programming assignments will be accepted late, with a penalty of 1/3 per 24 hours or portion thereof after they’re due. An hour late is 33% off, 25 hours late is 67% off, and after 48 hours don’t bother turning it in. It’s still a good idea to do as much of it as you can, however, because I’ll assume on the exams that you’ve done the homework.

4 Ethics

A proven case of cheating or plagiarism will result in a zero for the assignment, an “F” for the course, or even dismissal from the University, depending on the severity of the case.

All work on an exam must be entirely the work of the one person whose name is at the top of the page. For homework assignments, you are permitted (and encouraged) to discuss how to solve the problem with me or with classmates, but each student must write the detailed solution separately. And yes, I can tell the difference between two students “using the same approach” and one student copying from another, especially in a class this size.

5 Schedule

This class meets every Tuesday and Thursday from 4:30 PM to 5:45 PM, except on University holidays or if I cancel class.

All dates in the following schedule are tentative, except those fixed by the University; if some topic listed here as taking one lecture in fact takes two lectures to cover adequately, or vice versa, the schedule will shift.

I expect you to have read the specified chapters in the textbook before the lecture that deals with that topic; this way I can concentrate my time on answering questions and clarifying subtle or difficult points in the textbook, rather than on reading the textbook to you, which will bore both of us. Please read the textbook!

Date(s)  Assignment Reading  Lecture Subject

30 Aug Administrivia & introduction 1 Sep 1 What is computer architecture? Why study it? 6 Sep Rosh Hashanah — no class

8 Sep  2  Computer performance
13 Sep  HW1  3.1–3.6  The MIPS machine

15 Sept Yom Kippur — no class 16 Sept Last day to add classes

20–22 Sep  HW2; HW1 due 3, App. A  The MIPS machine, continued
27–29 Sep  App. B  Digital Logic

30 Sep Last day to drop classes or change to P/F option 4 Oct Digital Logic, continued 6–20 Oct HW2 due 4 Computer Arithmetic 25 Oct Midterm exam 27 Oct HW3 5 Controlling the Processor 1–3 Nov Controlling the Processor, continued 4 Nov Last day to withdraw from classes 8–15 Nov Controlling the Processor, continued 17–22 Nov HW4; HW3 due 6 Pipelining 24 Nov Thanksgiving — no class 29 Nov–1 Dec HW5; HW4 due 7 The Memory Hierarchy

6–8 Dec  8  Input and Output
13 Dec  HW5 due  Review for Final Exam

15 Dec Final Exam, 3:30–5:30