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: Putting it all together: How a program gets executed
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: