CMSC 411 MT Study Guide
The exam will consist of True/False, short answers, one or two longer
answers, and some design diagrams. It will be open-book and open-notes.
Midterm Topic Outline:
- Main components of a computer architecture:
Compare and contrast:
- Instruction set architecture
Why it is modelled independent of machine org.
- Machine organization
- 5 major components
- Relative roles of technological vs. architectural advancements
- Moore's Law
- Instruction Representation and Semantics
- Registers
- What is a register?
- What is a register file?
- How are registers different from regular memory?
- Difference between "accumulator", "extended accumulator",
and "general purpose register" architectures
- Data Representation
- negative numbers: 2's complement, 1's complement,
signed magnitude, bias notation
- little endian vs big endian
- Overflow: how to detect for signed arithmetic
- MIPS Instruction Set
- CISC (e.g. x86) vs. RISC (e.g.: MIPS, ARM)
- Instruction formats: R, I, J formats
- Registers
- What is purpose of register-naming convention?
- Addressing modes
- Branching
- Jumps
- Common instructions
- Procedure-calling
(Not (yet) responsible for parameter-passing conventions)
- (Not responsible for how linking, loading, executing programs occurs)
- Performance Metrics, Benchmarking
- Different Measures: throughput, response time
- Interplay between clock rate, cycles/instruction, instruction count
- Impact of job mix on performance measures
- How is compiler involved?
- What are SPEC benchmarks?
- What is MIPS? Pitfalls? What is "relative MIPS"?
- Amdahl's Law
- (Not responsible for power usage impact on design)
- The Arithmetic Logic Unit (ALU)
- You should be able to design a simple 1-bit ALU w/carry-in/-out
using gates
- Cascading 1-bit ALUs into multi-bit ripple-carry ALU
- Principle of carry lookahead: what are "generate" and "propagate"?
- Principle of "cascaded carry lookahead": what is it, and why use it?
- Multiplication
- How does hardware multiplication work?
- What are some optimizations?
- Booth's algorithm
- Cascaded ALUs for fast multiplication
- Tree-structured cascade for even faster multiply
- MIPS "mul" instruction and HI/LO internal registers
- Principle of carry lookahead: what are "generate" and "propagate"?
- Principle of "cascaded carry lookahead": what is it, and why use it?
- Division
- How does hardware division work?
- What are some optimizations?
- Why can't we short-circuit division?
- MIPS "div" instruction and HI/LO internal registers
- Basic Instructions
- You should be able to give assembly examples of using:
ADD, ADDI, SUB, LW, SW, BEQ, BNE, J, JAL
- Floating Point
- IEEE 754 format
- normalization
- hidden bit
- precision vs. magnitude
- FP math: addition, subtraction, multiplication, division
- Single Cycle Control Path
- Modelling CPU operation as logical register transfers
- 5 Steps:
- ISA requirements
- Datapath component selection
- Datapath assembly
- (...other two covered later