syllabus html pdf
assignment 1 html pdf
rev'd short syll. txt
lecture 3 notes txt
data sheets html
uml305dev html pdf
parts list pdf
assembly html pdf
assignment 2a html pdf
assignment 2b html pdf
main html pdf
java setup html
assignment 4 html pdf
main html pdf
assignment 6 html pdf
assignment 7 html pdf
IA-32 manual pdf
assignment 8 html pdf
assignment 9 pdf
review html pdf
91.305 Computer Architecture
Prof. Fred G. Martin
Olsen 208 (office)
Olsen 306 (lab)
978/9341964 (office phone)
Monday, Wednesday, Fridays, 10:30 am 11:20 am, Olsen 414.
Office Hours / Lab Times
Schedule to be announced.
Course Web Site URL
Discussion Site URL
There will be a discussion site / bulletin board for the class. It will be linked from the course home page indicated above.
From the UML CS brochure:
An examination of the basic functional components of a computer system including the CPU, memory systems, and I/O systems. Each of these three areas will be developed in detail with a focus on the system design and component integration. Topics will include CPU control and ALU operation, computer timing, data address and I/O bus activity, addressing model, programmed and DMA I/O, and instruction sets and microcode.
Now, my words. We will learn the structure of computers and how they work. Well study computers as layered systems, like a Russian nesting doll. From the inside of the doll (lowest level) moving outward, heres one way to describe the layers:
0. semiconductor physicselectron flow; how transistors work
1. transistors as switches / logic gates / boolean operationsfor our purposes, the most primitive element of a computational system
2. adders / math units / mutiplexers / decodersthe stuff you can build with gates, which become the building blocks of the CPU (central processing unit)
3. CPUthe heart of the computer. Its implemented by whats called the microarchitecture level. Its external interfacethe way you experience it as a programmeris called the instruction set archictecture or machine language.
4. memory, peripherals [input/output], and the other doo-dads the CPU talks tologically, this isnt actually above the CPU, but rather along side it
5. compilerssoftware that takes higher level code written by people and generates machine code to run on the CPU. The compiler matters because (1) if youre writing a compiler, you need to intimately understand the CPU to do a proper job, and more commonly (2) if youre using a compiler [who doesnt?] you need to understand how it works to write decent code.
6. operating systemin a sense the most important program the CPU will run. The OS doesnt do useful work by itself, but it implements a rich set of services that application programmers use.
In this class, we wont worry about my level 0, and we probably wont get to anything too important in level 6. For level 0, see 16.423/16.523 Intro to Solid-State Physical Electronics; for level 6, see 91.308, Introduction to Operating Systems !
Structured Computer Organization, 4th Ed., by Andrew S. Tanenbaum (Prentice-Hall, 1999). The author is pretty famous, having also written landmark texts on computer networking and operating systems. Tanenbaum can also claim Linus Torvalds as a student, who after taking Tanenbaums OS course, went on to write Linux! See http://www.cs.vu.nl/~ast/home/faq.html for more.
This will be a lab class where youll actually build stuff with chips and wires. The systems that well build will be simpler than the ones well read about and talk about. My intention is that the more complex stuff will be more approachable and relevant because well have had hands-on experience with more basic systems.
in-class participation, 10%
written assignments, 15%
lab assignments, 25%
mid-term exam, 25%
final exam, 25%
In professional as well as academic life outside the classroom, people seldom work completely on their own. They typically work in teams and help each other extensively. I have no objection to you getting help from me or your fellow students. I encourage you to do so. However, unless specifically stated otherwise by me, prepared work in this course is to be each student's own.
Students should therefore be familiar with the University's definitions and policies on academic dishonesty, found in the University course catalog. [above adapted from Prof. Jesse Heines copying policy]
The contributions of others to your thinking must be acknowledged in all work you turn in. As UML Prof. Sarah Kuhn says, Using works of others, or drawing extensively on their ideas, without clearly stating that they are not your work (by using quotation marks, and references to the cited work) is plagiarism, a very serious academic offense. [Prof. Sarah Kuhn, syllabus for 65.790, from Prof. Marian Williams 91.531 course syllabus.] With each assignment, you must mention people whom you worked with, who you have helped, or who have helped you.
Last modified: Sunday, 15-Dec-2002 12:36:05 EST by