University of Southern California
department name USC Viterbi School of Engineering
 
Undergraduate Degree Programs
Master of Science Programs
Doctor of Philosophy Programs
Course Information
Degree Programs
Course Descriptions
Class Anouncements
D-Clearance & Registration
   

  
 EE 457X  

EE 457x: Computer Systems Organization

 
This is supplemental course information, designed to give you a fuller picture of the course and an expanded look at the topics covered. This is an unofficial document. The USC Course Catalog is the binding description of all university courses. Information such as books, materials covered, and the order of topics is subject to change. Please consult instructor for this semseter to get more upto date course information.
 
Catalog Data:
EE 457x Computer Systems Organization (3, FaSpSm)
Register transfer level machine organization; MPIS instruction set architecture; performance; computer arithmetic; organization and detailed implementation of non-pipelined and pipelined processors; cache and virtual memory.

Not available for graduate credit to computer science majors.
Prerequisite: EE 357.
 
Text book:
Primary References:
  1. Class Notes and Lab Manual (required): Please buy from the university (USC) bookstore. Remote students can call (213) 740-TEXT and place a phone order.
  2. Textbook: "Computer Organization & Design - The Hardware and Software Interface" 3rd edition Revised Printing By D. A. Patterson (Berkeley) and J.L. Hennesy (Stanford)
    Please buy from the university (USC) bookstore or any place (such as online bookstores). The book has a companion website. If you have second edition of the textbook, or the 3rd edition but not the revised printing, that is fine too.
Secondary References:
  1. EE101 and EE201L Textbook: Digital Design Principles and Practices By John F. Wakerly
  2. EE357 Textbook: Computer Organization by Hamacher
  3. Advanced Computer Architecture with Parallel Programming By Kai Hwang
  4. Computer Architecture - A Quantitative Approach By D. A. Patterson and J. L. Hennessy
  5. Computer Arithmetic Algorithms By Israel Koren
Course monitors:
Gandhi Puvvada
 
Topics:
  1. Review of essentials from EE102L and EE357
  2. Computer performance
  3. Instructions
  4. Arithmetic
  5. The processor
  6. Pipelining
  7. Memory Systems
  8. Additional Computer Arithmetic Handout (classnotes)
    Fast adders, Multipliers, Non-linear pipelines
  9. Parallel Processors
Course Objectives:
  1. To provide students with a substantial understanding of
    • a CPU at its logic design level through the design of the control unit and the data path unit of a simple multi-clock-cycle CPU and a pipelined CPU.
    • computer arithmetic, cache and virtual memories
  2. To expose students to the benefits of digital logic simulation tools through extensive design and simulation lab exercises.
Course Outcomes:
The students will be able to:
  1. design a simple CPU at logic level.
  2. understand the pipelining concepts and related issues.
  3. evaluate coding sequences with execution time (thereby performance) in mind.
  4. design simple arithmetic unit
  5. perform design entry, simulation, and functional verification using CAD tools
  6. understand the datapath and the control associated with a cache memory implementation and a virtual memory implementation
  7. proceed to graduate courses in computer architecture
  8. appreciate the relation between the low-level hardware of a CPU and compilers/operating systems written for that CPU. 
Laboratory Projects:
  1. Max. Min. finder State Machine Design Lab #1 Part #1 and #2
  2. Lab #2 (cancelled)
  3. Design of a 32-bit ALU Lab #3
    • Design of a combinational divider
  4. Multi-cycle CPU Design Lab #4 Part #1, #2, #3 and #4
  5. Pipelined Ripple Carry Adder Design Lab #5
  6. Design of a Pipelined CPU (Revised in Fall 2006) Lab #6 Part #1, #2, #3, and #4
  7. Design of a 3-element adder Lab #7 Part #1, #2, #3
Last Updated: 11/19/2007