91.305 home
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
assignment 3
  main html pdf
  java setup html
  files zip
bootloader html
assignment 4 html pdf
assignment 5
  main html pdf
  files zip
  reading pdf
assignment 6 html pdf
invokevirtual pdf
assignment 7 html pdf
IA-32 manual pdf
assignment 8 html pdf
assignment 9 pdf
review html pdf
resources data IKonboard software

91.305 Computer Architecture

C L A S S   A N N O U N C E M E N T S !

Sunday, Dec 14

  • If you are missing your copy of the Microprocessor Report article, here it is.

Friday, Dec 12

  • Please read the Robot Builder's Guide chapter on address decoding. This was handed out back in the Assignment 5 days. Read only pages 183–193.

  • I have posted the source code to your bombs in the bombs directory. It’s there as your-email@host.com.phases.c

  • I checked out Southwick 202. It is a conference room, but it’s big enough that we’ll be able to seat one person per table.

Wednesday, Dec 4

  • Chapter 3 (most of it) from the Bryant/O'Hallaron book was handed out. If you were not in class, you must see me to get a copy.

  • Assignment 9 was handed out. See the left-side menu for a PDF download. It's due Wed, Dec 11.

  • The bombs are ready. Click to browse the bombs directory. Find your own and start working on defusing it. You will probably need to right-click and choose “Save As” to download the bomb from your web browser. Try the lynx or direct-copy-out-of-my-directory method described in the assignment handout.

    If I didn't make one for you, please send me email.

  • I have posted an initial set of hints on the ikonboard.

Wednesday, Nov 20

  • Assignment 8 is posted, due Wednesday, Nov 27.

  • I handed out volume 1 of Intel's IA-32 Architecture Software Developer's Manual. Please read Chapter 2, Introduction to the IA-32 Intel Architecture. See left-side menu for a download link, or get it from the source at http://developer.intel.com/design/pentium4/manuals/.

  • Continue reading Tanenbaum chapter 4.5: branch prediction (dynamic and static), out-of-order execution and register renaming, and speculative execution.

Friday, Nov 8

  • Assignment 7 is posted. It is due Friday, November 15. The first problem is just setting up the tools and driving them around—please do this before the last night, so that if you run into trouble, I can help you get things going.

  • My own slides illustrating the INVOKEVIRTUAL sequence are posted. See the left-side menu.

  • The class FINAL EXAM DATE is MONDAY DEC 16, 11:30 AM in SO202.

Friday, Nov 1

  • Assignment 6 is posted. Please note that it is due Friday November 8, not Wed Nov 6 as originally indicated.

Wednesday, Oct 23

  • MID-TERM IS FRI OCT 25. I'll be away at a conference; Holly Yanco will proctor the exam.

    Make sure to bring your HC11 Reference Manual and 74HCxxx Data Sheets collection to the exam.

    Good luck everyone! — Fred

Friday, Oct 19.

  • Assignment 5 is posted, due Wed Oct 23. Two files are provided for use in the assignment; download via the ZIP file in the menu.

    Come see me Monday if you didn't get the 74HC574 latch.

Friday, Oct 12.

  • Assignment 4 is posted, due Wed Oct 16. See menu. Come see me Tuesday if you didn't get a photocell. Also, I'll be around Sunday morning from 10 to noon for a high school open house if you want to get your photocell then (in lab).

Thursday, Oct 10.

  • I've written a bootloader program that allows you to directly load the output file from the as6811 assembler onto your HC11. No more transcribing bytes.

    Click on the bootloader link in the left-side menu.

Wednesday, Oct 9.

  • Mid-term exam is now scheduled for Fri, Oct 25. More info later.
  • Assignment 3 due date is extended to this Friday.
  • We have permission to use OS314 during class meeting hours. I will consider having class there as appropriate.
  • Extended office hours on Tuesdays may also be the solution to getting us in the same place and the same time working on assignments.

