Office Hours: MW 4-5:30 & by appt.
Course home page:
This course provides a basic introduction to computer architecture from the perspective of a computer scientist. The emphasis is on understanding the multi-layered organization of a computer system. Key topics include comparative study of instruction set architecture, fundamentals of ALU and processor implementation, the memory hierarchy, IO systems, and parallelism. Practical lab work will focus on the SPARC RISC architecture.
Formal prerequisites are CS162 and CS200. You'll need the following skills and knowledge:
The required textbook is Andrew Tanenbaum, ``Structured Computer Organization,'' 4th edition, Prentice Hall, 1999. Additional readings from other sources will be made available on the course web page from time to time.
You will also want to use the ``SPARC Assembly Language Reference Manual,'' which is available on the web (in html or pdf) at http://docs.sun.com/ab2/coll.45.10/SPARC/ or locally (in postscript) on the course home page.
Lecture notes will be available electronically in postscript format
via the course home page. (To read or print postscript under Windows, you can use
the ghostview previewing program, available from
http://www.cs.wisc.edu/~ghost/) Notes will normally be available shortly
before or after the lecture.
Class attendance is not required, but is strongly recommended as the best guide to the material that will appear on the exams.
There will be one mid-term and a final exam. Both are closed-book, but ``cheat sheets'' will be permitted. Exams will cover topics from lectures and readings. Not all the material is covered in the readings, so attention to the lecture material is important. The final will be cumulative over the entire term, but will emphasize material presented after the midterm. Exams are scheduled in advance; unless prior arrangements are made, a grade of zero will be recorded for missed exams.
There will be four lab assignments involving practical programming exercises using the Sun SPARC architecture and the Solaris operating system, as found on the CS department's Sun network. You should have been given an account on the CS machines automatically by virtue of registering for this course; to obtain your password, take your id to the PCAT lab. Any files associated with assignments will be available from the course web page.
In some cases, you may be able to develop some or all of your lab solutions on some different machine, e.g., a home PC, but the code you hand in must work using the CS department's SPARC machines and tools. Thus, you may be seriously handicapped by not using the CS department machines to do them in the first place.
Labs should be submitted by mailing a ``bundle'' containing the
relevant files to firstname.lastname@example.org.
Bundles can be created by the Unix shar command,
which combines the files given by its arguments into a single shell script
that, when run, recreates the files.
For example, you could submit
the files foo.s and bar.c as follows:
Do not send mail other than program submissions to cs201-1acc, as it is not regularly read.
Important information will be distributed throughout the term via
a Majordomo mailing list called cs201-1list. You can subscribe to this list
by sending a mail message to email@example.com with no subject
line and a message body consisting of the single line
Please mail questions to the instructor directly (at apt) rather than to this list; the instructor will copy mail of general interest to the list.
All dates, including assignment deadlines, are tentative and subject to change.
|Jan||5||1,2.1||Introduction; Layered Computer Organization; Processors|
|10||7.1,7.3-4; SPARC||SPARC ISA; Assembler ; Linking/Loading; C Interfacing|
|12||5.1||Comparative ISA design: Overview|
|17||Martin Luther King, Jr. Holiday - no class|
|19||HW1;HW2||5.2||Comparative ISA Design: Types and Encodings|
|24||Lab1||5.3-5||Comparative ISA Design: Types, Addressing, Instructions|
|26||HW3||5.6-8||Comparative ISA design: Control Flow|
|31||2.4; 3.4; 3.7||I/O: Devices, Buses, and Programming|
|9||HW5||3.2, 3.4||Logic Circuit Review; ALU Basics|
|14||ARITH||Computer Arithmetic; Floating Point|
|23||Lab3;HW7||2.2, 3.3, 4.5.1||Memory Hierarchy; Primary Memory Design; Caches|
|28||2.3, 6.1||Secondary Memory; Virtual Memory|
|Mar||1||HW8||4.5.2-4,4.6||Other Microarchitecture Optimizations|
|6||6.2,6.4||Operating System Essentials|
|13||Final Exam (starting at 7:30 pm)|
Key: All readings specified as numbers are sections from the Tanenbaum textbook; for example ``7.1;7.3-4'' means sections 1,3, and 4 from Tanenbaum Chapter 7. SPARC and ARITH are extra readings that will be made available on the course web page.
Additional readings may be assigned from time to time. Assigned selections should be read before the associated date.
All homeworks are due in class, at the beginning of class, on the specified due date. All labs are due by email by 6 p.m. on the specified due date, i.e., just before class. Late homeworks and labs are not accepted except in extraordinary circumstances, and then preferably by prior arrangement.
All homeworks and labs must
represent your own, individual work. It is permissible to discuss the
assignments with other students, but when you come to writing up the
homework solutions or typing in and debugging the lab programs, you
must work on your own.
Do not, under any circumstances, copy another person's program and
submit it as your own.
Writing code for use by another or using another's code in any form
(even with their permission)
will be considered cheating, the penalties for which are described in detail
in the CS Department's booklet Undergraduate Programs 1999-2000.
In particular, cheating will result in an automatic F for the assignment
in question, and a letter to your departmental file.