Multiprocessors are emerging as the architecture of choice to design chips for all segments of the computing market from smart phones, to set-top game boxes or workstations, to enterprise servers, to clusters, and finally to supercomputers. Most current and all future computers will indeed be multiprocessors. This course will build on the fundamentals of processor design and concurrent systems (both important pre-requisites) to cover the essential hardware technologies to combine multiple processing elements into a single computer.