CS470: Computer Architecture

Spring 2009 Course Syllabus

 

 

Instructor:

Yashwant Malaiya malaiya@cs.colostate.edu

Office: 356 CSB,

M: F: 10-11 AM

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

 

o       Homework/Labs: There will be about 4-5 homework assignments, and 3-4 lab assignments 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 3, progress report: April 2, final report May 5.

 

Grading (tentative)

 

Exam one

Feb 26

15%

Exam two

April 14

15%

Final exam

May 12 (1:30-3:30)

25%

Homework & programs

as assigned

about 25%

Quizzes

In-class or on-line

about-10%

Term Paper

Due on May 5

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