This course provides in-depth discussions of the design and implementation issues of microprocessors and general-purpose computing systems based on them. The course is intended for students doing research in computer architecture or a closely related area to understand the advanced topics in the design of microarchitecture, the coherence and communication substrate, emerging issues and challenges in the design stack (e.g., energy efficiency, reliability, and complexity), and their interplay.