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: 2:10-3:10 (tent)

 

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.

 

Grading (tentative)

 

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