Advanced instruction set architectures, pipelining, dynamic scheduling, branch prediction, superscalar issue, out-of-order execution, memory-hierarchy design, advanced cache architectures and prefetching. Several real designs are dissected and simulators are developed for performing quantitative evaluations of design decisions.