Computer Architecture

CS 26
Fall 1996

Dr. Thomas P. Kelliher
Hoyt 160
Office phone: 946-7290
Home phone: 946-3544 (urgent business)
E-mail: Send mail to kelliher AT DOMAIN
Office hours: MW 2:00-3:00pm. TR 1:00--2:30pm. Other times by appointment.

Hoyt 369
TR 9:40--11:10am.


The main objective of this class is for you to learn how a computer is organized to execute programs. A secondary objective is learning how the organizational building blocks of a computer are constructed from smaller building blocks (i.e., combinational gates and memory elements).

We will consider the major organizational components of modern computer systems: arithmetic logic unit (ALU), control, memory hierarchy, and I/O. We will study things such as binary numbering systems, addition circuits, ways of implementing control logic, pipelining, caches, and paging hardware. Some of these are basic requirements of all general purpose computers, while others, such as pipelining and caches, are performance enhancements.

We will study digital design so as to understand how computers are constructed from logic gates and memory elements and study enough assembly language to appreciate how a high level language (HLL) source is translated and run on a target computer system.


  1. V. C. Hamacher, Z. G. Vranesic, and S. G. Zaky, Computer Organization, 4th edition, McGraw-Hill, 1996.
  2. P. W. Abrahams and B. R. Larson, Unix for the Impatient, 2nd edition, Addison Wesley, 1996.

A few 3.5" floppy diskettes. Preferably, these should be high density diskettes. You can use these to back-up your work. Ultimately, you are responsible for your files; within Unix, once a file has been removed, it is impossible to un-remove it.

Grade Distribution

A = [90--100]
B = [80--90)

I use +/- grading sparingly.

Course Point Distribution

There will be approximately 1000 total points for the class. They will be distributed as follows:

  1. Assignments --- Assignments will be of several types, including writing programs on paper, writing and running programs on the Unix system, and written assignments covering computer organization and architecture and logic design. Assignments will account for approximately 400 points. Assignments turned in after this time are late. Assignments which are less than 24 hours late receive a 20 percent penalty deduction. Assignments which are more than 24 hours late will not be accepted.

  2. Midterms --- There will be two in-class midterms on October 1 and November 5. If you cannot take one of these midterms, please let me know as soon as possible. Assuming that you have a good reason, a make-up will be scheduled. This make-up should be scheduled to be taken within 48 hours of the ordinary midterm. Each midterm will be worth 175 points.

  3. Final --- The cumulative final will be worth 250 points.

Course Handouts:

Most course handouts will be made available once in class. After that, they may be obtained from my personal home page on the World Wide Web (see the URL above). I also expect to distribute homework and exam solutions through my home page.

Student attendance of lectures is anticipated and expected. I keep a record of attendance.

Academic dishonesty will not be tolerated. In particular, this applies to programming assignments. Unless otherwise stated, all programming assignments are to be the individual work (both in development and implementation) of the student turning in the work. Refer to the Handbook for Students and the Cheating Policy of the Department of Mathematics and Computer Science. Relevant points include:
  1. Program/module plagiarism will be suspected if a programming assignment results in two or more non-trivial program/module solutions so similar that one can be converted to another by a mechanical transformation.

  2. Cheating will be suspected if a student who was to complete an assignment cannot adequately explain the intricacy of their solution nor the techniques used to generate that solution.

A first offense will result in a grade of zero points for the assignment, Any subsequent offenses may result in a charge of academic dishonesty being filed with the Dean of the College, along with a grade of zero.

That said, I realize that Computer Science is best learned in a collaborative environment. You should work together and enhance each others' understanding of the material. However, you are ultimately responsible for your own learning. By depending too strongly on someone else for help with an assignment, you most definitely jeopardize your ability to perform well on a midterm or final. The name of anyone with whom you collaborate on an assignment must be listed on the assignment.

Tentative Initial Schedule:

It is your responsibility to read the assigned material before class. What we do in class will not necessarily be what is in the reading.

Sep. 3: Introduction. 1.1--1.8
Sep. 5: Addressing methods. 2.1--2.4.
Sep. 10: Machine Program Sequencing. 2.5--2.8
Sep. 12: The PowerPC. 2.17--2.20. (Read 2.9--2.16 on your own.)
Sep. 17: The PowerPC, continued. 2.21--2.24.
Sep. 19: Combinational logic gates, minimization and synthesis. A.1--A.4.
Sep. 24: Circuit implementation, flip-flops, and building blocks. A.5--A.10.
Sep. 26: VLSI and sequential circuits. A.11--A.14.
Oct. 1: Midterm1

Thomas P. Kelliher
Mon Sep 2 14:13:02 EDT 1996
Tom Kelliher