|
Main Page
Announcements
Lectures
Project
Assignments &
Study Guides
Course
Guidelines
Programs
Resources
Syllabus
Grading Policy
|
CS 282 System Architecture II Syllabus
Course Description
The course covers performance evaluation and benchmarking, pipelining,
memory hierarchy, superscalar processors, multiprocessors, and interfacing
processors and peripherals.
Course Objective
To obtain an understanding of the effect of computer architecture on
program performance and the architectural features designed to enhance
performance. To understand how a processor is interfaced with various
peripherals. To evaluate the performance benefits of different architectural
designs.
In order to relate performance of a program to the underlying
architecture, we will rely on benchmarking information (execution time,
hardware statistics) obtained from hardware counters and computer
simulation.
The course will have a programming component. Students will implement,
using the hardware description language VHDL, a pipelined version of a
hardware processor. Students will also implement a simple processor/memory
bus, or an interrupt driven keyboard and console to perform simple I/O.
Audience
This is a core computer science course required by all Computer Science
majors. It is the second part of a two term sequence. It should be taken in
the 3rd year. Though not required, the course serves as an elective for the
Computer Science minor, and is appropriate for students interested in modern
computer architecture and high performance computing.
What Students Should Know Prior to this Course
- All prerequisite material for CS 281 (Systems Architecture I)
- Understand the components and format of a machine instruction set.
- To be able to write an assembly language program.
- To be able to understand how an assembly language program executes on
a computer.
- To understand how a computer represents numbers and performs
arithmetic.
- To build a simple ALU.
- To understand the datapath and control of a simple computer.
- To implement a simple instruction set: create an appropriate datapath
and describe the control using microcode or a finite state machine.
- To use a hardware description language (VHDL).
What Students will be able to do upon Successfully Completing this
Course
- To quantitatively evaluate the performance of a computer.
- Proficiency at measuring and analyzing the performance of software on
a given architecture.
- To be familiar with advanced features of computer architecture
designed to improve performance, such as pipelining, cache, superscalar
execution, and parallelism.
- To improve the memory and pipeline performance of a program.
- To build a pipelined processor, to detect and alleviate pipeline
hazards.
- To describe and simulate a processor using a hardware definition
language.
- To understand how a computer communicates with peripherals.
- To write a program that interfaces with an I/O device through the use
of polling and interrupts.
Prerequisites
CS281 (instruction set design, assembly language programming, computer
arithmetic, processor datapath and control)
Textbooks
- David A. Patterson and John L. Hennessy, Computer Organization and
Design: The Hardware/Software Interface, Third Edition, Morgan Kaufman
Publishers, ISBN: 1558606041 (August 2004).
- Peter J. Ashenden, The Designer's Guide to VHDL, Second Edition, Morgan
Kaufman Publishers, ISBN: 1558606742 (May 2002).
- Optional but Recommended: Randel Bryant and David
O'Hallaron, Computer Systems: A Programmer's Perspective. ISBN: 013034074X
- Optional but Recommended: VHDL Prototyping with FPGA
using the Spartan-3
Topics
- Performance Evaluation and Benchmarking (chapter 4)
- Enhancing Performance with Pipelining (chapter 6)
- Exploiting Memory Hierarchy: cache, virtual memory (chapter 7)
- Interfacing Processors and Peripherals (Chapter 8)
- Multiprocessors (Chapter 9 on CD)
Grading
- Written and Programming Assignments (three) 30%
- Midterm Exam 20%
- Project 30%
- Final Exam 20%
- Weekly quizzes and group assignments will augment the above breakdown
by plus or minus one letter grade
Last edited:
09/19/2005
anatole@cs.drexel.edu
|