Slides and Reading notes for the course Computer Architecture


I don't really like or even understand the need for PDF, so I'll not produce many PDF files. If you require a postscrpt windows viewer there is a good public domain postscript viewer available from here, which works on Windows

Slides and reading notes for Computer Architecture. If you can't print any of the slides contact me.
Topic Slides
MIPS assembly language Slides used in the lectures Alternative postscript file, might print better on some printers
A exercise sheet to go through. I don't have the answers online, you have to come to the lecture. exersise sheet, sorry I don't have any online answers.
Stacks on the MIPS processor Slides to understand the slides you really have to have been to the lecture.
Simple SPIM file. sum.s
Example SPIM assembler file to calculate the factorial of a number. If you can understand this, then feel happy about stacks. fact.s
Arithmetic, you only have to understand, addition, 2's-complement, shortest path and the introduction to floating point. Slides
Some extra stuff on Floating point Slides
What every computer scientist should know about floating point. Not part of the course but interesting reading. Web versionpostscript version Some other stuff on the weirdness of floating point.
Implementing the MIPS instruction set Slides
Pipelines Slides, there might be a problem printing that on some printers, so here is a 1 to a page version.
Error correcting codes and secondary Storage Slides
Introduction to memory Slides on Memory 4 to a page and 1 to a page.
Caches and Virtual Memory Eriks Slides More slides on Virtual memory and more
I/O Intro to I/O (One to a page) we will also use the following slides the star office format, One to a page and 4 to a page. I have no idea how well they print.

Additiona Material on the MIPS processor

Spim Documentation Read this.
How to format and write your code Read this and follow the instructions to make your lab assistant happy.
Useful notes on SPIM and the MIPS processor One to a page in case there is trouble printing it. PDF version This is the appendix to the old edition of Patterson and Hennessy it contains all you will need to know about the SPIM simulator.
Link to the SPIM author's page Get the information from the horses mouth.
Programmeringsmanual Postscript version This is a programming manual for the hardware mips boards which have been used in DoCS before, but it contains much useful information which can be used for the Spim simulator.
Jakobs lecture on the Crusoe, not part of the course but extra material for your enjoyment. Slides in PDF

Reading List

Based on Tanenbaum's Structured Computer Organization 4th Edition and or Patterson and Hennsesy, Computer Organization and Design
Topic Tanenbaum Patterson and Hennessy Notes
MIPS Assembly Language If you have the Tanenbuam book you'll have to read the lecture slides and the MIPS reference material referred to above Chapter 3, 3.1-3.10 In the exam you will be asked to write simple MIPS programs. If you are reasonably happy with the assignments and the labs then you will be ok.
Arithmetic Appendix A and B.1 Chapter 4 4.1-4.4 You should be happy with the concept of Two's complement.
Digital Logic 3.1,3.2,3.3 B.1-B.6 Truth tables, longest path, latches , You should also have some idea what a finite state machine is.
Processor Design 2.1 , 4.1 Chapter 5 You should look at the slides used in the lectures. You should able to understand the problems with a single cycle implementation, why a multi-cycle approach is necessary.
Pipelines 4.4 Chapter 6 You should look at the lecture slides, you should understand what pipelining is, what it achieves, what are the problems (hazards, stalls).
Microcode 4.1 5.5 You should understand what micro-code is, what problems it tries to solve. Remember microcode is an implementation style.
Caches 4.5.1 7.1-7.3 You should understand the terms Direct Mapped , set associative , write through and write back .
Virtual memory 6.1.1,6.1.2,6.1.9 7.4,7.5 You should understand: pages, page-tables and what a TLB is also what problem it tries to solve.
I/O 2.1,2.2 ,2.3.1 2.4.1. Chapter 8 You must understand the difference between polling and interrupt driven I/O.
Error Correcting Codes 2.2.4 There isn't anything on Error-correcting codes, but the notes fleshes out some of the material from the slides This was only a brief introduction to error-correcting codes. You must be able to state the difference between error correcting and error detecting codes, define the hamming distance between words , the minimum distance of a code and understand Hamming's construction.
Some mock exam questions
Last modified: Fri Oct 12 14:52:10 MET DST 2001