Review questions
Binary representations:
1. Perform the following 4-bit 2’s complement binary operations:
a. 1100 + 0011
b. 11 00 + 0100
c. 1000 – 0001
d. 0111 + 1001
2. Describe in words how you would right shift a 16-bit binary word in the LC-3 ISA
3. What considerations go into the design of a binary floating-point representation?
Specificcally, what are the trade-offs between the two main choices that have to be made?
Digital circuits
1. Construct a truth table for the boolean operation XOR, and draw the corresponding
circuit using only AND, OR, NOT gates
2. Give a high level description of a ripple-carry adder (i.e. do not describe the workings of
the actual adder circuit, just how multiple such circuits are put together to add a multi-bit number.
How does this differ from a carry-lookahead adder?
Memory
1. A certain ISA specifies a 24-bit ALU, 16-bit addressing, and word-addressable memory.
What are
a. The word size
b. The address space
c. The total memory capacity in bytes
FSM
1. Sketch the Finite State diagram for this system:
A door is locked until a card is swiped, at which point it unlocks. As soon as it is opened and closes, it locks again.
Microprocessor design
1. What type of circuit “orchestrates” the execution of instructions in a microprocessor?
2. Give a high-level description of the steps involved (we usually identify 6 such steps, not
all of which are involved in the execution of every instruction).
The LC-3
1. Give a complete description of the TRAP instruction: – what it does, and why such an instruction is needed – the register transfer description
– an example of its use in a program
– assemble your example to ML
– list all the control signals, in sequence, that implement it.
I/O
1. Describe in your own words the difference between polling and interrupt processing of
i/o
2. What are the two possible mechanisms for accessing ports on a microprocessor?
Translation to ML
1. What are the two basic approaches to generating ML from source code written in
“algorithm capture languages” (aka HLL such as C++, Python, Ada, perl, etc. etc.)
Discuss the tradeoffs between them.
2. What data structure in the compilation process permits the use of nested function calls?
Describe (high-level, not code) how such a function call works – what low-level information is involved, how it is accessed, etc.