The following list characterizes the basic topics that will be covered this semester, but is not intended to be a schedule. See the web page for the schedule throughout the semester.
- a. Abstractions: architecture/organization/implementation
- b. Review: Computer organization, digital logic
- c. Review and discussion of the example architecture to be used, contrasted with the Intel IA32 architecture, Java virtual machine, and Intel IA64 architecture.
a. Quantitative concepts and definitions: Amdahl's Law, speedup, execution time formula b. Simple examples and benchmarks; MIPS&MFLOPS inadequacies; review current trends.
a. processor implementation: datapath and control for a simple CPU. How FSM implementation and datapath interact. b. pipelining: basic 5-stage integer pipelining to explore data/structural/control hazards and solutions c. pipelining: a current example of complexity: superscalar pipeline, VLIW, or other ILP solutions
a. bus behavior: definitions; protocols for read, write, arbitration b. I/O devices, such as a RAID system, network interface; (what's unique about a network vs. a disk drive) c. I/O interaction with caches: snoopy cache, flushing d. disk/file caches
a. Quantitative analysis of systems: looking for the "weak link" b. I/O design requirements vs. memory/hierarchy requirements and the snooping cache solution c. Profiler tools
a. parallel architectures: hardware and impact on software b. cache coherency: a simple snooping cache-coherency protocol