CPSC 418: Information


Go to CpSc 418 home page

Contents:
[ Course Outline | CpSc 418 & 538A | Course Reading List | Instructor | Lectures | Marking | Newsgroup | T.A. | Text Book ]


Instructor

T.A.

Lectures

Text Book

CpSc 418 & 538A

This year, I'm offering this course in two versions: CpSc 418 and CpSc 538A. CpSc 418 is the undergraduate version of the course and will follow the format that CpSc 418 has had for the past several years. CpSc 538A will be a graduate version. CpSc 418 is open to graduate student enrollment, and CpSc 538A is available to undergraduates based on the instructor's discretion based primarily on how much space is available and the student's past academic performance.

The two courses will have the same lectures. CpSc 538A will have additional readings, and an extra session each week. Some of the homework assignments may differ between the two courses to reflect the extra readings for CpSc 538A. While CpSc 418 will have a final exam, CpSc 538A will have a course project. Small groups of students in CpSc 538A will pick a current topic in computer architecture and propose a solution (I will provide some possible problems and starting points for solutions). In the project, the groups will explore the feasibility of the solution including issues of hardware feasibility, software requirements, cost, and suitability for the real market.

The remainder of this document focusses on the CpSc 418 version of the course. The CpSc 538A version may be different.

Marking

Homework15%
Papers15%
Quizzes10%
Midterm (October 23)25%
Final35%

Papers

A goal of this course is to teach how to read papers about computer architecture. In addition to the readings for the course, there will be two assignments of the form ``find a paper about computer architecture, read it, and write a 2-5 page summary.'' Here are some suggestions of where to find papers. These summaries will be graded for both content and clarity.

As scientists and engineers, you must be able to communicate effectively. Marks will be taken off for poor writing style and grammatical errors that impede understanding. Spell check everything that you type!

First paper due: October 16, 2001
Second paper due: November 29, 2001

Quizzes

To get the most out of this course, it is essential that you read the papers before class. Lectures will explore, expand upon, and critique the content of the papers. The ability to read is a pre-requisite for this course; I won't spend lecture time reading the papers to you. I realize that some of you prefer a tangible incentive for preparing for class. Thus, there will be some pop-quizzes. Basically, each question will have one question: ``Did you read the paper?''. To make this question easier to answer accurately, I will ask a few very simple questions about the paper (or perhaps papers of the previous week). If you've read the paper, the quiz will be trivial. I'll take your best five scores out of the six quizzes.

Course Outline

This course will build upon the material of CpSc 318 to examine current issues in computer architecture. Traditionally, architecture courses cover topics in the order of instruction sets, memory, and I/O. This means that instruction sets get too much attention and I/O gets neglected. As a remedy, I teach this course in the opposite order.

The first half of the semester will focus on I/O and memory. The survery of I/O emphasis will be on disks and disk arrays. We will also examine networks. The study of caching techniques will begin with a review of caching mechanics, and will focus on caching for large data sets and for shared-memory multiprocessors. These are currently issues for server machines and are likely to become increasingly important for desktop workstations and personal computers in the next few years.

The second half of the semester will focus on architectural support for parallelism. We will first examine super-scalar processors where the processor hardware finds implicit parallelism by analysing the instruction dependencies of the executing program. Super-scalars are the dominant architecture today. We will then compare the approach with the explicit parallelism of Intel's new IA-64 architecture. Following this introduction to instruction level parallelism, we will look at thread level parallelism. For this approach, applications are written as a collection of concurrently executing threads. Executing these threads in parallel can lead to greater performance. I've left the last two lectures open for topics of interest. These include quantum computing, bio-computing, nano-technology, embedded processors, high-speed circuits for pipelines and interconnect, architecture for low power, etc. I will welcome suggestions from the class of topics you would like to see covered.

Information Sources

Feedback

I strongly encourage you to give me feedback on what you like and don't like about the course, what you find easy or difficult, what homework problems you learned from and which ones you found non-helpful. I also encourage feedback on the papers that I've assigned -- are they too easy, too difficulty, overlap too much with material from CpSc 318, etc.

Cheating

I encourage discussions about the concepts in the course and the homework. However, each student must do their solution individually. Don't tell your friend something about a homework assignment that you know shouldn't be posted to the course newsgroup.

If you discuss the homework with other members of the class and it is likely that you will work out solutions with similar approaches as a result, state this in your solution. Be specific -- name the people that you discussed the problem with and the aspects of the solution that you figured out together. As I stated above, I encourage discussions about the concepts. Proper academic conduct requires that you give credit when you receive an idea from someone else.

I basically trust you all not to cheat, and I expect cheating not to be a problem. However, suspected cheating cases will be referred promptly to the University for appropriate disciplinary action.

Acknowledgement

I've adopted much of the material for these pages from Alan Hu's pages from the Spring 1999 instance of this course.


Copyright 2001 Mark R. Greenstreet
mrg@cs.ubc.ca
Last Modified: 4 September 2001