CS470: Computer Architecture
Spring 2004 Course Syllabus
Engr 120 TR 2:10-3:25
|
Instructor:
GTA: |
Yashwant
Malaiya malaiya@cs.colostate.edu Alodeep Sanyal alodeep@cs.colostate.edu |
Office: 238 USC M: W: Office hours: 1-2 M,F, 4-5W,F |
o Prerequisites: a grade of 'C' or better in CS 370 (System Architecture and Software).
o Text: David A. Patterson & John L. Hennessy, Computer Organization & Design: The Hardware/Software Interface, 2nd edition, Morgan Kaufmann Publishers, Inc. Some material will be taken from elsewhere.
o Course web page: http://www.cs.colostate.edu/~cs470
o Homework/Labs: There will be several homework assignments, including some programs.
o Tests: There will be 2 Tests and a comprehensive Final Exam. In addition there will be several quizzes, some of which may be unannounced.
o Term project in Computer Architecture: Proposal (1-page): March 2, progress report: April 1, final report April 29.
|
Exam one |
Feb 26 |
15% |
|
Exam two |
April 13 (new date) |
15% |
|
Final exam |
May 10 (9:10-11:10) |
25% |
|
Homework & programs |
as assigned |
25-30% |
|
Quizzes |
In-class or on-line |
5-10% |
|
Term Paper |
Due on April 29 |
10% |
o Policies:
o Assignments are due on the due date at the start of class, or by the time specified (if electronic submission is required).
o You may turn assignments in 24 hours late for a 20% penalty. No credit will be given after that.
o If you will not be able to take an exam or make an assignment deadline due to an exceptional reason, you must request the instructor in advance for possible alternative arrangements.
o Students must read the CS Department Student Information Sheet available at http://www.cs.colostate.edu/~info/student-info.html
Topic Outline
o Introduction
o Review of logic design basics
o Gates and circuits
o Boolean algebra and truth tables
o Combinational logic and functional blocks
o Flip-flops, registers and memories
o Finite state machines
o Computer Performance
o Measuring performance; Metrics
o Benchmarks
o How to interpret performance
o Assembly language programming
o Operations; Operands
o Instruction formats and Addressing Modes
o Decision-making
o Procedure/function calls; Stack
o Arrays; Pointers
o RISC and CISC processors
o Computer Arithmetic
o Bits, bytes, words, characters
o Numbers and number bases and Special purpose codes
o Binary arithmetic and hardware implementation
o Floating-point numbers
o Multiplication and division
o Central Processing Unit
o Structure; Datapaths
o Control unit
o Instruction execution
o FSM and microprogrammed control
o Pipelining for enhanced performance
o Pipelined Datapaths
o Data Hazards; Forwarding; Stalls
o Branch Hazards
o Exceptions
o Computer memory and cache
o Input/output