Department of Computer Science @ Purdue University
Search | General Information | Academics | Research | People | External Relations

CS 250: Computer Architecture

List of Topics (By Week):

1. The basic organization of a computer system and a processor.
Boolean algebra. combinational logic circuits.
State elements: the R-S latch.
Lab: Review of basic UNIX commands and utilities.

2. State Elements (Cont'd): D-latch, D-flipflops.
The register file, multiplexors, decoders.
Lab: Review of basic C programming language features.

3. The instruction set: Operations and operands.
Introduction to assembly programming.
Simple ALU operations and branch instructions.
Lab: Bit-wise logic operations and standard library routines in C. Source level C program debugging.

4. Addressing modes. Memory allocation and stack mechanism in assembly programs.
Lab: Compiling C programs into assembly programs.

5. Procedure calls in assembly programs.
Register usage convention.
Assemblers, linkers, debuggers.
Lab: Assembling, disassembling, linking. An emulator and a debugger for executing and debugging assembly programs.

6. Number representations and ALU operations.
Floating point instructions.
Lab: Writing assembly programs with simple control structures.

7. The processor data-path and control.
Design of a primitive processor with hard-wired control.
Instruction execution steps.
Lab: Writing assembly programs dealing with radix and floating point numbers.

8. Finite state machines. PLA vs. ROM.
The basics of microprogramming.
Lab: Writing assembly programs with recursive procedure calls.

9. Relationship between concepts covered so far.
Lab: Review and comprehensive exercises.

10. SRAM and DRAM. Caches.
Lab: Reducing memory reference penalty in assembly programs by efficient use of registers, caches and other techniques.

11. Virtual memory, page faults, TLB.
Lab: Memory allocation in assembly programs. Measuring and understanding page faults generated by a program.

12. Exception and interrupt handling.
Lab: Exception handlers. Long jumps.

13. I/O. Bus. I/O and network interface.
Lab: I/O routines.

14. A high-level view of instruction Pipelining and other Performance Issues.
Lab: Measuring and understanding program performance.

15. Review and prepare for exam.
Lab: Review and finish up.

2001.08