Courses
CS 61C/61CL. Machine Structures
Current Schedule (Spring 2008)
- CS 61C: Dan Garcia, M W F 3:00-4:00P, 2050 VLSB [course homepage]
Description
CS 61C brings students through a series of abstractions from high-level programming through machine architecture to CPU design from fundamental logic components. The C programming language and MIPS assembly language are used to introduce the abstractions. The course closely follows the Patterson and Hennessy textbook supplemented by material on the C programming language. A sample week-by-week outline follows.
- 1 - Introduction, Number Representation
- 2, 3 - C programming language, memory management
- 4 - Assembly language operations and control flow
- 5 - Assembly language pointers, procedures
- 6 - Machine language representation
- 7 - Floating point representation/operations
- 8 - Input/output, interrupts
- 9 - Disk storage, Networks
- 10 - Cache memory systems
- 11 - Virtual memory
- 12, 13 - Logic elements and circuits
- 14 - CPU organization
- 15 - Pipelining
Coursework will involve weekly two-hour in-laboratory exercises designed to help students develop skills needed for writing and debugging C and assembly language programs and for simulating hardware using hardware description languages (HDLs). Biweekly independent projects reinforce students' programming skills while reinforcing their understanding of machine architecture and implementation concepts. Sample projects include a machine language interpreter written in C, a cache simulator written in C, and a CPU simulator.
