K(bolck no.) mod c(no of set)

22 votes

The main memory of a computer has $2$ $cm$ blocks while the cache has $2c$ blocks. If the cache uses the set associative mapping scheme with $2$ blocks per set, then block $k$ of the main memory maps to the set:

- $(k$ $mod$ $m)$ of the cache
- $(k$ $mod$ $c)$ of the cache
- $(k$ $mod$ $2c)$ of the cache
- $(k$ $mod$ $2 cm)$ of the cache

39 votes

Best answer

Number of cache blocks $= 2c$

Number of sets in cache $=\dfrac{2c}{2}=c$ since each set has $2$ blocks. Now, a block of main memory gets mapped to a set (associativity of $2$ just means there are space for $2$ memory blocks in a cache set), and we have $2\,cm$ blocks being mapped to $c$ sets. So, in each set $2m$ different main memory blocks can come and block $k$ of main memory will be mapped to $k \ mod \ c.$

Correct Answer: $B$

Number of sets in cache $=\dfrac{2c}{2}=c$ since each set has $2$ blocks. Now, a block of main memory gets mapped to a set (associativity of $2$ just means there are space for $2$ memory blocks in a cache set), and we have $2\,cm$ blocks being mapped to $c$ sets. So, in each set $2m$ different main memory blocks can come and block $k$ of main memory will be mapped to $k \ mod \ c.$

Correct Answer: $B$

0

Shouldn’t the answer be $k\ mod\ 2c$ according to answer provided in https://gateoverflow.in/1442/gate2013-20. I agree that $k\ mod\ c$ is correct here. But both answers seem conceptually different to me.