
\documentstyle[11pt,twocolumn]{article}

\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
\setlength{\topmargin}{0.0in}
\setlength{\headheight}{0in}
\setlength{\headsep}{0in}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9.6in}
\setlength{\parindent}{0in}
\setlength{\parskip}{2mm}
\setlength{\columnseprule}{0.4pt}

\begin{document}


\title{ECS 154B, Computer Architecture}

\author{Norman Matloff \\
       Spring 1996}

\date{April 4, 1996}


\maketitle

\section{Office and Office Hours}

My office is in 3053 EUII, Ext. 2-1953.  My office hours will be MWF
5:30-6:30.  Note that the hours will be held on a ``95\% probability'' 
basis, since sometimes I have a meeting to attend.  {\bf I enjoy my 
office hours very much, and look forward to interacting with you 
during them.}

I am also available at other times if you have short questions. 

Our TA is Vijoy Pandey.  He too will be announcing his office hours soon.

You are welcomed and {\bf strongly encouraged} to send me e-mail, at 
the address matloff@cs, for help on homework assignments, questions 
on the lectures, and on any other aspects of the course.  

\section{Adding the Class}

Please make sure to find out whether adds for this course are being 
handled by wait lists or purely by PTAs.  If the latter is the case,
make sure to send me e-mail \underline{immediately}, presenting your
case for being granted a PTA.

\section{Course Prerequisites}

The official prerequisite is ECS 154A.  Here is a sample of words and
phrases which you should remember from that course:

\begin{quote}
gate; multiplexer; decoder; clock; digital design software; I/O port;
memory-mapped I/O vs. separate-address-space I/O; wait-loop driven
I/O; interrupt-driven I/O; direct-mapped and associative cache memory; 
virtual memory
\end{quote}

ECS 154A in turn has the prerequisite ECS 50.  You should be familiar
with the following from that course:

\begin{quote}
bit; byte; ASCII; instruction set; addressing mode; CPU; registers; bus;
memory; RAM; ROM; address; fetch-execute cycle; CISC vs. RISC; functions
of hardware vs. software; stack frame; machine-level storage of C program   
variables; interfacing of assembly-language modules to C modules; role of
the operating system in helping the programmer to create, store and
execute his/her programs, and in managing system resources
\end{quote}                 

ECS 154A also has as prerequisite ECS 110, which in turn has ECS 40 as
a prerequisite.  That means that you should be reasonably good at
programming, and {\bf HAVE A WORKING KNOWLEDGE} of basic Unix concepts
such as

