ECE 462

Computer Architecture and Design
Fall
Designation: 
Elective
Catalog Data: 

ECE 462 - Computer Architecture and Design (3 units)

Description: Foundation for students to understand modern computer system architecture and to apply these insights and principles to future computer designs. Provides basic knowledge, fundamental concepts, design techniques and trade-offs, machine structures, technology factors, software implications, and evaluation methods and tools required for understanding and designing modern computer architectures, including multicores, embedded systems, and parallel systems. The course is structured around the three primary building blocks of general-purpose computing systems: processors, memories and networks.

Grading: Regular grades are awarded for this course: A B C D E

Prerequisite(s): 
ECE 369A
Textbook(s): 

Hennessy, John L., and David A. Patterson. Computer Architecture: A Quantitative Approach. 5th ed. Morgan Kaufmann, 2011.
Other reading material will be presented in class or be available online.

Course Learning Outcomes: 

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

  1. Understand the techniques of quantitative analysis and evaluation of modern computing systems
  2. Articulate cost-performance-energy trade-offs and good engineering design
  3. Design and implement major component subsystems of high-performance computers: pipelining, instruction-level parallelism, memory hierarchies, input/output, and network-oriented interconnections
  4. Undertake a major computing system analysis and design
  5. Identify the types of parallelism (data, instruction, thread, request-level) that could be extracted from a given application
  6. Identify the hardware architecture type that matches with the program architecture for a given application
  7. Evaluate the close relation between the instruction set architecture design, datapath design, and algorithm design
  8. Evaluate and analyze modern 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
  9. Quantify and the discuss design trade-offs involved in warehouse-scale computers in terms of cost, energy-efficiency, reliability, and network structure
  10. Identify the relationship between the programming models, workloads and architectures for warehouse-scale computers (cloud computing)
Course Topics: 

Fundamentals of quantitative design and analysis (2 lectures)

  • The changing face of computing
  • The task of the computer designer
  • Technology trends
  • Measuring and reporting performance
  • Principles of computer design

Instruction level parallelism and its exploitation (5 lectures)

  • Basic compiler techniques for exposing ILP
  • Reducing branch costs with prediction
  • Overcoming data hazards with dynamic scheduling
  • Dynamic scheduling: examples and the algorithm

Data-level parallelism in vector, SIMD and GPU architectures (4 lectures)

  • Vector architecture
  • SIMD instruction set extensions for multimedia
  • Graphics processing units (GPU)
  • Detecting and enhancing lop-level parallelism

Multiprocessors and thread-level parallelism (6 lectures)

  • Symmetric shared memory architectures
  • Distributed shared memory and directory-based coherence
  • Models of memory consistency

Memory hierarchy design (4 lectures)

  • Advanced optimizations of cache performance
  • Virtual memory and virtual machines
  • The design of memory hierarchies

Warehouse-scale computers (2 lectures)

  • Their use in exploiting request-level and data-level parallelism
  • Programming models and workloads
  • Computer architecture of warehouse-scale computers
  • Cloud computing

Storage systems (3 lectures)

  • Definition and examples of real faults and failures
  • I/O performance
  • Reliability measures and benchmarks
  • A little queuing theory
  • Designing and evaluating an I/O system
  • The internet archive cluster

Interconnection networks (2 lectures)

  • Interconnecting two vs. many devices
  • Network topology
  • Network routing
  • Arbitration
  • Switching
Class/Laboratory Schedule: 

Two 75-minute lectures per week

Relationship to Student Outcomes: 

ECE 462 contributes directly to the following specific electrical and computer engineering student outcomes of the ECE department:

  • Ability to apply knowledge of mathematics, science and engineering (high)
  • Ability to design and conduct experiments, as well as to analyze and interpret data (high)
  • 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)
  • Ability to identify, formulate and solve engineering problems (high)
  • Ability to communicate effectively (medium)
  • Recognition of the need for, and an ability to engage in, life-long learning (medium)
  • Knowledge of contemporary issues (high)
  • Ability to use the techniques, skills and modern engineering tools necessary for engineering practice (high)
Prepared by: 
Tosiron Adegbija
Prepared Date: 
3/16/16

University of Arizona College of Engineering