CS470: Computer Architecture

Spring 2005 Course Syllabus

Engr 120   TR 2:10-3:25

 

Instructor:

 

 

GTA:  

Yashwant Malaiya     malaiya@cs.colostate.edu

 

 

Xi Hua     xhua@cs.colostate.edu

Office: 238 USC       

M: W: 10:30-11:30 AM

 

Office hours: T, Th 1:00-2:00 North Lab

 

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, 3rd edition, Morgan Kaufmann Publishers, Inc. Some material will be taken from recent publications and other sources.

 

o       Course web page: http://www.cs.colostate.edu/~cs470

 

o       Homework/Labs: There will be several homework assignments, including some programs. Some assignments will include use of simulation at the logic level and some will use a machine/assembly level simulator.

 

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 1, progress report: April 31, final report April 28.

 

Grading (tentative)

 

Exam one

Feb 24

15%

Exam two

April 7

15%

Final exam

May 12   (3:40-5:40)

25%

Homework & programs

as assigned

25-30%

Quizzes

In-class or on-line

5-10%

Term Paper

Due on April 28

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 up to 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       Timing analysis

o       Finite state machines

o       Use of software packages for simulation

o       Computer Performance

o       Measuring performance; Metrics

o       Benchmarks

o       How to interpret performance

o       Trends in density, performance and cost

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       Implementation of Multiplication and division hardware

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