\begin{quote}
files and directories, e.g. commands such as ls, cd, pwd, chmod;
network use, e.g. e-mail, network addresses, ftp (including anonymous
ftp); processes, e.g. use of ctrl-z, \& and the bg and kill commands;
C library and include files; user-level windowing, e.g. creating and 
moving windows; shell conveniences, e.g. wild cards, the history 
command, etc.;  modular program design, including separate 
compilation of source files; makefiles and the `make' program;
pointers, \& and \* operators; recursion; fprintf(), fscanf(),
fopen(); read(), write(), open(); debugging aids such as gdb    
\end{quote}     

See the official departmental Expanded Course Descriptions of these 
courses for further details.  They are available on the department's
Web page, URL http://www.cs.ucdavis.edu

Again, it will be assumed that you have a {\bf working knowledge}
of  the Unix tools mentioned above.  If you are lacking some of them,
please see the Unix and C tutorials within my Chinese-software Web 
site, URL http://www.cs.ucdavis.edu/chinese/unix.html

If you do lack this background, be sure to take a look at these 
tutorials {\bf NOW}, before it is too late to remedy any deficiencies.
These are tools which you will be using every day in our course.  
{\bf If you do not know them, you will be unable to complete the 
homework assignments, and will spend all your time being frustrated 
by Unix obstacles, instead of learning computer archtitecture.}  

\section{Course Content}


\begin{itemize}
\item  CPU design:  basics of microcoded and hardwired approaches

\item  the RISC philosophy of architecture:  it is claimed that
``simpler is better''

\item  pipelining:  increasing CPU speed by having several operations
done in parallel

\item  introduction to multiprocessors
\end{itemize}

\section{Textbooks}

The text by Shiva is required.  Note that exams are open-book,
and there is no sharing of books or materials during exams.  Thus
every student must have his/her own copy of the book.\footnote{Please
do not Xerox books.  This is illegal.}

We also will have a number of handouts which I have written.  If you 
miss a class in which they are distributed, you can get your own copy 
from from the appropriate subdirectory (154B or Architecture) 
within \verb|~matloff/Pub| on the CSIF machines.  Note that the 
README file in \verb|~matloff/Pub/LaTeX| tells you how to view or 
print the .tex files.

Make sure you bring Shiva and the handouts to every lecture.  They 
will play very active roles in the lectures, i.e. I will ask you to 
open to a certain page in the book or in a handout, and then point to 
various sentences and pictures on that page. 
 
\section{Lecture Format}

The lectures will consist mainly of discussion and amplification 
of the examples in the texts and handouts, with additional examples
and comments.  

You are very much encouraged to bring up any questions you might have.  
Please don't be shy about asking questions; there is no such thing as 
a ``dumb'' question.  Similarly, listen carefully to the questions the 
other students ask; this can be a very valuable source of insight, to 
which you should pay special attention.  

Note that the discussion section is REQUIRED.  The material presented
there is important, and will be represented in exam questions.

\section{Exams}

There will be three midterm exams, on Wednesday, April 24; on Wednesday,
May 15; and on Friday, June 7.  The latter is the last day of instruction 
for Spring Quarter.  There is some possibility that Midterm I or II 
might be postponed a little.   There is no final exam; Exam III
covers only the material since Exam II.

There are no early or late exams.  If you miss Exam I or II for documented
medical reasons, you may either take an oral exam to make it up, or
just have the other exams count proportionally more.  If you miss Exam 
III for documented medical reasons, you will get an Incomplete grade in the
course.

{\bf EXAMS ARE TAKEN ON AN OPEN-MATERIALS BASIS.}  Bring both texts,
plus the handouts, with you to each exam.  You are also welcome to
bring whatever other materials you wish, e.g. your ECS 50 and 154A
texts, dictionaries, whatever you want.  Whatever you bring, {\bf MAKE 
ABSOLUTELY SURE THAT YOU REMEMBER TO BRING ALL YOUR COURSE READINGS, 
AS VIRTUALLY ALL OF THE EXAM QUESTIONS WILL REFER TO SPECIFIC PAGES
IN THEM.}

An embarrassing subject which nevertheless must be mentioned is 
cheating on exams.  Make sure to keep your exam paper covered during
the exam, out of the view of your neighbors.  Don't tempt your 
neighbor by carelessly leaving your exam in view.  If your neighbor 
is found to be cheating, it will be treated as a very, very serious 
matter, not a harmless prank; it will harm his/her standing at the 
university, and also possibly make it difficult for him/her to get a 
job when seeking employment after graduation.  Again, please make sure 
your neighbor is not tempted---keep your exam paper covered.  During 
an exam, if your paper is exposed, a proctor will come to you and 
mention this to you.  Thanks very much for your help.

\section{Grading}

In computing your course grade, each exam grade will be used in 
letter grade form only (the numerical grades are recorded but not 
used).

In addition to the midterm exams, the homework will count as ``Exam
IV.''  Your letter grade on this ``exam'' will be as follows, 
based on your average homework score:  90-100\%, A; 85-89\%, A-; 
80-84\%, B; 70-79\%, C; 50-69\%, D; under 50\%, F.  {\bf I aim for the
vast majority of the class to get an A on the homework.}  Lots of
help is available, so this aim should be achievable.  (And it is;
I use this policy in every course I teach, and it always works out
that most people get A homework grades.)  Again, this is a real A,
carrying as much weight as each midterm.  {\it At the end of the
quarter, it will be your responsibility to make sure that the
Readr's records are correct as to your scores.}

{\bf In computing your course grade, I will throw out your lower
letter-grade score among Exams I and II.}  Thus your course grade
will be determined by the average of three letter grades:  the
better of Exams I and II; Exam III; and the homework.       

Grading is noncompetitive, so it is possible for everyone to do 
well.  

\section{Machines}

Our base machines will be those in the CS instructional labs (CSIF).  
If you pre-enrolled in this course, or if you took a CS course last 
quarter, you should already have an account.  If you added the course, 
there will be a slight delay in getting you an account.  Your account 
name will be your surname, and if that is not unique, it will be your
surname followed by your first initial.  Your initial password will
be the last eight digits of your student number; change it immediately,
using yppasswd.  Note that all the instructional machines share a 
common file system, so you can access the files from any machine.

We will also use the computers in the ACS Lab, which is in Room 1114 in
the Academic Surge building (two buildings away from Bainer Hall, south). 
They are Sun Microsystems SPARCStations and HP workstations.  The
SPARCs are all named after Mexican foods:  burrito, enchilada, fajita
and so on.  Please do not use rosarita, which acts as the file server.
Accounts will be set up for you on these machines (CSE majors already
have accounts).  If you add the class late, you may have to go to ACS 
and ask for an account individually.  Your account name will consist 
of your first two initials, followed by your surname; e.g. if John 
Paul Jones were enrolled in our course, his account name would be 
jpjones.   Note, though, that account names are truncated to 8 
characters; e.g.  if Mary Ellen Johnson were enrolled, her account 
name would be mejohnso.   Your initial password is your student ID 
number (without hyphens); please change it the first time you log in, 
using the passwd command.  These machines also share a common file 
system, though of course not the same one as for the CS instructional 
machines.

We will be using the Chipmunk digital design software, available on 
on the CSIF machines, as \verb| ~farrens/academic/bin/diglog|  It
should be on the ACS machines too.

{\bf NOTE CAREFULLY:  FOR ANY COMPUTER PROCEDURE, THINGS WILL NOT GO
PERFECTLY SMOOTHLY THE FIRST TIME YOU TRY IT.  In many cases you
will find that some unanticipated problem occurs which prevents you
from successfully using that procedure.  ACCORDINGLY, DO NOT WAIT
UNTIL THE LAST MINUTE TO DO YOUR HOMEWORK, AND MAKE ABSOLUTELY SURE
THAT YOU KNOW THE UNIX TOOLS NEEDED (E-MAIL, TAR, ETC.) TO TURN IN
YOUR HOMEWORK.}
   
\section{Homework}

As much as possible, we will operate a ``paperless society'':

\begin{itemize}
\item[(1)]
No printed paper will be used to announce homework assignments. 
Instead, assignments will be announced in the Usenet newsgroup
ucd.class.ecs154b.\footnote{If you are not familiar with Usenet,
just type either `rn' or `tin' (I recommend the latter), and
follow the prompts.  It is required for this course that you read 
Usenet every day.  Not only will homework assignments be posted there, 
but also there may be later corrections, hints, etc.  You should also 
read the newsgroup ucd.cs.jobs, where announcements are often made on 
things like summer jobs, which provide immensely valuable experience 
when you look for a permanent job after graduation.}  The homework
files themselves will be in the directory \verb| ~matloff/Pub/154B/Hwk|  so
look there when an assignment is announced.  

