Q5 Cache Performance Analysis This challenging question tests your understanding of cache. Consider the following C code: int A[16]; int B[16]; int m; ... //A large chunk of code that does NOT access //arrays A and B. ... for (int i=0; i<10; i++) { for (int j=0; j<16; j++) { B[j] = m * A[j] + B[j]; } } Assume this program runs on a 32-bit machine, i.e., the CPU loads/stores 4 bytes from memory in one go. This machine has a 16-bit memory address, and each memory block stores 16 bytes. This machine has a direct-mapped data cache with 16 cache lines. Array A starts at address 0, and B starts at address 256 - both arrays begin at a memory block boundary. Each element of arrays A and B occupies 4 bytes. The values of i, j, and m are stored in CPU registers. Assume we change the cache configuration to be 2-way set-associative. This new data cache has 8 sets and 16 bytes per line. The cache uses a Least Recently Used (LRU) replacement policy. How many data cache misses (including compulsory misses) will occur when running the above code with this new data cache design?
Q5 Cache Performance Analysis
This challenging question tests your understanding of cache.
Consider the following C code:
int A[16]; int B[16]; int m; ... //A large chunk of code that does NOT access //arrays A and B. ... for (int i=0; i<10; i++) { for (int j=0; j<16; j++) { B[j] = m * A[j] + B[j]; } }
Assume this program runs on a 32-bit machine, i.e., the CPU loads/stores 4 bytes from memory in one go. This machine has a 16-bit memory address, and each memory block stores 16 bytes. This machine has a direct-mapped data cache with 16 cache lines.
Array A starts at address 0, and B starts at address 256 - both arrays begin at a memory block boundary. Each element of arrays A and B occupies 4 bytes. The values of i, j, and m are stored in CPU registers.
Assume we change the cache configuration to be 2-way set-associative. This new data cache has 8 sets and 16 bytes per line. The cache uses a Least Recently Used (LRU) replacement policy.
How many data cache misses (including compulsory misses) will occur when running the above code with this new data cache design?
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 2 images