6.004 | Spring 2009 | Undergraduate

Computation Structures

Lecture Notes


CMOS = complementary metal-oxide-semiconductor
ALU = arithmetic logic unit
OS = operating system

1 Course overview and mechanics, basics of information (PDF)
2 Digital abstraction, combinational logic, voltage-based encoding (PDF)
3 CMOS technology, gate design, timing (PDF)
4 Canonical forms; synthesis, simplification (PDF)
5 Sequential logic (PDF)
6 Storage elements, finite state machines (PDF)
7 Synchronization, metastability (PDF)
8 Pipelining; throughput and latency (PDF)
9 Case study: multipliers (PDF)
10 Beta instruction set architecture, compilation (PDF)
11 Machine language programming issues (PDF)
12 Models of computation, programmable architectures (PDF)
13 Stacks and procedures (PDF)
14 Non-pipelined Beta implementation (PDF)
15 Multilevel memories; locality, performance, caches (PDF)
16 Cache design issues (PDF)
17 Virtual memory: mapping, protection, contexts (PDF)
18 Virtual machines: timesharing, OS kernels, supervisor calls (PDF)
19 Devices and interrupt handlers, preemptive interrupts, real-time issues (PDF)
20 Communication issues: busses, networks, protocols (PDF - 1.0MB)
21 Communicating processes: semaphores, synchronization, atomicity, deadlock (PDF)
22 Pipelined Beta implementation, bypassing (PDF)
23 Pipeline issues: delay slots, annulment, exceptions (PDF)
24 Parallel processing, shared memory, cache coherence, consistency criteria (PDF)
25 Wrapup lecture (PDF)

Course Info

As Taught In
Spring 2009
Learning Resource Types
Problem Sets with Solutions
Exams with Solutions
Lecture Notes