Time and instruction execution
Keep track of detailed timing of each instruction's execution
- highly dependent on code
- hard to use compilers
- not enough control over code generation
- interactions with caches/instruction-buffers
Loops to implement delays
- keep track of time in counters
- keeps processor busy counting and not doing other useful things
Real-time clock
- take differences at different points in the program