CS 352  Spring 2002   Handout #2 (C. Edmondson-Yurkanan)

CS 352 Course Topics

Computer Systems Architecture. Computer architecture and organizational issues; structural and behavioral characteristics of system components. Processor, memory hierarchy, and input/output issues. Evaluation of design alternatives. the relationship between hardware and software.

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.

1. Introduction and the ISA:  (5 class hours)
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.
2. Basic Performance Concepts: (3)
a. Quantitative concepts and definitions: Amdahl's Law, speedup, execution time formula
b. Simple examples and benchmarks; MIPS&MFLOPS inadequacies; review current trends.
3. CPU Speed-up Techniques: (10)
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
4. Memory Hierarchy:  (10)
a. locality of reference
b. cache:  mapping, replacement, write algorithms. Implementation (index, tags, blocksize, dirty bit, buffers), design tradeoffs, performance.
c. virtual memory basics (page table and TLB support; processes)
d. flowchart of all components of the memory hierarchy working together
e. DRAM organization (physical main memory): RAS/CAS, page mode
5. Input/Output:  (4)
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
6. Computer System Performance:  (4)
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
7. Parallel and Distributed Architectures:  (2)
a. parallel architectures: hardware and impact on software
b. cache coherency: a simple snooping cache-coherency protocol