Computer Architecture: A Quantitative Approach, J. L. Hennessy and D. A. Patterson, Fifth Edition, Morgan Kaufmann Publishers, 2011, and other reading material will be either presented in the class or available as online papers.

Course Learning Outcomes:

By the end of this course, the student will be able to:

Understand the techniques of quantitative analysis and evaluation of modern computing systems

Articulate the cost-performance-energy trade-offs and good engineering design

Identify the types of parallelism (data, instruction, thread, request – levels) that could be extracted from a given application

Identify the hardware architecture type (that matches with the program architecture for a given application

Evaluate the close relation between the instruction set architecture design, datapath design, and algorithm design

Evaluate and analyze the state of the art multicore architectures including the datapath and memory subcomponents along with the hardware and software structures enabling cache coherence, dynamic scheduling and out-of-order execution

Quantify and the discuss the design trade-offs involved in warehouse scale computers in terms of cost, energy-efficiency, reliability, and network structure

Identify the relationship between the programming models, workloads and architectures for warehouse-scale computers (cloud computing)

Course Topics:

Fundamentals of Quantitative Design and Analysis - The Changing Face of Computing and the Task of the Computer Designer, Technology Trends, Measuring and Reporting Performance, Principles of Computer Design [2 lectures].

a) an ability to apply knowledge of mathematics, science, and engineering (High)b) an ability to design and conduct experiments, as well as to analyze and interpret data (High)c) an ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability (High)e) an ability to identify, formulate, and solve engineering problems (High)g) an ability to communicate effectively (Medium)i) a recognition of the need for, and an ability to engage in life-long learning (Medium)j) a knowledge of contemporary issues (High)k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice. (High)