Computer Organization and Design
COM1130

Spring, 1999
Monday, Tuesday and Thursdays : 2:50pm - 3:55pm

Instructor:

Bijoyini Chatterjee
Office : 17 Cullinane Hall
Phone: 373-8685
Email: bijoyini@ccs.neu.edu

Office hours: Tuesdays 4:00pm - 5:45pm and by appointment
 
 

Syllabus:

Syllabus is on my homepage :
www.ccs.neu.edu/home/bijoyini

Course directory is at
/course/com1130
We will be using this directory ONLY from next week.
Please *DON'T* use it now-  it has old stuff from last quarter!

Here's how to link to this course from home:    ***DO THIS ONLY NEXT WEEK***

When logged in to one of the Unix machines:

cd $HOME
cd .www
ln -s /course/com1130 com1130
Then, in your browser at home, go to the URL:
http://www.ccs.neu.edu/home/yourUsername/com3336/
Much thanks to Mike Ruelle.
 
 
 

Course Description:

Prerequisites

Prerequisites: Some programming experience, say the first two freshman courses - COM1100 and COM1101

Course Requirements

What does this course teach?

The one phrase answer is: the hardware/software interface.
Another part of the answer is: the hierarchical nature of all
computer systems.

To get experience working at that interface, we make choices:
our hardware is the MIPS family of chips; our software is in
MIPS assembly langauge.

Why learn this material now?

We believe that learning in computer science and engineering
should reflect the current state of the field, as well as introduce
the principles that are shaping computing. We also feel that readers in
every specialty of computing need to appreciate the organizational
paradigms that determine the capabilities, performance, and,
ultimately, the success of computer systems.

Modern computer technology requires professionals of every
computing specialty to understand both hardware and software. The interaction
between hardware and software at a variety of levels also offers a
framework for understanding the fundamentals of computing. Whether
your primary interest is computer science or electrical engineering,
the central ideas in computer organizations and design are the same.
Thus, our emphasis in the book is to show the relationship between
hardware and software and to focus on the concepts that are the basis for
current computers.
... The performance of future software systems will be dramatically
affected by how well software designers understand the basic hardware
techniques at work in a system. Thus, compiler writers, operating
system designers, database programmers, and most other software
engineers need a firm grounding in the principles presented in this book.

- from the textbook

Student responsibilities

1. Students are expected to attend classes regularly, to be on time, and not
to leave the classroom before the class is over. In fact, if you miss
6 classes, you will not pass this course.

2. Readings, exercises, quizzes, (small) programming assignments,
one (or two) exams, and a final.

Plagiarism

We encourage people to get together and discuss the assignments,
prepare for tests, etc. But this is not the same as copying
some one else's code or answers to assignments. If I find
material that is substantially the same in two submissions, then
the minimum penalty will be twice the full credit for that work. That is,
if something were worth 100 points, it will be as if you scored -100.

Homework

Homeworks and quizzes account for 30% of the grade.
Midterm accounts for 30% of the grade and the finals account for 40% of the grade.
From my experience from grading tbis course for the last two quarters, PLEASE write legibly and
staple your work. I am not responsible for lost pages.
 

Objectives

By the end of the quarter, you should know:

what operations the chip can perform

what data structure represents each of those operations

how the hardware decodes each operation, and carries it out

all operations are carried out by doing boolean algebra on single bits

how all this affects performance

how to write small programs in assembly language
 

Rough sketch of the first few weeks

Week 1:  ( 03/31 ) abstraction, performance Read all of Hennessy and Patterson, Chapters 1 and 2.

Week 2: ( 04/05 ) number representation Read Karen Miller's lectures in the Xerox packet, Chapters 3 and 4.

Week 3:  ( 04/12 ) machine language Read Hennessy and Patterson, Secs. 3.1--3.5, 3.7, A.9

Week 4:  ( 04/19 ) memory and registers

Week 5:  ( 04/26) MIDTERM - an inclass midterm for about 60 minutes. Tentative of course
 
 
 
 

Tools

Required Textbooks

David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, San Mateo, 1994.
Might be the first great undergraduate computer
science textbook ever written. An instant classic.
Available at the NU Bookstore.

COM1130 packet: Literate programming, with explanation and examples of noweb. Also an introduction to the official course editor: xemacs.

