Fundamentals of Computer Architecture
Fall, Spring
Required for CE; Technical Elective for EE
Catalog Data: 

ECE 369 -- Fundamentals of Computer Architecture  (4 units)
Description:  Fundamentals of computer architecture and organization, processor organization and design, control design, microprogramming memory hierarchy, including caches and virtual memory input/output.
Grading:  Regular grades are awarded for this course: A B C D E.
Usually offered:  Fall, Spring.

ECE 175 and ECE 274A.

Computer Organization and Design: The Hardware/Software Interface, D. A. Patterson and J.L. Hennessy, Fourth Edition, Morgan Kaufmann Publishers, 2011.

Course Learning Outcomes: 

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

  1. Understand the fundamentals of the computer architecture world
  2. Explore computer architecture paradigm on their own
  3. Articulate the design issues involved in the computer architecture both in theoretical and application levels
  4. Design and implement single-cycle and pipelined datapaths for a given instruction set architecture
  5. Evaluate the close relation between the instruction set architecture design, datapath design, and algorithm design 
  6. Understand the performance trade-offs involved in designing the memory subsystem including cache, main memory and virtual memory 
  7. Discuss the state of the art multicore architectures such as the NVIDIA Graphics Processing Unit.
  8. Evaluate the performance of a hypothetical architecture analytically
Course Topics: 
  • Computer Abstractions and Technology [4 lectures].
  • Arithmetic for Computers [4 lectures].
  • Instruction Sets and Software Systems [7 lectures].
  • MIPS CPU and Control Unit Organization [8 lectures].
  • Pipelining in MIPS CPU [6 lectures].
  • Exploiting Memory Hierarchy [6 lectures].
  • Storage and I/O [2 lectures].
  • Multicores, Multiprocessors, and Clusters [4 lectures]
Class/Laboratory Schedule: 

Three 50-minute lecture sessions per week.
Two 75-minute laboratory sessions per week.
4-6 homework problem sets during semester.
Two in-class examinations plus a final examination.
Semester long project completed in 3 phases

Computer Usage:   Verilog and Assembly programming exercises

Relationship to Student Outcomes: 

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 (Low)
j)  a knowledge of contemporary issues (Medium)
k) an ability to use the techniques, skills, and modern engineering tools necessary
    for engineering practice. (High)

Prepared by: 
Dr. Ali Akoglu
Prepared Date: 

University of Arizona College of Engineering