Sequential Programming Model
Contract
- Naming: Can name any variable ( in virtual address space)
- Hardware (and perhaps compilers) does translation to physical addresses
- Operations: Loads, Stores, Arithmetic, Control
- Ordering: Sequential program order
Performance Optimizations
- Compilers and hardware violate program order without getting caught
- Compiler: reordering and register allocation
- Hardware: out of order, pipeline bypassing, write buffers
- Retain dependence order on each “location”
- Transparent replication in caches