CPE 315 Final Examination Announcement
Professor Stearns
Summer 2006

The final exam will be held on Monday, Aug. 14 from 9:00 am to noon in our regular classroom.

The final examination will cover the course lectures, homework problems, assigned material from the course textbook, and material from the laboratory projects.

The final exam is closed book but you may bring one 8 1/2 x 11 sheet of paper with notes in your own handwriting.
No printed material or copied material may be used except handouts or figures from our textbook.
Calculators may not be used.

In addition, you may be provided the following figures from the textbook as appropriate:
Figures B.5.10, B.5.12, B.9.3, 5.7.2, 5.7.3, 5.28, 5.30, 5.39, 7.9, 7.17, 7.21, 7.23, 7.26 and the official MIPS instruction sheet

Important Notes

  1. Be sure all numbers are normalized to the appropriate units.

  2. Be sure to comment any code according to the submission rules #5 and #6.
    Code that lacks good quality logical comments will automatically receive a grade of 0.

  3. On essay questions, don't use words on the bad words list .
    Copies of the list will be available during the final exam.

  4. There will be an emphasis on the concepts from Lab Projects 4 and 5 and Lab Exercise 7


To do well on the examination, you should be able to:

  1. Do signed/unsigned addition and subtraction.
    Ensure you are able to calculate and interpret the overflow and carry bits correctly.
    Ensure you understand slt, sltu perfectly under all possible conditions.
  2. Do any of the homework problems or problems similar to homework problems.
  3. Show the design changes, both data path and control, necessary to add an instruction to Figures 5.39 and 5.30.
    Expect the design problem to include Control and ALU Control changes.
    Be prepared to expand Figure 5.30 for the new instruction.
  4. For an extant instruction, determine the values on the data path and control path in Figure 5.39
  5. Answer conceptual and practical questions about the course laboratories.
    Questions will emphasize the later labs including Fig. 5.28 details, MIPS programming, context switching, exceptions, system calls, and virtual memory.
  6. Perform calculations using the concepts and equations of chapter 4. Basic performance equation, MIPS calculations.
  7. Understand and write MIPS programs, both 16 bit and 32 bit programs.
  8. Discuss/explain/answer homework (and related) questions from "Soul of a New Machine"
  9. Be able to explain or apply the significant concepts covered in CPE 315: a sample list follows:

Arithmetic
Why do computers use binary numbers?
Why do we humans use hexadecimal numbers?
What is two's complement? (note: it's a noun, not a verb)
Why do ALUs use two's complement? Explain.
What are some alternatives to two's complement? Explain.
What operations can the MIPS ALU perform? (e.g. A+B, A-B, ...)
Why does the alu perform subtraction?
How does the alu perform subtraction?
General Design
What does it mean to say: n-bit machine? What parts of the CPU determine n?
What does it mean to say: n-bit program?
How is the address space of a computer defined? How could it be changed?
What determines the maximum address of a computer?
What determines the maximum memory size of a computer?
Why are CPUs designed in layers (e.g. hardware, microcode, machine code, C++)
Why don't we build CPUs that interpret C++?
What is the purpose of microcode? machine code? assembly language?
Why are some CPUs microprogrammable? Why not all CPUs?
Why are computers constructed with memory hierarchies?
Why are emulators used in a computer system? Why are emulators usually faster than the native CPU?
Why are simulators used to interpret instruction set architectures?
Why are are simulators always slower than the native CPU?

RISC vs CISC
What are the major differences between a RISC and CISC machine?
What are the advantages of a RISC machine?
What are the advantages of a CISC machine?
What are the characteristics of a RISC machine?
What are the characteristics of a CISC machine?

Address Space

What determines the address space of a program?
What parts of the CPU determine its address space? (Think carefully!)
Why do computer designers build CPUs with an address space smaller than physical memory? (e.g. SUN SPARC)
Why do computer designers build CPUs with an address space larger than physical memory? (e.g. MIPS)
Suppose you were asked to determine the address space of a computer; how would you proceed?
Some CPUs (e.g. 80x86, MIPS) have multiple address spaces of different sizes; explain why.

Performance
What is the purpose of the basic performance equation?
List several common benchmarks and explain what's wrong with each.
How should a computer scientist measure the performance of a CPU?
How do you choose the programs to execute for a performance measurement?
Is it necessary to execute programs to measure the performance of a CPU?
How is performance (CPU time and throughput) affected by architectural choices? e.g.
    Virtual Memory, cache design, pipelining, DMA, ...

Microprogramming

Why are CPUs microprogrammed?   microprogrammable?   hard-wired?
Why is there a trend away from microprogramming?
Caches
What are the motivations for using caches?
Explain the rationale for each type of cache (direct mapped, set associative, fully associative)
What's the purpose of a translation lookaside buffer?
Under what circumstances should a cache use write-through? write-back?
How does cache affect the basic performance equation?
Explain locality, both temporal and spatial. Use/discuss actual code examples

Virtual Memory

Explain how virtual memory is used to help solve each of the following architecture problems.
  1. Multiple programs executing in the same CPU
  2. Accessing memory addresses larger than 2 largest address
  3. Executing a program with only part of it in memory
  4. Executing a program larger than memory
  5. Program sharing
  6. Protection
In addition to the MMU, what features must be provided by the CPU to implement virtual memory?


Questions guaranteed to be on the final
  1. A MIPS programming problem; write a function given its specification.
  2. Problems to convert MIPS assembly/pseudo instructions to binary and vice-versa.
  3. A question about simulators, emulators, language translators, interpreters
  4. A design problem: add a new instruction to Fig. 5-39
  5. A question about MIPS exception handling. (reference to Lab Exercise #7)
  6. Virtual memory essay questions and problems directly from Lab #5
  7. A cpu/cache performance problem.
  8. Many short answer essay questions from (or related to) the list above.

Topics guaranteed NOT to be on the final
  1. Writing function specifications (pre and post conditions)
  2. Writing MIPS microcode
  3. Questions from Chapter 6
  4. Specific questions about SIM or Xilinx
    But there may be lots of questions about the concepts learned while doing the labs.

Last updated on 8/10/06