Here are some of the slides I made for two undergraduate computer architecture courses at the University of Illinois at Urbana-Champaign. These are meant to supplement, not replace, a textbook. There's a lot more stuff to learn than just what's here!

Licenses are confusing things. GNU has several licenses for free software and documentation, but none of them seem appropriate for slides. Fortunately GNU includes a pointer to Creative Commons, which provides some more suitable licenses. (It looks like Jeff Erickson also uses a Creative Commons license for his great algorithms course material.)

All the slides on this page are Copyright ©2000-2003 Howard Huang. They are distributed under a Creative Commons License, which is summarized here.

Attribution-NonCommercial-ShareAlike 1.0

You are free:

Under the following conditions:

Your fair use and other rights are in no way affected by the above.

Creative Commons License
This work is licensed under a Creative Commons License.

CS231: Computer Architecture I

CS231 is called "Computer Architecture I." It actually consists mostly of digital logic design, but it's all focused towards building a simple single-cycle processor. The semester is split into roughly three sections: combinational circuits, sequential circuits, and computer architecture.

Below are the most recent class slides that I made during Summer 2003 (the last time I pretended to teach anybody anything). These are in Adobe Acrobat 5.0 format. If your printer driver supports it, you can print multiple slides on each page and save some paper.

  1. Introduction to CS231
  2. Boolean algebra
  3. Karnaugh maps
  4. Basic circuit design and multiplexers
  5. Decoder-based circuits
  6. Other combinational circuit topics
  7. Addition and multiplication
  8. Subtraction
  9. Arithmetic-logic units
  10. Floating-point arithmetic
  11. Flip-flops
  12. Sequential circuit analysis
  13. Sequential circuit design
  14. Registers and counters
  15. Random-access memory
  16. Datapaths
  17. Instruction set architectures
  18. Other instruction set architectures
  19. Instruction encoding
  20. Control units
  21. More advanced CPUs
  22. Memory and I/O

The "textbook" that is sometimes referred to in the slides is below.

Logic and Computer Design Fundamentals, 2nd Edition Updated.
By M. Morris Mano and Charles R. Kime.
Published by Prentice-Hall, 2001.
ISBN 0-13-031486-2.

The circuit diagrams were drawn with the following software package.

LogicWorks 4: Interactive Circuit Design Software.
By Capilano Computing Systems Ltd.
Published by Addison-Wesley, 1999.
ISBN 0-20-132682-5.

Unfortunately the slides only include bitmap images of the circuits, so they may look funny unless you view the slides at 100%. Even then they'll still look like, well, bitmaps.

CS232: Computer Architecture II

CS232, or "Computer Architecture II," starts by covering the MIPS instruction set architecture in detail. Then we introduce several different processor implementations, cache organizations and input/output issues. We also work with basic performance models to help us evaluate the benefits and drawbacks of different designs.

My latest slides from Spring 2003 are below, in Adobe Acrobat 5.0 format. If your printer driver supports it, you can print multiple slides on each page and save some paper.

  1. Introduction to CS232
  2. Basic MIPS architecture
  3. More MIPS instructions
  4. Functions in MIPS
  5. MIPS examples
  6. Intel 8086 architecture
  7. Performance
  8. MIPS arithmetic
  9. Multiplication
  10. MIPS floating-point arithmetic
  11. Single-cycle MIPS processor
  12. Multicycle datapath
  13. Multicycle control
  14. Multicycle conclusion
  15. Pipelining
  16. Pipelined datapath and control
  17. Forwarding
  18. Stalls and flushes
  19. Exceptions and interrupts
  20. Advanced processor designs
  21. Cache introduction
  22. More cache organizations
  23. Cache performance
  24. Cache writes and examples
  25. Introduction to I/O
  26. Buses
  27. PC I/O

This course and the slides are based on the popular computer architecture text by Hennessy and Patterson.

Computer Organization & Design: The Hardware/Software Interface, Second Edition.
By John Hennessy and David Patterson.
Published by Morgan Kaufmann, 1997.
ISBN 1-55860-428-6.

Since we don't have any actual MIPS machines, we also use the SPIM simulator by James Larus for programming assignments and experiments.