UP ONE LEVEL:
ENCM 369 Winter 2003 Home Page
ENCM 369 Winter 2003 Midterm Information
Author: Steve Norman
Last modified: Thu Mar 6 13:51:54 MST 2003
Contents
Test Time and Location
The test starts at 6:30pm Monday, March 10.
The duration will be 1.5 hours.
Students in L01 (Dr. Norman, MWF 8am) will write in EN E 241.
Students in L02 (Dr. Yanushkevich, MWF noon) will write in EN E 243.
[back to top of document]
Closed-book, no calculators
The test is closed-book--do not not take any books or notes
to your seat.
Use of calculators or computers during the test is
not permitted.
[back to top of document]
Test Topics
First, a general principle:
The test will focus mainly on topics that were
heavily emphasized in lectures and labs.
We are not going to make a lot of marks depend on
topics that were given very little coverage in lectures and labs.
The test will cover all material up to and including Lab 6 and
the lectures of Friday, 27, with the following exceptions:
- You will not have to answer questions about how
to use xspim.
- You will not have to determine bit patterns for
instructions, or determine what instructions correspond
to a given bit patterns.
This will include material up to the end of Section 4.6 in
Patterson and Hennessy.
However, you won't be tested on
details related to carry lookahead (pages 241-248 in Section 4.5)
and multiplication hardware (pages 251-261 in Section 4.6).
The test will not cover any aspect of integer division (Section 4.7).
It will have a small number of marks associated with
floating-point numbers (Section 4.8).
There may be a small number of marks associated
with material in the assigned reading from Chapters 3 and 4
that was not covered in lectures.
Let me repeat that the number of marks related to this
material will be either zero or very small.
[back to top of document]
Test Format
The test will have a similar format to the 2001 and 2002 midterms,
which are available via a link on the 2003 course home page.
Questions will be of the following types:
- You will have to write SPIM procedures or other short sequences
of SPIM instructions.
You may be asked to translate C functions.
You may also be asked to write code to perform a
specified task without having any C code to work from.
When writing code, you must use only the instructions
and pseudoinstructions listed in the
section below called ``Midterm Instruction Subset''.
- You will have to draw diagrams and/or
predict register and memory contents to show that you know how a
given SPIM program works.
- You may have to write some short paragraphs
(roughly two or three sentences) to show that you
understand key terms and concepts from the course.
You will write all of your answers on the question paper,
in spaces provided for answers.
[back to top of document]
Midterm Instruction Subset
In order to avoid having you spend a lot of time
memorizing all of the instructions you have seen
so far in the course, all problems
that ask you to read or write SPIM code will be set up
so that you can solve them with knowledge of
the following MIPS instructions:
add, addi, addu, addiu,
sub, subu,
and, andi,
or, ori,
sll, srl,
lui,
lw, sw, lb, lbu, sb,
beq, bne,
j, jal, jr,
slt, slti, sltu, sltiu,
mult, multu, mfhi, mflo
In addition, you need to understand exactly two pseudoinstructions:
la, li
Reference Material
You will be provided with one or two pages of reference material
along with the question paper.
This material will include:
- A list of all 32 general purpose registers in a MIPS processor.
- Documentation for all of the instructions in the ``Midterm
Instruction Subset'' listed above.
Here are some examples of the documentation:
- addu rdest, rsrc1, rsrc2
Add words from registers rsrc1 and rsrc2
and put result in register rdest.
- lb rdest, address
Copy byte at memory address address to bits 7-0
of register rdest, and make bits 31-8 of
rdest equal to bit 7 of that byte.
[back to top of document]
Suggestions for preparation
Here are suggestions for review:
- Re-read the assigned sections from the textbook.
(Unlike ENCM 339, ENCM 369 follows the course text closely.)
Pay particularly close attention to material that
got heavy coverage in lectures and/or labs.
- Review lecture notes and lab handouts carefully.
Many of the `Read This First' sections in lab handouts
contain useful information.
- Re-do lab exercises using pencil and paper,
especially those exercises that you found difficult
when you first did them.
Practice writing complete procedure definitions with
pencil and paper--writing code by hand is a bit different
from typing code in a text editor, and it's obviously
an important skill to develop for tests and exams.
[back to top of document]