Friday, October 4.

  • Office Hours. Next week I will be available the following times: Monday, Oct 7, 4–5 pm and Tue, Oct 8, 1–3 pm. These are likely to be permanent hours if there are no major complaints.

Wednesday, October 2.

  • Assignment 3 is handed out and is due Wed Oct 9. Extra hard-copies are on a table outside my office (OS 208), or you can print out from the web.

    Please don't wait until the last minute to get started, because if you then have any hardware or software configuration problems, you'll be stuck. Do the wiring, software config, and initial boot test now; then you'll have a whole week to do the real work of the assignment. Thank you.

Thursday, September 26.

Tuesday, September 24.

  • The 74HC574 chips have NOT arrived yet. I was given a tracking number and supposedly they are shipping today. Grrr.
  • If you don't want to wait for the chip, you can use your 74HC73 dual-flip flop in the combination-lock state-machine problem. You only need two bits of state, and you can hold them with these two flip-flops. Wire the chip for edge-triggered mode and they should work fine.
  • The plastic storage bins are here! They're in the lab now. If you stop by I'll show you how to use them.

Friday, September 20.

  • Assignment 2 (a + b) due date is extended to Fri Sep 27. Please note the following recommendations:
    • Start early, so if you get stuck, you can see me for help. I have office/lab hours scheduled for Tue and Wed next week (see below).

    • New recommended order for doing problems. In class today, I suggested the following order for tackling the assignment: 2b-1, 2b-2, 2a, 2b-3, 2b-4, and 2b-5.

  • Office hours for next week: Tue Sep 24, 10a - 12n and Wed Sep 25, 1p - 3p.

Wednesday, September 18.

  • Assignment 2 (parts a and b) is due Wed Sep 25. Copies are on-line -- see left side menu. Some hints/errata:
    • For Assignment 2a (mystery chips), use two 1K resistors in parallel to pull an unknown pin to ground. This results in a 500 ohm value, which produces a better signal for measurement with the logic probe built into the UML305DEV board.
    • The last page of Assignment 2b makes reference to a 74HC374 latch. You don't have these. It should say 74HC574 (this is fixed on the version now on the web). You don't have these either. But I should have them to hand out in class on Friday.

  • I now see that I *did* have lab scheduled for today. I'll be around as best I can. People who are otherwise free at 3:30 should go to new faculty Gary Livingston's intro talk, in Olsen 311. (Wed Sep 18 13:12:19 2002)

Prof. Fred G. Martin
Olsen 208 (office)
Olsen 306 (lab)
978/934–1964 (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.

Course Description
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. We’ll study computers as layered systems, like a Russian nesting doll. From the inside of the doll (lowest level) moving outward, here’s one way to describe the layers:

0. semiconductor physics—electron flow; how transistors work

1. transistors as switches / logic gates / boolean operations—for our purposes, the most primitive element of a computational system

2. adders / math units / mutiplexers / decoders—the stuff you can build with gates, which become the building blocks of the CPU (central processing unit)

3. CPU—the heart of the computer. It’s implemented by what’s called the “microarchitecture level.” Its external interface—the way you experience it as a programmer—is called the “instruction set archictecture” or machine language.

4. memory, peripherals [input/output], and the other doo-dads the CPU talks to—logically, this isn’t actually above the CPU, but rather along side it

5. compilers—software that takes higher level code written by people and generates machine code to run on the CPU. The compiler matters because (1) if you’re writing a compiler, you need to intimately understand the CPU to do a proper job, and more commonly (2) if you’re using a compiler [who doesn’t?] you need to understand how it works to write decent code.

6. operating system—in a sense the most important program the CPU will run. The OS doesn’t do useful work by itself, but it implements a rich set of services that application programmers use.

In this class, we won’t worry about my “level 0,” and we probably won’t 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 Tanenbaum’s 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 you’ll actually build stuff with chips and wires. The systems that we’ll build will be simpler than the ones we’ll read about and talk about. My intention is that the more complex stuff will be more approachable and relevant because we’ll 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 William’s 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