Please note that there will be required reading assignments, from the
textbook, posted in this directory too, not just written assignments.  
Note too that if in the course of this reading you encounter 
unfamiliar terms, it is your responsibility to find out what they 
mean; first look in the index of the book, and if that does not work, 
ask me.  

\item [(2)]  You will submit your homework not to me or the TA, but 
directly to the Reader, using e-mail (details will be announced).  This 
not only facilitates our paperless society, but also has the big advantage 
that the Reader can try executing your programs, to see if they work.
\end{itemize}

As mentioned earlier, feel free to get help on the homework from the TA
and me.  If you are stuck at some point, or needs hints to get started,
we will be happy to help.  Of course, you should make sure that you
have given THOROUGH thought to your problem before you seek help
from us; otherwise you will not learn.  But once you have reached the
point where you cannot go any further, we very much encourage you to
seek help from us.

An assignment is late if it is turned in after 11:59 p.m. of the due date.

If---this should never happen, but just if---you are late, you
will be assessed a 10\%-per-day late penalty in your grade for that
assignment.  (Since e-mail is available every day, each of the seven 
days of the week counts as one day.)

Your submitted homework will consist of one or more files.  If your
homework consists of more than one file, you are required to tar them
together, then compress using gzip, and uuencode.

{\bf AGAIN, TRY THIS ON YOUR OWN BEFORE SENDING TO THE READER; SEND TO 
YOURSELF, TO MAKE SURE EVERYTHING WORKS.}  Send all relevant files:
C files, executable files, make files, Chipmunk input files, etc.

You are allowed and encouraged to do your homework together with one
partner.  Submit just one copy of the homework, making sure both of
your names are listed.

\section{I Do Care!}

I wish to emphasize that I care very much that you succeed in this 
course, and I look forward to getting to know all of you.

\end{document}



