The lectures for this class will be in English, but Japanese-speaking students are encouraged to join. Adequate materials to learn the topic and complete the assignments will be available in both languages.
The textbooks are available in the Seikyo:
A recommended, but not required, more advanced text:
Lecture 1: Fast Concepts: What's in a computer? What's our goal in designing a computer? Reading a performance graph In-class exercise: show around Intel CPUs, computer parts Homework (programming/hands-on computing): get an account on class server machine, install R on your laptop Homework (analysis problem set): (none) Lecture 2: Five principles of computer architecture Concepts: Take Advantage of Parallelism Principle of Locality Focus on the Common Case Amdahl's Law The Processor Performance Equation In-class exercise: recreate performance graph visit Armstrong Homework (programming): extending performance graphs Homework (analysis problem set): (none) Lecture 3: Faster: Parallelism Concepts: Impact of Amdahl's Law Reduction Synchronization In-class exercise: Parallel humans Homework (programming): Berkeley Parallel Boot Camp exercise (n.b.: Due Dec. 1; single hardest exercise this semester!) Homework (analysis problem set): (none) Lecture 4: Processors: Basics of Instruction Sets Concepts: Main Blocks of a CPU Memory: Registers, Stacks and Heaps Types of Instructions In-class exercise: (none) Homework (programming): install the MIPS simulator (must be done on time!) Homework (analysis problem set): matrix multiplication Lecture 5: Processors: Instruction Sets and the Data Path Concepts: Details of instructions In-class exercise: using the MIPS simulator Homework (programming): matrix multiplication in C Homework (analysis problem set): (none) Lecture 6: Processors: Basics of Pipelining Concepts: Pipelines in the real world A five-stage pipeline In-class exercise: Human Pipeline! Homework (programming): matrix multiplication in MIPS assembly (due Dec. 20) Homework (analysis problem set): a real-world pipeline Lecture 7: Memory: Caching and Memory Hierarchy Concepts: Four key questions in cache design In-class exercise: (none) Homework (programming): (none) Homework (analysis problem set): cache behavior Lecture 8: Memory: Virtual Memory Concepts: Address translation In-class exercise: (none) Homework (programming): (TBD) Homework (analysis problem set): (TBD) Lecture 9: Systems: Shared-Memory Multiprocessors Concepts: Classes of parallel architectures In-class exercise: review of Boot Camp exercise Homework (programming): (none) Homework (analysis problem set): (none) Lecture 10: Systems: Distributed-Memory Multiprocessors and Interconnection Networks Concepts: In-class exercise: (none) Homework (programming): (TBD) Homework (analysis problem set): (TBD) Lecture 11: Arithmetic Concepts: integer arithmetic floating point arithmetic In-class exercise: (none) Homework (programming): precision and performance of floating point arithmetic Homework (analysis problem set): (TBD) Lecture 12: Basics of I/O and Storage Systems Concepts: disk drive internals impact of bus transfers on performance In-class exercise: (none) Homework (programming): (TBD) Homework (analysis problem set): (TBD) Lecture 13: RAID: Parallelism and Protection in Storage Systems Concepts: RAID levels In-class exercise: (none) Homework (programming): (TBD) Homework (analysis problem set): (TBD) Lecture 14: Fastest: Ultimate Limits to Computation Concepts: TBD In-class exercise: (TBD) Homework (programming): (TBD) Homework (analysis problem set): (TBD)
There are several types of exercises that you must do during the course of this semester. You grade will be composed of the following, with a maximum total of 250 points: