Midterm 1 Study Guide
General Concepts
- What is big-endian, little-endian, and bi-endian? What are the advantages/disadvantages of each one?
- What are the advantages/disadvantages of fixed-length versus variable length instructions? Why do some architectures use one versus the other?
- What are the advantages/disadvantages of RISC versus CISC? Why do some architectures use one versus the other?
- What goes into a calling convention?
- What is a function caller versus callee? Prologue versus epilogue?
- What is the purpose of the link register?
- Be sure to be able to calculate CPI and CPU time given some piece of assembly and CPI for instruction class.
- What are some ways that a compiler can reduce execution time?
- What is Amdahl's Law?
- What does it mean to align instructions and data? Give an example of aligning instructions, and another example of aligning data.
Gates
- Be able to discern between the different types of gates: AND, OR, NOT, XOR, NXOR, NAND, and NOR.
- Be able to build a Karnaugh map given a particular truth table.
- What is gate propagation delay? How is it calculated it?
- What is the difference between a ripple adder versus carry lookahead adder? What are the advantages/disadvantages of them?
Computer Arithmetic
- Understand the differences between unsigned, ASCII, signed magnitude, one's complement, and two's complement.
- Explain the difference between arithmetic shift right versus logical shift right. Then explain why shift left for both are mostly the same.
- Describe in C what a bitfield is, and why they would be used.
- What are condition codes? How are they calculated?
- Be able to perform multiplication, via a shift-add and via Booth's algorithm.
- Be able to perform division, via shift-subtract.
- What is the difference between remainder and modulo?