First Half:
Performance
Top Level
Basic Circuits
RAM/ROM
Cache
Ext Memory
I/O
OS
Second Half:
Math
Assembly
CPU
Parallelism
- Performance Issues
- measurement of quality
- clock speed
- MIPS = million instr per second
- actual load and SPEC benchmark
- Amdahl's law for parallelism
- averaging measures
- arithmetic mean
- geometric mean
- harmonic mean
- Top Level View
- basic instruction cycle
- interrupts
- need for busses
- typical lines in a bus
- imultiplexed bus lines
- Basic Circuits
- basic gates and symbols
- adder
- multiplexer and demultiplexer
- coder and decoder
- sequential circuits; memory
- SR and D flip-flops
- RAM and ROM
- static vs. dynamic RAM
- types of RAM
- original ROM
- PROM
- EPROM and EEPROM
- flash memory
- addressing logic; picture on pg. 171
- idea of error correction
- Cache
- memory hierarchy
- cache lines and memory blocks
- cache design
- mapping functions
- direct mapping
- fully associative mapping
- n-way set associative mapping
- division of mem addresses into offset/set/tag
- replacement algorithm; LRU
- dirty pages vs. clean pages
- separate I and D caches
- External Memory
- disk drive
- magnetic regions: which direction
- tracks and sectors
- access time factors
- RAID
- motivation
- know raid 0, 1, and 5
- trade-offs
- optical memory
- portable
- reflective pits
- spiral path; hard to directly seek
- tape
- long strip coated with magnetic particles
- serpentine recording
- no random access; sequential access only
- slow
- used mostly for backups
- Input and Output
- communication mediated by 'device controller'
- CPU sees controller as location or 'registers'
- could be in the regular memory space or I/O space
- 3 programming modes
- programmed I/O; uses busy waiting
- interrupt-driven I/O
CPU continues with work; controller interrupts when byte ready
- DMA = direct memory access
controller understands how to address memory
controller interrupts CPU when entire block tranfered
- Operating System Services
- manager of user/machine interface
- manager of computer resources
- batch vs. interactive
- uniprogramming vs. multiprogramming
- scheduling: long-term vs. short-term
- memory management: swaping and paging
- virtual memory
- Computer Math
- integer formats
- endianess
- integer operations
- floating point format (I will tell you sizes if needed)
- diff between Reals and Floating Point
- floating point math algorithms
- Assembly Language
- types of machine operations
- fixed-size vs variable-size
- addressing modes
- translation of high-level to assembly
(instruction sets supplied if needed)
- CPU Organization
- data flow paths
- special registers: MAR, MDR, PC, IR
- RISC vs CISC
- pipelining
- pipeline problems/solutions
- super-pipelined/super-scalar
- Parallel Processing
- motivation
- Flynn hierarchy
- multe-core
- multi-processor machines
- cache coherence
- NUMA
- clusters