CIS360: Midterm Topics
NOTES
The midterm is closed book, closed notes, and no calculators can be used.
For the midterm, you will be given:
- the CPU diagram from the book, or one similar to it,
- a list of control signals for a CPU diagram
You may be given the following if questions require it:
- the 'ISEM reference card' - the 3 pages from your Course Notes
- a table of ASCII codes
- a table of SAM instructions
The midterm will include, but not be limited to, a combination of several of:
- true/false,
- multiple choice
- writing short program segments in a particular instruction format
- and some short answers
Below you will find a fairly comprehensive list of the topics we've covered in class (did I miss anything?).
See how much we've learned already...
The number of '*' behind a topic is meant to indicate its relative importance.
Number representation and conversion
- binary, hex, decimal representation and conversion ***
- unsigned and 2's complement number representation ***
- sign-magnitude, BCD *
- ASCII characters and character strings *
- parity, Huffman code, Hamming distance *
- bit-wise operations
Computer and memory architecture
- flip-flops, registers, bus, multiplexor, decoder *
- combinatorial circuits, sequential circuits
- Von Neumann archictecture, CPU-memory bus **
- RISC v. CISC **
- memory types: ROM, RAM, PROM, access time, cycle time, volatility *
- addressability: byte, word, alignment, byte ordering *
CPU architecture
- CPU diagram, control signals, and flowchart ***
- CPU registers: PC, IR, MAR, MDR **
- instruction fetch and execution ***
- machine instruction formats ***
Assembly Language - in general
- instruction formats: 3-addr, 2-addr, 1-addr, 1 1/2 addr, 0 addr, load/store; use of registers **
- counting number of memory references in fetching and executing instructions *
machine language representation of instructions **>
flow of control **>
- writing program segments using the various instruction formats**
SPARC (ISEM) Assembly Language
- ISEM memory dumps and register listings *
- Instructions: ALU, load/store, set
- analyzing simple program segments **
Programming in SPARC
- ISEM debugging commands, reading dumps
- performing simple arithmetic computations of input values *
- the traps
- assembler directions: .byte, .half, .word, .ascii, .asciz, .skip
performing ASCII<->binary conversion of numbers **
manipulating ASCII character representations *
Sample Questions
- What is the range of values that can be represented in 4 bit 2's complement representation?
- What is the Hamming distance between 11110000 and 01010101?
- What is parity used for?
- What does the number of bits in the MAR tell you about the memory bus from the CPU to memory?
- What is the difference between ROM and PROM? Give an example of when you would want to use each.
- What is the closest approximation to 0.1 using 2 fraction bits?
- Use the CPU diagram in the overheads with the addition of general purpose registers connected to the bus with appropriate control signals to load values from the bus (e.g., load R1) and copy values onto the bus (e.g. R1->bus).
Given the instruction 'ADD [R2]' which adds a value to the accumulator, list the CPU signals necessary to fetch and execute it
- Would a RISC or a CISC be likely to have more registers
- Write a program segment that would compute the following: 'a = b + c + d + e'. Use a) 3 operand address format and b) 1 operand address format. Give the number of memory fetches required by each.
-
How many memory references does it take to fetch and execute the following - assume one memory reference to fetch each instruction, absolute addressing and immediate addressing are used:
load A,R1 ! load the value from memory location 'A' into R1
add #3,R1 ! add 3 to R1
store R1,B ! store R1 into memory location 'B'
- In the memory dump given to you, what is the decimal value stored at location 0x2000?
Last updated April 26, 2006
360 syllabus