Updates on the campus response to coronavirus (COVID-19)

ECE Course Syllabus

ECE3057 Course Syllabus

ECE3057

Architecture, Systems, Concurrency and Energy in Computation (3-0-0-3)


CMPE Degree
This course is Required for the CMPE degree.

EE Degree
This course is Elective for the EE degree.

Lab Hours
0 supervised lab hours and 0 unsupervised lab hours

Course Coordinator
Krishna,Tushar

Prerequisites
ECE 2031/20X2 [min C] and ECE 2035 [min C]

Corequisites
None

Catalog Description
Basic organizational principles of the major components of a processor, e.g., the core, memory hierarchy, I/O subsystem and basic operating system constructs that utilize them.

Textbook(s)
Patterson & Hennessey, Computer Organization and Design: The Hardware/Software Interface, 2014. (required)


Course Outcomes
Upon successful completion of this course, students should be able to:
  1. Evaluate the cycles per instruction (CPI) for multi-cycle and pipelined data paths.
  2. Schedule machine-instruction-level programs on a pipelined datapath with and without hazard handling.
  3. Define different types of data and control dependences and describe multiple methods of handling them.
  4. Explain the hardware organization and behavior of cache memories of different sizes and associativity.
  5. Describe the basic elements of scheduling and how they are used in the OS.
  6. Define and understand virtual memory, including the concepts of paging, TLB, and page table.
  7. Define and distinguish between basic I/O mechanisms such as polling, DMA, interrupts. Enumerate the basic techniques of support within an operating system.
  8. Explain the operation of storage devices and network interfaces and how they are managed (OS)
  9. Define and distinguish between various forms of parallelism: instruction level parallelism (ILP), thread level parallelism (TLP), and data level parallelism (DLP).
  10. Perform a performance/energy analysis of data paths and the memory system.

Student Outcomes
In the parentheses for each Student Outcome:
"P" for primary indicates the outcome is a major focus of the entire course.
“M” for moderate indicates the outcome is the focus of at least one component of the course, but not majority of course material.
“LN” for “little to none” indicates that the course does not contribute significantly to this outcome.
  1. ( P ) An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
  2. ( M ) An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
  3. ( LN ) An ability to communicate effectively with a range of audiences
  4. ( LN ) An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
  5. ( LN ) An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
  6. ( LN ) An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
  7. ( M ) An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Topical Outline
1. Instruction Set Architectures
     a. Instructions, addressing modes, and sample ISAs 
     b. Multi-cycle data path and control 
     c. Controller implementation: state machine vs. microprogramming
2. Pipelining 
     a. Pipelining basics 
     b. Pipeline stages: fetch, decode, execute, memory write-back 
     c. Hazards and solutions 
     d. Branch prediction and basic speculation
3. Memory Systems 
     a. Basic organization of caches and main memory 
     b. Virtual memory basics, memory management including OS level management algorithms
4. Concurrency 
     a. Basics of Processes and threads: state and architecture execution model 
     b. Synchronization primitives: architecture implementation and OS usage models 
     c. ILP, DLP, TLP 
     d. Introduction the concept of data coherence
5. Energy and Power dissipation 
     a. Dynamic and static energy dissipation fundamentals 
     b. Microarchitecture-level energy dissipation and power models 
     c. Power virus, kernel benchmarks and power 
     d. Basics of voltage and frequency scaling
6. Operating System and Networking Support 
     a. Basics of Operating Systems -- process scheduling and deadlocks 
     b. Basic Networking Stack