Consider the following code fragment:
int a[8192], b[8192], c[8192];
int i;
for(i = 0; i < 8192; i++)
c[i] = a[i] + b[i];
For what kind of cache will this program not run well (set associative, direct, associative)? I've been thinking about how to optimize this, but can't really see how it can be done. How can I change this code to have fewer cache misses?