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)