-
In a k-way set associative cache, the cache is divided into v sets, each of which consists of k lines. The lines of a set are placed in sequence one after another. The lines in set s are sequenced before the lines in set (s + 1). The main memory blocks are numbered 0 onwards. The main memory block numbered j must be mapped to any one of the cache lines from
-
- (j mod v) * k to (j mod v) * k + (k – 1)
- (j mod v) to (j mod v) + (k – 1)
- (j mod k) to (j mod k) + (v – 1)
- (j mod k) * v to (j mod k) * v + (v – 1)
- (j mod v) * k to (j mod v) * k + (k – 1)
Correct Option: A
Considering the following case such that the cache blocks are arranged as follows
The cache is divided into v = 3 sets and each of which consists of k = 5 lines.
e.g. suppose we need to find the block 9, then
Option (a) :
(9 mod 3) * 5 to (9 mod 3) * 5 + 4 = 0 to 4
Option (b) :
(9 mod 3) to (9 mod 3) + 4 = 0 to 4
Option (c) :
(9 mod 5) + (9 mod 5) + 2 = 4 to 6
Option (d) :
(9 mod 5) * 3 to (9 mod 5) * 3 + 2 = 12 to 14
Now check for option (a), (b), (c) and (d).
Check for block 11.
Option (a) :
(11 mod 3) * 5 to (11 mod 3) * 5 + 4 = 10 to 14
Option (b) :
(11 mod 3) to (11 mod 3) + 4 = 2 to 6
Option (c) :
(11 mod 5) to (11 mod 5) + 2 = 6 to 8
Clearly, option (a) gives correct answer.