Consider a fully-associative data cache with 32 blocks of 64 bytes each. The cache uses LRU (Least Recently Used) replacement. Consider the following C code to sum together all of the elements of a 64 by 64 two-dimensional array of 64-bit double-precision floating point numbers. double sum (double A [64] [64] ) { int i, j ; double sum = 0 ; for (i = 0 ; i < 64; i++) for (j = 0; j < 64; j++) sum += A [i] [j] ; return sum ; } Assume all blocks in the cache are initially invalid. How many cache misses will result from the code?

Consider a fully-associative data cache with 32 blocks of 64 bytes each. The cache uses LRU (Least Recently Used) replacement. Consider the following C code to sum together all of the elements of a 64 by 64 two-dimensional array of 64-bit double-precision floating point numbers. double sum (double A [64] [64] ) { int i, j ; double sum = 0 ; for (i = 0 ; i < 64; i++) for (j = 0; j < 64; j++) sum += A [i] [j] ; return sum ; } Assume all blocks in the cache are initially invalid. How many cache misses will result from the code? Correct Answer 512

The correct answer is option 2.

Concept:

Least Recently Used (LRU) page replacement algorithm:

LRU policy follows the concept of locality of reference as the base for its page replacement decisions. LRU policy says that pages that have not been used for the longest period of time will probably not be used for a long time.

The given data, 

Array size= 64 x64 x size of each element.

Array size=64 x64x 64-bit

Array size= 64 x64 x8 bytes

The data cache with 32 blocks of 64 bytes each.

Data cache= 64 bytes

Initially, the data cache loads blocks when i=0 and j=0 and one cache miss after that till i=0 and j=8 there is no cache misses because at one-time cache loads the 64 bytes of data.

So number for 64 bytes 1 miss then,

64 x64 x8 bytes=?

Number of miss= 64 x64 x8 bytes / 64

The number of miss= 512.

Hence the correct answer is 512.

Related Questions

How far is point 'R' from Point 'T'? Statement (I): Point 'R' is 5 metres to the north of point 'M'. Point 'U' is 4 metres to the east of point 'R'. Point 'T' is to the west of point 'R' such that points 'U' 'R' and 'T' form a straight line of  metres. Statement (II): Point 'Z' is metres to the south of point 'T'. Point 'U' is  metres to the east of point 'T'. Point 'M' is  metres to the east of point 'Z'. Point 'R' is  metres to the north of point 'M'. Point 'R' lies on the line formed by joining points 'T' and 'U'.