Survey of modern computer architecture and design concepts. Benchmarks, instruction set design and encoding. Pipelined and superscalar processors. Techniques for exposing and exploiting instruction-level parallelism. Performance of cache and virtual memory hierarchies. Input/output subsystem design. Prerequisite: ECE 212 or E E 380 or CMPUT 229. Credit may be obtained in only one of ECE 311, CMPE 382 or CMPUT 429.