Problems:
1. duplicated indirect addressing
2. cache misses
3. long latency
4. unnecessary calculations
Solutions:
1. address once
2. allocate memory in more efficient way
3. hide latency with multi-pipelining/prefetching
4. optimize the algorithm