Computer architecture is a foundation for computer scientists and engineers. CS211 is intended for students who are with basic understandings of computer architecture and interested in pursuing research in computer architecture or related fields. CS211 will help students to observe and explore computer architecture in both macroscopic and microscopic dimensions. The goal of CS211 is to make students better understand how software and hardware cooperate and gain knowledge from the classic and state-of-the-art with regard to technology, applications, and economics that drive continuing changes in the area of computer architecture.
The topics covered by CS211 will include (but are not limited to): instructions and instruction set, memory hierarchy, pipeline, out-of-order execution, speculative execution, graphics processing unit, caching, memory consistency, multi-threading, vectors, virtual machines, cluster and distributed computing, etc.