Course description

This course is a study of the fundamental concepts in the design and organization of modern computer systems. Topics include computer organization, instruction-set design, processor design, memory system design, timing issues, interrupts, microcoding, and various performance-enhancing parallel techniques such as prefetching, pipelining, branch prediction, superscalar execution, and massive-parallel processing. We also study existing architectures using CISC, RISC, vector, data parallel, and VLIW designs. An extensive lab project encompassing the design and implementation of a new instruction set and CPU using an FPGA is required of all students. (4 credits)
knowledge of data structures and programming experience (CSCI E-22, or the equivalent) with a Boolean/digital logic course preferred, but not required (ENSC E-123, or the equivalent).

Instructors

Lecturer in Extension, Harvard University and President, Frankel and Associates, Incorporated