Interesting books and stuff, not all on reserve in Snell library

Computer Architecture

David A. Patterson and John L. Hennessy. Computer Architecture: a quantitative approach. Second edition. Morgan-Kaufmann, c1996.
Intended to change the way professionals think
about computer organization and design. When you master
a topic in this course, go try it again in this more advanced
and less gentle treatment.

Gerrit Blaauw and Frederick P. Brooks, Jr. Computer Architecture: concepts and evolution. Addison-Wesley, c1997.
Forty years of good ideas, organized by the
original creators of IBM mainframes.

On large projects

Frederick P. Brooks. The Mythical Man-Month. 20th anniversary edition. Addison-Wesley, 1995.
Required reading for all developers: over 250,000 copies are in print.

History

Martin Campbell-Kelly and William Aspray. Computer: a history of the information machine. Basic Books, 1996. Two historians chronicle the dramatic story. The New York Times
calls it well written and authoritative.

Tracy Kidder. The Soul of a New Machine.Little-Brown, 1981.
A few engineers design a successful computer.
Won the Pulitzer Prize 1n 1982.
An extra copy is in the RECREATIONAL READING
section of Snell.

Maurice Wilkes. Memoirs of a computer pioneer. MIT Press, 1985.
A personal view of computing by a man
who built the first computer that could
read in a program and run it.

Dennis Shasha and Cathy Lazere. Out of Their Minds: the lives and discoveries of 15 great computer scientists. Copernicus, c1995.
A great title! Personal and intellectual snapshots
of people with interesting ideas and accomplishments.

Robert Slater.Portraits in Silicon. MIT Press, 1987.
Bios of some early engineers and industrialists.

The MIPS family of chips

Gerry Kane and Joe Heinrich. MIPS RISC Architecture. Prentice-Hall, 1992.
Describes the MIPS architecture in greater detail than
Appendix A of Hennessy and Patterson.
This is not on reserve - instead, find it
on the shelf in the REFERENCE area on the first floor of Snell.

Joe Heinrich. MIPS R4000 user's manual. Prentice-Hall, c1993.

A Nautilus circuit in programming

Ryan Stansifer. ML Primer. Prentice-Hall, c1992.
An ambitious workout: take the examples in the chapter on procedures and translate all of them to MIPS assembly language.

Hardware Design

Niklaus Wirth. Digital Circuit Design for Computer Science Students. Springer, c1995.
Starts from scratch, and shows you how to design
a working computer. All in only 204 pages.

Randy Katz. Contemporary Logic Design. Benjamin/Cummings, 1994.
A general textbook on logic design.

Franklin Prosser and David Winkel. The Art of Digital Design: an introduction to top-down design.
A general textbook on logic design.

John Wakerly. Digital Design: principles and practices. Second edition. Prentice-Hall, 1994.
And yet another.

Edward McCluskey. Logic Design Principles: with emphasis on testable semicustom circuits. Prentice-Hall, 1986.
Contains extensive discussion of hazards, optimization principles,
and testability.

Stephen Ward. Computation Structures. McGraw-Hill, 1990.
A software-oriented approach to logic design.

Systems Design

David Culler and Jaswinder Pal Singh, with Anoop Gupta. Parallel Computer Architecture: a hardware/software approach. Morgan Kaufmann, 1999.
Since July 1, Yahoo has been powered by Dave Culler's
search engine.

Carver Mead and Lynn Conway. Introduction to VLSI Systems. Addison-Wesley, 1980.
A generation of chip designers learned
from this book.

Steven Przybylski. Cache and Memory Hierarchy Design: a performance-directed approach. Planning for high performance.

Software tools

Our chip

The xspim simulator for the MIPS processor, by James R. Larus. Type the command "xspim" on any Solaris machine and look into the hardware of a modern RISC-based chip.

Documentation

The noweb software: writing named chunks of code in any order, with interleaved documentation. You'll like this- you can use it for writing literate programs in any language.

Official Course Editor

Xemacs is the official editor for COM1130. Fire it up and try it. In the course packet, there's a short cheer-leading section on xemacs, which puts the most commonly used emacs commands into toolbars and pulldowns. The next item in the course packet is a gentle introduction into the wilder parts of emacs.