Knowing what's inside and how it works will help you design, develop, and implement applications better, faster, cheaper, more efficient, and easier to use because you will be able to make informed decisions instead of guestimating and assuming.
In this course, you will learn contemporary state of the art in computer hardware, including the internal working of nano-scale microprocessors to large-scale data center infrastructures and how to program many-core machines as well as a cluster of virtual/physical machines that power data centers which in turn enable cloud computing.
Specifically, the course contents are organized into three categories: macro-scale motherboard, nano-scale microprocessor, and large-scale cluster of many core microprocessors. Macro-scale topics includes motherboard organization, bus architecture, L1-L3 cache organization and their policies, SDRAM DDR1-4 memory and DIMM cards, storage and networking devices and interconnection networks including switch architecture.
Micro-scale topics explicate the internal working of microprocessors including integer and floating point arithmetic, pipelining concepts with dynamic instruction scheduling, branch prediction with speculation, hardware multithreading, exploiting instruction level parallelism, data level parallelism and thread level parallelism.
Large-scale topics involve many cores to many virtual/physical machines and their programming paradigms that power datacenters with adaptive elastic computing infrastructures or cloud computing. The technologies that power datacenters include virtualization of physical resources, virtual machine monitors, load balancing of virtual/physical machines with autonomous as well as scheduled virtual machine migration.